@mui/x-data-grid 7.24.1 → 7.26.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 +148 -0
- package/DataGrid/DataGrid.js +1 -7
- package/DataGrid/useDataGridComponent.js +2 -2
- package/components/GridRow.d.ts +0 -1
- package/components/GridRow.js +32 -20
- package/components/GridScrollArea.d.ts +5 -2
- package/components/GridScrollArea.js +32 -25
- package/components/GridSkeletonLoadingOverlay.js +2 -1
- package/components/cell/GridCell.d.ts +9 -6
- package/components/cell/GridCell.js +29 -52
- package/components/containers/GridRoot.js +11 -9
- package/components/containers/GridRootStyles.js +138 -40
- package/components/toolbar/GridToolbarColumnsButton.js +5 -4
- package/components/toolbar/GridToolbarDensitySelector.js +2 -2
- package/components/toolbar/GridToolbarExportContainer.js +2 -2
- package/components/toolbar/GridToolbarFilterButton.js +4 -3
- package/components/virtualization/GridMainContainer.d.ts +10 -0
- package/components/virtualization/GridMainContainer.js +10 -2
- package/components/virtualization/GridVirtualScrollbar.d.ts +4 -0
- package/components/virtualization/GridVirtualScrollbar.js +5 -5
- package/components/virtualization/GridVirtualScroller.js +36 -16
- package/components/virtualization/GridVirtualScrollerContent.js +11 -2
- 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/columnHeaders/useGridColumnHeaders.js +10 -14
- package/hooks/features/columnResize/useGridColumnResize.js +2 -1
- package/hooks/features/columns/gridColumnsSelector.d.ts +0 -5
- package/hooks/features/columns/gridColumnsSelector.js +0 -12
- package/hooks/features/columns/useGridColumns.js +7 -3
- 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 +102 -77
- package/hooks/features/editing/gridEditingSelectors.d.ts +10 -0
- package/hooks/features/editing/gridEditingSelectors.js +12 -1
- package/hooks/features/editing/index.d.ts +1 -1
- package/hooks/features/editing/index.js +1 -1
- package/hooks/features/editing/useGridCellEditing.js +3 -3
- package/hooks/features/editing/useGridRowEditing.js +8 -9
- 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/focus/useGridFocus.js +3 -2
- package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +24 -16
- package/hooks/features/keyboardNavigation/utils.d.ts +1 -2
- package/hooks/features/keyboardNavigation/utils.js +0 -5
- package/hooks/features/listView/useGridListView.js +2 -1
- package/hooks/features/pagination/useGridPagination.js +1 -1
- package/hooks/features/rowSelection/useGridRowSelection.js +4 -4
- 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/useGridParamsApi.d.ts +1 -1
- package/hooks/features/rows/useGridParamsApi.js +33 -14
- package/hooks/features/rows/useGridRowSpanning.js +94 -91
- package/hooks/features/rows/useGridRows.js +7 -8
- package/hooks/features/rows/useGridRowsMeta.js +36 -19
- package/hooks/features/sorting/gridSortingSelector.js +10 -9
- package/hooks/features/virtualization/gridFocusedVirtualCellSelector.js +2 -2
- package/hooks/features/virtualization/useGridVirtualScroller.d.ts +15 -1
- package/hooks/features/virtualization/useGridVirtualScroller.js +74 -72
- 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/models/api/gridApiCommon.d.ts +2 -2
- package/models/api/gridParamsApi.d.ts +29 -2
- package/models/api/gridStateApi.d.ts +1 -0
- package/models/api/index.d.ts +1 -1
- package/models/api/index.js +0 -1
- package/models/events/gridEventLookup.d.ts +6 -0
- package/modern/DataGrid/DataGrid.js +1 -7
- package/modern/DataGrid/useDataGridComponent.js +2 -2
- package/modern/components/GridRow.js +32 -20
- package/modern/components/GridScrollArea.js +32 -25
- package/modern/components/GridSkeletonLoadingOverlay.js +2 -1
- package/modern/components/cell/GridCell.js +29 -52
- package/modern/components/containers/GridRoot.js +11 -9
- package/modern/components/containers/GridRootStyles.js +138 -40
- package/modern/components/toolbar/GridToolbarColumnsButton.js +5 -4
- package/modern/components/toolbar/GridToolbarDensitySelector.js +2 -2
- package/modern/components/toolbar/GridToolbarExportContainer.js +2 -2
- package/modern/components/toolbar/GridToolbarFilterButton.js +4 -3
- package/modern/components/virtualization/GridMainContainer.js +10 -2
- package/modern/components/virtualization/GridVirtualScrollbar.js +5 -5
- package/modern/components/virtualization/GridVirtualScroller.js +36 -16
- package/modern/components/virtualization/GridVirtualScrollerContent.js +11 -2
- package/modern/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.js +6 -4
- package/modern/hooks/core/useGridStateInitialization.js +3 -2
- package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +10 -14
- package/modern/hooks/features/columnResize/useGridColumnResize.js +2 -1
- package/modern/hooks/features/columns/gridColumnsSelector.js +0 -12
- package/modern/hooks/features/columns/useGridColumns.js +7 -3
- 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 +102 -77
- package/modern/hooks/features/editing/gridEditingSelectors.js +12 -1
- package/modern/hooks/features/editing/index.js +1 -1
- package/modern/hooks/features/editing/useGridCellEditing.js +3 -3
- package/modern/hooks/features/editing/useGridRowEditing.js +8 -9
- package/modern/hooks/features/filter/gridFilterState.js +5 -0
- package/modern/hooks/features/filter/useGridFilter.js +6 -13
- package/modern/hooks/features/focus/useGridFocus.js +3 -2
- package/modern/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +24 -16
- package/modern/hooks/features/keyboardNavigation/utils.js +0 -5
- package/modern/hooks/features/listView/useGridListView.js +2 -1
- package/modern/hooks/features/pagination/useGridPagination.js +1 -1
- package/modern/hooks/features/rowSelection/useGridRowSelection.js +4 -4
- package/modern/hooks/features/rowSelection/utils.js +1 -1
- package/modern/hooks/features/rows/gridRowsUtils.js +0 -16
- package/modern/hooks/features/rows/useGridParamsApi.js +33 -14
- package/modern/hooks/features/rows/useGridRowSpanning.js +94 -91
- package/modern/hooks/features/rows/useGridRows.js +7 -8
- package/modern/hooks/features/rows/useGridRowsMeta.js +36 -19
- package/modern/hooks/features/sorting/gridSortingSelector.js +10 -9
- package/modern/hooks/features/virtualization/gridFocusedVirtualCellSelector.js +2 -2
- package/modern/hooks/features/virtualization/useGridVirtualScroller.js +74 -72
- 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/models/api/index.js +0 -1
- package/modern/utils/roundToDecimalPlaces.js +3 -0
- package/modern/utils/utils.js +6 -1
- package/node/DataGrid/DataGrid.js +1 -7
- package/node/DataGrid/useDataGridComponent.js +2 -2
- package/node/components/GridRow.js +28 -17
- package/node/components/GridScrollArea.js +31 -24
- package/node/components/GridSkeletonLoadingOverlay.js +2 -1
- package/node/components/cell/GridCell.js +27 -50
- package/node/components/containers/GridRoot.js +10 -8
- package/node/components/containers/GridRootStyles.js +138 -40
- package/node/components/toolbar/GridToolbarColumnsButton.js +5 -4
- package/node/components/toolbar/GridToolbarDensitySelector.js +2 -2
- package/node/components/toolbar/GridToolbarExportContainer.js +2 -2
- package/node/components/toolbar/GridToolbarFilterButton.js +4 -3
- package/node/components/virtualization/GridMainContainer.js +10 -2
- package/node/components/virtualization/GridVirtualScrollbar.js +5 -5
- package/node/components/virtualization/GridVirtualScroller.js +36 -16
- package/node/components/virtualization/GridVirtualScrollerContent.js +11 -2
- package/node/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.js +6 -4
- package/node/hooks/core/useGridStateInitialization.js +3 -2
- package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +10 -14
- package/node/hooks/features/columnResize/useGridColumnResize.js +2 -1
- package/node/hooks/features/columns/gridColumnsSelector.js +1 -13
- package/node/hooks/features/columns/useGridColumns.js +7 -3
- 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 +99 -74
- package/node/hooks/features/editing/gridEditingSelectors.js +12 -2
- package/node/hooks/features/editing/index.js +7 -11
- package/node/hooks/features/editing/useGridCellEditing.js +2 -2
- package/node/hooks/features/editing/useGridRowEditing.js +6 -7
- package/node/hooks/features/filter/gridFilterState.js +6 -1
- package/node/hooks/features/filter/useGridFilter.js +5 -12
- package/node/hooks/features/focus/useGridFocus.js +3 -2
- package/node/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +24 -15
- package/node/hooks/features/keyboardNavigation/utils.js +0 -6
- package/node/hooks/features/listView/useGridListView.js +2 -1
- package/node/hooks/features/pagination/useGridPagination.js +1 -1
- package/node/hooks/features/rowSelection/useGridRowSelection.js +3 -3
- package/node/hooks/features/rowSelection/utils.js +1 -1
- package/node/hooks/features/rows/gridRowsUtils.js +0 -17
- package/node/hooks/features/rows/useGridParamsApi.js +33 -14
- package/node/hooks/features/rows/useGridRowSpanning.js +92 -89
- package/node/hooks/features/rows/useGridRows.js +7 -8
- package/node/hooks/features/rows/useGridRowsMeta.js +36 -19
- package/node/hooks/features/sorting/gridSortingSelector.js +10 -9
- package/node/hooks/features/virtualization/gridFocusedVirtualCellSelector.js +2 -2
- package/node/hooks/features/virtualization/useGridVirtualScroller.js +73 -71
- 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/models/api/index.js +0 -11
- package/node/utils/roundToDecimalPlaces.js +9 -0
- package/node/utils/utils.js +8 -1
- package/package.json +3 -2
- package/utils/roundToDecimalPlaces.d.ts +1 -0
- package/utils/roundToDecimalPlaces.js +3 -0
- package/utils/utils.d.ts +1 -0
- package/utils/utils.js +6 -1
|
@@ -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,53 +41,80 @@ 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',
|
|
48
|
-
overridesResolver: (props, styles) => [
|
|
48
|
+
overridesResolver: (props, styles) => [
|
|
49
|
+
// Root overrides
|
|
50
|
+
styles.root, {
|
|
49
51
|
[`&.${_gridClasses.gridClasses.autoHeight}`]: styles.autoHeight
|
|
50
52
|
}, {
|
|
51
|
-
[`&.${_gridClasses.gridClasses.
|
|
53
|
+
[`&.${_gridClasses.gridClasses.autosizing}`]: styles.autosizing
|
|
52
54
|
}, {
|
|
53
|
-
[`&.${_gridClasses.gridClasses['
|
|
55
|
+
[`&.${_gridClasses.gridClasses['root--densityStandard']}`]: styles['root--densityStandard']
|
|
54
56
|
}, {
|
|
55
|
-
[`&.${_gridClasses.gridClasses['
|
|
57
|
+
[`&.${_gridClasses.gridClasses['root--densityComfortable']}`]: styles['root--densityComfortable']
|
|
56
58
|
}, {
|
|
57
|
-
[`&.${_gridClasses.gridClasses['
|
|
59
|
+
[`&.${_gridClasses.gridClasses['root--densityCompact']}`]: styles['root--densityCompact']
|
|
58
60
|
}, {
|
|
59
|
-
[`&.${_gridClasses.gridClasses
|
|
61
|
+
[`&.${_gridClasses.gridClasses['root--disableUserSelection']}`]: styles['root--disableUserSelection']
|
|
60
62
|
}, {
|
|
61
|
-
[`&.${_gridClasses.gridClasses['root--
|
|
63
|
+
[`&.${_gridClasses.gridClasses['root--noToolbar']}`]: styles['root--noToolbar']
|
|
62
64
|
}, {
|
|
63
|
-
[`&.${_gridClasses.gridClasses.
|
|
65
|
+
[`&.${_gridClasses.gridClasses.withVerticalBorder}`]: styles.withVerticalBorder
|
|
66
|
+
},
|
|
67
|
+
// Child element overrides
|
|
68
|
+
// - Only declare overrides here for class names that are not applied to `styled` components.
|
|
69
|
+
// - For `styled` components, declare overrides in the component itself.
|
|
70
|
+
{
|
|
71
|
+
[`& .${_gridClasses.gridClasses.actionsCell}`]: styles.actionsCell
|
|
64
72
|
}, {
|
|
65
|
-
[`& .${_gridClasses.gridClasses.
|
|
73
|
+
[`& .${_gridClasses.gridClasses.booleanCell}`]: styles.booleanCell
|
|
66
74
|
}, {
|
|
67
75
|
[`& .${_gridClasses.gridClasses.cell}`]: styles.cell
|
|
76
|
+
}, {
|
|
77
|
+
[`& .${_gridClasses.gridClasses['cell--editable']}`]: styles['cell--editable']
|
|
68
78
|
}, {
|
|
69
79
|
[`& .${_gridClasses.gridClasses['cell--editing']}`]: styles['cell--editing']
|
|
70
80
|
}, {
|
|
71
|
-
[`& .${_gridClasses.gridClasses['cell--
|
|
81
|
+
[`& .${_gridClasses.gridClasses['cell--flex']}`]: styles['cell--flex']
|
|
72
82
|
}, {
|
|
73
|
-
[`& .${_gridClasses.gridClasses['cell--
|
|
83
|
+
[`& .${_gridClasses.gridClasses['cell--pinnedLeft']}`]: styles['cell--pinnedLeft']
|
|
74
84
|
}, {
|
|
75
|
-
[`& .${_gridClasses.gridClasses['cell--
|
|
76
|
-
}, {
|
|
77
|
-
[`& .${_gridClasses.gridClasses['cell--rangeTop']}`]: styles['cell--rangeTop']
|
|
85
|
+
[`& .${_gridClasses.gridClasses['cell--pinnedRight']}`]: styles['cell--pinnedRight']
|
|
78
86
|
}, {
|
|
79
87
|
[`& .${_gridClasses.gridClasses['cell--rangeBottom']}`]: styles['cell--rangeBottom']
|
|
80
88
|
}, {
|
|
81
89
|
[`& .${_gridClasses.gridClasses['cell--rangeLeft']}`]: styles['cell--rangeLeft']
|
|
82
90
|
}, {
|
|
83
91
|
[`& .${_gridClasses.gridClasses['cell--rangeRight']}`]: styles['cell--rangeRight']
|
|
92
|
+
}, {
|
|
93
|
+
[`& .${_gridClasses.gridClasses['cell--rangeTop']}`]: styles['cell--rangeTop']
|
|
94
|
+
}, {
|
|
95
|
+
[`& .${_gridClasses.gridClasses['cell--selectionMode']}`]: styles['cell--selectionMode']
|
|
96
|
+
}, {
|
|
97
|
+
[`& .${_gridClasses.gridClasses['cell--textCenter']}`]: styles['cell--textCenter']
|
|
98
|
+
}, {
|
|
99
|
+
[`& .${_gridClasses.gridClasses['cell--textLeft']}`]: styles['cell--textLeft']
|
|
100
|
+
}, {
|
|
101
|
+
[`& .${_gridClasses.gridClasses['cell--textRight']}`]: styles['cell--textRight']
|
|
102
|
+
}, {
|
|
103
|
+
[`& .${_gridClasses.gridClasses['cell--withLeftBorder']}`]: styles['cell--withLeftBorder']
|
|
84
104
|
}, {
|
|
85
105
|
[`& .${_gridClasses.gridClasses['cell--withRightBorder']}`]: styles['cell--withRightBorder']
|
|
86
106
|
}, {
|
|
87
107
|
[`& .${_gridClasses.gridClasses.cellCheckbox}`]: styles.cellCheckbox
|
|
108
|
+
}, {
|
|
109
|
+
[`& .${_gridClasses.gridClasses.cellEmpty}`]: styles.cellEmpty
|
|
110
|
+
}, {
|
|
111
|
+
[`& .${_gridClasses.gridClasses.cellOffsetLeft}`]: styles.cellOffsetLeft
|
|
88
112
|
}, {
|
|
89
113
|
[`& .${_gridClasses.gridClasses.cellSkeleton}`]: styles.cellSkeleton
|
|
90
114
|
}, {
|
|
91
115
|
[`& .${_gridClasses.gridClasses.checkboxInput}`]: styles.checkboxInput
|
|
116
|
+
}, {
|
|
117
|
+
[`& .${_gridClasses.gridClasses.columnHeader}`]: styles.columnHeader
|
|
92
118
|
}, {
|
|
93
119
|
[`& .${_gridClasses.gridClasses['columnHeader--alignCenter']}`]: styles['columnHeader--alignCenter']
|
|
94
120
|
}, {
|
|
@@ -97,80 +123,156 @@ const GridRootStyles = exports.GridRootStyles = (0, _styles.styled)('div', {
|
|
|
97
123
|
[`& .${_gridClasses.gridClasses['columnHeader--alignRight']}`]: styles['columnHeader--alignRight']
|
|
98
124
|
}, {
|
|
99
125
|
[`& .${_gridClasses.gridClasses['columnHeader--dragging']}`]: styles['columnHeader--dragging']
|
|
126
|
+
}, {
|
|
127
|
+
[`& .${_gridClasses.gridClasses['columnHeader--emptyGroup']}`]: styles['columnHeader--emptyGroup']
|
|
128
|
+
}, {
|
|
129
|
+
[`& .${_gridClasses.gridClasses['columnHeader--filledGroup']}`]: styles['columnHeader--filledGroup']
|
|
130
|
+
}, {
|
|
131
|
+
[`& .${_gridClasses.gridClasses['columnHeader--filtered']}`]: styles['columnHeader--filtered']
|
|
132
|
+
}, {
|
|
133
|
+
[`& .${_gridClasses.gridClasses['columnHeader--last']}`]: styles['columnHeader--last']
|
|
134
|
+
}, {
|
|
135
|
+
[`& .${_gridClasses.gridClasses['columnHeader--lastUnpinned']}`]: styles['columnHeader--lastUnpinned']
|
|
100
136
|
}, {
|
|
101
137
|
[`& .${_gridClasses.gridClasses['columnHeader--moving']}`]: styles['columnHeader--moving']
|
|
102
138
|
}, {
|
|
103
139
|
[`& .${_gridClasses.gridClasses['columnHeader--numeric']}`]: styles['columnHeader--numeric']
|
|
140
|
+
}, {
|
|
141
|
+
[`& .${_gridClasses.gridClasses['columnHeader--pinnedLeft']}`]: styles['columnHeader--pinnedLeft']
|
|
142
|
+
}, {
|
|
143
|
+
[`& .${_gridClasses.gridClasses['columnHeader--pinnedRight']}`]: styles['columnHeader--pinnedRight']
|
|
144
|
+
}, {
|
|
145
|
+
[`& .${_gridClasses.gridClasses['columnHeader--siblingFocused']}`]: styles['columnHeader--siblingFocused']
|
|
104
146
|
}, {
|
|
105
147
|
[`& .${_gridClasses.gridClasses['columnHeader--sortable']}`]: styles['columnHeader--sortable']
|
|
106
148
|
}, {
|
|
107
149
|
[`& .${_gridClasses.gridClasses['columnHeader--sorted']}`]: styles['columnHeader--sorted']
|
|
108
150
|
}, {
|
|
109
|
-
[`& .${_gridClasses.gridClasses['columnHeader--
|
|
110
|
-
}, {
|
|
111
|
-
[`& .${_gridClasses.gridClasses.columnHeader}`]: styles.columnHeader
|
|
151
|
+
[`& .${_gridClasses.gridClasses['columnHeader--withLeftBorder']}`]: styles['columnHeader--withLeftBorder']
|
|
112
152
|
}, {
|
|
113
|
-
[`& .${_gridClasses.gridClasses
|
|
153
|
+
[`& .${_gridClasses.gridClasses['columnHeader--withRightBorder']}`]: styles['columnHeader--withRightBorder']
|
|
114
154
|
}, {
|
|
115
155
|
[`& .${_gridClasses.gridClasses.columnHeaderCheckbox}`]: styles.columnHeaderCheckbox
|
|
116
156
|
}, {
|
|
117
157
|
[`& .${_gridClasses.gridClasses.columnHeaderDraggableContainer}`]: styles.columnHeaderDraggableContainer
|
|
118
158
|
}, {
|
|
119
159
|
[`& .${_gridClasses.gridClasses.columnHeaderTitleContainer}`]: styles.columnHeaderTitleContainer
|
|
160
|
+
}, {
|
|
161
|
+
[`& .${_gridClasses.gridClasses.columnHeaderTitleContainerContent}`]: styles.columnHeaderTitleContainerContent
|
|
162
|
+
}, {
|
|
163
|
+
[`& .${_gridClasses.gridClasses.columnSeparator}`]: styles.columnSeparator
|
|
120
164
|
}, {
|
|
121
165
|
[`& .${_gridClasses.gridClasses['columnSeparator--resizable']}`]: styles['columnSeparator--resizable']
|
|
122
166
|
}, {
|
|
123
167
|
[`& .${_gridClasses.gridClasses['columnSeparator--resizing']}`]: styles['columnSeparator--resizing']
|
|
124
168
|
}, {
|
|
125
|
-
[`& .${_gridClasses.gridClasses
|
|
169
|
+
[`& .${_gridClasses.gridClasses['columnSeparator--sideLeft']}`]: styles['columnSeparator--sideLeft']
|
|
170
|
+
}, {
|
|
171
|
+
[`& .${_gridClasses.gridClasses['columnSeparator--sideRight']}`]: styles['columnSeparator--sideRight']
|
|
172
|
+
}, {
|
|
173
|
+
[`& .${_gridClasses.gridClasses['container--bottom']}`]: styles['container--bottom']
|
|
174
|
+
}, {
|
|
175
|
+
[`& .${_gridClasses.gridClasses['container--top']}`]: styles['container--top']
|
|
176
|
+
}, {
|
|
177
|
+
[`& .${_gridClasses.gridClasses.detailPanelToggleCell}`]: styles.detailPanelToggleCell
|
|
178
|
+
}, {
|
|
179
|
+
[`& .${_gridClasses.gridClasses['detailPanelToggleCell--expanded']}`]: styles['detailPanelToggleCell--expanded']
|
|
180
|
+
}, {
|
|
181
|
+
[`& .${_gridClasses.gridClasses.editBooleanCell}`]: styles.editBooleanCell
|
|
126
182
|
}, {
|
|
127
183
|
[`& .${_gridClasses.gridClasses.filterIcon}`]: styles.filterIcon
|
|
184
|
+
}, {
|
|
185
|
+
[`& .${_gridClasses.gridClasses['filler--borderBottom']}`]: styles['filler--borderBottom']
|
|
186
|
+
}, {
|
|
187
|
+
[`& .${_gridClasses.gridClasses['filler--pinnedLeft']}`]: styles['filler--pinnedLeft']
|
|
188
|
+
}, {
|
|
189
|
+
[`& .${_gridClasses.gridClasses['filler--pinnedRight']}`]: styles['filler--pinnedRight']
|
|
190
|
+
}, {
|
|
191
|
+
[`& .${_gridClasses.gridClasses.groupingCriteriaCell}`]: styles.groupingCriteriaCell
|
|
192
|
+
}, {
|
|
193
|
+
[`& .${_gridClasses.gridClasses.groupingCriteriaCellLoadingContainer}`]: styles.groupingCriteriaCellLoadingContainer
|
|
194
|
+
}, {
|
|
195
|
+
[`& .${_gridClasses.gridClasses.groupingCriteriaCellToggle}`]: styles.groupingCriteriaCellToggle
|
|
196
|
+
}, {
|
|
197
|
+
[`& .${_gridClasses.gridClasses.headerFilterRow}`]: styles.headerFilterRow
|
|
128
198
|
}, {
|
|
129
199
|
[`& .${_gridClasses.gridClasses.iconSeparator}`]: styles.iconSeparator
|
|
130
200
|
}, {
|
|
131
201
|
[`& .${_gridClasses.gridClasses.menuIcon}`]: styles.menuIcon
|
|
132
202
|
}, {
|
|
133
203
|
[`& .${_gridClasses.gridClasses.menuIconButton}`]: styles.menuIconButton
|
|
204
|
+
}, {
|
|
205
|
+
[`& .${_gridClasses.gridClasses.menuList}`]: styles.menuList
|
|
134
206
|
}, {
|
|
135
207
|
[`& .${_gridClasses.gridClasses.menuOpen}`]: styles.menuOpen
|
|
136
208
|
}, {
|
|
137
|
-
[`& .${_gridClasses.gridClasses.
|
|
209
|
+
[`& .${_gridClasses.gridClasses.overlayWrapperInner}`]: styles.overlayWrapperInner
|
|
138
210
|
}, {
|
|
139
|
-
[`& .${_gridClasses.gridClasses
|
|
211
|
+
[`& .${_gridClasses.gridClasses.pinnedRows}`]: styles.pinnedRows
|
|
140
212
|
}, {
|
|
141
|
-
[`& .${_gridClasses.gridClasses['
|
|
213
|
+
[`& .${_gridClasses.gridClasses['pinnedRows--bottom']}`]: styles['pinnedRows--bottom']
|
|
142
214
|
}, {
|
|
143
|
-
[`& .${_gridClasses.gridClasses['
|
|
215
|
+
[`& .${_gridClasses.gridClasses['pinnedRows--top']}`]: styles['pinnedRows--top']
|
|
144
216
|
}, {
|
|
145
217
|
[`& .${_gridClasses.gridClasses.row}`]: styles.row
|
|
146
218
|
}, {
|
|
147
|
-
[`& .${_gridClasses.gridClasses
|
|
219
|
+
[`& .${_gridClasses.gridClasses['row--borderBottom']}`]: styles['row--borderBottom']
|
|
220
|
+
}, {
|
|
221
|
+
[`& .${_gridClasses.gridClasses['row--detailPanelExpanded']}`]: styles['row--detailPanelExpanded']
|
|
222
|
+
}, {
|
|
223
|
+
[`& .${_gridClasses.gridClasses['row--dragging']}`]: styles['row--dragging']
|
|
224
|
+
}, {
|
|
225
|
+
[`& .${_gridClasses.gridClasses['row--dynamicHeight']}`]: styles['row--dynamicHeight']
|
|
226
|
+
}, {
|
|
227
|
+
[`& .${_gridClasses.gridClasses['row--editable']}`]: styles['row--editable']
|
|
228
|
+
}, {
|
|
229
|
+
[`& .${_gridClasses.gridClasses['row--editing']}`]: styles['row--editing']
|
|
230
|
+
}, {
|
|
231
|
+
[`& .${_gridClasses.gridClasses['row--firstVisible']}`]: styles['row--firstVisible']
|
|
232
|
+
}, {
|
|
233
|
+
[`& .${_gridClasses.gridClasses['row--lastVisible']}`]: styles['row--lastVisible']
|
|
148
234
|
}, {
|
|
149
235
|
[`& .${_gridClasses.gridClasses.rowReorderCell}`]: styles.rowReorderCell
|
|
150
236
|
}, {
|
|
151
237
|
[`& .${_gridClasses.gridClasses['rowReorderCell--draggable']}`]: styles['rowReorderCell--draggable']
|
|
152
238
|
}, {
|
|
153
|
-
[`& .${_gridClasses.gridClasses.
|
|
239
|
+
[`& .${_gridClasses.gridClasses.rowReorderCellContainer}`]: styles.rowReorderCellContainer
|
|
154
240
|
}, {
|
|
155
|
-
[`& .${_gridClasses.gridClasses.
|
|
241
|
+
[`& .${_gridClasses.gridClasses.rowReorderCellPlaceholder}`]: styles.rowReorderCellPlaceholder
|
|
156
242
|
}, {
|
|
157
|
-
[`& .${_gridClasses.gridClasses.
|
|
243
|
+
[`& .${_gridClasses.gridClasses.rowSkeleton}`]: styles.rowSkeleton
|
|
158
244
|
}, {
|
|
159
|
-
[`& .${_gridClasses.gridClasses.
|
|
245
|
+
[`& .${_gridClasses.gridClasses.scrollbar}`]: styles.scrollbar
|
|
160
246
|
}, {
|
|
161
|
-
[`& .${_gridClasses.gridClasses
|
|
247
|
+
[`& .${_gridClasses.gridClasses['scrollbar--horizontal']}`]: styles['scrollbar--horizontal']
|
|
162
248
|
}, {
|
|
163
|
-
[`& .${_gridClasses.gridClasses
|
|
249
|
+
[`& .${_gridClasses.gridClasses['scrollbar--vertical']}`]: styles['scrollbar--vertical']
|
|
164
250
|
}, {
|
|
165
|
-
[`& .${_gridClasses.gridClasses.
|
|
251
|
+
[`& .${_gridClasses.gridClasses.scrollbarFiller}`]: styles.scrollbarFiller
|
|
166
252
|
}, {
|
|
167
|
-
[`& .${_gridClasses.gridClasses['
|
|
168
|
-
},
|
|
253
|
+
[`& .${_gridClasses.gridClasses['scrollbarFiller--borderBottom']}`]: styles['scrollbarFiller--borderBottom']
|
|
254
|
+
}, {
|
|
255
|
+
[`& .${_gridClasses.gridClasses['scrollbarFiller--borderTop']}`]: styles['scrollbarFiller--borderTop']
|
|
256
|
+
}, {
|
|
257
|
+
[`& .${_gridClasses.gridClasses['scrollbarFiller--header']}`]: styles['scrollbarFiller--header']
|
|
258
|
+
}, {
|
|
259
|
+
[`& .${_gridClasses.gridClasses['scrollbarFiller--pinnedRight']}`]: styles['scrollbarFiller--pinnedRight']
|
|
260
|
+
}, {
|
|
261
|
+
[`& .${_gridClasses.gridClasses.sortIcon}`]: styles.sortIcon
|
|
262
|
+
}, {
|
|
263
|
+
[`& .${_gridClasses.gridClasses.treeDataGroupingCell}`]: styles.treeDataGroupingCell
|
|
264
|
+
}, {
|
|
265
|
+
[`& .${_gridClasses.gridClasses.treeDataGroupingCellLoadingContainer}`]: styles.treeDataGroupingCellLoadingContainer
|
|
266
|
+
}, {
|
|
267
|
+
[`& .${_gridClasses.gridClasses.treeDataGroupingCellToggle}`]: styles.treeDataGroupingCellToggle
|
|
268
|
+
}, {
|
|
269
|
+
[`& .${_gridClasses.gridClasses.withBorderColor}`]: styles.withBorderColor
|
|
270
|
+
}]
|
|
169
271
|
})(({
|
|
170
272
|
theme: t
|
|
171
273
|
}) => {
|
|
172
274
|
const apiRef = (0, _useGridPrivateApiContext.useGridPrivateApiContext)();
|
|
173
|
-
const
|
|
275
|
+
const shouldShowBorderTopRightRadius = (0, _useGridSelector.useGridSelector)(apiRef, shouldShowBorderTopRightRadiusSelector);
|
|
174
276
|
const borderColor = getBorderColor(t);
|
|
175
277
|
const radius = t.shape.borderRadius;
|
|
176
278
|
const containerBackground = t.vars ? t.vars.palette.background.default : t.mixins.MuiDataGrid?.containerBackground ?? t.palette.background.default;
|
|
@@ -262,10 +364,6 @@ const GridRootStyles = exports.GridRootStyles = (0, _styles.styled)('div', {
|
|
|
262
364
|
overflow: 'visible !important'
|
|
263
365
|
},
|
|
264
366
|
'@media (hover: hover)': {
|
|
265
|
-
[`& .${_gridClasses.gridClasses.iconButtonContainer}`]: {
|
|
266
|
-
width: '0 !important',
|
|
267
|
-
visibility: 'hidden !important'
|
|
268
|
-
},
|
|
269
367
|
[`& .${_gridClasses.gridClasses.menuIcon}`]: {
|
|
270
368
|
width: '0 !important',
|
|
271
369
|
visibility: 'hidden !important'
|
|
@@ -326,7 +424,7 @@ const GridRootStyles = exports.GridRootStyles = (0, _styles.styled)('div', {
|
|
|
326
424
|
borderTopLeftRadius: 'calc(var(--unstable_DataGrid-radius) - 1px)'
|
|
327
425
|
},
|
|
328
426
|
[`&.${_gridClasses.gridClasses['root--noToolbar']} [aria-rowindex="1"] .${_gridClasses.gridClasses['columnHeader--last']}`]: {
|
|
329
|
-
borderTopRightRadius:
|
|
427
|
+
borderTopRightRadius: shouldShowBorderTopRightRadius ? 'calc(var(--unstable_DataGrid-radius) - 1px)' : undefined
|
|
330
428
|
},
|
|
331
429
|
[`& .${_gridClasses.gridClasses.columnHeaderCheckbox}, & .${_gridClasses.gridClasses.cellCheckbox}`]: {
|
|
332
430
|
padding: 0,
|
|
@@ -53,14 +53,15 @@ const GridToolbarColumnsButton = exports.GridToolbarColumnsButton = (0, _forward
|
|
|
53
53
|
"aria-haspopup": "menu",
|
|
54
54
|
"aria-expanded": isOpen,
|
|
55
55
|
"aria-controls": isOpen ? columnPanelId : undefined,
|
|
56
|
-
startIcon: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.columnSelectorIcon, {})
|
|
57
|
-
|
|
56
|
+
startIcon: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.columnSelectorIcon, {})
|
|
57
|
+
}, rootProps.slotProps?.baseButton, buttonProps, {
|
|
58
58
|
onPointerUp: event => {
|
|
59
59
|
if (preferencePanel.open) {
|
|
60
60
|
event.stopPropagation();
|
|
61
61
|
}
|
|
62
|
-
|
|
63
|
-
|
|
62
|
+
buttonProps.onPointerUp?.(event);
|
|
63
|
+
},
|
|
64
|
+
onClick: showColumns,
|
|
64
65
|
ref: ref,
|
|
65
66
|
children: apiRef.current.getLocaleText('toolbarColumns')
|
|
66
67
|
}))
|
|
@@ -102,9 +102,9 @@ const GridToolbarDensitySelector = exports.GridToolbarDensitySelector = (0, _for
|
|
|
102
102
|
"aria-haspopup": "menu",
|
|
103
103
|
"aria-expanded": open,
|
|
104
104
|
"aria-controls": open ? densityMenuId : undefined,
|
|
105
|
-
id: densityButtonId
|
|
106
|
-
onClick: handleDensitySelectorOpen
|
|
105
|
+
id: densityButtonId
|
|
107
106
|
}, rootProps.slotProps?.baseButton, buttonProps, {
|
|
107
|
+
onClick: handleDensitySelectorOpen,
|
|
108
108
|
ref: handleRef,
|
|
109
109
|
children: apiRef.current.getLocaleText('toolbarDensity')
|
|
110
110
|
}))
|
|
@@ -60,9 +60,9 @@ const GridToolbarExportContainer = exports.GridToolbarExportContainer = (0, _for
|
|
|
60
60
|
"aria-label": apiRef.current.getLocaleText('toolbarExportLabel'),
|
|
61
61
|
"aria-haspopup": "menu",
|
|
62
62
|
"aria-controls": open ? exportMenuId : undefined,
|
|
63
|
-
id: exportButtonId
|
|
64
|
-
onClick: handleMenuOpen
|
|
63
|
+
id: exportButtonId
|
|
65
64
|
}, rootProps.slotProps?.baseButton, buttonProps, {
|
|
65
|
+
onClick: handleMenuOpen,
|
|
66
66
|
ref: handleRef,
|
|
67
67
|
children: apiRef.current.getLocaleText('toolbarExport')
|
|
68
68
|
}))
|
|
@@ -117,14 +117,15 @@ const GridToolbarFilterButton = exports.GridToolbarFilterButton = (0, _forwardRe
|
|
|
117
117
|
color: "primary"
|
|
118
118
|
}, rootProps.slotProps?.baseBadge, badgeProps, {
|
|
119
119
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.openFilterButtonIcon, {})
|
|
120
|
-
}))
|
|
120
|
+
}))
|
|
121
|
+
}, rootProps.slotProps?.baseButton, buttonProps, {
|
|
121
122
|
onClick: toggleFilter,
|
|
122
123
|
onPointerUp: event => {
|
|
123
124
|
if (preferencePanel.open) {
|
|
124
125
|
event.stopPropagation();
|
|
125
126
|
}
|
|
126
|
-
|
|
127
|
-
|
|
127
|
+
buttonProps.onPointerUp?.(event);
|
|
128
|
+
},
|
|
128
129
|
ref: ref,
|
|
129
130
|
children: apiRef.current.getLocaleText('toolbarFilters')
|
|
130
131
|
}))
|
|
@@ -22,7 +22,12 @@ const GridPanelAnchor = (0, _system.styled)('div')({
|
|
|
22
22
|
const Element = (0, _system.styled)('div', {
|
|
23
23
|
name: 'MuiDataGrid',
|
|
24
24
|
slot: 'Main',
|
|
25
|
-
overridesResolver: (props, styles) =>
|
|
25
|
+
overridesResolver: (props, styles) => {
|
|
26
|
+
const {
|
|
27
|
+
ownerState
|
|
28
|
+
} = props;
|
|
29
|
+
return [styles.main, ownerState.hasPinnedRight && styles['main--hasPinnedRight'], ownerState.loadingOverlayVariant === 'skeleton' && styles['main--hasSkeletonLoadingOverlay']];
|
|
30
|
+
}
|
|
26
31
|
})({
|
|
27
32
|
flexGrow: 1,
|
|
28
33
|
position: 'relative',
|
|
@@ -31,11 +36,14 @@ const Element = (0, _system.styled)('div', {
|
|
|
31
36
|
flexDirection: 'column'
|
|
32
37
|
});
|
|
33
38
|
const GridMainContainer = exports.GridMainContainer = (0, _forwardRef.forwardRef)((props, ref) => {
|
|
39
|
+
const {
|
|
40
|
+
ownerState
|
|
41
|
+
} = props;
|
|
34
42
|
const rootProps = (0, _useGridRootProps.useGridRootProps)();
|
|
35
43
|
const configuration = (0, _useGridConfiguration.useGridConfiguration)();
|
|
36
44
|
const ariaAttributes = configuration.hooks.useGridAriaAttributes();
|
|
37
45
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(Element, (0, _extends2.default)({
|
|
38
|
-
ownerState:
|
|
46
|
+
ownerState: ownerState,
|
|
39
47
|
className: props.className,
|
|
40
48
|
tabIndex: -1
|
|
41
49
|
}, ariaAttributes, rootProps.slotProps?.main, {
|
|
@@ -74,26 +74,27 @@ const GridVirtualScrollbar = exports.GridVirtualScrollbar = (0, _forwardRef.forw
|
|
|
74
74
|
const dimensions = (0, _hooks.useGridSelector)(apiRef, _hooks.gridDimensionsSelector);
|
|
75
75
|
const propertyDimension = props.position === 'vertical' ? 'height' : 'width';
|
|
76
76
|
const propertyScroll = props.position === 'vertical' ? 'scrollTop' : 'scrollLeft';
|
|
77
|
+
const propertyScrollPosition = props.position === 'vertical' ? 'top' : 'left';
|
|
77
78
|
const hasScroll = props.position === 'vertical' ? dimensions.hasScrollX : dimensions.hasScrollY;
|
|
78
79
|
const contentSize = dimensions.minimumSize[propertyDimension] + (hasScroll ? dimensions.scrollbarSize : 0);
|
|
79
80
|
const scrollbarSize = props.position === 'vertical' ? dimensions.viewportInnerSize.height : dimensions.viewportOuterSize.width;
|
|
80
81
|
const scrollbarInnerSize = scrollbarSize * (contentSize / dimensions.viewportOuterSize[propertyDimension]);
|
|
81
82
|
const onScrollerScroll = (0, _utils.unstable_useEventCallback)(() => {
|
|
82
|
-
const scroller = apiRef.current.virtualScrollerRef.current;
|
|
83
83
|
const scrollbar = scrollbarRef.current;
|
|
84
|
+
const scrollPosition = props.scrollPosition.current;
|
|
84
85
|
if (!scrollbar) {
|
|
85
86
|
return;
|
|
86
87
|
}
|
|
87
|
-
if (
|
|
88
|
+
if (scrollPosition[propertyScrollPosition] === lastPosition.current) {
|
|
88
89
|
return;
|
|
89
90
|
}
|
|
90
|
-
lastPosition.current =
|
|
91
|
+
lastPosition.current = scrollPosition[propertyScrollPosition];
|
|
91
92
|
if (isLocked.current) {
|
|
92
93
|
isLocked.current = false;
|
|
93
94
|
return;
|
|
94
95
|
}
|
|
95
96
|
isLocked.current = true;
|
|
96
|
-
const value =
|
|
97
|
+
const value = scrollPosition[propertyScrollPosition] / contentSize;
|
|
97
98
|
scrollbar[propertyScroll] = value * scrollbarInnerSize;
|
|
98
99
|
});
|
|
99
100
|
const onScrollbarScroll = (0, _utils.unstable_useEventCallback)(() => {
|
|
@@ -114,7 +115,6 @@ const GridVirtualScrollbar = exports.GridVirtualScrollbar = (0, _forwardRef.forw
|
|
|
114
115
|
const scroller = apiRef.current.virtualScrollerRef.current;
|
|
115
116
|
const scrollbar = scrollbarRef.current;
|
|
116
117
|
const options = {
|
|
117
|
-
capture: true,
|
|
118
118
|
passive: true
|
|
119
119
|
};
|
|
120
120
|
scroller.addEventListener('scroll', onScrollerScroll, options);
|
|
@@ -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");
|
|
@@ -28,20 +28,28 @@ var _GridVirtualScrollerFiller = require("./GridVirtualScrollerFiller");
|
|
|
28
28
|
var _GridVirtualScrollerRenderZone = require("./GridVirtualScrollerRenderZone");
|
|
29
29
|
var _GridVirtualScrollbar = require("./GridVirtualScrollbar");
|
|
30
30
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
31
|
-
const useUtilityClasses =
|
|
31
|
+
const useUtilityClasses = ownerState => {
|
|
32
32
|
const {
|
|
33
|
-
classes
|
|
33
|
+
classes,
|
|
34
|
+
hasScrollX,
|
|
35
|
+
hasPinnedRight,
|
|
36
|
+
loadingOverlayVariant
|
|
34
37
|
} = ownerState;
|
|
35
38
|
const slots = {
|
|
36
|
-
root: ['main',
|
|
37
|
-
scroller: ['virtualScroller',
|
|
39
|
+
root: ['main', hasPinnedRight && 'main--hasPinnedRight', loadingOverlayVariant === 'skeleton' && 'main--hasSkeletonLoadingOverlay'],
|
|
40
|
+
scroller: ['virtualScroller', hasScrollX && 'virtualScroller--hasScrollX']
|
|
38
41
|
};
|
|
39
42
|
return (0, _composeClasses.default)(slots, _gridClasses.getDataGridUtilityClass, classes);
|
|
40
43
|
};
|
|
41
44
|
const Scroller = (0, _system.styled)('div', {
|
|
42
45
|
name: 'MuiDataGrid',
|
|
43
46
|
slot: 'VirtualScroller',
|
|
44
|
-
overridesResolver: (props, styles) =>
|
|
47
|
+
overridesResolver: (props, styles) => {
|
|
48
|
+
const {
|
|
49
|
+
ownerState
|
|
50
|
+
} = props;
|
|
51
|
+
return [styles.virtualScroller, ownerState.hasScrollX && styles['virtualScroller--hasScrollX']];
|
|
52
|
+
}
|
|
45
53
|
})({
|
|
46
54
|
position: 'relative',
|
|
47
55
|
height: '100%',
|
|
@@ -59,12 +67,22 @@ const Scroller = (0, _system.styled)('div', {
|
|
|
59
67
|
// See https://github.com/mui/mui-x/issues/10547
|
|
60
68
|
zIndex: 0
|
|
61
69
|
});
|
|
70
|
+
const hasPinnedRightSelector = state => state.dimensions.rightPinnedWidth > 0;
|
|
62
71
|
function GridVirtualScroller(props) {
|
|
63
72
|
const apiRef = (0, _useGridApiContext.useGridApiContext)();
|
|
64
73
|
const rootProps = (0, _useGridRootProps.useGridRootProps)();
|
|
65
|
-
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);
|
|
66
78
|
const overlaysProps = (0, _useGridOverlays.useGridOverlays)();
|
|
67
|
-
const
|
|
79
|
+
const ownerState = {
|
|
80
|
+
classes: rootProps.classes,
|
|
81
|
+
hasScrollX,
|
|
82
|
+
hasPinnedRight,
|
|
83
|
+
loadingOverlayVariant: overlaysProps.loadingOverlayVariant
|
|
84
|
+
};
|
|
85
|
+
const classes = useUtilityClasses(ownerState);
|
|
68
86
|
const virtualScroller = (0, _useGridVirtualScroller.useGridVirtualScroller)();
|
|
69
87
|
const {
|
|
70
88
|
getContainerProps,
|
|
@@ -73,20 +91,22 @@ function GridVirtualScroller(props) {
|
|
|
73
91
|
getRenderZoneProps,
|
|
74
92
|
getScrollbarVerticalProps,
|
|
75
93
|
getScrollbarHorizontalProps,
|
|
76
|
-
getRows
|
|
94
|
+
getRows,
|
|
95
|
+
getScrollAreaProps
|
|
77
96
|
} = virtualScroller;
|
|
78
97
|
const rows = getRows();
|
|
79
98
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_GridMainContainer.GridMainContainer, (0, _extends2.default)({
|
|
80
99
|
className: classes.root
|
|
81
100
|
}, getContainerProps(), {
|
|
82
|
-
|
|
101
|
+
ownerState: ownerState,
|
|
102
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_GridScrollArea.GridScrollArea, (0, _extends2.default)({
|
|
83
103
|
scrollDirection: "left"
|
|
84
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridScrollArea.GridScrollArea, {
|
|
104
|
+
}, getScrollAreaProps())), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridScrollArea.GridScrollArea, (0, _extends2.default)({
|
|
85
105
|
scrollDirection: "right"
|
|
86
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(Scroller, (0, _extends2.default)({
|
|
106
|
+
}, getScrollAreaProps())), /*#__PURE__*/(0, _jsxRuntime.jsxs)(Scroller, (0, _extends2.default)({
|
|
87
107
|
className: classes.scroller
|
|
88
108
|
}, getScrollerProps(), {
|
|
89
|
-
ownerState:
|
|
109
|
+
ownerState: ownerState,
|
|
90
110
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_GridTopContainer.GridTopContainer, {
|
|
91
111
|
children: [!rootProps.unstable_listView && /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridHeaders.GridHeaders, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.pinnedRows, {
|
|
92
112
|
position: "top",
|
|
@@ -98,7 +118,7 @@ function GridVirtualScroller(props) {
|
|
|
98
118
|
virtualScroller: virtualScroller
|
|
99
119
|
})]
|
|
100
120
|
}))
|
|
101
|
-
})), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridVirtualScrollerFiller.GridVirtualScrollerFiller, {
|
|
121
|
+
})), hasBottomFiller && /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridVirtualScrollerFiller.GridVirtualScrollerFiller, {
|
|
102
122
|
rowsLength: rows.length
|
|
103
123
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridBottomContainer.GridBottomContainer, {
|
|
104
124
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.pinnedRows, {
|
|
@@ -106,9 +126,9 @@ function GridVirtualScroller(props) {
|
|
|
106
126
|
virtualScroller: virtualScroller
|
|
107
127
|
})
|
|
108
128
|
})]
|
|
109
|
-
})),
|
|
129
|
+
})), hasScrollX && !rootProps.unstable_listView && /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridVirtualScrollbar.GridVirtualScrollbar, (0, _extends2.default)({
|
|
110
130
|
position: "horizontal"
|
|
111
|
-
}, getScrollbarHorizontalProps())),
|
|
131
|
+
}, getScrollbarHorizontalProps())), hasScrollY && /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridVirtualScrollbar.GridVirtualScrollbar, (0, _extends2.default)({
|
|
112
132
|
position: "vertical"
|
|
113
133
|
}, getScrollbarVerticalProps())), props.children]
|
|
114
134
|
}));
|
|
@@ -27,14 +27,23 @@ const useUtilityClasses = (props, overflowedContent) => {
|
|
|
27
27
|
const VirtualScrollerContentRoot = (0, _system.styled)('div', {
|
|
28
28
|
name: 'MuiDataGrid',
|
|
29
29
|
slot: 'VirtualScrollerContent',
|
|
30
|
-
overridesResolver: (props, styles) =>
|
|
30
|
+
overridesResolver: (props, styles) => {
|
|
31
|
+
const {
|
|
32
|
+
ownerState
|
|
33
|
+
} = props;
|
|
34
|
+
return [styles.virtualScrollerContent, ownerState.overflowedContent && styles['virtualScrollerContent--overflowed']];
|
|
35
|
+
}
|
|
31
36
|
})({});
|
|
32
37
|
const GridVirtualScrollerContent = exports.GridVirtualScrollerContent = (0, _forwardRef.forwardRef)(function GridVirtualScrollerContent(props, ref) {
|
|
33
38
|
const rootProps = (0, _useGridRootProps.useGridRootProps)();
|
|
34
39
|
const overflowedContent = !rootProps.autoHeight && props.style?.minHeight === 'auto';
|
|
35
40
|
const classes = useUtilityClasses(rootProps, overflowedContent);
|
|
41
|
+
const ownerState = {
|
|
42
|
+
classes: rootProps.classes,
|
|
43
|
+
overflowedContent
|
|
44
|
+
};
|
|
36
45
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(VirtualScrollerContentRoot, (0, _extends2.default)({}, props, {
|
|
37
|
-
ownerState:
|
|
46
|
+
ownerState: ownerState,
|
|
38
47
|
className: (0, _clsx.default)(classes.root, props.className),
|
|
39
48
|
ref: ref
|
|
40
49
|
}));
|
|
@@ -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
|