@mui/x-data-grid 7.0.0-alpha.2 → 7.0.0-alpha.4
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 +364 -0
- package/DataGrid/DataGrid.d.ts +0 -10
- package/DataGrid/DataGrid.js +11 -23
- package/DataGrid/useDataGridProps.js +1 -1
- package/README.md +0 -1
- package/colDef/gridCheckboxSelectionColDef.js +1 -1
- package/colDef/gridDefaultColumnTypes.d.ts +2 -2
- package/colDef/gridDefaultColumnTypes.js +2 -2
- package/components/GridHeader.js +3 -2
- package/components/GridRow.js +9 -6
- package/components/base/GridOverlays.js +0 -2
- package/components/cell/GridActionsCell.js +0 -1
- package/components/cell/GridCell.js +3 -5
- package/components/cell/GridEditDateCell.js +1 -20
- package/components/columnHeaders/GridColumnGroupHeader.js +2 -1
- package/components/columnHeaders/GridColumnHeaderItem.js +2 -1
- package/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +1 -1
- package/components/panel/filterPanel/GridFilterForm.js +2 -2
- package/components/panel/filterPanel/GridFilterInputValue.js +1 -1
- package/components/panel/index.d.ts +0 -1
- package/components/panel/index.js +0 -1
- package/components/virtualization/GridVirtualScroller.js +0 -1
- package/constants/defaultGridSlotsComponents.js +1 -2
- package/hooks/features/clipboard/useGridClipboard.d.ts +1 -1
- package/hooks/features/clipboard/useGridClipboard.js +1 -1
- package/hooks/features/editing/useGridCellEditing.js +8 -23
- package/hooks/features/editing/useGridRowEditing.js +7 -22
- package/hooks/features/export/useGridCsvExport.d.ts +1 -1
- package/hooks/features/export/useGridCsvExport.js +1 -1
- package/hooks/features/filter/gridFilterUtils.d.ts +1 -0
- package/hooks/features/filter/gridFilterUtils.js +7 -4
- package/hooks/features/filter/useGridFilter.js +2 -2
- package/hooks/features/focus/gridFocusStateSelector.d.ts +2 -2
- package/hooks/features/focus/gridFocusStateSelector.js +2 -6
- package/hooks/features/headerFiltering/gridHeaderFilteringSelectors.d.ts +3 -3
- package/hooks/features/headerFiltering/gridHeaderFilteringSelectors.js +3 -4
- package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +9 -6
- package/hooks/features/rowSelection/useGridRowSelection.js +2 -1
- package/hooks/features/rows/useGridRowsMeta.js +0 -1
- package/hooks/features/sorting/useGridSorting.js +6 -5
- package/hooks/features/virtualization/useGridVirtualScroller.js +0 -1
- package/index.js +1 -1
- package/internals/index.d.ts +2 -2
- package/internals/index.js +2 -2
- package/legacy/DataGrid/DataGrid.js +11 -23
- package/legacy/DataGrid/useDataGridProps.js +1 -1
- package/legacy/colDef/gridCheckboxSelectionColDef.js +1 -1
- package/legacy/colDef/gridDefaultColumnTypes.js +2 -2
- package/legacy/components/GridHeader.js +3 -2
- package/legacy/components/GridRow.js +9 -6
- package/legacy/components/base/GridOverlays.js +0 -2
- package/legacy/components/cell/GridActionsCell.js +0 -1
- package/legacy/components/cell/GridCell.js +3 -5
- package/legacy/components/cell/GridEditDateCell.js +1 -20
- package/legacy/components/columnHeaders/GridColumnGroupHeader.js +2 -1
- package/legacy/components/columnHeaders/GridColumnHeaderItem.js +2 -1
- package/legacy/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +1 -1
- package/legacy/components/panel/filterPanel/GridFilterForm.js +2 -2
- package/legacy/components/panel/filterPanel/GridFilterInputValue.js +1 -1
- package/legacy/components/panel/index.js +0 -1
- package/legacy/components/virtualization/GridVirtualScroller.js +0 -1
- package/legacy/constants/defaultGridSlotsComponents.js +1 -2
- package/legacy/hooks/features/clipboard/useGridClipboard.js +1 -1
- package/legacy/hooks/features/editing/useGridCellEditing.js +8 -23
- package/legacy/hooks/features/editing/useGridRowEditing.js +7 -24
- package/legacy/hooks/features/export/useGridCsvExport.js +1 -1
- package/legacy/hooks/features/filter/gridFilterUtils.js +7 -4
- package/legacy/hooks/features/filter/useGridFilter.js +2 -2
- package/legacy/hooks/features/focus/gridFocusStateSelector.js +2 -6
- package/legacy/hooks/features/headerFiltering/gridHeaderFilteringSelectors.js +3 -4
- package/legacy/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +9 -6
- package/legacy/hooks/features/rowSelection/useGridRowSelection.js +2 -1
- package/legacy/hooks/features/rows/useGridRowsMeta.js +0 -1
- package/legacy/hooks/features/sorting/useGridSorting.js +6 -5
- package/legacy/hooks/features/virtualization/useGridVirtualScroller.js +0 -1
- package/legacy/index.js +1 -1
- package/legacy/internals/index.js +2 -2
- package/legacy/locales/bgBG.js +33 -37
- package/legacy/locales/coreLocales.js +1 -0
- package/legacy/locales/daDK.js +37 -39
- package/legacy/locales/plPL.js +0 -1
- package/legacy/models/params/gridEditCellParams.js +1 -0
- package/legacy/utils/domUtils.js +10 -1
- package/legacy/utils/utils.js +0 -1
- package/locales/bgBG.js +33 -37
- package/locales/coreLocales.js +1 -0
- package/locales/daDK.js +37 -39
- package/locales/plPL.js +0 -1
- package/models/api/gridEditingApi.d.ts +2 -4
- package/models/api/gridSortApi.d.ts +2 -2
- package/models/colDef/gridColType.d.ts +2 -4
- package/models/gridFilterModel.d.ts +2 -2
- package/models/gridSlotsComponent.d.ts +0 -5
- package/models/gridSlotsComponentsProps.d.ts +0 -3
- package/models/params/gridEditCellParams.d.ts +3 -1
- package/models/params/gridEditCellParams.js +1 -0
- package/models/params/gridRowParams.d.ts +1 -0
- package/models/props/DataGridProps.d.ts +1 -1
- package/modern/DataGrid/DataGrid.js +11 -23
- package/modern/DataGrid/useDataGridProps.js +1 -1
- package/modern/colDef/gridCheckboxSelectionColDef.js +1 -1
- package/modern/colDef/gridDefaultColumnTypes.js +2 -2
- package/modern/components/GridHeader.js +2 -1
- package/modern/components/GridRow.js +9 -6
- package/modern/components/base/GridOverlays.js +0 -2
- package/modern/components/cell/GridActionsCell.js +0 -1
- package/modern/components/cell/GridCell.js +2 -4
- package/modern/components/cell/GridEditDateCell.js +1 -20
- package/modern/components/columnHeaders/GridColumnGroupHeader.js +2 -1
- package/modern/components/columnHeaders/GridColumnHeaderItem.js +2 -1
- package/modern/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +1 -1
- package/modern/components/panel/filterPanel/GridFilterForm.js +2 -2
- package/modern/components/panel/filterPanel/GridFilterInputValue.js +1 -1
- package/modern/components/panel/index.js +0 -1
- package/modern/components/virtualization/GridVirtualScroller.js +0 -1
- package/modern/constants/defaultGridSlotsComponents.js +1 -2
- package/modern/hooks/features/clipboard/useGridClipboard.js +1 -1
- package/modern/hooks/features/editing/useGridCellEditing.js +8 -23
- package/modern/hooks/features/editing/useGridRowEditing.js +7 -22
- package/modern/hooks/features/export/useGridCsvExport.js +1 -1
- package/modern/hooks/features/filter/gridFilterUtils.js +4 -2
- package/modern/hooks/features/filter/useGridFilter.js +2 -2
- package/modern/hooks/features/focus/gridFocusStateSelector.js +2 -6
- package/modern/hooks/features/headerFiltering/gridHeaderFilteringSelectors.js +3 -4
- package/modern/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +9 -6
- package/modern/hooks/features/rowSelection/useGridRowSelection.js +2 -1
- package/modern/hooks/features/rows/useGridRowsMeta.js +0 -1
- package/modern/hooks/features/sorting/useGridSorting.js +6 -5
- package/modern/hooks/features/virtualization/useGridVirtualScroller.js +0 -1
- package/modern/index.js +1 -1
- package/modern/internals/index.js +2 -2
- package/modern/locales/bgBG.js +33 -37
- package/modern/locales/coreLocales.js +1 -0
- package/modern/locales/daDK.js +37 -39
- package/modern/locales/plPL.js +0 -1
- package/modern/models/params/gridEditCellParams.js +1 -0
- package/modern/utils/domUtils.js +10 -1
- package/modern/utils/utils.js +0 -1
- package/node/DataGrid/DataGrid.js +11 -23
- package/node/DataGrid/useDataGridProps.js +1 -1
- package/node/colDef/gridCheckboxSelectionColDef.js +1 -1
- package/node/colDef/gridDefaultColumnTypes.js +2 -2
- package/node/components/GridHeader.js +2 -1
- package/node/components/GridRow.js +8 -5
- package/node/components/base/GridOverlays.js +0 -2
- package/node/components/cell/GridActionsCell.js +0 -1
- package/node/components/cell/GridCell.js +2 -4
- package/node/components/cell/GridEditDateCell.js +1 -20
- package/node/components/columnHeaders/GridColumnGroupHeader.js +2 -1
- package/node/components/columnHeaders/GridColumnHeaderItem.js +2 -1
- package/node/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +1 -1
- package/node/components/panel/filterPanel/GridFilterForm.js +2 -2
- package/node/components/panel/filterPanel/GridFilterInputValue.js +1 -1
- package/node/components/panel/index.js +0 -11
- package/node/components/virtualization/GridVirtualScroller.js +0 -1
- package/node/constants/defaultGridSlotsComponents.js +0 -1
- package/node/hooks/features/clipboard/useGridClipboard.js +1 -1
- package/node/hooks/features/editing/useGridCellEditing.js +7 -22
- package/node/hooks/features/editing/useGridRowEditing.js +6 -21
- package/node/hooks/features/export/useGridCsvExport.js +1 -1
- package/node/hooks/features/filter/gridFilterUtils.js +6 -3
- package/node/hooks/features/filter/useGridFilter.js +1 -1
- package/node/hooks/features/focus/gridFocusStateSelector.js +3 -7
- package/node/hooks/features/headerFiltering/gridHeaderFilteringSelectors.js +5 -7
- package/node/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +8 -5
- package/node/hooks/features/rowSelection/useGridRowSelection.js +2 -1
- package/node/hooks/features/rows/useGridRowsMeta.js +0 -1
- package/node/hooks/features/sorting/useGridSorting.js +6 -5
- package/node/hooks/features/virtualization/useGridVirtualScroller.js +0 -1
- package/node/index.js +1 -1
- package/node/internals/index.js +21 -14
- package/node/locales/bgBG.js +33 -37
- package/node/locales/daDK.js +37 -39
- package/node/locales/plPL.js +0 -1
- package/node/models/params/gridEditCellParams.js +1 -0
- package/node/utils/domUtils.js +11 -1
- package/node/utils/utils.js +0 -1
- package/package.json +4 -4
- package/utils/domUtils.d.ts +2 -0
- package/utils/domUtils.js +10 -1
- package/utils/utils.js +0 -1
|
@@ -251,7 +251,6 @@ const GridCell = exports.GridCell = /*#__PURE__*/React.forwardRef((props, ref) =
|
|
|
251
251
|
minHeight: height,
|
|
252
252
|
maxHeight: height === 'auto' ? 'none' : height // max-height doesn't support "auto"
|
|
253
253
|
};
|
|
254
|
-
|
|
255
254
|
return cellStyle;
|
|
256
255
|
}, [width, height, isNotVisible]);
|
|
257
256
|
React.useEffect(() => {
|
|
@@ -467,8 +466,8 @@ const GridCellV7 = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
|
467
466
|
const cellRef = React.useRef(null);
|
|
468
467
|
const handleRef = (0, _utils.unstable_useForkRef)(ref, cellRef);
|
|
469
468
|
const focusElementRef = React.useRef(null);
|
|
470
|
-
// @ts-expect-error To access `
|
|
471
|
-
const isSelectionMode = rootProps.
|
|
469
|
+
// @ts-expect-error To access `cellSelection` flag as it's a `premium` feature
|
|
470
|
+
const isSelectionMode = rootProps.cellSelection ?? false;
|
|
472
471
|
const ownerState = {
|
|
473
472
|
align,
|
|
474
473
|
showRightBorder,
|
|
@@ -518,7 +517,6 @@ const GridCellV7 = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
|
518
517
|
minHeight: height,
|
|
519
518
|
maxHeight: height === 'auto' ? 'none' : height // max-height doesn't support "auto"
|
|
520
519
|
};
|
|
521
|
-
|
|
522
520
|
return cellStyle;
|
|
523
521
|
}, [width, height, isNotVisible]);
|
|
524
522
|
React.useEffect(() => {
|
|
@@ -73,7 +73,6 @@ function GridEditDateCell(props) {
|
|
|
73
73
|
classes: rootProps.classes
|
|
74
74
|
};
|
|
75
75
|
const classes = useUtilityClasses(ownerState);
|
|
76
|
-
const hasUpdatedEditValueOnMount = React.useRef(false);
|
|
77
76
|
const parseValueToDate = React.useCallback(value => {
|
|
78
77
|
if (value === '') {
|
|
79
78
|
return null;
|
|
@@ -118,26 +117,8 @@ function GridEditDateCell(props) {
|
|
|
118
117
|
inputRef.current.focus();
|
|
119
118
|
}
|
|
120
119
|
}, [hasFocus]);
|
|
121
|
-
const meta = apiRef.current.unstable_getEditCellMeta(id, field);
|
|
122
|
-
const handleInputRef = el => {
|
|
123
|
-
inputRef.current = el;
|
|
124
|
-
if (meta?.unstable_updateValueOnRender && !hasUpdatedEditValueOnMount.current) {
|
|
125
|
-
const inputValue = inputRef.current.value;
|
|
126
|
-
const parsedDate = parseValueToDate(inputValue);
|
|
127
|
-
setValueState({
|
|
128
|
-
parsed: parsedDate,
|
|
129
|
-
formatted: inputValue
|
|
130
|
-
});
|
|
131
|
-
apiRef.current.setEditCellValue({
|
|
132
|
-
id,
|
|
133
|
-
field,
|
|
134
|
-
value: parsedDate
|
|
135
|
-
});
|
|
136
|
-
hasUpdatedEditValueOnMount.current = true;
|
|
137
|
-
}
|
|
138
|
-
};
|
|
139
120
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(StyledInputBase, (0, _extends2.default)({
|
|
140
|
-
inputRef:
|
|
121
|
+
inputRef: inputRef,
|
|
141
122
|
fullWidth: true,
|
|
142
123
|
className: classes.root,
|
|
143
124
|
type: isDateTime ? 'datetime-local' : 'date',
|
|
@@ -14,6 +14,7 @@ var _gridColumnGroupsSelector = require("../../hooks/features/columnGrouping/gri
|
|
|
14
14
|
var _useGridApiContext = require("../../hooks/utils/useGridApiContext");
|
|
15
15
|
var _useGridSelector = require("../../hooks/utils/useGridSelector");
|
|
16
16
|
var _GridGenericColumnHeaderItem = require("./GridGenericColumnHeaderItem");
|
|
17
|
+
var _domUtils = require("../../utils/domUtils");
|
|
17
18
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
18
19
|
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); }
|
|
19
20
|
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; }
|
|
@@ -93,7 +94,7 @@ function GridColumnGroupHeader(props) {
|
|
|
93
94
|
const publish = React.useCallback(eventName => event => {
|
|
94
95
|
// Ignore portal
|
|
95
96
|
// See https://github.com/mui/mui-x/issues/1721
|
|
96
|
-
if (
|
|
97
|
+
if ((0, _domUtils.isEventTargetInPortal)(event)) {
|
|
97
98
|
return;
|
|
98
99
|
}
|
|
99
100
|
apiRef.current.publishEvent(eventName, renderParams, event);
|
|
@@ -16,6 +16,7 @@ var _GridColumnHeaderMenu = require("../menu/columnMenu/GridColumnHeaderMenu");
|
|
|
16
16
|
var _gridClasses = require("../../constants/gridClasses");
|
|
17
17
|
var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
|
|
18
18
|
var _GridGenericColumnHeaderItem = require("./GridGenericColumnHeaderItem");
|
|
19
|
+
var _domUtils = require("../../utils/domUtils");
|
|
19
20
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
20
21
|
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); }
|
|
21
22
|
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; }
|
|
@@ -75,7 +76,7 @@ function GridColumnHeaderItem(props) {
|
|
|
75
76
|
const publish = React.useCallback(eventName => event => {
|
|
76
77
|
// Ignore portal
|
|
77
78
|
// See https://github.com/mui/mui-x/issues/1721
|
|
78
|
-
if (
|
|
79
|
+
if ((0, _domUtils.isEventTargetInPortal)(event)) {
|
|
79
80
|
return;
|
|
80
81
|
}
|
|
81
82
|
apiRef.current.publishEvent(eventName, apiRef.current.getColumnHeaderParams(colDef.field), event);
|
|
@@ -36,7 +36,7 @@ function GridColumnMenuSortItem(props) {
|
|
|
36
36
|
const onSortMenuItemClick = React.useCallback(event => {
|
|
37
37
|
onClick(event);
|
|
38
38
|
const direction = event.currentTarget.getAttribute('data-value') || null;
|
|
39
|
-
apiRef.current.sortColumn(colDef, direction === sortDirection ? null : direction);
|
|
39
|
+
apiRef.current.sortColumn(colDef.field, direction === sortDirection ? null : direction);
|
|
40
40
|
}, [apiRef, colDef, onClick, sortDirection]);
|
|
41
41
|
if (!colDef || !colDef.sortable || !sortingOrder.some(item => !!item)) {
|
|
42
42
|
return null;
|
|
@@ -184,8 +184,8 @@ const GridFilterForm = exports.GridFilterForm = /*#__PURE__*/React.forwardRef(fu
|
|
|
184
184
|
// try to keep the same operator when column change
|
|
185
185
|
const newOperator = column.filterOperators.find(operator => operator.value === item.operator) || column.filterOperators[0];
|
|
186
186
|
|
|
187
|
-
// Erase filter value if the input component is modified
|
|
188
|
-
const eraseItemValue = !newOperator.InputComponent || newOperator.InputComponent !== currentOperator?.InputComponent;
|
|
187
|
+
// Erase filter value if the input component or filtered column type is modified
|
|
188
|
+
const eraseItemValue = !newOperator.InputComponent || newOperator.InputComponent !== currentOperator?.InputComponent || column.type !== currentColumn.type;
|
|
189
189
|
applyFilterChanges((0, _extends2.default)({}, item, {
|
|
190
190
|
field,
|
|
191
191
|
operator: newOperator.value,
|
|
@@ -51,7 +51,7 @@ function GridFilterInputValue(props) {
|
|
|
51
51
|
}, [id, applyValue, item, rootProps.filterDebounceMs, filterTimeout]);
|
|
52
52
|
React.useEffect(() => {
|
|
53
53
|
const itemPlusTag = item;
|
|
54
|
-
if (itemPlusTag.fromInput !== id) {
|
|
54
|
+
if (itemPlusTag.fromInput !== id || item.value === undefined) {
|
|
55
55
|
setFilterValueState(String(item.value ?? ''));
|
|
56
56
|
}
|
|
57
57
|
}, [id, item]);
|
|
@@ -69,17 +69,6 @@ Object.keys(_GridPanelWrapper).forEach(function (key) {
|
|
|
69
69
|
}
|
|
70
70
|
});
|
|
71
71
|
});
|
|
72
|
-
var _GridPreferencesPanel = require("./GridPreferencesPanel");
|
|
73
|
-
Object.keys(_GridPreferencesPanel).forEach(function (key) {
|
|
74
|
-
if (key === "default" || key === "__esModule") return;
|
|
75
|
-
if (key in exports && exports[key] === _GridPreferencesPanel[key]) return;
|
|
76
|
-
Object.defineProperty(exports, key, {
|
|
77
|
-
enumerable: true,
|
|
78
|
-
get: function () {
|
|
79
|
-
return _GridPreferencesPanel[key];
|
|
80
|
-
}
|
|
81
|
-
});
|
|
82
|
-
});
|
|
83
72
|
var _filterPanel = require("./filterPanel");
|
|
84
73
|
Object.keys(_filterPanel).forEach(function (key) {
|
|
85
74
|
if (key === "default" || key === "__esModule") return;
|
|
@@ -38,7 +38,6 @@ const VirtualScrollerRoot = (0, _system.styled)('div', {
|
|
|
38
38
|
},
|
|
39
39
|
zIndex: 0 // See https://github.com/mui/mui-x/issues/10547
|
|
40
40
|
});
|
|
41
|
-
|
|
42
41
|
const GridVirtualScroller = exports.GridVirtualScroller = /*#__PURE__*/React.forwardRef(function GridVirtualScroller(props, ref) {
|
|
43
42
|
const rootProps = (0, _useGridRootProps.useGridRootProps)();
|
|
44
43
|
const classes = useUtilityClasses(rootProps);
|
|
@@ -23,7 +23,6 @@ const DATA_GRID_DEFAULT_SLOTS_COMPONENTS = exports.DATA_GRID_DEFAULT_SLOTS_COMPO
|
|
|
23
23
|
footer: _components.GridFooter,
|
|
24
24
|
footerRowCount: _components.GridRowCount,
|
|
25
25
|
toolbar: null,
|
|
26
|
-
preferencesPanel: _components.GridPreferencesPanel,
|
|
27
26
|
loadingOverlay: _components.GridLoadingOverlay,
|
|
28
27
|
noResultsOverlay: _GridNoResultsOverlay.GridNoResultsOverlay,
|
|
29
28
|
noRowsOverlay: _components.GridNoRowsOverlay,
|
|
@@ -57,7 +57,7 @@ function hasNativeSelection(element) {
|
|
|
57
57
|
* @requires useGridSelection (method)
|
|
58
58
|
*/
|
|
59
59
|
const useGridClipboard = (apiRef, props) => {
|
|
60
|
-
const ignoreValueFormatterProp = props.
|
|
60
|
+
const ignoreValueFormatterProp = props.ignoreValueFormatterDuringExport;
|
|
61
61
|
const ignoreValueFormatter = (typeof ignoreValueFormatterProp === 'object' ? ignoreValueFormatterProp?.clipboardExport : ignoreValueFormatterProp) || false;
|
|
62
62
|
const clipboardCopyCellDelimiter = props.clipboardCopyCellDelimiter;
|
|
63
63
|
const handleCopy = React.useCallback(event => {
|
|
@@ -90,7 +90,6 @@ const useGridCellEditing = (apiRef, props) => {
|
|
|
90
90
|
reason = event.shiftKey ? _gridEditCellParams.GridCellEditStopReasons.shiftTabKeyDown : _gridEditCellParams.GridCellEditStopReasons.tabKeyDown;
|
|
91
91
|
event.preventDefault(); // Prevent going to the next element in the tab sequence
|
|
92
92
|
}
|
|
93
|
-
|
|
94
93
|
if (reason) {
|
|
95
94
|
const newParams = (0, _extends2.default)({}, params, {
|
|
96
95
|
reason
|
|
@@ -110,7 +109,7 @@ const useGridCellEditing = (apiRef, props) => {
|
|
|
110
109
|
if ((0, _keyboardUtils.isPrintableKey)(event)) {
|
|
111
110
|
reason = _gridEditCellParams.GridCellEditStartReasons.printableKeyDown;
|
|
112
111
|
} else if ((event.ctrlKey || event.metaKey) && event.key === 'v') {
|
|
113
|
-
reason = _gridEditCellParams.GridCellEditStartReasons.
|
|
112
|
+
reason = _gridEditCellParams.GridCellEditStartReasons.pasteKeyDown;
|
|
114
113
|
} else if (event.key === 'Enter') {
|
|
115
114
|
reason = _gridEditCellParams.GridCellEditStartReasons.enterKeyDown;
|
|
116
115
|
} else if (event.key === 'Delete' || event.key === 'Backspace') {
|
|
@@ -130,24 +129,13 @@ const useGridCellEditing = (apiRef, props) => {
|
|
|
130
129
|
const {
|
|
131
130
|
id,
|
|
132
131
|
field,
|
|
133
|
-
reason
|
|
134
|
-
key,
|
|
135
|
-
colDef
|
|
132
|
+
reason
|
|
136
133
|
} = params;
|
|
137
134
|
const startCellEditModeParams = {
|
|
138
135
|
id,
|
|
139
136
|
field
|
|
140
137
|
};
|
|
141
|
-
if (reason === _gridEditCellParams.GridCellEditStartReasons.printableKeyDown) {
|
|
142
|
-
if (React.version.startsWith('17')) {
|
|
143
|
-
// In React 17, cleaning the input is enough.
|
|
144
|
-
// The sequence of events makes the key pressed by the end-users update the textbox directly.
|
|
145
|
-
startCellEditModeParams.deleteValue = true;
|
|
146
|
-
} else {
|
|
147
|
-
const initialValue = colDef.valueParser ? colDef.valueParser(key) : key;
|
|
148
|
-
startCellEditModeParams.initialValue = initialValue;
|
|
149
|
-
}
|
|
150
|
-
} else if (reason === _gridEditCellParams.GridCellEditStartReasons.deleteKeyDown) {
|
|
138
|
+
if (reason === _gridEditCellParams.GridCellEditStartReasons.printableKeyDown || reason === _gridEditCellParams.GridCellEditStartReasons.deleteKeyDown || reason === _gridEditCellParams.GridCellEditStartReasons.pasteKeyDown) {
|
|
151
139
|
startCellEditModeParams.deleteValue = true;
|
|
152
140
|
}
|
|
153
141
|
apiRef.current.startCellEditMode(startCellEditModeParams);
|
|
@@ -195,7 +183,6 @@ const useGridCellEditing = (apiRef, props) => {
|
|
|
195
183
|
if (props.cellModesModel && isNewModelDifferentFromProp) {
|
|
196
184
|
return; // The prop always win
|
|
197
185
|
}
|
|
198
|
-
|
|
199
186
|
setCellModesModel(newModel);
|
|
200
187
|
cellModesModelRef.current = newModel;
|
|
201
188
|
apiRef.current.publishEvent('cellModesModelChange', newModel);
|
|
@@ -257,17 +244,13 @@ const useGridCellEditing = (apiRef, props) => {
|
|
|
257
244
|
initialValue
|
|
258
245
|
} = params;
|
|
259
246
|
let newValue = apiRef.current.getCellValue(id, field);
|
|
260
|
-
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
261
|
-
let unstable_updateValueOnRender = false;
|
|
262
247
|
if (deleteValue || initialValue) {
|
|
263
248
|
newValue = deleteValue ? '' : initialValue;
|
|
264
|
-
unstable_updateValueOnRender = true;
|
|
265
249
|
}
|
|
266
250
|
const newProps = {
|
|
267
251
|
value: newValue,
|
|
268
252
|
error: false,
|
|
269
|
-
isProcessingProps: false
|
|
270
|
-
unstable_updateValueOnRender
|
|
253
|
+
isProcessingProps: false
|
|
271
254
|
};
|
|
272
255
|
updateOrDeleteFieldState(id, field, newProps);
|
|
273
256
|
apiRef.current.setCellFocus(id, field);
|
|
@@ -431,7 +414,9 @@ const useGridCellEditing = (apiRef, props) => {
|
|
|
431
414
|
updateCellModesModel(cellModesModelProp);
|
|
432
415
|
}
|
|
433
416
|
}, [cellModesModelProp, updateCellModesModel]);
|
|
434
|
-
|
|
417
|
+
|
|
418
|
+
// Run this effect synchronously so that the keyboard event can impact the yet-to-be-rendered input.
|
|
419
|
+
(0, _utils.unstable_useEnhancedEffect)(() => {
|
|
435
420
|
const idToIdLookup = (0, _gridRowsSelector.gridRowsDataRowIdToIdLookupSelector)(apiRef);
|
|
436
421
|
|
|
437
422
|
// Update the ref here because updateStateToStopCellEditMode may change it later
|
|
@@ -180,7 +180,6 @@ const useGridRowEditing = (apiRef, props) => {
|
|
|
180
180
|
const rowParams = apiRef.current.getRowParams(params.id);
|
|
181
181
|
const newParams = (0, _extends2.default)({}, rowParams, {
|
|
182
182
|
field: params.field,
|
|
183
|
-
key: event.key,
|
|
184
183
|
reason
|
|
185
184
|
});
|
|
186
185
|
apiRef.current.publishEvent('rowEditStart', newParams, event);
|
|
@@ -191,24 +190,13 @@ const useGridRowEditing = (apiRef, props) => {
|
|
|
191
190
|
const {
|
|
192
191
|
id,
|
|
193
192
|
field,
|
|
194
|
-
reason
|
|
195
|
-
key,
|
|
196
|
-
columns
|
|
193
|
+
reason
|
|
197
194
|
} = params;
|
|
198
195
|
const startRowEditModeParams = {
|
|
199
196
|
id,
|
|
200
197
|
fieldToFocus: field
|
|
201
198
|
};
|
|
202
|
-
if (reason === _gridRowParams.GridRowEditStartReasons.printableKeyDown) {
|
|
203
|
-
if (React.version.startsWith('17')) {
|
|
204
|
-
// In React 17, cleaning the input is enough.
|
|
205
|
-
// The sequence of events makes the key pressed by the end-users update the textbox directly.
|
|
206
|
-
startRowEditModeParams.deleteValue = !!field;
|
|
207
|
-
} else {
|
|
208
|
-
const colDef = columns.find(col => col.field === field);
|
|
209
|
-
startRowEditModeParams.initialValue = colDef.valueParser ? colDef.valueParser(key) : key;
|
|
210
|
-
}
|
|
211
|
-
} else if (reason === _gridRowParams.GridRowEditStartReasons.deleteKeyDown) {
|
|
199
|
+
if (reason === _gridRowParams.GridRowEditStartReasons.printableKeyDown || reason === _gridRowParams.GridRowEditStartReasons.deleteKeyDown) {
|
|
212
200
|
startRowEditModeParams.deleteValue = !!field;
|
|
213
201
|
}
|
|
214
202
|
apiRef.current.startRowEditMode(startRowEditModeParams);
|
|
@@ -260,7 +248,6 @@ const useGridRowEditing = (apiRef, props) => {
|
|
|
260
248
|
if (props.rowModesModel && isNewModelDifferentFromProp) {
|
|
261
249
|
return; // The prop always win
|
|
262
250
|
}
|
|
263
|
-
|
|
264
251
|
setRowModesModel(newModel);
|
|
265
252
|
rowModesModelRef.current = newModel;
|
|
266
253
|
apiRef.current.publishEvent('rowModesModelChange', newModel);
|
|
@@ -331,17 +318,13 @@ const useGridRowEditing = (apiRef, props) => {
|
|
|
331
318
|
return acc;
|
|
332
319
|
}
|
|
333
320
|
let newValue = apiRef.current.getCellValue(id, field);
|
|
334
|
-
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
335
|
-
let unstable_updateValueOnRender = false;
|
|
336
321
|
if (fieldToFocus === field && (deleteValue || initialValue)) {
|
|
337
322
|
newValue = deleteValue ? '' : initialValue;
|
|
338
|
-
unstable_updateValueOnRender = true;
|
|
339
323
|
}
|
|
340
324
|
acc[field] = {
|
|
341
325
|
value: newValue,
|
|
342
326
|
error: false,
|
|
343
|
-
isProcessingProps: false
|
|
344
|
-
unstable_updateValueOnRender
|
|
327
|
+
isProcessingProps: false
|
|
345
328
|
};
|
|
346
329
|
return acc;
|
|
347
330
|
}, {});
|
|
@@ -561,7 +544,9 @@ const useGridRowEditing = (apiRef, props) => {
|
|
|
561
544
|
updateRowModesModel(rowModesModelProp);
|
|
562
545
|
}
|
|
563
546
|
}, [rowModesModelProp, updateRowModesModel]);
|
|
564
|
-
|
|
547
|
+
|
|
548
|
+
// Run this effect synchronously so that the keyboard event can impact the yet-to-be-rendered input.
|
|
549
|
+
(0, _utils.unstable_useEnhancedEffect)(() => {
|
|
565
550
|
const idToIdLookup = (0, _gridRowsSelector.gridRowsDataRowIdToIdLookupSelector)(apiRef);
|
|
566
551
|
|
|
567
552
|
// Update the ref here because updateStateToStopRowEditMode may change it later
|
|
@@ -24,7 +24,7 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
|
|
|
24
24
|
*/
|
|
25
25
|
const useGridCsvExport = (apiRef, props) => {
|
|
26
26
|
const logger = (0, _useGridLogger.useGridLogger)(apiRef, 'useGridCsvExport');
|
|
27
|
-
const ignoreValueFormatterProp = props.
|
|
27
|
+
const ignoreValueFormatterProp = props.ignoreValueFormatterDuringExport;
|
|
28
28
|
const ignoreValueFormatter = (typeof ignoreValueFormatterProp === 'object' ? ignoreValueFormatterProp?.csvExport : ignoreValueFormatterProp) || false;
|
|
29
29
|
const getDataAsCsv = React.useCallback((options = {}) => {
|
|
30
30
|
logger.debug(`Get data as CSV`);
|
|
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.sanitizeFilterModel = exports.removeDiacritics = exports.passFilterLogic = exports.mergeStateWithFilterModel = exports.cleanFilterItem = exports.buildAggregatedFilterApplier = void 0;
|
|
7
|
+
exports.shouldQuickFilterExcludeHiddenColumns = exports.sanitizeFilterModel = exports.removeDiacritics = exports.passFilterLogic = exports.mergeStateWithFilterModel = exports.cleanFilterItem = exports.buildAggregatedFilterApplier = void 0;
|
|
8
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
9
|
var _models = require("../../../models");
|
|
10
10
|
var _gridFilterState = require("./gridFilterState");
|
|
@@ -184,6 +184,9 @@ const buildAggregatedFilterItemsApplier = (filterModel, apiRef, disableEval) =>
|
|
|
184
184
|
filterItemsApplierId += 1;
|
|
185
185
|
return filterItem;
|
|
186
186
|
};
|
|
187
|
+
const shouldQuickFilterExcludeHiddenColumns = filterModel => {
|
|
188
|
+
return filterModel.quickFilterExcludeHiddenColumns ?? true;
|
|
189
|
+
};
|
|
187
190
|
|
|
188
191
|
/**
|
|
189
192
|
* Generates a method to easily check if a row is matching the current quick filter.
|
|
@@ -191,13 +194,13 @@ const buildAggregatedFilterItemsApplier = (filterModel, apiRef, disableEval) =>
|
|
|
191
194
|
* @param {React.MutableRefObject<GridPrivateApiCommunity>} apiRef The API of the grid.
|
|
192
195
|
* @returns {GridAggregatedFilterItemApplier | null} A method that checks if a row is matching the current filter model. If `null`, we consider that all the rows are matching the filters.
|
|
193
196
|
*/
|
|
197
|
+
exports.shouldQuickFilterExcludeHiddenColumns = shouldQuickFilterExcludeHiddenColumns;
|
|
194
198
|
const buildAggregatedQuickFilterApplier = (filterModel, apiRef) => {
|
|
195
199
|
const quickFilterValues = filterModel.quickFilterValues?.filter(Boolean) ?? [];
|
|
196
200
|
if (quickFilterValues.length === 0) {
|
|
197
201
|
return null;
|
|
198
202
|
}
|
|
199
|
-
const
|
|
200
|
-
const columnFields = quickFilterExcludeHiddenColumns ? (0, _columns.gridVisibleColumnFieldsSelector)(apiRef) : (0, _columns.gridColumnFieldsSelector)(apiRef);
|
|
203
|
+
const columnFields = shouldQuickFilterExcludeHiddenColumns(filterModel) ? (0, _columns.gridVisibleColumnFieldsSelector)(apiRef) : (0, _columns.gridColumnFieldsSelector)(apiRef);
|
|
201
204
|
const appliersPerField = [];
|
|
202
205
|
const {
|
|
203
206
|
ignoreDiacritics
|
|
@@ -349,7 +349,7 @@ const useGridFilter = (apiRef, props) => {
|
|
|
349
349
|
(0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, 'rowExpansionChange', updateVisibleRowsLookupState);
|
|
350
350
|
(0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, 'columnVisibilityModelChange', () => {
|
|
351
351
|
const filterModel = (0, _gridFilterSelector.gridFilterModelSelector)(apiRef);
|
|
352
|
-
if (filterModel.quickFilterValues &&
|
|
352
|
+
if (filterModel.quickFilterValues && (0, _gridFilterUtils.shouldQuickFilterExcludeHiddenColumns)(filterModel)) {
|
|
353
353
|
// re-apply filters because the quick filter results may have changed
|
|
354
354
|
apiRef.current.unstable_applyFilters();
|
|
355
355
|
}
|
|
@@ -3,15 +3,13 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.unstable_gridTabIndexColumnGroupHeaderSelector = exports.unstable_gridFocusColumnGroupHeaderSelector = exports.gridTabIndexStateSelector = exports.gridTabIndexColumnHeaderSelector = exports.gridTabIndexColumnHeaderFilterSelector = exports.gridTabIndexCellSelector = exports.gridFocusStateSelector = exports.gridFocusColumnHeaderSelector = exports.gridFocusColumnHeaderFilterSelector = exports.gridFocusCellSelector = void 0;
|
|
7
7
|
var _createSelector = require("../../../utils/createSelector");
|
|
8
8
|
const gridFocusStateSelector = state => state.focus;
|
|
9
9
|
exports.gridFocusStateSelector = gridFocusStateSelector;
|
|
10
10
|
const gridFocusCellSelector = exports.gridFocusCellSelector = (0, _createSelector.createSelector)(gridFocusStateSelector, focusState => focusState.cell);
|
|
11
11
|
const gridFocusColumnHeaderSelector = exports.gridFocusColumnHeaderSelector = (0, _createSelector.createSelector)(gridFocusStateSelector, focusState => focusState.columnHeader);
|
|
12
|
-
|
|
13
|
-
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
14
|
-
const unstable_gridFocusColumnHeaderFilterSelector = exports.unstable_gridFocusColumnHeaderFilterSelector = (0, _createSelector.createSelector)(gridFocusStateSelector, focusState => focusState.columnHeaderFilter);
|
|
12
|
+
const gridFocusColumnHeaderFilterSelector = exports.gridFocusColumnHeaderFilterSelector = (0, _createSelector.createSelector)(gridFocusStateSelector, focusState => focusState.columnHeaderFilter);
|
|
15
13
|
|
|
16
14
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
17
15
|
const unstable_gridFocusColumnGroupHeaderSelector = exports.unstable_gridFocusColumnGroupHeaderSelector = (0, _createSelector.createSelector)(gridFocusStateSelector, focusState => focusState.columnGroupHeader);
|
|
@@ -19,9 +17,7 @@ const gridTabIndexStateSelector = state => state.tabIndex;
|
|
|
19
17
|
exports.gridTabIndexStateSelector = gridTabIndexStateSelector;
|
|
20
18
|
const gridTabIndexCellSelector = exports.gridTabIndexCellSelector = (0, _createSelector.createSelector)(gridTabIndexStateSelector, state => state.cell);
|
|
21
19
|
const gridTabIndexColumnHeaderSelector = exports.gridTabIndexColumnHeaderSelector = (0, _createSelector.createSelector)(gridTabIndexStateSelector, state => state.columnHeader);
|
|
22
|
-
|
|
23
|
-
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
24
|
-
const unstable_gridTabIndexColumnHeaderFilterSelector = exports.unstable_gridTabIndexColumnHeaderFilterSelector = (0, _createSelector.createSelector)(gridTabIndexStateSelector, state => state.columnHeaderFilter);
|
|
20
|
+
const gridTabIndexColumnHeaderFilterSelector = exports.gridTabIndexColumnHeaderFilterSelector = (0, _createSelector.createSelector)(gridTabIndexStateSelector, state => state.columnHeaderFilter);
|
|
25
21
|
|
|
26
22
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
27
23
|
const unstable_gridTabIndexColumnGroupHeaderSelector = exports.unstable_gridTabIndexColumnGroupHeaderSelector = (0, _createSelector.createSelector)(gridTabIndexStateSelector, state => state.columnGroupHeader);
|
|
@@ -3,11 +3,9 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.gridHeaderFilteringStateSelector = exports.gridHeaderFilteringMenuSelector = exports.gridHeaderFilteringEditFieldSelector = void 0;
|
|
7
7
|
var _createSelector = require("../../../utils/createSelector");
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
const
|
|
11
|
-
exports.
|
|
12
|
-
const unstable_gridHeaderFilteringEditFieldSelector = exports.unstable_gridHeaderFilteringEditFieldSelector = (0, _createSelector.createSelector)(unstable_gridHeaderFilteringStateSelector, headerFilteringState => headerFilteringState.editing);
|
|
13
|
-
const unstable_gridHeaderFilteringMenuSelector = exports.unstable_gridHeaderFilteringMenuSelector = (0, _createSelector.createSelector)(unstable_gridHeaderFilteringStateSelector, headerFilteringState => headerFilteringState.menuOpen);
|
|
8
|
+
const gridHeaderFilteringStateSelector = state => state.headerFiltering;
|
|
9
|
+
exports.gridHeaderFilteringStateSelector = gridHeaderFilteringStateSelector;
|
|
10
|
+
const gridHeaderFilteringEditFieldSelector = exports.gridHeaderFilteringEditFieldSelector = (0, _createSelector.createSelector)(gridHeaderFilteringStateSelector, headerFilteringState => headerFilteringState.editing);
|
|
11
|
+
const gridHeaderFilteringMenuSelector = exports.gridHeaderFilteringMenuSelector = (0, _createSelector.createSelector)(gridHeaderFilteringStateSelector, headerFilteringState => headerFilteringState.menuOpen);
|
|
@@ -21,6 +21,7 @@ var _focus = require("../focus");
|
|
|
21
21
|
var _gridColumnGroupsSelector = require("../columnGrouping/gridColumnGroupsSelector");
|
|
22
22
|
var _gridHeaderFilteringSelectors = require("../headerFiltering/gridHeaderFilteringSelectors");
|
|
23
23
|
var _pipeProcessing = require("../../core/pipeProcessing");
|
|
24
|
+
var _domUtils = require("../../../utils/domUtils");
|
|
24
25
|
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); }
|
|
25
26
|
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; }
|
|
26
27
|
function enrichPageRowsWithPinnedRows(apiRef, rows) {
|
|
@@ -78,7 +79,7 @@ const useGridKeyboardNavigation = (apiRef, props) => {
|
|
|
78
79
|
const currentPageRows = React.useMemo(() => enrichPageRowsWithPinnedRows(apiRef, initialCurrentPageRows), [apiRef, initialCurrentPageRows]);
|
|
79
80
|
const headerFilteringEnabled =
|
|
80
81
|
// @ts-expect-error // TODO move relevant code to the `DataGridPro`
|
|
81
|
-
props.signature !== 'DataGrid' && props.
|
|
82
|
+
props.signature !== 'DataGrid' && props.headerFilters;
|
|
82
83
|
|
|
83
84
|
/**
|
|
84
85
|
* @param {number} colIndex Index of the column to focus
|
|
@@ -244,8 +245,8 @@ const useGridKeyboardNavigation = (apiRef, props) => {
|
|
|
244
245
|
if (!dimensions) {
|
|
245
246
|
return;
|
|
246
247
|
}
|
|
247
|
-
const isEditing = (0, _gridHeaderFilteringSelectors.
|
|
248
|
-
const isHeaderMenuOpen = (0, _gridHeaderFilteringSelectors.
|
|
248
|
+
const isEditing = (0, _gridHeaderFilteringSelectors.gridHeaderFilteringEditFieldSelector)(apiRef) === params.field;
|
|
249
|
+
const isHeaderMenuOpen = (0, _gridHeaderFilteringSelectors.gridHeaderFilteringMenuSelector)(apiRef) === params.field;
|
|
249
250
|
if (isEditing || isHeaderMenuOpen || !(0, _keyboardUtils.isNavigationKey)(event.key)) {
|
|
250
251
|
return;
|
|
251
252
|
}
|
|
@@ -421,7 +422,7 @@ const useGridKeyboardNavigation = (apiRef, props) => {
|
|
|
421
422
|
}, [apiRef, currentPageRows.length, goToHeader, goToGroupHeader, goToCell, getRowIdFromIndex]);
|
|
422
423
|
const handleCellKeyDown = React.useCallback((params, event) => {
|
|
423
424
|
// Ignore portal
|
|
424
|
-
if (
|
|
425
|
+
if ((0, _domUtils.isEventTargetInPortal)(event)) {
|
|
425
426
|
return;
|
|
426
427
|
}
|
|
427
428
|
|
|
@@ -513,7 +514,9 @@ const useGridKeyboardNavigation = (apiRef, props) => {
|
|
|
513
514
|
break;
|
|
514
515
|
}
|
|
515
516
|
const colDef = params.colDef;
|
|
516
|
-
if (colDef &&
|
|
517
|
+
if (colDef &&
|
|
518
|
+
// `GRID_TREE_DATA_GROUPING_FIELD` from the Pro package
|
|
519
|
+
colDef.field === '__tree_data_group__') {
|
|
517
520
|
break;
|
|
518
521
|
}
|
|
519
522
|
if (!event.shiftKey && rowIndexBefore < lastRowIndexInPage) {
|
|
@@ -21,6 +21,7 @@ var _keyboardUtils = require("../../../utils/keyboardUtils");
|
|
|
21
21
|
var _useGridVisibleRows = require("../../utils/useGridVisibleRows");
|
|
22
22
|
var _gridDetailPanelToggleField = require("../../../constants/gridDetailPanelToggleField");
|
|
23
23
|
var _gridClasses = require("../../../constants/gridClasses");
|
|
24
|
+
var _domUtils = require("../../../utils/domUtils");
|
|
24
25
|
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); }
|
|
25
26
|
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; }
|
|
26
27
|
const getSelectionModelPropValue = (selectionModelProp, prevSelectionModel) => {
|
|
@@ -293,7 +294,7 @@ const useGridRowSelection = (apiRef, props) => {
|
|
|
293
294
|
|
|
294
295
|
// Ignore portal
|
|
295
296
|
// Do not apply shortcuts if the focus is not on the cell root component
|
|
296
|
-
if (
|
|
297
|
+
if ((0, _domUtils.isEventTargetInPortal)(event)) {
|
|
297
298
|
return;
|
|
298
299
|
}
|
|
299
300
|
if ((0, _keyboardUtils.isNavigationKey)(event.key) && event.shiftKey) {
|
|
@@ -122,7 +122,8 @@ const useGridSorting = (apiRef, props) => {
|
|
|
122
122
|
apiRef.current.applySorting();
|
|
123
123
|
}
|
|
124
124
|
}, [apiRef, logger, props.disableMultipleColumnsSorting]);
|
|
125
|
-
const sortColumn = React.useCallback((
|
|
125
|
+
const sortColumn = React.useCallback((field, direction, allowMultipleSorting) => {
|
|
126
|
+
const column = apiRef.current.getColumn(field);
|
|
126
127
|
if (!column.sortable) {
|
|
127
128
|
return;
|
|
128
129
|
}
|
|
@@ -203,17 +204,17 @@ const useGridSorting = (apiRef, props) => {
|
|
|
203
204
|
* EVENTS
|
|
204
205
|
*/
|
|
205
206
|
const handleColumnHeaderClick = React.useCallback(({
|
|
206
|
-
|
|
207
|
+
field
|
|
207
208
|
}, event) => {
|
|
208
209
|
const allowMultipleSorting = event.shiftKey || event.metaKey || event.ctrlKey;
|
|
209
|
-
sortColumn(
|
|
210
|
+
sortColumn(field, undefined, allowMultipleSorting);
|
|
210
211
|
}, [sortColumn]);
|
|
211
212
|
const handleColumnHeaderKeyDown = React.useCallback(({
|
|
212
|
-
|
|
213
|
+
field
|
|
213
214
|
}, event) => {
|
|
214
215
|
// Ctrl + Enter opens the column menu
|
|
215
216
|
if ((0, _keyboardUtils.isEnterKey)(event.key) && !event.ctrlKey && !event.metaKey) {
|
|
216
|
-
sortColumn(
|
|
217
|
+
sortColumn(field, undefined, event.shiftKey);
|
|
217
218
|
}
|
|
218
219
|
}, [sortColumn]);
|
|
219
220
|
const handleColumnsChange = React.useCallback(() => {
|
|
@@ -561,7 +561,6 @@ const useGridVirtualScroller = props => {
|
|
|
561
561
|
if (rootProps.autoHeight && currentPage.rows.length === 0) {
|
|
562
562
|
size.height = (0, _gridRowsUtils.getMinimalContentHeight)(apiRef, rootProps.rowHeight); // Give room to show the overlay when there no rows.
|
|
563
563
|
}
|
|
564
|
-
|
|
565
564
|
return size;
|
|
566
565
|
}, [apiRef, rootRef, columnsTotalWidth, rowsMeta.currentPageTotalHeight, needsHorizontalScrollbar, rootProps.autoHeight, rootProps.rowHeight, currentPage.rows.length]);
|
|
567
566
|
React.useEffect(() => {
|
package/node/index.js
CHANGED
package/node/internals/index.js
CHANGED
|
@@ -18,8 +18,8 @@ var _exportNames = {
|
|
|
18
18
|
unwrapPrivateAPI: true,
|
|
19
19
|
useGridClipboard: true,
|
|
20
20
|
useGridColumnHeaders: true,
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
gridHeaderFilteringEditFieldSelector: true,
|
|
22
|
+
gridHeaderFilteringMenuSelector: true,
|
|
23
23
|
useGridColumnMenu: true,
|
|
24
24
|
columnMenuStateInitializer: true,
|
|
25
25
|
useGridColumns: true,
|
|
@@ -84,6 +84,7 @@ var _exportNames = {
|
|
|
84
84
|
unstable_resetCreateSelectorCache: true,
|
|
85
85
|
findParentElementFromClassName: true,
|
|
86
86
|
getActiveElement: true,
|
|
87
|
+
isEventTargetInPortal: true,
|
|
87
88
|
isNavigationKey: true,
|
|
88
89
|
clamp: true,
|
|
89
90
|
isDeepEqual: true,
|
|
@@ -305,6 +306,18 @@ Object.defineProperty(exports, "gridEditRowsStateSelector", {
|
|
|
305
306
|
return _gridEditingSelectors.gridEditRowsStateSelector;
|
|
306
307
|
}
|
|
307
308
|
});
|
|
309
|
+
Object.defineProperty(exports, "gridHeaderFilteringEditFieldSelector", {
|
|
310
|
+
enumerable: true,
|
|
311
|
+
get: function () {
|
|
312
|
+
return _gridHeaderFilteringSelectors.gridHeaderFilteringEditFieldSelector;
|
|
313
|
+
}
|
|
314
|
+
});
|
|
315
|
+
Object.defineProperty(exports, "gridHeaderFilteringMenuSelector", {
|
|
316
|
+
enumerable: true,
|
|
317
|
+
get: function () {
|
|
318
|
+
return _gridHeaderFilteringSelectors.gridHeaderFilteringMenuSelector;
|
|
319
|
+
}
|
|
320
|
+
});
|
|
308
321
|
Object.defineProperty(exports, "gridPinnedRowsSelector", {
|
|
309
322
|
enumerable: true,
|
|
310
323
|
get: function () {
|
|
@@ -323,6 +336,12 @@ Object.defineProperty(exports, "isDeepEqual", {
|
|
|
323
336
|
return _utils2.isDeepEqual;
|
|
324
337
|
}
|
|
325
338
|
});
|
|
339
|
+
Object.defineProperty(exports, "isEventTargetInPortal", {
|
|
340
|
+
enumerable: true,
|
|
341
|
+
get: function () {
|
|
342
|
+
return _domUtils.isEventTargetInPortal;
|
|
343
|
+
}
|
|
344
|
+
});
|
|
326
345
|
Object.defineProperty(exports, "isFunction", {
|
|
327
346
|
enumerable: true,
|
|
328
347
|
get: function () {
|
|
@@ -401,18 +420,6 @@ Object.defineProperty(exports, "sortingStateInitializer", {
|
|
|
401
420
|
return _useGridSorting.sortingStateInitializer;
|
|
402
421
|
}
|
|
403
422
|
});
|
|
404
|
-
Object.defineProperty(exports, "unstable_gridHeaderFilteringEditFieldSelector", {
|
|
405
|
-
enumerable: true,
|
|
406
|
-
get: function () {
|
|
407
|
-
return _gridHeaderFilteringSelectors.unstable_gridHeaderFilteringEditFieldSelector;
|
|
408
|
-
}
|
|
409
|
-
});
|
|
410
|
-
Object.defineProperty(exports, "unstable_gridHeaderFilteringMenuSelector", {
|
|
411
|
-
enumerable: true,
|
|
412
|
-
get: function () {
|
|
413
|
-
return _gridHeaderFilteringSelectors.unstable_gridHeaderFilteringMenuSelector;
|
|
414
|
-
}
|
|
415
|
-
});
|
|
416
423
|
Object.defineProperty(exports, "unstable_resetCreateSelectorCache", {
|
|
417
424
|
enumerable: true,
|
|
418
425
|
get: function () {
|