@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
|
@@ -8,7 +8,6 @@ import { useGridApiContext } from '../../utils/useGridApiContext';
|
|
|
8
8
|
import { useGridRootProps } from '../../utils/useGridRootProps';
|
|
9
9
|
import { useGridSelector } from '../../utils/useGridSelector';
|
|
10
10
|
import { gridVisibleColumnDefinitionsSelector, gridColumnsTotalWidthSelector, gridColumnPositionsSelector } from '../columns/gridColumnsSelector';
|
|
11
|
-
import { gridDensityRowHeightSelector } from '../density/densitySelector';
|
|
12
11
|
import { gridFocusCellSelector, gridTabIndexCellSelector } from '../focus/gridFocusStateSelector';
|
|
13
12
|
import { gridEditRowsStateSelector } from '../editRows/gridEditRowsSelector';
|
|
14
13
|
import { useGridVisibleRows } from '../../utils/useGridVisibleRows';
|
|
@@ -16,7 +15,8 @@ import { useGridApiEventHandler } from '../../utils/useGridApiEventHandler';
|
|
|
16
15
|
import { clamp } from '../../../utils/utils';
|
|
17
16
|
import { selectedIdsLookupSelector } from '../selection/gridSelectionSelector';
|
|
18
17
|
import { gridRowsMetaSelector } from '../rows/gridRowsMetaSelector';
|
|
19
|
-
import { getFirstNonSpannedColumnToRender } from '../columns/gridColumnsUtils';
|
|
18
|
+
import { getFirstNonSpannedColumnToRender } from '../columns/gridColumnsUtils';
|
|
19
|
+
import { getMinimalContentHeight } from '../rows/gridRowsUtils'; // Uses binary search to avoid looping through all possible positions
|
|
20
20
|
|
|
21
21
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
22
22
|
export function binarySearch(offset, positions, sliceStart = 0, sliceEnd = positions.length) {
|
|
@@ -67,7 +67,6 @@ export const useGridVirtualScroller = props => {
|
|
|
67
67
|
} = props;
|
|
68
68
|
const columnPositions = useGridSelector(apiRef, gridColumnPositionsSelector);
|
|
69
69
|
const columnsTotalWidth = useGridSelector(apiRef, gridColumnsTotalWidthSelector);
|
|
70
|
-
const rowHeight = useGridSelector(apiRef, gridDensityRowHeightSelector);
|
|
71
70
|
const cellFocus = useGridSelector(apiRef, gridFocusCellSelector);
|
|
72
71
|
const cellTabIndex = useGridSelector(apiRef, gridTabIndexCellSelector);
|
|
73
72
|
const rowsMeta = useGridSelector(apiRef, gridRowsMetaSelector);
|
|
@@ -87,16 +86,16 @@ export const useGridVirtualScroller = props => {
|
|
|
87
86
|
const prevTotalWidth = React.useRef(columnsTotalWidth);
|
|
88
87
|
const getNearestIndexToRender = React.useCallback(offset => {
|
|
89
88
|
const lastMeasuredIndexRelativeToAllRows = apiRef.current.unstable_getLastMeasuredRowIndex();
|
|
90
|
-
|
|
91
|
-
const lastMeasuredIndex = Math.max(0, lastMeasuredIndexRelativeToCurrentPage);
|
|
92
|
-
let allRowsMeasured = lastMeasuredIndex === Infinity;
|
|
89
|
+
let allRowsMeasured = lastMeasuredIndexRelativeToAllRows === Infinity;
|
|
93
90
|
|
|
94
91
|
if (currentPage.range?.lastRowIndex && !allRowsMeasured) {
|
|
95
92
|
// Check if all rows in this page are already measured
|
|
96
|
-
allRowsMeasured =
|
|
93
|
+
allRowsMeasured = lastMeasuredIndexRelativeToAllRows >= currentPage.range.lastRowIndex;
|
|
97
94
|
}
|
|
98
95
|
|
|
99
|
-
|
|
96
|
+
const lastMeasuredIndexRelativeToCurrentPage = clamp(lastMeasuredIndexRelativeToAllRows - (currentPage.range?.firstRowIndex || 0), 0, rowsMeta.positions.length);
|
|
97
|
+
|
|
98
|
+
if (allRowsMeasured || rowsMeta.positions[lastMeasuredIndexRelativeToCurrentPage] >= offset) {
|
|
100
99
|
// If all rows were measured (when no row has "auto" as height) or all rows before the offset
|
|
101
100
|
// were measured, then use a binary search because it's faster.
|
|
102
101
|
return binarySearch(offset, rowsMeta.positions);
|
|
@@ -106,7 +105,7 @@ export const useGridVirtualScroller = props => {
|
|
|
106
105
|
// Inspired by https://github.com/bvaughn/react-virtualized/blob/master/source/Grid/utils/CellSizeAndPositionManager.js
|
|
107
106
|
|
|
108
107
|
|
|
109
|
-
return exponentialSearch(offset, rowsMeta.positions,
|
|
108
|
+
return exponentialSearch(offset, rowsMeta.positions, lastMeasuredIndexRelativeToCurrentPage);
|
|
110
109
|
}, [apiRef, currentPage.range?.firstRowIndex, currentPage.range?.lastRowIndex, rowsMeta.positions]);
|
|
111
110
|
const computeRenderContext = React.useCallback(() => {
|
|
112
111
|
if (disableVirtualization) {
|
|
@@ -414,19 +413,14 @@ export const useGridVirtualScroller = props => {
|
|
|
414
413
|
height,
|
|
415
414
|
minHeight: shouldExtendContent ? '100%' : 'auto'
|
|
416
415
|
};
|
|
417
|
-
|
|
418
|
-
if (rootProps.autoHeight && currentPage.rows.length === 0) {
|
|
419
|
-
size.height = 2 * rowHeight; // Give room to show the overlay when there's no row.
|
|
420
|
-
}
|
|
421
|
-
|
|
422
416
|
return size;
|
|
423
|
-
}, [rootRef, columnsTotalWidth, rowsMeta.currentPageTotalHeight,
|
|
417
|
+
}, [rootRef, columnsTotalWidth, rowsMeta.currentPageTotalHeight, needsHorizontalScrollbar]);
|
|
424
418
|
React.useEffect(() => {
|
|
425
419
|
apiRef.current.publishEvent('virtualScrollerContentSizeChange');
|
|
426
420
|
}, [apiRef, contentSize]);
|
|
427
421
|
|
|
428
422
|
if (rootProps.autoHeight && currentPage.rows.length === 0) {
|
|
429
|
-
contentSize.height =
|
|
423
|
+
contentSize.height = getMinimalContentHeight(apiRef); // Give room to show the overlay when there no rows.
|
|
430
424
|
}
|
|
431
425
|
|
|
432
426
|
const rootStyle = {};
|
package/modern/index.js
CHANGED
|
@@ -26,6 +26,7 @@ export { useGridEditing as useGridEditing_new, editingStateInitializer as editin
|
|
|
26
26
|
export { useGridEditing as useGridEditing_old, editingStateInitializer as editingStateInitializer_old } from '../hooks/features/editRows/useGridEditing.old';
|
|
27
27
|
export { useGridRows, rowsStateInitializer } from '../hooks/features/rows/useGridRows';
|
|
28
28
|
export { useGridRowsPreProcessors } from '../hooks/features/rows/useGridRowsPreProcessors';
|
|
29
|
+
export { getTreeNodeDescendants, buildRootGroup } from '../hooks/features/rows/gridRowsUtils';
|
|
29
30
|
export { useGridRowsMeta, rowsMetaStateInitializer } from '../hooks/features/rows/useGridRowsMeta';
|
|
30
31
|
export { useGridParamsApi } from '../hooks/features/rows/useGridParamsApi';
|
|
31
32
|
export { getRowIdFromRowModel } from '../hooks/features/rows/gridRowsUtils';
|
|
@@ -62,7 +62,7 @@ const DATA_GRID_PROPS_DEFAULT_VALUES = {
|
|
|
62
62
|
disableVirtualization: false,
|
|
63
63
|
disableIgnoreModificationsIfProcessingProps: false,
|
|
64
64
|
editMode: _models.GridEditModes.Cell,
|
|
65
|
-
filterMode:
|
|
65
|
+
filterMode: 'client',
|
|
66
66
|
headerHeight: 56,
|
|
67
67
|
hideFooter: false,
|
|
68
68
|
hideFooterPagination: false,
|
|
@@ -71,14 +71,14 @@ const DATA_GRID_PROPS_DEFAULT_VALUES = {
|
|
|
71
71
|
logger: console,
|
|
72
72
|
logLevel: process.env.NODE_ENV === 'production' ? 'error' : 'warn',
|
|
73
73
|
pagination: false,
|
|
74
|
-
paginationMode:
|
|
74
|
+
paginationMode: 'client',
|
|
75
75
|
rowHeight: 52,
|
|
76
76
|
rowsPerPageOptions: [25, 50, 100],
|
|
77
77
|
rowSpacingType: 'margin',
|
|
78
78
|
showCellRightBorder: false,
|
|
79
79
|
showColumnRightBorder: false,
|
|
80
80
|
sortingOrder: ['asc', 'desc', null],
|
|
81
|
-
sortingMode:
|
|
81
|
+
sortingMode: 'client',
|
|
82
82
|
throttleRowsMs: 0,
|
|
83
83
|
disableColumnReorder: false,
|
|
84
84
|
disableColumnResize: false,
|
|
@@ -21,6 +21,8 @@ var _GridVirtualScrollerRenderZone = require("./virtualization/GridVirtualScroll
|
|
|
21
21
|
|
|
22
22
|
var _useGridVirtualScroller = require("../hooks/features/virtualization/useGridVirtualScroller");
|
|
23
23
|
|
|
24
|
+
var _GridOverlays = require("./base/GridOverlays");
|
|
25
|
+
|
|
24
26
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
25
27
|
|
|
26
28
|
const _excluded = ["className", "disableVirtualization"];
|
|
@@ -44,14 +46,14 @@ const DataGridVirtualScroller = /*#__PURE__*/React.forwardRef(function DataGridV
|
|
|
44
46
|
ref,
|
|
45
47
|
disableVirtualization
|
|
46
48
|
});
|
|
47
|
-
return /*#__PURE__*/(0, _jsxRuntime.
|
|
49
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_GridVirtualScroller.GridVirtualScroller, (0, _extends2.default)({
|
|
48
50
|
className: className
|
|
49
51
|
}, getRootProps(other), {
|
|
50
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridVirtualScrollerContent.GridVirtualScrollerContent, (0, _extends2.default)({}, getContentProps(), {
|
|
52
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_GridOverlays.GridOverlays, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridVirtualScrollerContent.GridVirtualScrollerContent, (0, _extends2.default)({}, getContentProps(), {
|
|
51
53
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridVirtualScrollerRenderZone.GridVirtualScrollerRenderZone, (0, _extends2.default)({}, getRenderZoneProps(), {
|
|
52
54
|
children: getRows()
|
|
53
55
|
}))
|
|
54
|
-
}))
|
|
56
|
+
}))]
|
|
55
57
|
}));
|
|
56
58
|
});
|
|
57
59
|
exports.DataGridVirtualScroller = DataGridVirtualScroller;
|
|
@@ -75,8 +75,7 @@ const GridPagination = /*#__PURE__*/React.forwardRef(function GridPagination(pro
|
|
|
75
75
|
}
|
|
76
76
|
|
|
77
77
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(GridPaginationRoot, (0, _extends2.default)({
|
|
78
|
-
ref: ref
|
|
79
|
-
,
|
|
78
|
+
ref: ref,
|
|
80
79
|
component: "div",
|
|
81
80
|
count: paginationState.rowCount,
|
|
82
81
|
page: paginationState.page <= lastPage ? paginationState.page : lastPage,
|
|
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.GridRow =
|
|
8
|
+
exports.GridRow = void 0;
|
|
9
9
|
|
|
10
10
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
11
|
|
|
@@ -89,7 +89,7 @@ const EmptyCell = ({
|
|
|
89
89
|
}); // TODO change to .MuiDataGrid-emptyCell or .MuiDataGrid-rowFiller
|
|
90
90
|
};
|
|
91
91
|
|
|
92
|
-
function GridRow(props) {
|
|
92
|
+
const GridRow = /*#__PURE__*/React.forwardRef(function GridRow(props, refProp) {
|
|
93
93
|
var _apiRef$current$getRo;
|
|
94
94
|
|
|
95
95
|
const {
|
|
@@ -121,8 +121,9 @@ function GridRow(props) {
|
|
|
121
121
|
const currentPage = (0, _useGridVisibleRows.useGridVisibleRows)(apiRef, rootProps);
|
|
122
122
|
const columnsTotalWidth = (0, _useGridSelector.useGridSelector)(apiRef, _gridColumnsSelector.gridColumnsTotalWidthSelector);
|
|
123
123
|
const sortModel = (0, _useGridSelector.useGridSelector)(apiRef, _gridSortingSelector.gridSortModelSelector);
|
|
124
|
-
const treeDepth = (0, _useGridSelector.useGridSelector)(apiRef, _gridRowsSelector.
|
|
124
|
+
const treeDepth = (0, _useGridSelector.useGridSelector)(apiRef, _gridRowsSelector.gridRowMaximumTreeDepthSelector);
|
|
125
125
|
const headerGroupingMaxDepth = (0, _useGridSelector.useGridSelector)(apiRef, _densitySelector.gridDensityHeaderGroupingMaxDepthSelector);
|
|
126
|
+
const handleRef = (0, _material.useForkRef)(ref, refProp);
|
|
126
127
|
const ariaRowIndex = index + headerGroupingMaxDepth + 2; // 1 for the header row and 1 as it's 1-based
|
|
127
128
|
|
|
128
129
|
const {
|
|
@@ -361,6 +362,7 @@ function GridRow(props) {
|
|
|
361
362
|
}
|
|
362
363
|
|
|
363
364
|
const randomNumber = (0, _utils.randomNumberBetween)(10000, 20, 80);
|
|
365
|
+
const rowType = apiRef.current.getRowNode(rowId).type;
|
|
364
366
|
const cells = [];
|
|
365
367
|
|
|
366
368
|
for (let i = 0; i < renderedColumns.length; i += 1) {
|
|
@@ -372,7 +374,7 @@ function GridRow(props) {
|
|
|
372
374
|
const cellColSpanInfo = apiRef.current.unstable_getCellColSpanInfo(rowId, indexRelativeToAllColumns);
|
|
373
375
|
|
|
374
376
|
if (cellColSpanInfo && !cellColSpanInfo.spannedByColSpan) {
|
|
375
|
-
if (
|
|
377
|
+
if (rowType !== 'skeletonRow') {
|
|
376
378
|
const {
|
|
377
379
|
colSpan,
|
|
378
380
|
width
|
|
@@ -407,7 +409,7 @@ function GridRow(props) {
|
|
|
407
409
|
onMouseLeave: publish('rowMouseLeave', onMouseLeave)
|
|
408
410
|
} : null;
|
|
409
411
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", (0, _extends2.default)({
|
|
410
|
-
ref:
|
|
412
|
+
ref: handleRef,
|
|
411
413
|
"data-id": rowId,
|
|
412
414
|
"data-rowindex": index,
|
|
413
415
|
role: "row",
|
|
@@ -420,8 +422,8 @@ function GridRow(props) {
|
|
|
420
422
|
width: emptyCellWidth
|
|
421
423
|
})]
|
|
422
424
|
}));
|
|
423
|
-
}
|
|
424
|
-
|
|
425
|
+
});
|
|
426
|
+
exports.GridRow = GridRow;
|
|
425
427
|
process.env.NODE_ENV !== "production" ? GridRow.propTypes = {
|
|
426
428
|
// ----------------------------- Warning --------------------------------
|
|
427
429
|
// | These PropTypes are generated from the TypeScript type definitions |
|
|
@@ -17,8 +17,6 @@ var _GridMainContainer = require("../containers/GridMainContainer");
|
|
|
17
17
|
|
|
18
18
|
var _GridAutoSizer = require("../GridAutoSizer");
|
|
19
19
|
|
|
20
|
-
var _GridOverlays = require("./GridOverlays");
|
|
21
|
-
|
|
22
20
|
var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
|
|
23
21
|
|
|
24
22
|
var _useGridSelector = require("../../hooks/utils/useGridSelector");
|
|
@@ -72,7 +70,7 @@ function GridBody(props) {
|
|
|
72
70
|
apiRef.current.publishEvent('resize', size);
|
|
73
71
|
}, [apiRef]);
|
|
74
72
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_GridMainContainer.GridMainContainer, {
|
|
75
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
73
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(ColumnHeadersComponent, {
|
|
76
74
|
ref: columnsContainerRef,
|
|
77
75
|
innerRef: columnHeadersRef
|
|
78
76
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridAutoSizer.GridAutoSizer, {
|
|
@@ -13,6 +13,12 @@ var React = _interopRequireWildcard(require("react"));
|
|
|
13
13
|
|
|
14
14
|
var _utils = require("@mui/material/utils");
|
|
15
15
|
|
|
16
|
+
var _styles = require("@mui/material/styles");
|
|
17
|
+
|
|
18
|
+
var _material = require("@mui/material");
|
|
19
|
+
|
|
20
|
+
var _clsx = _interopRequireDefault(require("clsx"));
|
|
21
|
+
|
|
16
22
|
var _useGridSelector = require("../../hooks/utils/useGridSelector");
|
|
17
23
|
|
|
18
24
|
var _gridFilterSelector = require("../../hooks/features/filter/gridFilterSelector");
|
|
@@ -23,7 +29,9 @@ var _useGridApiContext = require("../../hooks/utils/useGridApiContext");
|
|
|
23
29
|
|
|
24
30
|
var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
|
|
25
31
|
|
|
26
|
-
var
|
|
32
|
+
var _gridRowsUtils = require("../../hooks/features/rows/gridRowsUtils");
|
|
33
|
+
|
|
34
|
+
var _gridClasses = require("../../constants/gridClasses");
|
|
27
35
|
|
|
28
36
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
29
37
|
|
|
@@ -31,12 +39,44 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
31
39
|
|
|
32
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; }
|
|
33
41
|
|
|
42
|
+
const GridOverlayWrapperRoot = (0, _styles.styled)('div', {
|
|
43
|
+
name: 'MuiDataGrid',
|
|
44
|
+
slot: 'OverlayWrapper',
|
|
45
|
+
overridesResolver: (props, styles) => styles.overlayWrapper
|
|
46
|
+
})({
|
|
47
|
+
position: 'sticky',
|
|
48
|
+
// To stay in place while scrolling
|
|
49
|
+
top: 0,
|
|
50
|
+
left: 0,
|
|
51
|
+
width: 0,
|
|
52
|
+
// To stay above the content instead of shifting it down
|
|
53
|
+
height: 0,
|
|
54
|
+
// To stay above the content instead of shifting it down
|
|
55
|
+
zIndex: 4 // Should be above pinned columns, pinned rows and detail panel
|
|
56
|
+
|
|
57
|
+
});
|
|
58
|
+
const GridOverlayWrapperInner = (0, _styles.styled)('div', {
|
|
59
|
+
name: 'MuiDataGrid',
|
|
60
|
+
slot: 'OverlayWrapperInner',
|
|
61
|
+
overridesResolver: (props, styles) => styles.overlayWrapperInner
|
|
62
|
+
})({});
|
|
63
|
+
|
|
64
|
+
const useUtilityClasses = ownerState => {
|
|
65
|
+
const {
|
|
66
|
+
classes
|
|
67
|
+
} = ownerState;
|
|
68
|
+
const slots = {
|
|
69
|
+
root: ['overlayWrapper'],
|
|
70
|
+
inner: ['overlayWrapperInner']
|
|
71
|
+
};
|
|
72
|
+
return (0, _material.unstable_composeClasses)(slots, _gridClasses.getDataGridUtilityClass, classes);
|
|
73
|
+
};
|
|
74
|
+
|
|
34
75
|
function GridOverlayWrapper(props) {
|
|
35
76
|
var _viewportInnerSize$he, _viewportInnerSize$wi;
|
|
36
77
|
|
|
37
78
|
const apiRef = (0, _useGridApiContext.useGridApiContext)();
|
|
38
79
|
const rootProps = (0, _useGridRootProps.useGridRootProps)();
|
|
39
|
-
const totalHeaderHeight = (0, _useGridSelector.useGridSelector)(apiRef, _densitySelector.gridDensityTotalHeaderHeightSelector);
|
|
40
80
|
const [viewportInnerSize, setViewportInnerSize] = React.useState(() => {
|
|
41
81
|
var _apiRef$current$getRo, _apiRef$current$getRo2;
|
|
42
82
|
|
|
@@ -53,22 +93,27 @@ function GridOverlayWrapper(props) {
|
|
|
53
93
|
let height = (_viewportInnerSize$he = viewportInnerSize == null ? void 0 : viewportInnerSize.height) != null ? _viewportInnerSize$he : 0;
|
|
54
94
|
|
|
55
95
|
if (rootProps.autoHeight && height === 0) {
|
|
56
|
-
height =
|
|
96
|
+
height = (0, _gridRowsUtils.getMinimalContentHeight)(apiRef); // Give room to show the overlay when there no rows.
|
|
57
97
|
}
|
|
58
98
|
|
|
99
|
+
const classes = useUtilityClasses((0, _extends2.default)({}, props, {
|
|
100
|
+
classes: rootProps.classes
|
|
101
|
+
}));
|
|
102
|
+
|
|
59
103
|
if (!viewportInnerSize) {
|
|
60
104
|
return null;
|
|
61
105
|
}
|
|
62
106
|
|
|
63
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
107
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(GridOverlayWrapperRoot, {
|
|
108
|
+
className: (0, _clsx.default)(classes.root),
|
|
109
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(GridOverlayWrapperInner, (0, _extends2.default)({
|
|
110
|
+
className: (0, _clsx.default)(classes.inner),
|
|
111
|
+
style: {
|
|
112
|
+
height,
|
|
113
|
+
width: (_viewportInnerSize$wi = viewportInnerSize == null ? void 0 : viewportInnerSize.width) != null ? _viewportInnerSize$wi : 0
|
|
114
|
+
}
|
|
115
|
+
}, props))
|
|
116
|
+
});
|
|
72
117
|
}
|
|
73
118
|
|
|
74
119
|
function GridOverlays() {
|
|
@@ -23,6 +23,8 @@ var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
|
|
|
23
23
|
|
|
24
24
|
var _useGridApiContext = require("../../hooks/utils/useGridApiContext");
|
|
25
25
|
|
|
26
|
+
var _gridRowsUtils = require("../../hooks/features/rows/gridRowsUtils");
|
|
27
|
+
|
|
26
28
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
27
29
|
|
|
28
30
|
const _excluded = ["id", "value", "formattedValue", "api", "field", "row", "rowNode", "colDef", "cellMode", "isEditable", "hasFocus", "tabIndex", "getValue"];
|
|
@@ -153,7 +155,7 @@ const GridBooleanCell = /*#__PURE__*/React.memo(GridBooleanCellRaw);
|
|
|
153
155
|
exports.GridBooleanCell = GridBooleanCell;
|
|
154
156
|
|
|
155
157
|
const renderBooleanCell = params => {
|
|
156
|
-
if (params.rowNode
|
|
158
|
+
if ((0, _gridRowsUtils.isAutoGeneratedRow)(params.rowNode)) {
|
|
157
159
|
return '';
|
|
158
160
|
}
|
|
159
161
|
|
|
@@ -102,17 +102,12 @@ const GridCellCheckboxForwardRef = /*#__PURE__*/React.forwardRef(function GridCe
|
|
|
102
102
|
}
|
|
103
103
|
}, [apiRef, props]);
|
|
104
104
|
|
|
105
|
-
if (rowNode.
|
|
105
|
+
if (rowNode.type === 'footer' || rowNode.type === 'pinnedRow') {
|
|
106
106
|
return null;
|
|
107
107
|
}
|
|
108
108
|
|
|
109
109
|
const isSelectable = apiRef.current.isRowSelectable(id);
|
|
110
110
|
const label = apiRef.current.getLocaleText(isChecked ? 'checkboxSelectionUnselectRow' : 'checkboxSelectionSelectRow');
|
|
111
|
-
|
|
112
|
-
if (rowNode.isPinned) {
|
|
113
|
-
return null;
|
|
114
|
-
}
|
|
115
|
-
|
|
116
111
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.components.BaseCheckbox, (0, _extends2.default)({
|
|
117
112
|
ref: handleRef,
|
|
118
113
|
tabIndex: tabIndex,
|
|
@@ -50,13 +50,8 @@ const GridOverlayRoot = (0, _styles.styled)('div', {
|
|
|
50
50
|
})(({
|
|
51
51
|
theme
|
|
52
52
|
}) => ({
|
|
53
|
-
position: 'absolute',
|
|
54
|
-
top: 0,
|
|
55
|
-
zIndex: 4,
|
|
56
|
-
// should be above pinned columns, pinned rows and detail panel
|
|
57
53
|
width: '100%',
|
|
58
54
|
height: '100%',
|
|
59
|
-
pointerEvents: 'none',
|
|
60
55
|
display: 'flex',
|
|
61
56
|
alignSelf: 'center',
|
|
62
57
|
alignItems: 'center',
|
|
@@ -263,7 +263,8 @@ const GridFilterForm = /*#__PURE__*/React.forwardRef(function GridFilterForm(pro
|
|
|
263
263
|
}), [currentOperator]);
|
|
264
264
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(GridFilterFormRoot, (0, _extends2.default)({
|
|
265
265
|
ref: ref,
|
|
266
|
-
className: classes.root
|
|
266
|
+
className: classes.root,
|
|
267
|
+
"data-id": item.id
|
|
267
268
|
}, other, {
|
|
268
269
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(FilterFormDeleteIcon, (0, _extends2.default)({
|
|
269
270
|
variant: "standard",
|
|
@@ -98,11 +98,15 @@ const GridToolbarFilterButton = /*#__PURE__*/React.forwardRef(function GridToolb
|
|
|
98
98
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
99
99
|
children: [apiRef.current.getLocaleText('toolbarFiltersTooltipActive')(activeFilters.length), /*#__PURE__*/(0, _jsxRuntime.jsx)(GridToolbarFilterListRoot, {
|
|
100
100
|
className: classes.root,
|
|
101
|
-
children: activeFilters.map((item, index) =>
|
|
102
|
-
|
|
101
|
+
children: activeFilters.map((item, index) => {
|
|
102
|
+
var _item$value;
|
|
103
|
+
|
|
104
|
+
return (0, _extends2.default)({}, lookup[item.columnField] && /*#__PURE__*/(0, _jsxRuntime.jsx)("li", {
|
|
105
|
+
children: `${lookup[item.columnField].headerName || item.columnField}
|
|
103
106
|
${getOperatorLabel(item)}
|
|
104
|
-
${item.value}`
|
|
105
|
-
|
|
107
|
+
${(_item$value = item.value) != null ? _item$value : ''}`
|
|
108
|
+
}, index));
|
|
109
|
+
})
|
|
106
110
|
})]
|
|
107
111
|
});
|
|
108
112
|
}, [apiRef, preferencePanel.open, activeFilters, lookup, classes]);
|
|
@@ -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");
|
|
@@ -29,7 +31,7 @@ var _warning = require("../../../utils/warning");
|
|
|
29
31
|
|
|
30
32
|
var _gridRowsSelector = require("../rows/gridRowsSelector");
|
|
31
33
|
|
|
32
|
-
var
|
|
34
|
+
var _utils2 = require("../../../utils/utils");
|
|
33
35
|
|
|
34
36
|
var _gridEditCellParams = require("../../../models/params/gridEditCellParams");
|
|
35
37
|
|
|
@@ -128,6 +130,10 @@ const useGridCellEditing = (apiRef, props) => {
|
|
|
128
130
|
} else if (params.isEditable) {
|
|
129
131
|
let reason;
|
|
130
132
|
|
|
133
|
+
if (event.key === ' ' && event.shiftKey) {
|
|
134
|
+
return; // Shift + Space is used to select the row
|
|
135
|
+
}
|
|
136
|
+
|
|
131
137
|
if ((0, _keyboardUtils.isPrintableKey)(event)) {
|
|
132
138
|
reason = _gridEditCellParams.GridCellEditStartReasons.printableKeyDown;
|
|
133
139
|
} else if ((event.ctrlKey || event.metaKey) && event.key === 'v') {
|
|
@@ -209,7 +215,7 @@ const useGridCellEditing = (apiRef, props) => {
|
|
|
209
215
|
const isEditing = editingState[id] && editingState[id][field];
|
|
210
216
|
return isEditing ? _gridEditRowModel.GridCellModes.Edit : _gridEditRowModel.GridCellModes.View;
|
|
211
217
|
}, [apiRef]);
|
|
212
|
-
const updateCellModesModel =
|
|
218
|
+
const updateCellModesModel = (0, _utils.unstable_useEventCallback)(newModel => {
|
|
213
219
|
const isNewModelDifferentFromProp = newModel !== props.cellModesModel;
|
|
214
220
|
|
|
215
221
|
if (onCellModesModelChange && isNewModelDifferentFromProp) {
|
|
@@ -226,7 +232,7 @@ const useGridCellEditing = (apiRef, props) => {
|
|
|
226
232
|
setCellModesModel(newModel);
|
|
227
233
|
cellModesModelRef.current = newModel;
|
|
228
234
|
apiRef.current.publishEvent('cellModesModelChange', newModel);
|
|
229
|
-
}
|
|
235
|
+
});
|
|
230
236
|
const updateFieldInCellModesModel = React.useCallback((id, field, newProps) => {
|
|
231
237
|
// We use the ref because it always contain the up-to-date value, different from the state
|
|
232
238
|
// that needs a rerender to reflect the new value
|
|
@@ -283,7 +289,7 @@ const useGridCellEditing = (apiRef, props) => {
|
|
|
283
289
|
mode: _gridEditRowModel.GridCellModes.Edit
|
|
284
290
|
}, other));
|
|
285
291
|
}, [throwIfNotEditable, throwIfNotInMode, updateFieldInCellModesModel]);
|
|
286
|
-
const updateStateToStartCellEditMode =
|
|
292
|
+
const updateStateToStartCellEditMode = (0, _utils.unstable_useEventCallback)(params => {
|
|
287
293
|
const {
|
|
288
294
|
id,
|
|
289
295
|
field,
|
|
@@ -296,7 +302,7 @@ const useGridCellEditing = (apiRef, props) => {
|
|
|
296
302
|
};
|
|
297
303
|
updateOrDeleteFieldState(id, field, newProps);
|
|
298
304
|
apiRef.current.setCellFocus(id, field);
|
|
299
|
-
}
|
|
305
|
+
});
|
|
300
306
|
const stopCellEditMode = React.useCallback(params => {
|
|
301
307
|
const {
|
|
302
308
|
id,
|
|
@@ -308,7 +314,7 @@ const useGridCellEditing = (apiRef, props) => {
|
|
|
308
314
|
mode: _gridEditRowModel.GridCellModes.View
|
|
309
315
|
}, other));
|
|
310
316
|
}, [throwIfNotInMode, updateFieldInCellModesModel]);
|
|
311
|
-
const updateStateToStopCellEditMode =
|
|
317
|
+
const updateStateToStopCellEditMode = (0, _utils.unstable_useEventCallback)(async params => {
|
|
312
318
|
const {
|
|
313
319
|
id,
|
|
314
320
|
field,
|
|
@@ -353,7 +359,11 @@ const useGridCellEditing = (apiRef, props) => {
|
|
|
353
359
|
|
|
354
360
|
if (processRowUpdate) {
|
|
355
361
|
const handleError = errorThrown => {
|
|
356
|
-
prevCellModesModel.current[id][field].mode = _gridEditRowModel.GridCellModes.Edit;
|
|
362
|
+
prevCellModesModel.current[id][field].mode = _gridEditRowModel.GridCellModes.Edit; // Revert the mode in the cellModesModel prop back to "edit"
|
|
363
|
+
|
|
364
|
+
updateFieldInCellModesModel(id, field, {
|
|
365
|
+
mode: _gridEditRowModel.GridCellModes.Edit
|
|
366
|
+
});
|
|
357
367
|
|
|
358
368
|
if (onProcessRowUpdateError) {
|
|
359
369
|
onProcessRowUpdateError(errorThrown);
|
|
@@ -375,7 +385,7 @@ const useGridCellEditing = (apiRef, props) => {
|
|
|
375
385
|
apiRef.current.updateRows([rowUpdate]);
|
|
376
386
|
finishCellEditMode();
|
|
377
387
|
}
|
|
378
|
-
}
|
|
388
|
+
});
|
|
379
389
|
const setCellEditingEditCellValue = React.useCallback(async params => {
|
|
380
390
|
var _editingState$id, _editingState$id$fiel;
|
|
381
391
|
|
|
@@ -462,10 +472,10 @@ const useGridCellEditing = (apiRef, props) => {
|
|
|
462
472
|
}
|
|
463
473
|
}, [cellModesModelProp, updateCellModesModel]);
|
|
464
474
|
React.useEffect(() => {
|
|
465
|
-
const idToIdLookup = (0, _gridRowsSelector.
|
|
475
|
+
const idToIdLookup = (0, _gridRowsSelector.gridRowsDataRowIdToIdLookupSelector)(apiRef); // Update the ref here because updateStateToStopCellEditMode may change it later
|
|
466
476
|
|
|
467
477
|
const copyOfPrevCellModes = prevCellModesModel.current;
|
|
468
|
-
prevCellModesModel.current = (0,
|
|
478
|
+
prevCellModesModel.current = (0, _utils2.deepClone)(cellModesModel); // Do a deep-clone because the attributes might be changed later
|
|
469
479
|
|
|
470
480
|
Object.entries(cellModesModel).forEach(([id, fields]) => {
|
|
471
481
|
Object.entries(fields).forEach(([field, params]) => {
|
|
@@ -21,6 +21,8 @@ var _useGridRowEditing = require("./useGridRowEditing.new");
|
|
|
21
21
|
|
|
22
22
|
var _gridEditRowsSelector = require("./gridEditRowsSelector");
|
|
23
23
|
|
|
24
|
+
var _gridRowsUtils = require("../rows/gridRowsUtils");
|
|
25
|
+
|
|
24
26
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
25
27
|
|
|
26
28
|
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; }
|
|
@@ -39,7 +41,7 @@ const useGridEditing = (apiRef, props) => {
|
|
|
39
41
|
isCellEditable: isCellEditableProp
|
|
40
42
|
} = props;
|
|
41
43
|
const isCellEditable = React.useCallback(params => {
|
|
42
|
-
if (params.rowNode
|
|
44
|
+
if ((0, _gridRowsUtils.isAutoGeneratedRow)(params.rowNode)) {
|
|
43
45
|
return false;
|
|
44
46
|
}
|
|
45
47
|
|
|
@@ -55,7 +57,7 @@ const useGridEditing = (apiRef, props) => {
|
|
|
55
57
|
return isCellEditableProp(params);
|
|
56
58
|
}
|
|
57
59
|
|
|
58
|
-
if (params.rowNode.
|
|
60
|
+
if (params.rowNode.type === 'pinnedRow') {
|
|
59
61
|
return false;
|
|
60
62
|
}
|
|
61
63
|
|
|
@@ -26,6 +26,8 @@ var _useGridCellEditing = require("./useGridCellEditing.old");
|
|
|
26
26
|
|
|
27
27
|
var _useGridRowEditing = require("./useGridRowEditing.old");
|
|
28
28
|
|
|
29
|
+
var _gridRowsUtils = require("../rows/gridRowsUtils");
|
|
30
|
+
|
|
29
31
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
30
32
|
|
|
31
33
|
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; }
|
|
@@ -56,7 +58,7 @@ function useGridEditing(apiRef, props) {
|
|
|
56
58
|
stateSelector: _gridEditRowsSelector.gridEditRowsStateSelector,
|
|
57
59
|
changeEvent: 'editRowsModelChange'
|
|
58
60
|
});
|
|
59
|
-
const isCellEditable = React.useCallback(params => !params.rowNode
|
|
61
|
+
const isCellEditable = React.useCallback(params => !(0, _gridRowsUtils.isAutoGeneratedRow)(params.rowNode) && params.rowNode.type !== 'pinnedRow' && !!params.colDef.editable && !!params.colDef.renderEditCell && (!props.isCellEditable || props.isCellEditable(params)), // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
60
62
|
[props.isCellEditable]);
|
|
61
63
|
|
|
62
64
|
const maybeDebounce = (id, field, debounceMs, callback) => {
|