@mui/x-data-grid 7.24.1 → 7.25.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 +77 -0
- package/DataGrid/DataGrid.js +1 -7
- package/components/GridRow.d.ts +0 -1
- package/components/GridRow.js +25 -19
- package/components/cell/GridCell.d.ts +9 -6
- package/components/cell/GridCell.js +29 -52
- package/components/containers/GridRootStyles.js +135 -37
- 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 +18 -5
- package/components/virtualization/GridVirtualScrollerContent.js +11 -2
- package/hooks/features/columnResize/useGridColumnResize.js +2 -1
- package/hooks/features/columns/useGridColumns.js +7 -3
- package/hooks/features/dimensions/useGridDimensions.js +6 -8
- package/hooks/features/editing/gridEditingSelectors.d.ts +6 -0
- package/hooks/features/editing/gridEditingSelectors.js +7 -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 +5 -6
- 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/rowSelection/useGridRowSelection.js +3 -3
- 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 +3 -2
- package/hooks/features/virtualization/gridFocusedVirtualCellSelector.js +2 -2
- package/hooks/features/virtualization/useGridVirtualScroller.d.ts +9 -1
- package/hooks/features/virtualization/useGridVirtualScroller.js +31 -45
- package/index.js +1 -1
- package/models/api/gridApiCommon.d.ts +2 -2
- package/models/api/gridParamsApi.d.ts +29 -2
- package/models/api/index.d.ts +1 -1
- package/models/api/index.js +0 -1
- package/modern/DataGrid/DataGrid.js +1 -7
- package/modern/components/GridRow.js +25 -19
- package/modern/components/cell/GridCell.js +29 -52
- package/modern/components/containers/GridRootStyles.js +135 -37
- 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 +18 -5
- package/modern/components/virtualization/GridVirtualScrollerContent.js +11 -2
- package/modern/hooks/features/columnResize/useGridColumnResize.js +2 -1
- package/modern/hooks/features/columns/useGridColumns.js +7 -3
- package/modern/hooks/features/dimensions/useGridDimensions.js +6 -8
- package/modern/hooks/features/editing/gridEditingSelectors.js +7 -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 +5 -6
- 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/rowSelection/useGridRowSelection.js +3 -3
- 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 +3 -2
- package/modern/hooks/features/virtualization/gridFocusedVirtualCellSelector.js +2 -2
- package/modern/hooks/features/virtualization/useGridVirtualScroller.js +31 -45
- package/modern/index.js +1 -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/components/GridRow.js +22 -16
- package/node/components/cell/GridCell.js +27 -50
- package/node/components/containers/GridRootStyles.js +135 -37
- 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 +18 -5
- package/node/components/virtualization/GridVirtualScrollerContent.js +11 -2
- package/node/hooks/features/columnResize/useGridColumnResize.js +2 -1
- package/node/hooks/features/columns/useGridColumns.js +7 -3
- package/node/hooks/features/dimensions/useGridDimensions.js +6 -8
- package/node/hooks/features/editing/gridEditingSelectors.js +8 -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 +3 -4
- 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/rowSelection/useGridRowSelection.js +2 -2
- 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 +5 -4
- package/node/hooks/features/virtualization/gridFocusedVirtualCellSelector.js +2 -2
- package/node/hooks/features/virtualization/useGridVirtualScroller.js +31 -45
- package/node/index.js +1 -1
- 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 +2 -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
|
@@ -45,50 +45,76 @@ const ignoreSsrWarning = '/* emotion-disable-server-rendering-unsafe-selector-wa
|
|
|
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,75 +123,151 @@ 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
|
}) => {
|
|
@@ -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'
|
|
@@ -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.dimensions.rightPinnedWidth > 0 && 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);
|
|
@@ -28,9 +28,11 @@ 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
|
+
dimensions,
|
|
35
|
+
loadingOverlayVariant
|
|
34
36
|
} = ownerState;
|
|
35
37
|
const slots = {
|
|
36
38
|
root: ['main', dimensions.rightPinnedWidth > 0 && 'main--hasPinnedRight', loadingOverlayVariant === 'skeleton' && 'main--hasSkeletonLoadingOverlay'],
|
|
@@ -41,7 +43,12 @@ const useUtilityClasses = (ownerState, dimensions, loadingOverlayVariant) => {
|
|
|
41
43
|
const Scroller = (0, _system.styled)('div', {
|
|
42
44
|
name: 'MuiDataGrid',
|
|
43
45
|
slot: 'VirtualScroller',
|
|
44
|
-
overridesResolver: (props, styles) =>
|
|
46
|
+
overridesResolver: (props, styles) => {
|
|
47
|
+
const {
|
|
48
|
+
ownerState
|
|
49
|
+
} = props;
|
|
50
|
+
return [styles.virtualScroller, ownerState.dimensions.hasScrollX && styles['virtualScroller--hasScrollX']];
|
|
51
|
+
}
|
|
45
52
|
})({
|
|
46
53
|
position: 'relative',
|
|
47
54
|
height: '100%',
|
|
@@ -64,7 +71,12 @@ function GridVirtualScroller(props) {
|
|
|
64
71
|
const rootProps = (0, _useGridRootProps.useGridRootProps)();
|
|
65
72
|
const dimensions = (0, _useGridSelector.useGridSelector)(apiRef, _dimensions.gridDimensionsSelector);
|
|
66
73
|
const overlaysProps = (0, _useGridOverlays.useGridOverlays)();
|
|
67
|
-
const
|
|
74
|
+
const ownerState = {
|
|
75
|
+
classes: rootProps.classes,
|
|
76
|
+
dimensions,
|
|
77
|
+
loadingOverlayVariant: overlaysProps.loadingOverlayVariant
|
|
78
|
+
};
|
|
79
|
+
const classes = useUtilityClasses(ownerState);
|
|
68
80
|
const virtualScroller = (0, _useGridVirtualScroller.useGridVirtualScroller)();
|
|
69
81
|
const {
|
|
70
82
|
getContainerProps,
|
|
@@ -79,6 +91,7 @@ function GridVirtualScroller(props) {
|
|
|
79
91
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_GridMainContainer.GridMainContainer, (0, _extends2.default)({
|
|
80
92
|
className: classes.root
|
|
81
93
|
}, getContainerProps(), {
|
|
94
|
+
ownerState: ownerState,
|
|
82
95
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_GridScrollArea.GridScrollArea, {
|
|
83
96
|
scrollDirection: "left"
|
|
84
97
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridScrollArea.GridScrollArea, {
|
|
@@ -86,7 +99,7 @@ function GridVirtualScroller(props) {
|
|
|
86
99
|
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(Scroller, (0, _extends2.default)({
|
|
87
100
|
className: classes.scroller
|
|
88
101
|
}, getScrollerProps(), {
|
|
89
|
-
ownerState:
|
|
102
|
+
ownerState: ownerState,
|
|
90
103
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_GridTopContainer.GridTopContainer, {
|
|
91
104
|
children: [!rootProps.unstable_listView && /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridHeaders.GridHeaders, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.pinnedRows, {
|
|
92
105
|
position: "top",
|
|
@@ -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
|
}));
|
|
@@ -509,7 +509,8 @@ const useGridColumnResize = (apiRef, props) => {
|
|
|
509
509
|
if (options.expand) {
|
|
510
510
|
const visibleColumns = state.orderedFields.map(field => state.lookup[field]).filter(c => state.columnVisibilityModel[c.field] !== false);
|
|
511
511
|
const totalWidth = visibleColumns.reduce((total, column) => total + (widthByField[column.field] ?? column.computedWidth ?? column.width), 0);
|
|
512
|
-
const
|
|
512
|
+
const dimensions = apiRef.current.getRootDimensions();
|
|
513
|
+
const availableWidth = dimensions.viewportInnerSize.width;
|
|
513
514
|
const remainingWidth = availableWidth - totalWidth;
|
|
514
515
|
if (remainingWidth > 0) {
|
|
515
516
|
const widthPerColumn = remainingWidth / (newColumns.length || 1);
|
|
@@ -252,9 +252,13 @@ function useGridColumns(apiRef, props) {
|
|
|
252
252
|
*/
|
|
253
253
|
|
|
254
254
|
const prevInnerWidth = React.useRef(null);
|
|
255
|
-
const handleGridSizeChange =
|
|
256
|
-
if (prevInnerWidth.current !==
|
|
257
|
-
prevInnerWidth.current =
|
|
255
|
+
const handleGridSizeChange = size => {
|
|
256
|
+
if (prevInnerWidth.current !== size.width) {
|
|
257
|
+
prevInnerWidth.current = size.width;
|
|
258
|
+
const hasFlexColumns = (0, _gridColumnsSelector.gridVisibleColumnDefinitionsSelector)(apiRef).some(col => col.flex && col.flex > 0);
|
|
259
|
+
if (!hasFlexColumns) {
|
|
260
|
+
return;
|
|
261
|
+
}
|
|
258
262
|
setGridColumnsState((0, _gridColumnsUtils.hydrateColumnsWidth)((0, _gridColumnsSelector.gridColumnsStateSelector)(apiRef.current.state), apiRef.current.getRootDimensions()));
|
|
259
263
|
}
|
|
260
264
|
};
|
|
@@ -24,6 +24,7 @@ var _gridRowsMetaSelector = require("../rows/gridRowsMetaSelector");
|
|
|
24
24
|
var _gridRowsUtils = require("../rows/gridRowsUtils");
|
|
25
25
|
var _gridColumnsUtils = require("../columns/gridColumnsUtils");
|
|
26
26
|
var _dataGridPropsDefaultValues = require("../../../constants/dataGridPropsDefaultValues");
|
|
27
|
+
var _roundToDecimalPlaces = require("../../../utils/roundToDecimalPlaces");
|
|
27
28
|
var _isJSDOM = require("../../../utils/isJSDOM");
|
|
28
29
|
const EMPTY_SIZE = {
|
|
29
30
|
width: 0,
|
|
@@ -71,7 +72,7 @@ function useGridDimensions(apiRef, props) {
|
|
|
71
72
|
const headerHeight = Math.floor(props.columnHeaderHeight * densityFactor);
|
|
72
73
|
const groupHeaderHeight = Math.floor((props.columnGroupHeaderHeight ?? props.columnHeaderHeight) * densityFactor);
|
|
73
74
|
const headerFilterHeight = Math.floor((props.headerFilterHeight ?? props.columnHeaderHeight) * densityFactor);
|
|
74
|
-
const columnsTotalWidth = roundToDecimalPlaces((0, _columns.gridColumnsTotalWidthSelector)(apiRef),
|
|
75
|
+
const columnsTotalWidth = (0, _roundToDecimalPlaces.roundToDecimalPlaces)((0, _columns.gridColumnsTotalWidthSelector)(apiRef), 1);
|
|
75
76
|
const headersTotalHeight = (0, _gridColumnsUtils.getTotalHeaderHeight)(apiRef, props);
|
|
76
77
|
const leftPinnedWidth = pinnedColumns.left.reduce((w, col) => w + col.computedWidth, 0);
|
|
77
78
|
const rightPinnedWidth = pinnedColumns.right.reduce((w, col) => w + col.computedWidth, 0);
|
|
@@ -121,6 +122,9 @@ function useGridDimensions(apiRef, props) {
|
|
|
121
122
|
return Math.min(maximumPageSizeWithoutScrollBar, currentPage.rows.length);
|
|
122
123
|
}, [apiRef, props.pagination, props.paginationMode, props.getRowHeight, rowHeight]);
|
|
123
124
|
const updateDimensions = React.useCallback(() => {
|
|
125
|
+
// All the floating point dimensions should be rounded to .1 decimal places to avoid subpixel rendering issues
|
|
126
|
+
// https://github.com/mui/mui-x/issues/9550#issuecomment-1619020477
|
|
127
|
+
// https://github.com/mui/mui-x/issues/15721
|
|
124
128
|
const rootElement = apiRef.current.rootElementRef.current;
|
|
125
129
|
const pinnedRowsHeight = (0, _gridRowsUtils.calculatePinnedRowsHeight)(apiRef);
|
|
126
130
|
const scrollbarSize = measureScrollbarSize(rootElement, columnsTotalWidth, props.scrollbarSize);
|
|
@@ -129,7 +133,7 @@ function useGridDimensions(apiRef, props) {
|
|
|
129
133
|
const nonPinnedColumnsTotalWidth = columnsTotalWidth - leftPinnedWidth - rightPinnedWidth;
|
|
130
134
|
const contentSize = {
|
|
131
135
|
width: nonPinnedColumnsTotalWidth,
|
|
132
|
-
height: rowsMeta.currentPageTotalHeight
|
|
136
|
+
height: (0, _roundToDecimalPlaces.roundToDecimalPlaces)(rowsMeta.currentPageTotalHeight, 1)
|
|
133
137
|
};
|
|
134
138
|
let viewportOuterSize;
|
|
135
139
|
let viewportInnerSize;
|
|
@@ -290,12 +294,6 @@ function measureScrollbarSize(rootElement, columnsTotalWidth, scrollbarSize) {
|
|
|
290
294
|
rootElement.removeChild(scrollDiv);
|
|
291
295
|
return size;
|
|
292
296
|
}
|
|
293
|
-
|
|
294
|
-
// Get rid of floating point imprecision errors
|
|
295
|
-
// https://github.com/mui/mui-x/issues/9550#issuecomment-1619020477
|
|
296
|
-
function roundToDecimalPlaces(value, decimals) {
|
|
297
|
-
return Math.round(value * 10 ** decimals) / 10 ** decimals;
|
|
298
|
-
}
|
|
299
297
|
function areElementSizesEqual(a, b) {
|
|
300
298
|
return a.width === b.width && a.height === b.height;
|
|
301
299
|
}
|
|
@@ -3,9 +3,15 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.gridEditRowsStateSelector = void 0;
|
|
6
|
+
exports.gridRowIsEditingSelector = exports.gridEditRowsStateSelector = exports.gridEditCellStateSelector = void 0;
|
|
7
|
+
var _createSelector = require("../../../utils/createSelector");
|
|
7
8
|
/**
|
|
8
9
|
* Select the row editing state.
|
|
9
10
|
*/
|
|
10
11
|
const gridEditRowsStateSelector = state => state.editRows;
|
|
11
|
-
exports.gridEditRowsStateSelector = gridEditRowsStateSelector;
|
|
12
|
+
exports.gridEditRowsStateSelector = gridEditRowsStateSelector;
|
|
13
|
+
const gridRowIsEditingSelector = exports.gridRowIsEditingSelector = (0, _createSelector.createSelectorV8)(gridEditRowsStateSelector, (editRows, rowId) => Boolean(editRows[rowId]));
|
|
14
|
+
const gridEditCellStateSelector = exports.gridEditCellStateSelector = (0, _createSelector.createSelectorV8)(gridEditRowsStateSelector, (editRows, {
|
|
15
|
+
rowId,
|
|
16
|
+
field
|
|
17
|
+
}) => editRows[rowId]?.[field] ?? null);
|
|
@@ -3,14 +3,10 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
return _gridEditingSelectors[key];
|
|
14
|
-
}
|
|
15
|
-
});
|
|
16
|
-
});
|
|
6
|
+
Object.defineProperty(exports, "gridEditRowsStateSelector", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _gridEditingSelectors.gridEditRowsStateSelector;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
var _gridEditingSelectors = require("./gridEditingSelectors");
|
|
@@ -450,7 +450,7 @@ const useGridCellEditing = (apiRef, props) => {
|
|
|
450
450
|
|
|
451
451
|
// Run this effect synchronously so that the keyboard event can impact the yet-to-be-rendered input.
|
|
452
452
|
(0, _utils.unstable_useEnhancedEffect)(() => {
|
|
453
|
-
const
|
|
453
|
+
const rowsLookup = (0, _gridRowsSelector.gridRowsLookupSelector)(apiRef);
|
|
454
454
|
|
|
455
455
|
// Update the ref here because updateStateToStopCellEditMode may change it later
|
|
456
456
|
const copyOfPrevCellModes = prevCellModesModel.current;
|
|
@@ -459,7 +459,7 @@ const useGridCellEditing = (apiRef, props) => {
|
|
|
459
459
|
Object.entries(cellModesModel).forEach(([id, fields]) => {
|
|
460
460
|
Object.entries(fields).forEach(([field, params]) => {
|
|
461
461
|
const prevMode = copyOfPrevCellModes[id]?.[field]?.mode || _gridEditRowModel.GridCellModes.View;
|
|
462
|
-
const originalId =
|
|
462
|
+
const originalId = rowsLookup[id] ? apiRef.current.getRowId(rowsLookup[id]) : id;
|
|
463
463
|
if (params.mode === _gridEditRowModel.GridCellModes.Edit && prevMode === _gridEditRowModel.GridCellModes.View) {
|
|
464
464
|
updateStateToStartCellEditMode((0, _extends2.default)({
|
|
465
465
|
id: originalId,
|