@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,4 +1,3 @@
|
|
|
1
|
-
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
|
2
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
3
2
|
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
4
3
|
import * as React from 'react';
|
|
@@ -8,9 +7,9 @@ import { styled } from '@mui/material/styles';
|
|
|
8
7
|
import { defaultMemoize } from 'reselect';
|
|
9
8
|
import { useGridApiContext } from '../../utils/useGridApiContext';
|
|
10
9
|
import { useGridSelector } from '../../utils/useGridSelector';
|
|
11
|
-
import { gridVisibleColumnDefinitionsSelector, gridColumnPositionsSelector } from '../columns/gridColumnsSelector';
|
|
12
|
-
import { gridTabIndexColumnHeaderSelector, gridTabIndexCellSelector, gridFocusColumnHeaderSelector } from '../focus/gridFocusStateSelector';
|
|
13
|
-
import { gridDensityHeaderHeightSelector
|
|
10
|
+
import { gridVisibleColumnDefinitionsSelector, gridColumnPositionsSelector, gridColumnVisibilityModelSelector } from '../columns/gridColumnsSelector';
|
|
11
|
+
import { gridTabIndexColumnHeaderSelector, gridTabIndexCellSelector, gridFocusColumnHeaderSelector, unstable_gridFocusColumnGroupHeaderSelector, unstable_gridTabIndexColumnGroupHeaderSelector } from '../focus/gridFocusStateSelector';
|
|
12
|
+
import { gridDensityHeaderHeightSelector } from '../density/densitySelector';
|
|
14
13
|
import { gridFilterActiveItemsLookupSelector } from '../filter/gridFilterSelector';
|
|
15
14
|
import { gridSortColumnLookupSelector } from '../sorting/gridSortingSelector';
|
|
16
15
|
import { gridColumnMenuSelector } from '../columnMenu/columnMenuSelector';
|
|
@@ -21,10 +20,8 @@ import { getFirstColumnIndexToRender } from '../columns/gridColumnsUtils';
|
|
|
21
20
|
import { useGridVisibleRows } from '../../utils/useGridVisibleRows';
|
|
22
21
|
import { getRenderableIndexes } from '../virtualization/useGridVirtualScroller';
|
|
23
22
|
import { GridColumnGroupHeader } from '../../../components/columnHeaders/GridColumnGroupHeader';
|
|
24
|
-
import {
|
|
25
|
-
|
|
23
|
+
import { gridTotalHeaderHeightSelector, gridColumnGroupsHeaderMaxDepthSelector, gridColumnGroupsHeaderStructureSelector } from '../columnGrouping/gridColumnGroupsSelector';
|
|
26
24
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
27
|
-
var MERGE_EMPTY_CELLS = true;
|
|
28
25
|
var GridColumnHeaderRow = styled('div', {
|
|
29
26
|
name: 'MuiDataGrid',
|
|
30
27
|
slot: 'ColumnHeaderRow',
|
|
@@ -59,15 +56,19 @@ export var useGridColumnHeaders = function useGridColumnHeaders(props) {
|
|
|
59
56
|
var apiRef = useGridApiContext();
|
|
60
57
|
var visibleColumns = useGridSelector(apiRef, gridVisibleColumnDefinitionsSelector);
|
|
61
58
|
var columnPositions = useGridSelector(apiRef, gridColumnPositionsSelector);
|
|
62
|
-
var
|
|
59
|
+
var columnHeaderTabIndexState = useGridSelector(apiRef, gridTabIndexColumnHeaderSelector);
|
|
63
60
|
var cellTabIndexState = useGridSelector(apiRef, gridTabIndexCellSelector);
|
|
61
|
+
var columnGroupHeaderTabIndexState = useGridSelector(apiRef, unstable_gridTabIndexColumnGroupHeaderSelector);
|
|
64
62
|
var columnHeaderFocus = useGridSelector(apiRef, gridFocusColumnHeaderSelector);
|
|
63
|
+
var columnGroupHeaderFocus = useGridSelector(apiRef, unstable_gridFocusColumnGroupHeaderSelector);
|
|
65
64
|
var headerHeight = useGridSelector(apiRef, gridDensityHeaderHeightSelector);
|
|
66
|
-
var headerGroupingMaxDepth = useGridSelector(apiRef,
|
|
67
|
-
var totalHeaderHeight = useGridSelector(apiRef,
|
|
65
|
+
var headerGroupingMaxDepth = useGridSelector(apiRef, gridColumnGroupsHeaderMaxDepthSelector);
|
|
66
|
+
var totalHeaderHeight = useGridSelector(apiRef, gridTotalHeaderHeightSelector);
|
|
68
67
|
var filterColumnLookup = useGridSelector(apiRef, gridFilterActiveItemsLookupSelector);
|
|
69
68
|
var sortColumnLookup = useGridSelector(apiRef, gridSortColumnLookupSelector);
|
|
70
69
|
var columnMenuState = useGridSelector(apiRef, gridColumnMenuSelector);
|
|
70
|
+
var columnVisibility = useGridSelector(apiRef, gridColumnVisibilityModelSelector);
|
|
71
|
+
var columnGroupsHeaderStructure = useGridSelector(apiRef, gridColumnGroupsHeaderStructureSelector);
|
|
71
72
|
var rootProps = useGridRootProps();
|
|
72
73
|
var innerRef = React.useRef(null);
|
|
73
74
|
var handleInnerRef = useForkRef(innerRefProp, innerRef);
|
|
@@ -244,8 +245,8 @@ export var useGridColumnHeaders = function useGridColumnHeaders(props) {
|
|
|
244
245
|
var column = renderedColumns[i];
|
|
245
246
|
var columnIndex = firstColumnToRender + i;
|
|
246
247
|
var isFirstColumn = columnIndex === 0;
|
|
247
|
-
var hasTabbableElement = !(
|
|
248
|
-
var tabIndex =
|
|
248
|
+
var hasTabbableElement = !(columnGroupHeaderTabIndexState === null && columnHeaderTabIndexState === null && cellTabIndexState === null);
|
|
249
|
+
var tabIndex = columnHeaderTabIndexState !== null && columnHeaderTabIndexState.field === column.field || isFirstColumn && !hasTabbableElement ? 0 : -1;
|
|
249
250
|
var hasFocus = columnHeaderFocus !== null && columnHeaderFocus.field === column.field;
|
|
250
251
|
var open = columnMenuState.open && columnMenuState.field === column.field;
|
|
251
252
|
columns.push( /*#__PURE__*/_jsx(GridColumnHeaderItem, _extends({}, sortColumnLookup[column.field], {
|
|
@@ -270,12 +271,6 @@ export var useGridColumnHeaders = function useGridColumnHeaders(props) {
|
|
|
270
271
|
});
|
|
271
272
|
};
|
|
272
273
|
|
|
273
|
-
var getParents = function getParents() {
|
|
274
|
-
var path = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
275
|
-
var depth = arguments.length > 1 ? arguments[1] : undefined;
|
|
276
|
-
return path.slice(0, depth + 1);
|
|
277
|
-
};
|
|
278
|
-
|
|
279
274
|
var getColumnGroupHeaders = function getColumnGroupHeaders(params) {
|
|
280
275
|
if (headerGroupingMaxDepth === 0) {
|
|
281
276
|
return null;
|
|
@@ -287,114 +282,63 @@ export var useGridColumnHeaders = function useGridColumnHeaders(props) {
|
|
|
287
282
|
return null;
|
|
288
283
|
}
|
|
289
284
|
|
|
290
|
-
var
|
|
291
|
-
|
|
292
|
-
lastColumnToRender = columnsToRender.lastColumnToRender,
|
|
293
|
-
maxLastColumn = columnsToRender.maxLastColumn;
|
|
285
|
+
var firstColumnToRender = columnsToRender.firstColumnToRender,
|
|
286
|
+
lastColumnToRender = columnsToRender.lastColumnToRender;
|
|
294
287
|
var columns = [];
|
|
295
288
|
var headerToRender = [];
|
|
296
289
|
|
|
297
290
|
var _loop = function _loop(depth) {
|
|
298
|
-
var
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
var
|
|
302
|
-
var
|
|
303
|
-
var
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
// Merge with the previous columns
|
|
348
|
-
return [].concat(_toConsumableArray(aggregated.slice(0, aggregated.length - 1)), [_extends({}, lastItem, {
|
|
349
|
-
width: lastItem.width + ((_column$computedWidth4 = column.computedWidth) != null ? _column$computedWidth4 : 0),
|
|
350
|
-
fields: [].concat(_toConsumableArray(lastItem.fields), [column.field])
|
|
351
|
-
})]);
|
|
352
|
-
} // Create a new grouping
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
return [].concat(_toConsumableArray(aggregated), [{
|
|
356
|
-
groupId: column.groupPath[depth],
|
|
357
|
-
groupParents: getParents(column.groupPath, depth),
|
|
358
|
-
width: (_column$computedWidth5 = column.computedWidth) != null ? _column$computedWidth5 : 0,
|
|
359
|
-
fields: [column.field],
|
|
360
|
-
colIndex: firstColumnToRender + i
|
|
361
|
-
}]);
|
|
362
|
-
}
|
|
363
|
-
|
|
364
|
-
if (MERGE_EMPTY_CELLS && lastItem && lastItem.groupId === null && isDeepEqual(getParents(column.groupPath, depth), lastItem.groupParents)) {
|
|
365
|
-
var _column$computedWidth6;
|
|
366
|
-
|
|
367
|
-
// We merge with previous column
|
|
368
|
-
return [].concat(_toConsumableArray(aggregated.slice(0, aggregated.length - 1)), [_extends({}, lastItem, {
|
|
369
|
-
width: lastItem.width + ((_column$computedWidth6 = column.computedWidth) != null ? _column$computedWidth6 : 0),
|
|
370
|
-
fields: [].concat(_toConsumableArray(lastItem.fields), [column.field])
|
|
371
|
-
})]);
|
|
372
|
-
} // We create new empty cell
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
return [].concat(_toConsumableArray(aggregated), [{
|
|
376
|
-
groupId: null,
|
|
377
|
-
groupParents: getParents(column.groupPath, depth),
|
|
378
|
-
width: (_column$computedWidth7 = column.computedWidth) != null ? _column$computedWidth7 : 0,
|
|
379
|
-
fields: [column.field],
|
|
380
|
-
colIndex: firstColumnToRender + i
|
|
381
|
-
}]);
|
|
382
|
-
}, initialHeader);
|
|
383
|
-
columnIndex = lastColumnToRender;
|
|
384
|
-
var lastColumnToRenderGroup = depthInfo[depthInfo.length - 1].groupId;
|
|
385
|
-
|
|
386
|
-
while (lastColumnToRenderGroup !== null && columnIndex < maxLastColumn && (_visibleColumns$colum3 = visibleColumns[columnIndex]) != null && _visibleColumns$colum3.groupPath && ((_visibleColumns$colum4 = visibleColumns[columnIndex]) == null ? void 0 : (_visibleColumns$colum5 = _visibleColumns$colum4.groupPath) == null ? void 0 : _visibleColumns$colum5[depth]) === lastColumnToRenderGroup) {
|
|
387
|
-
var _visibleColumns$colum3, _visibleColumns$colum4, _visibleColumns$colum5, _column$computedWidth8;
|
|
388
|
-
|
|
389
|
-
var _column = visibleColumns[columnIndex];
|
|
390
|
-
depthInfo[depthInfo.length - 1].width += (_column$computedWidth8 = _column.computedWidth) != null ? _column$computedWidth8 : 0;
|
|
391
|
-
depthInfo[depthInfo.length - 1].fields.push(_column.field);
|
|
392
|
-
columnIndex += 1;
|
|
393
|
-
}
|
|
394
|
-
|
|
291
|
+
var _apiRef$current$unsta, _apiRef$current$unsta2;
|
|
292
|
+
|
|
293
|
+
var rowStructure = columnGroupsHeaderStructure[depth];
|
|
294
|
+
var firstColumnFieldToRender = visibleColumns[firstColumnToRender].field;
|
|
295
|
+
var firstGroupToRender = (_apiRef$current$unsta = apiRef.current.unstable_getColumnGroupPath(firstColumnFieldToRender)[depth]) != null ? _apiRef$current$unsta : null;
|
|
296
|
+
var firstGroupIndex = rowStructure.findIndex(function (_ref4) {
|
|
297
|
+
var groupId = _ref4.groupId,
|
|
298
|
+
columnFields = _ref4.columnFields;
|
|
299
|
+
return groupId === firstGroupToRender && columnFields.includes(firstColumnFieldToRender);
|
|
300
|
+
});
|
|
301
|
+
var lastColumnFieldToRender = visibleColumns[lastColumnToRender - 1].field;
|
|
302
|
+
var lastGroupToRender = (_apiRef$current$unsta2 = apiRef.current.unstable_getColumnGroupPath(lastColumnFieldToRender)[depth]) != null ? _apiRef$current$unsta2 : null;
|
|
303
|
+
var lastGroupIndex = rowStructure.findIndex(function (_ref5) {
|
|
304
|
+
var groupId = _ref5.groupId,
|
|
305
|
+
columnFields = _ref5.columnFields;
|
|
306
|
+
return groupId === lastGroupToRender && columnFields.includes(lastColumnFieldToRender);
|
|
307
|
+
});
|
|
308
|
+
var visibleColumnGroupHeader = rowStructure.slice(firstGroupIndex, lastGroupIndex + 1).map(function (groupStructure) {
|
|
309
|
+
return _extends({}, groupStructure, {
|
|
310
|
+
columnFields: groupStructure.columnFields.filter(function (field) {
|
|
311
|
+
return columnVisibility[field] !== false;
|
|
312
|
+
})
|
|
313
|
+
});
|
|
314
|
+
}).filter(function (groupStructure) {
|
|
315
|
+
return groupStructure.columnFields.length > 0;
|
|
316
|
+
});
|
|
317
|
+
var leftOverflow = visibleColumnGroupHeader[0].columnFields.indexOf(firstColumnFieldToRender);
|
|
318
|
+
var columnIndex = firstColumnToRender;
|
|
319
|
+
var elements = visibleColumnGroupHeader.map(function (_ref6) {
|
|
320
|
+
var groupId = _ref6.groupId,
|
|
321
|
+
columnFields = _ref6.columnFields;
|
|
322
|
+
var hasFocus = columnGroupHeaderFocus !== null && columnGroupHeaderFocus.depth === depth && columnFields.includes(columnGroupHeaderFocus.field);
|
|
323
|
+
var tabIndex = columnGroupHeaderTabIndexState !== null && columnGroupHeaderTabIndexState.depth === depth && columnFields.includes(columnGroupHeaderTabIndexState.field) ? 0 : -1;
|
|
324
|
+
var headerInfo = {
|
|
325
|
+
groupId: groupId,
|
|
326
|
+
width: columnFields.map(function (field) {
|
|
327
|
+
return apiRef.current.getColumn(field).computedWidth;
|
|
328
|
+
}).reduce(function (acc, val) {
|
|
329
|
+
return acc + val;
|
|
330
|
+
}, 0),
|
|
331
|
+
fields: columnFields,
|
|
332
|
+
colIndex: columnIndex,
|
|
333
|
+
hasFocus: hasFocus,
|
|
334
|
+
tabIndex: tabIndex
|
|
335
|
+
};
|
|
336
|
+
columnIndex += columnFields.length;
|
|
337
|
+
return headerInfo;
|
|
338
|
+
});
|
|
395
339
|
headerToRender.push({
|
|
396
340
|
leftOverflow: leftOverflow,
|
|
397
|
-
elements:
|
|
341
|
+
elements: elements
|
|
398
342
|
});
|
|
399
343
|
};
|
|
400
344
|
|
|
@@ -414,7 +358,9 @@ export var useGridColumnHeaders = function useGridColumnHeaders(props) {
|
|
|
414
358
|
var groupId = _ref3.groupId,
|
|
415
359
|
width = _ref3.width,
|
|
416
360
|
fields = _ref3.fields,
|
|
417
|
-
colIndex = _ref3.colIndex
|
|
361
|
+
colIndex = _ref3.colIndex,
|
|
362
|
+
hasFocus = _ref3.hasFocus,
|
|
363
|
+
tabIndex = _ref3.tabIndex;
|
|
418
364
|
return /*#__PURE__*/_jsx(GridColumnGroupHeader, {
|
|
419
365
|
groupId: groupId,
|
|
420
366
|
width: width,
|
|
@@ -424,7 +370,9 @@ export var useGridColumnHeaders = function useGridColumnHeaders(props) {
|
|
|
424
370
|
isLastColumn: colIndex === visibleColumns.length - fields.length,
|
|
425
371
|
extendRowFullWidth: !rootProps.disableExtendRowFullWidth,
|
|
426
372
|
maxDepth: headerToRender.length,
|
|
427
|
-
height: headerHeight
|
|
373
|
+
height: headerHeight,
|
|
374
|
+
hasFocus: hasFocus,
|
|
375
|
+
tabIndex: tabIndex
|
|
428
376
|
}, groupIndex);
|
|
429
377
|
})
|
|
430
378
|
}, depthIndex));
|
|
@@ -11,12 +11,6 @@ export var gridDensityRowHeightSelector = createSelector(gridDensitySelector, fu
|
|
|
11
11
|
export var gridDensityHeaderHeightSelector = createSelector(gridDensitySelector, function (density) {
|
|
12
12
|
return density.headerHeight;
|
|
13
13
|
});
|
|
14
|
-
export var gridDensityHeaderGroupingMaxDepthSelector = createSelector(gridDensitySelector, function (density) {
|
|
15
|
-
return density.headerGroupingMaxDepth;
|
|
16
|
-
});
|
|
17
14
|
export var gridDensityFactorSelector = createSelector(gridDensitySelector, function (density) {
|
|
18
15
|
return density.factor;
|
|
19
|
-
});
|
|
20
|
-
export var gridDensityTotalHeaderHeightSelector = createSelector(gridDensitySelector, function (density) {
|
|
21
|
-
return density.headerHeight * (1 + density.headerGroupingMaxDepth);
|
|
22
16
|
});
|
|
@@ -1,25 +1,20 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
-
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
|
3
2
|
import * as React from 'react';
|
|
4
3
|
import { GridDensityTypes } from '../../../models/gridDensity';
|
|
5
4
|
import { useGridLogger } from '../../utils/useGridLogger';
|
|
6
5
|
import { useGridApiMethod } from '../../utils/useGridApiMethod';
|
|
7
6
|
import { gridDensitySelector } from './densitySelector';
|
|
8
7
|
import { isDeepEqual } from '../../../utils/utils';
|
|
9
|
-
import { useGridSelector } from '../../utils/useGridSelector';
|
|
10
|
-
import { gridVisibleColumnDefinitionsSelector } from '../columns';
|
|
11
|
-
import { unwrapGroupingColumnModel } from '../columnGrouping/useGridColumnGrouping';
|
|
12
8
|
export var COMPACT_DENSITY_FACTOR = 0.7;
|
|
13
9
|
export var COMFORTABLE_DENSITY_FACTOR = 1.3; // TODO v6: revise keeping headerHeight and rowHeight in state
|
|
14
10
|
|
|
15
|
-
var getUpdatedDensityState = function getUpdatedDensityState(newDensity, newHeaderHeight, newRowHeight
|
|
11
|
+
var getUpdatedDensityState = function getUpdatedDensityState(newDensity, newHeaderHeight, newRowHeight) {
|
|
16
12
|
switch (newDensity) {
|
|
17
13
|
case GridDensityTypes.Compact:
|
|
18
14
|
return {
|
|
19
15
|
value: newDensity,
|
|
20
16
|
headerHeight: Math.floor(newHeaderHeight * COMPACT_DENSITY_FACTOR),
|
|
21
17
|
rowHeight: Math.floor(newRowHeight * COMPACT_DENSITY_FACTOR),
|
|
22
|
-
headerGroupingMaxDepth: newMaxDepth,
|
|
23
18
|
factor: COMPACT_DENSITY_FACTOR
|
|
24
19
|
};
|
|
25
20
|
|
|
@@ -28,7 +23,6 @@ var getUpdatedDensityState = function getUpdatedDensityState(newDensity, newHead
|
|
|
28
23
|
value: newDensity,
|
|
29
24
|
headerHeight: Math.floor(newHeaderHeight * COMFORTABLE_DENSITY_FACTOR),
|
|
30
25
|
rowHeight: Math.floor(newRowHeight * COMFORTABLE_DENSITY_FACTOR),
|
|
31
|
-
headerGroupingMaxDepth: newMaxDepth,
|
|
32
26
|
factor: COMFORTABLE_DENSITY_FACTOR
|
|
33
27
|
};
|
|
34
28
|
|
|
@@ -37,57 +31,25 @@ var getUpdatedDensityState = function getUpdatedDensityState(newDensity, newHead
|
|
|
37
31
|
value: newDensity,
|
|
38
32
|
headerHeight: newHeaderHeight,
|
|
39
33
|
rowHeight: newRowHeight,
|
|
40
|
-
headerGroupingMaxDepth: newMaxDepth,
|
|
41
34
|
factor: 1
|
|
42
35
|
};
|
|
43
36
|
}
|
|
44
37
|
};
|
|
45
38
|
|
|
46
39
|
export var densityStateInitializer = function densityStateInitializer(state, props) {
|
|
47
|
-
// TODO: think about improving this initialization. Could it be done in the useColumn initializer?
|
|
48
|
-
// TODO: manage to remove ts-ignore
|
|
49
|
-
var maxDepth;
|
|
50
|
-
|
|
51
|
-
if (props.columnGroupingModel == null || Object.keys(props.columnGroupingModel).length === 0) {
|
|
52
|
-
maxDepth = 0;
|
|
53
|
-
} else {
|
|
54
|
-
var unwrappedGroupingColumnModel = unwrapGroupingColumnModel(props.columnGroupingModel);
|
|
55
|
-
var columnsState = state.columns;
|
|
56
|
-
var visibleColumns = columnsState.all.filter(function (field) {
|
|
57
|
-
return columnsState.columnVisibilityModel[field] !== false;
|
|
58
|
-
});
|
|
59
|
-
|
|
60
|
-
if (visibleColumns.length === 0) {
|
|
61
|
-
maxDepth = 0;
|
|
62
|
-
} else {
|
|
63
|
-
maxDepth = Math.max.apply(Math, _toConsumableArray(visibleColumns.map(function (field) {
|
|
64
|
-
var _unwrappedGroupingCol, _unwrappedGroupingCol2;
|
|
65
|
-
|
|
66
|
-
return (_unwrappedGroupingCol = (_unwrappedGroupingCol2 = unwrappedGroupingColumnModel[field]) == null ? void 0 : _unwrappedGroupingCol2.length) != null ? _unwrappedGroupingCol : 0;
|
|
67
|
-
})));
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
|
|
71
40
|
return _extends({}, state, {
|
|
72
|
-
density: getUpdatedDensityState(props.density, props.headerHeight, props.rowHeight
|
|
41
|
+
density: getUpdatedDensityState(props.density, props.headerHeight, props.rowHeight)
|
|
73
42
|
});
|
|
74
43
|
};
|
|
75
44
|
export var useGridDensity = function useGridDensity(apiRef, props) {
|
|
76
|
-
var visibleColumns = useGridSelector(apiRef, gridVisibleColumnDefinitionsSelector);
|
|
77
|
-
var maxDepth = visibleColumns.length > 0 ? Math.max.apply(Math, _toConsumableArray(visibleColumns.map(function (column) {
|
|
78
|
-
var _column$groupPath$len, _column$groupPath;
|
|
79
|
-
|
|
80
|
-
return (_column$groupPath$len = (_column$groupPath = column.groupPath) == null ? void 0 : _column$groupPath.length) != null ? _column$groupPath$len : 0;
|
|
81
|
-
}))) : 0;
|
|
82
45
|
var logger = useGridLogger(apiRef, 'useDensity');
|
|
83
46
|
var setDensity = React.useCallback(function (newDensity) {
|
|
84
47
|
var newHeaderHeight = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : props.headerHeight;
|
|
85
48
|
var newRowHeight = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : props.rowHeight;
|
|
86
|
-
var newMaxDepth = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : maxDepth;
|
|
87
49
|
logger.debug("Set grid density to ".concat(newDensity));
|
|
88
50
|
apiRef.current.setState(function (state) {
|
|
89
51
|
var currentDensityState = gridDensitySelector(state);
|
|
90
|
-
var newDensityState = getUpdatedDensityState(newDensity, newHeaderHeight, newRowHeight
|
|
52
|
+
var newDensityState = getUpdatedDensityState(newDensity, newHeaderHeight, newRowHeight);
|
|
91
53
|
|
|
92
54
|
if (isDeepEqual(currentDensityState, newDensityState)) {
|
|
93
55
|
return state;
|
|
@@ -98,10 +60,10 @@ export var useGridDensity = function useGridDensity(apiRef, props) {
|
|
|
98
60
|
});
|
|
99
61
|
});
|
|
100
62
|
apiRef.current.forceUpdate();
|
|
101
|
-
}, [logger, apiRef, props.headerHeight, props.rowHeight
|
|
63
|
+
}, [logger, apiRef, props.headerHeight, props.rowHeight]);
|
|
102
64
|
React.useEffect(function () {
|
|
103
|
-
apiRef.current.setDensity(props.density, props.headerHeight, props.rowHeight
|
|
104
|
-
}, [apiRef, props.density, props.rowHeight, props.headerHeight
|
|
65
|
+
apiRef.current.setDensity(props.density, props.headerHeight, props.rowHeight);
|
|
66
|
+
}, [apiRef, props.density, props.rowHeight, props.headerHeight]);
|
|
105
67
|
var densityApi = {
|
|
106
68
|
setDensity: setDensity
|
|
107
69
|
};
|
|
@@ -4,11 +4,12 @@ import { useGridApiEventHandler, useGridApiOptionHandler } from '../../utils/use
|
|
|
4
4
|
import { useGridApiMethod } from '../../utils/useGridApiMethod';
|
|
5
5
|
import { useGridLogger } from '../../utils/useGridLogger';
|
|
6
6
|
import { gridColumnsTotalWidthSelector } from '../columns';
|
|
7
|
-
import {
|
|
7
|
+
import { gridDensityRowHeightSelector } from '../density';
|
|
8
8
|
import { useGridSelector } from '../../utils';
|
|
9
9
|
import { getVisibleRows } from '../../utils/useGridVisibleRows';
|
|
10
10
|
import { gridRowsMetaSelector } from '../rows/gridRowsMetaSelector';
|
|
11
11
|
import { calculatePinnedRowsHeight } from '../rows/gridRowsUtils';
|
|
12
|
+
import { gridTotalHeaderHeightSelector } from '../columnGrouping/gridColumnGroupsSelector';
|
|
12
13
|
var isTestEnvironment = process.env.NODE_ENV === 'test';
|
|
13
14
|
|
|
14
15
|
var hasScroll = function hasScroll(_ref) {
|
|
@@ -41,7 +42,7 @@ export function useGridDimensions(apiRef, props) {
|
|
|
41
42
|
var rootDimensionsRef = React.useRef(null);
|
|
42
43
|
var fullDimensionsRef = React.useRef(null);
|
|
43
44
|
var rowsMeta = useGridSelector(apiRef, gridRowsMetaSelector);
|
|
44
|
-
var totalHeaderHeight = useGridSelector(apiRef,
|
|
45
|
+
var totalHeaderHeight = useGridSelector(apiRef, gridTotalHeaderHeightSelector);
|
|
45
46
|
var updateGridDimensionsRef = React.useCallback(function () {
|
|
46
47
|
var _apiRef$current$rootE;
|
|
47
48
|
|
package/legacy/hooks/features/{editRows/gridEditRowsSelector.js → editing/gridEditingSelectors.js}
RENAMED
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './gridEditingSelectors';
|
package/legacy/hooks/features/{editRows/useGridCellEditing.new.js → editing/useGridCellEditing.js}
RENAMED
|
@@ -12,7 +12,7 @@ import { unstable_useEventCallback as useEventCallback } from '@mui/utils';
|
|
|
12
12
|
import { useGridApiEventHandler, useGridApiOptionHandler, GridSignature } from '../../utils/useGridApiEventHandler';
|
|
13
13
|
import { GridEditModes, GridCellModes } from '../../../models/gridEditRowModel';
|
|
14
14
|
import { useGridApiMethod } from '../../utils/useGridApiMethod';
|
|
15
|
-
import { gridEditRowsStateSelector } from './
|
|
15
|
+
import { gridEditRowsStateSelector } from './gridEditingSelectors';
|
|
16
16
|
import { isPrintableKey } from '../../../utils/keyboardUtils';
|
|
17
17
|
import { buildWarning } from '../../../utils/warning';
|
|
18
18
|
import { gridRowsDataRowIdToIdLookupSelector } from '../rows/gridRowsSelector';
|
|
@@ -129,7 +129,8 @@ export var useGridCellEditing = function useGridCellEditing(apiRef, props) {
|
|
|
129
129
|
|
|
130
130
|
if (_reason) {
|
|
131
131
|
var _newParams = _extends({}, params, {
|
|
132
|
-
reason: _reason
|
|
132
|
+
reason: _reason,
|
|
133
|
+
key: event.key
|
|
133
134
|
});
|
|
134
135
|
|
|
135
136
|
apiRef.current.publishEvent('cellEditStart', _newParams, event);
|
|
@@ -139,13 +140,20 @@ export var useGridCellEditing = function useGridCellEditing(apiRef, props) {
|
|
|
139
140
|
var handleCellEditStart = React.useCallback(function (params) {
|
|
140
141
|
var id = params.id,
|
|
141
142
|
field = params.field,
|
|
142
|
-
reason = params.reason
|
|
143
|
+
reason = params.reason,
|
|
144
|
+
key = params.key;
|
|
143
145
|
var startCellEditModeParams = {
|
|
144
146
|
id: id,
|
|
145
147
|
field: field
|
|
146
148
|
};
|
|
147
149
|
|
|
148
|
-
if (reason === GridCellEditStartReasons.
|
|
150
|
+
if (reason === GridCellEditStartReasons.printableKeyDown) {
|
|
151
|
+
if (React.version.startsWith('18')) {
|
|
152
|
+
startCellEditModeParams.initialValue = key; // In React 17, cleaning the input is enough
|
|
153
|
+
} else {
|
|
154
|
+
startCellEditModeParams.deleteValue = true;
|
|
155
|
+
}
|
|
156
|
+
} else if (reason === GridCellEditStartReasons.deleteKeyDown) {
|
|
149
157
|
startCellEditModeParams.deleteValue = true;
|
|
150
158
|
}
|
|
151
159
|
|
|
@@ -268,9 +276,16 @@ export var useGridCellEditing = function useGridCellEditing(apiRef, props) {
|
|
|
268
276
|
var updateStateToStartCellEditMode = useEventCallback(function (params) {
|
|
269
277
|
var id = params.id,
|
|
270
278
|
field = params.field,
|
|
271
|
-
deleteValue = params.deleteValue
|
|
279
|
+
deleteValue = params.deleteValue,
|
|
280
|
+
initialValue = params.initialValue;
|
|
281
|
+
var newValue = apiRef.current.getCellValue(id, field);
|
|
282
|
+
|
|
283
|
+
if (deleteValue || initialValue) {
|
|
284
|
+
newValue = deleteValue ? '' : initialValue;
|
|
285
|
+
}
|
|
286
|
+
|
|
272
287
|
var newProps = {
|
|
273
|
-
value:
|
|
288
|
+
value: newValue,
|
|
274
289
|
error: false,
|
|
275
290
|
isProcessingProps: false
|
|
276
291
|
};
|
|
@@ -4,10 +4,10 @@ import _extends from "@babel/runtime/helpers/esm/extends";
|
|
|
4
4
|
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
5
5
|
import * as React from 'react';
|
|
6
6
|
import { useGridApiMethod } from '../../utils/useGridApiMethod';
|
|
7
|
-
import { useGridCellEditing } from './useGridCellEditing
|
|
7
|
+
import { useGridCellEditing } from './useGridCellEditing';
|
|
8
8
|
import { GridCellModes, GridEditModes } from '../../../models/gridEditRowModel';
|
|
9
|
-
import { useGridRowEditing } from './useGridRowEditing
|
|
10
|
-
import { gridEditRowsStateSelector } from './
|
|
9
|
+
import { useGridRowEditing } from './useGridRowEditing';
|
|
10
|
+
import { gridEditRowsStateSelector } from './gridEditingSelectors';
|
|
11
11
|
import { isAutoGeneratedRow } from '../rows/gridRowsUtils';
|
|
12
12
|
export var editingStateInitializer = function editingStateInitializer(state) {
|
|
13
13
|
return _extends({}, state, {
|
package/legacy/hooks/features/{editRows/useGridRowEditing.new.js → editing/useGridRowEditing.js}
RENAMED
|
@@ -10,7 +10,7 @@ import { unstable_useEventCallback as useEventCallback } from '@mui/utils';
|
|
|
10
10
|
import { useGridApiEventHandler, useGridApiOptionHandler, GridSignature } from '../../utils/useGridApiEventHandler';
|
|
11
11
|
import { GridEditModes, GridRowModes } from '../../../models/gridEditRowModel';
|
|
12
12
|
import { useGridApiMethod } from '../../utils/useGridApiMethod';
|
|
13
|
-
import { gridEditRowsStateSelector } from './
|
|
13
|
+
import { gridEditRowsStateSelector } from './gridEditingSelectors';
|
|
14
14
|
import { isPrintableKey } from '../../../utils/keyboardUtils';
|
|
15
15
|
import { gridColumnFieldsSelector } from '../columns/gridColumnsSelector';
|
|
16
16
|
import { buildWarning } from '../../../utils/warning';
|
|
@@ -189,6 +189,7 @@ export var useGridRowEditing = function useGridRowEditing(apiRef, props) {
|
|
|
189
189
|
|
|
190
190
|
var _newParams = _extends({}, _rowParams, {
|
|
191
191
|
field: params.field,
|
|
192
|
+
key: event.key,
|
|
192
193
|
reason: _reason
|
|
193
194
|
});
|
|
194
195
|
|
|
@@ -199,13 +200,20 @@ export var useGridRowEditing = function useGridRowEditing(apiRef, props) {
|
|
|
199
200
|
var handleRowEditStart = React.useCallback(function (params) {
|
|
200
201
|
var id = params.id,
|
|
201
202
|
field = params.field,
|
|
202
|
-
reason = params.reason
|
|
203
|
+
reason = params.reason,
|
|
204
|
+
key = params.key;
|
|
203
205
|
var startRowEditModeParams = {
|
|
204
206
|
id: id,
|
|
205
207
|
fieldToFocus: field
|
|
206
208
|
};
|
|
207
209
|
|
|
208
|
-
if (reason === GridRowEditStartReasons.
|
|
210
|
+
if (reason === GridRowEditStartReasons.printableKeyDown) {
|
|
211
|
+
if (React.version.startsWith('18')) {
|
|
212
|
+
startRowEditModeParams.initialValue = key; // In React 17, cleaning the input is enough
|
|
213
|
+
} else {
|
|
214
|
+
startRowEditModeParams.deleteValue = !!field;
|
|
215
|
+
}
|
|
216
|
+
} else if (reason === GridRowEditStartReasons.deleteKeyDown) {
|
|
209
217
|
startRowEditModeParams.deleteValue = !!field;
|
|
210
218
|
}
|
|
211
219
|
|
|
@@ -338,7 +346,8 @@ export var useGridRowEditing = function useGridRowEditing(apiRef, props) {
|
|
|
338
346
|
var updateStateToStartRowEditMode = useEventCallback(function (params) {
|
|
339
347
|
var id = params.id,
|
|
340
348
|
fieldToFocus = params.fieldToFocus,
|
|
341
|
-
deleteValue = params.deleteValue
|
|
349
|
+
deleteValue = params.deleteValue,
|
|
350
|
+
initialValue = params.initialValue;
|
|
342
351
|
var columnFields = gridColumnFieldsSelector(apiRef);
|
|
343
352
|
var newProps = columnFields.reduce(function (acc, field) {
|
|
344
353
|
var cellParams = apiRef.current.getCellParams(id, field);
|
|
@@ -347,9 +356,14 @@ export var useGridRowEditing = function useGridRowEditing(apiRef, props) {
|
|
|
347
356
|
return acc;
|
|
348
357
|
}
|
|
349
358
|
|
|
350
|
-
var
|
|
359
|
+
var newValue = apiRef.current.getCellValue(id, field);
|
|
360
|
+
|
|
361
|
+
if (fieldToFocus === field && (deleteValue || initialValue)) {
|
|
362
|
+
newValue = deleteValue ? '' : initialValue;
|
|
363
|
+
}
|
|
364
|
+
|
|
351
365
|
acc[field] = {
|
|
352
|
-
value:
|
|
366
|
+
value: newValue,
|
|
353
367
|
error: false,
|
|
354
368
|
isProcessingProps: false
|
|
355
369
|
};
|
|
@@ -7,7 +7,7 @@ import { ownerDocument } from '@mui/material/utils';
|
|
|
7
7
|
import { useGridLogger } from '../../utils/useGridLogger';
|
|
8
8
|
import { gridVisibleRowCountSelector } from '../filter/gridFilterSelector';
|
|
9
9
|
import { gridColumnDefinitionsSelector, gridColumnVisibilityModelSelector } from '../columns/gridColumnsSelector';
|
|
10
|
-
import {
|
|
10
|
+
import { gridTotalHeaderHeightSelector } from '../columnGrouping/gridColumnGroupsSelector';
|
|
11
11
|
import { gridClasses } from '../../../constants/gridClasses';
|
|
12
12
|
import { useGridApiMethod } from '../../utils/useGridApiMethod';
|
|
13
13
|
import { gridRowsMetaSelector } from '../rows/gridRowsMetaSelector';
|
|
@@ -90,7 +90,7 @@ export var useGridPrintExport = function useGridPrintExport(apiRef, props) {
|
|
|
90
90
|
return;
|
|
91
91
|
}
|
|
92
92
|
|
|
93
|
-
var totalHeaderHeight =
|
|
93
|
+
var totalHeaderHeight = gridTotalHeaderHeightSelector(apiRef);
|
|
94
94
|
var rowsMeta = gridRowsMetaSelector(apiRef.current.state);
|
|
95
95
|
var gridRootElement = apiRef.current.rootElementRef.current;
|
|
96
96
|
var gridClone = gridRootElement.cloneNode(true);
|
|
@@ -7,6 +7,10 @@ export var gridFocusCellSelector = createSelector(gridFocusStateSelector, functi
|
|
|
7
7
|
});
|
|
8
8
|
export var gridFocusColumnHeaderSelector = createSelector(gridFocusStateSelector, function (focusState) {
|
|
9
9
|
return focusState.columnHeader;
|
|
10
|
+
}); // eslint-disable-next-line @typescript-eslint/naming-convention
|
|
11
|
+
|
|
12
|
+
export var unstable_gridFocusColumnGroupHeaderSelector = createSelector(gridFocusStateSelector, function (focusState) {
|
|
13
|
+
return focusState.columnGroupHeader;
|
|
10
14
|
});
|
|
11
15
|
export var gridTabIndexStateSelector = function gridTabIndexStateSelector(state) {
|
|
12
16
|
return state.tabIndex;
|
|
@@ -16,4 +20,8 @@ export var gridTabIndexCellSelector = createSelector(gridTabIndexStateSelector,
|
|
|
16
20
|
});
|
|
17
21
|
export var gridTabIndexColumnHeaderSelector = createSelector(gridTabIndexStateSelector, function (state) {
|
|
18
22
|
return state.columnHeader;
|
|
23
|
+
}); // eslint-disable-next-line @typescript-eslint/naming-convention
|
|
24
|
+
|
|
25
|
+
export var unstable_gridTabIndexColumnGroupHeaderSelector = createSelector(gridTabIndexStateSelector, function (state) {
|
|
26
|
+
return state.columnGroupHeader;
|
|
19
27
|
});
|