@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
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { GridSortingModelApplier } from './gridSortingState';
|
|
2
|
-
import type { GridCellValue } from '../../../models';
|
|
3
2
|
import { GridApiCommunity } from '../../../models/api/gridApiCommunity';
|
|
4
3
|
import { GridStateCommunity } from '../../../models/gridStateCommunity';
|
|
5
4
|
import { GridComparatorFn, GridSortDirection, GridSortModel } from '../../../models/gridSortModel';
|
|
@@ -15,4 +14,4 @@ export declare const buildAggregatedSortingApplier: (sortModel: GridSortModel, a
|
|
|
15
14
|
export declare const getNextGridSortDirection: (sortingOrder: GridSortDirection[], current?: GridSortDirection) => GridSortDirection;
|
|
16
15
|
export declare const gridStringOrNumberComparator: GridComparatorFn;
|
|
17
16
|
export declare const gridNumberComparator: GridComparatorFn;
|
|
18
|
-
export declare const gridDateComparator:
|
|
17
|
+
export declare const gridDateComparator: GridComparatorFn;
|
|
@@ -12,7 +12,7 @@ import { gridRowIdsSelector, gridRowTreeSelector } from '../rows';
|
|
|
12
12
|
import { useFirstRender } from '../../utils/useFirstRender';
|
|
13
13
|
import { useGridRegisterStrategyProcessor, GRID_DEFAULT_STRATEGY } from '../../core/strategyProcessing';
|
|
14
14
|
import { buildAggregatedSortingApplier, mergeStateWithSortModel, getNextGridSortDirection, sanitizeSortModel } from './gridSortingUtils';
|
|
15
|
-
import {
|
|
15
|
+
import { useGridRegisterPipeProcessor } from '../../core/pipeProcessing';
|
|
16
16
|
export const sortingStateInitializer = (state, props) => {
|
|
17
17
|
var _ref, _props$sortModel, _props$initialState, _props$initialState$s;
|
|
18
18
|
|
|
@@ -80,17 +80,16 @@ export const useGridSorting = (apiRef, props) => {
|
|
|
80
80
|
*/
|
|
81
81
|
|
|
82
82
|
const applySorting = React.useCallback(() => {
|
|
83
|
-
if (props.sortingMode === GridFeatureModeConstant.server) {
|
|
84
|
-
logger.debug('Skipping sorting rows as sortingMode = server');
|
|
85
|
-
apiRef.current.setState(state => _extends({}, state, {
|
|
86
|
-
sorting: _extends({}, state.sorting, {
|
|
87
|
-
sortedRows: gridRowIdsSelector(state, apiRef.current.instanceId)
|
|
88
|
-
})
|
|
89
|
-
}));
|
|
90
|
-
return;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
83
|
apiRef.current.setState(state => {
|
|
84
|
+
if (props.sortingMode === GridFeatureModeConstant.server) {
|
|
85
|
+
logger.debug('Skipping sorting rows as sortingMode = server');
|
|
86
|
+
return _extends({}, state, {
|
|
87
|
+
sorting: _extends({}, state.sorting, {
|
|
88
|
+
sortedRows: gridRowIdsSelector(state, apiRef.current.instanceId)
|
|
89
|
+
})
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
|
|
94
93
|
const sortModel = gridSortModelSelector(state, apiRef.current.instanceId);
|
|
95
94
|
const sortRowList = buildAggregatedSortingApplier(sortModel, apiRef);
|
|
96
95
|
const sortedRows = apiRef.current.unstable_applyStrategyProcessor('sorting', {
|
|
@@ -102,6 +101,7 @@ export const useGridSorting = (apiRef, props) => {
|
|
|
102
101
|
})
|
|
103
102
|
});
|
|
104
103
|
});
|
|
104
|
+
apiRef.current.publishEvent(GridEvents.sortedRowsSet);
|
|
105
105
|
apiRef.current.forceUpdate();
|
|
106
106
|
}, [apiRef, logger, props.sortingMode]);
|
|
107
107
|
const setSortModel = React.useCallback(model => {
|
|
@@ -188,8 +188,8 @@ export const useGridSorting = (apiRef, props) => {
|
|
|
188
188
|
const rowTree = gridRowTreeSelector(apiRef);
|
|
189
189
|
return params.sortRowList(Object.values(rowTree));
|
|
190
190
|
}, [apiRef]);
|
|
191
|
-
|
|
192
|
-
|
|
191
|
+
useGridRegisterPipeProcessor(apiRef, 'exportState', stateExportPreProcessing);
|
|
192
|
+
useGridRegisterPipeProcessor(apiRef, 'restoreState', stateRestorePreProcessing);
|
|
193
193
|
useGridRegisterStrategyProcessor(apiRef, GRID_DEFAULT_STRATEGY, 'sorting', flatSortingMethod);
|
|
194
194
|
/**
|
|
195
195
|
* EVENTS
|
|
@@ -2,11 +2,11 @@ import * as React from 'react';
|
|
|
2
2
|
import { useGridApiMethod } from '../../utils';
|
|
3
3
|
export const useGridStatePersistence = apiRef => {
|
|
4
4
|
const exportState = React.useCallback(() => {
|
|
5
|
-
const stateToExport = apiRef.current.
|
|
5
|
+
const stateToExport = apiRef.current.unstable_applyPipeProcessors('exportState', {});
|
|
6
6
|
return stateToExport;
|
|
7
7
|
}, [apiRef]);
|
|
8
8
|
const restoreState = React.useCallback(stateToRestore => {
|
|
9
|
-
const response = apiRef.current.
|
|
9
|
+
const response = apiRef.current.unstable_applyPipeProcessors('restoreState', {
|
|
10
10
|
callbacks: []
|
|
11
11
|
}, {
|
|
12
12
|
stateToRestore
|
|
@@ -2,6 +2,13 @@ import * as React from 'react';
|
|
|
2
2
|
import { GridRenderContext } from '../../../models';
|
|
3
3
|
import { GridRowId, GridRowModel } from '../../../models/gridRows';
|
|
4
4
|
export declare function getIndexFromScroll(offset: number, positions: number[], sliceStart?: number, sliceEnd?: number): number;
|
|
5
|
+
export declare const getRenderableIndexes: ({ firstIndex, lastIndex, buffer, minFirstIndex, maxLastIndex, }: {
|
|
6
|
+
firstIndex: number;
|
|
7
|
+
lastIndex: number;
|
|
8
|
+
buffer: number;
|
|
9
|
+
minFirstIndex: number;
|
|
10
|
+
maxLastIndex: number;
|
|
11
|
+
}) => number[];
|
|
5
12
|
interface UseGridVirtualScrollerProps {
|
|
6
13
|
ref: React.Ref<HTMLDivElement>;
|
|
7
14
|
disableVirtualization?: boolean;
|
|
@@ -27,6 +34,8 @@ export declare const useGridVirtualScroller: (props: UseGridVirtualScrollerProps
|
|
|
27
34
|
}) => {
|
|
28
35
|
ref: React.Ref<HTMLDivElement>;
|
|
29
36
|
onScroll: (event: React.UIEvent) => void;
|
|
37
|
+
onWheel: (event: React.WheelEvent) => void;
|
|
38
|
+
onTouchMove: (event: React.TouchEvent) => void;
|
|
30
39
|
style: {
|
|
31
40
|
accentColor?: import("csstype").Property.AccentColor | undefined;
|
|
32
41
|
alignContent?: import("csstype").Property.AlignContent | undefined;
|
|
@@ -2,6 +2,7 @@ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWith
|
|
|
2
2
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
3
3
|
const _excluded = ["style"];
|
|
4
4
|
import * as React from 'react';
|
|
5
|
+
import * as ReactDOM from 'react-dom';
|
|
5
6
|
import { useForkRef } from '@mui/material/utils';
|
|
6
7
|
import { useGridApiContext } from '../../utils/useGridApiContext';
|
|
7
8
|
import { useGridRootProps } from '../../utils/useGridRootProps';
|
|
@@ -16,8 +17,9 @@ import { useGridApiEventHandler } from '../../utils/useGridApiEventHandler';
|
|
|
16
17
|
import { clamp } from '../../../utils/utils';
|
|
17
18
|
import { selectedIdsLookupSelector } from '../selection/gridSelectionSelector';
|
|
18
19
|
import { gridRowsMetaSelector } from '../rows/gridRowsMetaSelector';
|
|
20
|
+
import { getFirstNonSpannedColumnToRender } from '../columns/gridColumnsUtils'; // Uses binary search to avoid looping through all possible positions
|
|
21
|
+
|
|
19
22
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
20
|
-
// Uses binary search to avoid looping through all possible positions
|
|
21
23
|
export function getIndexFromScroll(offset, positions, sliceStart = 0, sliceEnd = positions.length) {
|
|
22
24
|
if (positions.length <= 0) {
|
|
23
25
|
return -1;
|
|
@@ -31,9 +33,16 @@ export function getIndexFromScroll(offset, positions, sliceStart = 0, sliceEnd =
|
|
|
31
33
|
const itemOffset = positions[pivot];
|
|
32
34
|
return offset <= itemOffset ? getIndexFromScroll(offset, positions, sliceStart, pivot) : getIndexFromScroll(offset, positions, pivot + 1, sliceEnd);
|
|
33
35
|
}
|
|
36
|
+
export const getRenderableIndexes = ({
|
|
37
|
+
firstIndex,
|
|
38
|
+
lastIndex,
|
|
39
|
+
buffer,
|
|
40
|
+
minFirstIndex,
|
|
41
|
+
maxLastIndex
|
|
42
|
+
}) => {
|
|
43
|
+
return [clamp(firstIndex - buffer, minFirstIndex, maxLastIndex), clamp(lastIndex + buffer, minFirstIndex, maxLastIndex)];
|
|
44
|
+
};
|
|
34
45
|
export const useGridVirtualScroller = props => {
|
|
35
|
-
var _currentPage$range2;
|
|
36
|
-
|
|
37
46
|
const apiRef = useGridApiContext();
|
|
38
47
|
const rootProps = useGridRootProps();
|
|
39
48
|
const visibleColumns = useGridSelector(apiRef, gridVisibleColumnDefinitionsSelector);
|
|
@@ -108,34 +117,28 @@ export const useGridVirtualScroller = props => {
|
|
|
108
117
|
}
|
|
109
118
|
}, []);
|
|
110
119
|
useGridApiEventHandler(apiRef, GridEvents.resize, handleResize);
|
|
111
|
-
|
|
112
|
-
const getRenderableIndexes = ({
|
|
113
|
-
firstIndex,
|
|
114
|
-
lastIndex,
|
|
115
|
-
buffer,
|
|
116
|
-
minFirstIndex,
|
|
117
|
-
maxLastIndex
|
|
118
|
-
}) => {
|
|
119
|
-
return [clamp(firstIndex - buffer, minFirstIndex, maxLastIndex), clamp(lastIndex + buffer, minFirstIndex, maxLastIndex)];
|
|
120
|
-
};
|
|
121
|
-
|
|
122
120
|
const updateRenderZonePosition = React.useCallback(nextRenderContext => {
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
const [firstRowToRender] = getRenderableIndexes({
|
|
121
|
+
const [firstRowToRender, lastRowToRender] = getRenderableIndexes({
|
|
126
122
|
firstIndex: nextRenderContext.firstRowIndex,
|
|
127
123
|
lastIndex: nextRenderContext.lastRowIndex,
|
|
128
124
|
minFirstIndex: 0,
|
|
129
|
-
maxLastIndex:
|
|
125
|
+
maxLastIndex: currentPage.rows.length,
|
|
130
126
|
buffer: rootProps.rowBuffer
|
|
131
127
|
});
|
|
132
|
-
const [
|
|
128
|
+
const [initialFirstColumnToRender] = getRenderableIndexes({
|
|
133
129
|
firstIndex: nextRenderContext.firstColumnIndex,
|
|
134
130
|
lastIndex: nextRenderContext.lastColumnIndex,
|
|
135
131
|
minFirstIndex: renderZoneMinColumnIndex,
|
|
136
132
|
maxLastIndex: renderZoneMaxColumnIndex,
|
|
137
133
|
buffer: rootProps.columnBuffer
|
|
138
134
|
});
|
|
135
|
+
const firstColumnToRender = getFirstNonSpannedColumnToRender({
|
|
136
|
+
firstColumnToRender: initialFirstColumnToRender,
|
|
137
|
+
apiRef,
|
|
138
|
+
firstRowToRender,
|
|
139
|
+
lastRowToRender,
|
|
140
|
+
visibleRows: currentPage.rows
|
|
141
|
+
});
|
|
139
142
|
const top = gridRowsMetaSelector(apiRef.current.state).positions[firstRowToRender];
|
|
140
143
|
const left = gridColumnPositionsSelector(apiRef)[firstColumnToRender]; // Call directly the selector because it might be outdated when this method is called
|
|
141
144
|
|
|
@@ -147,19 +150,22 @@ export const useGridVirtualScroller = props => {
|
|
|
147
150
|
left
|
|
148
151
|
});
|
|
149
152
|
}
|
|
150
|
-
}, [apiRef,
|
|
153
|
+
}, [apiRef, currentPage.rows, onRenderZonePositioning, renderZoneMinColumnIndex, renderZoneMaxColumnIndex, rootProps.columnBuffer, rootProps.rowBuffer]);
|
|
154
|
+
React.useLayoutEffect(() => {
|
|
155
|
+
if (renderContext) {
|
|
156
|
+
updateRenderZonePosition(renderContext);
|
|
157
|
+
}
|
|
158
|
+
}, [renderContext, updateRenderZonePosition]);
|
|
151
159
|
const updateRenderContext = React.useCallback(nextRenderContext => {
|
|
152
160
|
setRenderContext(nextRenderContext);
|
|
153
|
-
updateRenderZonePosition(nextRenderContext);
|
|
154
161
|
prevRenderContext.current = nextRenderContext;
|
|
155
|
-
}, [setRenderContext, prevRenderContext
|
|
162
|
+
}, [setRenderContext, prevRenderContext]);
|
|
156
163
|
React.useEffect(() => {
|
|
157
164
|
if (containerWidth == null) {
|
|
158
165
|
return;
|
|
159
166
|
}
|
|
160
167
|
|
|
161
168
|
const initialRenderContext = computeRenderContext();
|
|
162
|
-
prevRenderContext.current = initialRenderContext;
|
|
163
169
|
updateRenderContext(initialRenderContext);
|
|
164
170
|
const {
|
|
165
171
|
top,
|
|
@@ -197,14 +203,25 @@ export const useGridVirtualScroller = props => {
|
|
|
197
203
|
top: scrollTop,
|
|
198
204
|
left: scrollLeft,
|
|
199
205
|
renderContext: shouldSetState ? nextRenderContext : prevRenderContext.current
|
|
200
|
-
});
|
|
206
|
+
}, event);
|
|
201
207
|
|
|
202
208
|
if (shouldSetState) {
|
|
203
|
-
|
|
209
|
+
// Prevents batching render context changes
|
|
210
|
+
ReactDOM.flushSync(() => {
|
|
211
|
+
updateRenderContext(nextRenderContext);
|
|
212
|
+
});
|
|
204
213
|
prevTotalWidth.current = columnsTotalWidth;
|
|
205
214
|
}
|
|
206
215
|
};
|
|
207
216
|
|
|
217
|
+
const handleWheel = event => {
|
|
218
|
+
apiRef.current.publishEvent(GridEvents.virtualScrollerWheel, {}, event);
|
|
219
|
+
};
|
|
220
|
+
|
|
221
|
+
const handleTouchMove = event => {
|
|
222
|
+
apiRef.current.publishEvent(GridEvents.virtualScrollerTouchMove, {}, event);
|
|
223
|
+
};
|
|
224
|
+
|
|
208
225
|
const getRows = (params = {
|
|
209
226
|
renderContext
|
|
210
227
|
}) => {
|
|
@@ -228,14 +245,32 @@ export const useGridVirtualScroller = props => {
|
|
|
228
245
|
maxLastIndex: currentPage.rows.length,
|
|
229
246
|
buffer: rowBuffer
|
|
230
247
|
});
|
|
231
|
-
const
|
|
248
|
+
const renderedRows = [];
|
|
249
|
+
|
|
250
|
+
for (let i = firstRowToRender; i < lastRowToRender; i += 1) {
|
|
251
|
+
const row = currentPage.rows[i];
|
|
252
|
+
renderedRows.push(row);
|
|
253
|
+
apiRef.current.unstable_calculateColSpan({
|
|
254
|
+
rowId: row.id,
|
|
255
|
+
minFirstColumn,
|
|
256
|
+
maxLastColumn
|
|
257
|
+
});
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
const [initialFirstColumnToRender, lastColumnToRender] = getRenderableIndexes({
|
|
232
261
|
firstIndex: nextRenderContext.firstColumnIndex,
|
|
233
262
|
lastIndex: nextRenderContext.lastColumnIndex,
|
|
234
263
|
minFirstIndex: minFirstColumn,
|
|
235
264
|
maxLastIndex: maxLastColumn,
|
|
236
265
|
buffer: columnBuffer
|
|
237
266
|
});
|
|
238
|
-
const
|
|
267
|
+
const firstColumnToRender = getFirstNonSpannedColumnToRender({
|
|
268
|
+
firstColumnToRender: initialFirstColumnToRender,
|
|
269
|
+
apiRef,
|
|
270
|
+
firstRowToRender,
|
|
271
|
+
lastRowToRender,
|
|
272
|
+
visibleRows: currentPage.rows
|
|
273
|
+
});
|
|
239
274
|
const renderedColumns = visibleColumns.slice(firstColumnToRender, lastColumnToRender);
|
|
240
275
|
const rows = [];
|
|
241
276
|
|
|
@@ -337,6 +372,8 @@ export const useGridVirtualScroller = props => {
|
|
|
337
372
|
return _extends({
|
|
338
373
|
ref: handleRef,
|
|
339
374
|
onScroll: handleScroll,
|
|
375
|
+
onWheel: handleWheel,
|
|
376
|
+
onTouchMove: handleTouchMove,
|
|
340
377
|
style: _extends({}, style, rootStyle)
|
|
341
378
|
}, other);
|
|
342
379
|
},
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import type { DataGridProcessedProps } from '../../models/props/DataGridProps';
|
|
2
|
-
export declare const useGridRootProps: () => DataGridProcessedProps
|
|
2
|
+
export declare const useGridRootProps: () => DataGridProcessedProps<any>;
|
|
@@ -2,7 +2,7 @@ import * as React from 'react';
|
|
|
2
2
|
import { DataGridProcessedProps } from '../../models/props/DataGridProps';
|
|
3
3
|
import type { GridApiCommon, GridRowEntry } from '../../models';
|
|
4
4
|
export declare const getVisibleRows: <Api extends GridApiCommon>(apiRef: React.MutableRefObject<Api>, props: Pick<DataGridProcessedProps, 'pagination' | 'paginationMode'>) => {
|
|
5
|
-
rows: GridRowEntry[];
|
|
5
|
+
rows: GridRowEntry<any>[];
|
|
6
6
|
range: {
|
|
7
7
|
firstRowIndex: number;
|
|
8
8
|
lastRowIndex: number;
|
|
@@ -16,7 +16,7 @@ export declare const getVisibleRows: <Api extends GridApiCommon>(apiRef: React.M
|
|
|
16
16
|
* - If the row tree is flat, it only contains up to `state.pageSize` rows.
|
|
17
17
|
*/
|
|
18
18
|
export declare const useGridVisibleRows: <Api extends GridApiCommon>(apiRef: React.MutableRefObject<Api>, props: Pick<DataGridProcessedProps, 'pagination' | 'paginationMode'>) => {
|
|
19
|
-
rows: GridRowEntry[];
|
|
19
|
+
rows: GridRowEntry<any>[];
|
|
20
20
|
range: {
|
|
21
21
|
firstRowIndex: number;
|
|
22
22
|
lastRowIndex: number;
|
package/index.js
CHANGED
package/internals/index.d.ts
CHANGED
|
@@ -3,8 +3,8 @@ 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 {
|
|
7
|
-
export type {
|
|
6
|
+
export { useGridRegisterPipeProcessor } from '../hooks/core/pipeProcessing';
|
|
7
|
+
export type { GridPipeProcessor } from '../hooks/core/pipeProcessing';
|
|
8
8
|
export { useGridRegisterStrategyProcessor } from '../hooks/core/strategyProcessing';
|
|
9
9
|
export type { GridStrategyProcessor } from '../hooks/core/strategyProcessing';
|
|
10
10
|
export { useGridInitialization } from '../hooks/core/useGridInitialization';
|
|
@@ -12,6 +12,7 @@ export { useGridClipboard } from '../hooks/features/clipboard/useGridClipboard';
|
|
|
12
12
|
export { useGridColumnHeaders } from '../hooks/features/columnHeaders/useGridColumnHeaders';
|
|
13
13
|
export { useGridColumnMenu, columnMenuStateInitializer, } from '../hooks/features/columnMenu/useGridColumnMenu';
|
|
14
14
|
export { useGridColumns, columnsStateInitializer } from '../hooks/features/columns/useGridColumns';
|
|
15
|
+
export { useGridColumnSpanning } from '../hooks/features/columns/useGridColumnSpanning';
|
|
15
16
|
export type { GridColumnRawLookup, GridColumnsRawState, GridHydrateColumnsValue, } from '../hooks/features/columns/gridColumnsInterfaces';
|
|
16
17
|
export { useGridDensity, densityStateInitializer } from '../hooks/features/density/useGridDensity';
|
|
17
18
|
export { useGridCsvExport } from '../hooks/features/export/useGridCsvExport';
|
|
@@ -19,8 +20,7 @@ export { useGridPrintExport } from '../hooks/features/export/useGridPrintExport'
|
|
|
19
20
|
export { useGridFilter, filterStateInitializer } from '../hooks/features/filter/useGridFilter';
|
|
20
21
|
export type { GridAggregatedFilterItemApplier } from '../hooks/features/filter/gridFilterState';
|
|
21
22
|
export { useGridFocus, focusStateInitializer } from '../hooks/features/focus/useGridFocus';
|
|
22
|
-
export {
|
|
23
|
-
export { useGridKeyboardNavigation } from '../hooks/features/keyboard/useGridKeyboardNavigation';
|
|
23
|
+
export { useGridKeyboardNavigation } from '../hooks/features/keyboardNavigation/useGridKeyboardNavigation';
|
|
24
24
|
export { useGridPagination, paginationStateInitializer, } from '../hooks/features/pagination/useGridPagination';
|
|
25
25
|
export { useGridPreferencesPanel, preferencePanelStateInitializer, } from '../hooks/features/preferencesPanel/useGridPreferencesPanel';
|
|
26
26
|
export { useGridEditing as useGridEditing_new, editingStateInitializer as editingStateInitializer_new, } from '../hooks/features/editRows/useGridEditing.new';
|
|
@@ -43,8 +43,6 @@ export { useGridVirtualScroller } from '../hooks/features/virtualization/useGrid
|
|
|
43
43
|
export { useGridVisibleRows } from '../hooks/utils/useGridVisibleRows';
|
|
44
44
|
export { useGridInitializeState } from '../hooks/utils/useGridInitializeState';
|
|
45
45
|
export type { GridStateInitializer } from '../hooks/utils/useGridInitializeState';
|
|
46
|
-
export type { GridComparatorFn, GridSortCellParams } from '../models/gridSortModel';
|
|
47
|
-
export type { GridSortModelParams } from '../models/params/gridSortModelParams';
|
|
48
46
|
export type { GridExperimentalFeatures, DataGridPropsWithoutDefaultValue, DataGridPropsWithDefaultValues, DataGridPropsWithComplexDefaultValueAfterProcessing, DataGridPropsWithComplexDefaultValueBeforeProcessing, } from '../models/props/DataGridProps';
|
|
49
47
|
export { createSelector } from '../utils/createSelector';
|
|
50
48
|
export { findParentElementFromClassName } from '../utils/domUtils';
|
package/internals/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';
|
|
@@ -460,7 +460,7 @@ DataGridRaw.propTypes = {
|
|
|
460
460
|
* @param {GridEditCellPropsParams} params With all properties from [[GridEditCellPropsParams]].
|
|
461
461
|
* @param {MuiEvent<React.SyntheticEvent>} event The event that caused this prop to be called.
|
|
462
462
|
* @param {GridCallbackDetails} details Additional details for this callback.
|
|
463
|
-
* @deprecated use `preProcessEditCellProps` from the [`GridColDef`](/api/data-grid/grid-col-def/)
|
|
463
|
+
* @deprecated use `preProcessEditCellProps` from the [`GridColDef`](/x/api/data-grid/grid-col-def/)
|
|
464
464
|
*/
|
|
465
465
|
onEditCellPropsChange: PropTypes.func,
|
|
466
466
|
|
|
@@ -500,6 +500,28 @@ DataGridRaw.propTypes = {
|
|
|
500
500
|
*/
|
|
501
501
|
onPageSizeChange: PropTypes.func,
|
|
502
502
|
|
|
503
|
+
/**
|
|
504
|
+
* Callback fired when the preferences panel is closed.
|
|
505
|
+
* @param {GridPreferencePanelParams} params With all properties from [[GridPreferencePanelParams]].
|
|
506
|
+
* @param {MuiEvent<{}>} event The event object.
|
|
507
|
+
* @param {GridCallbackDetails} details Additional details for this callback.
|
|
508
|
+
*/
|
|
509
|
+
onPreferencePanelClose: PropTypes.func,
|
|
510
|
+
|
|
511
|
+
/**
|
|
512
|
+
* Callback fired when the preferences panel is opened.
|
|
513
|
+
* @param {GridPreferencePanelParams} params With all properties from [[GridPreferencePanelParams]].
|
|
514
|
+
* @param {MuiEvent<{}>} event The event object.
|
|
515
|
+
* @param {GridCallbackDetails} details Additional details for this callback.
|
|
516
|
+
*/
|
|
517
|
+
onPreferencePanelOpen: PropTypes.func,
|
|
518
|
+
|
|
519
|
+
/**
|
|
520
|
+
* Callback called when `processRowUpdate` throws an error or rejects.
|
|
521
|
+
* @param {any} error The error thrown.
|
|
522
|
+
*/
|
|
523
|
+
onProcessRowUpdateError: PropTypes.func,
|
|
524
|
+
|
|
503
525
|
/**
|
|
504
526
|
* Callback fired when the grid is resized.
|
|
505
527
|
* @param {ElementSize} containerSize With all properties from [[ElementSize]].
|
|
@@ -606,9 +628,10 @@ DataGridRaw.propTypes = {
|
|
|
606
628
|
/**
|
|
607
629
|
* Callback called before updating a row with new values in the row and cell editing.
|
|
608
630
|
* Only applied if `props.experimentalFeatures.newEditingApi: true`.
|
|
609
|
-
* @
|
|
610
|
-
* @param {
|
|
611
|
-
* @
|
|
631
|
+
* @template R
|
|
632
|
+
* @param {R} newRow Row object with the new values.
|
|
633
|
+
* @param {R} oldRow Row object with the old values.
|
|
634
|
+
* @returns {Promise<R> | R} The final values to update the row.
|
|
612
635
|
*/
|
|
613
636
|
processRowUpdate: PropTypes.func,
|
|
614
637
|
|
|
@@ -633,7 +656,7 @@ DataGridRaw.propTypes = {
|
|
|
633
656
|
/**
|
|
634
657
|
* Set of rows of type [[GridRowsProp]].
|
|
635
658
|
*/
|
|
636
|
-
rows: PropTypes.
|
|
659
|
+
rows: PropTypes.array.isRequired,
|
|
637
660
|
|
|
638
661
|
/**
|
|
639
662
|
* Sets the type of space between rows added by `getRowSpacing`.
|
|
@@ -8,8 +8,7 @@ import { useGridCsvExport } from '../hooks/features/export/useGridCsvExport';
|
|
|
8
8
|
import { useGridPrintExport } from '../hooks/features/export/useGridPrintExport';
|
|
9
9
|
import { useGridFilter, filterStateInitializer } from '../hooks/features/filter/useGridFilter';
|
|
10
10
|
import { focusStateInitializer, useGridFocus } from '../hooks/features/focus/useGridFocus';
|
|
11
|
-
import {
|
|
12
|
-
import { useGridKeyboardNavigation } from '../hooks/features/keyboard/useGridKeyboardNavigation';
|
|
11
|
+
import { useGridKeyboardNavigation } from '../hooks/features/keyboardNavigation/useGridKeyboardNavigation';
|
|
13
12
|
import { useGridPagination, paginationStateInitializer } from '../hooks/features/pagination/useGridPagination';
|
|
14
13
|
import { useGridPreferencesPanel, preferencePanelStateInitializer } from '../hooks/features/preferencesPanel/useGridPreferencesPanel';
|
|
15
14
|
import { useGridEditing as useGridEditing_old, editingStateInitializer as editingStateInitializer_old } from '../hooks/features/editRows/useGridEditing.old';
|
|
@@ -25,6 +24,7 @@ import { useGridEvents } from '../hooks/features/events/useGridEvents';
|
|
|
25
24
|
import { useGridDimensions } from '../hooks/features/dimensions/useGridDimensions';
|
|
26
25
|
import { rowsMetaStateInitializer, useGridRowsMeta } from '../hooks/features/rows/useGridRowsMeta';
|
|
27
26
|
import { useGridStatePersistence } from '../hooks/features/statePersistence/useGridStatePersistence';
|
|
27
|
+
import { useGridColumnSpanning } from '../hooks/features/columns/useGridColumnSpanning';
|
|
28
28
|
export var useDataGridComponent = function useDataGridComponent(props) {
|
|
29
29
|
var _props$experimentalFe, _props$experimentalFe2;
|
|
30
30
|
|
|
@@ -51,23 +51,23 @@ export var useDataGridComponent = function useDataGridComponent(props) {
|
|
|
51
51
|
useGridInitializeState(paginationStateInitializer, apiRef, props);
|
|
52
52
|
useGridInitializeState(rowsMetaStateInitializer, apiRef, props);
|
|
53
53
|
useGridInitializeState(columnMenuStateInitializer, apiRef, props);
|
|
54
|
+
useGridKeyboardNavigation(apiRef, props);
|
|
54
55
|
useGridSelection(apiRef, props);
|
|
55
56
|
useGridColumns(apiRef, props);
|
|
56
57
|
useGridRows(apiRef, props);
|
|
57
58
|
useGridParamsApi(apiRef);
|
|
59
|
+
useGridColumnSpanning(apiRef);
|
|
58
60
|
var useGridEditing = (_props$experimentalFe2 = props.experimentalFeatures) != null && _props$experimentalFe2.newEditingApi ? useGridEditing_new : useGridEditing_old;
|
|
59
61
|
useGridEditing(apiRef, props);
|
|
60
62
|
useGridFocus(apiRef, props);
|
|
61
|
-
useGridSorting(apiRef, props);
|
|
62
63
|
useGridPreferencesPanel(apiRef);
|
|
63
64
|
useGridFilter(apiRef, props);
|
|
65
|
+
useGridSorting(apiRef, props);
|
|
64
66
|
useGridDensity(apiRef, props);
|
|
65
67
|
useGridPagination(apiRef, props);
|
|
66
68
|
useGridRowsMeta(apiRef, props);
|
|
67
69
|
useGridScroll(apiRef, props);
|
|
68
70
|
useGridColumnMenu(apiRef);
|
|
69
|
-
useGridKeyboard(apiRef);
|
|
70
|
-
useGridKeyboardNavigation(apiRef, props);
|
|
71
71
|
useGridCsvExport(apiRef);
|
|
72
72
|
useGridPrintExport(apiRef, props);
|
|
73
73
|
useGridClipboard(apiRef);
|
|
@@ -10,7 +10,7 @@ export function gridDateFormatter(_ref) {
|
|
|
10
10
|
return value.toLocaleDateString();
|
|
11
11
|
}
|
|
12
12
|
|
|
13
|
-
return value;
|
|
13
|
+
return value != null ? value : '';
|
|
14
14
|
}
|
|
15
15
|
export function gridDateTimeFormatter(_ref2) {
|
|
16
16
|
var value = _ref2.value;
|
|
@@ -19,7 +19,7 @@ export function gridDateTimeFormatter(_ref2) {
|
|
|
19
19
|
return value.toLocaleString();
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
return value;
|
|
22
|
+
return value != null ? value : '';
|
|
23
23
|
}
|
|
24
24
|
export var GRID_DATE_COL_DEF = _extends({}, GRID_STRING_COL_DEF, {
|
|
25
25
|
type: 'date',
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
|
-
import { GRID_STRING_COL_DEF } from '
|
|
3
|
-
import { GRID_NUMERIC_COL_DEF } from '
|
|
4
|
-
import { GRID_DATE_COL_DEF, GRID_DATETIME_COL_DEF } from '
|
|
5
|
-
import { GRID_BOOLEAN_COL_DEF } from '
|
|
6
|
-
import { GRID_SINGLE_SELECT_COL_DEF } from '
|
|
7
|
-
import { GRID_ACTIONS_COL_DEF, GRID_ACTIONS_COLUMN_TYPE } from '
|
|
2
|
+
import { GRID_STRING_COL_DEF } from './gridStringColDef';
|
|
3
|
+
import { GRID_NUMERIC_COL_DEF } from './gridNumericColDef';
|
|
4
|
+
import { GRID_DATE_COL_DEF, GRID_DATETIME_COL_DEF } from './gridDateColDef';
|
|
5
|
+
import { GRID_BOOLEAN_COL_DEF } from './gridBooleanColDef';
|
|
6
|
+
import { GRID_SINGLE_SELECT_COL_DEF } from './gridSingleSelectColDef';
|
|
7
|
+
import { GRID_ACTIONS_COL_DEF, GRID_ACTIONS_COLUMN_TYPE } from './gridActionsColDef';
|
|
8
8
|
export var DEFAULT_GRID_COL_TYPE_KEY = '__default__';
|
|
9
9
|
export var getGridDefaultColumnTypes = function getGridDefaultColumnTypes() {
|
|
10
10
|
var _nativeColumnTypes;
|
package/legacy/colDef/index.js
CHANGED
|
@@ -9,4 +9,5 @@ export * from './gridBooleanOperators';
|
|
|
9
9
|
export * from './gridDateOperators';
|
|
10
10
|
export * from './gridNumericOperators';
|
|
11
11
|
export * from './gridSingleSelectOperators';
|
|
12
|
-
export * from './gridStringOperators';
|
|
12
|
+
export * from './gridStringOperators';
|
|
13
|
+
export * from './gridDefaultColumnTypes';
|