@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
|
@@ -38,50 +38,76 @@ const ignoreSsrWarning = '/* emotion-disable-server-rendering-unsafe-selector-wa
|
|
|
38
38
|
export const GridRootStyles = styled('div', {
|
|
39
39
|
name: 'MuiDataGrid',
|
|
40
40
|
slot: 'Root',
|
|
41
|
-
overridesResolver: (props, styles) => [
|
|
41
|
+
overridesResolver: (props, styles) => [
|
|
42
|
+
// Root overrides
|
|
43
|
+
styles.root, {
|
|
42
44
|
[`&.${c.autoHeight}`]: styles.autoHeight
|
|
43
45
|
}, {
|
|
44
|
-
[`&.${c.
|
|
46
|
+
[`&.${c.autosizing}`]: styles.autosizing
|
|
45
47
|
}, {
|
|
46
|
-
[`&.${c['
|
|
48
|
+
[`&.${c['root--densityStandard']}`]: styles['root--densityStandard']
|
|
47
49
|
}, {
|
|
48
|
-
[`&.${c['
|
|
50
|
+
[`&.${c['root--densityComfortable']}`]: styles['root--densityComfortable']
|
|
49
51
|
}, {
|
|
50
|
-
[`&.${c['
|
|
52
|
+
[`&.${c['root--densityCompact']}`]: styles['root--densityCompact']
|
|
51
53
|
}, {
|
|
52
|
-
[`&.${c
|
|
54
|
+
[`&.${c['root--disableUserSelection']}`]: styles['root--disableUserSelection']
|
|
53
55
|
}, {
|
|
54
|
-
[`&.${c['root--
|
|
56
|
+
[`&.${c['root--noToolbar']}`]: styles['root--noToolbar']
|
|
55
57
|
}, {
|
|
56
|
-
[`&.${c.
|
|
58
|
+
[`&.${c.withVerticalBorder}`]: styles.withVerticalBorder
|
|
59
|
+
},
|
|
60
|
+
// Child element overrides
|
|
61
|
+
// - Only declare overrides here for class names that are not applied to `styled` components.
|
|
62
|
+
// - For `styled` components, declare overrides in the component itself.
|
|
63
|
+
{
|
|
64
|
+
[`& .${c.actionsCell}`]: styles.actionsCell
|
|
57
65
|
}, {
|
|
58
|
-
[`& .${c.
|
|
66
|
+
[`& .${c.booleanCell}`]: styles.booleanCell
|
|
59
67
|
}, {
|
|
60
68
|
[`& .${c.cell}`]: styles.cell
|
|
69
|
+
}, {
|
|
70
|
+
[`& .${c['cell--editable']}`]: styles['cell--editable']
|
|
61
71
|
}, {
|
|
62
72
|
[`& .${c['cell--editing']}`]: styles['cell--editing']
|
|
63
73
|
}, {
|
|
64
|
-
[`& .${c['cell--
|
|
74
|
+
[`& .${c['cell--flex']}`]: styles['cell--flex']
|
|
65
75
|
}, {
|
|
66
|
-
[`& .${c['cell--
|
|
76
|
+
[`& .${c['cell--pinnedLeft']}`]: styles['cell--pinnedLeft']
|
|
67
77
|
}, {
|
|
68
|
-
[`& .${c['cell--
|
|
69
|
-
}, {
|
|
70
|
-
[`& .${c['cell--rangeTop']}`]: styles['cell--rangeTop']
|
|
78
|
+
[`& .${c['cell--pinnedRight']}`]: styles['cell--pinnedRight']
|
|
71
79
|
}, {
|
|
72
80
|
[`& .${c['cell--rangeBottom']}`]: styles['cell--rangeBottom']
|
|
73
81
|
}, {
|
|
74
82
|
[`& .${c['cell--rangeLeft']}`]: styles['cell--rangeLeft']
|
|
75
83
|
}, {
|
|
76
84
|
[`& .${c['cell--rangeRight']}`]: styles['cell--rangeRight']
|
|
85
|
+
}, {
|
|
86
|
+
[`& .${c['cell--rangeTop']}`]: styles['cell--rangeTop']
|
|
87
|
+
}, {
|
|
88
|
+
[`& .${c['cell--selectionMode']}`]: styles['cell--selectionMode']
|
|
89
|
+
}, {
|
|
90
|
+
[`& .${c['cell--textCenter']}`]: styles['cell--textCenter']
|
|
91
|
+
}, {
|
|
92
|
+
[`& .${c['cell--textLeft']}`]: styles['cell--textLeft']
|
|
93
|
+
}, {
|
|
94
|
+
[`& .${c['cell--textRight']}`]: styles['cell--textRight']
|
|
95
|
+
}, {
|
|
96
|
+
[`& .${c['cell--withLeftBorder']}`]: styles['cell--withLeftBorder']
|
|
77
97
|
}, {
|
|
78
98
|
[`& .${c['cell--withRightBorder']}`]: styles['cell--withRightBorder']
|
|
79
99
|
}, {
|
|
80
100
|
[`& .${c.cellCheckbox}`]: styles.cellCheckbox
|
|
101
|
+
}, {
|
|
102
|
+
[`& .${c.cellEmpty}`]: styles.cellEmpty
|
|
103
|
+
}, {
|
|
104
|
+
[`& .${c.cellOffsetLeft}`]: styles.cellOffsetLeft
|
|
81
105
|
}, {
|
|
82
106
|
[`& .${c.cellSkeleton}`]: styles.cellSkeleton
|
|
83
107
|
}, {
|
|
84
108
|
[`& .${c.checkboxInput}`]: styles.checkboxInput
|
|
109
|
+
}, {
|
|
110
|
+
[`& .${c.columnHeader}`]: styles.columnHeader
|
|
85
111
|
}, {
|
|
86
112
|
[`& .${c['columnHeader--alignCenter']}`]: styles['columnHeader--alignCenter']
|
|
87
113
|
}, {
|
|
@@ -90,75 +116,151 @@ export const GridRootStyles = styled('div', {
|
|
|
90
116
|
[`& .${c['columnHeader--alignRight']}`]: styles['columnHeader--alignRight']
|
|
91
117
|
}, {
|
|
92
118
|
[`& .${c['columnHeader--dragging']}`]: styles['columnHeader--dragging']
|
|
119
|
+
}, {
|
|
120
|
+
[`& .${c['columnHeader--emptyGroup']}`]: styles['columnHeader--emptyGroup']
|
|
121
|
+
}, {
|
|
122
|
+
[`& .${c['columnHeader--filledGroup']}`]: styles['columnHeader--filledGroup']
|
|
123
|
+
}, {
|
|
124
|
+
[`& .${c['columnHeader--filtered']}`]: styles['columnHeader--filtered']
|
|
125
|
+
}, {
|
|
126
|
+
[`& .${c['columnHeader--last']}`]: styles['columnHeader--last']
|
|
127
|
+
}, {
|
|
128
|
+
[`& .${c['columnHeader--lastUnpinned']}`]: styles['columnHeader--lastUnpinned']
|
|
93
129
|
}, {
|
|
94
130
|
[`& .${c['columnHeader--moving']}`]: styles['columnHeader--moving']
|
|
95
131
|
}, {
|
|
96
132
|
[`& .${c['columnHeader--numeric']}`]: styles['columnHeader--numeric']
|
|
133
|
+
}, {
|
|
134
|
+
[`& .${c['columnHeader--pinnedLeft']}`]: styles['columnHeader--pinnedLeft']
|
|
135
|
+
}, {
|
|
136
|
+
[`& .${c['columnHeader--pinnedRight']}`]: styles['columnHeader--pinnedRight']
|
|
137
|
+
}, {
|
|
138
|
+
[`& .${c['columnHeader--siblingFocused']}`]: styles['columnHeader--siblingFocused']
|
|
97
139
|
}, {
|
|
98
140
|
[`& .${c['columnHeader--sortable']}`]: styles['columnHeader--sortable']
|
|
99
141
|
}, {
|
|
100
142
|
[`& .${c['columnHeader--sorted']}`]: styles['columnHeader--sorted']
|
|
101
143
|
}, {
|
|
102
|
-
[`& .${c['columnHeader--
|
|
103
|
-
}, {
|
|
104
|
-
[`& .${c.columnHeader}`]: styles.columnHeader
|
|
144
|
+
[`& .${c['columnHeader--withLeftBorder']}`]: styles['columnHeader--withLeftBorder']
|
|
105
145
|
}, {
|
|
106
|
-
[`& .${c
|
|
146
|
+
[`& .${c['columnHeader--withRightBorder']}`]: styles['columnHeader--withRightBorder']
|
|
107
147
|
}, {
|
|
108
148
|
[`& .${c.columnHeaderCheckbox}`]: styles.columnHeaderCheckbox
|
|
109
149
|
}, {
|
|
110
150
|
[`& .${c.columnHeaderDraggableContainer}`]: styles.columnHeaderDraggableContainer
|
|
111
151
|
}, {
|
|
112
152
|
[`& .${c.columnHeaderTitleContainer}`]: styles.columnHeaderTitleContainer
|
|
153
|
+
}, {
|
|
154
|
+
[`& .${c.columnHeaderTitleContainerContent}`]: styles.columnHeaderTitleContainerContent
|
|
155
|
+
}, {
|
|
156
|
+
[`& .${c.columnSeparator}`]: styles.columnSeparator
|
|
113
157
|
}, {
|
|
114
158
|
[`& .${c['columnSeparator--resizable']}`]: styles['columnSeparator--resizable']
|
|
115
159
|
}, {
|
|
116
160
|
[`& .${c['columnSeparator--resizing']}`]: styles['columnSeparator--resizing']
|
|
117
161
|
}, {
|
|
118
|
-
[`& .${c
|
|
162
|
+
[`& .${c['columnSeparator--sideLeft']}`]: styles['columnSeparator--sideLeft']
|
|
163
|
+
}, {
|
|
164
|
+
[`& .${c['columnSeparator--sideRight']}`]: styles['columnSeparator--sideRight']
|
|
165
|
+
}, {
|
|
166
|
+
[`& .${c['container--bottom']}`]: styles['container--bottom']
|
|
167
|
+
}, {
|
|
168
|
+
[`& .${c['container--top']}`]: styles['container--top']
|
|
169
|
+
}, {
|
|
170
|
+
[`& .${c.detailPanelToggleCell}`]: styles.detailPanelToggleCell
|
|
171
|
+
}, {
|
|
172
|
+
[`& .${c['detailPanelToggleCell--expanded']}`]: styles['detailPanelToggleCell--expanded']
|
|
173
|
+
}, {
|
|
174
|
+
[`& .${c.editBooleanCell}`]: styles.editBooleanCell
|
|
119
175
|
}, {
|
|
120
176
|
[`& .${c.filterIcon}`]: styles.filterIcon
|
|
177
|
+
}, {
|
|
178
|
+
[`& .${c['filler--borderBottom']}`]: styles['filler--borderBottom']
|
|
179
|
+
}, {
|
|
180
|
+
[`& .${c['filler--pinnedLeft']}`]: styles['filler--pinnedLeft']
|
|
181
|
+
}, {
|
|
182
|
+
[`& .${c['filler--pinnedRight']}`]: styles['filler--pinnedRight']
|
|
183
|
+
}, {
|
|
184
|
+
[`& .${c.groupingCriteriaCell}`]: styles.groupingCriteriaCell
|
|
185
|
+
}, {
|
|
186
|
+
[`& .${c.groupingCriteriaCellLoadingContainer}`]: styles.groupingCriteriaCellLoadingContainer
|
|
187
|
+
}, {
|
|
188
|
+
[`& .${c.groupingCriteriaCellToggle}`]: styles.groupingCriteriaCellToggle
|
|
189
|
+
}, {
|
|
190
|
+
[`& .${c.headerFilterRow}`]: styles.headerFilterRow
|
|
121
191
|
}, {
|
|
122
192
|
[`& .${c.iconSeparator}`]: styles.iconSeparator
|
|
123
193
|
}, {
|
|
124
194
|
[`& .${c.menuIcon}`]: styles.menuIcon
|
|
125
195
|
}, {
|
|
126
196
|
[`& .${c.menuIconButton}`]: styles.menuIconButton
|
|
197
|
+
}, {
|
|
198
|
+
[`& .${c.menuList}`]: styles.menuList
|
|
127
199
|
}, {
|
|
128
200
|
[`& .${c.menuOpen}`]: styles.menuOpen
|
|
129
201
|
}, {
|
|
130
|
-
[`& .${c.
|
|
202
|
+
[`& .${c.overlayWrapperInner}`]: styles.overlayWrapperInner
|
|
131
203
|
}, {
|
|
132
|
-
[`& .${c
|
|
204
|
+
[`& .${c.pinnedRows}`]: styles.pinnedRows
|
|
133
205
|
}, {
|
|
134
|
-
[`& .${c['
|
|
206
|
+
[`& .${c['pinnedRows--bottom']}`]: styles['pinnedRows--bottom']
|
|
135
207
|
}, {
|
|
136
|
-
[`& .${c['
|
|
208
|
+
[`& .${c['pinnedRows--top']}`]: styles['pinnedRows--top']
|
|
137
209
|
}, {
|
|
138
210
|
[`& .${c.row}`]: styles.row
|
|
139
211
|
}, {
|
|
140
|
-
[`& .${c
|
|
212
|
+
[`& .${c['row--borderBottom']}`]: styles['row--borderBottom']
|
|
213
|
+
}, {
|
|
214
|
+
[`& .${c['row--detailPanelExpanded']}`]: styles['row--detailPanelExpanded']
|
|
215
|
+
}, {
|
|
216
|
+
[`& .${c['row--dragging']}`]: styles['row--dragging']
|
|
217
|
+
}, {
|
|
218
|
+
[`& .${c['row--dynamicHeight']}`]: styles['row--dynamicHeight']
|
|
219
|
+
}, {
|
|
220
|
+
[`& .${c['row--editable']}`]: styles['row--editable']
|
|
221
|
+
}, {
|
|
222
|
+
[`& .${c['row--editing']}`]: styles['row--editing']
|
|
223
|
+
}, {
|
|
224
|
+
[`& .${c['row--firstVisible']}`]: styles['row--firstVisible']
|
|
225
|
+
}, {
|
|
226
|
+
[`& .${c['row--lastVisible']}`]: styles['row--lastVisible']
|
|
141
227
|
}, {
|
|
142
228
|
[`& .${c.rowReorderCell}`]: styles.rowReorderCell
|
|
143
229
|
}, {
|
|
144
230
|
[`& .${c['rowReorderCell--draggable']}`]: styles['rowReorderCell--draggable']
|
|
145
231
|
}, {
|
|
146
|
-
[`& .${c.
|
|
232
|
+
[`& .${c.rowReorderCellContainer}`]: styles.rowReorderCellContainer
|
|
147
233
|
}, {
|
|
148
|
-
[`& .${c.
|
|
234
|
+
[`& .${c.rowReorderCellPlaceholder}`]: styles.rowReorderCellPlaceholder
|
|
149
235
|
}, {
|
|
150
|
-
[`& .${c.
|
|
236
|
+
[`& .${c.rowSkeleton}`]: styles.rowSkeleton
|
|
151
237
|
}, {
|
|
152
|
-
[`& .${c.
|
|
238
|
+
[`& .${c.scrollbar}`]: styles.scrollbar
|
|
153
239
|
}, {
|
|
154
|
-
[`& .${c
|
|
240
|
+
[`& .${c['scrollbar--horizontal']}`]: styles['scrollbar--horizontal']
|
|
155
241
|
}, {
|
|
156
|
-
[`& .${c
|
|
242
|
+
[`& .${c['scrollbar--vertical']}`]: styles['scrollbar--vertical']
|
|
157
243
|
}, {
|
|
158
|
-
[`& .${c.
|
|
244
|
+
[`& .${c.scrollbarFiller}`]: styles.scrollbarFiller
|
|
159
245
|
}, {
|
|
160
|
-
[`& .${c['
|
|
161
|
-
},
|
|
246
|
+
[`& .${c['scrollbarFiller--borderBottom']}`]: styles['scrollbarFiller--borderBottom']
|
|
247
|
+
}, {
|
|
248
|
+
[`& .${c['scrollbarFiller--borderTop']}`]: styles['scrollbarFiller--borderTop']
|
|
249
|
+
}, {
|
|
250
|
+
[`& .${c['scrollbarFiller--header']}`]: styles['scrollbarFiller--header']
|
|
251
|
+
}, {
|
|
252
|
+
[`& .${c['scrollbarFiller--pinnedRight']}`]: styles['scrollbarFiller--pinnedRight']
|
|
253
|
+
}, {
|
|
254
|
+
[`& .${c.sortIcon}`]: styles.sortIcon
|
|
255
|
+
}, {
|
|
256
|
+
[`& .${c.treeDataGroupingCell}`]: styles.treeDataGroupingCell
|
|
257
|
+
}, {
|
|
258
|
+
[`& .${c.treeDataGroupingCellLoadingContainer}`]: styles.treeDataGroupingCellLoadingContainer
|
|
259
|
+
}, {
|
|
260
|
+
[`& .${c.treeDataGroupingCellToggle}`]: styles.treeDataGroupingCellToggle
|
|
261
|
+
}, {
|
|
262
|
+
[`& .${c.withBorderColor}`]: styles.withBorderColor
|
|
263
|
+
}]
|
|
162
264
|
})(({
|
|
163
265
|
theme: t
|
|
164
266
|
}) => {
|
|
@@ -255,10 +357,6 @@ export const GridRootStyles = styled('div', {
|
|
|
255
357
|
overflow: 'visible !important'
|
|
256
358
|
},
|
|
257
359
|
'@media (hover: hover)': {
|
|
258
|
-
[`& .${c.iconButtonContainer}`]: {
|
|
259
|
-
width: '0 !important',
|
|
260
|
-
visibility: 'hidden !important'
|
|
261
|
-
},
|
|
262
360
|
[`& .${c.menuIcon}`]: {
|
|
263
361
|
width: '0 !important',
|
|
264
362
|
visibility: 'hidden !important'
|
|
@@ -45,14 +45,15 @@ const GridToolbarColumnsButton = forwardRef(function GridToolbarColumnsButton(pr
|
|
|
45
45
|
"aria-haspopup": "menu",
|
|
46
46
|
"aria-expanded": isOpen,
|
|
47
47
|
"aria-controls": isOpen ? columnPanelId : undefined,
|
|
48
|
-
startIcon: /*#__PURE__*/_jsx(rootProps.slots.columnSelectorIcon, {})
|
|
49
|
-
|
|
48
|
+
startIcon: /*#__PURE__*/_jsx(rootProps.slots.columnSelectorIcon, {})
|
|
49
|
+
}, rootProps.slotProps?.baseButton, buttonProps, {
|
|
50
50
|
onPointerUp: event => {
|
|
51
51
|
if (preferencePanel.open) {
|
|
52
52
|
event.stopPropagation();
|
|
53
53
|
}
|
|
54
|
-
|
|
55
|
-
|
|
54
|
+
buttonProps.onPointerUp?.(event);
|
|
55
|
+
},
|
|
56
|
+
onClick: showColumns,
|
|
56
57
|
ref: ref,
|
|
57
58
|
children: apiRef.current.getLocaleText('toolbarColumns')
|
|
58
59
|
}))
|
|
@@ -94,9 +94,9 @@ const GridToolbarDensitySelector = forwardRef(function GridToolbarDensitySelecto
|
|
|
94
94
|
"aria-haspopup": "menu",
|
|
95
95
|
"aria-expanded": open,
|
|
96
96
|
"aria-controls": open ? densityMenuId : undefined,
|
|
97
|
-
id: densityButtonId
|
|
98
|
-
onClick: handleDensitySelectorOpen
|
|
97
|
+
id: densityButtonId
|
|
99
98
|
}, rootProps.slotProps?.baseButton, buttonProps, {
|
|
99
|
+
onClick: handleDensitySelectorOpen,
|
|
100
100
|
ref: handleRef,
|
|
101
101
|
children: apiRef.current.getLocaleText('toolbarDensity')
|
|
102
102
|
}))
|
|
@@ -52,9 +52,9 @@ const GridToolbarExportContainer = forwardRef(function GridToolbarExportContaine
|
|
|
52
52
|
"aria-label": apiRef.current.getLocaleText('toolbarExportLabel'),
|
|
53
53
|
"aria-haspopup": "menu",
|
|
54
54
|
"aria-controls": open ? exportMenuId : undefined,
|
|
55
|
-
id: exportButtonId
|
|
56
|
-
onClick: handleMenuOpen
|
|
55
|
+
id: exportButtonId
|
|
57
56
|
}, rootProps.slotProps?.baseButton, buttonProps, {
|
|
57
|
+
onClick: handleMenuOpen,
|
|
58
58
|
ref: handleRef,
|
|
59
59
|
children: apiRef.current.getLocaleText('toolbarExport')
|
|
60
60
|
}))
|
|
@@ -109,14 +109,15 @@ const GridToolbarFilterButton = forwardRef(function GridToolbarFilterButton(prop
|
|
|
109
109
|
color: "primary"
|
|
110
110
|
}, rootProps.slotProps?.baseBadge, badgeProps, {
|
|
111
111
|
children: /*#__PURE__*/_jsx(rootProps.slots.openFilterButtonIcon, {})
|
|
112
|
-
}))
|
|
112
|
+
}))
|
|
113
|
+
}, rootProps.slotProps?.baseButton, buttonProps, {
|
|
113
114
|
onClick: toggleFilter,
|
|
114
115
|
onPointerUp: event => {
|
|
115
116
|
if (preferencePanel.open) {
|
|
116
117
|
event.stopPropagation();
|
|
117
118
|
}
|
|
118
|
-
|
|
119
|
-
|
|
119
|
+
buttonProps.onPointerUp?.(event);
|
|
120
|
+
},
|
|
120
121
|
ref: ref,
|
|
121
122
|
children: apiRef.current.getLocaleText('toolbarFilters')
|
|
122
123
|
}))
|
|
@@ -1,8 +1,18 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
+
import { DataGridProcessedProps } from '../../models/props/DataGridProps';
|
|
3
|
+
import { GridDimensions } from '../../hooks/features/dimensions';
|
|
4
|
+
import { GridLoadingOverlayVariant } from '../GridLoadingOverlay';
|
|
5
|
+
type OwnerState = Pick<DataGridProcessedProps, 'classes'> & {
|
|
6
|
+
dimensions: GridDimensions;
|
|
7
|
+
loadingOverlayVariant: GridLoadingOverlayVariant | null;
|
|
8
|
+
};
|
|
2
9
|
export declare const GridMainContainer: React.ForwardRefExoticComponent<React.PropsWithChildren<{
|
|
3
10
|
className: string;
|
|
11
|
+
ownerState: OwnerState;
|
|
4
12
|
}>> | React.ForwardRefExoticComponent<{
|
|
5
13
|
className: string;
|
|
14
|
+
ownerState: OwnerState;
|
|
6
15
|
} & {
|
|
7
16
|
children?: React.ReactNode | undefined;
|
|
8
17
|
} & React.RefAttributes<HTMLDivElement>>;
|
|
18
|
+
export {};
|
|
@@ -14,7 +14,12 @@ const GridPanelAnchor = styled('div')({
|
|
|
14
14
|
const Element = styled('div', {
|
|
15
15
|
name: 'MuiDataGrid',
|
|
16
16
|
slot: 'Main',
|
|
17
|
-
overridesResolver: (props, styles) =>
|
|
17
|
+
overridesResolver: (props, styles) => {
|
|
18
|
+
const {
|
|
19
|
+
ownerState
|
|
20
|
+
} = props;
|
|
21
|
+
return [styles.main, ownerState.dimensions.rightPinnedWidth > 0 && styles['main--hasPinnedRight'], ownerState.loadingOverlayVariant === 'skeleton' && styles['main--hasSkeletonLoadingOverlay']];
|
|
22
|
+
}
|
|
18
23
|
})({
|
|
19
24
|
flexGrow: 1,
|
|
20
25
|
position: 'relative',
|
|
@@ -23,11 +28,14 @@ const Element = styled('div', {
|
|
|
23
28
|
flexDirection: 'column'
|
|
24
29
|
});
|
|
25
30
|
export const GridMainContainer = forwardRef((props, ref) => {
|
|
31
|
+
const {
|
|
32
|
+
ownerState
|
|
33
|
+
} = props;
|
|
26
34
|
const rootProps = useGridRootProps();
|
|
27
35
|
const configuration = useGridConfiguration();
|
|
28
36
|
const ariaAttributes = configuration.hooks.useGridAriaAttributes();
|
|
29
37
|
return /*#__PURE__*/_jsxs(Element, _extends({
|
|
30
|
-
ownerState:
|
|
38
|
+
ownerState: ownerState,
|
|
31
39
|
className: props.className,
|
|
32
40
|
tabIndex: -1
|
|
33
41
|
}, ariaAttributes, rootProps.slotProps?.main, {
|
|
@@ -2,6 +2,10 @@ import * as React from 'react';
|
|
|
2
2
|
type Position = 'vertical' | 'horizontal';
|
|
3
3
|
type GridVirtualScrollbarProps = {
|
|
4
4
|
position: Position;
|
|
5
|
+
scrollPosition: React.RefObject<{
|
|
6
|
+
left: number;
|
|
7
|
+
top: number;
|
|
8
|
+
}>;
|
|
5
9
|
};
|
|
6
10
|
declare const GridVirtualScrollbar: React.ForwardRefExoticComponent<GridVirtualScrollbarProps> | React.ForwardRefExoticComponent<GridVirtualScrollbarProps & React.RefAttributes<HTMLDivElement>>;
|
|
7
11
|
export { GridVirtualScrollbar };
|
|
@@ -67,26 +67,27 @@ const GridVirtualScrollbar = forwardRef(function GridVirtualScrollbar(props, ref
|
|
|
67
67
|
const dimensions = useGridSelector(apiRef, gridDimensionsSelector);
|
|
68
68
|
const propertyDimension = props.position === 'vertical' ? 'height' : 'width';
|
|
69
69
|
const propertyScroll = props.position === 'vertical' ? 'scrollTop' : 'scrollLeft';
|
|
70
|
+
const propertyScrollPosition = props.position === 'vertical' ? 'top' : 'left';
|
|
70
71
|
const hasScroll = props.position === 'vertical' ? dimensions.hasScrollX : dimensions.hasScrollY;
|
|
71
72
|
const contentSize = dimensions.minimumSize[propertyDimension] + (hasScroll ? dimensions.scrollbarSize : 0);
|
|
72
73
|
const scrollbarSize = props.position === 'vertical' ? dimensions.viewportInnerSize.height : dimensions.viewportOuterSize.width;
|
|
73
74
|
const scrollbarInnerSize = scrollbarSize * (contentSize / dimensions.viewportOuterSize[propertyDimension]);
|
|
74
75
|
const onScrollerScroll = useEventCallback(() => {
|
|
75
|
-
const scroller = apiRef.current.virtualScrollerRef.current;
|
|
76
76
|
const scrollbar = scrollbarRef.current;
|
|
77
|
+
const scrollPosition = props.scrollPosition.current;
|
|
77
78
|
if (!scrollbar) {
|
|
78
79
|
return;
|
|
79
80
|
}
|
|
80
|
-
if (
|
|
81
|
+
if (scrollPosition[propertyScrollPosition] === lastPosition.current) {
|
|
81
82
|
return;
|
|
82
83
|
}
|
|
83
|
-
lastPosition.current =
|
|
84
|
+
lastPosition.current = scrollPosition[propertyScrollPosition];
|
|
84
85
|
if (isLocked.current) {
|
|
85
86
|
isLocked.current = false;
|
|
86
87
|
return;
|
|
87
88
|
}
|
|
88
89
|
isLocked.current = true;
|
|
89
|
-
const value =
|
|
90
|
+
const value = scrollPosition[propertyScrollPosition] / contentSize;
|
|
90
91
|
scrollbar[propertyScroll] = value * scrollbarInnerSize;
|
|
91
92
|
});
|
|
92
93
|
const onScrollbarScroll = useEventCallback(() => {
|
|
@@ -107,7 +108,6 @@ const GridVirtualScrollbar = forwardRef(function GridVirtualScrollbar(props, ref
|
|
|
107
108
|
const scroller = apiRef.current.virtualScrollerRef.current;
|
|
108
109
|
const scrollbar = scrollbarRef.current;
|
|
109
110
|
const options = {
|
|
110
|
-
capture: true,
|
|
111
111
|
passive: true
|
|
112
112
|
};
|
|
113
113
|
scroller.addEventListener('scroll', onScrollerScroll, options);
|
|
@@ -20,9 +20,11 @@ import { GridVirtualScrollerFiller as SpaceFiller } from "./GridVirtualScrollerF
|
|
|
20
20
|
import { GridVirtualScrollerRenderZone as RenderZone } from "./GridVirtualScrollerRenderZone.js";
|
|
21
21
|
import { GridVirtualScrollbar as Scrollbar } from "./GridVirtualScrollbar.js";
|
|
22
22
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
23
|
-
const useUtilityClasses =
|
|
23
|
+
const useUtilityClasses = ownerState => {
|
|
24
24
|
const {
|
|
25
|
-
classes
|
|
25
|
+
classes,
|
|
26
|
+
dimensions,
|
|
27
|
+
loadingOverlayVariant
|
|
26
28
|
} = ownerState;
|
|
27
29
|
const slots = {
|
|
28
30
|
root: ['main', dimensions.rightPinnedWidth > 0 && 'main--hasPinnedRight', loadingOverlayVariant === 'skeleton' && 'main--hasSkeletonLoadingOverlay'],
|
|
@@ -33,7 +35,12 @@ const useUtilityClasses = (ownerState, dimensions, loadingOverlayVariant) => {
|
|
|
33
35
|
const Scroller = styled('div', {
|
|
34
36
|
name: 'MuiDataGrid',
|
|
35
37
|
slot: 'VirtualScroller',
|
|
36
|
-
overridesResolver: (props, styles) =>
|
|
38
|
+
overridesResolver: (props, styles) => {
|
|
39
|
+
const {
|
|
40
|
+
ownerState
|
|
41
|
+
} = props;
|
|
42
|
+
return [styles.virtualScroller, ownerState.dimensions.hasScrollX && styles['virtualScroller--hasScrollX']];
|
|
43
|
+
}
|
|
37
44
|
})({
|
|
38
45
|
position: 'relative',
|
|
39
46
|
height: '100%',
|
|
@@ -56,7 +63,12 @@ function GridVirtualScroller(props) {
|
|
|
56
63
|
const rootProps = useGridRootProps();
|
|
57
64
|
const dimensions = useGridSelector(apiRef, gridDimensionsSelector);
|
|
58
65
|
const overlaysProps = useGridOverlays();
|
|
59
|
-
const
|
|
66
|
+
const ownerState = {
|
|
67
|
+
classes: rootProps.classes,
|
|
68
|
+
dimensions,
|
|
69
|
+
loadingOverlayVariant: overlaysProps.loadingOverlayVariant
|
|
70
|
+
};
|
|
71
|
+
const classes = useUtilityClasses(ownerState);
|
|
60
72
|
const virtualScroller = useGridVirtualScroller();
|
|
61
73
|
const {
|
|
62
74
|
getContainerProps,
|
|
@@ -71,6 +83,7 @@ function GridVirtualScroller(props) {
|
|
|
71
83
|
return /*#__PURE__*/_jsxs(Container, _extends({
|
|
72
84
|
className: classes.root
|
|
73
85
|
}, getContainerProps(), {
|
|
86
|
+
ownerState: ownerState,
|
|
74
87
|
children: [/*#__PURE__*/_jsx(GridScrollArea, {
|
|
75
88
|
scrollDirection: "left"
|
|
76
89
|
}), /*#__PURE__*/_jsx(GridScrollArea, {
|
|
@@ -78,7 +91,7 @@ function GridVirtualScroller(props) {
|
|
|
78
91
|
}), /*#__PURE__*/_jsxs(Scroller, _extends({
|
|
79
92
|
className: classes.scroller
|
|
80
93
|
}, getScrollerProps(), {
|
|
81
|
-
ownerState:
|
|
94
|
+
ownerState: ownerState,
|
|
82
95
|
children: [/*#__PURE__*/_jsxs(TopContainer, {
|
|
83
96
|
children: [!rootProps.unstable_listView && /*#__PURE__*/_jsx(GridHeaders, {}), /*#__PURE__*/_jsx(rootProps.slots.pinnedRows, {
|
|
84
97
|
position: "top",
|
|
@@ -19,14 +19,23 @@ const useUtilityClasses = (props, overflowedContent) => {
|
|
|
19
19
|
const VirtualScrollerContentRoot = styled('div', {
|
|
20
20
|
name: 'MuiDataGrid',
|
|
21
21
|
slot: 'VirtualScrollerContent',
|
|
22
|
-
overridesResolver: (props, styles) =>
|
|
22
|
+
overridesResolver: (props, styles) => {
|
|
23
|
+
const {
|
|
24
|
+
ownerState
|
|
25
|
+
} = props;
|
|
26
|
+
return [styles.virtualScrollerContent, ownerState.overflowedContent && styles['virtualScrollerContent--overflowed']];
|
|
27
|
+
}
|
|
23
28
|
})({});
|
|
24
29
|
const GridVirtualScrollerContent = forwardRef(function GridVirtualScrollerContent(props, ref) {
|
|
25
30
|
const rootProps = useGridRootProps();
|
|
26
31
|
const overflowedContent = !rootProps.autoHeight && props.style?.minHeight === 'auto';
|
|
27
32
|
const classes = useUtilityClasses(rootProps, overflowedContent);
|
|
33
|
+
const ownerState = {
|
|
34
|
+
classes: rootProps.classes,
|
|
35
|
+
overflowedContent
|
|
36
|
+
};
|
|
28
37
|
return /*#__PURE__*/_jsx(VirtualScrollerContentRoot, _extends({}, props, {
|
|
29
|
-
ownerState:
|
|
38
|
+
ownerState: ownerState,
|
|
30
39
|
className: clsx(classes.root, props.className),
|
|
31
40
|
ref: ref
|
|
32
41
|
}));
|
|
@@ -500,7 +500,8 @@ export const useGridColumnResize = (apiRef, props) => {
|
|
|
500
500
|
if (options.expand) {
|
|
501
501
|
const visibleColumns = state.orderedFields.map(field => state.lookup[field]).filter(c => state.columnVisibilityModel[c.field] !== false);
|
|
502
502
|
const totalWidth = visibleColumns.reduce((total, column) => total + (widthByField[column.field] ?? column.computedWidth ?? column.width), 0);
|
|
503
|
-
const
|
|
503
|
+
const dimensions = apiRef.current.getRootDimensions();
|
|
504
|
+
const availableWidth = dimensions.viewportInnerSize.width;
|
|
504
505
|
const remainingWidth = availableWidth - totalWidth;
|
|
505
506
|
if (remainingWidth > 0) {
|
|
506
507
|
const widthPerColumn = remainingWidth / (newColumns.length || 1);
|
|
@@ -242,9 +242,13 @@ export function useGridColumns(apiRef, props) {
|
|
|
242
242
|
*/
|
|
243
243
|
|
|
244
244
|
const prevInnerWidth = React.useRef(null);
|
|
245
|
-
const handleGridSizeChange =
|
|
246
|
-
if (prevInnerWidth.current !==
|
|
247
|
-
prevInnerWidth.current =
|
|
245
|
+
const handleGridSizeChange = size => {
|
|
246
|
+
if (prevInnerWidth.current !== size.width) {
|
|
247
|
+
prevInnerWidth.current = size.width;
|
|
248
|
+
const hasFlexColumns = gridVisibleColumnDefinitionsSelector(apiRef).some(col => col.flex && col.flex > 0);
|
|
249
|
+
if (!hasFlexColumns) {
|
|
250
|
+
return;
|
|
251
|
+
}
|
|
248
252
|
setGridColumnsState(hydrateColumnsWidth(gridColumnsStateSelector(apiRef.current.state), apiRef.current.getRootDimensions()));
|
|
249
253
|
}
|
|
250
254
|
};
|
|
@@ -15,6 +15,7 @@ import { gridRowsMetaSelector } from "../rows/gridRowsMetaSelector.js";
|
|
|
15
15
|
import { calculatePinnedRowsHeight, getValidRowHeight, rowHeightWarning } from "../rows/gridRowsUtils.js";
|
|
16
16
|
import { getTotalHeaderHeight } from "../columns/gridColumnsUtils.js";
|
|
17
17
|
import { DATA_GRID_PROPS_DEFAULT_VALUES } from "../../../constants/dataGridPropsDefaultValues.js";
|
|
18
|
+
import { roundToDecimalPlaces } from "../../../utils/roundToDecimalPlaces.js";
|
|
18
19
|
import { isJSDOM } from "../../../utils/isJSDOM.js";
|
|
19
20
|
const EMPTY_SIZE = {
|
|
20
21
|
width: 0,
|
|
@@ -61,7 +62,7 @@ export function useGridDimensions(apiRef, props) {
|
|
|
61
62
|
const headerHeight = Math.floor(props.columnHeaderHeight * densityFactor);
|
|
62
63
|
const groupHeaderHeight = Math.floor((props.columnGroupHeaderHeight ?? props.columnHeaderHeight) * densityFactor);
|
|
63
64
|
const headerFilterHeight = Math.floor((props.headerFilterHeight ?? props.columnHeaderHeight) * densityFactor);
|
|
64
|
-
const columnsTotalWidth = roundToDecimalPlaces(gridColumnsTotalWidthSelector(apiRef),
|
|
65
|
+
const columnsTotalWidth = roundToDecimalPlaces(gridColumnsTotalWidthSelector(apiRef), 1);
|
|
65
66
|
const headersTotalHeight = getTotalHeaderHeight(apiRef, props);
|
|
66
67
|
const leftPinnedWidth = pinnedColumns.left.reduce((w, col) => w + col.computedWidth, 0);
|
|
67
68
|
const rightPinnedWidth = pinnedColumns.right.reduce((w, col) => w + col.computedWidth, 0);
|
|
@@ -111,6 +112,9 @@ export function useGridDimensions(apiRef, props) {
|
|
|
111
112
|
return Math.min(maximumPageSizeWithoutScrollBar, currentPage.rows.length);
|
|
112
113
|
}, [apiRef, props.pagination, props.paginationMode, props.getRowHeight, rowHeight]);
|
|
113
114
|
const updateDimensions = React.useCallback(() => {
|
|
115
|
+
// All the floating point dimensions should be rounded to .1 decimal places to avoid subpixel rendering issues
|
|
116
|
+
// https://github.com/mui/mui-x/issues/9550#issuecomment-1619020477
|
|
117
|
+
// https://github.com/mui/mui-x/issues/15721
|
|
114
118
|
const rootElement = apiRef.current.rootElementRef.current;
|
|
115
119
|
const pinnedRowsHeight = calculatePinnedRowsHeight(apiRef);
|
|
116
120
|
const scrollbarSize = measureScrollbarSize(rootElement, columnsTotalWidth, props.scrollbarSize);
|
|
@@ -119,7 +123,7 @@ export function useGridDimensions(apiRef, props) {
|
|
|
119
123
|
const nonPinnedColumnsTotalWidth = columnsTotalWidth - leftPinnedWidth - rightPinnedWidth;
|
|
120
124
|
const contentSize = {
|
|
121
125
|
width: nonPinnedColumnsTotalWidth,
|
|
122
|
-
height: rowsMeta.currentPageTotalHeight
|
|
126
|
+
height: roundToDecimalPlaces(rowsMeta.currentPageTotalHeight, 1)
|
|
123
127
|
};
|
|
124
128
|
let viewportOuterSize;
|
|
125
129
|
let viewportInnerSize;
|
|
@@ -280,12 +284,6 @@ function measureScrollbarSize(rootElement, columnsTotalWidth, scrollbarSize) {
|
|
|
280
284
|
rootElement.removeChild(scrollDiv);
|
|
281
285
|
return size;
|
|
282
286
|
}
|
|
283
|
-
|
|
284
|
-
// Get rid of floating point imprecision errors
|
|
285
|
-
// https://github.com/mui/mui-x/issues/9550#issuecomment-1619020477
|
|
286
|
-
function roundToDecimalPlaces(value, decimals) {
|
|
287
|
-
return Math.round(value * 10 ** decimals) / 10 ** decimals;
|
|
288
|
-
}
|
|
289
287
|
function areElementSizesEqual(a, b) {
|
|
290
288
|
return a.width === b.width && a.height === b.height;
|
|
291
289
|
}
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import { GridStateCommunity } from '../../../models/gridStateCommunity';
|
|
2
|
+
import { GridRowId } from '../../../models/gridRows';
|
|
2
3
|
/**
|
|
3
4
|
* Select the row editing state.
|
|
4
5
|
*/
|
|
5
6
|
export declare const gridEditRowsStateSelector: (state: GridStateCommunity) => import("../../..").GridEditingState;
|
|
7
|
+
export declare const gridRowIsEditingSelector: import("../../../utils/createSelector").OutputSelectorV8<GridStateCommunity, GridRowId, boolean>;
|
|
8
|
+
export declare const gridEditCellStateSelector: import("../../../utils/createSelector").OutputSelectorV8<GridStateCommunity, {
|
|
9
|
+
rowId: GridRowId;
|
|
10
|
+
field: string;
|
|
11
|
+
}, import("../../..").GridEditCellProps<any>>;
|
|
@@ -1,4 +1,10 @@
|
|
|
1
|
+
import { createSelectorV8 } from "../../../utils/createSelector.js";
|
|
1
2
|
/**
|
|
2
3
|
* Select the row editing state.
|
|
3
4
|
*/
|
|
4
|
-
export const gridEditRowsStateSelector = state => state.editRows;
|
|
5
|
+
export const gridEditRowsStateSelector = state => state.editRows;
|
|
6
|
+
export const gridRowIsEditingSelector = createSelectorV8(gridEditRowsStateSelector, (editRows, rowId) => Boolean(editRows[rowId]));
|
|
7
|
+
export const gridEditCellStateSelector = createSelectorV8(gridEditRowsStateSelector, (editRows, {
|
|
8
|
+
rowId,
|
|
9
|
+
field
|
|
10
|
+
}) => editRows[rowId]?.[field] ?? null);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export
|
|
1
|
+
export { gridEditRowsStateSelector } from './gridEditingSelectors';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export
|
|
1
|
+
export { gridEditRowsStateSelector } from "./gridEditingSelectors.js";
|