@mui/x-data-grid 7.0.0-beta.3 → 7.0.0-beta.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 +226 -15
- package/colDef/gridActionsColDef.js +1 -0
- package/colDef/gridBooleanColDef.js +1 -0
- package/colDef/gridCheckboxSelectionColDef.js +1 -0
- package/components/GridScrollbarFillerCell.js +6 -21
- package/components/cell/GridCell.js +10 -12
- package/components/columnSelection/GridCellCheckboxRenderer.js +1 -2
- package/components/containers/GridRootStyles.js +50 -19
- package/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +8 -2
- package/constants/gridClasses.d.ts +24 -8
- package/constants/gridClasses.js +1 -1
- package/hooks/features/clipboard/useGridClipboard.js +1 -1
- package/hooks/features/editing/useGridCellEditing.js +3 -4
- package/hooks/features/editing/useGridRowEditing.js +3 -4
- package/hooks/features/sorting/useGridSorting.js +1 -2
- package/index.js +1 -1
- package/internals/index.d.ts +1 -1
- package/internals/index.js +1 -1
- package/models/colDef/gridColDef.d.ts +6 -0
- package/modern/colDef/gridActionsColDef.js +1 -0
- package/modern/colDef/gridBooleanColDef.js +1 -0
- package/modern/colDef/gridCheckboxSelectionColDef.js +1 -0
- package/modern/components/GridScrollbarFillerCell.js +6 -21
- package/modern/components/cell/GridCell.js +10 -12
- package/modern/components/columnSelection/GridCellCheckboxRenderer.js +1 -2
- package/modern/components/containers/GridRootStyles.js +50 -19
- package/modern/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +8 -2
- package/modern/constants/gridClasses.js +1 -1
- package/modern/hooks/features/clipboard/useGridClipboard.js +1 -1
- package/modern/hooks/features/editing/useGridCellEditing.js +3 -4
- package/modern/hooks/features/editing/useGridRowEditing.js +3 -4
- package/modern/hooks/features/sorting/useGridSorting.js +1 -2
- package/modern/index.js +1 -1
- package/modern/internals/index.js +1 -1
- package/modern/utils/keyboardUtils.js +20 -11
- package/node/colDef/gridActionsColDef.js +1 -0
- package/node/colDef/gridBooleanColDef.js +1 -0
- package/node/colDef/gridCheckboxSelectionColDef.js +1 -0
- package/node/components/GridScrollbarFillerCell.js +5 -20
- package/node/components/cell/GridCell.js +10 -12
- package/node/components/columnSelection/GridCellCheckboxRenderer.js +1 -2
- package/node/components/containers/GridRootStyles.js +50 -19
- package/node/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +8 -2
- package/node/constants/gridClasses.js +1 -1
- package/node/hooks/features/clipboard/useGridClipboard.js +1 -1
- package/node/hooks/features/editing/useGridCellEditing.js +2 -3
- package/node/hooks/features/editing/useGridRowEditing.js +2 -3
- package/node/hooks/features/sorting/useGridSorting.js +1 -2
- package/node/index.js +1 -1
- package/node/internals/index.js +7 -0
- package/node/utils/keyboardUtils.js +25 -20
- package/package.json +1 -1
- package/utils/keyboardUtils.d.ts +7 -6
- package/utils/keyboardUtils.js +20 -11
- package/legacy/DataGrid/DataGrid.js +0 -664
- package/legacy/DataGrid/index.js +0 -2
- package/legacy/DataGrid/useDataGridComponent.js +0 -81
- package/legacy/DataGrid/useDataGridProps.js +0 -98
- package/legacy/colDef/gridActionsColDef.js +0 -18
- package/legacy/colDef/gridBooleanColDef.js +0 -42
- package/legacy/colDef/gridBooleanOperators.js +0 -16
- package/legacy/colDef/gridCheckboxSelectionColDef.js +0 -33
- package/legacy/colDef/gridDateColDef.js +0 -62
- package/legacy/colDef/gridDateOperators.js +0 -115
- package/legacy/colDef/gridDefaultColumnTypes.js +0 -19
- package/legacy/colDef/gridNumericColDef.js +0 -19
- package/legacy/colDef/gridNumericOperators.js +0 -145
- package/legacy/colDef/gridSingleSelectColDef.js +0 -64
- package/legacy/colDef/gridSingleSelectOperators.js +0 -46
- package/legacy/colDef/gridStringColDef.js +0 -27
- package/legacy/colDef/gridStringOperators.js +0 -112
- package/legacy/colDef/index.js +0 -13
- package/legacy/components/GridApiContext.js +0 -5
- package/legacy/components/GridColumnHeaders.js +0 -94
- package/legacy/components/GridDetailPanels.js +0 -4
- package/legacy/components/GridFooter.js +0 -42
- package/legacy/components/GridHeader.js +0 -13
- package/legacy/components/GridHeaders.js +0 -53
- package/legacy/components/GridLoadingOverlay.js +0 -21
- package/legacy/components/GridNoResultsOverlay.js +0 -14
- package/legacy/components/GridNoRowsOverlay.js +0 -23
- package/legacy/components/GridPagination.js +0 -85
- package/legacy/components/GridPinnedRows.js +0 -4
- package/legacy/components/GridRow.js +0 -465
- package/legacy/components/GridRowCount.js +0 -63
- package/legacy/components/GridScrollbarFillerCell.js +0 -34
- package/legacy/components/GridSelectedRowCount.js +0 -66
- package/legacy/components/base/GridBody.js +0 -2
- package/legacy/components/base/GridFooterPlaceholder.js +0 -12
- package/legacy/components/base/GridOverlays.js +0 -122
- package/legacy/components/base/index.js +0 -3
- package/legacy/components/cell/GridActionsCell.js +0 -294
- package/legacy/components/cell/GridActionsCellItem.js +0 -69
- package/legacy/components/cell/GridBooleanCell.js +0 -121
- package/legacy/components/cell/GridCell.js +0 -350
- package/legacy/components/cell/GridEditBooleanCell.js +0 -174
- package/legacy/components/cell/GridEditDateCell.js +0 -230
- package/legacy/components/cell/GridEditInputCell.js +0 -198
- package/legacy/components/cell/GridEditSingleSelectCell.js +0 -231
- package/legacy/components/cell/GridSkeletonCell.js +0 -52
- package/legacy/components/cell/index.js +0 -9
- package/legacy/components/columnHeaders/ColumnHeaderMenuIcon.js +0 -59
- package/legacy/components/columnHeaders/GridBaseColumnHeaders.js +0 -41
- package/legacy/components/columnHeaders/GridColumnGroupHeader.js +0 -132
- package/legacy/components/columnHeaders/GridColumnHeaderFilterIconButton.js +0 -93
- package/legacy/components/columnHeaders/GridColumnHeaderItem.js +0 -212
- package/legacy/components/columnHeaders/GridColumnHeaderSeparator.js +0 -71
- package/legacy/components/columnHeaders/GridColumnHeaderSortIcon.js +0 -79
- package/legacy/components/columnHeaders/GridColumnHeaderTitle.js +0 -84
- package/legacy/components/columnHeaders/GridColumnHeadersInner.js +0 -55
- package/legacy/components/columnHeaders/GridGenericColumnHeaderItem.js +0 -107
- package/legacy/components/columnHeaders/GridIconButtonContainer.js +0 -41
- package/legacy/components/columnHeaders/index.js +0 -5
- package/legacy/components/columnSelection/GridCellCheckboxRenderer.js +0 -160
- package/legacy/components/columnSelection/GridHeaderCheckbox.js +0 -134
- package/legacy/components/columnSelection/index.js +0 -2
- package/legacy/components/columnsManagement/GridColumnsManagement.js +0 -307
- package/legacy/components/columnsManagement/index.js +0 -1
- package/legacy/components/columnsManagement/utils.js +0 -22
- package/legacy/components/containers/GridFooterContainer.js +0 -50
- package/legacy/components/containers/GridOverlay.js +0 -52
- package/legacy/components/containers/GridRoot.js +0 -79
- package/legacy/components/containers/GridRootStyles.js +0 -395
- package/legacy/components/containers/GridToolbarContainer.js +0 -59
- package/legacy/components/containers/index.js +0 -4
- package/legacy/components/index.js +0 -19
- package/legacy/components/menu/GridMenu.js +0 -132
- package/legacy/components/menu/columnMenu/GridColumnHeaderMenu.js +0 -61
- package/legacy/components/menu/columnMenu/GridColumnMenu.js +0 -81
- package/legacy/components/menu/columnMenu/GridColumnMenuContainer.js +0 -56
- package/legacy/components/menu/columnMenu/GridColumnMenuItemProps.js +0 -1
- package/legacy/components/menu/columnMenu/GridColumnMenuProps.js +0 -1
- package/legacy/components/menu/columnMenu/index.js +0 -9
- package/legacy/components/menu/columnMenu/menuItems/GridColumnMenuColumnsItem.js +0 -21
- package/legacy/components/menu/columnMenu/menuItems/GridColumnMenuFilterItem.js +0 -41
- package/legacy/components/menu/columnMenu/menuItems/GridColumnMenuHideItem.js +0 -60
- package/legacy/components/menu/columnMenu/menuItems/GridColumnMenuManageItem.js +0 -41
- package/legacy/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +0 -80
- package/legacy/components/menu/columnMenu/menuItems/index.js +0 -5
- package/legacy/components/menu/index.js +0 -2
- package/legacy/components/panel/GridColumnsPanel.js +0 -22
- package/legacy/components/panel/GridPanel.js +0 -137
- package/legacy/components/panel/GridPanelContent.js +0 -49
- package/legacy/components/panel/GridPanelFooter.js +0 -50
- package/legacy/components/panel/GridPanelHeader.js +0 -48
- package/legacy/components/panel/GridPanelWrapper.js +0 -64
- package/legacy/components/panel/GridPreferencesPanel.js +0 -26
- package/legacy/components/panel/filterPanel/GridFilterForm.js +0 -528
- package/legacy/components/panel/filterPanel/GridFilterInputBoolean.js +0 -118
- package/legacy/components/panel/filterPanel/GridFilterInputDate.js +0 -121
- package/legacy/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +0 -116
- package/legacy/components/panel/filterPanel/GridFilterInputMultipleValue.js +0 -102
- package/legacy/components/panel/filterPanel/GridFilterInputSingleSelect.js +0 -149
- package/legacy/components/panel/filterPanel/GridFilterInputValue.js +0 -106
- package/legacy/components/panel/filterPanel/GridFilterInputValueProps.js +0 -1
- package/legacy/components/panel/filterPanel/GridFilterPanel.js +0 -264
- package/legacy/components/panel/filterPanel/filterPanelUtils.js +0 -22
- package/legacy/components/panel/filterPanel/index.js +0 -9
- package/legacy/components/panel/index.js +0 -7
- package/legacy/components/reexportable.js +0 -1
- package/legacy/components/toolbar/GridToolbar.js +0 -64
- package/legacy/components/toolbar/GridToolbarColumnsButton.js +0 -68
- package/legacy/components/toolbar/GridToolbarDensitySelector.js +0 -142
- package/legacy/components/toolbar/GridToolbarExport.js +0 -80
- package/legacy/components/toolbar/GridToolbarExportContainer.js +0 -105
- package/legacy/components/toolbar/GridToolbarFilterButton.js +0 -136
- package/legacy/components/toolbar/GridToolbarQuickFilter.js +0 -164
- package/legacy/components/toolbar/index.js +0 -7
- package/legacy/components/virtualization/GridBottomContainer.js +0 -25
- package/legacy/components/virtualization/GridMainContainer.js +0 -20
- package/legacy/components/virtualization/GridTopContainer.js +0 -35
- package/legacy/components/virtualization/GridVirtualScrollbar.js +0 -129
- package/legacy/components/virtualization/GridVirtualScroller.js +0 -93
- package/legacy/components/virtualization/GridVirtualScrollerContent.js +0 -35
- package/legacy/components/virtualization/GridVirtualScrollerFiller.js +0 -70
- package/legacy/components/virtualization/GridVirtualScrollerRenderZone.js +0 -49
- package/legacy/constants/defaultGridSlotsComponents.js +0 -33
- package/legacy/constants/envConstants.js +0 -19
- package/legacy/constants/gridClasses.js +0 -5
- package/legacy/constants/gridDetailPanelToggleField.js +0 -2
- package/legacy/constants/index.js +0 -3
- package/legacy/constants/localeTextConstants.js +0 -158
- package/legacy/context/GridContextProvider.js +0 -21
- package/legacy/context/GridRootPropsContext.js +0 -6
- package/legacy/context/index.js +0 -1
- package/legacy/hooks/core/gridCoreSelector.js +0 -7
- package/legacy/hooks/core/index.js +0 -1
- package/legacy/hooks/core/pipeProcessing/gridPipeProcessingApi.js +0 -1
- package/legacy/hooks/core/pipeProcessing/index.js +0 -4
- package/legacy/hooks/core/pipeProcessing/useGridPipeProcessing.js +0 -114
- package/legacy/hooks/core/pipeProcessing/useGridRegisterPipeApplier.js +0 -26
- package/legacy/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.js +0 -26
- package/legacy/hooks/core/strategyProcessing/gridStrategyProcessingApi.js +0 -1
- package/legacy/hooks/core/strategyProcessing/index.js +0 -3
- package/legacy/hooks/core/strategyProcessing/useGridRegisterStrategyProcessor.js +0 -18
- package/legacy/hooks/core/strategyProcessing/useGridStrategyProcessing.js +0 -116
- package/legacy/hooks/core/useGridApiInitialization.js +0 -124
- package/legacy/hooks/core/useGridInitialization.js +0 -26
- package/legacy/hooks/core/useGridLocaleText.js +0 -12
- package/legacy/hooks/core/useGridLoggerFactory.js +0 -51
- package/legacy/hooks/core/useGridRefs.js +0 -13
- package/legacy/hooks/core/useGridStateInitialization.js +0 -106
- package/legacy/hooks/core/useGridTheme.js +0 -21
- package/legacy/hooks/features/clipboard/useGridClipboard.js +0 -92
- package/legacy/hooks/features/columnGrouping/gridColumnGroupsInterfaces.js +0 -1
- package/legacy/hooks/features/columnGrouping/gridColumnGroupsSelector.js +0 -24
- package/legacy/hooks/features/columnGrouping/gridColumnGroupsUtils.js +0 -92
- package/legacy/hooks/features/columnGrouping/index.js +0 -2
- package/legacy/hooks/features/columnGrouping/useGridColumnGrouping.js +0 -140
- package/legacy/hooks/features/columnHeaders/useGridColumnHeaders.js +0 -272
- package/legacy/hooks/features/columnMenu/columnMenuInterfaces.js +0 -1
- package/legacy/hooks/features/columnMenu/columnMenuSelector.js +0 -3
- package/legacy/hooks/features/columnMenu/index.js +0 -2
- package/legacy/hooks/features/columnMenu/useGridColumnMenu.js +0 -108
- package/legacy/hooks/features/columnMenu/useGridColumnMenuSlots.js +0 -71
- package/legacy/hooks/features/columns/gridColumnsInterfaces.js +0 -9
- package/legacy/hooks/features/columns/gridColumnsSelector.js +0 -174
- package/legacy/hooks/features/columns/gridColumnsUtils.js +0 -338
- package/legacy/hooks/features/columns/index.js +0 -2
- package/legacy/hooks/features/columns/useGridColumnSpanning.js +0 -105
- package/legacy/hooks/features/columns/useGridColumns.js +0 -319
- package/legacy/hooks/features/density/densitySelector.js +0 -10
- package/legacy/hooks/features/density/densityState.js +0 -1
- package/legacy/hooks/features/density/index.js +0 -2
- package/legacy/hooks/features/density/useGridDensity.js +0 -48
- package/legacy/hooks/features/dimensions/gridDimensionsApi.js +0 -1
- package/legacy/hooks/features/dimensions/gridDimensionsSelectors.js +0 -3
- package/legacy/hooks/features/dimensions/index.js +0 -2
- package/legacy/hooks/features/dimensions/useGridDimensions.js +0 -302
- package/legacy/hooks/features/editing/gridEditingSelectors.js +0 -4
- package/legacy/hooks/features/editing/useGridCellEditing.js +0 -456
- package/legacy/hooks/features/editing/useGridEditing.js +0 -145
- package/legacy/hooks/features/editing/useGridRowEditing.js +0 -567
- package/legacy/hooks/features/events/useGridEvents.js +0 -23
- package/legacy/hooks/features/export/serializers/csvSerializer.js +0 -155
- package/legacy/hooks/features/export/useGridCsvExport.js +0 -75
- package/legacy/hooks/features/export/useGridPrintExport.js +0 -313
- package/legacy/hooks/features/export/utils.js +0 -49
- package/legacy/hooks/features/filter/gridFilterSelector.js +0 -165
- package/legacy/hooks/features/filter/gridFilterState.js +0 -20
- package/legacy/hooks/features/filter/gridFilterUtils.js +0 -330
- package/legacy/hooks/features/filter/index.js +0 -2
- package/legacy/hooks/features/filter/useGridFilter.js +0 -378
- package/legacy/hooks/features/focus/gridFocusState.js +0 -1
- package/legacy/hooks/features/focus/gridFocusStateSelector.js +0 -31
- package/legacy/hooks/features/focus/index.js +0 -2
- package/legacy/hooks/features/focus/useGridFocus.js +0 -408
- package/legacy/hooks/features/headerFiltering/gridHeaderFilteringSelectors.js +0 -10
- package/legacy/hooks/features/headerFiltering/index.js +0 -1
- package/legacy/hooks/features/headerFiltering/useGridHeaderFiltering.js +0 -93
- package/legacy/hooks/features/index.js +0 -16
- package/legacy/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +0 -565
- package/legacy/hooks/features/pagination/gridPaginationInterfaces.js +0 -1
- package/legacy/hooks/features/pagination/gridPaginationSelector.js +0 -115
- package/legacy/hooks/features/pagination/gridPaginationUtils.js +0 -31
- package/legacy/hooks/features/pagination/index.js +0 -2
- package/legacy/hooks/features/pagination/useGridPagination.js +0 -175
- package/legacy/hooks/features/preferencesPanel/gridPreferencePanelSelector.js +0 -3
- package/legacy/hooks/features/preferencesPanel/gridPreferencePanelState.js +0 -1
- package/legacy/hooks/features/preferencesPanel/gridPreferencePanelsValue.js +0 -6
- package/legacy/hooks/features/preferencesPanel/index.js +0 -3
- package/legacy/hooks/features/preferencesPanel/useGridPreferencesPanel.js +0 -125
- package/legacy/hooks/features/rowSelection/gridRowSelectionSelector.js +0 -19
- package/legacy/hooks/features/rowSelection/index.js +0 -1
- package/legacy/hooks/features/rowSelection/useGridRowSelection.js +0 -419
- package/legacy/hooks/features/rowSelection/useGridRowSelectionPreProcessors.js +0 -45
- package/legacy/hooks/features/rowSelection/utils.js +0 -8
- package/legacy/hooks/features/rows/gridRowsInterfaces.js +0 -1
- package/legacy/hooks/features/rows/gridRowsMetaSelector.js +0 -3
- package/legacy/hooks/features/rows/gridRowsMetaState.js +0 -1
- package/legacy/hooks/features/rows/gridRowsSelector.js +0 -90
- package/legacy/hooks/features/rows/gridRowsUtils.js +0 -294
- package/legacy/hooks/features/rows/index.js +0 -4
- package/legacy/hooks/features/rows/useGridParamsApi.js +0 -142
- package/legacy/hooks/features/rows/useGridRows.js +0 -466
- package/legacy/hooks/features/rows/useGridRowsMeta.js +0 -236
- package/legacy/hooks/features/rows/useGridRowsPreProcessors.js +0 -82
- package/legacy/hooks/features/scroll/useGridScroll.js +0 -133
- package/legacy/hooks/features/sorting/gridSortingSelector.js +0 -56
- package/legacy/hooks/features/sorting/gridSortingState.js +0 -1
- package/legacy/hooks/features/sorting/gridSortingUtils.js +0 -154
- package/legacy/hooks/features/sorting/index.js +0 -2
- package/legacy/hooks/features/sorting/useGridSorting.js +0 -276
- package/legacy/hooks/features/statePersistence/gridStatePersistenceInterface.js +0 -1
- package/legacy/hooks/features/statePersistence/index.js +0 -1
- package/legacy/hooks/features/statePersistence/useGridStatePersistence.js +0 -25
- package/legacy/hooks/features/virtualization/gridVirtualizationSelectors.js +0 -61
- package/legacy/hooks/features/virtualization/index.js +0 -2
- package/legacy/hooks/features/virtualization/useGridVirtualScroller.js +0 -646
- package/legacy/hooks/features/virtualization/useGridVirtualization.js +0 -63
- package/legacy/hooks/index.js +0 -3
- package/legacy/hooks/utils/index.js +0 -9
- package/legacy/hooks/utils/useFirstRender.js +0 -8
- package/legacy/hooks/utils/useGridApiContext.js +0 -9
- package/legacy/hooks/utils/useGridApiEventHandler.js +0 -105
- package/legacy/hooks/utils/useGridApiMethod.js +0 -11
- package/legacy/hooks/utils/useGridApiRef.js +0 -7
- package/legacy/hooks/utils/useGridAriaAttributes.js +0 -25
- package/legacy/hooks/utils/useGridInitializeState.js +0 -8
- package/legacy/hooks/utils/useGridLogger.js +0 -10
- package/legacy/hooks/utils/useGridNativeEventListener.js +0 -32
- package/legacy/hooks/utils/useGridPrivateApiContext.js +0 -12
- package/legacy/hooks/utils/useGridRootProps.js +0 -9
- package/legacy/hooks/utils/useGridSelector.js +0 -54
- package/legacy/hooks/utils/useGridVisibleRows.js +0 -42
- package/legacy/hooks/utils/useLazyRef.js +0 -11
- package/legacy/hooks/utils/useOnMount.js +0 -7
- package/legacy/hooks/utils/useResizeObserver.js +0 -36
- package/legacy/hooks/utils/useRunOnce.js +0 -18
- package/legacy/hooks/utils/useTimeout.js +0 -38
- package/legacy/index.js +0 -38
- package/legacy/internals/index.js +0 -68
- package/legacy/internals/utils/computeSlots.js +0 -17
- package/legacy/internals/utils/index.js +0 -3
- package/legacy/internals/utils/propValidation.js +0 -21
- package/legacy/internals/utils/useProps.js +0 -32
- package/legacy/joy/icons.js +0 -432
- package/legacy/joy/index.js +0 -2
- package/legacy/joy/joySlots.js +0 -420
- package/legacy/locales/arSD.js +0 -160
- package/legacy/locales/beBY.js +0 -184
- package/legacy/locales/bgBG.js +0 -160
- package/legacy/locales/coreLocales.js +0 -62
- package/legacy/locales/csCZ.js +0 -181
- package/legacy/locales/daDK.js +0 -160
- package/legacy/locales/deDE.js +0 -160
- package/legacy/locales/elGR.js +0 -160
- package/legacy/locales/enUS.js +0 -4
- package/legacy/locales/esES.js +0 -160
- package/legacy/locales/faIR.js +0 -160
- package/legacy/locales/fiFI.js +0 -160
- package/legacy/locales/frFR.js +0 -160
- package/legacy/locales/heIL.js +0 -160
- package/legacy/locales/hrHR.js +0 -160
- package/legacy/locales/huHU.js +0 -160
- package/legacy/locales/index.js +0 -35
- package/legacy/locales/itIT.js +0 -160
- package/legacy/locales/jaJP.js +0 -160
- package/legacy/locales/koKR.js +0 -162
- package/legacy/locales/nbNO.js +0 -162
- package/legacy/locales/nlNL.js +0 -160
- package/legacy/locales/plPL.js +0 -163
- package/legacy/locales/ptBR.js +0 -160
- package/legacy/locales/ptPT.js +0 -160
- package/legacy/locales/roRO.js +0 -160
- package/legacy/locales/ruRU.js +0 -181
- package/legacy/locales/skSK.js +0 -181
- package/legacy/locales/svSE.js +0 -160
- package/legacy/locales/trTR.js +0 -161
- package/legacy/locales/ukUA.js +0 -182
- package/legacy/locales/urPK.js +0 -160
- package/legacy/locales/viVN.js +0 -160
- package/legacy/locales/zhCN.js +0 -160
- package/legacy/locales/zhHK.js +0 -160
- package/legacy/locales/zhTW.js +0 -160
- package/legacy/material/components/MUISelectOption.js +0 -14
- package/legacy/material/icons/GridColumnUnsortedIcon.js +0 -16
- package/legacy/material/icons/index.js +0 -89
- package/legacy/material/index.js +0 -69
- package/legacy/models/api/gridApiCommon.js +0 -1
- package/legacy/models/api/gridApiCommunity.js +0 -1
- package/legacy/models/api/gridCallbackDetails.js +0 -1
- package/legacy/models/api/gridColumnApi.js +0 -1
- package/legacy/models/api/gridColumnGroupingApi.js +0 -1
- package/legacy/models/api/gridColumnMenuApi.js +0 -1
- package/legacy/models/api/gridColumnSpanning.js +0 -1
- package/legacy/models/api/gridCoreApi.js +0 -1
- package/legacy/models/api/gridCsvExportApi.js +0 -1
- package/legacy/models/api/gridDensityApi.js +0 -1
- package/legacy/models/api/gridEditingApi.js +0 -1
- package/legacy/models/api/gridFilterApi.js +0 -1
- package/legacy/models/api/gridFocusApi.js +0 -1
- package/legacy/models/api/gridHeaderFilteringApi.js +0 -1
- package/legacy/models/api/gridLocaleTextApi.js +0 -1
- package/legacy/models/api/gridLoggerApi.js +0 -1
- package/legacy/models/api/gridParamsApi.js +0 -1
- package/legacy/models/api/gridPreferencesPanelApi.js +0 -1
- package/legacy/models/api/gridPrintExportApi.js +0 -1
- package/legacy/models/api/gridRowApi.js +0 -1
- package/legacy/models/api/gridRowSelectionApi.js +0 -1
- package/legacy/models/api/gridRowsMetaApi.js +0 -1
- package/legacy/models/api/gridScrollApi.js +0 -1
- package/legacy/models/api/gridSortApi.js +0 -1
- package/legacy/models/api/gridStateApi.js +0 -1
- package/legacy/models/api/gridVirtualizationApi.js +0 -1
- package/legacy/models/api/index.js +0 -16
- package/legacy/models/colDef/gridColDef.js +0 -1
- package/legacy/models/colDef/gridColType.js +0 -1
- package/legacy/models/colDef/gridColumnTypesRecord.js +0 -1
- package/legacy/models/colDef/index.js +0 -6
- package/legacy/models/controlStateItem.js +0 -1
- package/legacy/models/cursorCoordinates.js +0 -1
- package/legacy/models/elementSize.js +0 -1
- package/legacy/models/events/gridEventListener.js +0 -1
- package/legacy/models/events/gridEventLookup.js +0 -1
- package/legacy/models/events/gridEventPublisher.js +0 -1
- package/legacy/models/events/index.js +0 -3
- package/legacy/models/gridApiCaches.js +0 -1
- package/legacy/models/gridCell.js +0 -1
- package/legacy/models/gridCellClass.js +0 -1
- package/legacy/models/gridColumnGrouping.js +0 -11
- package/legacy/models/gridColumnHeaderClass.js +0 -1
- package/legacy/models/gridColumnSpanning.js +0 -1
- package/legacy/models/gridDensity.js +0 -1
- package/legacy/models/gridEditRowModel.js +0 -16
- package/legacy/models/gridExport.js +0 -1
- package/legacy/models/gridFeatureMode.js +0 -1
- package/legacy/models/gridFilterItem.js +0 -11
- package/legacy/models/gridFilterModel.js +0 -1
- package/legacy/models/gridFilterOperator.js +0 -1
- package/legacy/models/gridHeaderFilteringModel.js +0 -1
- package/legacy/models/gridIconSlotsComponent.js +0 -1
- package/legacy/models/gridPaginationProps.js +0 -1
- package/legacy/models/gridRenderContextProps.js +0 -1
- package/legacy/models/gridRowSelectionModel.js +0 -1
- package/legacy/models/gridRows.js +0 -1
- package/legacy/models/gridSlotsComponent.js +0 -1
- package/legacy/models/gridSlotsComponentsProps.js +0 -1
- package/legacy/models/gridSortModel.js +0 -1
- package/legacy/models/gridStateCommunity.js +0 -1
- package/legacy/models/index.js +0 -29
- package/legacy/models/logger.js +0 -1
- package/legacy/models/muiEvent.js +0 -1
- package/legacy/models/params/gridCellParams.js +0 -1
- package/legacy/models/params/gridColumnGroupHeaderParams.js +0 -1
- package/legacy/models/params/gridColumnHeaderParams.js +0 -1
- package/legacy/models/params/gridColumnOrderChangeParams.js +0 -1
- package/legacy/models/params/gridColumnResizeParams.js +0 -1
- package/legacy/models/params/gridEditCellParams.js +0 -27
- package/legacy/models/params/gridHeaderSelectionCheckboxParams.js +0 -1
- package/legacy/models/params/gridMenuParams.js +0 -1
- package/legacy/models/params/gridPreferencePanelParams.js +0 -1
- package/legacy/models/params/gridRowParams.js +0 -44
- package/legacy/models/params/gridRowSelectionCheckboxParams.js +0 -1
- package/legacy/models/params/gridScrollParams.js +0 -1
- package/legacy/models/params/gridValueOptionsParams.js +0 -1
- package/legacy/models/params/index.js +0 -13
- package/legacy/models/props/DataGridProps.js +0 -1
- package/legacy/themeAugmentation/index.js +0 -4
- package/legacy/themeAugmentation/overrides.js +0 -1
- package/legacy/themeAugmentation/props.js +0 -1
- package/legacy/utils/EventManager.js +0 -91
- package/legacy/utils/Store.js +0 -34
- package/legacy/utils/cleanupTracking/CleanupTracking.js +0 -1
- package/legacy/utils/cleanupTracking/FinalizationRegistryBasedCleanupTracking.js +0 -29
- package/legacy/utils/cleanupTracking/TimerBasedCleanupTracking.js +0 -52
- package/legacy/utils/createControllablePromise.js +0 -11
- package/legacy/utils/createSelector.js +0 -120
- package/legacy/utils/doesSupportPreventScroll.js +0 -13
- package/legacy/utils/domUtils.js +0 -49
- package/legacy/utils/exportAs.js +0 -40
- package/legacy/utils/fastMemo.js +0 -5
- package/legacy/utils/fastObjectShallowCompare.js +0 -32
- package/legacy/utils/getGridLocalization.js +0 -15
- package/legacy/utils/getPublicApiRef.js +0 -5
- package/legacy/utils/index.js +0 -1
- package/legacy/utils/keyboardUtils.js +0 -60
- package/legacy/utils/utils.js +0 -189
- package/legacy/utils/warning.js +0 -25
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { createSelector, createSelectorMemoized } from '../../../utils/createSelector';
|
|
2
|
-
/**
|
|
3
|
-
* @category ColumnGrouping
|
|
4
|
-
* @ignore - do not document.
|
|
5
|
-
*/
|
|
6
|
-
export var gridColumnGroupingSelector = function gridColumnGroupingSelector(state) {
|
|
7
|
-
return state.columnGrouping;
|
|
8
|
-
};
|
|
9
|
-
export var gridColumnGroupsUnwrappedModelSelector = createSelectorMemoized(gridColumnGroupingSelector, function (columnGrouping) {
|
|
10
|
-
var _columnGrouping$unwra;
|
|
11
|
-
return (_columnGrouping$unwra = columnGrouping == null ? void 0 : columnGrouping.unwrappedGroupingModel) != null ? _columnGrouping$unwra : {};
|
|
12
|
-
});
|
|
13
|
-
export var gridColumnGroupsLookupSelector = createSelectorMemoized(gridColumnGroupingSelector, function (columnGrouping) {
|
|
14
|
-
var _columnGrouping$looku;
|
|
15
|
-
return (_columnGrouping$looku = columnGrouping == null ? void 0 : columnGrouping.lookup) != null ? _columnGrouping$looku : {};
|
|
16
|
-
});
|
|
17
|
-
export var gridColumnGroupsHeaderStructureSelector = createSelectorMemoized(gridColumnGroupingSelector, function (columnGrouping) {
|
|
18
|
-
var _columnGrouping$heade;
|
|
19
|
-
return (_columnGrouping$heade = columnGrouping == null ? void 0 : columnGrouping.headerStructure) != null ? _columnGrouping$heade : [];
|
|
20
|
-
});
|
|
21
|
-
export var gridColumnGroupsHeaderMaxDepthSelector = createSelector(gridColumnGroupingSelector, function (columnGrouping) {
|
|
22
|
-
var _columnGrouping$maxDe;
|
|
23
|
-
return (_columnGrouping$maxDe = columnGrouping == null ? void 0 : columnGrouping.maxDepth) != null ? _columnGrouping$maxDe : 0;
|
|
24
|
-
});
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
|
2
|
-
import { isLeaf } from '../../../models/gridColumnGrouping';
|
|
3
|
-
import { isDeepEqual } from '../../../utils/utils';
|
|
4
|
-
// This is the recurrence function that help writing `unwrapGroupingColumnModel()`
|
|
5
|
-
var recurrentUnwrapGroupingColumnModel = function recurrentUnwrapGroupingColumnModel(columnGroupNode, parents, unwrappedGroupingModelToComplete) {
|
|
6
|
-
if (isLeaf(columnGroupNode)) {
|
|
7
|
-
if (unwrappedGroupingModelToComplete[columnGroupNode.field] !== undefined) {
|
|
8
|
-
throw new Error(["MUI X: columnGroupingModel contains duplicated field", "column field ".concat(columnGroupNode.field, " occurs two times in the grouping model:"), "- ".concat(unwrappedGroupingModelToComplete[columnGroupNode.field].join(' > ')), "- ".concat(parents.join(' > '))].join('\n'));
|
|
9
|
-
}
|
|
10
|
-
unwrappedGroupingModelToComplete[columnGroupNode.field] = parents;
|
|
11
|
-
return;
|
|
12
|
-
}
|
|
13
|
-
var groupId = columnGroupNode.groupId,
|
|
14
|
-
children = columnGroupNode.children;
|
|
15
|
-
children.forEach(function (child) {
|
|
16
|
-
recurrentUnwrapGroupingColumnModel(child, [].concat(_toConsumableArray(parents), [groupId]), unwrappedGroupingModelToComplete);
|
|
17
|
-
});
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* This is a function that provide for each column the array of its parents.
|
|
22
|
-
* Parents are ordered from the root to the leaf.
|
|
23
|
-
* @param columnGroupingModel The model such as provided in DataGrid props
|
|
24
|
-
* @returns An object `{[field]: groupIds}` where `groupIds` is the parents of the column `field`
|
|
25
|
-
*/
|
|
26
|
-
export var unwrapGroupingColumnModel = function unwrapGroupingColumnModel(columnGroupingModel) {
|
|
27
|
-
if (!columnGroupingModel) {
|
|
28
|
-
return {};
|
|
29
|
-
}
|
|
30
|
-
var unwrappedSubTree = {};
|
|
31
|
-
columnGroupingModel.forEach(function (columnGroupNode) {
|
|
32
|
-
recurrentUnwrapGroupingColumnModel(columnGroupNode, [], unwrappedSubTree);
|
|
33
|
-
});
|
|
34
|
-
return unwrappedSubTree;
|
|
35
|
-
};
|
|
36
|
-
export var getColumnGroupsHeaderStructure = function getColumnGroupsHeaderStructure(orderedColumns, unwrappedGroupingModel, pinnedFields) {
|
|
37
|
-
var getParents = function getParents(field) {
|
|
38
|
-
var _unwrappedGroupingMod;
|
|
39
|
-
return (_unwrappedGroupingMod = unwrappedGroupingModel[field]) != null ? _unwrappedGroupingMod : [];
|
|
40
|
-
};
|
|
41
|
-
var groupingHeaderStructure = [];
|
|
42
|
-
var maxDepth = Math.max.apply(Math, _toConsumableArray(orderedColumns.map(function (field) {
|
|
43
|
-
return getParents(field).length;
|
|
44
|
-
})));
|
|
45
|
-
var haveSameParents = function haveSameParents(field1, field2, depth) {
|
|
46
|
-
return isDeepEqual(getParents(field1).slice(0, depth + 1), getParents(field2).slice(0, depth + 1));
|
|
47
|
-
};
|
|
48
|
-
var haveDifferentContainers = function haveDifferentContainers(field1, field2) {
|
|
49
|
-
if (pinnedFields != null && pinnedFields.left && pinnedFields.left.includes(field1) && !pinnedFields.left.includes(field2)) {
|
|
50
|
-
return true;
|
|
51
|
-
}
|
|
52
|
-
if (pinnedFields != null && pinnedFields.right && !pinnedFields.right.includes(field1) && pinnedFields.right.includes(field2)) {
|
|
53
|
-
return true;
|
|
54
|
-
}
|
|
55
|
-
return false;
|
|
56
|
-
};
|
|
57
|
-
var _loop = function _loop(depth) {
|
|
58
|
-
var depthStructure = orderedColumns.reduce(function (structure, newField) {
|
|
59
|
-
var _getParents$depth;
|
|
60
|
-
var groupId = (_getParents$depth = getParents(newField)[depth]) != null ? _getParents$depth : null;
|
|
61
|
-
if (structure.length === 0) {
|
|
62
|
-
return [{
|
|
63
|
-
columnFields: [newField],
|
|
64
|
-
groupId: groupId
|
|
65
|
-
}];
|
|
66
|
-
}
|
|
67
|
-
var lastGroup = structure[structure.length - 1];
|
|
68
|
-
var prevField = lastGroup.columnFields[lastGroup.columnFields.length - 1];
|
|
69
|
-
var prevGroupId = lastGroup.groupId;
|
|
70
|
-
if (prevGroupId !== groupId || !haveSameParents(prevField, newField, depth) ||
|
|
71
|
-
// Fix for https://github.com/mui/mui-x/issues/7041
|
|
72
|
-
haveDifferentContainers(prevField, newField)) {
|
|
73
|
-
// It's a new group
|
|
74
|
-
return [].concat(_toConsumableArray(structure), [{
|
|
75
|
-
columnFields: [newField],
|
|
76
|
-
groupId: groupId
|
|
77
|
-
}]);
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
// It extends the previous group
|
|
81
|
-
return [].concat(_toConsumableArray(structure.slice(0, structure.length - 1)), [{
|
|
82
|
-
columnFields: [].concat(_toConsumableArray(lastGroup.columnFields), [newField]),
|
|
83
|
-
groupId: groupId
|
|
84
|
-
}]);
|
|
85
|
-
}, []);
|
|
86
|
-
groupingHeaderStructure.push(depthStructure);
|
|
87
|
-
};
|
|
88
|
-
for (var depth = 0; depth < maxDepth; depth += 1) {
|
|
89
|
-
_loop(depth);
|
|
90
|
-
}
|
|
91
|
-
return groupingHeaderStructure;
|
|
92
|
-
};
|
|
@@ -1,140 +0,0 @@
|
|
|
1
|
-
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
|
2
|
-
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
3
|
-
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
4
|
-
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
5
|
-
var _excluded = ["groupId", "children"];
|
|
6
|
-
import * as React from 'react';
|
|
7
|
-
import { isLeaf } from '../../../models/gridColumnGrouping';
|
|
8
|
-
import { gridColumnGroupsLookupSelector, gridColumnGroupsUnwrappedModelSelector } from './gridColumnGroupsSelector';
|
|
9
|
-
import { useGridApiMethod } from '../../utils/useGridApiMethod';
|
|
10
|
-
import { getColumnGroupsHeaderStructure, unwrapGroupingColumnModel } from './gridColumnGroupsUtils';
|
|
11
|
-
import { useGridApiEventHandler } from '../../utils/useGridApiEventHandler';
|
|
12
|
-
import { gridColumnFieldsSelector, gridVisibleColumnFieldsSelector } from '../columns';
|
|
13
|
-
var createGroupLookup = function createGroupLookup(columnGroupingModel) {
|
|
14
|
-
var groupLookup = {};
|
|
15
|
-
columnGroupingModel.forEach(function (node) {
|
|
16
|
-
if (isLeaf(node)) {
|
|
17
|
-
return;
|
|
18
|
-
}
|
|
19
|
-
var groupId = node.groupId,
|
|
20
|
-
children = node.children,
|
|
21
|
-
other = _objectWithoutProperties(node, _excluded);
|
|
22
|
-
if (!groupId) {
|
|
23
|
-
throw new Error('MUI X: An element of the columnGroupingModel does not have either `field` or `groupId`.');
|
|
24
|
-
}
|
|
25
|
-
if (process.env.NODE_ENV !== 'production') {
|
|
26
|
-
if (!children) {
|
|
27
|
-
console.warn("MUI X: group groupId=".concat(groupId, " has no children."));
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
var groupParam = _extends({}, other, {
|
|
31
|
-
groupId: groupId
|
|
32
|
-
});
|
|
33
|
-
var subTreeLookup = createGroupLookup(children);
|
|
34
|
-
if (subTreeLookup[groupId] !== undefined || groupLookup[groupId] !== undefined) {
|
|
35
|
-
throw new Error("MUI X: The groupId ".concat(groupId, " is used multiple times in the columnGroupingModel."));
|
|
36
|
-
}
|
|
37
|
-
groupLookup = _extends({}, groupLookup, subTreeLookup, _defineProperty({}, groupId, groupParam));
|
|
38
|
-
});
|
|
39
|
-
return _extends({}, groupLookup);
|
|
40
|
-
};
|
|
41
|
-
export var columnGroupsStateInitializer = function columnGroupsStateInitializer(state, props, apiRef) {
|
|
42
|
-
var _props$columnGrouping, _props$columnGrouping2, _apiRef$current$state;
|
|
43
|
-
if (!props.columnGroupingModel) {
|
|
44
|
-
return state;
|
|
45
|
-
}
|
|
46
|
-
var columnFields = gridColumnFieldsSelector(apiRef);
|
|
47
|
-
var visibleColumnFields = gridVisibleColumnFieldsSelector(apiRef);
|
|
48
|
-
var groupLookup = createGroupLookup((_props$columnGrouping = props.columnGroupingModel) != null ? _props$columnGrouping : []);
|
|
49
|
-
var unwrappedGroupingModel = unwrapGroupingColumnModel((_props$columnGrouping2 = props.columnGroupingModel) != null ? _props$columnGrouping2 : []);
|
|
50
|
-
var columnGroupsHeaderStructure = getColumnGroupsHeaderStructure(columnFields, unwrappedGroupingModel, (_apiRef$current$state = apiRef.current.state.pinnedColumns) != null ? _apiRef$current$state : {});
|
|
51
|
-
var maxDepth = visibleColumnFields.length === 0 ? 0 : Math.max.apply(Math, _toConsumableArray(visibleColumnFields.map(function (field) {
|
|
52
|
-
var _unwrappedGroupingMod, _unwrappedGroupingMod2;
|
|
53
|
-
return (_unwrappedGroupingMod = (_unwrappedGroupingMod2 = unwrappedGroupingModel[field]) == null ? void 0 : _unwrappedGroupingMod2.length) != null ? _unwrappedGroupingMod : 0;
|
|
54
|
-
})));
|
|
55
|
-
return _extends({}, state, {
|
|
56
|
-
columnGrouping: {
|
|
57
|
-
lookup: groupLookup,
|
|
58
|
-
unwrappedGroupingModel: unwrappedGroupingModel,
|
|
59
|
-
headerStructure: columnGroupsHeaderStructure,
|
|
60
|
-
maxDepth: maxDepth
|
|
61
|
-
}
|
|
62
|
-
});
|
|
63
|
-
};
|
|
64
|
-
|
|
65
|
-
/**
|
|
66
|
-
* @requires useGridColumns (method, event)
|
|
67
|
-
* @requires useGridParamsApi (method)
|
|
68
|
-
*/
|
|
69
|
-
export var useGridColumnGrouping = function useGridColumnGrouping(apiRef, props) {
|
|
70
|
-
/**
|
|
71
|
-
* API METHODS
|
|
72
|
-
*/
|
|
73
|
-
var getColumnGroupPath = React.useCallback(function (field) {
|
|
74
|
-
var _unwrappedGroupingMod3;
|
|
75
|
-
var unwrappedGroupingModel = gridColumnGroupsUnwrappedModelSelector(apiRef);
|
|
76
|
-
return (_unwrappedGroupingMod3 = unwrappedGroupingModel[field]) != null ? _unwrappedGroupingMod3 : [];
|
|
77
|
-
}, [apiRef]);
|
|
78
|
-
var getAllGroupDetails = React.useCallback(function () {
|
|
79
|
-
var columnGroupLookup = gridColumnGroupsLookupSelector(apiRef);
|
|
80
|
-
return columnGroupLookup;
|
|
81
|
-
}, [apiRef]);
|
|
82
|
-
var columnGroupingApi = {
|
|
83
|
-
getColumnGroupPath: getColumnGroupPath,
|
|
84
|
-
getAllGroupDetails: getAllGroupDetails
|
|
85
|
-
};
|
|
86
|
-
useGridApiMethod(apiRef, columnGroupingApi, 'public');
|
|
87
|
-
var handleColumnIndexChange = React.useCallback(function () {
|
|
88
|
-
var _props$columnGrouping3;
|
|
89
|
-
var unwrappedGroupingModel = unwrapGroupingColumnModel((_props$columnGrouping3 = props.columnGroupingModel) != null ? _props$columnGrouping3 : []);
|
|
90
|
-
apiRef.current.setState(function (state) {
|
|
91
|
-
var _state$columns$ordere, _state$columns, _state$pinnedColumns;
|
|
92
|
-
var orderedFields = (_state$columns$ordere = (_state$columns = state.columns) == null ? void 0 : _state$columns.orderedFields) != null ? _state$columns$ordere : [];
|
|
93
|
-
var pinnedColumns = (_state$pinnedColumns = state.pinnedColumns) != null ? _state$pinnedColumns : {};
|
|
94
|
-
var columnGroupsHeaderStructure = getColumnGroupsHeaderStructure(orderedFields, unwrappedGroupingModel, pinnedColumns);
|
|
95
|
-
return _extends({}, state, {
|
|
96
|
-
columnGrouping: _extends({}, state.columnGrouping, {
|
|
97
|
-
headerStructure: columnGroupsHeaderStructure
|
|
98
|
-
})
|
|
99
|
-
});
|
|
100
|
-
});
|
|
101
|
-
}, [apiRef, props.columnGroupingModel]);
|
|
102
|
-
var updateColumnGroupingState = React.useCallback(function (columnGroupingModel) {
|
|
103
|
-
var _apiRef$current$getPi, _apiRef$current$getPi2, _apiRef$current;
|
|
104
|
-
// @ts-expect-error Move this logic to `Pro` package
|
|
105
|
-
var pinnedColumns = (_apiRef$current$getPi = (_apiRef$current$getPi2 = (_apiRef$current = apiRef.current).getPinnedColumns) == null ? void 0 : _apiRef$current$getPi2.call(_apiRef$current)) != null ? _apiRef$current$getPi : {};
|
|
106
|
-
var columnFields = gridColumnFieldsSelector(apiRef);
|
|
107
|
-
var visibleColumnFields = gridVisibleColumnFieldsSelector(apiRef);
|
|
108
|
-
var groupLookup = createGroupLookup(columnGroupingModel != null ? columnGroupingModel : []);
|
|
109
|
-
var unwrappedGroupingModel = unwrapGroupingColumnModel(columnGroupingModel != null ? columnGroupingModel : []);
|
|
110
|
-
var columnGroupsHeaderStructure = getColumnGroupsHeaderStructure(columnFields, unwrappedGroupingModel, pinnedColumns);
|
|
111
|
-
var maxDepth = visibleColumnFields.length === 0 ? 0 : Math.max.apply(Math, _toConsumableArray(visibleColumnFields.map(function (field) {
|
|
112
|
-
var _unwrappedGroupingMod4, _unwrappedGroupingMod5;
|
|
113
|
-
return (_unwrappedGroupingMod4 = (_unwrappedGroupingMod5 = unwrappedGroupingModel[field]) == null ? void 0 : _unwrappedGroupingMod5.length) != null ? _unwrappedGroupingMod4 : 0;
|
|
114
|
-
})));
|
|
115
|
-
apiRef.current.setState(function (state) {
|
|
116
|
-
return _extends({}, state, {
|
|
117
|
-
columnGrouping: {
|
|
118
|
-
lookup: groupLookup,
|
|
119
|
-
unwrappedGroupingModel: unwrappedGroupingModel,
|
|
120
|
-
headerStructure: columnGroupsHeaderStructure,
|
|
121
|
-
maxDepth: maxDepth
|
|
122
|
-
}
|
|
123
|
-
});
|
|
124
|
-
});
|
|
125
|
-
}, [apiRef]);
|
|
126
|
-
useGridApiEventHandler(apiRef, 'columnIndexChange', handleColumnIndexChange);
|
|
127
|
-
useGridApiEventHandler(apiRef, 'columnsChange', function () {
|
|
128
|
-
updateColumnGroupingState(props.columnGroupingModel);
|
|
129
|
-
});
|
|
130
|
-
useGridApiEventHandler(apiRef, 'columnVisibilityModelChange', function () {
|
|
131
|
-
updateColumnGroupingState(props.columnGroupingModel);
|
|
132
|
-
});
|
|
133
|
-
|
|
134
|
-
/**
|
|
135
|
-
* EFFECTS
|
|
136
|
-
*/
|
|
137
|
-
React.useEffect(function () {
|
|
138
|
-
updateColumnGroupingState(props.columnGroupingModel);
|
|
139
|
-
}, [updateColumnGroupingState, props.columnGroupingModel]);
|
|
140
|
-
};
|
|
@@ -1,272 +0,0 @@
|
|
|
1
|
-
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
-
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
3
|
-
import * as React from 'react';
|
|
4
|
-
import { unstable_useForkRef as useForkRef } from '@mui/utils';
|
|
5
|
-
import { styled } from '@mui/material/styles';
|
|
6
|
-
import { useGridSelector } from '../../utils';
|
|
7
|
-
import { useGridRootProps } from '../../utils/useGridRootProps';
|
|
8
|
-
import { useGridPrivateApiContext } from '../../utils/useGridPrivateApiContext';
|
|
9
|
-
import { useGridApiEventHandler } from '../../utils/useGridApiEventHandler';
|
|
10
|
-
import { GridColumnHeaderItem } from '../../../components/columnHeaders/GridColumnHeaderItem';
|
|
11
|
-
import { gridDimensionsSelector } from '../dimensions';
|
|
12
|
-
import { gridOffsetsSelector, gridRenderContextColumnsSelector, gridVirtualizationColumnEnabledSelector } from '../virtualization';
|
|
13
|
-
import { GridColumnGroupHeader } from '../../../components/columnHeaders/GridColumnGroupHeader';
|
|
14
|
-
import { GridPinnedColumnPosition, gridVisiblePinnedColumnDefinitionsSelector } from '../columns';
|
|
15
|
-
import { GridScrollbarFillerCell as ScrollbarFiller } from '../../../components/GridScrollbarFillerCell';
|
|
16
|
-
import { gridClasses } from '../../../constants/gridClasses';
|
|
17
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
18
|
-
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
19
|
-
var SpaceFiller = styled('div')({
|
|
20
|
-
/* GridRootStyles conflict */
|
|
21
|
-
'&&': {
|
|
22
|
-
padding: 0,
|
|
23
|
-
width: 'calc(var(--DataGrid-width) - var(--DataGrid-columnsTotalWidth))'
|
|
24
|
-
}
|
|
25
|
-
});
|
|
26
|
-
export var GridColumnHeaderRow = styled('div', {
|
|
27
|
-
name: 'MuiDataGrid',
|
|
28
|
-
slot: 'ColumnHeaderRow',
|
|
29
|
-
overridesResolver: function overridesResolver(_, styles) {
|
|
30
|
-
return styles.columnHeaderRow;
|
|
31
|
-
}
|
|
32
|
-
})({
|
|
33
|
-
display: 'flex',
|
|
34
|
-
height: 'var(--DataGrid-headerHeight)'
|
|
35
|
-
});
|
|
36
|
-
export var useGridColumnHeaders = function useGridColumnHeaders(props) {
|
|
37
|
-
var innerRefProp = props.innerRef,
|
|
38
|
-
visibleColumns = props.visibleColumns,
|
|
39
|
-
sortColumnLookup = props.sortColumnLookup,
|
|
40
|
-
filterColumnLookup = props.filterColumnLookup,
|
|
41
|
-
columnHeaderTabIndexState = props.columnHeaderTabIndexState,
|
|
42
|
-
columnGroupHeaderTabIndexState = props.columnGroupHeaderTabIndexState,
|
|
43
|
-
columnHeaderFocus = props.columnHeaderFocus,
|
|
44
|
-
columnGroupHeaderFocus = props.columnGroupHeaderFocus,
|
|
45
|
-
headerGroupingMaxDepth = props.headerGroupingMaxDepth,
|
|
46
|
-
columnMenuState = props.columnMenuState,
|
|
47
|
-
columnVisibility = props.columnVisibility,
|
|
48
|
-
columnGroupsHeaderStructure = props.columnGroupsHeaderStructure,
|
|
49
|
-
hasOtherElementInTabSequence = props.hasOtherElementInTabSequence;
|
|
50
|
-
var _React$useState = React.useState(''),
|
|
51
|
-
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
52
|
-
dragCol = _React$useState2[0],
|
|
53
|
-
setDragCol = _React$useState2[1];
|
|
54
|
-
var _React$useState3 = React.useState(''),
|
|
55
|
-
_React$useState4 = _slicedToArray(_React$useState3, 2),
|
|
56
|
-
resizeCol = _React$useState4[0],
|
|
57
|
-
setResizeCol = _React$useState4[1];
|
|
58
|
-
var apiRef = useGridPrivateApiContext();
|
|
59
|
-
var rootProps = useGridRootProps();
|
|
60
|
-
var hasVirtualization = useGridSelector(apiRef, gridVirtualizationColumnEnabledSelector);
|
|
61
|
-
var innerRef = React.useRef(null);
|
|
62
|
-
var handleInnerRef = useForkRef(innerRefProp, innerRef);
|
|
63
|
-
var dimensions = useGridSelector(apiRef, gridDimensionsSelector);
|
|
64
|
-
var offsets = useGridSelector(apiRef, gridOffsetsSelector);
|
|
65
|
-
var renderContext = useGridSelector(apiRef, gridRenderContextColumnsSelector);
|
|
66
|
-
var visiblePinnedColumns = useGridSelector(apiRef, gridVisiblePinnedColumnDefinitionsSelector);
|
|
67
|
-
React.useEffect(function () {
|
|
68
|
-
apiRef.current.columnHeadersContainerElementRef.current.scrollLeft = 0;
|
|
69
|
-
}, [apiRef]);
|
|
70
|
-
var handleColumnResizeStart = React.useCallback(function (params) {
|
|
71
|
-
return setResizeCol(params.field);
|
|
72
|
-
}, []);
|
|
73
|
-
var handleColumnResizeStop = React.useCallback(function () {
|
|
74
|
-
return setResizeCol('');
|
|
75
|
-
}, []);
|
|
76
|
-
var handleColumnReorderStart = React.useCallback(function (params) {
|
|
77
|
-
return setDragCol(params.field);
|
|
78
|
-
}, []);
|
|
79
|
-
var handleColumnReorderStop = React.useCallback(function () {
|
|
80
|
-
return setDragCol('');
|
|
81
|
-
}, []);
|
|
82
|
-
useGridApiEventHandler(apiRef, 'columnResizeStart', handleColumnResizeStart);
|
|
83
|
-
useGridApiEventHandler(apiRef, 'columnResizeStop', handleColumnResizeStop);
|
|
84
|
-
useGridApiEventHandler(apiRef, 'columnHeaderDragStart', handleColumnReorderStart);
|
|
85
|
-
useGridApiEventHandler(apiRef, 'columnHeaderDragEnd', handleColumnReorderStop);
|
|
86
|
-
|
|
87
|
-
// Helper for computation common between getColumnHeaders and getColumnGroupHeaders
|
|
88
|
-
var getColumnsToRender = function getColumnsToRender(params) {
|
|
89
|
-
var _ref = params || {},
|
|
90
|
-
_ref$renderContext = _ref.renderContext,
|
|
91
|
-
currentContext = _ref$renderContext === void 0 ? renderContext : _ref$renderContext,
|
|
92
|
-
_ref$maxLastColumn = _ref.maxLastColumn,
|
|
93
|
-
maxLastColumn = _ref$maxLastColumn === void 0 ? visibleColumns.length : _ref$maxLastColumn;
|
|
94
|
-
var firstColumnToRender = !hasVirtualization ? 0 : currentContext.firstColumnIndex;
|
|
95
|
-
var lastColumnToRender = !hasVirtualization ? maxLastColumn : currentContext.lastColumnIndex;
|
|
96
|
-
var renderedColumns = visibleColumns.slice(firstColumnToRender, lastColumnToRender);
|
|
97
|
-
return {
|
|
98
|
-
renderedColumns: renderedColumns,
|
|
99
|
-
firstColumnToRender: firstColumnToRender,
|
|
100
|
-
lastColumnToRender: lastColumnToRender
|
|
101
|
-
};
|
|
102
|
-
};
|
|
103
|
-
var getFillers = function getFillers(params, children, leftOverflow) {
|
|
104
|
-
var borderTop = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
|
105
|
-
var isPinnedRight = (params == null ? void 0 : params.position) === GridPinnedColumnPosition.RIGHT;
|
|
106
|
-
var isNotPinned = (params == null ? void 0 : params.position) === undefined;
|
|
107
|
-
var hasScrollbarFiller = visiblePinnedColumns.right.length > 0 && isPinnedRight || visiblePinnedColumns.right.length === 0 && isNotPinned;
|
|
108
|
-
var leftOffsetWidth = offsets.left - leftOverflow;
|
|
109
|
-
return /*#__PURE__*/_jsxs(React.Fragment, {
|
|
110
|
-
children: [isNotPinned && /*#__PURE__*/_jsx("div", {
|
|
111
|
-
role: "presentation",
|
|
112
|
-
style: {
|
|
113
|
-
width: leftOffsetWidth
|
|
114
|
-
}
|
|
115
|
-
}), children, isNotPinned && /*#__PURE__*/_jsx(SpaceFiller, {
|
|
116
|
-
className: gridClasses.columnHeader
|
|
117
|
-
}), hasScrollbarFiller && /*#__PURE__*/_jsx(ScrollbarFiller, {
|
|
118
|
-
header: true,
|
|
119
|
-
borderTop: borderTop,
|
|
120
|
-
pinnedRight: isPinnedRight
|
|
121
|
-
})]
|
|
122
|
-
});
|
|
123
|
-
};
|
|
124
|
-
var getColumnHeaders = function getColumnHeaders(params) {
|
|
125
|
-
var other = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
126
|
-
var _getColumnsToRender = getColumnsToRender(params),
|
|
127
|
-
renderedColumns = _getColumnsToRender.renderedColumns,
|
|
128
|
-
firstColumnToRender = _getColumnsToRender.firstColumnToRender;
|
|
129
|
-
var columns = [];
|
|
130
|
-
for (var i = 0; i < renderedColumns.length; i += 1) {
|
|
131
|
-
var colDef = renderedColumns[i];
|
|
132
|
-
var columnIndex = firstColumnToRender + i;
|
|
133
|
-
var isFirstColumn = columnIndex === 0;
|
|
134
|
-
var tabIndex = columnHeaderTabIndexState !== null && columnHeaderTabIndexState.field === colDef.field || isFirstColumn && !hasOtherElementInTabSequence ? 0 : -1;
|
|
135
|
-
var hasFocus = columnHeaderFocus !== null && columnHeaderFocus.field === colDef.field;
|
|
136
|
-
var open = columnMenuState.open && columnMenuState.field === colDef.field;
|
|
137
|
-
columns.push( /*#__PURE__*/_jsx(GridColumnHeaderItem, _extends({}, sortColumnLookup[colDef.field], {
|
|
138
|
-
columnMenuOpen: open,
|
|
139
|
-
filterItemsCounter: filterColumnLookup[colDef.field] && filterColumnLookup[colDef.field].length,
|
|
140
|
-
headerHeight: dimensions.headerHeight,
|
|
141
|
-
isDragging: colDef.field === dragCol,
|
|
142
|
-
colDef: colDef,
|
|
143
|
-
colIndex: columnIndex,
|
|
144
|
-
isResizing: resizeCol === colDef.field,
|
|
145
|
-
hasFocus: hasFocus,
|
|
146
|
-
tabIndex: tabIndex
|
|
147
|
-
}, other), colDef.field));
|
|
148
|
-
}
|
|
149
|
-
return /*#__PURE__*/_jsx(GridColumnHeaderRow, {
|
|
150
|
-
role: "row",
|
|
151
|
-
"aria-rowindex": headerGroupingMaxDepth + 1,
|
|
152
|
-
ownerState: rootProps,
|
|
153
|
-
children: getFillers(params, columns, 0)
|
|
154
|
-
});
|
|
155
|
-
};
|
|
156
|
-
var getColumnGroupHeaders = function getColumnGroupHeaders(params) {
|
|
157
|
-
if (headerGroupingMaxDepth === 0) {
|
|
158
|
-
return null;
|
|
159
|
-
}
|
|
160
|
-
var columnsToRender = getColumnsToRender(params);
|
|
161
|
-
if (columnsToRender.renderedColumns.length === 0) {
|
|
162
|
-
return null;
|
|
163
|
-
}
|
|
164
|
-
var firstColumnToRender = columnsToRender.firstColumnToRender,
|
|
165
|
-
lastColumnToRender = columnsToRender.lastColumnToRender;
|
|
166
|
-
var columns = [];
|
|
167
|
-
var headerToRender = [];
|
|
168
|
-
var _loop = function _loop(depth) {
|
|
169
|
-
var _apiRef$current$getCo, _apiRef$current$getCo2;
|
|
170
|
-
var rowStructure = columnGroupsHeaderStructure[depth];
|
|
171
|
-
var firstColumnFieldToRender = visibleColumns[firstColumnToRender].field;
|
|
172
|
-
var firstGroupToRender = (_apiRef$current$getCo = apiRef.current.getColumnGroupPath(firstColumnFieldToRender)[depth]) != null ? _apiRef$current$getCo : null;
|
|
173
|
-
var firstGroupIndex = rowStructure.findIndex(function (_ref3) {
|
|
174
|
-
var groupId = _ref3.groupId,
|
|
175
|
-
columnFields = _ref3.columnFields;
|
|
176
|
-
return groupId === firstGroupToRender && columnFields.includes(firstColumnFieldToRender);
|
|
177
|
-
});
|
|
178
|
-
var lastColumnFieldToRender = visibleColumns[lastColumnToRender - 1].field;
|
|
179
|
-
var lastGroupToRender = (_apiRef$current$getCo2 = apiRef.current.getColumnGroupPath(lastColumnFieldToRender)[depth]) != null ? _apiRef$current$getCo2 : null;
|
|
180
|
-
var lastGroupIndex = rowStructure.findIndex(function (_ref4) {
|
|
181
|
-
var groupId = _ref4.groupId,
|
|
182
|
-
columnFields = _ref4.columnFields;
|
|
183
|
-
return groupId === lastGroupToRender && columnFields.includes(lastColumnFieldToRender);
|
|
184
|
-
});
|
|
185
|
-
var visibleColumnGroupHeader = rowStructure.slice(firstGroupIndex, lastGroupIndex + 1).map(function (groupStructure) {
|
|
186
|
-
return _extends({}, groupStructure, {
|
|
187
|
-
columnFields: groupStructure.columnFields.filter(function (field) {
|
|
188
|
-
return columnVisibility[field] !== false;
|
|
189
|
-
})
|
|
190
|
-
});
|
|
191
|
-
}).filter(function (groupStructure) {
|
|
192
|
-
return groupStructure.columnFields.length > 0;
|
|
193
|
-
});
|
|
194
|
-
var firstVisibleColumnIndex = visibleColumnGroupHeader[0].columnFields.indexOf(firstColumnFieldToRender);
|
|
195
|
-
var hiddenGroupColumns = visibleColumnGroupHeader[0].columnFields.slice(0, firstVisibleColumnIndex);
|
|
196
|
-
var leftOverflow = hiddenGroupColumns.reduce(function (acc, field) {
|
|
197
|
-
var _column$computedWidth;
|
|
198
|
-
var column = apiRef.current.getColumn(field);
|
|
199
|
-
return acc + ((_column$computedWidth = column.computedWidth) != null ? _column$computedWidth : 0);
|
|
200
|
-
}, 0);
|
|
201
|
-
var columnIndex = firstColumnToRender;
|
|
202
|
-
var elements = visibleColumnGroupHeader.map(function (_ref5) {
|
|
203
|
-
var groupId = _ref5.groupId,
|
|
204
|
-
columnFields = _ref5.columnFields;
|
|
205
|
-
var hasFocus = columnGroupHeaderFocus !== null && columnGroupHeaderFocus.depth === depth && columnFields.includes(columnGroupHeaderFocus.field);
|
|
206
|
-
var tabIndex = columnGroupHeaderTabIndexState !== null && columnGroupHeaderTabIndexState.depth === depth && columnFields.includes(columnGroupHeaderTabIndexState.field) ? 0 : -1;
|
|
207
|
-
var headerInfo = {
|
|
208
|
-
groupId: groupId,
|
|
209
|
-
width: columnFields.reduce(function (acc, field) {
|
|
210
|
-
return acc + apiRef.current.getColumn(field).computedWidth;
|
|
211
|
-
}, 0),
|
|
212
|
-
fields: columnFields,
|
|
213
|
-
colIndex: columnIndex,
|
|
214
|
-
hasFocus: hasFocus,
|
|
215
|
-
tabIndex: tabIndex
|
|
216
|
-
};
|
|
217
|
-
columnIndex += columnFields.length;
|
|
218
|
-
return headerInfo;
|
|
219
|
-
});
|
|
220
|
-
headerToRender.push({
|
|
221
|
-
leftOverflow: leftOverflow,
|
|
222
|
-
elements: elements
|
|
223
|
-
});
|
|
224
|
-
};
|
|
225
|
-
for (var depth = 0; depth < headerGroupingMaxDepth; depth += 1) {
|
|
226
|
-
_loop(depth);
|
|
227
|
-
}
|
|
228
|
-
headerToRender.forEach(function (depthInfo, depthIndex) {
|
|
229
|
-
var children = depthInfo.elements.map(function (_ref2, groupIndex) {
|
|
230
|
-
var groupId = _ref2.groupId,
|
|
231
|
-
width = _ref2.width,
|
|
232
|
-
fields = _ref2.fields,
|
|
233
|
-
colIndex = _ref2.colIndex,
|
|
234
|
-
hasFocus = _ref2.hasFocus,
|
|
235
|
-
tabIndex = _ref2.tabIndex;
|
|
236
|
-
return /*#__PURE__*/_jsx(GridColumnGroupHeader, {
|
|
237
|
-
groupId: groupId,
|
|
238
|
-
width: width,
|
|
239
|
-
fields: fields,
|
|
240
|
-
colIndex: colIndex,
|
|
241
|
-
depth: depthIndex,
|
|
242
|
-
isLastColumn: colIndex === visibleColumns.length - fields.length,
|
|
243
|
-
maxDepth: headerToRender.length,
|
|
244
|
-
height: dimensions.headerHeight,
|
|
245
|
-
hasFocus: hasFocus,
|
|
246
|
-
tabIndex: tabIndex
|
|
247
|
-
}, groupIndex);
|
|
248
|
-
});
|
|
249
|
-
columns.push( /*#__PURE__*/_jsx(GridColumnHeaderRow, {
|
|
250
|
-
role: "row",
|
|
251
|
-
"aria-rowindex": depthIndex + 1,
|
|
252
|
-
ownerState: rootProps,
|
|
253
|
-
children: getFillers(params, children, depthInfo.leftOverflow)
|
|
254
|
-
}, depthIndex));
|
|
255
|
-
});
|
|
256
|
-
return columns;
|
|
257
|
-
};
|
|
258
|
-
return {
|
|
259
|
-
renderContext: renderContext,
|
|
260
|
-
getFillers: getFillers,
|
|
261
|
-
getColumnHeaders: getColumnHeaders,
|
|
262
|
-
getColumnsToRender: getColumnsToRender,
|
|
263
|
-
getColumnGroupHeaders: getColumnGroupHeaders,
|
|
264
|
-
isDragging: !!dragCol,
|
|
265
|
-
getInnerProps: function getInnerProps() {
|
|
266
|
-
return {
|
|
267
|
-
ref: handleInnerRef,
|
|
268
|
-
role: 'rowgroup'
|
|
269
|
-
};
|
|
270
|
-
}
|
|
271
|
-
};
|
|
272
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
-
import * as React from 'react';
|
|
3
|
-
import { useGridLogger, useGridApiMethod, useGridApiEventHandler } from '../../utils';
|
|
4
|
-
import { gridColumnMenuSelector } from './columnMenuSelector';
|
|
5
|
-
import { gridColumnLookupSelector, gridColumnVisibilityModelSelector, gridColumnFieldsSelector } from '../columns/gridColumnsSelector';
|
|
6
|
-
export var columnMenuStateInitializer = function columnMenuStateInitializer(state) {
|
|
7
|
-
return _extends({}, state, {
|
|
8
|
-
columnMenu: {
|
|
9
|
-
open: false
|
|
10
|
-
}
|
|
11
|
-
});
|
|
12
|
-
};
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* @requires useGridColumnResize (event)
|
|
16
|
-
* @requires useGridInfiniteLoader (event)
|
|
17
|
-
*/
|
|
18
|
-
export var useGridColumnMenu = function useGridColumnMenu(apiRef) {
|
|
19
|
-
var logger = useGridLogger(apiRef, 'useGridColumnMenu');
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* API METHODS
|
|
23
|
-
*/
|
|
24
|
-
var showColumnMenu = React.useCallback(function (field) {
|
|
25
|
-
var columnMenuState = gridColumnMenuSelector(apiRef.current.state);
|
|
26
|
-
var newState = {
|
|
27
|
-
open: true,
|
|
28
|
-
field: field
|
|
29
|
-
};
|
|
30
|
-
var shouldUpdate = newState.open !== columnMenuState.open || newState.field !== columnMenuState.field;
|
|
31
|
-
if (shouldUpdate) {
|
|
32
|
-
apiRef.current.setState(function (state) {
|
|
33
|
-
if (state.columnMenu.open && state.columnMenu.field === field) {
|
|
34
|
-
return state;
|
|
35
|
-
}
|
|
36
|
-
logger.debug('Opening Column Menu');
|
|
37
|
-
return _extends({}, state, {
|
|
38
|
-
columnMenu: {
|
|
39
|
-
open: true,
|
|
40
|
-
field: field
|
|
41
|
-
}
|
|
42
|
-
});
|
|
43
|
-
});
|
|
44
|
-
apiRef.current.hidePreferences();
|
|
45
|
-
apiRef.current.forceUpdate();
|
|
46
|
-
}
|
|
47
|
-
}, [apiRef, logger]);
|
|
48
|
-
var hideColumnMenu = React.useCallback(function () {
|
|
49
|
-
var columnMenuState = gridColumnMenuSelector(apiRef.current.state);
|
|
50
|
-
if (columnMenuState.field) {
|
|
51
|
-
var columnLookup = gridColumnLookupSelector(apiRef);
|
|
52
|
-
var columnVisibilityModel = gridColumnVisibilityModelSelector(apiRef);
|
|
53
|
-
var orderedFields = gridColumnFieldsSelector(apiRef);
|
|
54
|
-
var fieldToFocus = columnMenuState.field;
|
|
55
|
-
|
|
56
|
-
// If the column was removed from the grid, we need to find the closest visible field
|
|
57
|
-
if (!columnLookup[fieldToFocus]) {
|
|
58
|
-
fieldToFocus = orderedFields[0];
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
// If the field to focus is hidden, we need to find the closest visible field
|
|
62
|
-
if (columnVisibilityModel[fieldToFocus] === false) {
|
|
63
|
-
// contains visible column fields + the field that was just hidden
|
|
64
|
-
var visibleOrderedFields = orderedFields.filter(function (field) {
|
|
65
|
-
if (field === fieldToFocus) {
|
|
66
|
-
return true;
|
|
67
|
-
}
|
|
68
|
-
return columnVisibilityModel[field] !== false;
|
|
69
|
-
});
|
|
70
|
-
var fieldIndex = visibleOrderedFields.indexOf(fieldToFocus);
|
|
71
|
-
fieldToFocus = visibleOrderedFields[fieldIndex + 1] || visibleOrderedFields[fieldIndex - 1];
|
|
72
|
-
}
|
|
73
|
-
apiRef.current.setColumnHeaderFocus(fieldToFocus);
|
|
74
|
-
}
|
|
75
|
-
var newState = {
|
|
76
|
-
open: false,
|
|
77
|
-
field: undefined
|
|
78
|
-
};
|
|
79
|
-
var shouldUpdate = newState.open !== columnMenuState.open || newState.field !== columnMenuState.field;
|
|
80
|
-
if (shouldUpdate) {
|
|
81
|
-
apiRef.current.setState(function (state) {
|
|
82
|
-
logger.debug('Hiding Column Menu');
|
|
83
|
-
return _extends({}, state, {
|
|
84
|
-
columnMenu: newState
|
|
85
|
-
});
|
|
86
|
-
});
|
|
87
|
-
apiRef.current.forceUpdate();
|
|
88
|
-
}
|
|
89
|
-
}, [apiRef, logger]);
|
|
90
|
-
var toggleColumnMenu = React.useCallback(function (field) {
|
|
91
|
-
logger.debug('Toggle Column Menu');
|
|
92
|
-
var columnMenu = gridColumnMenuSelector(apiRef.current.state);
|
|
93
|
-
if (!columnMenu.open || columnMenu.field !== field) {
|
|
94
|
-
showColumnMenu(field);
|
|
95
|
-
} else {
|
|
96
|
-
hideColumnMenu();
|
|
97
|
-
}
|
|
98
|
-
}, [apiRef, logger, showColumnMenu, hideColumnMenu]);
|
|
99
|
-
var columnMenuApi = {
|
|
100
|
-
showColumnMenu: showColumnMenu,
|
|
101
|
-
hideColumnMenu: hideColumnMenu,
|
|
102
|
-
toggleColumnMenu: toggleColumnMenu
|
|
103
|
-
};
|
|
104
|
-
useGridApiMethod(apiRef, columnMenuApi, 'public');
|
|
105
|
-
useGridApiEventHandler(apiRef, 'columnResizeStart', hideColumnMenu);
|
|
106
|
-
useGridApiEventHandler(apiRef, 'virtualScrollerWheel', apiRef.current.hideColumnMenu);
|
|
107
|
-
useGridApiEventHandler(apiRef, 'virtualScrollerTouchMove', apiRef.current.hideColumnMenu);
|
|
108
|
-
};
|