@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
|
@@ -23,34 +23,56 @@ var _gridCheckboxSelectionColDef = require("../../../colDef/gridCheckboxSelectio
|
|
|
23
23
|
|
|
24
24
|
var _gridClasses = require("../../../constants/gridClasses");
|
|
25
25
|
|
|
26
|
+
var _gridEditRowModel = require("../../../models/gridEditRowModel");
|
|
27
|
+
|
|
28
|
+
var _keyboardUtils = require("../../../utils/keyboardUtils");
|
|
29
|
+
|
|
30
|
+
var _gridDetailPanelToggleField = require("../../../constants/gridDetailPanelToggleField");
|
|
31
|
+
|
|
26
32
|
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); }
|
|
27
33
|
|
|
28
34
|
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; }
|
|
29
35
|
|
|
30
36
|
/**
|
|
31
|
-
* @requires useGridPage (state)
|
|
32
|
-
* @requires useGridPageSize (state)
|
|
33
|
-
* @requires useGridFilter (state)
|
|
34
|
-
* @requires useGridColumns (state, method)
|
|
35
|
-
* @requires useGridRows (state, method)
|
|
36
37
|
* @requires useGridSorting (method) - can be after
|
|
38
|
+
* @requires useGridFilter (state) - can be after
|
|
39
|
+
* @requires useGridColumns (state, method) - can be after
|
|
37
40
|
* @requires useGridDimensions (method) - can be after
|
|
38
41
|
* @requires useGridFocus (method) - can be after
|
|
39
42
|
* @requires useGridScroll (method) - can be after
|
|
43
|
+
* @requires useGridColumnSpanning (method) - can be after
|
|
40
44
|
*/
|
|
41
45
|
const useGridKeyboardNavigation = (apiRef, props) => {
|
|
42
46
|
const logger = (0, _useGridLogger.useGridLogger)(apiRef, 'useGridKeyboardNavigation');
|
|
43
47
|
const currentPage = (0, _useGridVisibleRows.useGridVisibleRows)(apiRef, props);
|
|
44
|
-
|
|
48
|
+
/**
|
|
49
|
+
* @param {number} colIndex Index of the column to focus
|
|
50
|
+
* @param {number} rowIndex index of the row to focus
|
|
51
|
+
* @param {string} closestColumnToUse Which closest column cell to use when the cell is spanned by `colSpan`.
|
|
52
|
+
*/
|
|
53
|
+
|
|
54
|
+
const goToCell = React.useCallback((colIndex, rowIndex, closestColumnToUse = 'left') => {
|
|
55
|
+
var _visibleSortedRows$ro;
|
|
56
|
+
|
|
57
|
+
const visibleSortedRows = (0, _gridFilterSelector.gridVisibleSortedRowEntriesSelector)(apiRef);
|
|
58
|
+
const rowId = (_visibleSortedRows$ro = visibleSortedRows[rowIndex]) == null ? void 0 : _visibleSortedRows$ro.id;
|
|
59
|
+
const nextCellColSpanInfo = apiRef.current.unstable_getCellColSpanInfo(rowId, colIndex);
|
|
60
|
+
|
|
61
|
+
if (nextCellColSpanInfo && nextCellColSpanInfo.spannedByColSpan) {
|
|
62
|
+
if (closestColumnToUse === 'left') {
|
|
63
|
+
colIndex = nextCellColSpanInfo.leftVisibleCellIndex;
|
|
64
|
+
} else if (closestColumnToUse === 'right') {
|
|
65
|
+
colIndex = nextCellColSpanInfo.rightVisibleCellIndex;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
45
69
|
logger.debug(`Navigating to cell row ${rowIndex}, col ${colIndex}`);
|
|
46
70
|
apiRef.current.scrollToIndexes({
|
|
47
71
|
colIndex,
|
|
48
72
|
rowIndex
|
|
49
73
|
});
|
|
50
74
|
const field = apiRef.current.getVisibleColumns()[colIndex].field;
|
|
51
|
-
|
|
52
|
-
const node = visibleSortedRows[rowIndex];
|
|
53
|
-
apiRef.current.setCellFocus(node.id, field);
|
|
75
|
+
apiRef.current.setCellFocus(rowId, field);
|
|
54
76
|
}, [apiRef, logger]);
|
|
55
77
|
const goToHeader = React.useCallback((colIndex, event) => {
|
|
56
78
|
logger.debug(`Navigating to header col ${colIndex}`);
|
|
@@ -103,7 +125,7 @@ const useGridKeyboardNavigation = (apiRef, props) => {
|
|
|
103
125
|
case 'ArrowRight':
|
|
104
126
|
{
|
|
105
127
|
if (colIndexBefore < lastColIndex) {
|
|
106
|
-
goToCell(colIndexBefore + 1, rowIndexBefore);
|
|
128
|
+
goToCell(colIndexBefore + 1, rowIndexBefore, 'right');
|
|
107
129
|
}
|
|
108
130
|
|
|
109
131
|
break;
|
|
@@ -122,16 +144,36 @@ const useGridKeyboardNavigation = (apiRef, props) => {
|
|
|
122
144
|
{
|
|
123
145
|
// "Tab" is only triggered by the row / cell editing feature
|
|
124
146
|
if (event.shiftKey && colIndexBefore > firstColIndex) {
|
|
125
|
-
goToCell(colIndexBefore - 1, rowIndexBefore);
|
|
147
|
+
goToCell(colIndexBefore - 1, rowIndexBefore, 'left');
|
|
126
148
|
} else if (!event.shiftKey && colIndexBefore < lastColIndex) {
|
|
127
|
-
goToCell(colIndexBefore + 1, rowIndexBefore);
|
|
149
|
+
goToCell(colIndexBefore + 1, rowIndexBefore, 'right');
|
|
128
150
|
}
|
|
129
151
|
|
|
130
152
|
break;
|
|
131
153
|
}
|
|
132
154
|
|
|
133
|
-
case 'PageDown':
|
|
134
155
|
case ' ':
|
|
156
|
+
{
|
|
157
|
+
const field = params.field;
|
|
158
|
+
|
|
159
|
+
if (field === _gridDetailPanelToggleField.GRID_DETAIL_PANEL_TOGGLE_FIELD) {
|
|
160
|
+
break;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
const colDef = params.colDef;
|
|
164
|
+
|
|
165
|
+
if (colDef && colDef.type === 'treeDataGroup') {
|
|
166
|
+
break;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
if (!event.shiftKey && rowIndexBefore < lastRowIndexInPage) {
|
|
170
|
+
goToCell(colIndexBefore, Math.min(rowIndexBefore + viewportPageSize, lastRowIndexInPage));
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
break;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
case 'PageDown':
|
|
135
177
|
{
|
|
136
178
|
if (rowIndexBefore < lastRowIndexInPage) {
|
|
137
179
|
goToCell(colIndexBefore, Math.min(rowIndexBefore + viewportPageSize, lastRowIndexInPage));
|
|
@@ -286,8 +328,22 @@ const useGridKeyboardNavigation = (apiRef, props) => {
|
|
|
286
328
|
event.preventDefault();
|
|
287
329
|
}
|
|
288
330
|
}, [apiRef, currentPage, goToCell, goToHeader]);
|
|
331
|
+
const handleCellKeyDown = React.useCallback((params, event) => {
|
|
332
|
+
// Ignore portal
|
|
333
|
+
if (!event.currentTarget.contains(event.target)) {
|
|
334
|
+
return;
|
|
335
|
+
} // Get the most recent params because the cell mode may have changed by another listener
|
|
336
|
+
|
|
337
|
+
|
|
338
|
+
const cellParams = apiRef.current.getCellParams(params.id, params.field);
|
|
339
|
+
|
|
340
|
+
if (cellParams.cellMode !== _gridEditRowModel.GridCellModes.Edit && (0, _keyboardUtils.isNavigationKey)(event.key)) {
|
|
341
|
+
apiRef.current.publishEvent(_events.GridEvents.cellNavigationKeyDown, cellParams, event);
|
|
342
|
+
}
|
|
343
|
+
}, [apiRef]);
|
|
289
344
|
(0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, _events.GridEvents.cellNavigationKeyDown, handleCellNavigationKeyDown);
|
|
290
345
|
(0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, _events.GridEvents.columnHeaderKeyDown, handleColumnHeaderKeyDown);
|
|
346
|
+
(0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, _events.GridEvents.cellKeyDown, handleCellKeyDown);
|
|
291
347
|
};
|
|
292
348
|
|
|
293
349
|
exports.useGridKeyboardNavigation = useGridKeyboardNavigation;
|
|
@@ -19,7 +19,7 @@ var _filter = require("../filter");
|
|
|
19
19
|
|
|
20
20
|
var _gridPaginationSelector = require("./gridPaginationSelector");
|
|
21
21
|
|
|
22
|
-
var
|
|
22
|
+
var _pipeProcessing = require("../../core/pipeProcessing");
|
|
23
23
|
|
|
24
24
|
var _warning = require("../../../utils/warning");
|
|
25
25
|
|
|
@@ -114,8 +114,8 @@ const useGridPage = (apiRef, props) => {
|
|
|
114
114
|
apiRef.current.setState(mergeStateWithPage(page));
|
|
115
115
|
return params;
|
|
116
116
|
}, [apiRef]);
|
|
117
|
-
(0,
|
|
118
|
-
(0,
|
|
117
|
+
(0, _pipeProcessing.useGridRegisterPipeProcessor)(apiRef, 'exportState', stateExportPreProcessing);
|
|
118
|
+
(0, _pipeProcessing.useGridRegisterPipeProcessor)(apiRef, 'restoreState', stateRestorePreProcessing);
|
|
119
119
|
/**
|
|
120
120
|
* EVENTS
|
|
121
121
|
*/
|
|
@@ -133,7 +133,12 @@ const useGridPage = (apiRef, props) => {
|
|
|
133
133
|
apiRef.current.forceUpdate();
|
|
134
134
|
};
|
|
135
135
|
|
|
136
|
+
const handlePageChange = () => apiRef.current.scrollToIndexes({
|
|
137
|
+
rowIndex: (0, _gridPaginationSelector.gridPageSelector)(apiRef) * (0, _gridPaginationSelector.gridPageSizeSelector)(apiRef)
|
|
138
|
+
});
|
|
139
|
+
|
|
136
140
|
(0, _utils.useGridApiEventHandler)(apiRef, _events.GridEvents.pageSizeChange, handlePageSizeChange);
|
|
141
|
+
(0, _utils.useGridApiEventHandler)(apiRef, _events.GridEvents.pageChange, handlePageChange);
|
|
137
142
|
/**
|
|
138
143
|
* EFFECTS
|
|
139
144
|
*/
|
|
@@ -19,7 +19,7 @@ var _gridPaginationSelector = require("./gridPaginationSelector");
|
|
|
19
19
|
|
|
20
20
|
var _density = require("../density");
|
|
21
21
|
|
|
22
|
-
var
|
|
22
|
+
var _pipeProcessing = require("../../core/pipeProcessing");
|
|
23
23
|
|
|
24
24
|
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); }
|
|
25
25
|
|
|
@@ -106,8 +106,8 @@ const useGridPageSize = (apiRef, props) => {
|
|
|
106
106
|
|
|
107
107
|
return params;
|
|
108
108
|
}, [apiRef]);
|
|
109
|
-
(0,
|
|
110
|
-
(0,
|
|
109
|
+
(0, _pipeProcessing.useGridRegisterPipeProcessor)(apiRef, 'exportState', stateExportPreProcessing);
|
|
110
|
+
(0, _pipeProcessing.useGridRegisterPipeProcessor)(apiRef, 'restoreState', stateRestorePreProcessing);
|
|
111
111
|
/**
|
|
112
112
|
* EVENTS
|
|
113
113
|
*/
|
|
@@ -11,14 +11,18 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
|
|
|
11
11
|
|
|
12
12
|
var React = _interopRequireWildcard(require("react"));
|
|
13
13
|
|
|
14
|
+
var _events = require("../../../models/events");
|
|
15
|
+
|
|
14
16
|
var _useGridApiMethod = require("../../utils/useGridApiMethod");
|
|
15
17
|
|
|
16
18
|
var _useGridLogger = require("../../utils/useGridLogger");
|
|
17
19
|
|
|
18
|
-
var
|
|
20
|
+
var _pipeProcessing = require("../../core/pipeProcessing");
|
|
19
21
|
|
|
20
22
|
var _gridPreferencePanelSelector = require("./gridPreferencePanelSelector");
|
|
21
23
|
|
|
24
|
+
var _useGridSelector = require("../../utils/useGridSelector");
|
|
25
|
+
|
|
22
26
|
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); }
|
|
23
27
|
|
|
24
28
|
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; }
|
|
@@ -41,6 +45,7 @@ exports.preferencePanelStateInitializer = preferencePanelStateInitializer;
|
|
|
41
45
|
|
|
42
46
|
const useGridPreferencesPanel = apiRef => {
|
|
43
47
|
const logger = (0, _useGridLogger.useGridLogger)(apiRef, 'useGridPreferencesPanel');
|
|
48
|
+
const preferencePanelState = (0, _useGridSelector.useGridSelector)(apiRef, _gridPreferencePanelSelector.gridPreferencePanelStateSelector);
|
|
44
49
|
const hideTimeout = React.useRef();
|
|
45
50
|
const immediateTimeout = React.useRef();
|
|
46
51
|
/**
|
|
@@ -49,13 +54,20 @@ const useGridPreferencesPanel = apiRef => {
|
|
|
49
54
|
|
|
50
55
|
const hidePreferences = React.useCallback(() => {
|
|
51
56
|
logger.debug('Hiding Preferences Panel');
|
|
57
|
+
|
|
58
|
+
if (preferencePanelState.openedPanelValue) {
|
|
59
|
+
apiRef.current.publishEvent(_events.GridEvents.preferencePanelClose, {
|
|
60
|
+
openedPanelValue: preferencePanelState.openedPanelValue
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
|
|
52
64
|
apiRef.current.setState(state => (0, _extends2.default)({}, state, {
|
|
53
65
|
preferencePanel: {
|
|
54
66
|
open: false
|
|
55
67
|
}
|
|
56
68
|
}));
|
|
57
69
|
apiRef.current.forceUpdate();
|
|
58
|
-
}, [apiRef, logger]); // This is to prevent the preferences from closing when you open a select box or another panel,
|
|
70
|
+
}, [apiRef, logger, preferencePanelState.openedPanelValue]); // This is to prevent the preferences from closing when you open a select box or another panel,
|
|
59
71
|
// The issue is in MUI core V4 => Fixed in V5
|
|
60
72
|
|
|
61
73
|
const doNotHidePanel = React.useCallback(() => {
|
|
@@ -75,8 +87,11 @@ const useGridPreferencesPanel = apiRef => {
|
|
|
75
87
|
openedPanelValue: newValue
|
|
76
88
|
})
|
|
77
89
|
}));
|
|
90
|
+
apiRef.current.publishEvent(_events.GridEvents.preferencePanelOpen, {
|
|
91
|
+
openedPanelValue: newValue
|
|
92
|
+
});
|
|
78
93
|
apiRef.current.forceUpdate();
|
|
79
|
-
}, [doNotHidePanel, apiRef
|
|
94
|
+
}, [logger, doNotHidePanel, apiRef]);
|
|
80
95
|
(0, _useGridApiMethod.useGridApiMethod)(apiRef, {
|
|
81
96
|
showPreferences,
|
|
82
97
|
hidePreferences: hidePreferencesDelayed
|
|
@@ -107,8 +122,8 @@ const useGridPreferencesPanel = apiRef => {
|
|
|
107
122
|
|
|
108
123
|
return params;
|
|
109
124
|
}, [apiRef]);
|
|
110
|
-
(0,
|
|
111
|
-
(0,
|
|
125
|
+
(0, _pipeProcessing.useGridRegisterPipeProcessor)(apiRef, 'exportState', stateExportPreProcessing);
|
|
126
|
+
(0, _pipeProcessing.useGridRegisterPipeProcessor)(apiRef, 'restoreState', stateRestorePreProcessing);
|
|
112
127
|
/**
|
|
113
128
|
* EFFECTS
|
|
114
129
|
*/
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.gridTopLevelRowCountSelector = exports.gridRowsStateSelector = exports.gridRowsLookupSelector = exports.gridRowTreeSelector = exports.gridRowTreeDepthSelector = exports.gridRowIdsSelector = exports.gridRowGroupingNameSelector = exports.gridRowCountSelector = void 0;
|
|
6
|
+
exports.gridTopLevelRowCountSelector = exports.gridRowsStateSelector = exports.gridRowsLookupSelector = exports.gridRowsLoadingSelector = exports.gridRowTreeSelector = exports.gridRowTreeDepthSelector = exports.gridRowIdsSelector = exports.gridRowGroupingNameSelector = exports.gridRowCountSelector = void 0;
|
|
7
7
|
|
|
8
8
|
var _createSelector = require("../../../utils/createSelector");
|
|
9
9
|
|
|
@@ -12,6 +12,8 @@ const gridRowsStateSelector = state => state.rows;
|
|
|
12
12
|
exports.gridRowsStateSelector = gridRowsStateSelector;
|
|
13
13
|
const gridRowCountSelector = (0, _createSelector.createSelector)(gridRowsStateSelector, rows => rows.totalRowCount);
|
|
14
14
|
exports.gridRowCountSelector = gridRowCountSelector;
|
|
15
|
+
const gridRowsLoadingSelector = (0, _createSelector.createSelector)(gridRowsStateSelector, rows => rows.loading);
|
|
16
|
+
exports.gridRowsLoadingSelector = gridRowsLoadingSelector;
|
|
15
17
|
const gridTopLevelRowCountSelector = (0, _createSelector.createSelector)(gridRowsStateSelector, rows => rows.totalTopLevelRowCount);
|
|
16
18
|
exports.gridTopLevelRowCountSelector = gridTopLevelRowCountSelector;
|
|
17
19
|
const gridRowsLookupSelector = (0, _createSelector.createSelector)(gridRowsStateSelector, rows => rows.idRowsLookup);
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.checkGridRowIdIsValid = checkGridRowIdIsValid;
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* A helper function to check if the id provided is valid.
|
|
10
|
+
* @param {GridRowId} id Id as [[GridRowId]].
|
|
11
|
+
* @param {GridRowModel | Partial<GridRowModel>} row Row as [[GridRowModel]].
|
|
12
|
+
* @param {string} detailErrorMessage A custom error message to display for invalid IDs
|
|
13
|
+
*/
|
|
14
|
+
function checkGridRowIdIsValid(id, row, detailErrorMessage = 'A row was provided without id in the rows prop:') {
|
|
15
|
+
if (id == null) {
|
|
16
|
+
throw new Error(['MUI: The data grid component requires all rows to have a unique `id` property.', 'Alternatively, you can use the `getRowId` prop to specify a custom id for each row.', detailErrorMessage, JSON.stringify(row)].join('\n'));
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -3,11 +3,21 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
var _exportNames = {
|
|
7
|
+
checkGridRowIdIsValid: true
|
|
8
|
+
};
|
|
9
|
+
Object.defineProperty(exports, "checkGridRowIdIsValid", {
|
|
10
|
+
enumerable: true,
|
|
11
|
+
get: function () {
|
|
12
|
+
return _gridRowsUtils.checkGridRowIdIsValid;
|
|
13
|
+
}
|
|
14
|
+
});
|
|
6
15
|
|
|
7
16
|
var _gridRowsMetaSelector = require("./gridRowsMetaSelector");
|
|
8
17
|
|
|
9
18
|
Object.keys(_gridRowsMetaSelector).forEach(function (key) {
|
|
10
19
|
if (key === "default" || key === "__esModule") return;
|
|
20
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
11
21
|
if (key in exports && exports[key] === _gridRowsMetaSelector[key]) return;
|
|
12
22
|
Object.defineProperty(exports, key, {
|
|
13
23
|
enumerable: true,
|
|
@@ -21,6 +31,7 @@ var _gridRowsMetaState = require("./gridRowsMetaState");
|
|
|
21
31
|
|
|
22
32
|
Object.keys(_gridRowsMetaState).forEach(function (key) {
|
|
23
33
|
if (key === "default" || key === "__esModule") return;
|
|
34
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
24
35
|
if (key in exports && exports[key] === _gridRowsMetaState[key]) return;
|
|
25
36
|
Object.defineProperty(exports, key, {
|
|
26
37
|
enumerable: true,
|
|
@@ -34,6 +45,7 @@ var _gridRowsSelector = require("./gridRowsSelector");
|
|
|
34
45
|
|
|
35
46
|
Object.keys(_gridRowsSelector).forEach(function (key) {
|
|
36
47
|
if (key === "default" || key === "__esModule") return;
|
|
48
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
37
49
|
if (key in exports && exports[key] === _gridRowsSelector[key]) return;
|
|
38
50
|
Object.defineProperty(exports, key, {
|
|
39
51
|
enumerable: true,
|
|
@@ -41,4 +53,6 @@ Object.keys(_gridRowsSelector).forEach(function (key) {
|
|
|
41
53
|
return _gridRowsSelector[key];
|
|
42
54
|
}
|
|
43
55
|
});
|
|
44
|
-
});
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
var _gridRowsUtils = require("./gridRowsUtils");
|
|
@@ -13,8 +13,6 @@ var React = _interopRequireWildcard(require("react"));
|
|
|
13
13
|
|
|
14
14
|
var _events = require("../../../models/events");
|
|
15
15
|
|
|
16
|
-
var _gridRows = require("../../../models/gridRows");
|
|
17
|
-
|
|
18
16
|
var _useGridApiMethod = require("../../utils/useGridApiMethod");
|
|
19
17
|
|
|
20
18
|
var _useGridLogger = require("../../utils/useGridLogger");
|
|
@@ -25,13 +23,15 @@ var _useGridApiEventHandler = require("../../utils/useGridApiEventHandler");
|
|
|
25
23
|
|
|
26
24
|
var _useGridVisibleRows = require("../../utils/useGridVisibleRows");
|
|
27
25
|
|
|
26
|
+
var _gridRowsUtils = require("./gridRowsUtils");
|
|
27
|
+
|
|
28
28
|
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); }
|
|
29
29
|
|
|
30
30
|
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; }
|
|
31
31
|
|
|
32
32
|
function getGridRowId(rowModel, getRowId, detailErrorMessage) {
|
|
33
33
|
const id = getRowId ? getRowId(rowModel) : rowModel.id;
|
|
34
|
-
(0,
|
|
34
|
+
(0, _gridRowsUtils.checkGridRowIdIsValid)(id, rowModel, detailErrorMessage);
|
|
35
35
|
return id;
|
|
36
36
|
}
|
|
37
37
|
|
|
@@ -64,7 +64,7 @@ const convertGridRowsPropToState = ({
|
|
|
64
64
|
};
|
|
65
65
|
};
|
|
66
66
|
|
|
67
|
-
const getRowsStateFromCache = (rowsCache, previousTree, apiRef, rowCountProp) => {
|
|
67
|
+
const getRowsStateFromCache = (rowsCache, previousTree, apiRef, rowCountProp, loadingProp) => {
|
|
68
68
|
const {
|
|
69
69
|
value
|
|
70
70
|
} = rowsCache.state;
|
|
@@ -74,6 +74,7 @@ const getRowsStateFromCache = (rowsCache, previousTree, apiRef, rowCountProp) =>
|
|
|
74
74
|
}));
|
|
75
75
|
const dataTopLevelRowCount = groupingResponse.treeDepth === 1 ? groupingResponse.ids.length : Object.values(groupingResponse.tree).filter(node => node.parent == null).length;
|
|
76
76
|
return (0, _extends2.default)({}, groupingResponse, {
|
|
77
|
+
loading: loadingProp,
|
|
77
78
|
totalRowCount: Math.max(rowCount, groupingResponse.ids.length),
|
|
78
79
|
totalTopLevelRowCount: Math.max(rowCount, dataTopLevelRowCount)
|
|
79
80
|
});
|
|
@@ -96,7 +97,7 @@ const rowsStateInitializer = (state, props, apiRef) => {
|
|
|
96
97
|
lastUpdateMs: Date.now()
|
|
97
98
|
};
|
|
98
99
|
return (0, _extends2.default)({}, state, {
|
|
99
|
-
rows: getRowsStateFromCache(rowsCache, null, apiRef, props.rowCount),
|
|
100
|
+
rows: getRowsStateFromCache(rowsCache, null, apiRef, props.rowCount, props.loading),
|
|
100
101
|
rowsCache // TODO remove from state
|
|
101
102
|
|
|
102
103
|
});
|
|
@@ -115,9 +116,9 @@ const useGridRows = (apiRef, props) => {
|
|
|
115
116
|
|
|
116
117
|
const currentPage = (0, _useGridVisibleRows.useGridVisibleRows)(apiRef, props);
|
|
117
118
|
const getRow = React.useCallback(id => {
|
|
118
|
-
var
|
|
119
|
+
var _ref;
|
|
119
120
|
|
|
120
|
-
return (
|
|
121
|
+
return (_ref = (0, _gridRowsSelector.gridRowsLookupSelector)(apiRef)[id]) != null ? _ref : null;
|
|
121
122
|
}, [apiRef]);
|
|
122
123
|
const lookup = React.useMemo(() => currentPage.rows.reduce((acc, {
|
|
123
124
|
id
|
|
@@ -130,7 +131,7 @@ const useGridRows = (apiRef, props) => {
|
|
|
130
131
|
rowsCache.current.timeout = null;
|
|
131
132
|
rowsCache.current.lastUpdateMs = Date.now();
|
|
132
133
|
apiRef.current.setState(state => (0, _extends2.default)({}, state, {
|
|
133
|
-
rows: getRowsStateFromCache(rowsCache.current, (0, _gridRowsSelector.gridRowTreeSelector)(apiRef), apiRef, props.rowCount)
|
|
134
|
+
rows: getRowsStateFromCache(rowsCache.current, (0, _gridRowsSelector.gridRowTreeSelector)(apiRef), apiRef, props.rowCount, props.loading)
|
|
134
135
|
}));
|
|
135
136
|
apiRef.current.publishEvent(_events.GridEvents.rowsSet);
|
|
136
137
|
apiRef.current.forceUpdate();
|
|
@@ -156,7 +157,7 @@ const useGridRows = (apiRef, props) => {
|
|
|
156
157
|
}
|
|
157
158
|
|
|
158
159
|
run();
|
|
159
|
-
}, [props.throttleRowsMs, props.rowCount, apiRef]);
|
|
160
|
+
}, [props.throttleRowsMs, props.rowCount, props.loading, apiRef]);
|
|
160
161
|
/**
|
|
161
162
|
* API METHODS
|
|
162
163
|
*/
|
|
@@ -254,12 +255,31 @@ const useGridRows = (apiRef, props) => {
|
|
|
254
255
|
|
|
255
256
|
return (_gridRowTreeSelector$ = (0, _gridRowsSelector.gridRowTreeSelector)(apiRef)[id]) != null ? _gridRowTreeSelector$ : null;
|
|
256
257
|
}, [apiRef]);
|
|
258
|
+
const setRowIndex = React.useCallback((rowId, targetIndex) => {
|
|
259
|
+
const allRows = (0, _gridRowsSelector.gridRowIdsSelector)(apiRef);
|
|
260
|
+
const oldIndex = allRows.findIndex(row => row === rowId);
|
|
261
|
+
|
|
262
|
+
if (oldIndex === targetIndex) {
|
|
263
|
+
return;
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
logger.debug(`Moving row ${rowId} to index ${targetIndex}`);
|
|
267
|
+
const updatedRows = [...allRows];
|
|
268
|
+
updatedRows.splice(targetIndex, 0, updatedRows.splice(oldIndex, 1)[0]);
|
|
269
|
+
apiRef.current.setState(state => (0, _extends2.default)({}, state, {
|
|
270
|
+
rows: (0, _extends2.default)({}, state.rows, {
|
|
271
|
+
ids: updatedRows
|
|
272
|
+
})
|
|
273
|
+
}));
|
|
274
|
+
apiRef.current.applySorting();
|
|
275
|
+
}, [apiRef, logger]);
|
|
257
276
|
const rowApi = {
|
|
258
277
|
getRow,
|
|
259
278
|
getRowModels,
|
|
260
279
|
getRowsCount,
|
|
261
280
|
getAllRowIds,
|
|
262
281
|
setRows,
|
|
282
|
+
setRowIndex,
|
|
263
283
|
updateRows,
|
|
264
284
|
setRowChildrenExpansion,
|
|
265
285
|
getRowNode,
|
|
@@ -25,9 +25,7 @@ var _gridPaginationSelector = require("../pagination/gridPaginationSelector");
|
|
|
25
25
|
|
|
26
26
|
var _gridSortingSelector = require("../sorting/gridSortingSelector");
|
|
27
27
|
|
|
28
|
-
var
|
|
29
|
-
|
|
30
|
-
var _useGridApiEventHandler = require("../../utils/useGridApiEventHandler");
|
|
28
|
+
var _pipeProcessing = require("../../core/pipeProcessing");
|
|
31
29
|
|
|
32
30
|
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); }
|
|
33
31
|
|
|
@@ -92,16 +90,17 @@ const useGridRowsMeta = (apiRef, props) => {
|
|
|
92
90
|
if (getRowSpacing) {
|
|
93
91
|
var _spacing$top, _spacing$bottom;
|
|
94
92
|
|
|
95
|
-
const
|
|
93
|
+
const indexRelativeToCurrentPage = apiRef.current.getRowIndexRelativeToVisibleRows(row.id);
|
|
96
94
|
const spacing = getRowSpacing((0, _extends2.default)({}, row, {
|
|
97
|
-
isFirstVisible:
|
|
98
|
-
isLastVisible:
|
|
95
|
+
isFirstVisible: indexRelativeToCurrentPage === 0,
|
|
96
|
+
isLastVisible: indexRelativeToCurrentPage === currentPage.rows.length - 1,
|
|
97
|
+
indexRelativeToCurrentPage
|
|
99
98
|
}));
|
|
100
99
|
initialHeights.spacingTop = (_spacing$top = spacing.top) != null ? _spacing$top : 0;
|
|
101
100
|
initialHeights.spacingBottom = (_spacing$bottom = spacing.bottom) != null ? _spacing$bottom : 0;
|
|
102
101
|
}
|
|
103
102
|
|
|
104
|
-
const sizes = apiRef.current.
|
|
103
|
+
const sizes = apiRef.current.unstable_applyPipeProcessors('rowHeight', initialHeights, row);
|
|
105
104
|
const finalRowHeight = Object.values(sizes).reduce((acc2, value) => acc2 + value, 0);
|
|
106
105
|
rowsHeightLookup.current[row.id] = {
|
|
107
106
|
value: baseRowHeight,
|
|
@@ -147,14 +146,7 @@ const useGridRowsMeta = (apiRef, props) => {
|
|
|
147
146
|
React.useEffect(() => {
|
|
148
147
|
hydrateRowsMeta();
|
|
149
148
|
}, [rowHeight, filterState, paginationState, sortingState, hydrateRowsMeta]);
|
|
150
|
-
|
|
151
|
-
if (name !== 'rowHeight') {
|
|
152
|
-
return;
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
hydrateRowsMeta();
|
|
156
|
-
}, [hydrateRowsMeta]);
|
|
157
|
-
(0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, _gridEvents.GridEvents.preProcessorRegister, handlePreProcessorRegister);
|
|
149
|
+
(0, _pipeProcessing.useGridRegisterPipeApplier)(apiRef, 'rowHeight', hydrateRowsMeta);
|
|
158
150
|
const rowsMetaApi = {
|
|
159
151
|
unstable_getRowHeight: getTargetRowHeight,
|
|
160
152
|
unstable_getRowInternalSizes: getRowInternalSizes,
|
|
@@ -11,6 +11,8 @@ var _useGridLogger = require("../../utils/useGridLogger");
|
|
|
11
11
|
|
|
12
12
|
var _gridColumnsSelector = require("../columns/gridColumnsSelector");
|
|
13
13
|
|
|
14
|
+
var _useGridSelector = require("../../utils/useGridSelector");
|
|
15
|
+
|
|
14
16
|
var _gridPaginationSelector = require("../pagination/gridPaginationSelector");
|
|
15
17
|
|
|
16
18
|
var _gridRowsSelector = require("../rows/gridRowsSelector");
|
|
@@ -19,7 +21,7 @@ var _gridRowsMetaSelector = require("../rows/gridRowsMetaSelector");
|
|
|
19
21
|
|
|
20
22
|
var _useGridApiMethod = require("../../utils/useGridApiMethod");
|
|
21
23
|
|
|
22
|
-
var
|
|
24
|
+
var _gridFilterSelector = require("../filter/gridFilterSelector");
|
|
23
25
|
|
|
24
26
|
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); }
|
|
25
27
|
|
|
@@ -51,6 +53,8 @@ function scrollIntoView(dimensions) {
|
|
|
51
53
|
* @requires useGridColumns (state) - can be after, async only
|
|
52
54
|
* @requires useGridRows (state) - can be after, async only
|
|
53
55
|
* @requires useGridRowsMeta (state) - can be after, async only
|
|
56
|
+
* @requires useGridFilter (state)
|
|
57
|
+
* @requires useGridColumnSpanning (method)
|
|
54
58
|
*/
|
|
55
59
|
|
|
56
60
|
|
|
@@ -58,11 +62,13 @@ const useGridScroll = (apiRef, props) => {
|
|
|
58
62
|
const logger = (0, _useGridLogger.useGridLogger)(apiRef, 'useGridScroll');
|
|
59
63
|
const colRef = apiRef.current.columnHeadersElementRef;
|
|
60
64
|
const windowRef = apiRef.current.windowRef;
|
|
65
|
+
const visibleSortedRows = (0, _useGridSelector.useGridSelector)(apiRef, _gridFilterSelector.gridVisibleSortedRowEntriesSelector);
|
|
61
66
|
const scrollToIndexes = React.useCallback(params => {
|
|
62
67
|
const totalRowCount = (0, _gridRowsSelector.gridRowCountSelector)(apiRef);
|
|
63
68
|
const visibleColumns = (0, _gridColumnsSelector.gridVisibleColumnDefinitionsSelector)(apiRef);
|
|
69
|
+
const scrollToHeader = params.rowIndex == null;
|
|
64
70
|
|
|
65
|
-
if (totalRowCount === 0 || visibleColumns.length === 0) {
|
|
71
|
+
if (!scrollToHeader && totalRowCount === 0 || visibleColumns.length === 0) {
|
|
66
72
|
return false;
|
|
67
73
|
}
|
|
68
74
|
|
|
@@ -71,10 +77,27 @@ const useGridScroll = (apiRef, props) => {
|
|
|
71
77
|
|
|
72
78
|
if (params.colIndex != null) {
|
|
73
79
|
const columnPositions = (0, _gridColumnsSelector.gridColumnPositionsSelector)(apiRef);
|
|
80
|
+
let cellWidth;
|
|
81
|
+
|
|
82
|
+
if (typeof params.rowIndex !== 'undefined') {
|
|
83
|
+
var _visibleSortedRows$pa;
|
|
84
|
+
|
|
85
|
+
const rowId = (_visibleSortedRows$pa = visibleSortedRows[params.rowIndex]) == null ? void 0 : _visibleSortedRows$pa.id;
|
|
86
|
+
const cellColSpanInfo = apiRef.current.unstable_getCellColSpanInfo(rowId, params.colIndex);
|
|
87
|
+
|
|
88
|
+
if (cellColSpanInfo && !cellColSpanInfo.spannedByColSpan) {
|
|
89
|
+
cellWidth = cellColSpanInfo.cellProps.width;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
if (typeof cellWidth === 'undefined') {
|
|
94
|
+
cellWidth = visibleColumns[params.colIndex].computedWidth;
|
|
95
|
+
}
|
|
96
|
+
|
|
74
97
|
scrollCoordinates.left = scrollIntoView({
|
|
75
98
|
clientHeight: windowRef.current.clientWidth,
|
|
76
99
|
scrollTop: windowRef.current.scrollLeft,
|
|
77
|
-
offsetHeight:
|
|
100
|
+
offsetHeight: cellWidth,
|
|
78
101
|
offsetTop: columnPositions[params.colIndex]
|
|
79
102
|
});
|
|
80
103
|
}
|
|
@@ -93,7 +116,7 @@ const useGridScroll = (apiRef, props) => {
|
|
|
93
116
|
});
|
|
94
117
|
}
|
|
95
118
|
|
|
96
|
-
scrollCoordinates = apiRef.current.
|
|
119
|
+
scrollCoordinates = apiRef.current.unstable_applyPipeProcessors('scrollToIndexes', scrollCoordinates, params);
|
|
97
120
|
|
|
98
121
|
if (typeof scrollCoordinates.left !== undefined || typeof scrollCoordinates.top !== undefined) {
|
|
99
122
|
apiRef.current.scroll(scrollCoordinates);
|
|
@@ -101,7 +124,7 @@ const useGridScroll = (apiRef, props) => {
|
|
|
101
124
|
}
|
|
102
125
|
|
|
103
126
|
return false;
|
|
104
|
-
}, [logger, apiRef, windowRef, props.pagination]);
|
|
127
|
+
}, [logger, apiRef, windowRef, props.pagination, visibleSortedRows]);
|
|
105
128
|
const scroll = React.useCallback(params => {
|
|
106
129
|
if (windowRef.current && params.left != null && colRef.current) {
|
|
107
130
|
colRef.current.scrollLeft = params.left;
|
|
@@ -135,15 +158,6 @@ const useGridScroll = (apiRef, props) => {
|
|
|
135
158
|
getScrollPosition
|
|
136
159
|
};
|
|
137
160
|
(0, _useGridApiMethod.useGridApiMethod)(apiRef, scrollApi, 'GridScrollApi');
|
|
138
|
-
const preventScroll = React.useCallback(event => {
|
|
139
|
-
event.target.scrollLeft = 0;
|
|
140
|
-
event.target.scrollTop = 0;
|
|
141
|
-
}, []);
|
|
142
|
-
(0, _useGridNativeEventListener.useGridNativeEventListener)(apiRef, () => {
|
|
143
|
-
var _apiRef$current, _apiRef$current$rende, _apiRef$current$rende2;
|
|
144
|
-
|
|
145
|
-
return (_apiRef$current = apiRef.current) == null ? void 0 : (_apiRef$current$rende = _apiRef$current.renderingZoneRef) == null ? void 0 : (_apiRef$current$rende2 = _apiRef$current$rende.current) == null ? void 0 : _apiRef$current$rende2.parentElement;
|
|
146
|
-
}, 'scroll', preventScroll);
|
|
147
161
|
};
|
|
148
162
|
|
|
149
163
|
exports.useGridScroll = useGridScroll;
|