@mui/x-data-grid 7.25.0 → 7.27.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 +133 -0
- package/DataGrid/DataGrid.js +6 -0
- package/DataGrid/useDataGridComponent.js +3 -3
- package/components/GridRow.js +8 -2
- package/components/GridScrollArea.d.ts +5 -2
- package/components/GridScrollArea.js +32 -25
- package/components/GridSkeletonLoadingOverlay.js +2 -1
- package/components/containers/GridRoot.js +11 -9
- package/components/containers/GridRootStyles.js +3 -3
- package/components/virtualization/GridMainContainer.d.ts +2 -2
- package/components/virtualization/GridMainContainer.js +1 -1
- package/components/virtualization/GridVirtualScroller.js +21 -14
- package/constants/dataGridPropsDefaultValues.js +1 -0
- package/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.d.ts +1 -1
- package/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.js +6 -4
- package/hooks/core/useGridStateInitialization.js +3 -2
- package/hooks/features/clipboard/useGridClipboard.js +1 -1
- package/hooks/features/columnHeaders/useGridColumnHeaders.js +10 -14
- package/hooks/features/columns/gridColumnsSelector.d.ts +0 -5
- package/hooks/features/columns/gridColumnsSelector.js +0 -12
- package/hooks/features/dimensions/gridDimensionsSelectors.d.ts +16 -0
- package/hooks/features/dimensions/gridDimensionsSelectors.js +26 -1
- package/hooks/features/dimensions/index.d.ts +1 -1
- package/hooks/features/dimensions/index.js +1 -2
- package/hooks/features/dimensions/useGridDimensions.js +97 -70
- package/hooks/features/editing/gridEditingSelectors.d.ts +5 -1
- package/hooks/features/editing/gridEditingSelectors.js +6 -1
- package/hooks/features/editing/useGridRowEditing.js +4 -4
- package/hooks/features/filter/gridFilterState.d.ts +5 -0
- package/hooks/features/filter/gridFilterState.js +5 -0
- package/hooks/features/filter/useGridFilter.js +6 -13
- package/hooks/features/pagination/useGridPagination.js +1 -1
- package/hooks/features/pagination/useGridPaginationModel.d.ts +1 -1
- package/hooks/features/pagination/useGridPaginationModel.js +44 -0
- package/hooks/features/rowSelection/useGridRowSelection.js +1 -1
- package/hooks/features/rowSelection/utils.js +1 -1
- package/hooks/features/rows/gridRowsMetaState.d.ts +8 -0
- package/hooks/features/rows/gridRowsUtils.d.ts +0 -4
- package/hooks/features/rows/gridRowsUtils.js +0 -16
- package/hooks/features/rows/useGridRowsMeta.js +33 -17
- package/hooks/features/sorting/gridSortingSelector.js +10 -9
- package/hooks/features/virtualization/useGridVirtualScroller.d.ts +6 -0
- package/hooks/features/virtualization/useGridVirtualScroller.js +43 -27
- package/hooks/utils/useGridNativeEventListener.d.ts +0 -1
- package/hooks/utils/useGridNativeEventListener.js +12 -22
- package/hooks/utils/useGridSelector.d.ts +8 -1
- package/hooks/utils/useGridSelector.js +42 -8
- package/hooks/utils/useIsSSR.d.ts +1 -0
- package/hooks/utils/useIsSSR.js +5 -0
- package/index.js +1 -1
- package/internals/index.d.ts +2 -1
- package/internals/index.js +2 -1
- package/locales/plPL.js +31 -35
- package/locales/ukUA.js +9 -10
- package/models/api/gridStateApi.d.ts +1 -0
- package/models/events/gridEventLookup.d.ts +6 -0
- package/models/props/DataGridProps.d.ts +6 -0
- package/modern/DataGrid/DataGrid.js +6 -0
- package/modern/DataGrid/useDataGridComponent.js +3 -3
- package/modern/components/GridRow.js +8 -2
- package/modern/components/GridScrollArea.js +32 -25
- package/modern/components/GridSkeletonLoadingOverlay.js +2 -1
- package/modern/components/containers/GridRoot.js +11 -9
- package/modern/components/containers/GridRootStyles.js +3 -3
- package/modern/components/virtualization/GridMainContainer.js +1 -1
- package/modern/components/virtualization/GridVirtualScroller.js +21 -14
- package/modern/constants/dataGridPropsDefaultValues.js +1 -0
- package/modern/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.js +6 -4
- package/modern/hooks/core/useGridStateInitialization.js +3 -2
- package/modern/hooks/features/clipboard/useGridClipboard.js +1 -1
- package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +10 -14
- package/modern/hooks/features/columns/gridColumnsSelector.js +0 -12
- package/modern/hooks/features/dimensions/gridDimensionsSelectors.js +26 -1
- package/modern/hooks/features/dimensions/index.js +1 -2
- package/modern/hooks/features/dimensions/useGridDimensions.js +97 -70
- package/modern/hooks/features/editing/gridEditingSelectors.js +6 -1
- package/modern/hooks/features/editing/useGridRowEditing.js +4 -4
- package/modern/hooks/features/filter/gridFilterState.js +5 -0
- package/modern/hooks/features/filter/useGridFilter.js +6 -13
- package/modern/hooks/features/pagination/useGridPagination.js +1 -1
- package/modern/hooks/features/pagination/useGridPaginationModel.js +44 -0
- package/modern/hooks/features/rowSelection/useGridRowSelection.js +1 -1
- package/modern/hooks/features/rowSelection/utils.js +1 -1
- package/modern/hooks/features/rows/gridRowsUtils.js +0 -16
- package/modern/hooks/features/rows/useGridRowsMeta.js +33 -17
- package/modern/hooks/features/sorting/gridSortingSelector.js +10 -9
- package/modern/hooks/features/virtualization/useGridVirtualScroller.js +43 -27
- package/modern/hooks/utils/useGridNativeEventListener.js +12 -22
- package/modern/hooks/utils/useGridSelector.js +42 -8
- package/modern/hooks/utils/useIsSSR.js +5 -0
- package/modern/index.js +1 -1
- package/modern/internals/index.js +2 -1
- package/modern/locales/plPL.js +31 -35
- package/modern/locales/ukUA.js +9 -10
- package/node/DataGrid/DataGrid.js +6 -0
- package/node/DataGrid/useDataGridComponent.js +3 -3
- package/node/components/GridRow.js +7 -2
- package/node/components/GridScrollArea.js +31 -24
- package/node/components/GridSkeletonLoadingOverlay.js +2 -1
- package/node/components/containers/GridRoot.js +10 -8
- package/node/components/containers/GridRootStyles.js +3 -3
- package/node/components/virtualization/GridMainContainer.js +1 -1
- package/node/components/virtualization/GridVirtualScroller.js +21 -14
- package/node/constants/dataGridPropsDefaultValues.js +1 -0
- package/node/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.js +6 -4
- package/node/hooks/core/useGridStateInitialization.js +3 -2
- package/node/hooks/features/clipboard/useGridClipboard.js +1 -1
- package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +10 -14
- package/node/hooks/features/columns/gridColumnsSelector.js +1 -13
- package/node/hooks/features/dimensions/gridDimensionsSelectors.js +38 -2
- package/node/hooks/features/dimensions/index.js +13 -11
- package/node/hooks/features/dimensions/useGridDimensions.js +94 -67
- package/node/hooks/features/editing/gridEditingSelectors.js +5 -1
- package/node/hooks/features/editing/useGridRowEditing.js +4 -4
- package/node/hooks/features/filter/gridFilterState.js +6 -1
- package/node/hooks/features/filter/useGridFilter.js +5 -12
- package/node/hooks/features/pagination/useGridPagination.js +1 -1
- package/node/hooks/features/pagination/useGridPaginationModel.js +44 -0
- package/node/hooks/features/rowSelection/useGridRowSelection.js +1 -1
- package/node/hooks/features/rowSelection/utils.js +1 -1
- package/node/hooks/features/rows/gridRowsUtils.js +0 -17
- package/node/hooks/features/rows/useGridRowsMeta.js +31 -15
- package/node/hooks/features/sorting/gridSortingSelector.js +10 -9
- package/node/hooks/features/virtualization/useGridVirtualScroller.js +42 -26
- package/node/hooks/utils/useGridNativeEventListener.js +12 -23
- package/node/hooks/utils/useGridSelector.js +42 -8
- package/node/hooks/utils/useIsSSR.js +12 -0
- package/node/index.js +1 -1
- package/node/internals/index.js +20 -7
- package/node/locales/plPL.js +31 -35
- package/node/locales/ukUA.js +9 -10
- package/package.json +3 -2
package/modern/locales/ukUA.js
CHANGED
|
@@ -45,12 +45,11 @@ const ukUAGrid = {
|
|
|
45
45
|
toolbarExportPrint: 'Друк',
|
|
46
46
|
toolbarExportExcel: 'Завантажити у форматі Excel',
|
|
47
47
|
// Columns management text
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
48
|
+
columnsManagementSearchTitle: 'Пошук',
|
|
49
|
+
columnsManagementNoColumns: 'Немає стовпців',
|
|
50
|
+
columnsManagementShowHideAllText: 'Показати/Приховати всі',
|
|
51
|
+
columnsManagementReset: 'Скинути',
|
|
52
|
+
columnsManagementDeleteIconLabel: 'Очистити',
|
|
54
53
|
// Filter panel text
|
|
55
54
|
filterPanelAddFilter: 'Додати фільтр',
|
|
56
55
|
filterPanelRemoveAll: 'Видалити всі',
|
|
@@ -64,9 +63,9 @@ const ukUAGrid = {
|
|
|
64
63
|
filterPanelInputPlaceholder: 'Значення фільтра',
|
|
65
64
|
// Filter operators text
|
|
66
65
|
filterOperatorContains: 'містить',
|
|
67
|
-
|
|
66
|
+
filterOperatorDoesNotContain: 'не містить',
|
|
68
67
|
filterOperatorEquals: 'дорівнює',
|
|
69
|
-
|
|
68
|
+
filterOperatorDoesNotEqual: 'не дорівнює',
|
|
70
69
|
filterOperatorStartsWith: 'починається з',
|
|
71
70
|
filterOperatorEndsWith: 'закінчується на',
|
|
72
71
|
filterOperatorIs: 'дорівнює',
|
|
@@ -86,9 +85,9 @@ const ukUAGrid = {
|
|
|
86
85
|
'filterOperator<=': '<=',
|
|
87
86
|
// Header filter operators text
|
|
88
87
|
headerFilterOperatorContains: 'Містить',
|
|
89
|
-
|
|
88
|
+
headerFilterOperatorDoesNotContain: 'Не містить',
|
|
90
89
|
headerFilterOperatorEquals: 'Дорівнює',
|
|
91
|
-
|
|
90
|
+
headerFilterOperatorDoesNotEqual: 'Не дорівнює',
|
|
92
91
|
headerFilterOperatorStartsWith: 'Починається з',
|
|
93
92
|
headerFilterOperatorEndsWith: 'Закінчується на',
|
|
94
93
|
headerFilterOperatorIs: 'Дорівнює',
|
|
@@ -668,6 +668,12 @@ DataGridRaw.propTypes = {
|
|
|
668
668
|
* @returns {Promise<R> | R} The final values to update the row.
|
|
669
669
|
*/
|
|
670
670
|
processRowUpdate: _propTypes.default.func,
|
|
671
|
+
/**
|
|
672
|
+
* If `true`, the page is set to 0 after each sorting or filtering.
|
|
673
|
+
* This prop will be removed in the next major version and resetting the page will become the default behavior.
|
|
674
|
+
* @default false
|
|
675
|
+
*/
|
|
676
|
+
resetPageOnSortFilter: _propTypes.default.bool,
|
|
671
677
|
/**
|
|
672
678
|
* The milliseconds throttle delay for resizing the grid.
|
|
673
679
|
* @default 60
|
|
@@ -47,11 +47,10 @@ const useDataGridComponent = (inputApiRef, props) => {
|
|
|
47
47
|
/**
|
|
48
48
|
* Register all state initializers here.
|
|
49
49
|
*/
|
|
50
|
-
(0, _useGridInitializeState.useGridInitializeState)(_useGridDimensions.dimensionsStateInitializer, apiRef, props);
|
|
51
50
|
(0, _useGridInitializeState.useGridInitializeState)(_useGridRowSelection.rowSelectionStateInitializer, apiRef, props);
|
|
52
51
|
(0, _useGridInitializeState.useGridInitializeState)(_useGridColumns.columnsStateInitializer, apiRef, props);
|
|
53
|
-
(0, _useGridInitializeState.useGridInitializeState)(_useGridPagination.paginationStateInitializer, apiRef, props);
|
|
54
52
|
(0, _useGridInitializeState.useGridInitializeState)(_useGridRows.rowsStateInitializer, apiRef, props);
|
|
53
|
+
(0, _useGridInitializeState.useGridInitializeState)(_useGridPagination.paginationStateInitializer, apiRef, props);
|
|
55
54
|
(0, _useGridInitializeState.useGridInitializeState)(_useGridEditing.editingStateInitializer, apiRef, props);
|
|
56
55
|
(0, _useGridInitializeState.useGridInitializeState)(_useGridFocus.focusStateInitializer, apiRef, props);
|
|
57
56
|
(0, _useGridInitializeState.useGridInitializeState)(_useGridSorting.sortingStateInitializer, apiRef, props);
|
|
@@ -60,10 +59,11 @@ const useDataGridComponent = (inputApiRef, props) => {
|
|
|
60
59
|
(0, _useGridInitializeState.useGridInitializeState)(_useGridRowSpanning.rowSpanningStateInitializer, apiRef, props);
|
|
61
60
|
(0, _useGridInitializeState.useGridInitializeState)(_useGridDensity.densityStateInitializer, apiRef, props);
|
|
62
61
|
(0, _useGridInitializeState.useGridInitializeState)(_useGridColumnResize.columnResizeStateInitializer, apiRef, props);
|
|
63
|
-
(0, _useGridInitializeState.useGridInitializeState)(_useGridRowsMeta.rowsMetaStateInitializer, apiRef, props);
|
|
64
62
|
(0, _useGridInitializeState.useGridInitializeState)(_useGridColumnMenu.columnMenuStateInitializer, apiRef, props);
|
|
65
63
|
(0, _useGridInitializeState.useGridInitializeState)(_useGridColumnGrouping.columnGroupsStateInitializer, apiRef, props);
|
|
66
64
|
(0, _useGridInitializeState.useGridInitializeState)(_virtualization.virtualizationStateInitializer, apiRef, props);
|
|
65
|
+
(0, _useGridInitializeState.useGridInitializeState)(_useGridDimensions.dimensionsStateInitializer, apiRef, props);
|
|
66
|
+
(0, _useGridInitializeState.useGridInitializeState)(_useGridRowsMeta.rowsMetaStateInitializer, apiRef, props);
|
|
67
67
|
(0, _useGridInitializeState.useGridInitializeState)(_useGridListView.listViewStateInitializer, apiRef, props);
|
|
68
68
|
(0, _useGridKeyboardNavigation.useGridKeyboardNavigation)(apiRef, props);
|
|
69
69
|
(0, _useGridRowSelection.useGridRowSelection)(apiRef, props);
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
'use client';
|
|
2
3
|
|
|
3
4
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
5
|
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
@@ -86,7 +87,10 @@ const GridRow = (0, _forwardRef.forwardRef)(function GridRow(props, refProp) {
|
|
|
86
87
|
const isRowReorderingEnabled = (0, _useGridSelector.useGridSelectorV8)(apiRef, isRowReorderingEnabledSelector, rowReordering);
|
|
87
88
|
const handleRef = (0, _utils.unstable_useForkRef)(ref, refProp);
|
|
88
89
|
const rowNode = apiRef.current.getRowNode(rowId);
|
|
89
|
-
const editing = (0, _useGridSelector.useGridSelectorV8)(apiRef, _gridEditingSelectors.gridRowIsEditingSelector,
|
|
90
|
+
const editing = (0, _useGridSelector.useGridSelectorV8)(apiRef, _gridEditingSelectors.gridRowIsEditingSelector, {
|
|
91
|
+
rowId,
|
|
92
|
+
editMode: rootProps.editMode
|
|
93
|
+
});
|
|
90
94
|
const editable = rootProps.editMode === _gridEditRowModel.GridEditModes.Row;
|
|
91
95
|
const hasFocusCell = focusedColumnIndex !== undefined;
|
|
92
96
|
const hasVirtualFocusCellLeft = hasFocusCell && focusedColumnIndex >= pinnedColumns.left.length && focusedColumnIndex < firstColumnIndex;
|
|
@@ -304,7 +308,8 @@ const GridRow = (0, _forwardRef.forwardRef)(function GridRow(props, refProp) {
|
|
|
304
308
|
role: "presentation",
|
|
305
309
|
className: (0, _clsx.default)(_gridClasses.gridClasses.cell, _gridClasses.gridClasses.cellEmpty)
|
|
306
310
|
}), rightCells, scrollbarWidth !== 0 && /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridScrollbarFillerCell.GridScrollbarFillerCell, {
|
|
307
|
-
pinnedRight: pinnedColumns.right.length > 0
|
|
311
|
+
pinnedRight: pinnedColumns.right.length > 0,
|
|
312
|
+
borderTop: !isFirstVisible
|
|
308
313
|
})]
|
|
309
314
|
}));
|
|
310
315
|
});
|
|
@@ -19,9 +19,9 @@ var _useGridApiEventHandler = require("../hooks/utils/useGridApiEventHandler");
|
|
|
19
19
|
var _useGridSelector = require("../hooks/utils/useGridSelector");
|
|
20
20
|
var _gridDimensionsSelectors = require("../hooks/features/dimensions/gridDimensionsSelectors");
|
|
21
21
|
var _densitySelector = require("../hooks/features/density/densitySelector");
|
|
22
|
-
var _gridColumnsSelector = require("../hooks/features/columns/gridColumnsSelector");
|
|
23
22
|
var _useTimeout = require("../hooks/utils/useTimeout");
|
|
24
23
|
var _gridColumnsUtils = require("../hooks/features/columns/gridColumnsUtils");
|
|
24
|
+
var _createSelector = require("../utils/createSelector");
|
|
25
25
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
26
26
|
const CLIFF = 1;
|
|
27
27
|
const SLOP = 1.5;
|
|
@@ -56,21 +56,38 @@ const GridScrollAreaRawRoot = (0, _system.styled)('div', {
|
|
|
56
56
|
right: 0
|
|
57
57
|
}
|
|
58
58
|
}));
|
|
59
|
-
|
|
59
|
+
const offsetSelector = (0, _createSelector.createSelectorV8)(_gridDimensionsSelectors.gridDimensionsSelector, (dimensions, direction) => {
|
|
60
|
+
if (direction === 'left') {
|
|
61
|
+
return dimensions.leftPinnedWidth;
|
|
62
|
+
}
|
|
63
|
+
if (direction === 'right') {
|
|
64
|
+
return dimensions.rightPinnedWidth + (dimensions.hasScrollX ? dimensions.scrollbarSize : 0);
|
|
65
|
+
}
|
|
66
|
+
return 0;
|
|
67
|
+
});
|
|
68
|
+
function GridScrollAreaWrapper(props) {
|
|
69
|
+
const apiRef = (0, _useGridApiContext.useGridApiContext)();
|
|
70
|
+
const [dragging, setDragging] = React.useState(false);
|
|
71
|
+
(0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, 'columnHeaderDragStart', () => setDragging(true));
|
|
72
|
+
(0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, 'columnHeaderDragEnd', () => setDragging(false));
|
|
73
|
+
if (!dragging) {
|
|
74
|
+
return null;
|
|
75
|
+
}
|
|
76
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(GridScrollAreaContent, (0, _extends2.default)({}, props));
|
|
77
|
+
}
|
|
78
|
+
function GridScrollAreaContent(props) {
|
|
60
79
|
const {
|
|
61
|
-
scrollDirection
|
|
80
|
+
scrollDirection,
|
|
81
|
+
scrollPosition
|
|
62
82
|
} = props;
|
|
63
83
|
const rootRef = React.useRef(null);
|
|
64
84
|
const apiRef = (0, _useGridApiContext.useGridApiContext)();
|
|
65
85
|
const timeout = (0, _useTimeout.useTimeout)();
|
|
66
86
|
const densityFactor = (0, _useGridSelector.useGridSelector)(apiRef, _densitySelector.gridDensityFactorSelector);
|
|
67
|
-
const columnsTotalWidth = (0, _useGridSelector.useGridSelector)(apiRef,
|
|
68
|
-
const
|
|
69
|
-
const scrollPosition = React.useRef({
|
|
70
|
-
left: 0,
|
|
71
|
-
top: 0
|
|
72
|
-
});
|
|
87
|
+
const columnsTotalWidth = (0, _useGridSelector.useGridSelector)(apiRef, _gridDimensionsSelectors.gridColumnsTotalWidthSelector);
|
|
88
|
+
const sideOffset = (0, _useGridSelector.useGridSelectorV8)(apiRef, offsetSelector, scrollDirection);
|
|
73
89
|
const getCanScrollMore = () => {
|
|
90
|
+
const dimensions = (0, _gridDimensionsSelectors.gridDimensionsSelector)(apiRef.current.state);
|
|
74
91
|
if (scrollDirection === 'left') {
|
|
75
92
|
// Only render if the user has not reached yet the start of the list
|
|
76
93
|
return scrollPosition.current.left > 0;
|
|
@@ -82,7 +99,6 @@ function GridScrollAreaRaw(props) {
|
|
|
82
99
|
}
|
|
83
100
|
return false;
|
|
84
101
|
};
|
|
85
|
-
const [dragging, setDragging] = React.useState(false);
|
|
86
102
|
const [canScrollMore, setCanScrollMore] = React.useState(getCanScrollMore);
|
|
87
103
|
const rootProps = (0, _useGridRootProps.useGridRootProps)();
|
|
88
104
|
const ownerState = (0, _extends2.default)({}, rootProps, {
|
|
@@ -96,12 +112,11 @@ function GridScrollAreaRaw(props) {
|
|
|
96
112
|
top: totalHeaderHeight - headerHeight
|
|
97
113
|
};
|
|
98
114
|
if (scrollDirection === 'left') {
|
|
99
|
-
style.left =
|
|
115
|
+
style.left = sideOffset;
|
|
100
116
|
} else if (scrollDirection === 'right') {
|
|
101
|
-
style.right =
|
|
117
|
+
style.right = sideOffset;
|
|
102
118
|
}
|
|
103
|
-
const handleScrolling =
|
|
104
|
-
scrollPosition.current = newScrollPosition;
|
|
119
|
+
const handleScrolling = () => {
|
|
105
120
|
setCanScrollMore(getCanScrollMore);
|
|
106
121
|
};
|
|
107
122
|
const handleDragOver = (0, _utils.unstable_useEventCallback)(event => {
|
|
@@ -126,16 +141,8 @@ function GridScrollAreaRaw(props) {
|
|
|
126
141
|
});
|
|
127
142
|
});
|
|
128
143
|
});
|
|
129
|
-
const handleColumnHeaderDragStart = (0, _utils.unstable_useEventCallback)(() => {
|
|
130
|
-
setDragging(true);
|
|
131
|
-
});
|
|
132
|
-
const handleColumnHeaderDragEnd = (0, _utils.unstable_useEventCallback)(() => {
|
|
133
|
-
setDragging(false);
|
|
134
|
-
});
|
|
135
144
|
(0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, 'scrollPositionChange', handleScrolling);
|
|
136
|
-
(
|
|
137
|
-
(0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, 'columnHeaderDragEnd', handleColumnHeaderDragEnd);
|
|
138
|
-
if (!dragging || !canScrollMore) {
|
|
145
|
+
if (!canScrollMore) {
|
|
139
146
|
return null;
|
|
140
147
|
}
|
|
141
148
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(GridScrollAreaRawRoot, {
|
|
@@ -146,4 +153,4 @@ function GridScrollAreaRaw(props) {
|
|
|
146
153
|
style: style
|
|
147
154
|
});
|
|
148
155
|
}
|
|
149
|
-
const GridScrollArea = exports.GridScrollArea = (0, _fastMemo.fastMemo)(
|
|
156
|
+
const GridScrollArea = exports.GridScrollArea = (0, _fastMemo.fastMemo)(GridScrollAreaWrapper);
|
|
@@ -18,6 +18,7 @@ var _useGridApiContext = require("../hooks/utils/useGridApiContext");
|
|
|
18
18
|
var _useGridRootProps = require("../hooks/utils/useGridRootProps");
|
|
19
19
|
var _hooks = require("../hooks");
|
|
20
20
|
var _constants = require("../internals/constants");
|
|
21
|
+
var _gridDimensionsSelectors = require("../hooks/features/dimensions/gridDimensionsSelectors");
|
|
21
22
|
var _gridClasses = require("../constants/gridClasses");
|
|
22
23
|
var _getPinnedCellOffset = require("../internals/utils/getPinnedCellOffset");
|
|
23
24
|
var _cellBorderUtils = require("../utils/cellBorderUtils");
|
|
@@ -62,7 +63,7 @@ const GridSkeletonLoadingOverlay = exports.GridSkeletonLoadingOverlay = (0, _for
|
|
|
62
63
|
const dimensions = (0, _hooks.useGridSelector)(apiRef, _hooks.gridDimensionsSelector);
|
|
63
64
|
const viewportHeight = dimensions?.viewportInnerSize.height ?? 0;
|
|
64
65
|
const skeletonRowsCount = Math.ceil(viewportHeight / dimensions.rowHeight);
|
|
65
|
-
const totalWidth = (0, _hooks.useGridSelector)(apiRef,
|
|
66
|
+
const totalWidth = (0, _hooks.useGridSelector)(apiRef, _gridDimensionsSelectors.gridColumnsTotalWidthSelector);
|
|
66
67
|
const positions = (0, _hooks.useGridSelector)(apiRef, _hooks.gridColumnPositionsSelector);
|
|
67
68
|
const inViewportCount = React.useMemo(() => positions.filter(value => value <= totalWidth).length, [totalWidth, positions]);
|
|
68
69
|
const allVisibleColumns = (0, _hooks.useGridSelector)(apiRef, _hooks.gridVisibleColumnDefinitionsSelector);
|
|
@@ -20,6 +20,7 @@ var _useGridPrivateApiContext = require("../../hooks/utils/useGridPrivateApiCont
|
|
|
20
20
|
var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
|
|
21
21
|
var _gridClasses = require("../../constants/gridClasses");
|
|
22
22
|
var _densitySelector = require("../../hooks/features/density/densitySelector");
|
|
23
|
+
var _useIsSSR = require("../../hooks/utils/useIsSSR");
|
|
23
24
|
var _GridHeader = require("../GridHeader");
|
|
24
25
|
var _base = require("../base");
|
|
25
26
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
@@ -45,16 +46,17 @@ const GridRoot = (0, _forwardRef.forwardRef)(function GridRoot(props, ref) {
|
|
|
45
46
|
const apiRef = (0, _useGridPrivateApiContext.useGridPrivateApiContext)();
|
|
46
47
|
const density = (0, _useGridSelector.useGridSelector)(apiRef, _densitySelector.gridDensitySelector);
|
|
47
48
|
const rootElementRef = apiRef.current.rootElementRef;
|
|
48
|
-
const
|
|
49
|
+
const rootMountCallback = React.useCallback(node => {
|
|
50
|
+
if (node === null) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
apiRef.current.publishEvent('rootMount', node);
|
|
54
|
+
}, [apiRef]);
|
|
55
|
+
const handleRef = (0, _utils.unstable_useForkRef)(rootElementRef, ref, rootMountCallback);
|
|
49
56
|
const ownerState = rootProps;
|
|
50
57
|
const classes = useUtilityClasses(ownerState, density);
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
const [mountedState, setMountedState] = React.useState(false);
|
|
54
|
-
(0, _utils.unstable_useEnhancedEffect)(() => {
|
|
55
|
-
setMountedState(true);
|
|
56
|
-
}, []);
|
|
57
|
-
if (!mountedState) {
|
|
58
|
+
const isSSR = (0, _useIsSSR.useIsSSR)();
|
|
59
|
+
if (isSSR) {
|
|
58
60
|
return null;
|
|
59
61
|
}
|
|
60
62
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_GridRootStyles.GridRootStyles, (0, _extends2.default)({
|
|
@@ -10,7 +10,6 @@ var _styles = require("@mui/material/styles");
|
|
|
10
10
|
var _gridClasses = require("../../constants/gridClasses");
|
|
11
11
|
var _useGridSelector = require("../../hooks/utils/useGridSelector");
|
|
12
12
|
var _useGridPrivateApiContext = require("../../hooks/utils/useGridPrivateApiContext");
|
|
13
|
-
var _gridDimensionsSelectors = require("../../hooks/features/dimensions/gridDimensionsSelectors");
|
|
14
13
|
function getBorderColor(theme) {
|
|
15
14
|
if (theme.vars) {
|
|
16
15
|
return theme.vars.palette.TableCell.border;
|
|
@@ -42,6 +41,7 @@ const separatorIconDragStyles = {
|
|
|
42
41
|
// Emotion thinks it knows better than us which selector we should use.
|
|
43
42
|
// https://github.com/emotion-js/emotion/issues/1105#issuecomment-1722524968
|
|
44
43
|
const ignoreSsrWarning = '/* emotion-disable-server-rendering-unsafe-selector-warning-please-do-not-use-this-the-warning-exists-for-a-reason */';
|
|
44
|
+
const shouldShowBorderTopRightRadiusSelector = state => state.dimensions.hasScrollX && (!state.dimensions.hasScrollY || state.dimensions.scrollbarSize === 0);
|
|
45
45
|
const GridRootStyles = exports.GridRootStyles = (0, _styles.styled)('div', {
|
|
46
46
|
name: 'MuiDataGrid',
|
|
47
47
|
slot: 'Root',
|
|
@@ -272,7 +272,7 @@ const GridRootStyles = exports.GridRootStyles = (0, _styles.styled)('div', {
|
|
|
272
272
|
theme: t
|
|
273
273
|
}) => {
|
|
274
274
|
const apiRef = (0, _useGridPrivateApiContext.useGridPrivateApiContext)();
|
|
275
|
-
const
|
|
275
|
+
const shouldShowBorderTopRightRadius = (0, _useGridSelector.useGridSelector)(apiRef, shouldShowBorderTopRightRadiusSelector);
|
|
276
276
|
const borderColor = getBorderColor(t);
|
|
277
277
|
const radius = t.shape.borderRadius;
|
|
278
278
|
const containerBackground = t.vars ? t.vars.palette.background.default : t.mixins.MuiDataGrid?.containerBackground ?? t.palette.background.default;
|
|
@@ -424,7 +424,7 @@ const GridRootStyles = exports.GridRootStyles = (0, _styles.styled)('div', {
|
|
|
424
424
|
borderTopLeftRadius: 'calc(var(--unstable_DataGrid-radius) - 1px)'
|
|
425
425
|
},
|
|
426
426
|
[`&.${_gridClasses.gridClasses['root--noToolbar']} [aria-rowindex="1"] .${_gridClasses.gridClasses['columnHeader--last']}`]: {
|
|
427
|
-
borderTopRightRadius:
|
|
427
|
+
borderTopRightRadius: shouldShowBorderTopRightRadius ? 'calc(var(--unstable_DataGrid-radius) - 1px)' : undefined
|
|
428
428
|
},
|
|
429
429
|
[`& .${_gridClasses.gridClasses.columnHeaderCheckbox}, & .${_gridClasses.gridClasses.cellCheckbox}`]: {
|
|
430
430
|
padding: 0,
|
|
@@ -26,7 +26,7 @@ const Element = (0, _system.styled)('div', {
|
|
|
26
26
|
const {
|
|
27
27
|
ownerState
|
|
28
28
|
} = props;
|
|
29
|
-
return [styles.main, ownerState.
|
|
29
|
+
return [styles.main, ownerState.hasPinnedRight && styles['main--hasPinnedRight'], ownerState.loadingOverlayVariant === 'skeleton' && styles['main--hasSkeletonLoadingOverlay']];
|
|
30
30
|
}
|
|
31
31
|
})({
|
|
32
32
|
flexGrow: 1,
|
|
@@ -10,12 +10,12 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
|
|
|
10
10
|
var React = _interopRequireWildcard(require("react"));
|
|
11
11
|
var _system = require("@mui/system");
|
|
12
12
|
var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
|
|
13
|
+
var _gridDimensionsSelectors = require("../../hooks/features/dimensions/gridDimensionsSelectors");
|
|
13
14
|
var _GridScrollArea = require("../GridScrollArea");
|
|
14
15
|
var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
|
|
15
16
|
var _useGridApiContext = require("../../hooks/utils/useGridApiContext");
|
|
16
17
|
var _useGridSelector = require("../../hooks/utils/useGridSelector");
|
|
17
18
|
var _gridClasses = require("../../constants/gridClasses");
|
|
18
|
-
var _dimensions = require("../../hooks/features/dimensions");
|
|
19
19
|
var _useGridVirtualScroller = require("../../hooks/features/virtualization/useGridVirtualScroller");
|
|
20
20
|
var _useGridOverlays = require("../../hooks/features/overlays/useGridOverlays");
|
|
21
21
|
var _GridOverlays = require("../base/GridOverlays");
|
|
@@ -31,12 +31,13 @@ var _jsxRuntime = require("react/jsx-runtime");
|
|
|
31
31
|
const useUtilityClasses = ownerState => {
|
|
32
32
|
const {
|
|
33
33
|
classes,
|
|
34
|
-
|
|
34
|
+
hasScrollX,
|
|
35
|
+
hasPinnedRight,
|
|
35
36
|
loadingOverlayVariant
|
|
36
37
|
} = ownerState;
|
|
37
38
|
const slots = {
|
|
38
|
-
root: ['main',
|
|
39
|
-
scroller: ['virtualScroller',
|
|
39
|
+
root: ['main', hasPinnedRight && 'main--hasPinnedRight', loadingOverlayVariant === 'skeleton' && 'main--hasSkeletonLoadingOverlay'],
|
|
40
|
+
scroller: ['virtualScroller', hasScrollX && 'virtualScroller--hasScrollX']
|
|
40
41
|
};
|
|
41
42
|
return (0, _composeClasses.default)(slots, _gridClasses.getDataGridUtilityClass, classes);
|
|
42
43
|
};
|
|
@@ -47,7 +48,7 @@ const Scroller = (0, _system.styled)('div', {
|
|
|
47
48
|
const {
|
|
48
49
|
ownerState
|
|
49
50
|
} = props;
|
|
50
|
-
return [styles.virtualScroller, ownerState.
|
|
51
|
+
return [styles.virtualScroller, ownerState.hasScrollX && styles['virtualScroller--hasScrollX']];
|
|
51
52
|
}
|
|
52
53
|
})({
|
|
53
54
|
position: 'relative',
|
|
@@ -66,14 +67,19 @@ const Scroller = (0, _system.styled)('div', {
|
|
|
66
67
|
// See https://github.com/mui/mui-x/issues/10547
|
|
67
68
|
zIndex: 0
|
|
68
69
|
});
|
|
70
|
+
const hasPinnedRightSelector = state => state.dimensions.rightPinnedWidth > 0;
|
|
69
71
|
function GridVirtualScroller(props) {
|
|
70
72
|
const apiRef = (0, _useGridApiContext.useGridApiContext)();
|
|
71
73
|
const rootProps = (0, _useGridRootProps.useGridRootProps)();
|
|
72
|
-
const
|
|
74
|
+
const hasScrollY = (0, _useGridSelector.useGridSelector)(apiRef, _gridDimensionsSelectors.gridHasScrollYSelector);
|
|
75
|
+
const hasScrollX = (0, _useGridSelector.useGridSelector)(apiRef, _gridDimensionsSelectors.gridHasScrollXSelector);
|
|
76
|
+
const hasPinnedRight = (0, _useGridSelector.useGridSelector)(apiRef, hasPinnedRightSelector);
|
|
77
|
+
const hasBottomFiller = (0, _useGridSelector.useGridSelector)(apiRef, _gridDimensionsSelectors.gridHasBottomFillerSelector);
|
|
73
78
|
const overlaysProps = (0, _useGridOverlays.useGridOverlays)();
|
|
74
79
|
const ownerState = {
|
|
75
80
|
classes: rootProps.classes,
|
|
76
|
-
|
|
81
|
+
hasScrollX,
|
|
82
|
+
hasPinnedRight,
|
|
77
83
|
loadingOverlayVariant: overlaysProps.loadingOverlayVariant
|
|
78
84
|
};
|
|
79
85
|
const classes = useUtilityClasses(ownerState);
|
|
@@ -85,18 +91,19 @@ function GridVirtualScroller(props) {
|
|
|
85
91
|
getRenderZoneProps,
|
|
86
92
|
getScrollbarVerticalProps,
|
|
87
93
|
getScrollbarHorizontalProps,
|
|
88
|
-
getRows
|
|
94
|
+
getRows,
|
|
95
|
+
getScrollAreaProps
|
|
89
96
|
} = virtualScroller;
|
|
90
97
|
const rows = getRows();
|
|
91
98
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_GridMainContainer.GridMainContainer, (0, _extends2.default)({
|
|
92
99
|
className: classes.root
|
|
93
100
|
}, getContainerProps(), {
|
|
94
101
|
ownerState: ownerState,
|
|
95
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_GridScrollArea.GridScrollArea, {
|
|
102
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_GridScrollArea.GridScrollArea, (0, _extends2.default)({
|
|
96
103
|
scrollDirection: "left"
|
|
97
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridScrollArea.GridScrollArea, {
|
|
104
|
+
}, getScrollAreaProps())), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridScrollArea.GridScrollArea, (0, _extends2.default)({
|
|
98
105
|
scrollDirection: "right"
|
|
99
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(Scroller, (0, _extends2.default)({
|
|
106
|
+
}, getScrollAreaProps())), /*#__PURE__*/(0, _jsxRuntime.jsxs)(Scroller, (0, _extends2.default)({
|
|
100
107
|
className: classes.scroller
|
|
101
108
|
}, getScrollerProps(), {
|
|
102
109
|
ownerState: ownerState,
|
|
@@ -111,7 +118,7 @@ function GridVirtualScroller(props) {
|
|
|
111
118
|
virtualScroller: virtualScroller
|
|
112
119
|
})]
|
|
113
120
|
}))
|
|
114
|
-
})), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridVirtualScrollerFiller.GridVirtualScrollerFiller, {
|
|
121
|
+
})), hasBottomFiller && /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridVirtualScrollerFiller.GridVirtualScrollerFiller, {
|
|
115
122
|
rowsLength: rows.length
|
|
116
123
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridBottomContainer.GridBottomContainer, {
|
|
117
124
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.pinnedRows, {
|
|
@@ -119,9 +126,9 @@ function GridVirtualScroller(props) {
|
|
|
119
126
|
virtualScroller: virtualScroller
|
|
120
127
|
})
|
|
121
128
|
})]
|
|
122
|
-
})),
|
|
129
|
+
})), hasScrollX && !rootProps.unstable_listView && /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridVirtualScrollbar.GridVirtualScrollbar, (0, _extends2.default)({
|
|
123
130
|
position: "horizontal"
|
|
124
|
-
}, getScrollbarHorizontalProps())),
|
|
131
|
+
}, getScrollbarHorizontalProps())), hasScrollY && /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridVirtualScrollbar.GridVirtualScrollbar, (0, _extends2.default)({
|
|
125
132
|
position: "vertical"
|
|
126
133
|
}, getScrollbarVerticalProps())), props.children]
|
|
127
134
|
}));
|
|
@@ -50,6 +50,7 @@ const DATA_GRID_PROPS_DEFAULT_VALUES = exports.DATA_GRID_PROPS_DEFAULT_VALUES =
|
|
|
50
50
|
pageSizeOptions: [25, 50, 100],
|
|
51
51
|
pagination: false,
|
|
52
52
|
paginationMode: 'client',
|
|
53
|
+
resetPageOnSortFilter: false,
|
|
53
54
|
resizeThrottleMs: 60,
|
|
54
55
|
rowBufferPx: 150,
|
|
55
56
|
rowHeight: 52,
|
|
@@ -7,20 +7,22 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.useGridRegisterPipeProcessor = void 0;
|
|
8
8
|
var React = _interopRequireWildcard(require("react"));
|
|
9
9
|
var _useFirstRender = require("../../utils/useFirstRender");
|
|
10
|
-
const useGridRegisterPipeProcessor = (apiRef, group, callback) => {
|
|
10
|
+
const useGridRegisterPipeProcessor = (apiRef, group, callback, enabled = true) => {
|
|
11
11
|
const cleanup = React.useRef(null);
|
|
12
12
|
const id = React.useRef(`mui-${Math.round(Math.random() * 1e9)}`);
|
|
13
13
|
const registerPreProcessor = React.useCallback(() => {
|
|
14
14
|
cleanup.current = apiRef.current.registerPipeProcessor(group, id.current, callback);
|
|
15
15
|
}, [apiRef, callback, group]);
|
|
16
16
|
(0, _useFirstRender.useFirstRender)(() => {
|
|
17
|
-
|
|
17
|
+
if (enabled) {
|
|
18
|
+
registerPreProcessor();
|
|
19
|
+
}
|
|
18
20
|
});
|
|
19
21
|
const isFirstRender = React.useRef(true);
|
|
20
22
|
React.useEffect(() => {
|
|
21
23
|
if (isFirstRender.current) {
|
|
22
24
|
isFirstRender.current = false;
|
|
23
|
-
} else {
|
|
25
|
+
} else if (enabled) {
|
|
24
26
|
registerPreProcessor();
|
|
25
27
|
}
|
|
26
28
|
return () => {
|
|
@@ -29,6 +31,6 @@ const useGridRegisterPipeProcessor = (apiRef, group, callback) => {
|
|
|
29
31
|
cleanup.current = null;
|
|
30
32
|
}
|
|
31
33
|
};
|
|
32
|
-
}, [registerPreProcessor]);
|
|
34
|
+
}, [registerPreProcessor, enabled]);
|
|
33
35
|
};
|
|
34
36
|
exports.useGridRegisterPipeProcessor = useGridRegisterPipeProcessor;
|
|
@@ -12,7 +12,6 @@ var _utils = require("../utils");
|
|
|
12
12
|
var _utils2 = require("../../utils/utils");
|
|
13
13
|
const useGridStateInitialization = apiRef => {
|
|
14
14
|
const controlStateMapRef = React.useRef({});
|
|
15
|
-
const [, rawForceUpdate] = React.useState();
|
|
16
15
|
const registerControlState = React.useCallback(controlStateItem => {
|
|
17
16
|
controlStateMapRef.current[controlStateItem.stateId] = controlStateItem;
|
|
18
17
|
}, []);
|
|
@@ -87,7 +86,9 @@ const useGridStateInitialization = apiRef => {
|
|
|
87
86
|
});
|
|
88
87
|
}, reason);
|
|
89
88
|
}, [apiRef]);
|
|
90
|
-
const forceUpdate = React.useCallback(() =>
|
|
89
|
+
const forceUpdate = React.useCallback(() => {
|
|
90
|
+
// @deprecated - do nothing
|
|
91
|
+
}, []);
|
|
91
92
|
const publicStateApi = {
|
|
92
93
|
setState,
|
|
93
94
|
forceUpdate
|
|
@@ -98,7 +98,7 @@ const useGridClipboard = (apiRef, props) => {
|
|
|
98
98
|
apiRef.current.publishEvent('clipboardCopy', textToCopy);
|
|
99
99
|
}
|
|
100
100
|
}, [apiRef, ignoreValueFormatter, clipboardCopyCellDelimiter]);
|
|
101
|
-
(0, _utils.useGridNativeEventListener)(apiRef, apiRef.current.rootElementRef, 'keydown', handleCopy);
|
|
101
|
+
(0, _utils.useGridNativeEventListener)(apiRef, () => apiRef.current.rootElementRef.current, 'keydown', handleCopy);
|
|
102
102
|
(0, _utils.useGridApiOptionHandler)(apiRef, 'clipboardCopy', props.onClipboardCopy);
|
|
103
103
|
};
|
|
104
104
|
exports.useGridClipboard = useGridClipboard;
|
|
@@ -15,7 +15,7 @@ var _useGridRootProps = require("../../utils/useGridRootProps");
|
|
|
15
15
|
var _useGridPrivateApiContext = require("../../utils/useGridPrivateApiContext");
|
|
16
16
|
var _useGridApiEventHandler = require("../../utils/useGridApiEventHandler");
|
|
17
17
|
var _GridColumnHeaderItem = require("../../../components/columnHeaders/GridColumnHeaderItem");
|
|
18
|
-
var
|
|
18
|
+
var _gridDimensionsSelectors = require("../dimensions/gridDimensionsSelectors");
|
|
19
19
|
var _virtualization = require("../virtualization");
|
|
20
20
|
var _useGridVirtualScroller = require("../virtualization/useGridVirtualScroller");
|
|
21
21
|
var _GridColumnGroupHeader = require("../../../components/columnHeaders/GridColumnGroupHeader");
|
|
@@ -54,19 +54,17 @@ const useGridColumnHeaders = props => {
|
|
|
54
54
|
const [resizeCol, setResizeCol] = React.useState('');
|
|
55
55
|
const apiRef = (0, _useGridPrivateApiContext.useGridPrivateApiContext)();
|
|
56
56
|
const rootProps = (0, _useGridRootProps.useGridRootProps)();
|
|
57
|
-
const dimensions = (0, _utils.useGridSelector)(apiRef, _dimensions.gridDimensionsSelector);
|
|
58
57
|
const columnGroupsModel = (0, _utils.useGridSelector)(apiRef, _gridColumnGroupsSelector.gridColumnGroupsUnwrappedModelSelector);
|
|
59
58
|
const columnPositions = (0, _utils.useGridSelector)(apiRef, _columns.gridColumnPositionsSelector);
|
|
60
59
|
const renderContext = (0, _utils.useGridSelector)(apiRef, _virtualization.gridRenderContextColumnsSelector);
|
|
61
60
|
const pinnedColumns = (0, _utils.useGridSelector)(apiRef, _columns.gridVisiblePinnedColumnDefinitionsSelector);
|
|
62
61
|
const columnsLookup = (0, _utils.useGridSelector)(apiRef, _columns.gridColumnLookupSelector);
|
|
63
62
|
const offsetLeft = (0, _useGridVirtualScroller.computeOffsetLeft)(columnPositions, renderContext, pinnedColumns.left.length);
|
|
64
|
-
const
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
}, [apiRef]);
|
|
63
|
+
const columnsTotalWidth = (0, _utils.useGridSelector)(apiRef, _gridDimensionsSelectors.gridColumnsTotalWidthSelector);
|
|
64
|
+
const gridHasFiller = (0, _utils.useGridSelector)(apiRef, _gridDimensionsSelectors.gridHasFillerSelector);
|
|
65
|
+
const headerHeight = (0, _utils.useGridSelector)(apiRef, _gridDimensionsSelectors.gridHeaderHeightSelector);
|
|
66
|
+
const groupHeaderHeight = (0, _utils.useGridSelector)(apiRef, _gridDimensionsSelectors.gridGroupHeaderHeightSelector);
|
|
67
|
+
const scrollbarWidth = (0, _utils.useGridSelector)(apiRef, _gridDimensionsSelectors.gridVerticalScrollbarWidthSelector);
|
|
70
68
|
const handleColumnResizeStart = React.useCallback(params => setResizeCol(params.field), []);
|
|
71
69
|
const handleColumnResizeStop = React.useCallback(() => setResizeCol(''), []);
|
|
72
70
|
const handleColumnReorderStart = React.useCallback(params => setDragCol(params.field), []);
|
|
@@ -138,8 +136,7 @@ const useGridColumnHeaders = props => {
|
|
|
138
136
|
const hasFocus = columnHeaderFocus !== null && columnHeaderFocus.field === colDef.field;
|
|
139
137
|
const open = columnMenuState.open && columnMenuState.field === colDef.field;
|
|
140
138
|
const pinnedPosition = params?.position;
|
|
141
|
-
const
|
|
142
|
-
const pinnedOffset = (0, _getPinnedCellOffset.getPinnedCellOffset)(pinnedPosition, colDef.computedWidth, columnIndex, columnPositions, dimensions.columnsTotalWidth, scrollbarWidth);
|
|
139
|
+
const pinnedOffset = (0, _getPinnedCellOffset.getPinnedCellOffset)(pinnedPosition, colDef.computedWidth, columnIndex, columnPositions, columnsTotalWidth, scrollbarWidth);
|
|
143
140
|
const siblingWithBorderingSeparator = pinnedPosition === _constants.PinnedColumnPosition.RIGHT ? renderedColumns[i - 1] : renderedColumns[i + 1];
|
|
144
141
|
const isSiblingFocused = siblingWithBorderingSeparator ? columnHeaderFocus !== null && columnHeaderFocus.field === siblingWithBorderingSeparator.field : false;
|
|
145
142
|
const isLastUnpinned = columnIndex + 1 === columnPositions.length - pinnedColumns.right.length;
|
|
@@ -150,7 +147,7 @@ const useGridColumnHeaders = props => {
|
|
|
150
147
|
columns.push(/*#__PURE__*/(0, _jsxRuntime.jsx)(_GridColumnHeaderItem.GridColumnHeaderItem, (0, _extends2.default)({}, sortColumnLookup[colDef.field], {
|
|
151
148
|
columnMenuOpen: open,
|
|
152
149
|
filterItemsCounter: filterColumnLookup[colDef.field] && filterColumnLookup[colDef.field].length,
|
|
153
|
-
headerHeight:
|
|
150
|
+
headerHeight: headerHeight,
|
|
154
151
|
isDragging: colDef.field === dragCol,
|
|
155
152
|
colDef: colDef,
|
|
156
153
|
colIndex: columnIndex,
|
|
@@ -242,8 +239,7 @@ const useGridColumnHeaders = props => {
|
|
|
242
239
|
tabIndex
|
|
243
240
|
};
|
|
244
241
|
const pinnedPosition = params.position;
|
|
245
|
-
const
|
|
246
|
-
const pinnedOffset = (0, _getPinnedCellOffset.getPinnedCellOffset)(pinnedPosition, headerInfo.width, columnIndex, columnPositions, dimensions.columnsTotalWidth, scrollbarWidth);
|
|
242
|
+
const pinnedOffset = (0, _getPinnedCellOffset.getPinnedCellOffset)(pinnedPosition, headerInfo.width, columnIndex, columnPositions, columnsTotalWidth, scrollbarWidth);
|
|
247
243
|
columnIndex += columnFields.length;
|
|
248
244
|
let indexInSection = index;
|
|
249
245
|
if (pinnedPosition === _constants.PinnedColumnPosition.LEFT) {
|
|
@@ -258,7 +254,7 @@ const useGridColumnHeaders = props => {
|
|
|
258
254
|
depth: depth,
|
|
259
255
|
isLastColumn: index === visibleColumnGroupHeader.length - 1,
|
|
260
256
|
maxDepth: headerGroupingMaxDepth,
|
|
261
|
-
height:
|
|
257
|
+
height: groupHeaderHeight,
|
|
262
258
|
hasFocus: hasFocus,
|
|
263
259
|
tabIndex: tabIndex,
|
|
264
260
|
pinnedPosition: pinnedPosition,
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.gridVisiblePinnedColumnDefinitionsSelector = exports.gridVisibleColumnFieldsSelector = exports.gridVisibleColumnDefinitionsSelector = exports.gridPinnedColumnsSelector = exports.gridHasColSpanSelector = exports.gridFilterableColumnLookupSelector = exports.gridFilterableColumnDefinitionsSelector = exports.
|
|
6
|
+
exports.gridVisiblePinnedColumnDefinitionsSelector = exports.gridVisibleColumnFieldsSelector = exports.gridVisibleColumnDefinitionsSelector = exports.gridPinnedColumnsSelector = exports.gridHasColSpanSelector = exports.gridFilterableColumnLookupSelector = exports.gridFilterableColumnDefinitionsSelector = exports.gridColumnsStateSelector = exports.gridColumnVisibilityModelSelector = exports.gridColumnPositionsSelector = exports.gridColumnLookupSelector = exports.gridColumnFieldsSelector = exports.gridColumnDefinitionsSelector = void 0;
|
|
7
7
|
var _createSelector = require("../../../utils/createSelector");
|
|
8
8
|
var _gridColumnsInterfaces = require("./gridColumnsInterfaces");
|
|
9
9
|
var _gridCoreSelector = require("../../core/gridCoreSelector");
|
|
@@ -114,18 +114,6 @@ const gridColumnPositionsSelector = exports.gridColumnPositionsSelector = (0, _c
|
|
|
114
114
|
return positions;
|
|
115
115
|
});
|
|
116
116
|
|
|
117
|
-
/**
|
|
118
|
-
* Get the summed width of all the visible columns.
|
|
119
|
-
* @category Visible Columns
|
|
120
|
-
*/
|
|
121
|
-
const gridColumnsTotalWidthSelector = exports.gridColumnsTotalWidthSelector = (0, _createSelector.createSelector)(gridVisibleColumnDefinitionsSelector, gridColumnPositionsSelector, (visibleColumns, positions) => {
|
|
122
|
-
const colCount = visibleColumns.length;
|
|
123
|
-
if (colCount === 0) {
|
|
124
|
-
return 0;
|
|
125
|
-
}
|
|
126
|
-
return positions[colCount - 1] + visibleColumns[colCount - 1].computedWidth;
|
|
127
|
-
});
|
|
128
|
-
|
|
129
117
|
/**
|
|
130
118
|
* Get the filterable columns as an array.
|
|
131
119
|
* @category Columns
|