@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
|
@@ -21,12 +21,12 @@ var _useGridLogger = require("../../utils/useGridLogger");
|
|
|
21
21
|
|
|
22
22
|
var _gridRowsSelector = require("../rows/gridRowsSelector");
|
|
23
23
|
|
|
24
|
-
var _domUtils = require("../../../utils/domUtils");
|
|
25
|
-
|
|
26
24
|
var _gridSelectionSelector = require("./gridSelectionSelector");
|
|
27
25
|
|
|
28
26
|
var _pagination = require("../pagination");
|
|
29
27
|
|
|
28
|
+
var _gridFocusStateSelector = require("../focus/gridFocusStateSelector");
|
|
29
|
+
|
|
30
30
|
var _gridFilterSelector = require("../filter/gridFilterSelector");
|
|
31
31
|
|
|
32
32
|
var _colDef = require("../../../colDef");
|
|
@@ -37,6 +37,8 @@ var _keyboardUtils = require("../../../utils/keyboardUtils");
|
|
|
37
37
|
|
|
38
38
|
var _useGridVisibleRows = require("../../utils/useGridVisibleRows");
|
|
39
39
|
|
|
40
|
+
var _gridDetailPanelToggleField = require("../../../constants/gridDetailPanelToggleField");
|
|
41
|
+
|
|
40
42
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
41
43
|
|
|
42
44
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
@@ -65,8 +67,10 @@ const selectionStateInitializer = (state, props) => {
|
|
|
65
67
|
});
|
|
66
68
|
};
|
|
67
69
|
/**
|
|
68
|
-
* @requires useGridRows (state, method)
|
|
69
|
-
* @requires useGridParamsApi (method)
|
|
70
|
+
* @requires useGridRows (state, method) - can be after
|
|
71
|
+
* @requires useGridParamsApi (method) - can be after
|
|
72
|
+
* @requires useGridFocus (state) - can be after
|
|
73
|
+
* @requires useGridKeyboardNavigation (`cellKeyDown` event must first be consumed by it)
|
|
70
74
|
*/
|
|
71
75
|
|
|
72
76
|
|
|
@@ -94,7 +98,8 @@ const useGridSelection = (apiRef, props) => {
|
|
|
94
98
|
paginationMode
|
|
95
99
|
} = props;
|
|
96
100
|
const canHaveMultipleSelection = !disableMultipleSelection || checkboxSelection;
|
|
97
|
-
const
|
|
101
|
+
const visibleRows = (0, _useGridVisibleRows.useGridVisibleRows)(apiRef, props);
|
|
102
|
+
const expandMouseRowRangeSelection = React.useCallback(id => {
|
|
98
103
|
var _lastRowToggled$curre;
|
|
99
104
|
|
|
100
105
|
let endId = id;
|
|
@@ -200,12 +205,13 @@ const useGridSelection = (apiRef, props) => {
|
|
|
200
205
|
return;
|
|
201
206
|
}
|
|
202
207
|
|
|
203
|
-
logger.debug(`Expanding selection from row ${startId} to row ${endId}`);
|
|
204
|
-
|
|
205
|
-
const
|
|
206
|
-
const
|
|
208
|
+
logger.debug(`Expanding selection from row ${startId} to row ${endId}`); // Using rows from all pages allow to select a range across several pages
|
|
209
|
+
|
|
210
|
+
const allPagesRowIds = (0, _gridFilterSelector.gridVisibleSortedRowIdsSelector)(apiRef);
|
|
211
|
+
const startIndex = allPagesRowIds.indexOf(startId);
|
|
212
|
+
const endIndex = allPagesRowIds.indexOf(endId);
|
|
207
213
|
const [start, end] = startIndex > endIndex ? [endIndex, startIndex] : [startIndex, endIndex];
|
|
208
|
-
const rowsBetweenStartAndEnd =
|
|
214
|
+
const rowsBetweenStartAndEnd = allPagesRowIds.slice(start, end + 1);
|
|
209
215
|
apiRef.current.selectRows(rowsBetweenStartAndEnd, isSelected, resetSelection);
|
|
210
216
|
}, [apiRef, logger]);
|
|
211
217
|
const selectionApi = {
|
|
@@ -264,7 +270,7 @@ const useGridSelection = (apiRef, props) => {
|
|
|
264
270
|
return;
|
|
265
271
|
}
|
|
266
272
|
|
|
267
|
-
if (params.field ===
|
|
273
|
+
if (params.field === _gridDetailPanelToggleField.GRID_DETAIL_PANEL_TOGGLE_FIELD) {
|
|
268
274
|
// click to open the detail panel should not select the row
|
|
269
275
|
return;
|
|
270
276
|
}
|
|
@@ -278,11 +284,11 @@ const useGridSelection = (apiRef, props) => {
|
|
|
278
284
|
}
|
|
279
285
|
|
|
280
286
|
if (event.shiftKey && (canHaveMultipleSelection || checkboxSelection)) {
|
|
281
|
-
|
|
287
|
+
expandMouseRowRangeSelection(params.id);
|
|
282
288
|
} else {
|
|
283
289
|
handleSingleRowSelection(params.id, event);
|
|
284
290
|
}
|
|
285
|
-
}, [disableSelectionOnClick, canHaveMultipleSelection, checkboxSelection, apiRef,
|
|
291
|
+
}, [disableSelectionOnClick, canHaveMultipleSelection, checkboxSelection, apiRef, expandMouseRowRangeSelection, handleSingleRowSelection]);
|
|
286
292
|
const preventSelectionOnShift = React.useCallback((params, event) => {
|
|
287
293
|
if (canHaveMultipleSelection && event.shiftKey) {
|
|
288
294
|
var _window$getSelection;
|
|
@@ -292,35 +298,78 @@ const useGridSelection = (apiRef, props) => {
|
|
|
292
298
|
}, [canHaveMultipleSelection]);
|
|
293
299
|
const handleRowSelectionCheckboxChange = React.useCallback((params, event) => {
|
|
294
300
|
if (event.nativeEvent.shiftKey) {
|
|
295
|
-
|
|
301
|
+
expandMouseRowRangeSelection(params.id);
|
|
296
302
|
} else {
|
|
297
303
|
apiRef.current.selectRow(params.id, params.value);
|
|
298
304
|
}
|
|
299
|
-
}, [apiRef,
|
|
305
|
+
}, [apiRef, expandMouseRowRangeSelection]);
|
|
300
306
|
const handleHeaderSelectionCheckboxChange = React.useCallback(params => {
|
|
301
307
|
const shouldLimitSelectionToCurrentPage = props.checkboxSelectionVisibleOnly && props.pagination;
|
|
302
308
|
const rowsToBeSelected = shouldLimitSelectionToCurrentPage ? (0, _pagination.gridPaginatedVisibleSortedGridRowIdsSelector)(apiRef) : (0, _gridFilterSelector.gridVisibleSortedRowIdsSelector)(apiRef);
|
|
303
309
|
apiRef.current.selectRows(rowsToBeSelected, params.value);
|
|
304
310
|
}, [apiRef, props.checkboxSelectionVisibleOnly, props.pagination]);
|
|
305
311
|
const handleCellKeyDown = React.useCallback((params, event) => {
|
|
306
|
-
//
|
|
312
|
+
// Get the most recent cell mode because it may have been changed by another listener
|
|
313
|
+
if (apiRef.current.getCellMode(params.id, params.field) === _gridEditRowModel.GridCellModes.Edit) {
|
|
314
|
+
return;
|
|
315
|
+
} // Ignore portal
|
|
307
316
|
// Do not apply shortcuts if the focus is not on the cell root component
|
|
308
|
-
|
|
309
|
-
|
|
317
|
+
|
|
318
|
+
|
|
319
|
+
if (!event.currentTarget.contains(event.target)) {
|
|
310
320
|
return;
|
|
311
|
-
}
|
|
321
|
+
}
|
|
312
322
|
|
|
323
|
+
if ((0, _keyboardUtils.isNavigationKey)(event.key) && event.shiftKey) {
|
|
324
|
+
// The cell that has focus after the keyboard navigation
|
|
325
|
+
const focusCell = (0, _gridFocusStateSelector.gridFocusCellSelector)(apiRef);
|
|
313
326
|
|
|
314
|
-
|
|
315
|
-
|
|
327
|
+
if (focusCell && focusCell.id !== params.id) {
|
|
328
|
+
event.preventDefault();
|
|
329
|
+
const isNextRowSelected = apiRef.current.isRowSelected(focusCell.id);
|
|
316
330
|
|
|
317
|
-
|
|
318
|
-
|
|
331
|
+
if (!canHaveMultipleSelection) {
|
|
332
|
+
apiRef.current.selectRow(focusCell.id, !isNextRowSelected, true);
|
|
333
|
+
return;
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
const newRowIndex = apiRef.current.getRowIndexRelativeToVisibleRows(focusCell.id);
|
|
337
|
+
const previousRowIndex = apiRef.current.getRowIndexRelativeToVisibleRows(params.id);
|
|
338
|
+
let start;
|
|
339
|
+
let end;
|
|
340
|
+
|
|
341
|
+
if (newRowIndex > previousRowIndex) {
|
|
342
|
+
if (isNextRowSelected) {
|
|
343
|
+
// We are navigating to the bottom of the page and adding selected rows
|
|
344
|
+
start = previousRowIndex;
|
|
345
|
+
end = newRowIndex - 1;
|
|
346
|
+
} else {
|
|
347
|
+
// We are navigating to the bottom of the page and removing selected rows
|
|
348
|
+
start = previousRowIndex;
|
|
349
|
+
end = newRowIndex;
|
|
350
|
+
}
|
|
351
|
+
} else {
|
|
352
|
+
// eslint-disable-next-line no-lonely-if
|
|
353
|
+
if (isNextRowSelected) {
|
|
354
|
+
// We are navigating to the top of the page and removing selected rows
|
|
355
|
+
start = newRowIndex + 1;
|
|
356
|
+
end = previousRowIndex;
|
|
357
|
+
} else {
|
|
358
|
+
// We are navigating to the top of the page and adding selected rows
|
|
359
|
+
start = newRowIndex;
|
|
360
|
+
end = previousRowIndex;
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
const rowsBetweenStartAndEnd = visibleRows.rows.slice(start, end + 1).map(row => row.id);
|
|
365
|
+
apiRef.current.selectRows(rowsBetweenStartAndEnd, !isNextRowSelected);
|
|
366
|
+
return;
|
|
367
|
+
}
|
|
319
368
|
}
|
|
320
369
|
|
|
321
370
|
if (event.key === ' ' && event.shiftKey) {
|
|
322
371
|
event.preventDefault();
|
|
323
|
-
handleSingleRowSelection(
|
|
372
|
+
handleSingleRowSelection(params.id, event);
|
|
324
373
|
return;
|
|
325
374
|
}
|
|
326
375
|
|
|
@@ -328,8 +377,8 @@ const useGridSelection = (apiRef, props) => {
|
|
|
328
377
|
event.preventDefault();
|
|
329
378
|
selectRows(apiRef.current.getAllRowIds(), true);
|
|
330
379
|
}
|
|
331
|
-
}, [apiRef, handleSingleRowSelection, selectRows]);
|
|
332
|
-
(0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, _events.GridEvents.
|
|
380
|
+
}, [apiRef, handleSingleRowSelection, selectRows, visibleRows.rows, canHaveMultipleSelection]);
|
|
381
|
+
(0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, _events.GridEvents.sortedRowsSet, removeOutdatedSelection);
|
|
333
382
|
(0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, _events.GridEvents.cellClick, handleCellClick);
|
|
334
383
|
(0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, _events.GridEvents.rowSelectionCheckboxChange, handleRowSelectionCheckboxChange);
|
|
335
384
|
(0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, _events.GridEvents.headerSelectionCheckboxChange, handleHeaderSelectionCheckboxChange);
|
|
@@ -13,7 +13,7 @@ var React = _interopRequireWildcard(require("react"));
|
|
|
13
13
|
|
|
14
14
|
var _material = require("@mui/material");
|
|
15
15
|
|
|
16
|
-
var
|
|
16
|
+
var _pipeProcessing = require("../../core/pipeProcessing");
|
|
17
17
|
|
|
18
18
|
var _constants = require("../../../constants");
|
|
19
19
|
|
|
@@ -60,7 +60,7 @@ const useGridSelectionPreProcessors = (apiRef, props) => {
|
|
|
60
60
|
|
|
61
61
|
return columnsState;
|
|
62
62
|
}, [apiRef, classes, props.checkboxSelection]);
|
|
63
|
-
(0,
|
|
63
|
+
(0, _pipeProcessing.useGridRegisterPipeProcessor)(apiRef, 'hydrateColumns', updateSelectionColumn);
|
|
64
64
|
};
|
|
65
65
|
|
|
66
66
|
exports.useGridSelectionPreProcessors = useGridSelectionPreProcessors;
|
|
@@ -35,7 +35,7 @@ var _strategyProcessing = require("../../core/strategyProcessing");
|
|
|
35
35
|
|
|
36
36
|
var _gridSortingUtils = require("./gridSortingUtils");
|
|
37
37
|
|
|
38
|
-
var
|
|
38
|
+
var _pipeProcessing = require("../../core/pipeProcessing");
|
|
39
39
|
|
|
40
40
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
41
41
|
|
|
@@ -111,17 +111,16 @@ const useGridSorting = (apiRef, props) => {
|
|
|
111
111
|
*/
|
|
112
112
|
|
|
113
113
|
const applySorting = React.useCallback(() => {
|
|
114
|
-
if (props.sortingMode === _gridFeatureMode.GridFeatureModeConstant.server) {
|
|
115
|
-
logger.debug('Skipping sorting rows as sortingMode = server');
|
|
116
|
-
apiRef.current.setState(state => (0, _extends2.default)({}, state, {
|
|
117
|
-
sorting: (0, _extends2.default)({}, state.sorting, {
|
|
118
|
-
sortedRows: (0, _rows.gridRowIdsSelector)(state, apiRef.current.instanceId)
|
|
119
|
-
})
|
|
120
|
-
}));
|
|
121
|
-
return;
|
|
122
|
-
}
|
|
123
|
-
|
|
124
114
|
apiRef.current.setState(state => {
|
|
115
|
+
if (props.sortingMode === _gridFeatureMode.GridFeatureModeConstant.server) {
|
|
116
|
+
logger.debug('Skipping sorting rows as sortingMode = server');
|
|
117
|
+
return (0, _extends2.default)({}, state, {
|
|
118
|
+
sorting: (0, _extends2.default)({}, state.sorting, {
|
|
119
|
+
sortedRows: (0, _rows.gridRowIdsSelector)(state, apiRef.current.instanceId)
|
|
120
|
+
})
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
|
|
125
124
|
const sortModel = (0, _gridSortingSelector.gridSortModelSelector)(state, apiRef.current.instanceId);
|
|
126
125
|
const sortRowList = (0, _gridSortingUtils.buildAggregatedSortingApplier)(sortModel, apiRef);
|
|
127
126
|
const sortedRows = apiRef.current.unstable_applyStrategyProcessor('sorting', {
|
|
@@ -133,6 +132,7 @@ const useGridSorting = (apiRef, props) => {
|
|
|
133
132
|
})
|
|
134
133
|
});
|
|
135
134
|
});
|
|
135
|
+
apiRef.current.publishEvent(_events.GridEvents.sortedRowsSet);
|
|
136
136
|
apiRef.current.forceUpdate();
|
|
137
137
|
}, [apiRef, logger, props.sortingMode]);
|
|
138
138
|
const setSortModel = React.useCallback(model => {
|
|
@@ -219,8 +219,8 @@ const useGridSorting = (apiRef, props) => {
|
|
|
219
219
|
const rowTree = (0, _rows.gridRowTreeSelector)(apiRef);
|
|
220
220
|
return params.sortRowList(Object.values(rowTree));
|
|
221
221
|
}, [apiRef]);
|
|
222
|
-
(0,
|
|
223
|
-
(0,
|
|
222
|
+
(0, _pipeProcessing.useGridRegisterPipeProcessor)(apiRef, 'exportState', stateExportPreProcessing);
|
|
223
|
+
(0, _pipeProcessing.useGridRegisterPipeProcessor)(apiRef, 'restoreState', stateRestorePreProcessing);
|
|
224
224
|
(0, _strategyProcessing.useGridRegisterStrategyProcessor)(apiRef, _strategyProcessing.GRID_DEFAULT_STRATEGY, 'sorting', flatSortingMethod);
|
|
225
225
|
/**
|
|
226
226
|
* EVENTS
|
|
@@ -15,11 +15,11 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
15
15
|
|
|
16
16
|
const useGridStatePersistence = apiRef => {
|
|
17
17
|
const exportState = React.useCallback(() => {
|
|
18
|
-
const stateToExport = apiRef.current.
|
|
18
|
+
const stateToExport = apiRef.current.unstable_applyPipeProcessors('exportState', {});
|
|
19
19
|
return stateToExport;
|
|
20
20
|
}, [apiRef]);
|
|
21
21
|
const restoreState = React.useCallback(stateToRestore => {
|
|
22
|
-
const response = apiRef.current.
|
|
22
|
+
const response = apiRef.current.unstable_applyPipeProcessors('restoreState', {
|
|
23
23
|
callbacks: []
|
|
24
24
|
}, {
|
|
25
25
|
stateToRestore
|
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
8
|
exports.getIndexFromScroll = getIndexFromScroll;
|
|
9
|
-
exports.useGridVirtualScroller = void 0;
|
|
9
|
+
exports.useGridVirtualScroller = exports.getRenderableIndexes = void 0;
|
|
10
10
|
|
|
11
11
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
12
12
|
|
|
@@ -14,6 +14,8 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
|
|
|
14
14
|
|
|
15
15
|
var React = _interopRequireWildcard(require("react"));
|
|
16
16
|
|
|
17
|
+
var ReactDOM = _interopRequireWildcard(require("react-dom"));
|
|
18
|
+
|
|
17
19
|
var _utils = require("@mui/material/utils");
|
|
18
20
|
|
|
19
21
|
var _useGridApiContext = require("../../utils/useGridApiContext");
|
|
@@ -42,6 +44,8 @@ var _gridSelectionSelector = require("../selection/gridSelectionSelector");
|
|
|
42
44
|
|
|
43
45
|
var _gridRowsMetaSelector = require("../rows/gridRowsMetaSelector");
|
|
44
46
|
|
|
47
|
+
var _gridColumnsUtils = require("../columns/gridColumnsUtils");
|
|
48
|
+
|
|
45
49
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
46
50
|
|
|
47
51
|
const _excluded = ["style"];
|
|
@@ -65,9 +69,19 @@ function getIndexFromScroll(offset, positions, sliceStart = 0, sliceEnd = positi
|
|
|
65
69
|
return offset <= itemOffset ? getIndexFromScroll(offset, positions, sliceStart, pivot) : getIndexFromScroll(offset, positions, pivot + 1, sliceEnd);
|
|
66
70
|
}
|
|
67
71
|
|
|
68
|
-
const
|
|
69
|
-
|
|
72
|
+
const getRenderableIndexes = ({
|
|
73
|
+
firstIndex,
|
|
74
|
+
lastIndex,
|
|
75
|
+
buffer,
|
|
76
|
+
minFirstIndex,
|
|
77
|
+
maxLastIndex
|
|
78
|
+
}) => {
|
|
79
|
+
return [(0, _utils2.clamp)(firstIndex - buffer, minFirstIndex, maxLastIndex), (0, _utils2.clamp)(lastIndex + buffer, minFirstIndex, maxLastIndex)];
|
|
80
|
+
};
|
|
70
81
|
|
|
82
|
+
exports.getRenderableIndexes = getRenderableIndexes;
|
|
83
|
+
|
|
84
|
+
const useGridVirtualScroller = props => {
|
|
71
85
|
const apiRef = (0, _useGridApiContext.useGridApiContext)();
|
|
72
86
|
const rootProps = (0, _useGridRootProps.useGridRootProps)();
|
|
73
87
|
const visibleColumns = (0, _useGridSelector.useGridSelector)(apiRef, _gridColumnsSelector.gridVisibleColumnDefinitionsSelector);
|
|
@@ -142,34 +156,28 @@ const useGridVirtualScroller = props => {
|
|
|
142
156
|
}
|
|
143
157
|
}, []);
|
|
144
158
|
(0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, _events.GridEvents.resize, handleResize);
|
|
145
|
-
|
|
146
|
-
const getRenderableIndexes = ({
|
|
147
|
-
firstIndex,
|
|
148
|
-
lastIndex,
|
|
149
|
-
buffer,
|
|
150
|
-
minFirstIndex,
|
|
151
|
-
maxLastIndex
|
|
152
|
-
}) => {
|
|
153
|
-
return [(0, _utils2.clamp)(firstIndex - buffer, minFirstIndex, maxLastIndex), (0, _utils2.clamp)(lastIndex + buffer, minFirstIndex, maxLastIndex)];
|
|
154
|
-
};
|
|
155
|
-
|
|
156
159
|
const updateRenderZonePosition = React.useCallback(nextRenderContext => {
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
const [firstRowToRender] = getRenderableIndexes({
|
|
160
|
+
const [firstRowToRender, lastRowToRender] = getRenderableIndexes({
|
|
160
161
|
firstIndex: nextRenderContext.firstRowIndex,
|
|
161
162
|
lastIndex: nextRenderContext.lastRowIndex,
|
|
162
163
|
minFirstIndex: 0,
|
|
163
|
-
maxLastIndex:
|
|
164
|
+
maxLastIndex: currentPage.rows.length,
|
|
164
165
|
buffer: rootProps.rowBuffer
|
|
165
166
|
});
|
|
166
|
-
const [
|
|
167
|
+
const [initialFirstColumnToRender] = getRenderableIndexes({
|
|
167
168
|
firstIndex: nextRenderContext.firstColumnIndex,
|
|
168
169
|
lastIndex: nextRenderContext.lastColumnIndex,
|
|
169
170
|
minFirstIndex: renderZoneMinColumnIndex,
|
|
170
171
|
maxLastIndex: renderZoneMaxColumnIndex,
|
|
171
172
|
buffer: rootProps.columnBuffer
|
|
172
173
|
});
|
|
174
|
+
const firstColumnToRender = (0, _gridColumnsUtils.getFirstNonSpannedColumnToRender)({
|
|
175
|
+
firstColumnToRender: initialFirstColumnToRender,
|
|
176
|
+
apiRef,
|
|
177
|
+
firstRowToRender,
|
|
178
|
+
lastRowToRender,
|
|
179
|
+
visibleRows: currentPage.rows
|
|
180
|
+
});
|
|
173
181
|
const top = (0, _gridRowsMetaSelector.gridRowsMetaSelector)(apiRef.current.state).positions[firstRowToRender];
|
|
174
182
|
const left = (0, _gridColumnsSelector.gridColumnPositionsSelector)(apiRef)[firstColumnToRender]; // Call directly the selector because it might be outdated when this method is called
|
|
175
183
|
|
|
@@ -181,19 +189,22 @@ const useGridVirtualScroller = props => {
|
|
|
181
189
|
left
|
|
182
190
|
});
|
|
183
191
|
}
|
|
184
|
-
}, [apiRef,
|
|
192
|
+
}, [apiRef, currentPage.rows, onRenderZonePositioning, renderZoneMinColumnIndex, renderZoneMaxColumnIndex, rootProps.columnBuffer, rootProps.rowBuffer]);
|
|
193
|
+
React.useLayoutEffect(() => {
|
|
194
|
+
if (renderContext) {
|
|
195
|
+
updateRenderZonePosition(renderContext);
|
|
196
|
+
}
|
|
197
|
+
}, [renderContext, updateRenderZonePosition]);
|
|
185
198
|
const updateRenderContext = React.useCallback(nextRenderContext => {
|
|
186
199
|
setRenderContext(nextRenderContext);
|
|
187
|
-
updateRenderZonePosition(nextRenderContext);
|
|
188
200
|
prevRenderContext.current = nextRenderContext;
|
|
189
|
-
}, [setRenderContext, prevRenderContext
|
|
201
|
+
}, [setRenderContext, prevRenderContext]);
|
|
190
202
|
React.useEffect(() => {
|
|
191
203
|
if (containerWidth == null) {
|
|
192
204
|
return;
|
|
193
205
|
}
|
|
194
206
|
|
|
195
207
|
const initialRenderContext = computeRenderContext();
|
|
196
|
-
prevRenderContext.current = initialRenderContext;
|
|
197
208
|
updateRenderContext(initialRenderContext);
|
|
198
209
|
const {
|
|
199
210
|
top,
|
|
@@ -231,14 +242,25 @@ const useGridVirtualScroller = props => {
|
|
|
231
242
|
top: scrollTop,
|
|
232
243
|
left: scrollLeft,
|
|
233
244
|
renderContext: shouldSetState ? nextRenderContext : prevRenderContext.current
|
|
234
|
-
});
|
|
245
|
+
}, event);
|
|
235
246
|
|
|
236
247
|
if (shouldSetState) {
|
|
237
|
-
|
|
248
|
+
// Prevents batching render context changes
|
|
249
|
+
ReactDOM.flushSync(() => {
|
|
250
|
+
updateRenderContext(nextRenderContext);
|
|
251
|
+
});
|
|
238
252
|
prevTotalWidth.current = columnsTotalWidth;
|
|
239
253
|
}
|
|
240
254
|
};
|
|
241
255
|
|
|
256
|
+
const handleWheel = event => {
|
|
257
|
+
apiRef.current.publishEvent(_events.GridEvents.virtualScrollerWheel, {}, event);
|
|
258
|
+
};
|
|
259
|
+
|
|
260
|
+
const handleTouchMove = event => {
|
|
261
|
+
apiRef.current.publishEvent(_events.GridEvents.virtualScrollerTouchMove, {}, event);
|
|
262
|
+
};
|
|
263
|
+
|
|
242
264
|
const getRows = (params = {
|
|
243
265
|
renderContext
|
|
244
266
|
}) => {
|
|
@@ -262,14 +284,32 @@ const useGridVirtualScroller = props => {
|
|
|
262
284
|
maxLastIndex: currentPage.rows.length,
|
|
263
285
|
buffer: rowBuffer
|
|
264
286
|
});
|
|
265
|
-
const
|
|
287
|
+
const renderedRows = [];
|
|
288
|
+
|
|
289
|
+
for (let i = firstRowToRender; i < lastRowToRender; i += 1) {
|
|
290
|
+
const row = currentPage.rows[i];
|
|
291
|
+
renderedRows.push(row);
|
|
292
|
+
apiRef.current.unstable_calculateColSpan({
|
|
293
|
+
rowId: row.id,
|
|
294
|
+
minFirstColumn,
|
|
295
|
+
maxLastColumn
|
|
296
|
+
});
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
const [initialFirstColumnToRender, lastColumnToRender] = getRenderableIndexes({
|
|
266
300
|
firstIndex: nextRenderContext.firstColumnIndex,
|
|
267
301
|
lastIndex: nextRenderContext.lastColumnIndex,
|
|
268
302
|
minFirstIndex: minFirstColumn,
|
|
269
303
|
maxLastIndex: maxLastColumn,
|
|
270
304
|
buffer: columnBuffer
|
|
271
305
|
});
|
|
272
|
-
const
|
|
306
|
+
const firstColumnToRender = (0, _gridColumnsUtils.getFirstNonSpannedColumnToRender)({
|
|
307
|
+
firstColumnToRender: initialFirstColumnToRender,
|
|
308
|
+
apiRef,
|
|
309
|
+
firstRowToRender,
|
|
310
|
+
lastRowToRender,
|
|
311
|
+
visibleRows: currentPage.rows
|
|
312
|
+
});
|
|
273
313
|
const renderedColumns = visibleColumns.slice(firstColumnToRender, lastColumnToRender);
|
|
274
314
|
const rows = [];
|
|
275
315
|
|
|
@@ -370,6 +410,8 @@ const useGridVirtualScroller = props => {
|
|
|
370
410
|
return (0, _extends2.default)({
|
|
371
411
|
ref: handleRef,
|
|
372
412
|
onScroll: handleScroll,
|
|
413
|
+
onWheel: handleWheel,
|
|
414
|
+
onTouchMove: handleTouchMove,
|
|
373
415
|
style: (0, _extends2.default)({}, style, rootStyle)
|
|
374
416
|
}, other);
|
|
375
417
|
},
|
package/node/index.js
CHANGED
package/node/internals/index.js
CHANGED
|
@@ -159,6 +159,12 @@ Object.defineProperty(exports, "useGridColumnMenu", {
|
|
|
159
159
|
return _useGridColumnMenu.useGridColumnMenu;
|
|
160
160
|
}
|
|
161
161
|
});
|
|
162
|
+
Object.defineProperty(exports, "useGridColumnSpanning", {
|
|
163
|
+
enumerable: true,
|
|
164
|
+
get: function () {
|
|
165
|
+
return _useGridColumnSpanning.useGridColumnSpanning;
|
|
166
|
+
}
|
|
167
|
+
});
|
|
162
168
|
Object.defineProperty(exports, "useGridColumns", {
|
|
163
169
|
enumerable: true,
|
|
164
170
|
get: function () {
|
|
@@ -225,12 +231,6 @@ Object.defineProperty(exports, "useGridInitializeState", {
|
|
|
225
231
|
return _useGridInitializeState.useGridInitializeState;
|
|
226
232
|
}
|
|
227
233
|
});
|
|
228
|
-
Object.defineProperty(exports, "useGridKeyboard", {
|
|
229
|
-
enumerable: true,
|
|
230
|
-
get: function () {
|
|
231
|
-
return _useGridKeyboard.useGridKeyboard;
|
|
232
|
-
}
|
|
233
|
-
});
|
|
234
234
|
Object.defineProperty(exports, "useGridKeyboardNavigation", {
|
|
235
235
|
enumerable: true,
|
|
236
236
|
get: function () {
|
|
@@ -261,10 +261,10 @@ Object.defineProperty(exports, "useGridPrintExport", {
|
|
|
261
261
|
return _useGridPrintExport.useGridPrintExport;
|
|
262
262
|
}
|
|
263
263
|
});
|
|
264
|
-
Object.defineProperty(exports, "
|
|
264
|
+
Object.defineProperty(exports, "useGridRegisterPipeProcessor", {
|
|
265
265
|
enumerable: true,
|
|
266
266
|
get: function () {
|
|
267
|
-
return
|
|
267
|
+
return _pipeProcessing.useGridRegisterPipeProcessor;
|
|
268
268
|
}
|
|
269
269
|
});
|
|
270
270
|
Object.defineProperty(exports, "useGridRegisterStrategyProcessor", {
|
|
@@ -344,7 +344,7 @@ var _GridColumnHeaders = require("../components/columnHeaders/GridColumnHeaders"
|
|
|
344
344
|
|
|
345
345
|
var _GridColumnHeadersInner = require("../components/columnHeaders/GridColumnHeadersInner");
|
|
346
346
|
|
|
347
|
-
var
|
|
347
|
+
var _pipeProcessing = require("../hooks/core/pipeProcessing");
|
|
348
348
|
|
|
349
349
|
var _strategyProcessing = require("../hooks/core/strategyProcessing");
|
|
350
350
|
|
|
@@ -358,6 +358,8 @@ var _useGridColumnMenu = require("../hooks/features/columnMenu/useGridColumnMenu
|
|
|
358
358
|
|
|
359
359
|
var _useGridColumns = require("../hooks/features/columns/useGridColumns");
|
|
360
360
|
|
|
361
|
+
var _useGridColumnSpanning = require("../hooks/features/columns/useGridColumnSpanning");
|
|
362
|
+
|
|
361
363
|
var _useGridDensity = require("../hooks/features/density/useGridDensity");
|
|
362
364
|
|
|
363
365
|
var _useGridCsvExport = require("../hooks/features/export/useGridCsvExport");
|
|
@@ -368,9 +370,7 @@ var _useGridFilter = require("../hooks/features/filter/useGridFilter");
|
|
|
368
370
|
|
|
369
371
|
var _useGridFocus = require("../hooks/features/focus/useGridFocus");
|
|
370
372
|
|
|
371
|
-
var
|
|
372
|
-
|
|
373
|
-
var _useGridKeyboardNavigation = require("../hooks/features/keyboard/useGridKeyboardNavigation");
|
|
373
|
+
var _useGridKeyboardNavigation = require("../hooks/features/keyboardNavigation/useGridKeyboardNavigation");
|
|
374
374
|
|
|
375
375
|
var _useGridPagination = require("../hooks/features/pagination/useGridPagination");
|
|
376
376
|
|
package/node/locales/arSD.js
CHANGED
|
@@ -112,7 +112,9 @@ const arSDGrid = {
|
|
|
112
112
|
unGroupColumn: name => `إيقاف التجميع حسب ${name}`,
|
|
113
113
|
// Master/detail
|
|
114
114
|
expandDetailPanel: 'توسيع',
|
|
115
|
-
collapseDetailPanel: 'طوي'
|
|
115
|
+
collapseDetailPanel: 'طوي' // Row reordering text
|
|
116
|
+
// rowReorderingHeaderName: 'Row reordering',
|
|
117
|
+
|
|
116
118
|
};
|
|
117
119
|
const arSD = (0, _getGridLocalization.getGridLocalization)(arSDGrid, _locale.arSD);
|
|
118
120
|
exports.arSD = arSD;
|
package/node/locales/bgBG.js
CHANGED
|
@@ -112,7 +112,9 @@ const bgBGGrid = {
|
|
|
112
112
|
unGroupColumn: name => `Спри групиране по ${name}`,
|
|
113
113
|
// Master/detail
|
|
114
114
|
expandDetailPanel: 'Разгъване',
|
|
115
|
-
collapseDetailPanel: 'Свиване'
|
|
115
|
+
collapseDetailPanel: 'Свиване' // Row reordering text
|
|
116
|
+
// rowReorderingHeaderName: 'Row reordering',
|
|
117
|
+
|
|
116
118
|
};
|
|
117
119
|
const bgBG = (0, _getGridLocalization.getGridLocalization)(bgBGGrid, _locale.bgBG);
|
|
118
120
|
exports.bgBG = bgBG;
|
package/node/locales/csCZ.js
CHANGED
|
@@ -147,6 +147,8 @@ const csCZGrid = {
|
|
|
147
147
|
unGroupColumn: name => `Přestat zoskupovat podle ${name}` // Master/detail
|
|
148
148
|
// expandDetailPanel: 'Expand',
|
|
149
149
|
// collapseDetailPanel: 'Collapse',
|
|
150
|
+
// Row reordering text
|
|
151
|
+
// rowReorderingHeaderName: 'Row reordering',
|
|
150
152
|
|
|
151
153
|
};
|
|
152
154
|
const csCZ = (0, _getGridLocalization.getGridLocalization)(csCZGrid, _locale.csCZ);
|