@mui/x-data-grid 5.7.0 → 5.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +241 -53
- package/DataGrid/DataGrid.d.ts +8 -3
- package/DataGrid/DataGrid.js +28 -5
- package/DataGrid/useDataGridComponent.js +5 -5
- package/DataGrid/useDataGridProps.d.ts +2 -1
- package/LICENSE +21 -0
- package/README.md +6 -4
- package/colDef/gridBooleanColDef.d.ts +1 -1
- package/colDef/gridBooleanOperators.d.ts +1 -1
- package/colDef/gridDateColDef.d.ts +5 -9
- package/colDef/gridDateColDef.js +2 -2
- package/colDef/gridDateOperators.d.ts +1 -1
- package/{models/colDef → colDef}/gridDefaultColumnTypes.d.ts +1 -1
- package/{models/colDef → colDef}/gridDefaultColumnTypes.js +6 -6
- package/colDef/gridNumericColDef.d.ts +1 -1
- package/colDef/gridNumericOperators.d.ts +2 -2
- package/colDef/gridStringColDef.d.ts +1 -1
- package/colDef/gridStringOperators.d.ts +1 -1
- package/colDef/index.d.ts +1 -0
- package/colDef/index.js +2 -1
- package/components/GridRow.d.ts +4 -0
- package/components/GridRow.js +55 -24
- package/components/base/GridOverlays.js +4 -3
- package/components/cell/GridActionsCell.d.ts +5 -1
- package/components/cell/GridActionsCell.js +170 -21
- package/components/cell/GridActionsCellItem.d.ts +66 -4
- package/components/cell/GridActionsCellItem.js +7 -5
- package/components/cell/GridCell.d.ts +5 -4
- package/components/cell/GridCell.js +30 -9
- package/components/cell/GridEditInputCell.js +3 -3
- package/components/cell/GridEditSingleSelectCell.js +24 -15
- package/components/columnHeaders/GridColumnHeaderFilterIconButton.d.ts +12 -0
- package/components/columnHeaders/{ColumnHeaderFilterIcon.js → GridColumnHeaderFilterIconButton.js} +22 -4
- package/components/columnHeaders/GridColumnHeaderItem.js +9 -12
- package/components/columnHeaders/GridColumnHeaders.d.ts +0 -1
- package/components/columnHeaders/GridColumnHeaders.js +1 -1
- package/components/columnHeaders/index.d.ts +1 -0
- package/components/columnHeaders/index.js +1 -0
- package/components/columnSelection/GridCellCheckboxRenderer.d.ts +3 -3
- package/components/columnSelection/GridCellCheckboxRenderer.js +22 -5
- package/components/columnSelection/GridHeaderCheckbox.d.ts +1 -1
- package/components/containers/GridRoot.js +29 -17
- package/components/containers/GridRootStyles.js +36 -1
- package/components/menu/GridMenu.js +1 -0
- package/components/menu/columnMenu/GridColumnMenu.js +1 -1
- package/components/panel/GridPanel.d.ts +2 -2
- package/components/panel/GridPanel.js +1 -0
- package/components/panel/GridPreferencesPanel.js +1 -1
- package/components/panel/filterPanel/GridFilterForm.js +14 -10
- package/components/panel/filterPanel/GridFilterInputBoolean.js +13 -8
- package/components/panel/filterPanel/GridFilterInputSingleSelect.js +22 -15
- package/components/panel/filterPanel/GridFilterInputValue.js +22 -15
- package/components/toolbar/GridToolbarDensitySelector.js +1 -1
- package/components/toolbar/GridToolbarFilterButton.d.ts +1 -1
- package/components/virtualization/GridVirtualScroller.js +2 -0
- package/components/virtualization/GridVirtualScrollerContent.js +1 -3
- package/constants/defaultGridSlotsComponents.js +4 -2
- package/constants/gridClasses.d.ts +35 -3
- package/constants/gridClasses.js +1 -1
- package/constants/gridDetailPanelToggleField.d.ts +1 -0
- package/constants/gridDetailPanelToggleField.js +2 -0
- package/constants/localeTextConstants.js +3 -1
- package/hooks/core/index.d.ts +1 -1
- package/hooks/core/pipeProcessing/gridPipeProcessingApi.d.ts +85 -0
- package/hooks/core/{preProcessing/gridPreProcessingApi.js → pipeProcessing/gridPipeProcessingApi.js} +0 -0
- package/hooks/core/pipeProcessing/index.d.ts +4 -0
- package/hooks/core/pipeProcessing/index.js +4 -0
- package/hooks/core/pipeProcessing/useGridPipeProcessing.d.ts +32 -0
- package/hooks/core/pipeProcessing/useGridPipeProcessing.js +108 -0
- package/hooks/core/pipeProcessing/useGridRegisterPipeApplier.d.ts +3 -0
- package/{modern/hooks/core/preProcessing/useGridRegisterPreProcessor.js → hooks/core/pipeProcessing/useGridRegisterPipeApplier.js} +2 -6
- package/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.d.ts +4 -0
- package/hooks/core/{preProcessing/useGridRegisterPreProcessor.js → pipeProcessing/useGridRegisterPipeProcessor.js} +2 -6
- package/hooks/core/strategyProcessing/useGridStrategyProcessing.d.ts +27 -16
- package/hooks/core/strategyProcessing/useGridStrategyProcessing.js +26 -15
- package/hooks/core/useGridInitialization.js +2 -2
- package/hooks/features/columnHeaders/useGridColumnHeaders.d.ts +0 -1
- package/hooks/features/columnHeaders/useGridColumnHeaders.js +77 -11
- package/hooks/features/columnMenu/useGridColumnMenu.js +2 -1
- package/hooks/features/columns/gridColumnsInterfaces.d.ts +3 -1
- package/hooks/features/columns/gridColumnsSelector.d.ts +6 -6
- package/hooks/features/columns/gridColumnsUtils.d.ts +22 -4
- package/hooks/features/columns/gridColumnsUtils.js +105 -20
- package/hooks/features/columns/useGridColumnSpanning.d.ts +7 -0
- package/hooks/features/columns/useGridColumnSpanning.js +109 -0
- package/hooks/features/columns/useGridColumns.d.ts +1 -1
- package/hooks/features/columns/useGridColumns.js +55 -40
- package/hooks/features/dimensions/gridDimensionsApi.d.ts +5 -0
- package/hooks/features/dimensions/useGridDimensions.js +5 -4
- package/hooks/features/editRows/useGridCellEditing.new.d.ts +1 -1
- package/hooks/features/editRows/useGridCellEditing.new.js +40 -17
- package/hooks/features/editRows/useGridEditing.new.js +7 -3
- package/hooks/features/editRows/useGridRowEditing.new.d.ts +1 -1
- package/hooks/features/editRows/useGridRowEditing.new.js +44 -21
- package/hooks/features/events/useGridEvents.d.ts +1 -1
- package/hooks/features/events/useGridEvents.js +2 -0
- package/hooks/features/filter/gridFilterSelector.d.ts +3 -9
- package/hooks/features/filter/useGridFilter.js +18 -13
- package/hooks/features/focus/useGridFocus.js +19 -9
- package/hooks/features/{keyboard → keyboardNavigation}/useGridKeyboardNavigation.d.ts +3 -5
- package/hooks/features/{keyboard → keyboardNavigation}/useGridKeyboardNavigation.js +66 -13
- package/hooks/features/pagination/gridPaginationSelector.d.ts +1 -3
- package/hooks/features/pagination/useGridPage.js +9 -4
- package/hooks/features/pagination/useGridPageSize.js +3 -3
- package/hooks/features/preferencesPanel/useGridPreferencesPanel.js +18 -5
- package/hooks/features/rows/gridRowsSelector.d.ts +2 -1
- package/hooks/features/rows/gridRowsSelector.js +1 -0
- package/hooks/features/rows/gridRowsState.d.ts +4 -0
- package/hooks/features/rows/gridRowsUtils.d.ts +8 -0
- package/hooks/features/rows/gridRowsUtils.js +11 -0
- package/hooks/features/rows/index.d.ts +1 -0
- package/hooks/features/rows/index.js +1 -1
- package/hooks/features/rows/useGridRows.d.ts +2 -2
- package/hooks/features/rows/useGridRows.js +27 -7
- package/hooks/features/rows/useGridRowsMeta.js +7 -14
- package/hooks/features/scroll/useGridScroll.d.ts +2 -0
- package/hooks/features/scroll/useGridScroll.js +27 -14
- package/hooks/features/selection/gridSelectionSelector.d.ts +1 -3
- package/hooks/features/selection/useGridSelection.d.ts +4 -2
- package/hooks/features/selection/useGridSelection.js +75 -27
- package/hooks/features/selection/useGridSelectionPreProcessors.js +2 -2
- package/hooks/features/sorting/gridSortingSelector.d.ts +1 -3
- package/hooks/features/sorting/gridSortingUtils.d.ts +1 -2
- package/hooks/features/sorting/useGridSorting.js +13 -13
- package/hooks/features/statePersistence/useGridStatePersistence.js +2 -2
- package/hooks/features/virtualization/useGridVirtualScroller.d.ts +9 -0
- package/hooks/features/virtualization/useGridVirtualScroller.js +64 -27
- package/hooks/utils/useGridRootProps.d.ts +1 -1
- package/hooks/utils/useGridVisibleRows.d.ts +2 -2
- package/index.js +1 -1
- package/internals/index.d.ts +4 -6
- package/internals/index.js +3 -3
- package/legacy/DataGrid/DataGrid.js +28 -5
- package/legacy/DataGrid/useDataGridComponent.js +5 -5
- package/legacy/colDef/gridDateColDef.js +2 -2
- package/legacy/{models/colDef → colDef}/gridDefaultColumnTypes.js +6 -6
- package/legacy/colDef/index.js +2 -1
- package/legacy/components/GridRow.js +53 -24
- package/legacy/components/base/GridOverlays.js +4 -3
- package/legacy/components/cell/GridActionsCell.js +188 -27
- package/legacy/components/cell/GridActionsCellItem.js +7 -5
- package/legacy/components/cell/GridCell.js +31 -9
- package/legacy/components/cell/GridEditInputCell.js +3 -3
- package/legacy/components/cell/GridEditSingleSelectCell.js +35 -26
- package/legacy/components/columnHeaders/{ColumnHeaderFilterIcon.js → GridColumnHeaderFilterIconButton.js} +22 -4
- package/legacy/components/columnHeaders/GridColumnHeaderItem.js +9 -12
- package/legacy/components/columnHeaders/GridColumnHeaders.js +2 -3
- package/legacy/components/columnHeaders/index.js +1 -0
- package/legacy/components/columnSelection/GridCellCheckboxRenderer.js +23 -5
- package/legacy/components/containers/GridRoot.js +34 -17
- package/legacy/components/containers/GridRootStyles.js +26 -5
- package/legacy/components/menu/GridMenu.js +1 -0
- package/legacy/components/menu/columnMenu/GridColumnMenu.js +1 -1
- package/legacy/components/panel/GridPanel.js +1 -0
- package/legacy/components/panel/GridPreferencesPanel.js +1 -1
- package/legacy/components/panel/filterPanel/GridFilterForm.js +14 -10
- package/legacy/components/panel/filterPanel/GridFilterInputBoolean.js +13 -8
- package/legacy/components/panel/filterPanel/GridFilterInputSingleSelect.js +22 -17
- package/legacy/components/panel/filterPanel/GridFilterInputValue.js +22 -17
- package/legacy/components/toolbar/GridToolbarDensitySelector.js +1 -1
- package/legacy/components/virtualization/GridVirtualScroller.js +2 -0
- package/legacy/components/virtualization/GridVirtualScrollerContent.js +1 -3
- package/legacy/constants/defaultGridSlotsComponents.js +4 -2
- package/legacy/constants/gridClasses.js +1 -1
- package/legacy/constants/gridDetailPanelToggleField.js +2 -0
- package/legacy/constants/localeTextConstants.js +3 -1
- package/legacy/hooks/core/{preProcessing/gridPreProcessingApi.js → pipeProcessing/gridPipeProcessingApi.js} +0 -0
- package/legacy/hooks/core/pipeProcessing/index.js +4 -0
- package/legacy/hooks/core/pipeProcessing/useGridPipeProcessing.js +119 -0
- package/legacy/hooks/core/{preProcessing/useGridRegisterPreProcessor.js → pipeProcessing/useGridRegisterPipeApplier.js} +2 -6
- package/legacy/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.js +27 -0
- package/legacy/hooks/core/strategyProcessing/useGridStrategyProcessing.js +26 -15
- package/legacy/hooks/core/useGridInitialization.js +2 -2
- package/legacy/hooks/features/columnHeaders/useGridColumnHeaders.js +90 -11
- package/legacy/hooks/features/columnMenu/useGridColumnMenu.js +2 -1
- package/legacy/hooks/features/columns/gridColumnsUtils.js +120 -32
- package/legacy/hooks/features/columns/useGridColumnSpanning.js +107 -0
- package/legacy/hooks/features/columns/useGridColumns.js +55 -40
- package/legacy/hooks/features/dimensions/useGridDimensions.js +5 -4
- package/legacy/hooks/features/editRows/useGridCellEditing.new.js +36 -15
- package/legacy/hooks/features/editRows/useGridEditing.new.js +7 -3
- package/legacy/hooks/features/editRows/useGridRowEditing.new.js +53 -30
- package/legacy/hooks/features/events/useGridEvents.js +2 -0
- package/legacy/hooks/features/filter/useGridFilter.js +18 -13
- package/legacy/hooks/features/focus/useGridFocus.js +19 -9
- package/legacy/hooks/features/{keyboard → keyboardNavigation}/useGridKeyboardNavigation.js +66 -12
- package/legacy/hooks/features/pagination/useGridPage.js +11 -4
- package/legacy/hooks/features/pagination/useGridPageSize.js +3 -3
- package/legacy/hooks/features/preferencesPanel/useGridPreferencesPanel.js +18 -5
- package/legacy/hooks/features/rows/gridRowsSelector.js +3 -0
- package/legacy/hooks/features/rows/gridRowsUtils.js +13 -0
- package/legacy/hooks/features/rows/index.js +1 -1
- package/legacy/hooks/features/rows/useGridRows.js +35 -9
- package/legacy/hooks/features/rows/useGridRowsMeta.js +7 -14
- package/legacy/hooks/features/scroll/useGridScroll.js +27 -14
- package/legacy/hooks/features/selection/useGridSelection.js +77 -27
- package/legacy/hooks/features/selection/useGridSelectionPreProcessors.js +2 -2
- package/legacy/hooks/features/sorting/useGridSorting.js +8 -10
- package/legacy/hooks/features/statePersistence/useGridStatePersistence.js +2 -2
- package/legacy/hooks/features/virtualization/useGridVirtualScroller.js +75 -37
- package/legacy/index.js +1 -1
- package/legacy/internals/index.js +3 -3
- package/legacy/locales/arSD.js +3 -1
- package/legacy/locales/bgBG.js +3 -1
- package/legacy/locales/csCZ.js +2 -0
- package/legacy/locales/daDK.js +37 -31
- package/legacy/locales/deDE.js +3 -1
- package/legacy/locales/elGR.js +2 -0
- package/legacy/locales/esES.js +2 -0
- package/legacy/locales/faIR.js +3 -1
- package/legacy/locales/fiFI.js +2 -0
- package/legacy/locales/frFR.js +2 -0
- package/legacy/locales/heIL.js +3 -1
- package/legacy/locales/huHU.js +122 -0
- package/legacy/locales/index.js +1 -0
- package/legacy/locales/itIT.js +2 -0
- package/legacy/locales/jaJP.js +2 -0
- package/legacy/locales/koKR.js +2 -0
- package/legacy/locales/nlNL.js +2 -0
- package/legacy/locales/plPL.js +3 -1
- package/legacy/locales/ptBR.js +3 -1
- package/legacy/locales/ruRU.js +2 -0
- package/legacy/locales/skSK.js +2 -0
- package/legacy/locales/trTR.js +3 -1
- package/legacy/locales/ukUA.js +2 -0
- package/legacy/locales/viVN.js +2 -0
- package/legacy/locales/zhCN.js +2 -0
- package/{modern/hooks/core/preProcessing/gridPreProcessingApi.js → legacy/models/api/gridColumnSpanning.js} +0 -0
- package/legacy/models/colDef/index.js +1 -2
- package/legacy/models/events/gridEvents.js +10 -3
- package/legacy/models/gridColumnSpanning.js +1 -0
- package/legacy/models/gridRows.js +1 -33
- package/legacy/models/index.js +2 -2
- package/legacy/models/params/gridPreferencePanelParams.js +1 -0
- package/legacy/models/params/index.js +2 -1
- package/locales/arSD.js +3 -1
- package/locales/bgBG.js +3 -1
- package/locales/csCZ.js +2 -0
- package/locales/daDK.js +33 -31
- package/locales/deDE.js +3 -1
- package/locales/elGR.js +2 -0
- package/locales/esES.js +2 -0
- package/locales/faIR.js +3 -1
- package/locales/fiFI.js +2 -0
- package/locales/frFR.js +2 -0
- package/locales/heIL.js +3 -1
- package/locales/huHU.d.ts +2 -0
- package/locales/huHU.js +110 -0
- package/locales/index.d.ts +1 -0
- package/locales/index.js +1 -0
- package/locales/itIT.js +2 -0
- package/locales/jaJP.js +2 -0
- package/locales/koKR.js +2 -0
- package/locales/nlNL.js +2 -0
- package/locales/plPL.js +3 -1
- package/locales/ptBR.js +3 -1
- package/locales/ruRU.js +2 -0
- package/locales/skSK.js +2 -0
- package/locales/trTR.js +3 -1
- package/locales/ukUA.js +2 -0
- package/locales/viVN.js +2 -0
- package/locales/zhCN.js +2 -0
- package/models/api/gridApiCommon.d.ts +3 -2
- package/models/api/gridColumnSpanning.d.ts +28 -0
- package/models/api/gridColumnSpanning.js +1 -0
- package/models/api/gridEditingApi.d.ts +51 -5
- package/models/api/gridLocaleTextApi.d.ts +1 -0
- package/models/api/gridParamsApi.d.ts +5 -5
- package/models/api/gridRowApi.d.ts +8 -2
- package/models/colDef/gridColDef.d.ts +38 -28
- package/models/colDef/index.d.ts +0 -1
- package/models/colDef/index.js +1 -2
- package/models/events/gridEventLookup.d.ts +30 -9
- package/models/events/gridEvents.d.ts +50 -17
- package/models/events/gridEvents.js +10 -3
- package/models/gridCell.d.ts +1 -0
- package/models/gridColumnSpanning.d.ts +12 -0
- package/models/gridColumnSpanning.js +1 -0
- package/models/gridEditRowModel.d.ts +1 -1
- package/models/gridFilterOperator.d.ts +3 -2
- package/models/gridIconSlotsComponent.d.ts +5 -0
- package/models/gridRows.d.ts +10 -18
- package/models/gridRows.js +1 -31
- package/models/gridSlotsComponent.d.ts +5 -0
- package/models/gridSlotsComponentsProps.d.ts +1 -0
- package/models/gridSortModel.d.ts +3 -4
- package/models/index.d.ts +1 -1
- package/models/index.js +2 -2
- package/models/params/gridCellParams.d.ts +25 -15
- package/models/params/gridColumnHeaderParams.d.ts +3 -2
- package/models/params/gridEditCellParams.d.ts +2 -3
- package/models/params/gridPreferencePanelParams.d.ts +3 -0
- package/models/params/gridPreferencePanelParams.js +1 -0
- package/models/params/gridRowParams.d.ts +12 -8
- package/models/params/gridValueOptionsParams.d.ts +3 -3
- package/models/params/index.d.ts +1 -0
- package/models/params/index.js +2 -1
- package/models/props/DataGridProps.d.ts +37 -17
- package/modern/DataGrid/DataGrid.js +28 -5
- package/modern/DataGrid/useDataGridComponent.js +5 -5
- package/modern/colDef/gridDateColDef.js +2 -2
- package/modern/{models/colDef → colDef}/gridDefaultColumnTypes.js +6 -6
- package/modern/colDef/index.js +2 -1
- package/modern/components/GridRow.js +53 -22
- package/modern/components/base/GridOverlays.js +4 -3
- package/modern/components/cell/GridActionsCell.js +168 -21
- package/modern/components/cell/GridActionsCellItem.js +7 -5
- package/modern/components/cell/GridCell.js +30 -9
- package/modern/components/cell/GridEditInputCell.js +3 -3
- package/modern/components/cell/GridEditSingleSelectCell.js +22 -13
- package/modern/components/columnHeaders/{ColumnHeaderFilterIcon.js → GridColumnHeaderFilterIconButton.js} +22 -4
- package/modern/components/columnHeaders/GridColumnHeaderItem.js +7 -10
- package/modern/components/columnHeaders/GridColumnHeaders.js +1 -1
- package/modern/components/columnHeaders/index.js +1 -0
- package/modern/components/columnSelection/GridCellCheckboxRenderer.js +22 -5
- package/modern/components/containers/GridRoot.js +29 -17
- package/modern/components/containers/GridRootStyles.js +36 -1
- package/modern/components/menu/GridMenu.js +1 -0
- package/modern/components/menu/columnMenu/GridColumnMenu.js +1 -1
- package/modern/components/panel/GridPanel.js +1 -0
- package/modern/components/panel/GridPreferencesPanel.js +1 -1
- package/modern/components/panel/filterPanel/GridFilterForm.js +10 -6
- package/modern/components/panel/filterPanel/GridFilterInputBoolean.js +11 -6
- package/modern/components/panel/filterPanel/GridFilterInputSingleSelect.js +20 -13
- package/modern/components/panel/filterPanel/GridFilterInputValue.js +20 -13
- package/modern/components/toolbar/GridToolbarDensitySelector.js +1 -1
- package/modern/components/virtualization/GridVirtualScroller.js +2 -0
- package/modern/components/virtualization/GridVirtualScrollerContent.js +1 -3
- package/modern/constants/defaultGridSlotsComponents.js +4 -2
- package/modern/constants/gridClasses.js +1 -1
- package/modern/constants/gridDetailPanelToggleField.js +2 -0
- package/modern/constants/localeTextConstants.js +3 -1
- package/modern/hooks/core/pipeProcessing/gridPipeProcessingApi.js +1 -0
- package/modern/hooks/core/pipeProcessing/index.js +4 -0
- package/modern/hooks/core/pipeProcessing/useGridPipeProcessing.js +108 -0
- package/modern/hooks/core/pipeProcessing/useGridRegisterPipeApplier.js +27 -0
- package/modern/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.js +27 -0
- package/modern/hooks/core/strategyProcessing/useGridStrategyProcessing.js +26 -15
- package/modern/hooks/core/useGridInitialization.js +2 -2
- package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +77 -11
- package/modern/hooks/features/columnMenu/useGridColumnMenu.js +2 -1
- package/modern/hooks/features/columns/gridColumnsUtils.js +105 -20
- package/modern/hooks/features/columns/useGridColumnSpanning.js +107 -0
- package/modern/hooks/features/columns/useGridColumns.js +55 -40
- package/modern/hooks/features/dimensions/useGridDimensions.js +5 -4
- package/modern/hooks/features/editRows/useGridCellEditing.new.js +40 -17
- package/modern/hooks/features/editRows/useGridEditing.new.js +7 -3
- package/modern/hooks/features/editRows/useGridRowEditing.new.js +44 -21
- package/modern/hooks/features/events/useGridEvents.js +2 -0
- package/modern/hooks/features/filter/useGridFilter.js +18 -13
- package/modern/hooks/features/focus/useGridFocus.js +19 -9
- package/modern/hooks/features/{keyboard → keyboardNavigation}/useGridKeyboardNavigation.js +64 -13
- package/modern/hooks/features/pagination/useGridPage.js +9 -4
- package/modern/hooks/features/pagination/useGridPageSize.js +3 -3
- package/modern/hooks/features/preferencesPanel/useGridPreferencesPanel.js +18 -5
- package/modern/hooks/features/rows/gridRowsSelector.js +1 -0
- package/modern/hooks/features/rows/gridRowsUtils.js +11 -0
- package/modern/hooks/features/rows/index.js +1 -1
- package/modern/hooks/features/rows/useGridRows.js +25 -5
- package/modern/hooks/features/rows/useGridRowsMeta.js +7 -14
- package/modern/hooks/features/scroll/useGridScroll.js +25 -10
- package/modern/hooks/features/selection/useGridSelection.js +75 -27
- package/modern/hooks/features/selection/useGridSelectionPreProcessors.js +2 -2
- package/modern/hooks/features/sorting/useGridSorting.js +13 -13
- package/modern/hooks/features/statePersistence/useGridStatePersistence.js +2 -2
- package/modern/hooks/features/virtualization/useGridVirtualScroller.js +64 -23
- package/modern/index.js +1 -1
- package/modern/internals/index.js +3 -3
- package/modern/locales/arSD.js +3 -1
- package/modern/locales/bgBG.js +3 -1
- package/modern/locales/csCZ.js +2 -0
- package/modern/locales/daDK.js +33 -31
- package/modern/locales/deDE.js +3 -1
- package/modern/locales/elGR.js +2 -0
- package/modern/locales/esES.js +2 -0
- package/modern/locales/faIR.js +3 -1
- package/modern/locales/fiFI.js +2 -0
- package/modern/locales/frFR.js +2 -0
- package/modern/locales/heIL.js +3 -1
- package/modern/locales/huHU.js +110 -0
- package/modern/locales/index.js +1 -0
- package/modern/locales/itIT.js +2 -0
- package/modern/locales/jaJP.js +2 -0
- package/modern/locales/koKR.js +2 -0
- package/modern/locales/nlNL.js +2 -0
- package/modern/locales/plPL.js +3 -1
- package/modern/locales/ptBR.js +3 -1
- package/modern/locales/ruRU.js +2 -0
- package/modern/locales/skSK.js +2 -0
- package/modern/locales/trTR.js +3 -1
- package/modern/locales/ukUA.js +2 -0
- package/modern/locales/viVN.js +2 -0
- package/modern/locales/zhCN.js +2 -0
- package/modern/models/api/gridColumnSpanning.js +1 -0
- package/modern/models/colDef/index.js +1 -2
- package/modern/models/events/gridEvents.js +10 -3
- package/modern/models/gridColumnSpanning.js +1 -0
- package/modern/models/gridRows.js +1 -31
- package/modern/models/index.js +2 -2
- package/modern/models/params/gridPreferencePanelParams.js +1 -0
- package/modern/models/params/index.js +2 -1
- package/node/DataGrid/DataGrid.js +28 -5
- package/node/DataGrid/useDataGridComponent.js +6 -6
- package/node/colDef/gridDateColDef.js +2 -2
- package/node/{models/colDef → colDef}/gridDefaultColumnTypes.js +6 -6
- package/node/colDef/index.js +13 -0
- package/node/components/GridRow.js +56 -24
- package/node/components/base/GridOverlays.js +3 -2
- package/node/components/cell/GridActionsCell.js +172 -21
- package/node/components/cell/GridActionsCellItem.js +7 -4
- package/node/components/cell/GridCell.js +30 -9
- package/node/components/cell/GridEditInputCell.js +3 -3
- package/node/components/cell/GridEditSingleSelectCell.js +25 -15
- package/node/components/columnHeaders/{ColumnHeaderFilterIcon.js → GridColumnHeaderFilterIconButton.js} +23 -5
- package/node/components/columnHeaders/GridColumnHeaderItem.js +9 -13
- package/node/components/columnHeaders/GridColumnHeaders.js +1 -1
- package/node/components/columnHeaders/index.js +13 -0
- package/node/components/columnSelection/GridCellCheckboxRenderer.js +22 -5
- package/node/components/containers/GridRoot.js +28 -17
- package/node/components/containers/GridRootStyles.js +36 -1
- package/node/components/menu/GridMenu.js +1 -0
- package/node/components/menu/columnMenu/GridColumnMenu.js +1 -1
- package/node/components/panel/GridPanel.js +1 -0
- package/node/components/panel/GridPreferencesPanel.js +1 -1
- package/node/components/panel/filterPanel/GridFilterForm.js +15 -10
- package/node/components/panel/filterPanel/GridFilterInputBoolean.js +14 -8
- package/node/components/panel/filterPanel/GridFilterInputSingleSelect.js +23 -15
- package/node/components/panel/filterPanel/GridFilterInputValue.js +23 -15
- package/node/components/toolbar/GridToolbarDensitySelector.js +1 -1
- package/node/components/virtualization/GridVirtualScroller.js +2 -0
- package/node/components/virtualization/GridVirtualScrollerContent.js +1 -3
- package/node/constants/defaultGridSlotsComponents.js +3 -1
- package/node/constants/gridClasses.js +1 -1
- package/node/constants/gridDetailPanelToggleField.js +9 -0
- package/node/constants/localeTextConstants.js +3 -1
- package/node/hooks/core/{preProcessing/gridPreProcessingApi.js → pipeProcessing/gridPipeProcessingApi.js} +0 -0
- package/node/hooks/core/pipeProcessing/index.js +57 -0
- package/node/hooks/core/pipeProcessing/useGridPipeProcessing.js +124 -0
- package/node/hooks/core/{preProcessing/useGridRegisterPreProcessor.js → pipeProcessing/useGridRegisterPipeApplier.js} +4 -7
- package/node/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.js +42 -0
- package/node/hooks/core/strategyProcessing/useGridStrategyProcessing.js +26 -15
- package/node/hooks/core/useGridInitialization.js +2 -2
- package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +81 -11
- package/node/hooks/features/columnMenu/useGridColumnMenu.js +2 -1
- package/node/hooks/features/columns/gridColumnsUtils.js +114 -25
- package/node/hooks/features/columns/useGridColumnSpanning.js +130 -0
- package/node/hooks/features/columns/useGridColumns.js +55 -40
- package/node/hooks/features/dimensions/useGridDimensions.js +5 -4
- package/node/hooks/features/editRows/useGridCellEditing.new.js +42 -17
- package/node/hooks/features/editRows/useGridEditing.new.js +6 -2
- package/node/hooks/features/editRows/useGridRowEditing.new.js +45 -21
- package/node/hooks/features/events/useGridEvents.js +2 -0
- package/node/hooks/features/filter/useGridFilter.js +18 -13
- package/node/hooks/features/focus/useGridFocus.js +19 -9
- package/node/hooks/features/{keyboard → keyboardNavigation}/useGridKeyboardNavigation.js +69 -13
- package/node/hooks/features/pagination/useGridPage.js +8 -3
- package/node/hooks/features/pagination/useGridPageSize.js +3 -3
- package/node/hooks/features/preferencesPanel/useGridPreferencesPanel.js +20 -5
- package/node/hooks/features/rows/gridRowsSelector.js +3 -1
- package/node/hooks/features/rows/gridRowsUtils.js +18 -0
- package/node/hooks/features/rows/index.js +15 -1
- package/node/hooks/features/rows/useGridRows.js +29 -9
- package/node/hooks/features/rows/useGridRowsMeta.js +7 -15
- package/node/hooks/features/scroll/useGridScroll.js +28 -14
- package/node/hooks/features/selection/useGridSelection.js +75 -26
- package/node/hooks/features/selection/useGridSelectionPreProcessors.js +2 -2
- package/node/hooks/features/sorting/useGridSorting.js +13 -13
- package/node/hooks/features/statePersistence/useGridStatePersistence.js +2 -2
- package/node/hooks/features/virtualization/useGridVirtualScroller.js +69 -27
- package/node/index.js +1 -1
- package/node/internals/index.js +12 -12
- package/node/locales/arSD.js +3 -1
- package/node/locales/bgBG.js +3 -1
- package/node/locales/csCZ.js +2 -0
- package/node/locales/daDK.js +33 -31
- package/node/locales/deDE.js +3 -1
- package/node/locales/elGR.js +2 -0
- package/node/locales/esES.js +2 -0
- package/node/locales/faIR.js +3 -1
- package/node/locales/fiFI.js +2 -0
- package/node/locales/frFR.js +2 -0
- package/node/locales/heIL.js +3 -1
- package/node/locales/huHU.js +120 -0
- package/node/locales/index.js +13 -0
- package/node/locales/itIT.js +2 -0
- package/node/locales/jaJP.js +2 -0
- package/node/locales/koKR.js +2 -0
- package/node/locales/nlNL.js +2 -0
- package/node/locales/plPL.js +3 -1
- package/node/locales/ptBR.js +3 -1
- package/node/locales/ruRU.js +2 -0
- package/node/locales/skSK.js +2 -0
- package/node/locales/trTR.js +3 -1
- package/node/locales/ukUA.js +2 -0
- package/node/locales/viVN.js +2 -0
- package/node/locales/zhCN.js +2 -0
- package/node/models/api/gridColumnSpanning.js +5 -0
- package/node/models/colDef/index.js +0 -13
- package/node/models/events/gridEvents.js +10 -3
- package/node/models/gridColumnSpanning.js +5 -0
- package/node/models/gridRows.js +1 -34
- package/node/models/index.js +13 -13
- package/node/models/params/gridPreferencePanelParams.js +5 -0
- package/node/models/params/index.js +13 -0
- package/package.json +4 -4
- package/utils/domUtils.d.ts +2 -2
- package/components/columnHeaders/ColumnHeaderFilterIcon.d.ts +0 -5
- package/hooks/core/preProcessing/gridPreProcessingApi.d.ts +0 -67
- package/hooks/core/preProcessing/index.d.ts +0 -3
- package/hooks/core/preProcessing/index.js +0 -3
- package/hooks/core/preProcessing/useGridPreProcessing.d.ts +0 -6
- package/hooks/core/preProcessing/useGridPreProcessing.js +0 -53
- package/hooks/core/preProcessing/useGridRegisterPreProcessor.d.ts +0 -7
- package/hooks/features/keyboard/useGridKeyboard.d.ts +0 -10
- package/hooks/features/keyboard/useGridKeyboard.js +0 -70
- package/legacy/hooks/core/preProcessing/index.js +0 -3
- package/legacy/hooks/core/preProcessing/useGridPreProcessing.js +0 -62
- package/legacy/hooks/features/keyboard/useGridKeyboard.js +0 -70
- package/modern/hooks/core/preProcessing/index.js +0 -3
- package/modern/hooks/core/preProcessing/useGridPreProcessing.js +0 -53
- package/modern/hooks/features/keyboard/useGridKeyboard.js +0 -70
- package/node/hooks/core/preProcessing/index.js +0 -44
- package/node/hooks/core/preProcessing/useGridPreProcessing.js +0 -72
- package/node/hooks/features/keyboard/useGridKeyboard.js +0 -91
|
@@ -6,14 +6,15 @@ import { useGridApiEventHandler } from '../../utils/useGridApiEventHandler';
|
|
|
6
6
|
import { useGridApiMethod } from '../../utils/useGridApiMethod';
|
|
7
7
|
import { useGridLogger } from '../../utils/useGridLogger';
|
|
8
8
|
import { gridRowsLookupSelector } from '../rows/gridRowsSelector';
|
|
9
|
-
import { isGridCellRoot } from '../../../utils/domUtils';
|
|
10
9
|
import { gridSelectionStateSelector, selectedGridRowsSelector, selectedIdsLookupSelector } from './gridSelectionSelector';
|
|
11
10
|
import { gridPaginatedVisibleSortedGridRowIdsSelector } from '../pagination';
|
|
11
|
+
import { gridFocusCellSelector } from '../focus/gridFocusStateSelector';
|
|
12
12
|
import { gridVisibleSortedRowIdsSelector } from '../filter/gridFilterSelector';
|
|
13
13
|
import { GRID_CHECKBOX_SELECTION_COL_DEF, GRID_ACTIONS_COLUMN_TYPE } from '../../../colDef';
|
|
14
14
|
import { GridCellModes } from '../../../models/gridEditRowModel';
|
|
15
|
-
import { isKeyboardEvent } from '../../../utils/keyboardUtils';
|
|
16
|
-
import { getVisibleRows } from '../../utils/useGridVisibleRows';
|
|
15
|
+
import { isKeyboardEvent, isNavigationKey } from '../../../utils/keyboardUtils';
|
|
16
|
+
import { getVisibleRows, useGridVisibleRows } from '../../utils/useGridVisibleRows';
|
|
17
|
+
import { GRID_DETAIL_PANEL_TOGGLE_FIELD } from '../../../constants/gridDetailPanelToggleField';
|
|
17
18
|
|
|
18
19
|
var getSelectionModelPropValue = function getSelectionModelPropValue(selectionModelProp, prevSelectionModel) {
|
|
19
20
|
if (selectionModelProp == null) {
|
|
@@ -39,8 +40,10 @@ export var selectionStateInitializer = function selectionStateInitializer(state,
|
|
|
39
40
|
});
|
|
40
41
|
};
|
|
41
42
|
/**
|
|
42
|
-
* @requires useGridRows (state, method)
|
|
43
|
-
* @requires useGridParamsApi (method)
|
|
43
|
+
* @requires useGridRows (state, method) - can be after
|
|
44
|
+
* @requires useGridParamsApi (method) - can be after
|
|
45
|
+
* @requires useGridFocus (state) - can be after
|
|
46
|
+
* @requires useGridKeyboardNavigation (`cellKeyDown` event must first be consumed by it)
|
|
44
47
|
*/
|
|
45
48
|
|
|
46
49
|
export var useGridSelection = function useGridSelection(apiRef, props) {
|
|
@@ -63,7 +66,8 @@ export var useGridSelection = function useGridSelection(apiRef, props) {
|
|
|
63
66
|
pagination = props.pagination,
|
|
64
67
|
paginationMode = props.paginationMode;
|
|
65
68
|
var canHaveMultipleSelection = !disableMultipleSelection || checkboxSelection;
|
|
66
|
-
var
|
|
69
|
+
var visibleRows = useGridVisibleRows(apiRef, props);
|
|
70
|
+
var expandMouseRowRangeSelection = React.useCallback(function (id) {
|
|
67
71
|
var _lastRowToggled$curre;
|
|
68
72
|
|
|
69
73
|
var endId = id;
|
|
@@ -191,17 +195,18 @@ export var useGridSelection = function useGridSelection(apiRef, props) {
|
|
|
191
195
|
return;
|
|
192
196
|
}
|
|
193
197
|
|
|
194
|
-
logger.debug("Expanding selection from row ".concat(startId, " to row ").concat(endId));
|
|
195
|
-
|
|
196
|
-
var
|
|
197
|
-
var
|
|
198
|
+
logger.debug("Expanding selection from row ".concat(startId, " to row ").concat(endId)); // Using rows from all pages allow to select a range across several pages
|
|
199
|
+
|
|
200
|
+
var allPagesRowIds = gridVisibleSortedRowIdsSelector(apiRef);
|
|
201
|
+
var startIndex = allPagesRowIds.indexOf(startId);
|
|
202
|
+
var endIndex = allPagesRowIds.indexOf(endId);
|
|
198
203
|
|
|
199
204
|
var _ref2 = startIndex > endIndex ? [endIndex, startIndex] : [startIndex, endIndex],
|
|
200
205
|
_ref3 = _slicedToArray(_ref2, 2),
|
|
201
206
|
start = _ref3[0],
|
|
202
207
|
end = _ref3[1];
|
|
203
208
|
|
|
204
|
-
var rowsBetweenStartAndEnd =
|
|
209
|
+
var rowsBetweenStartAndEnd = allPagesRowIds.slice(start, end + 1);
|
|
205
210
|
apiRef.current.selectRows(rowsBetweenStartAndEnd, isSelected, resetSelection);
|
|
206
211
|
}, [apiRef, logger]);
|
|
207
212
|
var selectionApi = {
|
|
@@ -261,7 +266,7 @@ export var useGridSelection = function useGridSelection(apiRef, props) {
|
|
|
261
266
|
return;
|
|
262
267
|
}
|
|
263
268
|
|
|
264
|
-
if (params.field ===
|
|
269
|
+
if (params.field === GRID_DETAIL_PANEL_TOGGLE_FIELD) {
|
|
265
270
|
// click to open the detail panel should not select the row
|
|
266
271
|
return;
|
|
267
272
|
}
|
|
@@ -275,11 +280,11 @@ export var useGridSelection = function useGridSelection(apiRef, props) {
|
|
|
275
280
|
}
|
|
276
281
|
|
|
277
282
|
if (event.shiftKey && (canHaveMultipleSelection || checkboxSelection)) {
|
|
278
|
-
|
|
283
|
+
expandMouseRowRangeSelection(params.id);
|
|
279
284
|
} else {
|
|
280
285
|
handleSingleRowSelection(params.id, event);
|
|
281
286
|
}
|
|
282
|
-
}, [disableSelectionOnClick, canHaveMultipleSelection, checkboxSelection, apiRef,
|
|
287
|
+
}, [disableSelectionOnClick, canHaveMultipleSelection, checkboxSelection, apiRef, expandMouseRowRangeSelection, handleSingleRowSelection]);
|
|
283
288
|
var preventSelectionOnShift = React.useCallback(function (params, event) {
|
|
284
289
|
if (canHaveMultipleSelection && event.shiftKey) {
|
|
285
290
|
var _window$getSelection;
|
|
@@ -289,35 +294,80 @@ export var useGridSelection = function useGridSelection(apiRef, props) {
|
|
|
289
294
|
}, [canHaveMultipleSelection]);
|
|
290
295
|
var handleRowSelectionCheckboxChange = React.useCallback(function (params, event) {
|
|
291
296
|
if (event.nativeEvent.shiftKey) {
|
|
292
|
-
|
|
297
|
+
expandMouseRowRangeSelection(params.id);
|
|
293
298
|
} else {
|
|
294
299
|
apiRef.current.selectRow(params.id, params.value);
|
|
295
300
|
}
|
|
296
|
-
}, [apiRef,
|
|
301
|
+
}, [apiRef, expandMouseRowRangeSelection]);
|
|
297
302
|
var handleHeaderSelectionCheckboxChange = React.useCallback(function (params) {
|
|
298
303
|
var shouldLimitSelectionToCurrentPage = props.checkboxSelectionVisibleOnly && props.pagination;
|
|
299
304
|
var rowsToBeSelected = shouldLimitSelectionToCurrentPage ? gridPaginatedVisibleSortedGridRowIdsSelector(apiRef) : gridVisibleSortedRowIdsSelector(apiRef);
|
|
300
305
|
apiRef.current.selectRows(rowsToBeSelected, params.value);
|
|
301
306
|
}, [apiRef, props.checkboxSelectionVisibleOnly, props.pagination]);
|
|
302
307
|
var handleCellKeyDown = React.useCallback(function (params, event) {
|
|
303
|
-
//
|
|
308
|
+
// Get the most recent cell mode because it may have been changed by another listener
|
|
309
|
+
if (apiRef.current.getCellMode(params.id, params.field) === GridCellModes.Edit) {
|
|
310
|
+
return;
|
|
311
|
+
} // Ignore portal
|
|
304
312
|
// Do not apply shortcuts if the focus is not on the cell root component
|
|
305
|
-
|
|
306
|
-
|
|
313
|
+
|
|
314
|
+
|
|
315
|
+
if (!event.currentTarget.contains(event.target)) {
|
|
307
316
|
return;
|
|
308
|
-
}
|
|
317
|
+
}
|
|
309
318
|
|
|
319
|
+
if (isNavigationKey(event.key) && event.shiftKey) {
|
|
320
|
+
// The cell that has focus after the keyboard navigation
|
|
321
|
+
var focusCell = gridFocusCellSelector(apiRef);
|
|
310
322
|
|
|
311
|
-
|
|
312
|
-
|
|
323
|
+
if (focusCell && focusCell.id !== params.id) {
|
|
324
|
+
event.preventDefault();
|
|
325
|
+
var isNextRowSelected = apiRef.current.isRowSelected(focusCell.id);
|
|
313
326
|
|
|
314
|
-
|
|
315
|
-
|
|
327
|
+
if (!canHaveMultipleSelection) {
|
|
328
|
+
apiRef.current.selectRow(focusCell.id, !isNextRowSelected, true);
|
|
329
|
+
return;
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
var newRowIndex = apiRef.current.getRowIndexRelativeToVisibleRows(focusCell.id);
|
|
333
|
+
var previousRowIndex = apiRef.current.getRowIndexRelativeToVisibleRows(params.id);
|
|
334
|
+
var start;
|
|
335
|
+
var end;
|
|
336
|
+
|
|
337
|
+
if (newRowIndex > previousRowIndex) {
|
|
338
|
+
if (isNextRowSelected) {
|
|
339
|
+
// We are navigating to the bottom of the page and adding selected rows
|
|
340
|
+
start = previousRowIndex;
|
|
341
|
+
end = newRowIndex - 1;
|
|
342
|
+
} else {
|
|
343
|
+
// We are navigating to the bottom of the page and removing selected rows
|
|
344
|
+
start = previousRowIndex;
|
|
345
|
+
end = newRowIndex;
|
|
346
|
+
}
|
|
347
|
+
} else {
|
|
348
|
+
// eslint-disable-next-line no-lonely-if
|
|
349
|
+
if (isNextRowSelected) {
|
|
350
|
+
// We are navigating to the top of the page and removing selected rows
|
|
351
|
+
start = newRowIndex + 1;
|
|
352
|
+
end = previousRowIndex;
|
|
353
|
+
} else {
|
|
354
|
+
// We are navigating to the top of the page and adding selected rows
|
|
355
|
+
start = newRowIndex;
|
|
356
|
+
end = previousRowIndex;
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
var rowsBetweenStartAndEnd = visibleRows.rows.slice(start, end + 1).map(function (row) {
|
|
361
|
+
return row.id;
|
|
362
|
+
});
|
|
363
|
+
apiRef.current.selectRows(rowsBetweenStartAndEnd, !isNextRowSelected);
|
|
364
|
+
return;
|
|
365
|
+
}
|
|
316
366
|
}
|
|
317
367
|
|
|
318
368
|
if (event.key === ' ' && event.shiftKey) {
|
|
319
369
|
event.preventDefault();
|
|
320
|
-
handleSingleRowSelection(
|
|
370
|
+
handleSingleRowSelection(params.id, event);
|
|
321
371
|
return;
|
|
322
372
|
}
|
|
323
373
|
|
|
@@ -325,8 +375,8 @@ export var useGridSelection = function useGridSelection(apiRef, props) {
|
|
|
325
375
|
event.preventDefault();
|
|
326
376
|
selectRows(apiRef.current.getAllRowIds(), true);
|
|
327
377
|
}
|
|
328
|
-
}, [apiRef, handleSingleRowSelection, selectRows]);
|
|
329
|
-
useGridApiEventHandler(apiRef, GridEvents.
|
|
378
|
+
}, [apiRef, handleSingleRowSelection, selectRows, visibleRows.rows, canHaveMultipleSelection]);
|
|
379
|
+
useGridApiEventHandler(apiRef, GridEvents.sortedRowsSet, removeOutdatedSelection);
|
|
330
380
|
useGridApiEventHandler(apiRef, GridEvents.cellClick, handleCellClick);
|
|
331
381
|
useGridApiEventHandler(apiRef, GridEvents.rowSelectionCheckboxChange, handleRowSelectionCheckboxChange);
|
|
332
382
|
useGridApiEventHandler(apiRef, GridEvents.headerSelectionCheckboxChange, handleHeaderSelectionCheckboxChange);
|
|
@@ -2,7 +2,7 @@ import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
|
|
2
2
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
3
3
|
import * as React from 'react';
|
|
4
4
|
import { unstable_composeClasses as composeClasses } from '@mui/material';
|
|
5
|
-
import {
|
|
5
|
+
import { useGridRegisterPipeProcessor } from '../../core/pipeProcessing';
|
|
6
6
|
import { getDataGridUtilityClass } from '../../../constants';
|
|
7
7
|
import { GRID_CHECKBOX_SELECTION_COL_DEF } from '../../../colDef';
|
|
8
8
|
|
|
@@ -44,5 +44,5 @@ export var useGridSelectionPreProcessors = function useGridSelectionPreProcessor
|
|
|
44
44
|
|
|
45
45
|
return columnsState;
|
|
46
46
|
}, [apiRef, classes, props.checkboxSelection]);
|
|
47
|
-
|
|
47
|
+
useGridRegisterPipeProcessor(apiRef, 'hydrateColumns', updateSelectionColumn);
|
|
48
48
|
};
|
|
@@ -13,7 +13,7 @@ import { gridRowIdsSelector, gridRowTreeSelector } from '../rows';
|
|
|
13
13
|
import { useFirstRender } from '../../utils/useFirstRender';
|
|
14
14
|
import { useGridRegisterStrategyProcessor, GRID_DEFAULT_STRATEGY } from '../../core/strategyProcessing';
|
|
15
15
|
import { buildAggregatedSortingApplier, mergeStateWithSortModel, getNextGridSortDirection, sanitizeSortModel } from './gridSortingUtils';
|
|
16
|
-
import {
|
|
16
|
+
import { useGridRegisterPipeProcessor } from '../../core/pipeProcessing';
|
|
17
17
|
export var sortingStateInitializer = function sortingStateInitializer(state, props) {
|
|
18
18
|
var _ref, _props$sortModel, _props$initialState, _props$initialState$s;
|
|
19
19
|
|
|
@@ -86,19 +86,16 @@ export var useGridSorting = function useGridSorting(apiRef, props) {
|
|
|
86
86
|
*/
|
|
87
87
|
|
|
88
88
|
var applySorting = React.useCallback(function () {
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
89
|
+
apiRef.current.setState(function (state) {
|
|
90
|
+
if (props.sortingMode === GridFeatureModeConstant.server) {
|
|
91
|
+
logger.debug('Skipping sorting rows as sortingMode = server');
|
|
92
92
|
return _extends({}, state, {
|
|
93
93
|
sorting: _extends({}, state.sorting, {
|
|
94
94
|
sortedRows: gridRowIdsSelector(state, apiRef.current.instanceId)
|
|
95
95
|
})
|
|
96
96
|
});
|
|
97
|
-
}
|
|
98
|
-
return;
|
|
99
|
-
}
|
|
97
|
+
}
|
|
100
98
|
|
|
101
|
-
apiRef.current.setState(function (state) {
|
|
102
99
|
var sortModel = gridSortModelSelector(state, apiRef.current.instanceId);
|
|
103
100
|
var sortRowList = buildAggregatedSortingApplier(sortModel, apiRef);
|
|
104
101
|
var sortedRows = apiRef.current.unstable_applyStrategyProcessor('sorting', {
|
|
@@ -110,6 +107,7 @@ export var useGridSorting = function useGridSorting(apiRef, props) {
|
|
|
110
107
|
})
|
|
111
108
|
});
|
|
112
109
|
});
|
|
110
|
+
apiRef.current.publishEvent(GridEvents.sortedRowsSet);
|
|
113
111
|
apiRef.current.forceUpdate();
|
|
114
112
|
}, [apiRef, logger, props.sortingMode]);
|
|
115
113
|
var setSortModel = React.useCallback(function (model) {
|
|
@@ -206,8 +204,8 @@ export var useGridSorting = function useGridSorting(apiRef, props) {
|
|
|
206
204
|
var rowTree = gridRowTreeSelector(apiRef);
|
|
207
205
|
return params.sortRowList(Object.values(rowTree));
|
|
208
206
|
}, [apiRef]);
|
|
209
|
-
|
|
210
|
-
|
|
207
|
+
useGridRegisterPipeProcessor(apiRef, 'exportState', stateExportPreProcessing);
|
|
208
|
+
useGridRegisterPipeProcessor(apiRef, 'restoreState', stateRestorePreProcessing);
|
|
211
209
|
useGridRegisterStrategyProcessor(apiRef, GRID_DEFAULT_STRATEGY, 'sorting', flatSortingMethod);
|
|
212
210
|
/**
|
|
213
211
|
* EVENTS
|
|
@@ -2,11 +2,11 @@ import * as React from 'react';
|
|
|
2
2
|
import { useGridApiMethod } from '../../utils';
|
|
3
3
|
export var useGridStatePersistence = function useGridStatePersistence(apiRef) {
|
|
4
4
|
var exportState = React.useCallback(function () {
|
|
5
|
-
var stateToExport = apiRef.current.
|
|
5
|
+
var stateToExport = apiRef.current.unstable_applyPipeProcessors('exportState', {});
|
|
6
6
|
return stateToExport;
|
|
7
7
|
}, [apiRef]);
|
|
8
8
|
var restoreState = React.useCallback(function (stateToRestore) {
|
|
9
|
-
var response = apiRef.current.
|
|
9
|
+
var response = apiRef.current.unstable_applyPipeProcessors('restoreState', {
|
|
10
10
|
callbacks: []
|
|
11
11
|
}, {
|
|
12
12
|
stateToRestore: stateToRestore
|
|
@@ -3,6 +3,7 @@ import _extends from "@babel/runtime/helpers/esm/extends";
|
|
|
3
3
|
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
4
4
|
var _excluded = ["style"];
|
|
5
5
|
import * as React from 'react';
|
|
6
|
+
import * as ReactDOM from 'react-dom';
|
|
6
7
|
import { useForkRef } from '@mui/material/utils';
|
|
7
8
|
import { useGridApiContext } from '../../utils/useGridApiContext';
|
|
8
9
|
import { useGridRootProps } from '../../utils/useGridRootProps';
|
|
@@ -17,8 +18,9 @@ import { useGridApiEventHandler } from '../../utils/useGridApiEventHandler';
|
|
|
17
18
|
import { clamp } from '../../../utils/utils';
|
|
18
19
|
import { selectedIdsLookupSelector } from '../selection/gridSelectionSelector';
|
|
19
20
|
import { gridRowsMetaSelector } from '../rows/gridRowsMetaSelector';
|
|
21
|
+
import { getFirstNonSpannedColumnToRender } from '../columns/gridColumnsUtils'; // Uses binary search to avoid looping through all possible positions
|
|
22
|
+
|
|
20
23
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
21
|
-
// Uses binary search to avoid looping through all possible positions
|
|
22
24
|
export function getIndexFromScroll(offset, positions) {
|
|
23
25
|
var sliceStart = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
|
|
24
26
|
var sliceEnd = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : positions.length;
|
|
@@ -35,9 +37,15 @@ export function getIndexFromScroll(offset, positions) {
|
|
|
35
37
|
var itemOffset = positions[pivot];
|
|
36
38
|
return offset <= itemOffset ? getIndexFromScroll(offset, positions, sliceStart, pivot) : getIndexFromScroll(offset, positions, pivot + 1, sliceEnd);
|
|
37
39
|
}
|
|
40
|
+
export var getRenderableIndexes = function getRenderableIndexes(_ref) {
|
|
41
|
+
var firstIndex = _ref.firstIndex,
|
|
42
|
+
lastIndex = _ref.lastIndex,
|
|
43
|
+
buffer = _ref.buffer,
|
|
44
|
+
minFirstIndex = _ref.minFirstIndex,
|
|
45
|
+
maxLastIndex = _ref.maxLastIndex;
|
|
46
|
+
return [clamp(firstIndex - buffer, minFirstIndex, maxLastIndex), clamp(lastIndex + buffer, minFirstIndex, maxLastIndex)];
|
|
47
|
+
};
|
|
38
48
|
export var useGridVirtualScroller = function useGridVirtualScroller(props) {
|
|
39
|
-
var _currentPage$range2;
|
|
40
|
-
|
|
41
49
|
var apiRef = useGridApiContext();
|
|
42
50
|
var rootProps = useGridRootProps();
|
|
43
51
|
var visibleColumns = useGridSelector(apiRef, gridVisibleColumnDefinitionsSelector);
|
|
@@ -89,9 +97,9 @@ export var useGridVirtualScroller = function useGridVirtualScroller(props) {
|
|
|
89
97
|
};
|
|
90
98
|
}
|
|
91
99
|
|
|
92
|
-
var
|
|
93
|
-
top =
|
|
94
|
-
left =
|
|
100
|
+
var _ref2 = scrollPosition.current,
|
|
101
|
+
top = _ref2.top,
|
|
102
|
+
left = _ref2.left;
|
|
95
103
|
var firstRowIndex = getIndexFromScroll(top, rowsMeta.positions);
|
|
96
104
|
var lastRowIndex = rootProps.autoHeight ? firstRowIndex + currentPage.rows.length : getIndexFromScroll(top + rootRef.current.clientHeight, rowsMeta.positions);
|
|
97
105
|
var firstColumnIndex = getIndexFromScroll(left, columnPositions);
|
|
@@ -121,28 +129,17 @@ export var useGridVirtualScroller = function useGridVirtualScroller(props) {
|
|
|
121
129
|
}
|
|
122
130
|
}, []);
|
|
123
131
|
useGridApiEventHandler(apiRef, GridEvents.resize, handleResize);
|
|
124
|
-
|
|
125
|
-
var getRenderableIndexes = function getRenderableIndexes(_ref2) {
|
|
126
|
-
var firstIndex = _ref2.firstIndex,
|
|
127
|
-
lastIndex = _ref2.lastIndex,
|
|
128
|
-
buffer = _ref2.buffer,
|
|
129
|
-
minFirstIndex = _ref2.minFirstIndex,
|
|
130
|
-
maxLastIndex = _ref2.maxLastIndex;
|
|
131
|
-
return [clamp(firstIndex - buffer, minFirstIndex, maxLastIndex), clamp(lastIndex + buffer, minFirstIndex, maxLastIndex)];
|
|
132
|
-
};
|
|
133
|
-
|
|
134
132
|
var updateRenderZonePosition = React.useCallback(function (nextRenderContext) {
|
|
135
|
-
var _currentPage$range;
|
|
136
|
-
|
|
137
133
|
var _getRenderableIndexes = getRenderableIndexes({
|
|
138
134
|
firstIndex: nextRenderContext.firstRowIndex,
|
|
139
135
|
lastIndex: nextRenderContext.lastRowIndex,
|
|
140
136
|
minFirstIndex: 0,
|
|
141
|
-
maxLastIndex:
|
|
137
|
+
maxLastIndex: currentPage.rows.length,
|
|
142
138
|
buffer: rootProps.rowBuffer
|
|
143
139
|
}),
|
|
144
|
-
_getRenderableIndexes2 = _slicedToArray(_getRenderableIndexes,
|
|
145
|
-
firstRowToRender = _getRenderableIndexes2[0]
|
|
140
|
+
_getRenderableIndexes2 = _slicedToArray(_getRenderableIndexes, 2),
|
|
141
|
+
firstRowToRender = _getRenderableIndexes2[0],
|
|
142
|
+
lastRowToRender = _getRenderableIndexes2[1];
|
|
146
143
|
|
|
147
144
|
var _getRenderableIndexes3 = getRenderableIndexes({
|
|
148
145
|
firstIndex: nextRenderContext.firstColumnIndex,
|
|
@@ -152,8 +149,15 @@ export var useGridVirtualScroller = function useGridVirtualScroller(props) {
|
|
|
152
149
|
buffer: rootProps.columnBuffer
|
|
153
150
|
}),
|
|
154
151
|
_getRenderableIndexes4 = _slicedToArray(_getRenderableIndexes3, 1),
|
|
155
|
-
|
|
156
|
-
|
|
152
|
+
initialFirstColumnToRender = _getRenderableIndexes4[0];
|
|
153
|
+
|
|
154
|
+
var firstColumnToRender = getFirstNonSpannedColumnToRender({
|
|
155
|
+
firstColumnToRender: initialFirstColumnToRender,
|
|
156
|
+
apiRef: apiRef,
|
|
157
|
+
firstRowToRender: firstRowToRender,
|
|
158
|
+
lastRowToRender: lastRowToRender,
|
|
159
|
+
visibleRows: currentPage.rows
|
|
160
|
+
});
|
|
157
161
|
var top = gridRowsMetaSelector(apiRef.current.state).positions[firstRowToRender];
|
|
158
162
|
var left = gridColumnPositionsSelector(apiRef)[firstColumnToRender]; // Call directly the selector because it might be outdated when this method is called
|
|
159
163
|
|
|
@@ -165,19 +169,22 @@ export var useGridVirtualScroller = function useGridVirtualScroller(props) {
|
|
|
165
169
|
left: left
|
|
166
170
|
});
|
|
167
171
|
}
|
|
168
|
-
}, [apiRef,
|
|
172
|
+
}, [apiRef, currentPage.rows, onRenderZonePositioning, renderZoneMinColumnIndex, renderZoneMaxColumnIndex, rootProps.columnBuffer, rootProps.rowBuffer]);
|
|
173
|
+
React.useLayoutEffect(function () {
|
|
174
|
+
if (renderContext) {
|
|
175
|
+
updateRenderZonePosition(renderContext);
|
|
176
|
+
}
|
|
177
|
+
}, [renderContext, updateRenderZonePosition]);
|
|
169
178
|
var updateRenderContext = React.useCallback(function (nextRenderContext) {
|
|
170
179
|
setRenderContext(nextRenderContext);
|
|
171
|
-
updateRenderZonePosition(nextRenderContext);
|
|
172
180
|
prevRenderContext.current = nextRenderContext;
|
|
173
|
-
}, [setRenderContext, prevRenderContext
|
|
181
|
+
}, [setRenderContext, prevRenderContext]);
|
|
174
182
|
React.useEffect(function () {
|
|
175
183
|
if (containerWidth == null) {
|
|
176
184
|
return;
|
|
177
185
|
}
|
|
178
186
|
|
|
179
187
|
var initialRenderContext = computeRenderContext();
|
|
180
|
-
prevRenderContext.current = initialRenderContext;
|
|
181
188
|
updateRenderContext(initialRenderContext);
|
|
182
189
|
var _ref3 = scrollPosition.current,
|
|
183
190
|
top = _ref3.top,
|
|
@@ -213,14 +220,25 @@ export var useGridVirtualScroller = function useGridVirtualScroller(props) {
|
|
|
213
220
|
top: scrollTop,
|
|
214
221
|
left: scrollLeft,
|
|
215
222
|
renderContext: shouldSetState ? nextRenderContext : prevRenderContext.current
|
|
216
|
-
});
|
|
223
|
+
}, event);
|
|
217
224
|
|
|
218
225
|
if (shouldSetState) {
|
|
219
|
-
|
|
226
|
+
// Prevents batching render context changes
|
|
227
|
+
ReactDOM.flushSync(function () {
|
|
228
|
+
updateRenderContext(nextRenderContext);
|
|
229
|
+
});
|
|
220
230
|
prevTotalWidth.current = columnsTotalWidth;
|
|
221
231
|
}
|
|
222
232
|
};
|
|
223
233
|
|
|
234
|
+
var handleWheel = function handleWheel(event) {
|
|
235
|
+
apiRef.current.publishEvent(GridEvents.virtualScrollerWheel, {}, event);
|
|
236
|
+
};
|
|
237
|
+
|
|
238
|
+
var handleTouchMove = function handleTouchMove(event) {
|
|
239
|
+
apiRef.current.publishEvent(GridEvents.virtualScrollerTouchMove, {}, event);
|
|
240
|
+
};
|
|
241
|
+
|
|
224
242
|
var getRows = function getRows() {
|
|
225
243
|
var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
|
|
226
244
|
renderContext: renderContext
|
|
@@ -251,6 +269,18 @@ export var useGridVirtualScroller = function useGridVirtualScroller(props) {
|
|
|
251
269
|
firstRowToRender = _getRenderableIndexes6[0],
|
|
252
270
|
lastRowToRender = _getRenderableIndexes6[1];
|
|
253
271
|
|
|
272
|
+
var renderedRows = [];
|
|
273
|
+
|
|
274
|
+
for (var i = firstRowToRender; i < lastRowToRender; i += 1) {
|
|
275
|
+
var row = currentPage.rows[i];
|
|
276
|
+
renderedRows.push(row);
|
|
277
|
+
apiRef.current.unstable_calculateColSpan({
|
|
278
|
+
rowId: row.id,
|
|
279
|
+
minFirstColumn: minFirstColumn,
|
|
280
|
+
maxLastColumn: maxLastColumn
|
|
281
|
+
});
|
|
282
|
+
}
|
|
283
|
+
|
|
254
284
|
var _getRenderableIndexes7 = getRenderableIndexes({
|
|
255
285
|
firstIndex: nextRenderContext.firstColumnIndex,
|
|
256
286
|
lastIndex: nextRenderContext.lastColumnIndex,
|
|
@@ -259,20 +289,26 @@ export var useGridVirtualScroller = function useGridVirtualScroller(props) {
|
|
|
259
289
|
buffer: columnBuffer
|
|
260
290
|
}),
|
|
261
291
|
_getRenderableIndexes8 = _slicedToArray(_getRenderableIndexes7, 2),
|
|
262
|
-
|
|
292
|
+
initialFirstColumnToRender = _getRenderableIndexes8[0],
|
|
263
293
|
lastColumnToRender = _getRenderableIndexes8[1];
|
|
264
294
|
|
|
265
|
-
var
|
|
295
|
+
var firstColumnToRender = getFirstNonSpannedColumnToRender({
|
|
296
|
+
firstColumnToRender: initialFirstColumnToRender,
|
|
297
|
+
apiRef: apiRef,
|
|
298
|
+
firstRowToRender: firstRowToRender,
|
|
299
|
+
lastRowToRender: lastRowToRender,
|
|
300
|
+
visibleRows: currentPage.rows
|
|
301
|
+
});
|
|
266
302
|
var renderedColumns = visibleColumns.slice(firstColumnToRender, lastColumnToRender);
|
|
267
303
|
var rows = [];
|
|
268
304
|
|
|
269
|
-
for (var
|
|
305
|
+
for (var _i = 0; _i < renderedRows.length; _i += 1) {
|
|
270
306
|
var _rootProps$components;
|
|
271
307
|
|
|
272
|
-
var _renderedRows$
|
|
273
|
-
_id = _renderedRows$
|
|
274
|
-
_model = _renderedRows$
|
|
275
|
-
var lastVisibleRowIndex = firstRowToRender +
|
|
308
|
+
var _renderedRows$_i = renderedRows[_i],
|
|
309
|
+
_id = _renderedRows$_i.id,
|
|
310
|
+
_model = _renderedRows$_i.model;
|
|
311
|
+
var lastVisibleRowIndex = firstRowToRender + _i === currentPage.rows.length - 1;
|
|
276
312
|
var targetRowHeight = apiRef.current.unstable_getRowHeight(_id);
|
|
277
313
|
var isSelected = void 0;
|
|
278
314
|
|
|
@@ -299,7 +335,7 @@ export var useGridVirtualScroller = function useGridVirtualScroller(props) {
|
|
|
299
335
|
firstColumnToRender: firstColumnToRender,
|
|
300
336
|
lastColumnToRender: lastColumnToRender,
|
|
301
337
|
selected: isSelected,
|
|
302
|
-
index: currentPage.range.firstRowIndex + firstRowToRender +
|
|
338
|
+
index: currentPage.range.firstRowIndex + firstRowToRender + _i,
|
|
303
339
|
containerWidth: availableSpace,
|
|
304
340
|
isLastVisible: lastVisibleRowIndex
|
|
305
341
|
}, typeof getRowProps === 'function' ? getRowProps(_id, _model) : {}, (_rootProps$components = rootProps.componentsProps) == null ? void 0 : _rootProps$components.row), _id));
|
|
@@ -364,6 +400,8 @@ export var useGridVirtualScroller = function useGridVirtualScroller(props) {
|
|
|
364
400
|
return _extends({
|
|
365
401
|
ref: handleRef,
|
|
366
402
|
onScroll: handleScroll,
|
|
403
|
+
onWheel: handleWheel,
|
|
404
|
+
onTouchMove: handleTouchMove,
|
|
367
405
|
style: _extends({}, style, rootStyle)
|
|
368
406
|
}, other);
|
|
369
407
|
},
|
package/legacy/index.js
CHANGED
|
@@ -3,20 +3,20 @@ export { GridVirtualScrollerContent } from '../components/virtualization/GridVir
|
|
|
3
3
|
export { GridVirtualScrollerRenderZone } from '../components/virtualization/GridVirtualScrollerRenderZone';
|
|
4
4
|
export { GridColumnHeaders } from '../components/columnHeaders/GridColumnHeaders';
|
|
5
5
|
export { GridColumnHeadersInner } from '../components/columnHeaders/GridColumnHeadersInner';
|
|
6
|
-
export {
|
|
6
|
+
export { useGridRegisterPipeProcessor } from '../hooks/core/pipeProcessing';
|
|
7
7
|
export { useGridRegisterStrategyProcessor } from '../hooks/core/strategyProcessing';
|
|
8
8
|
export { useGridInitialization } from '../hooks/core/useGridInitialization';
|
|
9
9
|
export { useGridClipboard } from '../hooks/features/clipboard/useGridClipboard';
|
|
10
10
|
export { useGridColumnHeaders } from '../hooks/features/columnHeaders/useGridColumnHeaders';
|
|
11
11
|
export { useGridColumnMenu, columnMenuStateInitializer } from '../hooks/features/columnMenu/useGridColumnMenu';
|
|
12
12
|
export { useGridColumns, columnsStateInitializer } from '../hooks/features/columns/useGridColumns';
|
|
13
|
+
export { useGridColumnSpanning } from '../hooks/features/columns/useGridColumnSpanning';
|
|
13
14
|
export { useGridDensity, densityStateInitializer } from '../hooks/features/density/useGridDensity';
|
|
14
15
|
export { useGridCsvExport } from '../hooks/features/export/useGridCsvExport';
|
|
15
16
|
export { useGridPrintExport } from '../hooks/features/export/useGridPrintExport';
|
|
16
17
|
export { useGridFilter, filterStateInitializer } from '../hooks/features/filter/useGridFilter';
|
|
17
18
|
export { useGridFocus, focusStateInitializer } from '../hooks/features/focus/useGridFocus';
|
|
18
|
-
export {
|
|
19
|
-
export { useGridKeyboardNavigation } from '../hooks/features/keyboard/useGridKeyboardNavigation';
|
|
19
|
+
export { useGridKeyboardNavigation } from '../hooks/features/keyboardNavigation/useGridKeyboardNavigation';
|
|
20
20
|
export { useGridPagination, paginationStateInitializer } from '../hooks/features/pagination/useGridPagination';
|
|
21
21
|
export { useGridPreferencesPanel, preferencePanelStateInitializer } from '../hooks/features/preferencesPanel/useGridPreferencesPanel';
|
|
22
22
|
export { useGridEditing as useGridEditing_new, editingStateInitializer as editingStateInitializer_new } from '../hooks/features/editRows/useGridEditing.new';
|
package/legacy/locales/arSD.js
CHANGED
|
@@ -115,6 +115,8 @@ var arSDGrid = {
|
|
|
115
115
|
},
|
|
116
116
|
// Master/detail
|
|
117
117
|
expandDetailPanel: 'توسيع',
|
|
118
|
-
collapseDetailPanel: 'طوي'
|
|
118
|
+
collapseDetailPanel: 'طوي' // Row reordering text
|
|
119
|
+
// rowReorderingHeaderName: 'Row reordering',
|
|
120
|
+
|
|
119
121
|
};
|
|
120
122
|
export var arSD = getGridLocalization(arSDGrid, arSDCore);
|
package/legacy/locales/bgBG.js
CHANGED
|
@@ -115,6 +115,8 @@ var bgBGGrid = {
|
|
|
115
115
|
},
|
|
116
116
|
// Master/detail
|
|
117
117
|
expandDetailPanel: 'Разгъване',
|
|
118
|
-
collapseDetailPanel: 'Свиване'
|
|
118
|
+
collapseDetailPanel: 'Свиване' // Row reordering text
|
|
119
|
+
// rowReorderingHeaderName: 'Row reordering',
|
|
120
|
+
|
|
119
121
|
};
|
|
120
122
|
export var bgBG = getGridLocalization(bgBGGrid, bgBGCore);
|
package/legacy/locales/csCZ.js
CHANGED
|
@@ -142,6 +142,8 @@ var csCZGrid = {
|
|
|
142
142
|
} // Master/detail
|
|
143
143
|
// expandDetailPanel: 'Expand',
|
|
144
144
|
// collapseDetailPanel: 'Collapse',
|
|
145
|
+
// Row reordering text
|
|
146
|
+
// rowReorderingHeaderName: 'Row reordering',
|
|
145
147
|
|
|
146
148
|
};
|
|
147
149
|
export var csCZ = getGridLocalization(csCZGrid, csCZCore);
|