@mui/x-data-grid 7.1.1 → 7.3.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 +211 -0
- package/DataGrid/DataGrid.js +19 -0
- package/components/GridPagination.d.ts +4 -1
- package/components/GridPagination.js +60 -9
- package/components/GridRow.js +4 -1
- package/components/GridScrollArea.js +1 -1
- package/components/cell/GridCell.d.ts +1 -0
- package/components/cell/GridCell.js +4 -2
- package/components/columnHeaders/GridColumnGroupHeader.d.ts +1 -0
- package/components/columnHeaders/GridColumnGroupHeader.js +3 -2
- package/components/columnHeaders/GridColumnHeaderItem.d.ts +2 -0
- package/components/columnHeaders/GridColumnHeaderItem.js +9 -4
- package/components/containers/GridRootStyles.js +8 -4
- package/components/index.d.ts +1 -1
- package/components/index.js +1 -1
- package/components/panel/GridPanel.js +3 -1
- package/components/panel/filterPanel/GridFilterInputDate.js +5 -1
- package/constants/gridClasses.d.ts +11 -2
- package/constants/gridClasses.js +1 -1
- package/hooks/core/useGridInitialization.js +1 -1
- package/hooks/core/useGridStateInitialization.d.ts +1 -2
- package/hooks/core/useGridStateInitialization.js +6 -10
- package/hooks/features/columnHeaders/useGridColumnHeaders.js +9 -5
- package/hooks/features/columnResize/useGridColumnResize.js +75 -61
- package/hooks/features/columns/gridColumnsUtils.d.ts +2 -1
- package/hooks/features/columns/gridColumnsUtils.js +4 -3
- package/hooks/features/density/useGridDensity.d.ts +1 -1
- package/hooks/features/density/useGridDensity.js +30 -4
- package/hooks/features/dimensions/gridDimensionsApi.d.ts +5 -1
- package/hooks/features/dimensions/useGridDimensions.d.ts +1 -1
- package/hooks/features/dimensions/useGridDimensions.js +5 -2
- package/hooks/features/editing/useGridCellEditing.js +17 -2
- package/hooks/features/editing/useGridRowEditing.js +3 -1
- package/hooks/features/export/serializers/csvSerializer.js +6 -5
- package/hooks/features/export/useGridPrintExport.d.ts +1 -1
- package/hooks/features/export/useGridPrintExport.js +2 -2
- package/hooks/features/headerFiltering/useGridHeaderFiltering.d.ts +2 -2
- package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.d.ts +2 -2
- package/hooks/features/pagination/gridPaginationInterfaces.d.ts +14 -2
- package/hooks/features/pagination/gridPaginationSelector.d.ts +5 -0
- package/hooks/features/pagination/gridPaginationSelector.js +7 -1
- package/hooks/features/pagination/gridPaginationUtils.d.ts +1 -2
- package/hooks/features/pagination/gridPaginationUtils.js +5 -3
- package/hooks/features/pagination/useGridPagination.d.ts +1 -1
- package/hooks/features/pagination/useGridPagination.js +5 -1
- package/hooks/features/pagination/useGridPaginationMeta.d.ts +4 -0
- package/hooks/features/pagination/useGridPaginationMeta.js +77 -0
- package/hooks/features/pagination/useGridPaginationModel.js +2 -1
- package/hooks/features/pagination/useGridRowCount.d.ts +0 -4
- package/hooks/features/pagination/useGridRowCount.js +32 -18
- package/hooks/utils/useGridSelector.d.ts +1 -1
- package/index.js +1 -1
- package/internals/index.d.ts +1 -1
- package/internals/utils/propValidation.js +1 -1
- package/locales/daDK.js +3 -4
- package/locales/deDE.js +3 -4
- package/locales/frFR.js +5 -6
- package/locales/svSE.js +3 -4
- package/models/api/gridApiCommon.d.ts +1 -1
- package/models/api/gridCallbackDetails.d.ts +5 -0
- package/models/api/gridLocaleTextApi.d.ts +7 -3
- package/models/api/index.d.ts +1 -1
- package/models/api/index.js +0 -1
- package/models/events/gridEventLookup.d.ts +7 -1
- package/models/gridPaginationProps.d.ts +3 -0
- package/models/props/DataGridProps.d.ts +26 -8
- package/modern/DataGrid/DataGrid.js +19 -0
- package/modern/components/GridPagination.js +60 -9
- package/modern/components/GridRow.js +4 -1
- package/modern/components/GridScrollArea.js +1 -1
- package/modern/components/cell/GridCell.js +4 -2
- package/modern/components/columnHeaders/GridColumnGroupHeader.js +3 -2
- package/modern/components/columnHeaders/GridColumnHeaderItem.js +9 -4
- package/modern/components/containers/GridRootStyles.js +8 -4
- package/modern/components/index.js +1 -1
- package/modern/components/panel/GridPanel.js +3 -1
- package/modern/components/panel/filterPanel/GridFilterInputDate.js +5 -1
- package/modern/constants/gridClasses.js +1 -1
- package/modern/hooks/core/useGridInitialization.js +1 -1
- package/modern/hooks/core/useGridStateInitialization.js +6 -10
- package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +9 -5
- package/modern/hooks/features/columnResize/useGridColumnResize.js +75 -61
- package/modern/hooks/features/columns/gridColumnsUtils.js +4 -3
- package/modern/hooks/features/density/useGridDensity.js +30 -4
- package/modern/hooks/features/dimensions/useGridDimensions.js +5 -2
- package/modern/hooks/features/editing/useGridCellEditing.js +17 -2
- package/modern/hooks/features/editing/useGridRowEditing.js +3 -1
- package/modern/hooks/features/export/serializers/csvSerializer.js +6 -5
- package/modern/hooks/features/export/useGridPrintExport.js +2 -2
- package/modern/hooks/features/pagination/gridPaginationSelector.js +7 -1
- package/modern/hooks/features/pagination/gridPaginationUtils.js +5 -3
- package/modern/hooks/features/pagination/useGridPagination.js +5 -1
- package/modern/hooks/features/pagination/useGridPaginationMeta.js +77 -0
- package/modern/hooks/features/pagination/useGridPaginationModel.js +2 -1
- package/modern/hooks/features/pagination/useGridRowCount.js +32 -18
- package/modern/index.js +1 -1
- package/modern/internals/utils/propValidation.js +1 -1
- package/modern/locales/daDK.js +3 -4
- package/modern/locales/deDE.js +3 -4
- package/modern/locales/frFR.js +5 -6
- package/modern/locales/svSE.js +3 -4
- package/modern/models/api/index.js +0 -1
- package/modern/utils/cellBorderUtils.js +15 -2
- package/node/DataGrid/DataGrid.js +19 -0
- package/node/components/GridPagination.js +59 -8
- package/node/components/GridRow.js +4 -1
- package/node/components/GridScrollArea.js +1 -1
- package/node/components/cell/GridCell.js +4 -2
- package/node/components/columnHeaders/GridColumnGroupHeader.js +3 -2
- package/node/components/columnHeaders/GridColumnHeaderItem.js +8 -3
- package/node/components/containers/GridRootStyles.js +8 -4
- package/node/components/index.js +27 -10
- package/node/components/panel/GridPanel.js +3 -1
- package/node/components/panel/filterPanel/GridFilterInputDate.js +5 -1
- package/node/constants/gridClasses.js +1 -1
- package/node/hooks/core/useGridInitialization.js +1 -1
- package/node/hooks/core/useGridStateInitialization.js +6 -10
- package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +9 -5
- package/node/hooks/features/columnResize/useGridColumnResize.js +76 -62
- package/node/hooks/features/columns/gridColumnsUtils.js +4 -3
- package/node/hooks/features/density/useGridDensity.js +30 -4
- package/node/hooks/features/dimensions/useGridDimensions.js +5 -2
- package/node/hooks/features/editing/useGridCellEditing.js +17 -2
- package/node/hooks/features/editing/useGridRowEditing.js +3 -1
- package/node/hooks/features/export/serializers/csvSerializer.js +6 -5
- package/node/hooks/features/export/useGridPrintExport.js +2 -2
- package/node/hooks/features/pagination/gridPaginationSelector.js +8 -2
- package/node/hooks/features/pagination/gridPaginationUtils.js +6 -4
- package/node/hooks/features/pagination/useGridPagination.js +5 -1
- package/node/hooks/features/pagination/useGridPaginationMeta.js +87 -0
- package/node/hooks/features/pagination/useGridPaginationModel.js +2 -1
- package/node/hooks/features/pagination/useGridRowCount.js +30 -15
- package/node/index.js +1 -1
- package/node/internals/utils/propValidation.js +1 -1
- package/node/locales/daDK.js +3 -4
- package/node/locales/deDE.js +3 -4
- package/node/locales/frFR.js +5 -6
- package/node/locales/svSE.js +3 -4
- package/node/models/api/index.js +0 -11
- package/node/utils/cellBorderUtils.js +15 -2
- package/package.json +1 -1
- package/themeAugmentation/overrides.d.ts +6 -0
- package/utils/cellBorderUtils.d.ts +1 -1
- package/utils/cellBorderUtils.js +15 -2
- package/utils/getGridLocalization.d.ts +1 -1
package/node/components/index.js
CHANGED
|
@@ -3,9 +3,19 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
var _exportNames = {
|
|
7
|
+
GridPagination: true
|
|
8
|
+
};
|
|
9
|
+
Object.defineProperty(exports, "GridPagination", {
|
|
10
|
+
enumerable: true,
|
|
11
|
+
get: function () {
|
|
12
|
+
return _GridPagination.GridPagination;
|
|
13
|
+
}
|
|
14
|
+
});
|
|
6
15
|
var _base = require("./base");
|
|
7
16
|
Object.keys(_base).forEach(function (key) {
|
|
8
17
|
if (key === "default" || key === "__esModule") return;
|
|
18
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
9
19
|
if (key in exports && exports[key] === _base[key]) return;
|
|
10
20
|
Object.defineProperty(exports, key, {
|
|
11
21
|
enumerable: true,
|
|
@@ -17,6 +27,7 @@ Object.keys(_base).forEach(function (key) {
|
|
|
17
27
|
var _cell = require("./cell");
|
|
18
28
|
Object.keys(_cell).forEach(function (key) {
|
|
19
29
|
if (key === "default" || key === "__esModule") return;
|
|
30
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
20
31
|
if (key in exports && exports[key] === _cell[key]) return;
|
|
21
32
|
Object.defineProperty(exports, key, {
|
|
22
33
|
enumerable: true,
|
|
@@ -28,6 +39,7 @@ Object.keys(_cell).forEach(function (key) {
|
|
|
28
39
|
var _containers = require("./containers");
|
|
29
40
|
Object.keys(_containers).forEach(function (key) {
|
|
30
41
|
if (key === "default" || key === "__esModule") return;
|
|
42
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
31
43
|
if (key in exports && exports[key] === _containers[key]) return;
|
|
32
44
|
Object.defineProperty(exports, key, {
|
|
33
45
|
enumerable: true,
|
|
@@ -39,6 +51,7 @@ Object.keys(_containers).forEach(function (key) {
|
|
|
39
51
|
var _columnHeaders = require("./columnHeaders");
|
|
40
52
|
Object.keys(_columnHeaders).forEach(function (key) {
|
|
41
53
|
if (key === "default" || key === "__esModule") return;
|
|
54
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
42
55
|
if (key in exports && exports[key] === _columnHeaders[key]) return;
|
|
43
56
|
Object.defineProperty(exports, key, {
|
|
44
57
|
enumerable: true,
|
|
@@ -50,6 +63,7 @@ Object.keys(_columnHeaders).forEach(function (key) {
|
|
|
50
63
|
var _columnSelection = require("./columnSelection");
|
|
51
64
|
Object.keys(_columnSelection).forEach(function (key) {
|
|
52
65
|
if (key === "default" || key === "__esModule") return;
|
|
66
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
53
67
|
if (key in exports && exports[key] === _columnSelection[key]) return;
|
|
54
68
|
Object.defineProperty(exports, key, {
|
|
55
69
|
enumerable: true,
|
|
@@ -61,6 +75,7 @@ Object.keys(_columnSelection).forEach(function (key) {
|
|
|
61
75
|
var _icons = require("../material/icons");
|
|
62
76
|
Object.keys(_icons).forEach(function (key) {
|
|
63
77
|
if (key === "default" || key === "__esModule") return;
|
|
78
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
64
79
|
if (key in exports && exports[key] === _icons[key]) return;
|
|
65
80
|
Object.defineProperty(exports, key, {
|
|
66
81
|
enumerable: true,
|
|
@@ -72,6 +87,7 @@ Object.keys(_icons).forEach(function (key) {
|
|
|
72
87
|
var _menu = require("./menu");
|
|
73
88
|
Object.keys(_menu).forEach(function (key) {
|
|
74
89
|
if (key === "default" || key === "__esModule") return;
|
|
90
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
75
91
|
if (key in exports && exports[key] === _menu[key]) return;
|
|
76
92
|
Object.defineProperty(exports, key, {
|
|
77
93
|
enumerable: true,
|
|
@@ -83,6 +99,7 @@ Object.keys(_menu).forEach(function (key) {
|
|
|
83
99
|
var _panel = require("./panel");
|
|
84
100
|
Object.keys(_panel).forEach(function (key) {
|
|
85
101
|
if (key === "default" || key === "__esModule") return;
|
|
102
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
86
103
|
if (key in exports && exports[key] === _panel[key]) return;
|
|
87
104
|
Object.defineProperty(exports, key, {
|
|
88
105
|
enumerable: true,
|
|
@@ -94,6 +111,7 @@ Object.keys(_panel).forEach(function (key) {
|
|
|
94
111
|
var _columnsManagement = require("./columnsManagement");
|
|
95
112
|
Object.keys(_columnsManagement).forEach(function (key) {
|
|
96
113
|
if (key === "default" || key === "__esModule") return;
|
|
114
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
97
115
|
if (key in exports && exports[key] === _columnsManagement[key]) return;
|
|
98
116
|
Object.defineProperty(exports, key, {
|
|
99
117
|
enumerable: true,
|
|
@@ -105,6 +123,7 @@ Object.keys(_columnsManagement).forEach(function (key) {
|
|
|
105
123
|
var _toolbar = require("./toolbar");
|
|
106
124
|
Object.keys(_toolbar).forEach(function (key) {
|
|
107
125
|
if (key === "default" || key === "__esModule") return;
|
|
126
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
108
127
|
if (key in exports && exports[key] === _toolbar[key]) return;
|
|
109
128
|
Object.defineProperty(exports, key, {
|
|
110
129
|
enumerable: true,
|
|
@@ -116,6 +135,7 @@ Object.keys(_toolbar).forEach(function (key) {
|
|
|
116
135
|
var _GridApiContext = require("./GridApiContext");
|
|
117
136
|
Object.keys(_GridApiContext).forEach(function (key) {
|
|
118
137
|
if (key === "default" || key === "__esModule") return;
|
|
138
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
119
139
|
if (key in exports && exports[key] === _GridApiContext[key]) return;
|
|
120
140
|
Object.defineProperty(exports, key, {
|
|
121
141
|
enumerable: true,
|
|
@@ -127,6 +147,7 @@ Object.keys(_GridApiContext).forEach(function (key) {
|
|
|
127
147
|
var _GridFooter = require("./GridFooter");
|
|
128
148
|
Object.keys(_GridFooter).forEach(function (key) {
|
|
129
149
|
if (key === "default" || key === "__esModule") return;
|
|
150
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
130
151
|
if (key in exports && exports[key] === _GridFooter[key]) return;
|
|
131
152
|
Object.defineProperty(exports, key, {
|
|
132
153
|
enumerable: true,
|
|
@@ -138,6 +159,7 @@ Object.keys(_GridFooter).forEach(function (key) {
|
|
|
138
159
|
var _GridHeader = require("./GridHeader");
|
|
139
160
|
Object.keys(_GridHeader).forEach(function (key) {
|
|
140
161
|
if (key === "default" || key === "__esModule") return;
|
|
162
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
141
163
|
if (key in exports && exports[key] === _GridHeader[key]) return;
|
|
142
164
|
Object.defineProperty(exports, key, {
|
|
143
165
|
enumerable: true,
|
|
@@ -149,6 +171,7 @@ Object.keys(_GridHeader).forEach(function (key) {
|
|
|
149
171
|
var _GridLoadingOverlay = require("./GridLoadingOverlay");
|
|
150
172
|
Object.keys(_GridLoadingOverlay).forEach(function (key) {
|
|
151
173
|
if (key === "default" || key === "__esModule") return;
|
|
174
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
152
175
|
if (key in exports && exports[key] === _GridLoadingOverlay[key]) return;
|
|
153
176
|
Object.defineProperty(exports, key, {
|
|
154
177
|
enumerable: true,
|
|
@@ -160,6 +183,7 @@ Object.keys(_GridLoadingOverlay).forEach(function (key) {
|
|
|
160
183
|
var _GridNoRowsOverlay = require("./GridNoRowsOverlay");
|
|
161
184
|
Object.keys(_GridNoRowsOverlay).forEach(function (key) {
|
|
162
185
|
if (key === "default" || key === "__esModule") return;
|
|
186
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
163
187
|
if (key in exports && exports[key] === _GridNoRowsOverlay[key]) return;
|
|
164
188
|
Object.defineProperty(exports, key, {
|
|
165
189
|
enumerable: true,
|
|
@@ -169,19 +193,10 @@ Object.keys(_GridNoRowsOverlay).forEach(function (key) {
|
|
|
169
193
|
});
|
|
170
194
|
});
|
|
171
195
|
var _GridPagination = require("./GridPagination");
|
|
172
|
-
Object.keys(_GridPagination).forEach(function (key) {
|
|
173
|
-
if (key === "default" || key === "__esModule") return;
|
|
174
|
-
if (key in exports && exports[key] === _GridPagination[key]) return;
|
|
175
|
-
Object.defineProperty(exports, key, {
|
|
176
|
-
enumerable: true,
|
|
177
|
-
get: function () {
|
|
178
|
-
return _GridPagination[key];
|
|
179
|
-
}
|
|
180
|
-
});
|
|
181
|
-
});
|
|
182
196
|
var _GridRowCount = require("./GridRowCount");
|
|
183
197
|
Object.keys(_GridRowCount).forEach(function (key) {
|
|
184
198
|
if (key === "default" || key === "__esModule") return;
|
|
199
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
185
200
|
if (key in exports && exports[key] === _GridRowCount[key]) return;
|
|
186
201
|
Object.defineProperty(exports, key, {
|
|
187
202
|
enumerable: true,
|
|
@@ -193,6 +208,7 @@ Object.keys(_GridRowCount).forEach(function (key) {
|
|
|
193
208
|
var _GridRow = require("./GridRow");
|
|
194
209
|
Object.keys(_GridRow).forEach(function (key) {
|
|
195
210
|
if (key === "default" || key === "__esModule") return;
|
|
211
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
196
212
|
if (key in exports && exports[key] === _GridRow[key]) return;
|
|
197
213
|
Object.defineProperty(exports, key, {
|
|
198
214
|
enumerable: true,
|
|
@@ -204,6 +220,7 @@ Object.keys(_GridRow).forEach(function (key) {
|
|
|
204
220
|
var _GridSelectedRowCount = require("./GridSelectedRowCount");
|
|
205
221
|
Object.keys(_GridSelectedRowCount).forEach(function (key) {
|
|
206
222
|
if (key === "default" || key === "__esModule") return;
|
|
223
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
207
224
|
if (key in exports && exports[key] === _GridSelectedRowCount[key]) return;
|
|
208
225
|
Object.defineProperty(exports, key, {
|
|
209
226
|
enumerable: true,
|
|
@@ -42,7 +42,9 @@ const GridPaperRoot = (0, _styles.styled)(_Paper.default, {
|
|
|
42
42
|
backgroundColor: (theme.vars || theme).palette.background.paper,
|
|
43
43
|
minWidth: 300,
|
|
44
44
|
maxHeight: 450,
|
|
45
|
-
display: 'flex'
|
|
45
|
+
display: 'flex',
|
|
46
|
+
maxWidth: `calc(100vw - ${theme.spacing(0.5)})`,
|
|
47
|
+
overflow: 'auto'
|
|
46
48
|
}));
|
|
47
49
|
const GridPanel = exports.GridPanel = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
48
50
|
const {
|
|
@@ -21,6 +21,9 @@ function convertFilterItemValueToInputValue(itemValue, inputType) {
|
|
|
21
21
|
return '';
|
|
22
22
|
}
|
|
23
23
|
const dateCopy = new Date(itemValue);
|
|
24
|
+
if (Number.isNaN(dateCopy.getTime())) {
|
|
25
|
+
return '';
|
|
26
|
+
}
|
|
24
27
|
// The date picker expects the date to be in the local timezone.
|
|
25
28
|
// But .toISOString() converts it to UTC with zero offset.
|
|
26
29
|
// So we need to subtract the timezone offset.
|
|
@@ -57,8 +60,9 @@ function GridFilterInputDate(props) {
|
|
|
57
60
|
setFilterValueState(value);
|
|
58
61
|
setIsApplying(true);
|
|
59
62
|
filterTimeout.start(rootProps.filterDebounceMs, () => {
|
|
63
|
+
const date = new Date(value);
|
|
60
64
|
applyValue((0, _extends2.default)({}, item, {
|
|
61
|
-
value:
|
|
65
|
+
value: Number.isNaN(date.getTime()) ? undefined : date
|
|
62
66
|
}));
|
|
63
67
|
setIsApplying(false);
|
|
64
68
|
});
|
|
@@ -9,4 +9,4 @@ var _utils = require("@mui/utils");
|
|
|
9
9
|
function getDataGridUtilityClass(slot) {
|
|
10
10
|
return (0, _utils.unstable_generateUtilityClass)('MuiDataGrid', slot);
|
|
11
11
|
}
|
|
12
|
-
const gridClasses = exports.gridClasses = (0, _utils.unstable_generateUtilityClasses)('MuiDataGrid', ['actionsCell', 'aggregationColumnHeader', 'aggregationColumnHeader--alignLeft', 'aggregationColumnHeader--alignCenter', 'aggregationColumnHeader--alignRight', 'aggregationColumnHeaderLabel', 'autoHeight', 'autosizing', 'booleanCell', 'cell--editable', 'cell--editing', 'cell--flex', 'cell--textCenter', 'cell--textLeft', 'cell--textRight', 'cell--rangeTop', 'cell--rangeBottom', 'cell--rangeLeft', 'cell--rangeRight', 'cell--pinnedLeft', 'cell--pinnedRight', 'cell--selectionMode', 'cell', 'cellCheckbox', 'cellEmpty', 'cellSkeleton', 'cellOffsetLeft', 'checkboxInput', 'columnHeader--alignCenter', 'columnHeader--alignLeft', 'columnHeader--alignRight', 'columnHeader--dragging', 'columnHeader--moving', 'columnHeader--numeric', 'columnHeader--sortable', 'columnHeader--sorted', 'columnHeader--filtered', 'columnHeader--pinnedLeft', 'columnHeader--pinnedRight', 'columnHeader', 'columnHeaderCheckbox', 'columnHeaderDraggableContainer', 'columnHeaderTitle', 'columnHeaderTitleContainer', 'columnHeaderTitleContainerContent', 'columnHeader--filledGroup', 'columnHeader--emptyGroup', 'columnHeaders', 'columnSeparator--resizable', 'columnSeparator--resizing', 'columnSeparator--sideLeft', 'columnSeparator--sideRight', 'columnSeparator', 'columnsManagement', 'columnsManagementRow', 'columnsManagementHeader', 'columnsManagementFooter', 'container--top', 'container--bottom', 'detailPanel', 'detailPanels', 'detailPanelToggleCell', 'detailPanelToggleCell--expanded', 'footerCell', 'panel', 'panelHeader', 'panelWrapper', 'panelContent', 'panelFooter', 'paper', 'editBooleanCell', 'editInputCell', 'filler', 'filler--pinnedLeft', 'filler--pinnedRight', 'filterForm', 'filterFormDeleteIcon', 'filterFormLogicOperatorInput', 'filterFormColumnInput', 'filterFormOperatorInput', 'filterFormValueInput', 'filterIcon', 'footerContainer', 'headerFilterRow', 'iconButtonContainer', 'iconSeparator', 'main', 'main--hasPinnedRight', 'menu', 'menuIcon', 'menuIconButton', 'menuOpen', 'menuList', 'overlay', 'overlayWrapper', 'overlayWrapperInner', 'root', 'root--densityStandard', 'root--densityComfortable', 'root--densityCompact', 'root--disableUserSelection', 'row', 'row--editable', 'row--editing', 'row--firstVisible', 'row--lastVisible', 'row--dragging', 'row--dynamicHeight', 'row--detailPanelExpanded', 'rowReorderCellPlaceholder', 'rowCount', 'rowReorderCellContainer', 'rowReorderCell', 'rowReorderCell--draggable', 'scrollArea--left', 'scrollArea--right', 'scrollArea', 'scrollbar', 'scrollbar--vertical', 'scrollbar--horizontal', 'scrollbarFiller', 'scrollbarFiller--header', 'scrollbarFiller--borderTop', 'scrollbarFiller--pinnedRight', 'selectedRowCount', 'sortIcon', 'toolbarContainer', 'toolbarFilterList', 'virtualScroller', 'virtualScrollerContent', 'virtualScrollerContent--overflowed', 'virtualScrollerRenderZone', 'pinnedColumns', 'withVerticalBorder', 'withBorderColor', 'cell--withRightBorder', 'cell--withLeftBorder', 'columnHeader--withRightBorder', 'columnHeader--withLeftBorder', 'treeDataGroupingCell', 'treeDataGroupingCellToggle', 'groupingCriteriaCell', 'groupingCriteriaCellToggle', 'pinnedRows', 'pinnedRows--top', 'pinnedRows--bottom', 'pinnedRowsRenderZone']);
|
|
12
|
+
const gridClasses = exports.gridClasses = (0, _utils.unstable_generateUtilityClasses)('MuiDataGrid', ['actionsCell', 'aggregationColumnHeader', 'aggregationColumnHeader--alignLeft', 'aggregationColumnHeader--alignCenter', 'aggregationColumnHeader--alignRight', 'aggregationColumnHeaderLabel', 'autoHeight', 'autosizing', 'booleanCell', 'cell--editable', 'cell--editing', 'cell--flex', 'cell--textCenter', 'cell--textLeft', 'cell--textRight', 'cell--rangeTop', 'cell--rangeBottom', 'cell--rangeLeft', 'cell--rangeRight', 'cell--pinnedLeft', 'cell--pinnedRight', 'cell--selectionMode', 'cell', 'cellCheckbox', 'cellEmpty', 'cellSkeleton', 'cellOffsetLeft', 'checkboxInput', 'columnHeader', 'columnHeader--alignCenter', 'columnHeader--alignLeft', 'columnHeader--alignRight', 'columnHeader--dragging', 'columnHeader--moving', 'columnHeader--numeric', 'columnHeader--sortable', 'columnHeader--sorted', 'columnHeader--filtered', 'columnHeader--pinnedLeft', 'columnHeader--pinnedRight', 'columnHeader--last', 'columnHeaderCheckbox', 'columnHeaderDraggableContainer', 'columnHeaderTitle', 'columnHeaderTitleContainer', 'columnHeaderTitleContainerContent', 'columnHeader--filledGroup', 'columnHeader--emptyGroup', 'columnHeaders', 'columnSeparator--resizable', 'columnSeparator--resizing', 'columnSeparator--sideLeft', 'columnSeparator--sideRight', 'columnSeparator', 'columnsManagement', 'columnsManagementRow', 'columnsManagementHeader', 'columnsManagementFooter', 'container--top', 'container--bottom', 'detailPanel', 'detailPanels', 'detailPanelToggleCell', 'detailPanelToggleCell--expanded', 'footerCell', 'panel', 'panelHeader', 'panelWrapper', 'panelContent', 'panelFooter', 'paper', 'editBooleanCell', 'editInputCell', 'filler', 'filler--borderTop', 'filler--pinnedLeft', 'filler--pinnedRight', 'filterForm', 'filterFormDeleteIcon', 'filterFormLogicOperatorInput', 'filterFormColumnInput', 'filterFormOperatorInput', 'filterFormValueInput', 'filterIcon', 'footerContainer', 'headerFilterRow', 'iconButtonContainer', 'iconSeparator', 'main', 'main--hasPinnedRight', 'menu', 'menuIcon', 'menuIconButton', 'menuOpen', 'menuList', 'overlay', 'overlayWrapper', 'overlayWrapperInner', 'root', 'root--densityStandard', 'root--densityComfortable', 'root--densityCompact', 'root--disableUserSelection', 'row', 'row--editable', 'row--editing', 'row--firstVisible', 'row--lastVisible', 'row--dragging', 'row--dynamicHeight', 'row--detailPanelExpanded', 'rowReorderCellPlaceholder', 'rowCount', 'rowReorderCellContainer', 'rowReorderCell', 'rowReorderCell--draggable', 'scrollArea--left', 'scrollArea--right', 'scrollArea', 'scrollbar', 'scrollbar--vertical', 'scrollbar--horizontal', 'scrollbarFiller', 'scrollbarFiller--header', 'scrollbarFiller--borderTop', 'scrollbarFiller--pinnedRight', 'selectedRowCount', 'sortIcon', 'toolbarContainer', 'toolbarFilterList', 'virtualScroller', 'virtualScrollerContent', 'virtualScrollerContent--overflowed', 'virtualScrollerRenderZone', 'pinnedColumns', 'withVerticalBorder', 'withBorderColor', 'cell--withRightBorder', 'cell--withLeftBorder', 'columnHeader--withRightBorder', 'columnHeader--withLeftBorder', 'treeDataGroupingCell', 'treeDataGroupingCellToggle', 'groupingCriteriaCell', 'groupingCriteriaCellToggle', 'pinnedRows', 'pinnedRows--top', 'pinnedRows--bottom', 'pinnedRowsRenderZone']);
|
|
@@ -20,7 +20,7 @@ const useGridInitialization = (inputApiRef, props) => {
|
|
|
20
20
|
(0, _useGridRefs.useGridRefs)(privateApiRef);
|
|
21
21
|
(0, _useGridTheme.useGridTheme)(privateApiRef);
|
|
22
22
|
(0, _useGridLoggerFactory.useGridLoggerFactory)(privateApiRef, props);
|
|
23
|
-
(0, _useGridStateInitialization.useGridStateInitialization)(privateApiRef
|
|
23
|
+
(0, _useGridStateInitialization.useGridStateInitialization)(privateApiRef);
|
|
24
24
|
(0, _pipeProcessing.useGridPipeProcessing)(privateApiRef);
|
|
25
25
|
(0, _strategyProcessing.useGridStrategyProcessing)(privateApiRef);
|
|
26
26
|
(0, _useGridLocaleText.useGridLocaleText)(privateApiRef, props);
|
|
@@ -7,12 +7,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.useGridStateInitialization = void 0;
|
|
8
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
9
|
var React = _interopRequireWildcard(require("react"));
|
|
10
|
-
var _useGridApiEventHandler = require("../utils/useGridApiEventHandler");
|
|
11
10
|
var _utils = require("../utils");
|
|
12
11
|
var _utils2 = require("../../utils/utils");
|
|
13
12
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
14
13
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
15
|
-
const useGridStateInitialization =
|
|
14
|
+
const useGridStateInitialization = apiRef => {
|
|
16
15
|
const controlStateMapRef = React.useRef({});
|
|
17
16
|
const [, rawForceUpdate] = React.useState();
|
|
18
17
|
const registerControlState = React.useCallback(controlStateItem => {
|
|
@@ -71,13 +70,10 @@ const useGridStateInitialization = (apiRef, props) => {
|
|
|
71
70
|
const controlState = controlStateMapRef.current[stateId];
|
|
72
71
|
const model = controlState.stateSelector(newState, apiRef.current.instanceId);
|
|
73
72
|
if (controlState.propOnChange && hasPropChanged) {
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
}
|
|
78
|
-
reason
|
|
79
|
-
};
|
|
80
|
-
controlState.propOnChange(model, details);
|
|
73
|
+
controlState.propOnChange(model, {
|
|
74
|
+
reason,
|
|
75
|
+
api: apiRef.current
|
|
76
|
+
});
|
|
81
77
|
}
|
|
82
78
|
if (!ignoreSetState) {
|
|
83
79
|
apiRef.current.publishEvent(controlState.changeEvent, model, {
|
|
@@ -86,7 +82,7 @@ const useGridStateInitialization = (apiRef, props) => {
|
|
|
86
82
|
}
|
|
87
83
|
}
|
|
88
84
|
return !ignoreSetState;
|
|
89
|
-
}, [apiRef
|
|
85
|
+
}, [apiRef]);
|
|
90
86
|
const updateControlState = React.useCallback((key, state, reason) => {
|
|
91
87
|
return apiRef.current.setState(previousState => {
|
|
92
88
|
return (0, _extends2.default)({}, previousState, {
|
|
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.useGridColumnHeaders = exports.GridColumnHeaderRow = void 0;
|
|
8
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
9
|
var React = _interopRequireWildcard(require("react"));
|
|
10
|
+
var _clsx = _interopRequireDefault(require("clsx"));
|
|
10
11
|
var _styles = require("@mui/material/styles");
|
|
11
12
|
var _utils = require("../../utils");
|
|
12
13
|
var _useGridRootProps = require("../../utils/useGridRootProps");
|
|
@@ -30,8 +31,7 @@ const GridColumnHeaderRow = exports.GridColumnHeaderRow = (0, _styles.styled)('d
|
|
|
30
31
|
slot: 'ColumnHeaderRow',
|
|
31
32
|
overridesResolver: (_, styles) => styles.columnHeaderRow
|
|
32
33
|
})({
|
|
33
|
-
display: 'flex'
|
|
34
|
-
height: 'var(--DataGrid-headerHeight)'
|
|
34
|
+
display: 'flex'
|
|
35
35
|
});
|
|
36
36
|
const useGridColumnHeaders = props => {
|
|
37
37
|
const {
|
|
@@ -59,6 +59,7 @@ const useGridColumnHeaders = props => {
|
|
|
59
59
|
const renderContext = (0, _utils.useGridSelector)(apiRef, _virtualization.gridRenderContextColumnsSelector);
|
|
60
60
|
const pinnedColumns = (0, _utils.useGridSelector)(apiRef, _columns.gridVisiblePinnedColumnDefinitionsSelector);
|
|
61
61
|
const offsetLeft = (0, _useGridVirtualScroller.computeOffsetLeft)(columnPositions, renderContext, theme.direction, pinnedColumns.left.length);
|
|
62
|
+
const gridHasFiller = dimensions.columnsTotalWidth < dimensions.viewportOuterSize.width;
|
|
62
63
|
React.useEffect(() => {
|
|
63
64
|
apiRef.current.columnHeadersContainerRef.current.scrollLeft = 0;
|
|
64
65
|
}, [apiRef]);
|
|
@@ -112,7 +113,7 @@ const useGridColumnHeaders = props => {
|
|
|
112
113
|
}
|
|
113
114
|
}), children, isNotPinned && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
114
115
|
role: "presentation",
|
|
115
|
-
className: _gridClasses.gridClasses.filler
|
|
116
|
+
className: (0, _clsx.default)(_gridClasses.gridClasses.filler, borderTop && _gridClasses.gridClasses['filler--borderTop'])
|
|
116
117
|
}), hasScrollbarFiller && /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridScrollbarFillerCell.GridScrollbarFillerCell, {
|
|
117
118
|
header: true,
|
|
118
119
|
borderTop: borderTop,
|
|
@@ -168,12 +169,14 @@ const useGridColumnHeaders = props => {
|
|
|
168
169
|
colDef: colDef,
|
|
169
170
|
colIndex: columnIndex,
|
|
170
171
|
isResizing: resizeCol === colDef.field,
|
|
172
|
+
isLast: columnIndex === columnPositions.length - 1,
|
|
171
173
|
hasFocus: hasFocus,
|
|
172
174
|
tabIndex: tabIndex,
|
|
173
175
|
pinnedPosition: pinnedPosition,
|
|
174
176
|
style: style,
|
|
175
177
|
indexInSection: i,
|
|
176
|
-
sectionLength: renderedColumns.length
|
|
178
|
+
sectionLength: renderedColumns.length,
|
|
179
|
+
gridHasFiller: gridHasFiller
|
|
177
180
|
}, other), colDef.field));
|
|
178
181
|
}
|
|
179
182
|
return getFillers(params, columns, 0);
|
|
@@ -283,7 +286,8 @@ const useGridColumnHeaders = props => {
|
|
|
283
286
|
pinnedPosition: pinnedPosition,
|
|
284
287
|
style: style,
|
|
285
288
|
indexInSection: indexInSection,
|
|
286
|
-
sectionLength: renderedColumns.length
|
|
289
|
+
sectionLength: renderedColumns.length,
|
|
290
|
+
gridHasFiller: gridHasFiller
|
|
287
291
|
}, index);
|
|
288
292
|
});
|
|
289
293
|
return getFillers(params, children, leftOverflow);
|
|
@@ -8,6 +8,7 @@ exports.useGridColumnResize = exports.columnResizeStateInitializer = void 0;
|
|
|
8
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
9
|
var React = _interopRequireWildcard(require("react"));
|
|
10
10
|
var _utils = require("@mui/utils");
|
|
11
|
+
var _useLazyRef = _interopRequireDefault(require("@mui/utils/useLazyRef"));
|
|
11
12
|
var _styles = require("@mui/material/styles");
|
|
12
13
|
var _domUtils = require("../../../utils/domUtils");
|
|
13
14
|
var _gridColumnResizeApi = require("./gridColumnResizeApi");
|
|
@@ -182,26 +183,34 @@ const columnResizeStateInitializer = state => (0, _extends2.default)({}, state,
|
|
|
182
183
|
resizingColumnField: ''
|
|
183
184
|
}
|
|
184
185
|
});
|
|
186
|
+
exports.columnResizeStateInitializer = columnResizeStateInitializer;
|
|
187
|
+
function createResizeRefs() {
|
|
188
|
+
return {
|
|
189
|
+
colDef: undefined,
|
|
190
|
+
initialColWidth: 0,
|
|
191
|
+
initialTotalWidth: 0,
|
|
192
|
+
previousMouseClickEvent: undefined,
|
|
193
|
+
columnHeaderElement: undefined,
|
|
194
|
+
headerFilterElement: undefined,
|
|
195
|
+
groupHeaderElements: [],
|
|
196
|
+
cellElements: [],
|
|
197
|
+
leftPinnedCellsAfter: [],
|
|
198
|
+
rightPinnedCellsBefore: [],
|
|
199
|
+
fillerLeft: undefined,
|
|
200
|
+
fillerRight: undefined,
|
|
201
|
+
leftPinnedHeadersAfter: [],
|
|
202
|
+
rightPinnedHeadersBefore: []
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
|
|
185
206
|
/**
|
|
186
207
|
* @requires useGridColumns (method, event)
|
|
187
208
|
* TODO: improve experience for last column
|
|
188
209
|
*/
|
|
189
|
-
exports.columnResizeStateInitializer = columnResizeStateInitializer;
|
|
190
210
|
const useGridColumnResize = (apiRef, props) => {
|
|
191
211
|
const theme = (0, _styles.useTheme)();
|
|
192
212
|
const logger = (0, _utils2.useGridLogger)(apiRef, 'useGridColumnResize');
|
|
193
|
-
const
|
|
194
|
-
const previousMouseClickEvent = React.useRef();
|
|
195
|
-
const columnHeaderElementRef = React.useRef();
|
|
196
|
-
const headerFilterElementRef = React.useRef();
|
|
197
|
-
const groupHeaderElementsRef = React.useRef([]);
|
|
198
|
-
const cellElementsRef = React.useRef([]);
|
|
199
|
-
const leftPinnedCellsAfterRef = React.useRef([]);
|
|
200
|
-
const rightPinnedCellsBeforeRef = React.useRef([]);
|
|
201
|
-
const fillerLeftRef = React.useRef();
|
|
202
|
-
const fillerRightRef = React.useRef();
|
|
203
|
-
const leftPinnedHeadersAfterRef = React.useRef([]);
|
|
204
|
-
const rightPinnedHeadersBeforeRef = React.useRef([]);
|
|
213
|
+
const refs = (0, _useLazyRef.default)(createResizeRefs).current;
|
|
205
214
|
|
|
206
215
|
// To improve accessibility, the separator has padding on both sides.
|
|
207
216
|
// Clicking inside the padding area should be treated as a click in the separator.
|
|
@@ -211,22 +220,25 @@ const useGridColumnResize = (apiRef, props) => {
|
|
|
211
220
|
const stopResizeEventTimeout = (0, _useTimeout.useTimeout)();
|
|
212
221
|
const touchId = React.useRef();
|
|
213
222
|
const updateWidth = newWidth => {
|
|
214
|
-
logger.debug(`Updating width to ${newWidth} for col ${
|
|
215
|
-
const prevWidth =
|
|
223
|
+
logger.debug(`Updating width to ${newWidth} for col ${refs.colDef.field}`);
|
|
224
|
+
const prevWidth = refs.columnHeaderElement.offsetWidth;
|
|
216
225
|
const widthDiff = newWidth - prevWidth;
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
226
|
+
const columnWidthDiff = newWidth - refs.initialColWidth;
|
|
227
|
+
const newTotalWidth = refs.initialTotalWidth + columnWidthDiff;
|
|
228
|
+
apiRef.current.rootElementRef?.current?.style.setProperty('--DataGrid-rowWidth', `${newTotalWidth}px`);
|
|
229
|
+
refs.colDef.computedWidth = newWidth;
|
|
230
|
+
refs.colDef.width = newWidth;
|
|
231
|
+
refs.colDef.flex = 0;
|
|
232
|
+
refs.columnHeaderElement.style.width = `${newWidth}px`;
|
|
233
|
+
refs.columnHeaderElement.style.minWidth = `${newWidth}px`;
|
|
234
|
+
refs.columnHeaderElement.style.maxWidth = `${newWidth}px`;
|
|
235
|
+
const headerFilterElement = refs.headerFilterElement;
|
|
224
236
|
if (headerFilterElement) {
|
|
225
237
|
headerFilterElement.style.width = `${newWidth}px`;
|
|
226
238
|
headerFilterElement.style.minWidth = `${newWidth}px`;
|
|
227
239
|
headerFilterElement.style.maxWidth = `${newWidth}px`;
|
|
228
240
|
}
|
|
229
|
-
|
|
241
|
+
refs.groupHeaderElements.forEach(element => {
|
|
230
242
|
const div = element;
|
|
231
243
|
let finalWidth;
|
|
232
244
|
if (div.getAttribute('aria-colspan') === '1') {
|
|
@@ -240,7 +252,7 @@ const useGridColumnResize = (apiRef, props) => {
|
|
|
240
252
|
div.style.minWidth = finalWidth;
|
|
241
253
|
div.style.maxWidth = finalWidth;
|
|
242
254
|
});
|
|
243
|
-
|
|
255
|
+
refs.cellElements.forEach(element => {
|
|
244
256
|
const div = element;
|
|
245
257
|
let finalWidth;
|
|
246
258
|
if (div.getAttribute('aria-colspan') === '1') {
|
|
@@ -252,22 +264,22 @@ const useGridColumnResize = (apiRef, props) => {
|
|
|
252
264
|
}
|
|
253
265
|
div.style.setProperty('--width', finalWidth);
|
|
254
266
|
});
|
|
255
|
-
const pinnedPosition = apiRef.current.unstable_applyPipeProcessors('isColumnPinned', false,
|
|
267
|
+
const pinnedPosition = apiRef.current.unstable_applyPipeProcessors('isColumnPinned', false, refs.colDef.field);
|
|
256
268
|
if (pinnedPosition === _gridColumnsInterfaces.GridPinnedColumnPosition.LEFT) {
|
|
257
|
-
updateProperty(
|
|
258
|
-
|
|
269
|
+
updateProperty(refs.fillerLeft, 'width', widthDiff);
|
|
270
|
+
refs.leftPinnedCellsAfter.forEach(cell => {
|
|
259
271
|
updateProperty(cell, 'left', widthDiff);
|
|
260
272
|
});
|
|
261
|
-
|
|
273
|
+
refs.leftPinnedHeadersAfter.forEach(header => {
|
|
262
274
|
updateProperty(header, 'left', widthDiff);
|
|
263
275
|
});
|
|
264
276
|
}
|
|
265
277
|
if (pinnedPosition === _gridColumnsInterfaces.GridPinnedColumnPosition.RIGHT) {
|
|
266
|
-
updateProperty(
|
|
267
|
-
|
|
278
|
+
updateProperty(refs.fillerRight, 'width', widthDiff);
|
|
279
|
+
refs.rightPinnedCellsBefore.forEach(cell => {
|
|
268
280
|
updateProperty(cell, 'right', widthDiff);
|
|
269
281
|
});
|
|
270
|
-
|
|
282
|
+
refs.rightPinnedHeadersBefore.forEach(header => {
|
|
271
283
|
updateProperty(header, 'right', widthDiff);
|
|
272
284
|
});
|
|
273
285
|
}
|
|
@@ -277,21 +289,21 @@ const useGridColumnResize = (apiRef, props) => {
|
|
|
277
289
|
stopListening();
|
|
278
290
|
|
|
279
291
|
// Prevent double-clicks from being interpreted as two separate clicks
|
|
280
|
-
if (previousMouseClickEvent
|
|
281
|
-
const prevEvent = previousMouseClickEvent
|
|
292
|
+
if (refs.previousMouseClickEvent) {
|
|
293
|
+
const prevEvent = refs.previousMouseClickEvent;
|
|
282
294
|
const prevTimeStamp = prevEvent.timeStamp;
|
|
283
295
|
const prevClientX = prevEvent.clientX;
|
|
284
296
|
const prevClientY = prevEvent.clientY;
|
|
285
297
|
|
|
286
298
|
// Check if the current event is part of a double-click
|
|
287
299
|
if (nativeEvent.timeStamp - prevTimeStamp < 300 && nativeEvent.clientX === prevClientX && nativeEvent.clientY === prevClientY) {
|
|
288
|
-
previousMouseClickEvent
|
|
300
|
+
refs.previousMouseClickEvent = undefined;
|
|
289
301
|
return;
|
|
290
302
|
}
|
|
291
303
|
}
|
|
292
|
-
if (
|
|
293
|
-
apiRef.current.setColumnWidth(
|
|
294
|
-
logger.debug(`Updating col ${
|
|
304
|
+
if (refs.colDef) {
|
|
305
|
+
apiRef.current.setColumnWidth(refs.colDef.field, refs.colDef.width);
|
|
306
|
+
logger.debug(`Updating col ${refs.colDef.field} with new width: ${refs.colDef.width}`);
|
|
295
307
|
}
|
|
296
308
|
stopResizeEventTimeout.start(0, () => {
|
|
297
309
|
apiRef.current.publishEvent('columnResizeStop', null, nativeEvent);
|
|
@@ -299,23 +311,25 @@ const useGridColumnResize = (apiRef, props) => {
|
|
|
299
311
|
};
|
|
300
312
|
const storeReferences = (colDef, separator, xStart) => {
|
|
301
313
|
const root = apiRef.current.rootElementRef.current;
|
|
302
|
-
|
|
303
|
-
|
|
314
|
+
refs.initialColWidth = colDef.computedWidth;
|
|
315
|
+
refs.initialTotalWidth = apiRef.current.getRootDimensions().rowWidth;
|
|
316
|
+
refs.colDef = colDef;
|
|
317
|
+
refs.columnHeaderElement = (0, _domUtils.findHeaderElementFromField)(apiRef.current.columnHeadersContainerRef.current, colDef.field);
|
|
304
318
|
const headerFilterElement = root.querySelector(`.${_gridClasses.gridClasses.headerFilterRow} [data-field="${colDef.field}"]`);
|
|
305
319
|
if (headerFilterElement) {
|
|
306
|
-
|
|
320
|
+
refs.headerFilterElement = headerFilterElement;
|
|
307
321
|
}
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
const pinnedPosition = apiRef.current.unstable_applyPipeProcessors('isColumnPinned', false,
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
322
|
+
refs.groupHeaderElements = (0, _domUtils.findGroupHeaderElementsFromField)(apiRef.current.columnHeadersContainerRef?.current, colDef.field);
|
|
323
|
+
refs.cellElements = (0, _domUtils.findGridCellElementsFromCol)(refs.columnHeaderElement, apiRef.current);
|
|
324
|
+
refs.fillerLeft = (0, _domUtils.findGridElement)(apiRef.current, 'filler--pinnedLeft');
|
|
325
|
+
refs.fillerRight = (0, _domUtils.findGridElement)(apiRef.current, 'filler--pinnedRight');
|
|
326
|
+
const pinnedPosition = apiRef.current.unstable_applyPipeProcessors('isColumnPinned', false, refs.colDef.field);
|
|
327
|
+
refs.leftPinnedCellsAfter = pinnedPosition !== _gridColumnsInterfaces.GridPinnedColumnPosition.LEFT ? [] : (0, _domUtils.findLeftPinnedCellsAfterCol)(apiRef.current, refs.columnHeaderElement);
|
|
328
|
+
refs.rightPinnedCellsBefore = pinnedPosition !== _gridColumnsInterfaces.GridPinnedColumnPosition.RIGHT ? [] : (0, _domUtils.findRightPinnedCellsBeforeCol)(apiRef.current, refs.columnHeaderElement);
|
|
329
|
+
refs.leftPinnedHeadersAfter = pinnedPosition !== _gridColumnsInterfaces.GridPinnedColumnPosition.LEFT ? [] : (0, _domUtils.findLeftPinnedHeadersAfterCol)(apiRef.current, refs.columnHeaderElement);
|
|
330
|
+
refs.rightPinnedHeadersBefore = pinnedPosition !== _gridColumnsInterfaces.GridPinnedColumnPosition.RIGHT ? [] : (0, _domUtils.findRightPinnedHeadersBeforeCol)(apiRef.current, refs.columnHeaderElement);
|
|
317
331
|
resizeDirection.current = getResizeDirection(separator, theme.direction);
|
|
318
|
-
initialOffsetToSeparator.current = computeOffsetToSeparator(xStart,
|
|
332
|
+
initialOffsetToSeparator.current = computeOffsetToSeparator(xStart, refs.columnHeaderElement.getBoundingClientRect(), resizeDirection.current);
|
|
319
333
|
};
|
|
320
334
|
const handleResizeMouseUp = (0, _utils.unstable_useEventCallback)(finishResize);
|
|
321
335
|
const handleResizeMouseMove = (0, _utils.unstable_useEventCallback)(nativeEvent => {
|
|
@@ -324,12 +338,12 @@ const useGridColumnResize = (apiRef, props) => {
|
|
|
324
338
|
handleResizeMouseUp(nativeEvent);
|
|
325
339
|
return;
|
|
326
340
|
}
|
|
327
|
-
let newWidth = computeNewWidth(initialOffsetToSeparator.current, nativeEvent.clientX,
|
|
328
|
-
newWidth = (0, _utils3.clamp)(newWidth,
|
|
341
|
+
let newWidth = computeNewWidth(initialOffsetToSeparator.current, nativeEvent.clientX, refs.columnHeaderElement.getBoundingClientRect(), resizeDirection.current);
|
|
342
|
+
newWidth = (0, _utils3.clamp)(newWidth, refs.colDef.minWidth, refs.colDef.maxWidth);
|
|
329
343
|
updateWidth(newWidth);
|
|
330
344
|
const params = {
|
|
331
|
-
element:
|
|
332
|
-
colDef:
|
|
345
|
+
element: refs.columnHeaderElement,
|
|
346
|
+
colDef: refs.colDef,
|
|
333
347
|
width: newWidth
|
|
334
348
|
};
|
|
335
349
|
apiRef.current.publishEvent('columnResize', params, nativeEvent);
|
|
@@ -352,12 +366,12 @@ const useGridColumnResize = (apiRef, props) => {
|
|
|
352
366
|
handleTouchEnd(nativeEvent);
|
|
353
367
|
return;
|
|
354
368
|
}
|
|
355
|
-
let newWidth = computeNewWidth(initialOffsetToSeparator.current, finger.x,
|
|
356
|
-
newWidth = (0, _utils3.clamp)(newWidth,
|
|
369
|
+
let newWidth = computeNewWidth(initialOffsetToSeparator.current, finger.x, refs.columnHeaderElement.getBoundingClientRect(), resizeDirection.current);
|
|
370
|
+
newWidth = (0, _utils3.clamp)(newWidth, refs.colDef.minWidth, refs.colDef.maxWidth);
|
|
357
371
|
updateWidth(newWidth);
|
|
358
372
|
const params = {
|
|
359
|
-
element:
|
|
360
|
-
colDef:
|
|
373
|
+
element: refs.columnHeaderElement,
|
|
374
|
+
colDef: refs.colDef,
|
|
361
375
|
width: newWidth
|
|
362
376
|
};
|
|
363
377
|
apiRef.current.publishEvent('columnResize', params, nativeEvent);
|
|
@@ -401,10 +415,10 @@ const useGridColumnResize = (apiRef, props) => {
|
|
|
401
415
|
setTimeout(() => {
|
|
402
416
|
doc.removeEventListener('click', preventClick, true);
|
|
403
417
|
}, 100);
|
|
404
|
-
if (
|
|
405
|
-
|
|
418
|
+
if (refs.columnHeaderElement) {
|
|
419
|
+
refs.columnHeaderElement.style.pointerEvents = 'unset';
|
|
406
420
|
}
|
|
407
|
-
}, [apiRef,
|
|
421
|
+
}, [apiRef, refs, handleResizeMouseMove, handleResizeMouseUp, handleTouchMove, handleTouchEnd]);
|
|
408
422
|
const handleResizeStart = React.useCallback(({
|
|
409
423
|
field
|
|
410
424
|
}) => {
|
|
@@ -445,7 +459,7 @@ const useGridColumnResize = (apiRef, props) => {
|
|
|
445
459
|
storeReferences(colDef, event.currentTarget, event.clientX);
|
|
446
460
|
const doc = (0, _utils.unstable_ownerDocument)(apiRef.current.rootElementRef.current);
|
|
447
461
|
doc.body.style.cursor = 'col-resize';
|
|
448
|
-
previousMouseClickEvent
|
|
462
|
+
refs.previousMouseClickEvent = event.nativeEvent;
|
|
449
463
|
doc.addEventListener('mousemove', handleResizeMouseMove);
|
|
450
464
|
doc.addEventListener('mouseup', handleResizeMouseUp);
|
|
451
465
|
|
|
@@ -319,10 +319,11 @@ function getFirstNonSpannedColumnToRender({
|
|
|
319
319
|
}
|
|
320
320
|
return firstNonSpannedColumnToRender;
|
|
321
321
|
}
|
|
322
|
-
function getTotalHeaderHeight(apiRef,
|
|
322
|
+
function getTotalHeaderHeight(apiRef, props) {
|
|
323
323
|
const densityFactor = (0, _densitySelector.gridDensityFactorSelector)(apiRef);
|
|
324
324
|
const maxDepth = (0, _gridColumnGroupsSelector.gridColumnGroupsHeaderMaxDepthSelector)(apiRef);
|
|
325
325
|
const isHeaderFilteringEnabled = (0, _gridHeaderFilteringSelectors.gridHeaderFilteringEnabledSelector)(apiRef);
|
|
326
|
-
const
|
|
327
|
-
|
|
326
|
+
const columnHeadersHeight = Math.floor(props.columnHeaderHeight * densityFactor);
|
|
327
|
+
const filterHeadersHeight = isHeaderFilteringEnabled ? Math.floor((props.headerFilterHeight ?? props.columnHeaderHeight) * densityFactor) : 0;
|
|
328
|
+
return columnHeadersHeight * (1 + (maxDepth ?? 0)) + filterHeadersHeight;
|
|
328
329
|
}
|