@mui/x-data-grid 6.4.0 → 6.5.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 +56 -0
- package/DataGrid/useDataGridProps.js +5 -12
- package/colDef/gridNumericOperators.js +0 -6
- package/components/cell/GridEditInputCell.js +4 -1
- package/components/panel/filterPanel/GridFilterInputBoolean.d.ts +15 -2
- package/components/panel/filterPanel/GridFilterInputBoolean.js +80 -36
- package/components/panel/filterPanel/GridFilterInputDate.d.ts +8 -1
- package/components/panel/filterPanel/GridFilterInputDate.js +27 -6
- package/components/panel/filterPanel/GridFilterInputSingleSelect.d.ts +8 -1
- package/components/panel/filterPanel/GridFilterInputSingleSelect.js +55 -32
- package/components/panel/filterPanel/GridFilterInputValue.d.ts +11 -4
- package/components/panel/filterPanel/GridFilterInputValue.js +29 -6
- package/components/panel/filterPanel/GridFilterPanel.d.ts +2 -1
- package/components/panel/filterPanel/GridFilterPanel.js +1 -1
- package/components/panel/filterPanel/index.d.ts +3 -1
- package/components/panel/filterPanel/index.js +2 -1
- package/constants/localeTextConstants.js +26 -0
- package/hooks/features/columnHeaders/useGridColumnHeaders.d.ts +9 -2
- package/hooks/features/columnHeaders/useGridColumnHeaders.js +4 -2
- package/hooks/features/dimensions/useGridDimensions.js +2 -2
- package/hooks/features/editing/useGridEditing.js +0 -3
- package/hooks/features/focus/gridFocusState.d.ts +2 -0
- package/hooks/features/focus/gridFocusStateSelector.d.ts +2 -0
- package/hooks/features/focus/gridFocusStateSelector.js +6 -0
- package/hooks/features/focus/useGridFocus.js +55 -9
- package/hooks/features/headerFiltering/gridHeaderFilteringSelectors.d.ts +4 -0
- package/hooks/features/headerFiltering/gridHeaderFilteringSelectors.js +5 -0
- package/hooks/features/headerFiltering/index.d.ts +1 -0
- package/hooks/features/headerFiltering/index.js +1 -0
- package/hooks/features/headerFiltering/useGridHeaderFiltering.d.ts +6 -0
- package/hooks/features/headerFiltering/useGridHeaderFiltering.js +91 -0
- package/hooks/features/index.d.ts +1 -0
- package/hooks/features/index.js +2 -1
- package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.d.ts +1 -1
- package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +113 -4
- package/hooks/features/rows/useGridRows.js +16 -1
- package/index.js +1 -1
- package/internals/index.d.ts +6 -1
- package/internals/index.js +4 -0
- package/internals/utils/index.d.ts +1 -0
- package/internals/utils/index.js +2 -1
- package/internals/utils/useProps.d.ts +8 -0
- package/internals/utils/useProps.js +13 -0
- package/legacy/DataGrid/useDataGridProps.js +8 -8
- package/legacy/colDef/gridNumericOperators.js +0 -6
- package/legacy/components/cell/GridEditInputCell.js +4 -1
- package/legacy/components/panel/filterPanel/GridFilterInputBoolean.js +79 -35
- package/legacy/components/panel/filterPanel/GridFilterInputDate.js +26 -5
- package/legacy/components/panel/filterPanel/GridFilterInputSingleSelect.js +54 -31
- package/legacy/components/panel/filterPanel/GridFilterInputValue.js +28 -5
- package/legacy/components/panel/filterPanel/GridFilterPanel.js +1 -1
- package/legacy/components/panel/filterPanel/index.js +2 -1
- package/legacy/constants/localeTextConstants.js +26 -0
- package/legacy/hooks/features/columnHeaders/useGridColumnHeaders.js +5 -5
- package/legacy/hooks/features/dimensions/useGridDimensions.js +2 -2
- package/legacy/hooks/features/editing/useGridEditing.js +0 -3
- package/legacy/hooks/features/focus/gridFocusStateSelector.js +10 -0
- package/legacy/hooks/features/focus/useGridFocus.js +58 -9
- package/legacy/hooks/features/headerFiltering/gridHeaderFilteringSelectors.js +11 -0
- package/legacy/hooks/features/headerFiltering/index.js +1 -0
- package/legacy/hooks/features/headerFiltering/useGridHeaderFiltering.js +93 -0
- package/legacy/hooks/features/index.js +2 -1
- package/legacy/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +113 -4
- package/legacy/hooks/features/rows/useGridRows.js +16 -1
- package/legacy/index.js +1 -1
- package/legacy/internals/index.js +4 -0
- package/legacy/internals/utils/index.js +2 -1
- package/legacy/internals/utils/useProps.js +11 -0
- package/legacy/locales/arSD.js +28 -0
- package/legacy/locales/beBY.js +28 -0
- package/legacy/locales/bgBG.js +28 -0
- package/legacy/locales/csCZ.js +36 -8
- package/legacy/locales/daDK.js +28 -0
- package/legacy/locales/deDE.js +28 -0
- package/legacy/locales/elGR.js +27 -0
- package/legacy/locales/esES.js +28 -0
- package/legacy/locales/faIR.js +28 -0
- package/legacy/locales/fiFI.js +28 -0
- package/legacy/locales/frFR.js +28 -0
- package/legacy/locales/heIL.js +30 -2
- package/legacy/locales/huHU.js +28 -0
- package/legacy/locales/itIT.js +28 -0
- package/legacy/locales/jaJP.js +28 -0
- package/legacy/locales/koKR.js +28 -0
- package/legacy/locales/nbNO.js +28 -0
- package/legacy/locales/nlNL.js +28 -0
- package/legacy/locales/plPL.js +28 -0
- package/legacy/locales/ptBR.js +28 -0
- package/legacy/locales/roRO.js +28 -0
- package/legacy/locales/ruRU.js +28 -0
- package/legacy/locales/skSK.js +28 -0
- package/legacy/locales/svSE.js +28 -0
- package/legacy/locales/trTR.js +28 -0
- package/legacy/locales/ukUA.js +28 -0
- package/legacy/locales/urPK.js +28 -0
- package/legacy/locales/viVN.js +27 -0
- package/legacy/locales/zhCN.js +28 -0
- package/legacy/locales/zhTW.js +28 -0
- package/legacy/material/index.js +2 -0
- package/legacy/models/api/gridHeaderFilteringApi.js +1 -0
- package/legacy/models/gridHeaderFilteringModel.js +1 -0
- package/legacy/models/index.js +0 -1
- package/locales/arSD.js +28 -0
- package/locales/beBY.js +28 -0
- package/locales/bgBG.js +28 -0
- package/locales/csCZ.js +36 -8
- package/locales/daDK.js +28 -0
- package/locales/deDE.js +28 -0
- package/locales/elGR.js +27 -0
- package/locales/esES.js +28 -0
- package/locales/faIR.js +28 -0
- package/locales/fiFI.js +28 -0
- package/locales/frFR.js +28 -0
- package/locales/heIL.js +30 -2
- package/locales/huHU.js +28 -0
- package/locales/itIT.js +28 -0
- package/locales/jaJP.js +28 -0
- package/locales/koKR.js +28 -0
- package/locales/nbNO.js +28 -0
- package/locales/nlNL.js +28 -0
- package/locales/plPL.js +28 -0
- package/locales/ptBR.js +28 -0
- package/locales/roRO.js +28 -0
- package/locales/ruRU.js +28 -0
- package/locales/skSK.js +28 -0
- package/locales/svSE.js +28 -0
- package/locales/trTR.js +28 -0
- package/locales/ukUA.js +28 -0
- package/locales/urPK.js +28 -0
- package/locales/viVN.js +27 -0
- package/locales/zhCN.js +28 -0
- package/locales/zhTW.js +28 -0
- package/material/index.d.ts +3 -66
- package/material/index.js +2 -0
- package/models/api/gridApiCommon.d.ts +3 -2
- package/models/api/gridCoreApi.d.ts +4 -0
- package/models/api/gridFocusApi.d.ts +6 -0
- package/models/api/gridHeaderFilteringApi.d.ts +30 -0
- package/models/api/gridHeaderFilteringApi.js +1 -0
- package/models/api/gridLocaleTextApi.d.ts +25 -0
- package/models/events/gridEventLookup.d.ts +27 -1
- package/models/gridFilterOperator.d.ts +4 -0
- package/models/gridHeaderFilteringModel.d.ts +5 -0
- package/models/gridHeaderFilteringModel.js +1 -0
- package/models/gridSlotsComponent.d.ts +16 -4
- package/models/gridStateCommunity.d.ts +2 -0
- package/models/index.d.ts +1 -1
- package/models/index.js +0 -1
- package/modern/DataGrid/useDataGridProps.js +5 -12
- package/modern/colDef/gridNumericOperators.js +0 -6
- package/modern/components/cell/GridEditInputCell.js +4 -1
- package/modern/components/panel/filterPanel/GridFilterInputBoolean.js +80 -36
- package/modern/components/panel/filterPanel/GridFilterInputDate.js +27 -6
- package/modern/components/panel/filterPanel/GridFilterInputSingleSelect.js +55 -32
- package/modern/components/panel/filterPanel/GridFilterInputValue.js +29 -6
- package/modern/components/panel/filterPanel/GridFilterPanel.js +1 -1
- package/modern/components/panel/filterPanel/index.js +2 -1
- package/modern/constants/localeTextConstants.js +26 -0
- package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +4 -2
- package/modern/hooks/features/dimensions/useGridDimensions.js +2 -2
- package/modern/hooks/features/editing/useGridEditing.js +0 -3
- package/modern/hooks/features/focus/gridFocusStateSelector.js +6 -0
- package/modern/hooks/features/focus/useGridFocus.js +55 -9
- package/modern/hooks/features/headerFiltering/gridHeaderFilteringSelectors.js +5 -0
- package/modern/hooks/features/headerFiltering/index.js +1 -0
- package/modern/hooks/features/headerFiltering/useGridHeaderFiltering.js +90 -0
- package/modern/hooks/features/index.js +2 -1
- package/modern/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +113 -4
- package/modern/hooks/features/rows/useGridRows.js +16 -1
- package/modern/index.js +1 -1
- package/modern/internals/index.js +4 -0
- package/modern/internals/utils/index.js +2 -1
- package/modern/internals/utils/useProps.js +13 -0
- package/modern/locales/arSD.js +28 -0
- package/modern/locales/beBY.js +28 -0
- package/modern/locales/bgBG.js +28 -0
- package/modern/locales/csCZ.js +36 -8
- package/modern/locales/daDK.js +28 -0
- package/modern/locales/deDE.js +28 -0
- package/modern/locales/elGR.js +27 -0
- package/modern/locales/esES.js +28 -0
- package/modern/locales/faIR.js +28 -0
- package/modern/locales/fiFI.js +28 -0
- package/modern/locales/frFR.js +28 -0
- package/modern/locales/heIL.js +30 -2
- package/modern/locales/huHU.js +28 -0
- package/modern/locales/itIT.js +28 -0
- package/modern/locales/jaJP.js +28 -0
- package/modern/locales/koKR.js +28 -0
- package/modern/locales/nbNO.js +28 -0
- package/modern/locales/nlNL.js +28 -0
- package/modern/locales/plPL.js +28 -0
- package/modern/locales/ptBR.js +28 -0
- package/modern/locales/roRO.js +28 -0
- package/modern/locales/ruRU.js +28 -0
- package/modern/locales/skSK.js +28 -0
- package/modern/locales/svSE.js +28 -0
- package/modern/locales/trTR.js +28 -0
- package/modern/locales/ukUA.js +28 -0
- package/modern/locales/urPK.js +28 -0
- package/modern/locales/viVN.js +27 -0
- package/modern/locales/zhCN.js +28 -0
- package/modern/locales/zhTW.js +28 -0
- package/modern/material/index.js +2 -0
- package/modern/models/api/gridHeaderFilteringApi.js +1 -0
- package/modern/models/gridHeaderFilteringModel.js +1 -0
- package/modern/models/index.js +0 -1
- package/node/DataGrid/useDataGridProps.js +4 -11
- package/node/colDef/gridNumericOperators.js +0 -6
- package/node/components/cell/GridEditInputCell.js +4 -1
- package/node/components/panel/filterPanel/GridFilterInputBoolean.js +78 -35
- package/node/components/panel/filterPanel/GridFilterInputDate.js +27 -6
- package/node/components/panel/filterPanel/GridFilterInputSingleSelect.js +55 -32
- package/node/components/panel/filterPanel/GridFilterInputValue.js +29 -6
- package/node/components/panel/filterPanel/GridFilterPanel.js +2 -1
- package/node/components/panel/filterPanel/index.js +26 -8
- package/node/constants/localeTextConstants.js +26 -0
- package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +4 -2
- package/node/hooks/features/dimensions/useGridDimensions.js +2 -2
- package/node/hooks/features/editing/useGridEditing.js +0 -3
- package/node/hooks/features/focus/gridFocusStateSelector.js +9 -1
- package/node/hooks/features/focus/useGridFocus.js +55 -9
- package/node/hooks/features/headerFiltering/gridHeaderFilteringSelectors.js +15 -0
- package/node/hooks/features/headerFiltering/index.js +16 -0
- package/node/hooks/features/headerFiltering/useGridHeaderFiltering.js +101 -0
- package/node/hooks/features/index.js +11 -0
- package/node/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +113 -4
- package/node/hooks/features/rows/useGridRows.js +16 -1
- package/node/index.js +1 -1
- package/node/internals/index.js +46 -0
- package/node/internals/utils/index.js +11 -0
- package/node/internals/utils/useProps.js +22 -0
- package/node/locales/arSD.js +28 -0
- package/node/locales/beBY.js +28 -0
- package/node/locales/bgBG.js +28 -0
- package/node/locales/csCZ.js +36 -8
- package/node/locales/daDK.js +28 -0
- package/node/locales/deDE.js +28 -0
- package/node/locales/elGR.js +27 -0
- package/node/locales/esES.js +28 -0
- package/node/locales/faIR.js +28 -0
- package/node/locales/fiFI.js +28 -0
- package/node/locales/frFR.js +28 -0
- package/node/locales/heIL.js +30 -2
- package/node/locales/huHU.js +28 -0
- package/node/locales/itIT.js +28 -0
- package/node/locales/jaJP.js +28 -0
- package/node/locales/koKR.js +28 -0
- package/node/locales/nbNO.js +28 -0
- package/node/locales/nlNL.js +28 -0
- package/node/locales/plPL.js +28 -0
- package/node/locales/ptBR.js +28 -0
- package/node/locales/roRO.js +28 -0
- package/node/locales/ruRU.js +28 -0
- package/node/locales/skSK.js +28 -0
- package/node/locales/svSE.js +28 -0
- package/node/locales/trTR.js +28 -0
- package/node/locales/ukUA.js +28 -0
- package/node/locales/urPK.js +28 -0
- package/node/locales/viVN.js +27 -0
- package/node/locales/zhCN.js +28 -0
- package/node/locales/zhTW.js +28 -0
- package/node/material/index.js +2 -0
- package/node/models/api/gridHeaderFilteringApi.js +5 -0
- package/node/models/gridHeaderFilteringModel.js +5 -0
- package/node/models/index.js +0 -11
- package/package.json +1 -1
|
@@ -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.GridFilterPanel = void 0;
|
|
7
|
+
exports.getGridFilter = exports.GridFilterPanel = void 0;
|
|
8
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
9
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
10
10
|
var React = _interopRequireWildcard(require("react"));
|
|
@@ -28,6 +28,7 @@ const getGridFilter = col => ({
|
|
|
28
28
|
operator: col.filterOperators[0].value,
|
|
29
29
|
id: Math.round(Math.random() * 1e5)
|
|
30
30
|
});
|
|
31
|
+
exports.getGridFilter = getGridFilter;
|
|
31
32
|
const GridFilterPanel = /*#__PURE__*/React.forwardRef(function GridFilterPanel(props, ref) {
|
|
32
33
|
const apiRef = (0, _useGridApiContext.useGridApiContext)();
|
|
33
34
|
const rootProps = (0, _useGridRootProps.useGridRootProps)();
|
|
@@ -3,9 +3,19 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
var _exportNames = {
|
|
7
|
+
GridFilterPanel: true
|
|
8
|
+
};
|
|
9
|
+
Object.defineProperty(exports, "GridFilterPanel", {
|
|
10
|
+
enumerable: true,
|
|
11
|
+
get: function () {
|
|
12
|
+
return _GridFilterPanel.GridFilterPanel;
|
|
13
|
+
}
|
|
14
|
+
});
|
|
6
15
|
var _GridFilterForm = require("./GridFilterForm");
|
|
7
16
|
Object.keys(_GridFilterForm).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] === _GridFilterForm[key]) return;
|
|
10
20
|
Object.defineProperty(exports, key, {
|
|
11
21
|
enumerable: true,
|
|
@@ -17,6 +27,7 @@ Object.keys(_GridFilterForm).forEach(function (key) {
|
|
|
17
27
|
var _GridFilterInputValue = require("./GridFilterInputValue");
|
|
18
28
|
Object.keys(_GridFilterInputValue).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] === _GridFilterInputValue[key]) return;
|
|
21
32
|
Object.defineProperty(exports, key, {
|
|
22
33
|
enumerable: true,
|
|
@@ -28,6 +39,7 @@ Object.keys(_GridFilterInputValue).forEach(function (key) {
|
|
|
28
39
|
var _GridFilterInputDate = require("./GridFilterInputDate");
|
|
29
40
|
Object.keys(_GridFilterInputDate).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] === _GridFilterInputDate[key]) return;
|
|
32
44
|
Object.defineProperty(exports, key, {
|
|
33
45
|
enumerable: true,
|
|
@@ -39,6 +51,7 @@ Object.keys(_GridFilterInputDate).forEach(function (key) {
|
|
|
39
51
|
var _GridFilterInputSingleSelect = require("./GridFilterInputSingleSelect");
|
|
40
52
|
Object.keys(_GridFilterInputSingleSelect).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] === _GridFilterInputSingleSelect[key]) return;
|
|
43
56
|
Object.defineProperty(exports, key, {
|
|
44
57
|
enumerable: true,
|
|
@@ -47,31 +60,35 @@ Object.keys(_GridFilterInputSingleSelect).forEach(function (key) {
|
|
|
47
60
|
}
|
|
48
61
|
});
|
|
49
62
|
});
|
|
50
|
-
var
|
|
51
|
-
Object.keys(
|
|
63
|
+
var _GridFilterInputBoolean = require("./GridFilterInputBoolean");
|
|
64
|
+
Object.keys(_GridFilterInputBoolean).forEach(function (key) {
|
|
52
65
|
if (key === "default" || key === "__esModule") return;
|
|
53
|
-
if (
|
|
66
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
67
|
+
if (key in exports && exports[key] === _GridFilterInputBoolean[key]) return;
|
|
54
68
|
Object.defineProperty(exports, key, {
|
|
55
69
|
enumerable: true,
|
|
56
70
|
get: function () {
|
|
57
|
-
return
|
|
71
|
+
return _GridFilterInputBoolean[key];
|
|
58
72
|
}
|
|
59
73
|
});
|
|
60
74
|
});
|
|
61
|
-
var
|
|
62
|
-
Object.keys(
|
|
75
|
+
var _GridFilterInputValueProps = require("./GridFilterInputValueProps");
|
|
76
|
+
Object.keys(_GridFilterInputValueProps).forEach(function (key) {
|
|
63
77
|
if (key === "default" || key === "__esModule") return;
|
|
64
|
-
if (
|
|
78
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
79
|
+
if (key in exports && exports[key] === _GridFilterInputValueProps[key]) return;
|
|
65
80
|
Object.defineProperty(exports, key, {
|
|
66
81
|
enumerable: true,
|
|
67
82
|
get: function () {
|
|
68
|
-
return
|
|
83
|
+
return _GridFilterInputValueProps[key];
|
|
69
84
|
}
|
|
70
85
|
});
|
|
71
86
|
});
|
|
87
|
+
var _GridFilterPanel = require("./GridFilterPanel");
|
|
72
88
|
var _GridFilterInputMultipleValue = require("./GridFilterInputMultipleValue");
|
|
73
89
|
Object.keys(_GridFilterInputMultipleValue).forEach(function (key) {
|
|
74
90
|
if (key === "default" || key === "__esModule") return;
|
|
91
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
75
92
|
if (key in exports && exports[key] === _GridFilterInputMultipleValue[key]) return;
|
|
76
93
|
Object.defineProperty(exports, key, {
|
|
77
94
|
enumerable: true,
|
|
@@ -83,6 +100,7 @@ Object.keys(_GridFilterInputMultipleValue).forEach(function (key) {
|
|
|
83
100
|
var _GridFilterInputMultipleSingleSelect = require("./GridFilterInputMultipleSingleSelect");
|
|
84
101
|
Object.keys(_GridFilterInputMultipleSingleSelect).forEach(function (key) {
|
|
85
102
|
if (key === "default" || key === "__esModule") return;
|
|
103
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
86
104
|
if (key in exports && exports[key] === _GridFilterInputMultipleSingleSelect[key]) return;
|
|
87
105
|
Object.defineProperty(exports, key, {
|
|
88
106
|
enumerable: true,
|
|
@@ -64,6 +64,32 @@ const GRID_DEFAULT_LOCALE_TEXT = {
|
|
|
64
64
|
filterOperatorIsEmpty: 'is empty',
|
|
65
65
|
filterOperatorIsNotEmpty: 'is not empty',
|
|
66
66
|
filterOperatorIsAnyOf: 'is any of',
|
|
67
|
+
'filterOperator=': '=',
|
|
68
|
+
'filterOperator!=': '!=',
|
|
69
|
+
'filterOperator>': '>',
|
|
70
|
+
'filterOperator>=': '>=',
|
|
71
|
+
'filterOperator<': '<',
|
|
72
|
+
'filterOperator<=': '<=',
|
|
73
|
+
// Header filter operators text
|
|
74
|
+
headerFilterOperatorContains: 'Contains',
|
|
75
|
+
headerFilterOperatorEquals: 'Equals',
|
|
76
|
+
headerFilterOperatorStartsWith: 'Starts with',
|
|
77
|
+
headerFilterOperatorEndsWith: 'Ends with',
|
|
78
|
+
headerFilterOperatorIs: 'Is',
|
|
79
|
+
headerFilterOperatorNot: 'Is not',
|
|
80
|
+
headerFilterOperatorAfter: 'Is after',
|
|
81
|
+
headerFilterOperatorOnOrAfter: 'Is on or after',
|
|
82
|
+
headerFilterOperatorBefore: 'Is before',
|
|
83
|
+
headerFilterOperatorOnOrBefore: 'Is on or before',
|
|
84
|
+
headerFilterOperatorIsEmpty: 'Is empty',
|
|
85
|
+
headerFilterOperatorIsNotEmpty: 'Is not empty',
|
|
86
|
+
headerFilterOperatorIsAnyOf: 'Is any of',
|
|
87
|
+
'headerFilterOperator=': 'Equals',
|
|
88
|
+
'headerFilterOperator!=': 'Not equals',
|
|
89
|
+
'headerFilterOperator>': 'Is greater than',
|
|
90
|
+
'headerFilterOperator>=': 'Is greater than or equal to',
|
|
91
|
+
'headerFilterOperator<': 'Is less than',
|
|
92
|
+
'headerFilterOperator<=': 'Is less than or equal to',
|
|
67
93
|
// Filter values text
|
|
68
94
|
filterValueAny: 'any',
|
|
69
95
|
filterValueTrue: 'true',
|
|
@@ -269,7 +269,7 @@ const useGridColumnHeaders = props => {
|
|
|
269
269
|
const tabIndex = columnGroupHeaderTabIndexState !== null && columnGroupHeaderTabIndexState.depth === depth && columnFields.includes(columnGroupHeaderTabIndexState.field) ? 0 : -1;
|
|
270
270
|
const headerInfo = {
|
|
271
271
|
groupId,
|
|
272
|
-
width: columnFields.
|
|
272
|
+
width: columnFields.reduce((acc, field) => acc + apiRef.current.getColumn(field).computedWidth, 0),
|
|
273
273
|
fields: columnFields,
|
|
274
274
|
colIndex: columnIndex,
|
|
275
275
|
hasFocus,
|
|
@@ -325,6 +325,7 @@ const useGridColumnHeaders = props => {
|
|
|
325
325
|
return {
|
|
326
326
|
renderContext,
|
|
327
327
|
getColumnHeaders,
|
|
328
|
+
getColumnsToRender,
|
|
328
329
|
getColumnGroupHeaders,
|
|
329
330
|
isDragging: !!dragCol,
|
|
330
331
|
getRootProps: (other = {}) => (0, _extends2.default)({
|
|
@@ -333,7 +334,8 @@ const useGridColumnHeaders = props => {
|
|
|
333
334
|
getInnerProps: () => ({
|
|
334
335
|
ref: handleInnerRef,
|
|
335
336
|
role: 'rowgroup'
|
|
336
|
-
})
|
|
337
|
+
}),
|
|
338
|
+
headerHeight
|
|
337
339
|
};
|
|
338
340
|
};
|
|
339
341
|
exports.useGridColumnHeaders = useGridColumnHeaders;
|
|
@@ -161,8 +161,8 @@ function useGridDimensions(apiRef, props) {
|
|
|
161
161
|
if (!mainEl) {
|
|
162
162
|
return;
|
|
163
163
|
}
|
|
164
|
-
const height = mainEl.
|
|
165
|
-
const width = mainEl.
|
|
164
|
+
const height = mainEl.clientHeight || 0;
|
|
165
|
+
const width = mainEl.clientWidth || 0;
|
|
166
166
|
const win = (0, _utils.unstable_ownerWindow)(mainEl);
|
|
167
167
|
const computedStyle = win.getComputedStyle(mainEl);
|
|
168
168
|
const paddingLeft = parseInt(computedStyle.paddingLeft, 10) || 0;
|
|
@@ -39,9 +39,6 @@ const useGridEditing = (apiRef, props) => {
|
|
|
39
39
|
if (isCellEditableProp) {
|
|
40
40
|
return isCellEditableProp(params);
|
|
41
41
|
}
|
|
42
|
-
if (params.rowNode.type === 'pinnedRow') {
|
|
43
|
-
return false;
|
|
44
|
-
}
|
|
45
42
|
return true;
|
|
46
43
|
}, [isCellEditableProp]);
|
|
47
44
|
const maybeDebounce = (id, field, debounceMs, callback) => {
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.unstable_gridTabIndexColumnGroupHeaderSelector = exports.unstable_gridFocusColumnGroupHeaderSelector = exports.gridTabIndexStateSelector = exports.gridTabIndexColumnHeaderSelector = exports.gridTabIndexCellSelector = exports.gridFocusStateSelector = exports.gridFocusColumnHeaderSelector = exports.gridFocusCellSelector = void 0;
|
|
6
|
+
exports.unstable_gridTabIndexColumnHeaderFilterSelector = exports.unstable_gridTabIndexColumnGroupHeaderSelector = exports.unstable_gridFocusColumnHeaderFilterSelector = exports.unstable_gridFocusColumnGroupHeaderSelector = exports.gridTabIndexStateSelector = exports.gridTabIndexColumnHeaderSelector = exports.gridTabIndexCellSelector = exports.gridFocusStateSelector = exports.gridFocusColumnHeaderSelector = exports.gridFocusCellSelector = void 0;
|
|
7
7
|
var _createSelector = require("../../../utils/createSelector");
|
|
8
8
|
const gridFocusStateSelector = state => state.focus;
|
|
9
9
|
exports.gridFocusStateSelector = gridFocusStateSelector;
|
|
@@ -13,6 +13,10 @@ const gridFocusColumnHeaderSelector = (0, _createSelector.createSelector)(gridFo
|
|
|
13
13
|
|
|
14
14
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
15
15
|
exports.gridFocusColumnHeaderSelector = gridFocusColumnHeaderSelector;
|
|
16
|
+
const unstable_gridFocusColumnHeaderFilterSelector = (0, _createSelector.createSelector)(gridFocusStateSelector, focusState => focusState.columnHeaderFilter);
|
|
17
|
+
|
|
18
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
19
|
+
exports.unstable_gridFocusColumnHeaderFilterSelector = unstable_gridFocusColumnHeaderFilterSelector;
|
|
16
20
|
const unstable_gridFocusColumnGroupHeaderSelector = (0, _createSelector.createSelector)(gridFocusStateSelector, focusState => focusState.columnGroupHeader);
|
|
17
21
|
exports.unstable_gridFocusColumnGroupHeaderSelector = unstable_gridFocusColumnGroupHeaderSelector;
|
|
18
22
|
const gridTabIndexStateSelector = state => state.tabIndex;
|
|
@@ -23,5 +27,9 @@ const gridTabIndexColumnHeaderSelector = (0, _createSelector.createSelector)(gri
|
|
|
23
27
|
|
|
24
28
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
25
29
|
exports.gridTabIndexColumnHeaderSelector = gridTabIndexColumnHeaderSelector;
|
|
30
|
+
const unstable_gridTabIndexColumnHeaderFilterSelector = (0, _createSelector.createSelector)(gridTabIndexStateSelector, state => state.columnHeaderFilter);
|
|
31
|
+
|
|
32
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
33
|
+
exports.unstable_gridTabIndexColumnHeaderFilterSelector = unstable_gridTabIndexColumnHeaderFilterSelector;
|
|
26
34
|
const unstable_gridTabIndexColumnGroupHeaderSelector = (0, _createSelector.createSelector)(gridTabIndexStateSelector, state => state.columnGroupHeader);
|
|
27
35
|
exports.unstable_gridTabIndexColumnGroupHeaderSelector = unstable_gridTabIndexColumnGroupHeaderSelector;
|
|
@@ -16,17 +16,20 @@ var _gridFocusStateSelector = require("./gridFocusStateSelector");
|
|
|
16
16
|
var _gridColumnsSelector = require("../columns/gridColumnsSelector");
|
|
17
17
|
var _useGridVisibleRows = require("../../utils/useGridVisibleRows");
|
|
18
18
|
var _utils2 = require("../../../utils/utils");
|
|
19
|
+
var _gridRowsSelector = require("../rows/gridRowsSelector");
|
|
19
20
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
20
21
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
21
22
|
const focusStateInitializer = state => (0, _extends2.default)({}, state, {
|
|
22
23
|
focus: {
|
|
23
24
|
cell: null,
|
|
24
25
|
columnHeader: null,
|
|
26
|
+
columnHeaderFilter: null,
|
|
25
27
|
columnGroupHeader: null
|
|
26
28
|
},
|
|
27
29
|
tabIndex: {
|
|
28
30
|
cell: null,
|
|
29
31
|
columnHeader: null,
|
|
32
|
+
columnHeaderFilter: null,
|
|
30
33
|
columnGroupHeader: null
|
|
31
34
|
}
|
|
32
35
|
});
|
|
@@ -62,6 +65,7 @@ const useGridFocus = (apiRef, props) => {
|
|
|
62
65
|
field
|
|
63
66
|
},
|
|
64
67
|
columnHeader: null,
|
|
68
|
+
columnHeaderFilter: null,
|
|
65
69
|
columnGroupHeader: null
|
|
66
70
|
},
|
|
67
71
|
focus: {
|
|
@@ -70,6 +74,7 @@ const useGridFocus = (apiRef, props) => {
|
|
|
70
74
|
field
|
|
71
75
|
},
|
|
72
76
|
columnHeader: null,
|
|
77
|
+
columnHeaderFilter: null,
|
|
73
78
|
columnGroupHeader: null
|
|
74
79
|
}
|
|
75
80
|
});
|
|
@@ -97,6 +102,7 @@ const useGridFocus = (apiRef, props) => {
|
|
|
97
102
|
columnHeader: {
|
|
98
103
|
field
|
|
99
104
|
},
|
|
105
|
+
columnHeaderFilter: null,
|
|
100
106
|
cell: null,
|
|
101
107
|
columnGroupHeader: null
|
|
102
108
|
},
|
|
@@ -104,6 +110,33 @@ const useGridFocus = (apiRef, props) => {
|
|
|
104
110
|
columnHeader: {
|
|
105
111
|
field
|
|
106
112
|
},
|
|
113
|
+
columnHeaderFilter: null,
|
|
114
|
+
cell: null,
|
|
115
|
+
columnGroupHeader: null
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
});
|
|
119
|
+
apiRef.current.forceUpdate();
|
|
120
|
+
}, [apiRef, logger, publishCellFocusOut]);
|
|
121
|
+
const setColumnHeaderFilterFocus = React.useCallback((field, event = {}) => {
|
|
122
|
+
const cell = (0, _gridFocusStateSelector.gridFocusCellSelector)(apiRef);
|
|
123
|
+
publishCellFocusOut(cell, event);
|
|
124
|
+
apiRef.current.setState(state => {
|
|
125
|
+
logger.debug(`Focusing on column header filter with colIndex=${field}`);
|
|
126
|
+
return (0, _extends2.default)({}, state, {
|
|
127
|
+
tabIndex: {
|
|
128
|
+
columnHeader: null,
|
|
129
|
+
columnHeaderFilter: {
|
|
130
|
+
field
|
|
131
|
+
},
|
|
132
|
+
cell: null,
|
|
133
|
+
columnGroupHeader: null
|
|
134
|
+
},
|
|
135
|
+
focus: {
|
|
136
|
+
columnHeader: null,
|
|
137
|
+
columnHeaderFilter: {
|
|
138
|
+
field
|
|
139
|
+
},
|
|
107
140
|
cell: null,
|
|
108
141
|
columnGroupHeader: null
|
|
109
142
|
}
|
|
@@ -124,6 +157,7 @@ const useGridFocus = (apiRef, props) => {
|
|
|
124
157
|
depth
|
|
125
158
|
},
|
|
126
159
|
columnHeader: null,
|
|
160
|
+
columnHeaderFilter: null,
|
|
127
161
|
cell: null
|
|
128
162
|
},
|
|
129
163
|
focus: {
|
|
@@ -132,6 +166,7 @@ const useGridFocus = (apiRef, props) => {
|
|
|
132
166
|
depth
|
|
133
167
|
},
|
|
134
168
|
columnHeader: null,
|
|
169
|
+
columnHeaderFilter: null,
|
|
135
170
|
cell: null
|
|
136
171
|
}
|
|
137
172
|
});
|
|
@@ -141,8 +176,16 @@ const useGridFocus = (apiRef, props) => {
|
|
|
141
176
|
const getColumnGroupHeaderFocus = React.useCallback(() => (0, _gridFocusStateSelector.unstable_gridFocusColumnGroupHeaderSelector)(apiRef), [apiRef]);
|
|
142
177
|
const moveFocusToRelativeCell = React.useCallback((id, field, direction) => {
|
|
143
178
|
let columnIndexToFocus = apiRef.current.getColumnIndex(field);
|
|
144
|
-
let rowIndexToFocus = apiRef.current.getRowIndexRelativeToVisibleRows(id);
|
|
145
179
|
const visibleColumns = (0, _gridColumnsSelector.gridVisibleColumnDefinitionsSelector)(apiRef);
|
|
180
|
+
const currentPage = (0, _useGridVisibleRows.getVisibleRows)(apiRef, {
|
|
181
|
+
pagination: props.pagination,
|
|
182
|
+
paginationMode: props.paginationMode
|
|
183
|
+
});
|
|
184
|
+
const pinnedRows = (0, _gridRowsSelector.gridPinnedRowsSelector)(apiRef);
|
|
185
|
+
|
|
186
|
+
// Include pinned rows as well
|
|
187
|
+
const currentPageRows = [].concat(pinnedRows.top || [], currentPage.rows, pinnedRows.bottom || []);
|
|
188
|
+
let rowIndexToFocus = currentPageRows.findIndex(row => row.id === id);
|
|
146
189
|
if (direction === 'right') {
|
|
147
190
|
columnIndexToFocus += 1;
|
|
148
191
|
} else if (direction === 'left') {
|
|
@@ -150,14 +193,10 @@ const useGridFocus = (apiRef, props) => {
|
|
|
150
193
|
} else {
|
|
151
194
|
rowIndexToFocus += 1;
|
|
152
195
|
}
|
|
153
|
-
const currentPage = (0, _useGridVisibleRows.getVisibleRows)(apiRef, {
|
|
154
|
-
pagination: props.pagination,
|
|
155
|
-
paginationMode: props.paginationMode
|
|
156
|
-
});
|
|
157
196
|
if (columnIndexToFocus >= visibleColumns.length) {
|
|
158
197
|
// Go to next row if we are after the last column
|
|
159
198
|
rowIndexToFocus += 1;
|
|
160
|
-
if (rowIndexToFocus <
|
|
199
|
+
if (rowIndexToFocus < currentPageRows.length) {
|
|
161
200
|
// Go to first column of the next row if there's one more row
|
|
162
201
|
columnIndexToFocus = 0;
|
|
163
202
|
}
|
|
@@ -169,8 +208,11 @@ const useGridFocus = (apiRef, props) => {
|
|
|
169
208
|
columnIndexToFocus = visibleColumns.length - 1;
|
|
170
209
|
}
|
|
171
210
|
}
|
|
172
|
-
rowIndexToFocus = (0, _utils2.clamp)(rowIndexToFocus, 0,
|
|
173
|
-
const rowToFocus =
|
|
211
|
+
rowIndexToFocus = (0, _utils2.clamp)(rowIndexToFocus, 0, currentPageRows.length - 1);
|
|
212
|
+
const rowToFocus = currentPageRows[rowIndexToFocus];
|
|
213
|
+
if (!rowToFocus) {
|
|
214
|
+
return;
|
|
215
|
+
}
|
|
174
216
|
const colSpanInfo = apiRef.current.unstable_getCellColSpanInfo(rowToFocus.id, columnIndexToFocus);
|
|
175
217
|
if (colSpanInfo && colSpanInfo.spannedByColSpan) {
|
|
176
218
|
if (direction === 'left' || direction === 'below') {
|
|
@@ -224,6 +266,7 @@ const useGridFocus = (apiRef, props) => {
|
|
|
224
266
|
focus: {
|
|
225
267
|
cell: null,
|
|
226
268
|
columnHeader: null,
|
|
269
|
+
columnHeaderFilter: null,
|
|
227
270
|
columnGroupHeader: null
|
|
228
271
|
}
|
|
229
272
|
}));
|
|
@@ -262,6 +305,7 @@ const useGridFocus = (apiRef, props) => {
|
|
|
262
305
|
focus: {
|
|
263
306
|
cell: null,
|
|
264
307
|
columnHeader: null,
|
|
308
|
+
columnHeaderFilter: null,
|
|
265
309
|
columnGroupHeader: null
|
|
266
310
|
}
|
|
267
311
|
}));
|
|
@@ -290,6 +334,7 @@ const useGridFocus = (apiRef, props) => {
|
|
|
290
334
|
focus: {
|
|
291
335
|
cell: null,
|
|
292
336
|
columnHeader: null,
|
|
337
|
+
columnHeaderFilter: null,
|
|
293
338
|
columnGroupHeader: null
|
|
294
339
|
}
|
|
295
340
|
}));
|
|
@@ -297,7 +342,8 @@ const useGridFocus = (apiRef, props) => {
|
|
|
297
342
|
}, [apiRef]);
|
|
298
343
|
const focusApi = {
|
|
299
344
|
setCellFocus,
|
|
300
|
-
setColumnHeaderFocus
|
|
345
|
+
setColumnHeaderFocus,
|
|
346
|
+
setColumnHeaderFilterFocus
|
|
301
347
|
};
|
|
302
348
|
const focusPrivateApi = {
|
|
303
349
|
moveFocusToRelativeCell,
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.unstable_gridHeaderFilteringStateSelector = exports.unstable_gridHeaderFilteringMenuSelector = exports.unstable_gridHeaderFilteringEditFieldSelector = void 0;
|
|
7
|
+
var _createSelector = require("../../../utils/createSelector");
|
|
8
|
+
/* eslint-disable @typescript-eslint/naming-convention */
|
|
9
|
+
|
|
10
|
+
const unstable_gridHeaderFilteringStateSelector = state => state.headerFiltering;
|
|
11
|
+
exports.unstable_gridHeaderFilteringStateSelector = unstable_gridHeaderFilteringStateSelector;
|
|
12
|
+
const unstable_gridHeaderFilteringEditFieldSelector = (0, _createSelector.createSelector)(unstable_gridHeaderFilteringStateSelector, headerFilteringState => headerFilteringState.editing);
|
|
13
|
+
exports.unstable_gridHeaderFilteringEditFieldSelector = unstable_gridHeaderFilteringEditFieldSelector;
|
|
14
|
+
const unstable_gridHeaderFilteringMenuSelector = (0, _createSelector.createSelector)(unstable_gridHeaderFilteringStateSelector, headerFilteringState => headerFilteringState.menuOpen);
|
|
15
|
+
exports.unstable_gridHeaderFilteringMenuSelector = unstable_gridHeaderFilteringMenuSelector;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _gridHeaderFilteringSelectors = require("./gridHeaderFilteringSelectors");
|
|
7
|
+
Object.keys(_gridHeaderFilteringSelectors).forEach(function (key) {
|
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
|
9
|
+
if (key in exports && exports[key] === _gridHeaderFilteringSelectors[key]) return;
|
|
10
|
+
Object.defineProperty(exports, key, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function () {
|
|
13
|
+
return _gridHeaderFilteringSelectors[key];
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
});
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.useGridHeaderFiltering = exports.headerFilteringStateInitializer = void 0;
|
|
8
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
+
var React = _interopRequireWildcard(require("react"));
|
|
10
|
+
var _useGridApiMethod = require("../../utils/useGridApiMethod");
|
|
11
|
+
var _utils = require("../../utils");
|
|
12
|
+
var _gridColumnsSelector = require("../columns/gridColumnsSelector");
|
|
13
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
14
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
15
|
+
const headerFilteringStateInitializer = state => (0, _extends2.default)({}, state, {
|
|
16
|
+
headerFiltering: {
|
|
17
|
+
editing: null,
|
|
18
|
+
menuOpen: null
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
exports.headerFilteringStateInitializer = headerFilteringStateInitializer;
|
|
22
|
+
const useGridHeaderFiltering = (apiRef, props) => {
|
|
23
|
+
const logger = (0, _utils.useGridLogger)(apiRef, 'useGridHeaderFiltering');
|
|
24
|
+
const setHeaderFilterState = React.useCallback(headerFilterState => {
|
|
25
|
+
apiRef.current.setState(state => {
|
|
26
|
+
// Safety check to avoid MIT users from using it
|
|
27
|
+
// This hook should ultimately be moved to the Pro package
|
|
28
|
+
if (props.signature === 'DataGrid') {
|
|
29
|
+
return state;
|
|
30
|
+
}
|
|
31
|
+
return (0, _extends2.default)({}, state, {
|
|
32
|
+
headerFiltering: {
|
|
33
|
+
editing: headerFilterState.editing ?? null,
|
|
34
|
+
menuOpen: headerFilterState.menuOpen ?? null
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
apiRef.current.forceUpdate();
|
|
39
|
+
}, [apiRef, props.signature]);
|
|
40
|
+
const startHeaderFilterEditMode = React.useCallback(field => {
|
|
41
|
+
logger.debug(`Starting edit mode on header filter for field: ${field}`);
|
|
42
|
+
apiRef.current.setHeaderFilterState({
|
|
43
|
+
editing: field
|
|
44
|
+
});
|
|
45
|
+
}, [apiRef, logger]);
|
|
46
|
+
const stopHeaderFilterEditMode = React.useCallback(() => {
|
|
47
|
+
logger.debug(`Stopping edit mode on header filter`);
|
|
48
|
+
apiRef.current.setHeaderFilterState({
|
|
49
|
+
editing: null
|
|
50
|
+
});
|
|
51
|
+
}, [apiRef, logger]);
|
|
52
|
+
const showHeaderFilterMenu = React.useCallback(field => {
|
|
53
|
+
logger.debug(`Opening header filter menu for field: ${field}`);
|
|
54
|
+
apiRef.current.setHeaderFilterState({
|
|
55
|
+
menuOpen: field
|
|
56
|
+
});
|
|
57
|
+
}, [apiRef, logger]);
|
|
58
|
+
const hideHeaderFilterMenu = React.useCallback(() => {
|
|
59
|
+
logger.debug(`Hiding header filter menu for active field`);
|
|
60
|
+
let fieldToFocus = apiRef.current.state.headerFiltering.menuOpen;
|
|
61
|
+
if (fieldToFocus) {
|
|
62
|
+
const columnLookup = (0, _gridColumnsSelector.gridColumnLookupSelector)(apiRef);
|
|
63
|
+
const columnVisibilityModel = (0, _gridColumnsSelector.gridColumnVisibilityModelSelector)(apiRef);
|
|
64
|
+
const orderedFields = (0, _gridColumnsSelector.gridColumnFieldsSelector)(apiRef);
|
|
65
|
+
|
|
66
|
+
// If the column was removed from the grid, we need to find the closest visible field
|
|
67
|
+
if (!columnLookup[fieldToFocus]) {
|
|
68
|
+
fieldToFocus = orderedFields[0];
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
// If the field to focus is hidden, we need to find the closest visible field
|
|
72
|
+
if (columnVisibilityModel[fieldToFocus] === false) {
|
|
73
|
+
// contains visible column fields + the field that was just hidden
|
|
74
|
+
const visibleOrderedFields = orderedFields.filter(field => {
|
|
75
|
+
if (field === fieldToFocus) {
|
|
76
|
+
return true;
|
|
77
|
+
}
|
|
78
|
+
return columnVisibilityModel[field] !== false;
|
|
79
|
+
});
|
|
80
|
+
const fieldIndex = visibleOrderedFields.indexOf(fieldToFocus);
|
|
81
|
+
fieldToFocus = visibleOrderedFields[fieldIndex + 1] || visibleOrderedFields[fieldIndex - 1];
|
|
82
|
+
}
|
|
83
|
+
apiRef.current.setHeaderFilterState({
|
|
84
|
+
menuOpen: null
|
|
85
|
+
});
|
|
86
|
+
apiRef.current.setColumnHeaderFilterFocus(fieldToFocus);
|
|
87
|
+
}
|
|
88
|
+
}, [apiRef, logger]);
|
|
89
|
+
const headerFilterPrivateApi = {
|
|
90
|
+
setHeaderFilterState
|
|
91
|
+
};
|
|
92
|
+
const headerFilterApi = {
|
|
93
|
+
startHeaderFilterEditMode,
|
|
94
|
+
stopHeaderFilterEditMode,
|
|
95
|
+
showHeaderFilterMenu,
|
|
96
|
+
hideHeaderFilterMenu
|
|
97
|
+
};
|
|
98
|
+
(0, _useGridApiMethod.useGridApiMethod)(apiRef, headerFilterApi, 'public');
|
|
99
|
+
(0, _useGridApiMethod.useGridApiMethod)(apiRef, headerFilterPrivateApi, 'private');
|
|
100
|
+
};
|
|
101
|
+
exports.useGridHeaderFiltering = useGridHeaderFiltering;
|
|
@@ -145,4 +145,15 @@ Object.keys(_statePersistence).forEach(function (key) {
|
|
|
145
145
|
return _statePersistence[key];
|
|
146
146
|
}
|
|
147
147
|
});
|
|
148
|
+
});
|
|
149
|
+
var _headerFiltering = require("./headerFiltering");
|
|
150
|
+
Object.keys(_headerFiltering).forEach(function (key) {
|
|
151
|
+
if (key === "default" || key === "__esModule") return;
|
|
152
|
+
if (key in exports && exports[key] === _headerFiltering[key]) return;
|
|
153
|
+
Object.defineProperty(exports, key, {
|
|
154
|
+
enumerable: true,
|
|
155
|
+
get: function () {
|
|
156
|
+
return _headerFiltering[key];
|
|
157
|
+
}
|
|
158
|
+
});
|
|
148
159
|
});
|