@mui/x-data-grid 6.0.0-alpha.2 → 6.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 +493 -141
- package/DataGrid/DataGrid.js +14 -34
- package/DataGrid/useDataGridComponent.js +8 -14
- package/DataGrid/useDataGridProps.js +3 -3
- package/colDef/gridCheckboxSelectionColDef.js +1 -1
- package/colDef/gridNumericOperators.d.ts +1 -1
- package/colDef/gridSingleSelectOperators.d.ts +1 -1
- package/colDef/gridStringOperators.d.ts +1 -1
- package/components/GridFooter.js +1 -1
- package/components/GridRow.js +2 -2
- package/components/base/GridBody.js +2 -2
- package/components/cell/GridEditInputCell.js +3 -8
- package/components/cell/GridEditSingleSelectCell.js +6 -38
- package/components/columnHeaders/GridColumnGroupHeader.d.ts +2 -0
- package/components/columnHeaders/GridColumnGroupHeader.js +32 -5
- package/components/columnSelection/GridHeaderCheckbox.js +3 -3
- package/components/containers/GridRoot.js +4 -3
- package/components/panel/GridColumnsPanel.d.ts +2 -0
- package/components/panel/GridColumnsPanel.js +10 -4
- package/components/panel/filterPanel/GridFilterForm.d.ts +12 -0
- package/components/panel/filterPanel/GridFilterForm.js +29 -7
- package/components/panel/filterPanel/GridFilterPanel.d.ts +12 -0
- package/components/panel/filterPanel/GridFilterPanel.js +64 -19
- package/hooks/core/pipeProcessing/useGridRegisterPipeApplier.d.ts +1 -1
- package/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.d.ts +1 -1
- package/hooks/core/strategyProcessing/useGridRegisterStrategyProcessor.d.ts +1 -1
- package/hooks/core/useGridInitialization.d.ts +1 -1
- package/hooks/core/useGridStateInitialization.d.ts +1 -1
- package/hooks/features/columnGrouping/gridColumnGroupsInterfaces.d.ts +10 -1
- package/hooks/features/columnGrouping/gridColumnGroupsSelector.d.ts +6 -0
- package/hooks/features/columnGrouping/gridColumnGroupsSelector.js +34 -1
- package/hooks/features/columnGrouping/gridColumnGroupsUtils.d.ts +15 -0
- package/hooks/features/columnGrouping/gridColumnGroupsUtils.js +89 -0
- package/hooks/features/columnGrouping/useGridColumnGrouping.d.ts +1 -15
- package/hooks/features/columnGrouping/useGridColumnGrouping.js +66 -66
- package/hooks/features/columnHeaders/useGridColumnHeaders.d.ts +1 -1
- package/hooks/features/columnHeaders/useGridColumnHeaders.js +60 -116
- package/hooks/features/density/densitySelector.d.ts +0 -2
- package/hooks/features/density/densitySelector.js +1 -3
- package/hooks/features/density/densityState.d.ts +0 -1
- package/hooks/features/density/useGridDensity.d.ts +1 -1
- package/hooks/features/density/useGridDensity.js +9 -45
- package/hooks/features/dimensions/useGridDimensions.js +3 -2
- package/hooks/features/{editRows/gridEditRowsSelector.d.ts → editing/gridEditingSelectors.d.ts} +0 -0
- package/hooks/features/{editRows/gridEditRowsSelector.js → editing/gridEditingSelectors.js} +0 -0
- package/hooks/features/editing/index.d.ts +1 -0
- package/hooks/features/editing/index.js +1 -0
- package/hooks/features/{editRows/useGridCellEditing.new.d.ts → editing/useGridCellEditing.d.ts} +0 -0
- package/hooks/features/{editRows/useGridCellEditing.new.js → editing/useGridCellEditing.js} +21 -6
- package/hooks/features/{editRows/useGridEditing.new.d.ts → editing/useGridEditing.d.ts} +0 -0
- package/hooks/features/{editRows/useGridEditing.new.js → editing/useGridEditing.js} +3 -3
- package/hooks/features/{editRows/useGridRowEditing.new.d.ts → editing/useGridRowEditing.d.ts} +0 -0
- package/hooks/features/{editRows/useGridRowEditing.new.js → editing/useGridRowEditing.js} +20 -6
- package/hooks/features/export/useGridPrintExport.js +2 -2
- package/hooks/features/focus/gridFocusState.d.ts +6 -0
- package/hooks/features/focus/gridFocusStateSelector.d.ts +2 -0
- package/hooks/features/focus/gridFocusStateSelector.js +6 -2
- package/hooks/features/focus/useGridFocus.js +69 -11
- package/hooks/features/index.d.ts +2 -2
- package/hooks/features/index.js +2 -2
- package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +135 -1
- package/hooks/features/{selection/gridSelectionSelector.d.ts → rowSelection/gridRowSelectionSelector.d.ts} +1 -1
- package/hooks/features/rowSelection/gridRowSelectionSelector.js +9 -0
- package/hooks/features/rowSelection/index.d.ts +1 -0
- package/hooks/features/rowSelection/index.js +1 -0
- package/hooks/features/rowSelection/useGridRowSelection.d.ts +12 -0
- package/hooks/features/{selection/useGridSelection.js → rowSelection/useGridRowSelection.js} +37 -37
- package/hooks/features/{selection/useGridSelectionPreProcessors.d.ts → rowSelection/useGridRowSelectionPreProcessors.d.ts} +1 -1
- package/hooks/features/{selection/useGridSelectionPreProcessors.js → rowSelection/useGridRowSelectionPreProcessors.js} +1 -1
- package/hooks/features/rows/gridRowsInterfaces.d.ts +4 -0
- package/hooks/features/rows/gridRowsUtils.d.ts +1 -1
- package/hooks/features/rows/gridRowsUtils.js +5 -2
- package/hooks/features/rows/useGridRows.js +23 -7
- package/hooks/features/virtualization/useGridVirtualScroller.d.ts +1 -1
- package/hooks/features/virtualization/useGridVirtualScroller.js +2 -2
- package/hooks/utils/useGridApi.d.ts +1 -1
- package/hooks/utils/useGridApiEventHandler.d.ts +2 -2
- package/hooks/utils/useGridApiRef.d.ts +1 -1
- package/hooks/utils/useGridInitializeState.d.ts +1 -1
- package/hooks/utils/useGridNativeEventListener.d.ts +1 -1
- package/hooks/utils/useGridSelector.d.ts +1 -1
- package/hooks/utils/useGridState.d.ts +1 -1
- package/hooks/utils/useGridVisibleRows.d.ts +2 -2
- package/index.js +1 -1
- package/internals/index.d.ts +3 -5
- package/internals/index.js +3 -5
- package/legacy/DataGrid/DataGrid.js +14 -34
- package/legacy/DataGrid/useDataGridComponent.js +8 -14
- package/legacy/DataGrid/useDataGridProps.js +3 -3
- package/legacy/colDef/gridCheckboxSelectionColDef.js +1 -1
- package/legacy/components/GridFooter.js +1 -1
- package/legacy/components/GridRow.js +2 -2
- package/legacy/components/base/GridBody.js +2 -2
- package/legacy/components/cell/GridEditInputCell.js +3 -8
- package/legacy/components/cell/GridEditSingleSelectCell.js +6 -52
- package/legacy/components/columnHeaders/GridColumnGroupHeader.js +46 -13
- package/legacy/components/columnSelection/GridHeaderCheckbox.js +3 -3
- package/legacy/components/containers/GridRoot.js +4 -3
- package/legacy/components/panel/GridColumnsPanel.js +10 -3
- package/legacy/components/panel/filterPanel/GridFilterForm.js +31 -7
- package/legacy/components/panel/filterPanel/GridFilterPanel.js +67 -18
- package/legacy/hooks/features/columnGrouping/gridColumnGroupsSelector.js +33 -1
- package/legacy/hooks/features/columnGrouping/gridColumnGroupsUtils.js +96 -0
- package/legacy/hooks/features/columnGrouping/useGridColumnGrouping.js +64 -64
- package/legacy/hooks/features/columnHeaders/useGridColumnHeaders.js +70 -122
- package/legacy/hooks/features/density/densitySelector.js +0 -6
- package/legacy/hooks/features/density/useGridDensity.js +6 -44
- package/legacy/hooks/features/dimensions/useGridDimensions.js +3 -2
- package/legacy/hooks/features/{editRows/gridEditRowsSelector.js → editing/gridEditingSelectors.js} +0 -0
- package/legacy/hooks/features/editing/index.js +1 -0
- package/legacy/hooks/features/{editRows/useGridCellEditing.new.js → editing/useGridCellEditing.js} +21 -6
- package/legacy/hooks/features/{editRows/useGridEditing.new.js → editing/useGridEditing.js} +3 -3
- package/legacy/hooks/features/{editRows/useGridRowEditing.new.js → editing/useGridRowEditing.js} +20 -6
- package/legacy/hooks/features/export/useGridPrintExport.js +2 -2
- package/legacy/hooks/features/focus/gridFocusStateSelector.js +8 -0
- package/legacy/hooks/features/focus/useGridFocus.js +72 -11
- package/legacy/hooks/features/index.js +2 -2
- package/legacy/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +129 -1
- package/legacy/hooks/features/rowSelection/gridRowSelectionSelector.js +19 -0
- package/legacy/hooks/features/rowSelection/index.js +1 -0
- package/legacy/hooks/features/{selection/useGridSelection.js → rowSelection/useGridRowSelection.js} +37 -37
- package/legacy/hooks/features/{selection/useGridSelectionPreProcessors.js → rowSelection/useGridRowSelectionPreProcessors.js} +1 -1
- package/legacy/hooks/features/rows/gridRowsUtils.js +5 -2
- package/legacy/hooks/features/rows/useGridRows.js +25 -7
- package/legacy/hooks/features/virtualization/useGridVirtualScroller.js +2 -2
- package/legacy/index.js +1 -1
- package/legacy/internals/index.js +3 -5
- package/legacy/locales/trTR.js +17 -17
- package/legacy/models/api/{gridSelectionApi.js → gridRowSelectionApi.js} +0 -0
- package/legacy/models/api/index.js +1 -1
- package/legacy/models/{gridSelectionModel.js → gridRowSelectionModel.js} +0 -0
- package/legacy/models/index.js +1 -1
- package/{models/api/gridSelectionApi.js → legacy/models/params/gridColumnGroupHeaderParams.js} +0 -0
- package/legacy/models/params/gridEditCellParams.js +0 -4
- package/legacy/models/params/index.js +1 -0
- package/locales/trTR.js +17 -17
- package/models/api/gridApiCommon.d.ts +3 -6
- package/models/api/gridApiCommunity.d.ts +1 -7
- package/models/api/gridEditingApi.d.ts +36 -121
- package/models/api/gridFocusApi.d.ts +13 -0
- package/models/api/{gridSelectionApi.d.ts → gridRowSelectionApi.d.ts} +2 -2
- package/models/{gridSelectionModel.js → api/gridRowSelectionApi.js} +0 -0
- package/models/api/index.d.ts +2 -2
- package/models/api/index.js +1 -1
- package/models/colDef/gridColDef.d.ts +0 -8
- package/models/events/gridEventLookup.d.ts +30 -19
- package/models/gridColumnGrouping.d.ts +1 -26
- package/models/gridRowSelectionModel.d.ts +3 -0
- package/{modern/models/api/gridSelectionApi.js → models/gridRowSelectionModel.js} +0 -0
- package/models/gridStateCommunity.d.ts +2 -2
- package/models/index.d.ts +1 -1
- package/models/index.js +1 -1
- package/models/params/gridColumnGroupHeaderParams.d.ts +30 -0
- package/{modern/models/gridSelectionModel.js → models/params/gridColumnGroupHeaderParams.js} +0 -0
- package/models/params/gridEditCellParams.d.ts +4 -17
- package/models/params/gridEditCellParams.js +0 -4
- package/models/params/gridRowParams.d.ts +4 -4
- package/models/params/index.d.ts +1 -0
- package/models/params/index.js +1 -0
- package/models/props/DataGridProps.d.ts +8 -32
- package/modern/DataGrid/DataGrid.js +14 -34
- package/modern/DataGrid/useDataGridComponent.js +8 -12
- package/modern/DataGrid/useDataGridProps.js +3 -3
- package/modern/colDef/gridCheckboxSelectionColDef.js +1 -1
- package/modern/components/GridFooter.js +1 -1
- package/modern/components/GridRow.js +2 -2
- package/modern/components/base/GridBody.js +2 -2
- package/modern/components/cell/GridEditInputCell.js +3 -4
- package/modern/components/cell/GridEditSingleSelectCell.js +6 -34
- package/modern/components/columnHeaders/GridColumnGroupHeader.js +32 -5
- package/modern/components/columnSelection/GridHeaderCheckbox.js +3 -3
- package/modern/components/containers/GridRoot.js +4 -3
- package/modern/components/panel/GridColumnsPanel.js +10 -4
- package/modern/components/panel/filterPanel/GridFilterForm.js +29 -7
- package/modern/components/panel/filterPanel/GridFilterPanel.js +62 -17
- package/modern/hooks/features/columnGrouping/gridColumnGroupsSelector.js +14 -1
- package/modern/hooks/features/columnGrouping/gridColumnGroupsUtils.js +83 -0
- package/modern/hooks/features/columnGrouping/useGridColumnGrouping.js +50 -62
- package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +58 -98
- package/modern/hooks/features/density/densitySelector.js +1 -3
- package/modern/hooks/features/density/useGridDensity.js +9 -37
- package/modern/hooks/features/dimensions/useGridDimensions.js +3 -2
- package/modern/hooks/features/{editRows/gridEditRowsSelector.js → editing/gridEditingSelectors.js} +0 -0
- package/modern/hooks/features/editing/index.js +1 -0
- package/modern/hooks/features/{editRows/useGridCellEditing.new.js → editing/useGridCellEditing.js} +21 -6
- package/modern/hooks/features/{editRows/useGridEditing.new.js → editing/useGridEditing.js} +3 -3
- package/modern/hooks/features/{editRows/useGridRowEditing.new.js → editing/useGridRowEditing.js} +20 -6
- package/modern/hooks/features/export/useGridPrintExport.js +2 -2
- package/modern/hooks/features/focus/gridFocusStateSelector.js +6 -2
- package/modern/hooks/features/focus/useGridFocus.js +69 -11
- package/modern/hooks/features/index.js +2 -2
- package/modern/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +135 -1
- package/modern/hooks/features/rowSelection/gridRowSelectionSelector.js +9 -0
- package/modern/hooks/features/rowSelection/index.js +1 -0
- package/modern/hooks/features/{selection/useGridSelection.js → rowSelection/useGridRowSelection.js} +37 -37
- package/modern/hooks/features/{selection/useGridSelectionPreProcessors.js → rowSelection/useGridRowSelectionPreProcessors.js} +1 -1
- package/modern/hooks/features/rows/gridRowsUtils.js +5 -2
- package/modern/hooks/features/rows/useGridRows.js +23 -7
- package/modern/hooks/features/virtualization/useGridVirtualScroller.js +2 -2
- package/modern/index.js +1 -1
- package/modern/internals/index.js +3 -5
- package/modern/locales/trTR.js +17 -17
- package/modern/models/api/gridRowSelectionApi.js +1 -0
- package/modern/models/api/index.js +1 -1
- package/modern/models/gridRowSelectionModel.js +1 -0
- package/modern/models/index.js +1 -1
- package/modern/models/params/gridColumnGroupHeaderParams.js +1 -0
- package/modern/models/params/gridEditCellParams.js +0 -4
- package/modern/models/params/index.js +1 -0
- package/node/DataGrid/DataGrid.js +14 -34
- package/node/DataGrid/useDataGridComponent.js +9 -17
- package/node/DataGrid/useDataGridProps.js +3 -3
- package/node/colDef/gridCheckboxSelectionColDef.js +2 -2
- package/node/components/GridFooter.js +2 -2
- package/node/components/GridRow.js +2 -2
- package/node/components/base/GridBody.js +2 -2
- package/node/components/cell/GridEditInputCell.js +3 -9
- package/node/components/cell/GridEditSingleSelectCell.js +6 -38
- package/node/components/columnHeaders/GridColumnGroupHeader.js +32 -5
- package/node/components/columnSelection/GridHeaderCheckbox.js +3 -3
- package/node/components/containers/GridRoot.js +4 -2
- package/node/components/panel/GridColumnsPanel.js +10 -4
- package/node/components/panel/filterPanel/GridFilterForm.js +30 -7
- package/node/components/panel/filterPanel/GridFilterPanel.js +63 -19
- package/node/hooks/features/columnGrouping/gridColumnGroupsSelector.js +40 -3
- package/node/hooks/features/columnGrouping/gridColumnGroupsUtils.js +102 -0
- package/node/hooks/features/columnGrouping/useGridColumnGrouping.js +68 -71
- package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +57 -113
- package/node/hooks/features/density/densitySelector.js +2 -6
- package/node/hooks/features/density/useGridDensity.js +9 -48
- package/node/hooks/features/dimensions/useGridDimensions.js +3 -1
- package/node/hooks/features/{editRows/gridEditRowsSelector.js → editing/gridEditingSelectors.js} +0 -0
- package/node/hooks/features/{editRows → editing}/index.js +4 -4
- package/node/hooks/features/{editRows/useGridCellEditing.new.js → editing/useGridCellEditing.js} +28 -13
- package/node/hooks/features/{editRows/useGridEditing.new.js → editing/useGridEditing.js} +4 -4
- package/node/hooks/features/{editRows/useGridRowEditing.new.js → editing/useGridRowEditing.js} +28 -14
- package/node/hooks/features/export/useGridPrintExport.js +2 -2
- package/node/hooks/features/focus/gridFocusStateSelector.js +10 -4
- package/node/hooks/features/focus/useGridFocus.js +68 -10
- package/node/hooks/features/index.js +8 -8
- package/node/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +138 -1
- package/node/hooks/features/{selection/gridSelectionSelector.js → rowSelection/gridRowSelectionSelector.js} +6 -6
- package/node/hooks/features/rowSelection/index.js +18 -0
- package/node/hooks/features/{selection/useGridSelection.js → rowSelection/useGridRowSelection.js} +43 -43
- package/node/hooks/features/{selection/useGridSelectionPreProcessors.js → rowSelection/useGridRowSelectionPreProcessors.js} +3 -3
- package/node/hooks/features/rows/gridRowsUtils.js +5 -2
- package/node/hooks/features/rows/useGridRows.js +23 -7
- package/node/hooks/features/virtualization/useGridVirtualScroller.js +4 -4
- package/node/index.js +1 -1
- package/node/internals/index.js +23 -45
- package/node/locales/trTR.js +17 -17
- package/node/models/api/{gridSelectionApi.js → gridRowSelectionApi.js} +0 -0
- package/node/models/api/index.js +4 -4
- package/node/models/{gridSelectionModel.js → gridRowSelectionModel.js} +0 -0
- package/node/models/index.js +4 -4
- package/node/models/params/gridColumnGroupHeaderParams.js +5 -0
- package/node/models/params/gridEditCellParams.js +0 -3
- package/node/models/params/index.js +13 -0
- package/package.json +2 -2
- package/hooks/features/columnGrouping/useGridColumnGroupingPreProcessors.d.ts +0 -4
- package/hooks/features/columnGrouping/useGridColumnGroupingPreProcessors.js +0 -35
- package/hooks/features/editRows/index.d.ts +0 -1
- package/hooks/features/editRows/index.js +0 -1
- package/hooks/features/editRows/useGridCellEditing.old.d.ts +0 -4
- package/hooks/features/editRows/useGridCellEditing.old.js +0 -359
- package/hooks/features/editRows/useGridEditing.old.d.ts +0 -11
- package/hooks/features/editRows/useGridEditing.old.js +0 -167
- package/hooks/features/editRows/useGridRowEditing.old.d.ts +0 -4
- package/hooks/features/editRows/useGridRowEditing.old.js +0 -334
- package/hooks/features/selection/gridSelectionSelector.js +0 -9
- package/hooks/features/selection/index.d.ts +0 -1
- package/hooks/features/selection/index.js +0 -1
- package/hooks/features/selection/useGridSelection.d.ts +0 -12
- package/legacy/hooks/features/columnGrouping/useGridColumnGroupingPreProcessors.js +0 -35
- package/legacy/hooks/features/editRows/index.js +0 -1
- package/legacy/hooks/features/editRows/useGridCellEditing.old.js +0 -411
- package/legacy/hooks/features/editRows/useGridEditing.old.js +0 -184
- package/legacy/hooks/features/editRows/useGridRowEditing.old.js +0 -505
- package/legacy/hooks/features/selection/gridSelectionSelector.js +0 -19
- package/legacy/hooks/features/selection/index.js +0 -1
- package/models/gridSelectionModel.d.ts +0 -3
- package/modern/hooks/features/columnGrouping/useGridColumnGroupingPreProcessors.js +0 -29
- package/modern/hooks/features/editRows/index.js +0 -1
- package/modern/hooks/features/editRows/useGridCellEditing.old.js +0 -355
- package/modern/hooks/features/editRows/useGridEditing.old.js +0 -163
- package/modern/hooks/features/editRows/useGridRowEditing.old.js +0 -326
- package/modern/hooks/features/selection/gridSelectionSelector.js +0 -9
- package/modern/hooks/features/selection/index.js +0 -1
- package/node/hooks/features/columnGrouping/useGridColumnGroupingPreProcessors.js +0 -55
- package/node/hooks/features/editRows/useGridCellEditing.old.js +0 -380
- package/node/hooks/features/editRows/useGridEditing.old.js +0 -193
- package/node/hooks/features/editRows/useGridRowEditing.old.js +0 -358
- package/node/hooks/features/selection/index.js +0 -18
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
|
3
3
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
4
|
-
var _excluded = ["linkOperators", "columnsSort", "filterFormProps", "children"];
|
|
4
|
+
var _excluded = ["linkOperators", "columnsSort", "filterFormProps", "getColumnForNewFilter", "children"];
|
|
5
5
|
import * as React from 'react';
|
|
6
6
|
import PropTypes from 'prop-types';
|
|
7
7
|
import { GridLinkOperator } from '../../../models/gridFilterItem';
|
|
@@ -17,6 +17,15 @@ import { gridFilterModelSelector } from '../../../hooks/features/filter/gridFilt
|
|
|
17
17
|
import { gridFilterableColumnDefinitionsSelector } from '../../../hooks/features/columns/gridColumnsSelector';
|
|
18
18
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
19
19
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
20
|
+
|
|
21
|
+
var getGridFilter = function getGridFilter(col) {
|
|
22
|
+
return {
|
|
23
|
+
columnField: col.field,
|
|
24
|
+
operatorValue: col.filterOperators[0].value,
|
|
25
|
+
id: Math.round(Math.random() * 1e5)
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
|
|
20
29
|
var GridFilterPanel = /*#__PURE__*/React.forwardRef(function GridFilterPanel(props, ref) {
|
|
21
30
|
var _rootProps$components;
|
|
22
31
|
|
|
@@ -30,6 +39,7 @@ var GridFilterPanel = /*#__PURE__*/React.forwardRef(function GridFilterPanel(pro
|
|
|
30
39
|
linkOperators = _props$linkOperators === void 0 ? [GridLinkOperator.And, GridLinkOperator.Or] : _props$linkOperators,
|
|
31
40
|
columnsSort = props.columnsSort,
|
|
32
41
|
filterFormProps = props.filterFormProps,
|
|
42
|
+
getColumnForNewFilter = props.getColumnForNewFilter,
|
|
33
43
|
children = props.children,
|
|
34
44
|
other = _objectWithoutProperties(props, _excluded);
|
|
35
45
|
|
|
@@ -39,41 +49,73 @@ var GridFilterPanel = /*#__PURE__*/React.forwardRef(function GridFilterPanel(pro
|
|
|
39
49
|
var applyFilterLinkOperator = React.useCallback(function (operator) {
|
|
40
50
|
apiRef.current.setFilterLinkOperator(operator);
|
|
41
51
|
}, [apiRef]);
|
|
42
|
-
var
|
|
43
|
-
var
|
|
44
|
-
|
|
52
|
+
var getDefaultFilter = React.useCallback(function () {
|
|
53
|
+
var nextColumnWithOperator;
|
|
54
|
+
|
|
55
|
+
if (getColumnForNewFilter && typeof getColumnForNewFilter === 'function') {
|
|
56
|
+
// To allow override the column for default (first) filter
|
|
57
|
+
var nextColumnFieldName = getColumnForNewFilter({
|
|
58
|
+
currentFilters: (filterModel == null ? void 0 : filterModel.items) || [],
|
|
59
|
+
columns: filterableColumns
|
|
60
|
+
});
|
|
61
|
+
nextColumnWithOperator = filterableColumns.find(function (_ref) {
|
|
62
|
+
var field = _ref.field;
|
|
63
|
+
return field === nextColumnFieldName;
|
|
64
|
+
});
|
|
65
|
+
} else {
|
|
66
|
+
nextColumnWithOperator = filterableColumns.find(function (colDef) {
|
|
67
|
+
var _colDef$filterOperato;
|
|
68
|
+
|
|
69
|
+
return (_colDef$filterOperato = colDef.filterOperators) == null ? void 0 : _colDef$filterOperato.length;
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
if (!nextColumnWithOperator) {
|
|
74
|
+
return null;
|
|
75
|
+
}
|
|
45
76
|
|
|
46
|
-
|
|
77
|
+
return getGridFilter(nextColumnWithOperator);
|
|
78
|
+
}, [filterModel == null ? void 0 : filterModel.items, filterableColumns, getColumnForNewFilter]);
|
|
79
|
+
var getNewFilter = React.useCallback(function () {
|
|
80
|
+
if (getColumnForNewFilter === undefined || typeof getColumnForNewFilter !== 'function') {
|
|
81
|
+
return getDefaultFilter();
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
var currentFilters = filterModel.items.length ? filterModel.items : [getDefaultFilter()].filter(Boolean); // If no items are there in filterModel, we have to pass defaultFilter
|
|
85
|
+
|
|
86
|
+
var nextColumnFieldName = getColumnForNewFilter({
|
|
87
|
+
currentFilters: currentFilters,
|
|
88
|
+
columns: filterableColumns
|
|
89
|
+
});
|
|
90
|
+
var nextColumnWithOperator = filterableColumns.find(function (_ref2) {
|
|
91
|
+
var field = _ref2.field;
|
|
92
|
+
return field === nextColumnFieldName;
|
|
47
93
|
});
|
|
48
94
|
|
|
49
|
-
if (!
|
|
95
|
+
if (!nextColumnWithOperator) {
|
|
50
96
|
return null;
|
|
51
97
|
}
|
|
52
98
|
|
|
53
|
-
return
|
|
54
|
-
|
|
55
|
-
operatorValue: firstColumnWithOperator.filterOperators[0].value,
|
|
56
|
-
id: Math.round(Math.random() * 1e5)
|
|
57
|
-
};
|
|
58
|
-
}, [filterableColumns]);
|
|
99
|
+
return getGridFilter(nextColumnWithOperator);
|
|
100
|
+
}, [filterModel.items, filterableColumns, getColumnForNewFilter, getDefaultFilter]);
|
|
59
101
|
var items = React.useMemo(function () {
|
|
60
102
|
if (filterModel.items.length) {
|
|
61
103
|
return filterModel.items;
|
|
62
104
|
}
|
|
63
105
|
|
|
64
|
-
var
|
|
65
|
-
return
|
|
66
|
-
}, [filterModel.items,
|
|
106
|
+
var defaultFilter = getDefaultFilter();
|
|
107
|
+
return defaultFilter ? [defaultFilter] : [];
|
|
108
|
+
}, [filterModel.items, getDefaultFilter]);
|
|
67
109
|
var hasMultipleFilters = items.length > 1;
|
|
68
110
|
|
|
69
111
|
var addNewFilter = function addNewFilter() {
|
|
70
|
-
var
|
|
112
|
+
var newFilter = getNewFilter();
|
|
71
113
|
|
|
72
|
-
if (!
|
|
114
|
+
if (!newFilter) {
|
|
73
115
|
return;
|
|
74
116
|
}
|
|
75
117
|
|
|
76
|
-
apiRef.current.upsertFilterItems([].concat(_toConsumableArray(items), [
|
|
118
|
+
apiRef.current.upsertFilterItems([].concat(_toConsumableArray(items), [newFilter]));
|
|
77
119
|
};
|
|
78
120
|
|
|
79
121
|
var deleteFilter = React.useCallback(function (item) {
|
|
@@ -152,6 +194,13 @@ process.env.NODE_ENV !== "production" ? GridFilterPanel.propTypes = {
|
|
|
152
194
|
valueInputProps: PropTypes.any
|
|
153
195
|
}),
|
|
154
196
|
|
|
197
|
+
/**
|
|
198
|
+
* Function that returns the next filter item to be picked as default filter.
|
|
199
|
+
* @param {GetColumnForNewFilterArgs} args Currently configured filters and columns.
|
|
200
|
+
* @returns {GridColDef['field']} The field to be used for the next filter.
|
|
201
|
+
*/
|
|
202
|
+
getColumnForNewFilter: PropTypes.func,
|
|
203
|
+
|
|
155
204
|
/**
|
|
156
205
|
* Sets the available logic operators.
|
|
157
206
|
* @default [GridLinkOperator.And, GridLinkOperator.Or]
|
|
@@ -7,6 +7,38 @@ import { createSelector } from '../../../utils/createSelector';
|
|
|
7
7
|
export var gridColumnGroupingSelector = function gridColumnGroupingSelector(state) {
|
|
8
8
|
return state.columnGrouping;
|
|
9
9
|
};
|
|
10
|
+
export var gridColumnGroupsUnwrappedModelSelector = createSelector(gridColumnGroupingSelector, function (columnGrouping) {
|
|
11
|
+
var _columnGrouping$unwra;
|
|
12
|
+
|
|
13
|
+
return (_columnGrouping$unwra = columnGrouping == null ? void 0 : columnGrouping.unwrappedGroupingModel) != null ? _columnGrouping$unwra : {};
|
|
14
|
+
});
|
|
10
15
|
export var gridColumnGroupsLookupSelector = createSelector(gridColumnGroupingSelector, function (columnGrouping) {
|
|
11
|
-
|
|
16
|
+
var _columnGrouping$looku;
|
|
17
|
+
|
|
18
|
+
return (_columnGrouping$looku = columnGrouping == null ? void 0 : columnGrouping.lookup) != null ? _columnGrouping$looku : {};
|
|
19
|
+
});
|
|
20
|
+
export var gridColumnGroupsHeaderStructureSelector = createSelector(gridColumnGroupingSelector, function (columnGrouping) {
|
|
21
|
+
var _columnGrouping$heade;
|
|
22
|
+
|
|
23
|
+
return (_columnGrouping$heade = columnGrouping == null ? void 0 : columnGrouping.headerStructure) != null ? _columnGrouping$heade : [];
|
|
24
|
+
});
|
|
25
|
+
export var gridColumnGroupsHeaderMaxDepthSelector = createSelector(gridColumnGroupingSelector, function (columnGrouping) {
|
|
26
|
+
var _columnGrouping$maxDe;
|
|
27
|
+
|
|
28
|
+
return (_columnGrouping$maxDe = columnGrouping == null ? void 0 : columnGrouping.maxDepth) != null ? _columnGrouping$maxDe : 0;
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
var getGroupingHeader = function getGroupingHeader(state) {
|
|
32
|
+
return {
|
|
33
|
+
columnGrouping: state.columnGrouping,
|
|
34
|
+
density: state.density
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
export var gridTotalHeaderHeightSelector = createSelector(getGroupingHeader, function (_ref) {
|
|
39
|
+
var _columnGrouping$maxDe2;
|
|
40
|
+
|
|
41
|
+
var columnGrouping = _ref.columnGrouping,
|
|
42
|
+
density = _ref.density;
|
|
43
|
+
return density.headerHeight * (((_columnGrouping$maxDe2 = columnGrouping == null ? void 0 : columnGrouping.maxDepth) != null ? _columnGrouping$maxDe2 : 0) + 1);
|
|
12
44
|
});
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
|
2
|
+
import { isLeaf } from '../../../models/gridColumnGrouping';
|
|
3
|
+
import { isDeepEqual } from '../../../utils/utils';
|
|
4
|
+
|
|
5
|
+
// This is the recurrence function that help writing `unwrapGroupingColumnModel()`
|
|
6
|
+
var recurrentUnwrapGroupingColumnModel = function recurrentUnwrapGroupingColumnModel(columnGroupNode, parents, unwrappedGroupingModelToComplet) {
|
|
7
|
+
if (isLeaf(columnGroupNode)) {
|
|
8
|
+
if (unwrappedGroupingModelToComplet[columnGroupNode.field] !== undefined) {
|
|
9
|
+
throw new Error(["MUI: columnGroupingModel contains duplicated field", "column field ".concat(columnGroupNode.field, " occurrs two times in the grouping model:"), "- ".concat(unwrappedGroupingModelToComplet[columnGroupNode.field].join(' > ')), "- ".concat(parents.join(' > '))].join('\n'));
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
unwrappedGroupingModelToComplet[columnGroupNode.field] = parents;
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
var groupId = columnGroupNode.groupId,
|
|
17
|
+
children = columnGroupNode.children;
|
|
18
|
+
children.forEach(function (child) {
|
|
19
|
+
recurrentUnwrapGroupingColumnModel(child, [].concat(_toConsumableArray(parents), [groupId]), unwrappedGroupingModelToComplet);
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* This is a function that provide for each column the array of its parents.
|
|
24
|
+
* Parents are ordered from the root to the leaf.
|
|
25
|
+
* @param columnGroupingModel The model such as provided in DataGrid props
|
|
26
|
+
* @returns An object `{[field]: groupIds}` where `groupIds` is the parents of the column `field`
|
|
27
|
+
*/
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
export var unwrapGroupingColumnModel = function unwrapGroupingColumnModel(columnGroupingModel) {
|
|
31
|
+
if (!columnGroupingModel) {
|
|
32
|
+
return {};
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
var unwrappedSubTree = {};
|
|
36
|
+
columnGroupingModel.forEach(function (columnGroupNode) {
|
|
37
|
+
recurrentUnwrapGroupingColumnModel(columnGroupNode, [], unwrappedSubTree);
|
|
38
|
+
});
|
|
39
|
+
return unwrappedSubTree;
|
|
40
|
+
};
|
|
41
|
+
export var getColumnGroupsHeaderStructure = function getColumnGroupsHeaderStructure(orderedColumns, unwrappedGroupingModel) {
|
|
42
|
+
var getParents = function getParents(field) {
|
|
43
|
+
var _unwrappedGroupingMod;
|
|
44
|
+
|
|
45
|
+
return (_unwrappedGroupingMod = unwrappedGroupingModel[field]) != null ? _unwrappedGroupingMod : [];
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
var groupingHeaderStructure = [];
|
|
49
|
+
var maxDepth = Math.max.apply(Math, _toConsumableArray(orderedColumns.map(function (field) {
|
|
50
|
+
return getParents(field).length;
|
|
51
|
+
})));
|
|
52
|
+
|
|
53
|
+
var haveSameParents = function haveSameParents(field1, field2, depth) {
|
|
54
|
+
return isDeepEqual(getParents(field1).slice(0, depth + 1), getParents(field2).slice(0, depth + 1));
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
var _loop = function _loop(depth) {
|
|
58
|
+
var depthStructure = orderedColumns.reduce(function (structure, newField) {
|
|
59
|
+
var _getParents$depth;
|
|
60
|
+
|
|
61
|
+
var groupId = (_getParents$depth = getParents(newField)[depth]) != null ? _getParents$depth : null;
|
|
62
|
+
|
|
63
|
+
if (structure.length === 0) {
|
|
64
|
+
return [{
|
|
65
|
+
columnFields: [newField],
|
|
66
|
+
groupId: groupId
|
|
67
|
+
}];
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
var lastGroup = structure[structure.length - 1];
|
|
71
|
+
var prevField = lastGroup.columnFields[lastGroup.columnFields.length - 1];
|
|
72
|
+
var prevGroupId = lastGroup.groupId;
|
|
73
|
+
|
|
74
|
+
if (prevGroupId !== groupId || !haveSameParents(prevField, newField, depth)) {
|
|
75
|
+
// It's a new group
|
|
76
|
+
return [].concat(_toConsumableArray(structure), [{
|
|
77
|
+
columnFields: [newField],
|
|
78
|
+
groupId: groupId
|
|
79
|
+
}]);
|
|
80
|
+
} // It extends the previous group
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
return [].concat(_toConsumableArray(structure.slice(0, structure.length - 1)), [{
|
|
84
|
+
columnFields: [].concat(_toConsumableArray(lastGroup.columnFields), [newField]),
|
|
85
|
+
groupId: groupId
|
|
86
|
+
}]);
|
|
87
|
+
}, []);
|
|
88
|
+
groupingHeaderStructure.push(depthStructure);
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
for (var depth = 0; depth < maxDepth; depth += 1) {
|
|
92
|
+
_loop(depth);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
return groupingHeaderStructure;
|
|
96
|
+
};
|
|
@@ -1,53 +1,17 @@
|
|
|
1
|
+
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
|
1
2
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
3
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
3
4
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
4
|
-
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
|
5
5
|
var _excluded = ["groupId", "children"];
|
|
6
6
|
import * as React from 'react';
|
|
7
7
|
import { isLeaf } from '../../../models/gridColumnGrouping';
|
|
8
|
-
import { gridColumnGroupsLookupSelector } from './gridColumnGroupsSelector';
|
|
9
|
-
import { gridColumnLookupSelector } from '../columns/gridColumnsSelector';
|
|
8
|
+
import { gridColumnGroupsLookupSelector, gridColumnGroupsUnwrappedModelSelector } from './gridColumnGroupsSelector';
|
|
10
9
|
import { useGridApiMethod } from '../../utils/useGridApiMethod';
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
var recurrentUnwrapGroupingColumnModel = function recurrentUnwrapGroupingColumnModel(columnGroupNode, parents, unwrappedGroupingModelToComplet) {
|
|
17
|
-
if (isLeaf(columnGroupNode)) {
|
|
18
|
-
if (unwrappedGroupingModelToComplet[columnGroupNode.field] !== undefined) {
|
|
19
|
-
throw new Error(["MUI: columnGroupingModel contains duplicated field", "column field ".concat(columnGroupNode.field, " occurrs two times in the grouping model:"), "- ".concat(unwrappedGroupingModelToComplet[columnGroupNode.field].join(' > ')), "- ".concat(parents.join(' > '))].join('\n'));
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
unwrappedGroupingModelToComplet[columnGroupNode.field] = parents;
|
|
23
|
-
return;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
var groupId = columnGroupNode.groupId,
|
|
27
|
-
children = columnGroupNode.children;
|
|
28
|
-
children.forEach(function (child) {
|
|
29
|
-
recurrentUnwrapGroupingColumnModel(child, [].concat(_toConsumableArray(parents), [groupId]), unwrappedGroupingModelToComplet);
|
|
30
|
-
});
|
|
31
|
-
};
|
|
32
|
-
/**
|
|
33
|
-
* This is a function that provide for each column the array of its parents.
|
|
34
|
-
* Parents are ordered from the root to the leaf.
|
|
35
|
-
* @param columnGroupingModel The model such as provided in DataGrid props
|
|
36
|
-
* @returns An object `{[field]: groupIds}` where `groupIds` is the parents of the column `field`
|
|
37
|
-
*/
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
export var unwrapGroupingColumnModel = function unwrapGroupingColumnModel(columnGroupingModel) {
|
|
41
|
-
if (!columnGroupingModel) {
|
|
42
|
-
return {};
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
var unwrappedSubTree = {};
|
|
46
|
-
columnGroupingModel.forEach(function (columnGroupNode) {
|
|
47
|
-
recurrentUnwrapGroupingColumnModel(columnGroupNode, [], unwrappedSubTree);
|
|
48
|
-
});
|
|
49
|
-
return unwrappedSubTree;
|
|
50
|
-
};
|
|
10
|
+
import { getColumnGroupsHeaderStructure, unwrapGroupingColumnModel } from './gridColumnGroupsUtils';
|
|
11
|
+
import { useGridApiEventHandler } from '../../utils/useGridApiEventHandler';
|
|
12
|
+
import { gridColumnFieldsSelector, // GridColumnsState,
|
|
13
|
+
gridVisibleColumnFieldsSelector } from '../columns';
|
|
14
|
+
import { useGridSelector } from '../../utils/useGridSelector';
|
|
51
15
|
|
|
52
16
|
var createGroupLookup = function createGroupLookup(columnGroupingModel) {
|
|
53
17
|
var groupLookup = {};
|
|
@@ -83,14 +47,29 @@ var createGroupLookup = function createGroupLookup(columnGroupingModel) {
|
|
|
83
47
|
return _extends({}, groupLookup);
|
|
84
48
|
};
|
|
85
49
|
|
|
86
|
-
export var columnGroupsStateInitializer = function columnGroupsStateInitializer(state, props) {
|
|
87
|
-
var _props$columnGrouping;
|
|
50
|
+
export var columnGroupsStateInitializer = function columnGroupsStateInitializer(state, props, apiRef) {
|
|
51
|
+
var _props$experimentalFe, _props$columnGrouping, _props$columnGrouping2;
|
|
88
52
|
|
|
53
|
+
if (!((_props$experimentalFe = props.experimentalFeatures) != null && _props$experimentalFe.columnGrouping)) {
|
|
54
|
+
return state;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
var columnFields = gridColumnFieldsSelector(apiRef);
|
|
58
|
+
var visibleColumnFields = gridVisibleColumnFieldsSelector(apiRef);
|
|
89
59
|
var groupLookup = createGroupLookup((_props$columnGrouping = props.columnGroupingModel) != null ? _props$columnGrouping : []);
|
|
60
|
+
var unwrappedGroupingModel = unwrapGroupingColumnModel((_props$columnGrouping2 = props.columnGroupingModel) != null ? _props$columnGrouping2 : []);
|
|
61
|
+
var columnGroupsHeaderStructure = getColumnGroupsHeaderStructure(columnFields, unwrappedGroupingModel);
|
|
62
|
+
var maxDepth = visibleColumnFields.length === 0 ? 0 : Math.max.apply(Math, _toConsumableArray(visibleColumnFields.map(function (field) {
|
|
63
|
+
var _unwrappedGroupingMod, _unwrappedGroupingMod2;
|
|
64
|
+
|
|
65
|
+
return (_unwrappedGroupingMod = (_unwrappedGroupingMod2 = unwrappedGroupingModel[field]) == null ? void 0 : _unwrappedGroupingMod2.length) != null ? _unwrappedGroupingMod : 0;
|
|
66
|
+
})));
|
|
90
67
|
return _extends({}, state, {
|
|
91
68
|
columnGrouping: {
|
|
92
69
|
lookup: groupLookup,
|
|
93
|
-
|
|
70
|
+
unwrappedGroupingModel: unwrappedGroupingModel,
|
|
71
|
+
headerStructure: columnGroupsHeaderStructure,
|
|
72
|
+
maxDepth: maxDepth
|
|
94
73
|
}
|
|
95
74
|
});
|
|
96
75
|
};
|
|
@@ -100,16 +79,16 @@ export var columnGroupsStateInitializer = function columnGroupsStateInitializer(
|
|
|
100
79
|
*/
|
|
101
80
|
|
|
102
81
|
export var useGridColumnGrouping = function useGridColumnGrouping(apiRef, props) {
|
|
103
|
-
var _props$
|
|
82
|
+
var _props$experimentalFe3;
|
|
104
83
|
|
|
105
84
|
/**
|
|
106
85
|
* API METHODS
|
|
107
86
|
*/
|
|
108
87
|
var getColumnGroupPath = React.useCallback(function (field) {
|
|
109
|
-
var
|
|
88
|
+
var _unwrappedGroupingMod3;
|
|
110
89
|
|
|
111
|
-
var
|
|
112
|
-
return (
|
|
90
|
+
var unwrappedGroupingModel = gridColumnGroupsUnwrappedModelSelector(apiRef);
|
|
91
|
+
return (_unwrappedGroupingMod3 = unwrappedGroupingModel[field]) != null ? _unwrappedGroupingMod3 : [];
|
|
113
92
|
}, [apiRef]);
|
|
114
93
|
var getAllGroupDetails = React.useCallback(function () {
|
|
115
94
|
var columnGroupLookup = gridColumnGroupsLookupSelector(apiRef);
|
|
@@ -120,32 +99,53 @@ export var useGridColumnGrouping = function useGridColumnGrouping(apiRef, props)
|
|
|
120
99
|
unstable_getAllGroupDetails: getAllGroupDetails
|
|
121
100
|
};
|
|
122
101
|
useGridApiMethod(apiRef, columnGroupingApi, 'GridColumnGroupingApi');
|
|
102
|
+
var handleColumnReorderChange = React.useCallback(function () {
|
|
103
|
+
var _props$columnGrouping3;
|
|
104
|
+
|
|
105
|
+
var unwrappedGroupingModel = unwrapGroupingColumnModel((_props$columnGrouping3 = props.columnGroupingModel) != null ? _props$columnGrouping3 : []);
|
|
106
|
+
apiRef.current.setState(function (state) {
|
|
107
|
+
var _state$columns$all, _state$columns;
|
|
108
|
+
|
|
109
|
+
var orderedFields = (_state$columns$all = (_state$columns = state.columns) == null ? void 0 : _state$columns.all) != null ? _state$columns$all : [];
|
|
110
|
+
var columnGroupsHeaderStructure = getColumnGroupsHeaderStructure(orderedFields, unwrappedGroupingModel);
|
|
111
|
+
return _extends({}, state, {
|
|
112
|
+
columnGrouping: _extends({}, state.columnGrouping, {
|
|
113
|
+
headerStructure: columnGroupsHeaderStructure
|
|
114
|
+
})
|
|
115
|
+
});
|
|
116
|
+
});
|
|
117
|
+
}, [apiRef, props.columnGroupingModel]);
|
|
118
|
+
useGridApiEventHandler(apiRef, 'columnOrderChange', handleColumnReorderChange);
|
|
119
|
+
var columnFields = useGridSelector(apiRef, gridColumnFieldsSelector);
|
|
120
|
+
var visibleColumnFields = useGridSelector(apiRef, gridVisibleColumnFieldsSelector);
|
|
123
121
|
/**
|
|
124
122
|
* EFFECTS
|
|
125
123
|
*/
|
|
126
|
-
// The effect does not track any value defined synchronously during the 1st render by hooks called after `useGridColumns`
|
|
127
|
-
// As a consequence, the state generated by the 1st run of this useEffect will always be equal to the initialization one
|
|
128
124
|
|
|
129
|
-
var isFirstRender = React.useRef(true);
|
|
130
125
|
React.useEffect(function () {
|
|
131
|
-
var _props$
|
|
126
|
+
var _props$experimentalFe2, _props$columnGrouping4, _props$columnGrouping5;
|
|
132
127
|
|
|
133
|
-
if (
|
|
134
|
-
isFirstRender.current = false;
|
|
128
|
+
if (!((_props$experimentalFe2 = props.experimentalFeatures) != null && _props$experimentalFe2.columnGrouping)) {
|
|
135
129
|
return;
|
|
136
130
|
}
|
|
137
131
|
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
132
|
+
var groupLookup = createGroupLookup((_props$columnGrouping4 = props.columnGroupingModel) != null ? _props$columnGrouping4 : []);
|
|
133
|
+
var unwrappedGroupingModel = unwrapGroupingColumnModel((_props$columnGrouping5 = props.columnGroupingModel) != null ? _props$columnGrouping5 : []);
|
|
134
|
+
var columnGroupsHeaderStructure = getColumnGroupsHeaderStructure(columnFields, unwrappedGroupingModel);
|
|
135
|
+
var maxDepth = visibleColumnFields.length === 0 ? 0 : Math.max.apply(Math, _toConsumableArray(visibleColumnFields.map(function (field) {
|
|
136
|
+
var _unwrappedGroupingMod4, _unwrappedGroupingMod5;
|
|
141
137
|
|
|
142
|
-
|
|
138
|
+
return (_unwrappedGroupingMod4 = (_unwrappedGroupingMod5 = unwrappedGroupingModel[field]) == null ? void 0 : _unwrappedGroupingMod5.length) != null ? _unwrappedGroupingMod4 : 0;
|
|
139
|
+
})));
|
|
143
140
|
apiRef.current.setState(function (state) {
|
|
144
141
|
return _extends({}, state, {
|
|
145
|
-
columnGrouping:
|
|
146
|
-
lookup: groupLookup
|
|
147
|
-
|
|
142
|
+
columnGrouping: {
|
|
143
|
+
lookup: groupLookup,
|
|
144
|
+
unwrappedGroupingModel: unwrappedGroupingModel,
|
|
145
|
+
headerStructure: columnGroupsHeaderStructure,
|
|
146
|
+
maxDepth: maxDepth
|
|
147
|
+
}
|
|
148
148
|
});
|
|
149
149
|
});
|
|
150
|
-
}, [apiRef, props.columnGroupingModel, (_props$
|
|
150
|
+
}, [apiRef, columnFields, visibleColumnFields, props.columnGroupingModel, (_props$experimentalFe3 = props.experimentalFeatures) == null ? void 0 : _props$experimentalFe3.columnGrouping]);
|
|
151
151
|
};
|