@mui/x-data-grid 5.8.0 → 5.11.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 +333 -66
- package/DataGrid/DataGrid.js +36 -2
- package/DataGrid/useDataGridComponent.js +3 -1
- package/DataGrid/useDataGridProps.js +2 -1
- package/LICENSE +21 -0
- package/README.md +7 -5
- package/colDef/gridActionsColDef.js +2 -1
- package/colDef/gridBooleanColDef.js +2 -1
- package/colDef/gridCheckboxSelectionColDef.js +1 -0
- package/colDef/gridDateColDef.js +4 -2
- package/colDef/gridNumericColDef.js +3 -2
- package/colDef/gridNumericOperators.d.ts +2 -0
- package/colDef/gridNumericOperators.js +11 -0
- package/colDef/gridSingleSelectColDef.js +3 -2
- package/colDef/gridSingleSelectOperators.d.ts +3 -0
- package/colDef/gridSingleSelectOperators.js +52 -0
- package/colDef/gridStringColDef.js +3 -2
- package/colDef/gridStringOperators.d.ts +2 -0
- package/colDef/gridStringOperators.js +12 -0
- package/components/GridFooter.d.ts +4 -2
- package/components/GridFooter.js +11 -2
- package/components/GridRow.d.ts +4 -0
- package/components/GridRow.js +58 -28
- package/components/GridRowCount.d.ts +4 -1
- package/components/GridRowCount.js +1 -0
- package/components/GridScrollArea.js +3 -4
- package/components/GridSelectedRowCount.d.ts +4 -1
- package/components/GridSelectedRowCount.js +2 -1
- package/components/base/GridBody.js +1 -2
- package/components/base/GridOverlays.js +5 -5
- package/components/cell/GridActionsCell.d.ts +5 -1
- package/components/cell/GridActionsCell.js +179 -21
- package/components/cell/GridActionsCellItem.d.ts +66 -4
- package/components/cell/GridActionsCellItem.js +7 -5
- package/components/cell/GridCell.d.ts +1 -0
- package/components/cell/GridCell.js +36 -15
- package/components/cell/GridEditBooleanCell.d.ts +15 -3
- package/components/cell/GridEditBooleanCell.js +101 -6
- package/components/cell/GridEditDateCell.d.ts +16 -4
- package/components/cell/GridEditDateCell.js +99 -5
- package/components/cell/GridEditInputCell.d.ts +11 -5
- package/components/cell/GridEditInputCell.js +30 -6
- package/components/cell/GridEditSingleSelectCell.d.ts +12 -4
- package/components/cell/GridEditSingleSelectCell.js +50 -18
- package/components/cell/index.d.ts +2 -0
- package/components/cell/index.js +2 -0
- package/components/columnHeaders/GridColumnHeaderItem.js +19 -23
- package/components/columnHeaders/GridColumnHeaders.d.ts +2 -1
- package/components/columnHeaders/GridColumnHeaders.js +1 -1
- package/components/columnHeaders/GridColumnHeadersInner.d.ts +2 -0
- package/components/columnSelection/GridCellCheckboxRenderer.d.ts +3 -3
- package/components/columnSelection/GridCellCheckboxRenderer.js +22 -6
- package/components/columnSelection/GridHeaderCheckbox.js +4 -5
- package/components/containers/GridFooterContainer.d.ts +8 -2
- package/components/containers/GridFooterContainer.js +11 -2
- package/components/containers/GridRootStyles.js +36 -1
- package/components/containers/GridToolbarContainer.d.ts +8 -2
- package/components/containers/GridToolbarContainer.js +12 -2
- package/components/menu/GridMenu.js +1 -0
- package/components/panel/GridPanel.js +1 -0
- package/components/panel/GridPanelContent.d.ts +8 -1
- package/components/panel/GridPanelContent.js +13 -2
- package/components/panel/GridPanelFooter.d.ts +8 -1
- package/components/panel/GridPanelFooter.js +13 -2
- package/components/panel/GridPanelHeader.d.ts +8 -1
- package/components/panel/GridPanelHeader.js +13 -2
- 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/GridToolbar.d.ts +12 -2
- package/components/toolbar/GridToolbar.js +30 -7
- package/components/toolbar/GridToolbarDensitySelector.js +1 -1
- package/components/toolbar/GridToolbarExport.d.ts +5 -4
- package/components/toolbar/GridToolbarExport.js +15 -20
- package/components/toolbar/GridToolbarFilterButton.d.ts +1 -1
- package/components/toolbar/GridToolbarQuickFilter.d.ts +20 -0
- package/components/toolbar/GridToolbarQuickFilter.js +88 -0
- package/components/toolbar/index.d.ts +3 -1
- package/components/toolbar/index.js +3 -2
- package/components/virtualization/GridVirtualScroller.d.ts +4 -1
- package/components/virtualization/GridVirtualScroller.js +2 -0
- package/components/virtualization/GridVirtualScrollerContent.d.ts +4 -1
- package/components/virtualization/GridVirtualScrollerContent.js +1 -3
- package/components/virtualization/GridVirtualScrollerRenderZone.d.ts +4 -1
- package/constants/defaultGridSlotsComponents.js +3 -2
- package/constants/gridClasses.d.ts +20 -0
- package/constants/gridClasses.js +1 -1
- package/constants/gridDetailPanelToggleField.d.ts +1 -0
- package/constants/gridDetailPanelToggleField.js +2 -0
- package/constants/localeTextConstants.js +8 -1
- package/hooks/core/pipeProcessing/gridPipeProcessingApi.d.ts +39 -15
- package/hooks/core/pipeProcessing/index.d.ts +1 -0
- package/hooks/core/pipeProcessing/index.js +2 -1
- package/hooks/core/pipeProcessing/useGridPipeProcessing.d.ts +8 -3
- package/hooks/core/pipeProcessing/useGridPipeProcessing.js +53 -19
- package/hooks/core/pipeProcessing/useGridRegisterPipeApplier.d.ts +3 -0
- package/hooks/core/pipeProcessing/useGridRegisterPipeApplier.js +27 -0
- package/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.d.ts +0 -3
- package/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.js +0 -4
- package/hooks/core/strategyProcessing/useGridStrategyProcessing.d.ts +4 -4
- package/hooks/core/strategyProcessing/useGridStrategyProcessing.js +6 -7
- package/hooks/core/useGridApiInitialization.js +3 -3
- package/hooks/core/useGridErrorHandler.js +1 -2
- package/hooks/core/useGridStateInitialization.js +1 -2
- package/hooks/features/columnHeaders/useGridColumnHeaders.d.ts +0 -1
- package/hooks/features/columnHeaders/useGridColumnHeaders.js +81 -16
- package/hooks/features/columnMenu/useGridColumnMenu.js +3 -3
- package/hooks/features/columns/gridColumnsInterfaces.d.ts +3 -1
- package/hooks/features/columns/gridColumnsUtils.d.ts +19 -1
- package/hooks/features/columns/gridColumnsUtils.js +61 -8
- package/hooks/features/columns/useGridColumnSpanning.d.ts +7 -0
- package/hooks/features/columns/useGridColumnSpanning.js +108 -0
- package/hooks/features/columns/useGridColumns.d.ts +1 -1
- package/hooks/features/columns/useGridColumns.js +30 -25
- package/hooks/features/dimensions/useGridDimensions.d.ts +1 -1
- package/hooks/features/dimensions/useGridDimensions.js +10 -11
- package/hooks/features/editRows/useGridCellEditing.new.d.ts +1 -1
- package/hooks/features/editRows/useGridCellEditing.new.js +151 -42
- package/hooks/features/editRows/useGridCellEditing.old.js +20 -21
- package/hooks/features/editRows/useGridEditing.new.js +7 -3
- package/hooks/features/editRows/useGridEditing.old.js +4 -5
- package/hooks/features/editRows/useGridRowEditing.new.d.ts +1 -1
- package/hooks/features/editRows/useGridRowEditing.new.js +145 -57
- package/hooks/features/editRows/useGridRowEditing.old.js +21 -22
- package/hooks/features/events/useGridEvents.js +17 -18
- package/hooks/features/export/serializers/csvSerializer.js +5 -5
- package/hooks/features/export/useGridCsvExport.js +23 -16
- package/hooks/features/export/useGridPrintExport.js +22 -0
- package/hooks/features/export/utils.d.ts +3 -1
- package/hooks/features/export/utils.js +13 -0
- package/hooks/features/filter/gridFilterState.d.ts +1 -2
- package/hooks/features/filter/gridFilterState.js +3 -1
- package/hooks/features/filter/gridFilterUtils.d.ts +8 -0
- package/hooks/features/filter/gridFilterUtils.js +84 -2
- package/hooks/features/filter/useGridFilter.js +32 -15
- package/hooks/features/focus/useGridFocus.d.ts +1 -1
- package/hooks/features/focus/useGridFocus.js +48 -42
- package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.d.ts +1 -0
- package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +43 -12
- package/hooks/features/pagination/useGridPage.js +3 -4
- package/hooks/features/pagination/useGridPageSize.js +2 -3
- package/hooks/features/preferencesPanel/useGridPreferencesPanel.js +4 -6
- package/hooks/features/rows/gridRowsSelector.d.ts +2 -0
- package/hooks/features/rows/gridRowsSelector.js +2 -0
- package/hooks/features/rows/gridRowsState.d.ts +7 -7
- package/hooks/features/rows/gridRowsUtils.d.ts +2 -1
- package/hooks/features/rows/gridRowsUtils.js +25 -1
- package/hooks/features/rows/useGridRows.d.ts +2 -2
- package/hooks/features/rows/useGridRows.js +121 -61
- package/hooks/features/rows/useGridRowsMeta.js +6 -13
- package/hooks/features/rows/useGridRowsPreProcessors.js +2 -0
- package/hooks/features/scroll/useGridScroll.d.ts +2 -0
- package/hooks/features/scroll/useGridScroll.js +31 -4
- package/hooks/features/selection/useGridSelection.d.ts +1 -1
- package/hooks/features/selection/useGridSelection.js +15 -11
- package/hooks/features/sorting/useGridSorting.js +17 -18
- package/hooks/features/virtualization/useGridVirtualScroller.d.ts +9 -0
- package/hooks/features/virtualization/useGridVirtualScroller.js +68 -32
- package/hooks/utils/useGridApiEventHandler.d.ts +4 -1
- package/hooks/utils/useGridApiEventHandler.js +22 -9
- package/hooks/utils/useGridNativeEventListener.js +1 -2
- package/hooks/utils/useGridSelector.js +1 -1
- package/index.d.ts +2 -0
- package/index.js +1 -1
- package/internals/index.d.ts +5 -1
- package/internals/index.js +6 -2
- package/legacy/DataGrid/DataGrid.js +36 -2
- package/legacy/DataGrid/useDataGridComponent.js +3 -1
- package/legacy/DataGrid/useDataGridProps.js +2 -1
- package/legacy/colDef/gridActionsColDef.js +2 -1
- package/legacy/colDef/gridBooleanColDef.js +2 -1
- package/legacy/colDef/gridCheckboxSelectionColDef.js +1 -0
- package/legacy/colDef/gridDateColDef.js +4 -2
- package/legacy/colDef/gridNumericColDef.js +3 -2
- package/legacy/colDef/gridNumericOperators.js +28 -18
- package/legacy/colDef/gridSingleSelectColDef.js +3 -2
- package/legacy/colDef/gridSingleSelectOperators.js +55 -6
- package/legacy/colDef/gridStringColDef.js +3 -2
- package/legacy/colDef/gridStringOperators.js +25 -14
- package/legacy/components/GridFooter.js +11 -2
- package/legacy/components/GridRow.js +56 -28
- package/legacy/components/GridRowCount.js +1 -0
- package/legacy/components/GridScrollArea.js +3 -4
- package/legacy/components/GridSelectedRowCount.js +2 -1
- package/legacy/components/base/GridBody.js +1 -2
- package/legacy/components/base/GridOverlays.js +5 -5
- package/legacy/components/cell/GridActionsCell.js +197 -27
- package/legacy/components/cell/GridActionsCellItem.js +7 -5
- package/legacy/components/cell/GridCell.js +37 -15
- package/legacy/components/cell/GridEditBooleanCell.js +132 -11
- package/legacy/components/cell/GridEditDateCell.js +148 -42
- package/legacy/components/cell/GridEditInputCell.js +62 -13
- package/legacy/components/cell/GridEditSingleSelectCell.js +65 -28
- package/legacy/components/cell/index.js +2 -0
- package/legacy/components/columnHeaders/GridColumnHeaderItem.js +19 -23
- package/legacy/components/columnHeaders/GridColumnHeaders.js +2 -3
- package/legacy/components/columnSelection/GridCellCheckboxRenderer.js +23 -6
- package/legacy/components/columnSelection/GridHeaderCheckbox.js +4 -5
- package/legacy/components/containers/GridFooterContainer.js +11 -2
- package/legacy/components/containers/GridRootStyles.js +26 -5
- package/legacy/components/containers/GridToolbarContainer.js +12 -2
- package/legacy/components/menu/GridMenu.js +1 -0
- package/legacy/components/panel/GridPanel.js +1 -0
- package/legacy/components/panel/GridPanelContent.js +13 -2
- package/legacy/components/panel/GridPanelFooter.js +13 -2
- package/legacy/components/panel/GridPanelHeader.js +13 -2
- 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/GridToolbar.js +31 -6
- package/legacy/components/toolbar/GridToolbarDensitySelector.js +1 -1
- package/legacy/components/toolbar/GridToolbarExport.js +18 -19
- package/legacy/components/toolbar/GridToolbarQuickFilter.js +103 -0
- package/legacy/components/toolbar/index.js +3 -2
- package/legacy/components/virtualization/GridVirtualScroller.js +2 -0
- package/legacy/components/virtualization/GridVirtualScrollerContent.js +1 -3
- package/legacy/constants/defaultGridSlotsComponents.js +3 -2
- package/legacy/constants/gridClasses.js +1 -1
- package/legacy/constants/gridDetailPanelToggleField.js +2 -0
- package/legacy/constants/localeTextConstants.js +8 -1
- package/legacy/hooks/core/pipeProcessing/index.js +2 -1
- package/legacy/hooks/core/pipeProcessing/useGridPipeProcessing.js +60 -24
- package/legacy/hooks/core/pipeProcessing/useGridRegisterPipeApplier.js +27 -0
- package/legacy/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.js +0 -4
- package/legacy/hooks/core/strategyProcessing/useGridStrategyProcessing.js +6 -7
- package/legacy/hooks/core/useGridApiInitialization.js +3 -3
- package/legacy/hooks/core/useGridErrorHandler.js +1 -2
- package/legacy/hooks/core/useGridStateInitialization.js +1 -2
- package/legacy/hooks/features/columnHeaders/useGridColumnHeaders.js +94 -16
- package/legacy/hooks/features/columnMenu/useGridColumnMenu.js +3 -3
- package/legacy/hooks/features/columns/gridColumnsUtils.js +79 -22
- package/legacy/hooks/features/columns/useGridColumnSpanning.js +106 -0
- package/legacy/hooks/features/columns/useGridColumns.js +30 -25
- package/legacy/hooks/features/dimensions/useGridDimensions.js +10 -11
- package/legacy/hooks/features/editRows/useGridCellEditing.new.js +225 -89
- package/legacy/hooks/features/editRows/useGridCellEditing.old.js +20 -21
- package/legacy/hooks/features/editRows/useGridEditing.new.js +7 -3
- package/legacy/hooks/features/editRows/useGridEditing.old.js +4 -5
- package/legacy/hooks/features/editRows/useGridRowEditing.new.js +157 -65
- package/legacy/hooks/features/editRows/useGridRowEditing.old.js +20 -21
- package/legacy/hooks/features/events/useGridEvents.js +17 -18
- package/legacy/hooks/features/export/serializers/csvSerializer.js +5 -5
- package/legacy/hooks/features/export/useGridCsvExport.js +24 -17
- package/legacy/hooks/features/export/useGridPrintExport.js +22 -0
- package/legacy/hooks/features/export/utils.js +14 -0
- package/legacy/hooks/features/filter/gridFilterState.js +3 -1
- package/legacy/hooks/features/filter/gridFilterUtils.js +96 -2
- package/legacy/hooks/features/filter/useGridFilter.js +32 -15
- package/legacy/hooks/features/focus/useGridFocus.js +50 -44
- package/legacy/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +43 -11
- package/legacy/hooks/features/pagination/useGridPage.js +3 -4
- package/legacy/hooks/features/pagination/useGridPageSize.js +2 -3
- package/legacy/hooks/features/preferencesPanel/useGridPreferencesPanel.js +4 -6
- package/legacy/hooks/features/rows/gridRowsSelector.js +6 -0
- package/legacy/hooks/features/rows/gridRowsUtils.js +27 -1
- package/legacy/hooks/features/rows/useGridRows.js +131 -61
- package/legacy/hooks/features/rows/useGridRowsMeta.js +6 -13
- package/legacy/hooks/features/rows/useGridRowsPreProcessors.js +2 -0
- package/legacy/hooks/features/scroll/useGridScroll.js +31 -4
- package/legacy/hooks/features/selection/useGridSelection.js +15 -11
- package/legacy/hooks/features/sorting/useGridSorting.js +12 -15
- package/legacy/hooks/features/virtualization/useGridVirtualScroller.js +79 -42
- package/legacy/hooks/utils/useGridApiEventHandler.js +20 -9
- package/legacy/hooks/utils/useGridNativeEventListener.js +1 -2
- package/legacy/hooks/utils/useGridSelector.js +1 -1
- package/legacy/index.js +1 -1
- package/legacy/internals/index.js +6 -2
- package/legacy/locales/arSD.js +8 -1
- package/legacy/locales/bgBG.js +8 -1
- package/legacy/locales/csCZ.js +7 -0
- package/legacy/locales/daDK.js +8 -1
- package/legacy/locales/deDE.js +10 -3
- package/legacy/locales/elGR.js +7 -0
- package/legacy/locales/esES.js +7 -0
- package/legacy/locales/faIR.js +8 -1
- package/legacy/locales/fiFI.js +7 -0
- package/legacy/locales/frFR.js +7 -0
- package/legacy/locales/heIL.js +8 -1
- package/legacy/locales/huHU.js +127 -0
- package/legacy/locales/index.js +1 -0
- package/legacy/locales/itIT.js +7 -0
- package/legacy/locales/jaJP.js +7 -0
- package/legacy/locales/koKR.js +7 -0
- package/legacy/locales/nlNL.js +7 -0
- package/legacy/locales/plPL.js +8 -1
- package/legacy/locales/ptBR.js +8 -1
- package/legacy/locales/ruRU.js +7 -0
- package/legacy/locales/skSK.js +7 -0
- package/legacy/locales/trTR.js +8 -1
- package/legacy/locales/ukUA.js +7 -0
- package/legacy/locales/viVN.js +7 -0
- package/legacy/locales/zhCN.js +7 -0
- package/legacy/models/api/gridColumnSpanning.js +1 -0
- package/legacy/models/events/gridEvents.js +10 -3
- package/legacy/models/gridColumnSpanning.js +1 -0
- package/legacy/models/index.js +4 -3
- package/legacy/utils/createSelector.js +18 -2
- package/legacy/utils/exportAs.js +1 -1
- package/locales/arSD.js +8 -1
- package/locales/bgBG.js +8 -1
- package/locales/csCZ.js +7 -0
- package/locales/daDK.js +8 -1
- package/locales/deDE.js +10 -3
- package/locales/elGR.js +7 -0
- package/locales/esES.js +7 -0
- package/locales/faIR.js +8 -1
- package/locales/fiFI.js +7 -0
- package/locales/frFR.js +7 -0
- package/locales/heIL.js +8 -1
- package/locales/huHU.d.ts +2 -0
- package/locales/huHU.js +115 -0
- package/locales/index.d.ts +1 -0
- package/locales/index.js +1 -0
- package/locales/itIT.js +7 -0
- package/locales/jaJP.js +7 -0
- package/locales/koKR.js +7 -0
- package/locales/nlNL.js +7 -0
- package/locales/plPL.js +8 -1
- package/locales/ptBR.js +8 -1
- package/locales/ruRU.js +7 -0
- package/locales/skSK.js +7 -0
- package/locales/trTR.js +8 -1
- package/locales/ukUA.js +7 -0
- package/locales/viVN.js +7 -0
- package/locales/zhCN.js +7 -0
- package/models/api/gridApiCommon.d.ts +2 -1
- package/models/api/gridColumnSpanning.d.ts +28 -0
- package/models/api/gridColumnSpanning.js +1 -0
- package/models/api/gridCoreApi.d.ts +10 -0
- package/models/api/gridEditingApi.d.ts +72 -7
- package/models/api/gridFilterApi.d.ts +5 -0
- package/models/api/gridFocusApi.d.ts +1 -0
- package/models/api/gridLocaleTextApi.d.ts +5 -0
- package/models/api/gridRowApi.d.ts +34 -0
- package/models/api/index.d.ts +1 -1
- package/models/colDef/gridColDef.d.ts +18 -0
- package/models/events/gridEventLookup.d.ts +296 -11
- package/models/events/gridEvents.d.ts +10 -258
- package/models/events/gridEvents.js +10 -3
- package/models/gridColumnSpanning.d.ts +12 -0
- package/models/gridColumnSpanning.js +1 -0
- package/models/gridEditRowModel.d.ts +1 -1
- package/models/gridExport.d.ts +29 -2
- package/models/gridFilterModel.d.ts +11 -0
- package/models/gridFilterOperator.d.ts +1 -1
- package/models/gridIconSlotsComponent.d.ts +5 -0
- package/models/gridStateCommunity.d.ts +0 -2
- package/models/index.d.ts +1 -1
- package/models/index.js +4 -3
- package/models/params/gridCellParams.d.ts +12 -2
- package/models/params/gridRowParams.d.ts +5 -0
- package/models/props/DataGridProps.d.ts +57 -29
- package/modern/DataGrid/DataGrid.js +36 -2
- package/modern/DataGrid/useDataGridComponent.js +3 -1
- package/modern/DataGrid/useDataGridProps.js +2 -1
- package/modern/colDef/gridActionsColDef.js +2 -1
- package/modern/colDef/gridBooleanColDef.js +2 -1
- package/modern/colDef/gridCheckboxSelectionColDef.js +1 -0
- package/modern/colDef/gridDateColDef.js +4 -2
- package/modern/colDef/gridNumericColDef.js +3 -2
- package/modern/colDef/gridNumericOperators.js +11 -0
- package/modern/colDef/gridSingleSelectColDef.js +3 -2
- package/modern/colDef/gridSingleSelectOperators.js +52 -0
- package/modern/colDef/gridStringColDef.js +3 -2
- package/modern/colDef/gridStringOperators.js +12 -0
- package/modern/components/GridFooter.js +11 -2
- package/modern/components/GridRow.js +56 -26
- package/modern/components/GridRowCount.js +1 -0
- package/modern/components/GridScrollArea.js +3 -4
- package/modern/components/GridSelectedRowCount.js +2 -1
- package/modern/components/base/GridBody.js +1 -2
- package/modern/components/base/GridOverlays.js +5 -5
- package/modern/components/cell/GridActionsCell.js +179 -21
- package/modern/components/cell/GridActionsCellItem.js +7 -5
- package/modern/components/cell/GridCell.js +36 -15
- package/modern/components/cell/GridEditBooleanCell.js +101 -6
- package/modern/components/cell/GridEditDateCell.js +99 -5
- package/modern/components/cell/GridEditInputCell.js +30 -6
- package/modern/components/cell/GridEditSingleSelectCell.js +48 -16
- package/modern/components/cell/index.js +2 -0
- package/modern/components/columnHeaders/GridColumnHeaderItem.js +19 -23
- package/modern/components/columnHeaders/GridColumnHeaders.js +1 -1
- package/modern/components/columnSelection/GridCellCheckboxRenderer.js +22 -6
- package/modern/components/columnSelection/GridHeaderCheckbox.js +4 -5
- package/modern/components/containers/GridFooterContainer.js +11 -2
- package/modern/components/containers/GridRootStyles.js +36 -1
- package/modern/components/containers/GridToolbarContainer.js +12 -2
- package/modern/components/menu/GridMenu.js +1 -0
- package/modern/components/panel/GridPanel.js +1 -0
- package/modern/components/panel/GridPanelContent.js +13 -2
- package/modern/components/panel/GridPanelFooter.js +13 -2
- package/modern/components/panel/GridPanelHeader.js +13 -2
- 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/GridToolbar.js +30 -7
- package/modern/components/toolbar/GridToolbarDensitySelector.js +1 -1
- package/modern/components/toolbar/GridToolbarExport.js +15 -20
- package/modern/components/toolbar/GridToolbarQuickFilter.js +86 -0
- package/modern/components/toolbar/index.js +3 -2
- package/modern/components/virtualization/GridVirtualScroller.js +2 -0
- package/modern/components/virtualization/GridVirtualScrollerContent.js +1 -3
- package/modern/constants/defaultGridSlotsComponents.js +3 -2
- package/modern/constants/gridClasses.js +1 -1
- package/modern/constants/gridDetailPanelToggleField.js +2 -0
- package/modern/constants/localeTextConstants.js +8 -1
- package/modern/hooks/core/pipeProcessing/index.js +2 -1
- package/modern/hooks/core/pipeProcessing/useGridPipeProcessing.js +53 -19
- package/modern/hooks/core/pipeProcessing/useGridRegisterPipeApplier.js +27 -0
- package/modern/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.js +0 -4
- package/modern/hooks/core/strategyProcessing/useGridStrategyProcessing.js +6 -7
- package/modern/hooks/core/useGridApiInitialization.js +3 -3
- package/modern/hooks/core/useGridErrorHandler.js +1 -2
- package/modern/hooks/core/useGridStateInitialization.js +1 -2
- package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +81 -16
- package/modern/hooks/features/columnMenu/useGridColumnMenu.js +3 -3
- package/modern/hooks/features/columns/gridColumnsUtils.js +61 -8
- package/modern/hooks/features/columns/useGridColumnSpanning.js +106 -0
- package/modern/hooks/features/columns/useGridColumns.js +30 -25
- package/modern/hooks/features/dimensions/useGridDimensions.js +10 -11
- package/modern/hooks/features/editRows/useGridCellEditing.new.js +149 -42
- package/modern/hooks/features/editRows/useGridCellEditing.old.js +20 -21
- package/modern/hooks/features/editRows/useGridEditing.new.js +7 -3
- package/modern/hooks/features/editRows/useGridEditing.old.js +4 -5
- package/modern/hooks/features/editRows/useGridRowEditing.new.js +143 -57
- package/modern/hooks/features/editRows/useGridRowEditing.old.js +21 -22
- package/modern/hooks/features/events/useGridEvents.js +17 -18
- package/modern/hooks/features/export/serializers/csvSerializer.js +5 -5
- package/modern/hooks/features/export/useGridCsvExport.js +21 -16
- package/modern/hooks/features/export/useGridPrintExport.js +20 -0
- package/modern/hooks/features/export/utils.js +13 -0
- package/modern/hooks/features/filter/gridFilterState.js +3 -1
- package/modern/hooks/features/filter/gridFilterUtils.js +80 -2
- package/modern/hooks/features/filter/useGridFilter.js +32 -15
- package/modern/hooks/features/focus/useGridFocus.js +48 -42
- package/modern/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +41 -12
- package/modern/hooks/features/pagination/useGridPage.js +3 -4
- package/modern/hooks/features/pagination/useGridPageSize.js +2 -3
- package/modern/hooks/features/preferencesPanel/useGridPreferencesPanel.js +4 -6
- package/modern/hooks/features/rows/gridRowsSelector.js +2 -0
- package/modern/hooks/features/rows/gridRowsUtils.js +23 -1
- package/modern/hooks/features/rows/useGridRows.js +121 -61
- package/modern/hooks/features/rows/useGridRowsMeta.js +6 -13
- package/modern/hooks/features/rows/useGridRowsPreProcessors.js +2 -0
- package/modern/hooks/features/scroll/useGridScroll.js +29 -4
- package/modern/hooks/features/selection/useGridSelection.js +15 -11
- package/modern/hooks/features/sorting/useGridSorting.js +17 -18
- package/modern/hooks/features/virtualization/useGridVirtualScroller.js +68 -28
- package/modern/hooks/utils/useGridApiEventHandler.js +20 -9
- package/modern/hooks/utils/useGridNativeEventListener.js +1 -2
- package/modern/hooks/utils/useGridSelector.js +1 -1
- package/modern/index.js +1 -1
- package/modern/internals/index.js +6 -2
- package/modern/locales/arSD.js +8 -1
- package/modern/locales/bgBG.js +8 -1
- package/modern/locales/csCZ.js +7 -0
- package/modern/locales/daDK.js +8 -1
- package/modern/locales/deDE.js +10 -3
- package/modern/locales/elGR.js +7 -0
- package/modern/locales/esES.js +7 -0
- package/modern/locales/faIR.js +8 -1
- package/modern/locales/fiFI.js +7 -0
- package/modern/locales/frFR.js +7 -0
- package/modern/locales/heIL.js +8 -1
- package/modern/locales/huHU.js +115 -0
- package/modern/locales/index.js +1 -0
- package/modern/locales/itIT.js +7 -0
- package/modern/locales/jaJP.js +7 -0
- package/modern/locales/koKR.js +7 -0
- package/modern/locales/nlNL.js +7 -0
- package/modern/locales/plPL.js +8 -1
- package/modern/locales/ptBR.js +8 -1
- package/modern/locales/ruRU.js +7 -0
- package/modern/locales/skSK.js +7 -0
- package/modern/locales/trTR.js +8 -1
- package/modern/locales/ukUA.js +7 -0
- package/modern/locales/viVN.js +7 -0
- package/modern/locales/zhCN.js +7 -0
- package/modern/models/api/gridColumnSpanning.js +1 -0
- package/modern/models/events/gridEvents.js +10 -3
- package/modern/models/gridColumnSpanning.js +1 -0
- package/modern/models/index.js +4 -3
- package/modern/utils/createSelector.js +20 -2
- package/modern/utils/exportAs.js +1 -1
- package/node/DataGrid/DataGrid.js +36 -2
- package/node/DataGrid/useDataGridComponent.js +4 -1
- package/node/DataGrid/useDataGridProps.js +2 -1
- package/node/colDef/gridActionsColDef.js +2 -1
- package/node/colDef/gridBooleanColDef.js +2 -1
- package/node/colDef/gridCheckboxSelectionColDef.js +1 -0
- package/node/colDef/gridDateColDef.js +4 -2
- package/node/colDef/gridNumericColDef.js +2 -1
- package/node/colDef/gridNumericOperators.js +15 -1
- package/node/colDef/gridSingleSelectColDef.js +2 -1
- package/node/colDef/gridSingleSelectOperators.js +56 -1
- package/node/colDef/gridStringColDef.js +2 -1
- package/node/colDef/gridStringOperators.js +16 -1
- package/node/components/GridFooter.js +10 -1
- package/node/components/GridRow.js +59 -29
- package/node/components/GridRowCount.js +1 -0
- package/node/components/GridScrollArea.js +3 -5
- package/node/components/GridSelectedRowCount.js +2 -1
- package/node/components/base/GridBody.js +1 -3
- package/node/components/base/GridOverlays.js +4 -5
- package/node/components/cell/GridActionsCell.js +181 -21
- package/node/components/cell/GridActionsCellItem.js +7 -4
- package/node/components/cell/GridCell.js +35 -14
- package/node/components/cell/GridEditBooleanCell.js +100 -5
- package/node/components/cell/GridEditDateCell.js +98 -4
- package/node/components/cell/GridEditInputCell.js +30 -6
- package/node/components/cell/GridEditSingleSelectCell.js +50 -18
- package/node/components/cell/index.js +26 -0
- package/node/components/columnHeaders/GridColumnHeaderItem.js +19 -24
- package/node/components/columnHeaders/GridColumnHeaders.js +1 -1
- package/node/components/columnSelection/GridCellCheckboxRenderer.js +22 -7
- package/node/components/columnSelection/GridHeaderCheckbox.js +4 -6
- package/node/components/containers/GridFooterContainer.js +10 -1
- package/node/components/containers/GridRootStyles.js +36 -1
- package/node/components/containers/GridToolbarContainer.js +11 -1
- package/node/components/menu/GridMenu.js +1 -0
- package/node/components/panel/GridPanel.js +1 -0
- package/node/components/panel/GridPanelContent.js +11 -1
- package/node/components/panel/GridPanelFooter.js +11 -1
- package/node/components/panel/GridPanelHeader.js +11 -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/GridToolbar.js +32 -7
- package/node/components/toolbar/GridToolbarDensitySelector.js +1 -1
- package/node/components/toolbar/GridToolbarExport.js +14 -19
- package/node/components/toolbar/GridToolbarQuickFilter.js +111 -0
- package/node/components/toolbar/index.js +42 -11
- package/node/components/virtualization/GridVirtualScroller.js +2 -0
- package/node/components/virtualization/GridVirtualScrollerContent.js +1 -3
- package/node/constants/defaultGridSlotsComponents.js +2 -1
- package/node/constants/gridClasses.js +1 -1
- package/node/constants/gridDetailPanelToggleField.js +9 -0
- package/node/constants/localeTextConstants.js +8 -1
- package/node/hooks/core/pipeProcessing/index.js +13 -0
- package/node/hooks/core/pipeProcessing/useGridPipeProcessing.js +51 -20
- package/node/hooks/core/pipeProcessing/useGridRegisterPipeApplier.js +42 -0
- package/node/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.js +0 -3
- package/node/hooks/core/strategyProcessing/useGridStrategyProcessing.js +6 -8
- package/node/hooks/core/useGridApiInitialization.js +3 -4
- package/node/hooks/core/useGridErrorHandler.js +1 -3
- package/node/hooks/core/useGridStateInitialization.js +1 -3
- package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +85 -17
- package/node/hooks/features/columnMenu/useGridColumnMenu.js +3 -4
- package/node/hooks/features/columns/gridColumnsUtils.js +65 -9
- package/node/hooks/features/columns/useGridColumnSpanning.js +128 -0
- package/node/hooks/features/columns/useGridColumns.js +29 -25
- package/node/hooks/features/dimensions/useGridDimensions.js +10 -12
- package/node/hooks/features/editRows/useGridCellEditing.new.js +151 -42
- package/node/hooks/features/editRows/useGridCellEditing.old.js +20 -22
- package/node/hooks/features/editRows/useGridEditing.new.js +6 -2
- package/node/hooks/features/editRows/useGridEditing.old.js +4 -6
- package/node/hooks/features/editRows/useGridRowEditing.new.js +143 -57
- package/node/hooks/features/editRows/useGridRowEditing.old.js +21 -23
- package/node/hooks/features/events/useGridEvents.js +17 -19
- package/node/hooks/features/export/serializers/csvSerializer.js +5 -5
- package/node/hooks/features/export/useGridCsvExport.js +26 -17
- package/node/hooks/features/export/useGridPrintExport.js +25 -0
- package/node/hooks/features/export/utils.js +19 -2
- package/node/hooks/features/filter/gridFilterState.js +3 -1
- package/node/hooks/features/filter/gridFilterUtils.js +92 -3
- package/node/hooks/features/filter/useGridFilter.js +33 -16
- package/node/hooks/features/focus/useGridFocus.js +48 -43
- package/node/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +44 -13
- package/node/hooks/features/pagination/useGridPage.js +3 -5
- package/node/hooks/features/pagination/useGridPageSize.js +2 -4
- package/node/hooks/features/preferencesPanel/useGridPreferencesPanel.js +4 -8
- package/node/hooks/features/rows/gridRowsSelector.js +5 -1
- package/node/hooks/features/rows/gridRowsUtils.js +29 -1
- package/node/hooks/features/rows/useGridRows.js +122 -61
- package/node/hooks/features/rows/useGridRowsMeta.js +6 -14
- package/node/hooks/features/rows/useGridRowsPreProcessors.js +2 -0
- package/node/hooks/features/scroll/useGridScroll.js +32 -3
- package/node/hooks/features/selection/useGridSelection.js +16 -12
- package/node/hooks/features/sorting/useGridSorting.js +17 -19
- package/node/hooks/features/virtualization/useGridVirtualScroller.js +73 -33
- package/node/hooks/utils/useGridApiEventHandler.js +22 -10
- package/node/hooks/utils/useGridNativeEventListener.js +1 -3
- package/node/hooks/utils/useGridSelector.js +1 -1
- package/node/index.js +1 -1
- package/node/internals/index.js +47 -3
- package/node/locales/arSD.js +8 -1
- package/node/locales/bgBG.js +8 -1
- package/node/locales/csCZ.js +7 -0
- package/node/locales/daDK.js +8 -1
- package/node/locales/deDE.js +10 -3
- package/node/locales/elGR.js +7 -0
- package/node/locales/esES.js +7 -0
- package/node/locales/faIR.js +8 -1
- package/node/locales/fiFI.js +7 -0
- package/node/locales/frFR.js +7 -0
- package/node/locales/heIL.js +8 -1
- package/node/locales/huHU.js +125 -0
- package/node/locales/index.js +13 -0
- package/node/locales/itIT.js +7 -0
- package/node/locales/jaJP.js +7 -0
- package/node/locales/koKR.js +7 -0
- package/node/locales/nlNL.js +7 -0
- package/node/locales/plPL.js +8 -1
- package/node/locales/ptBR.js +8 -1
- package/node/locales/ruRU.js +7 -0
- package/node/locales/skSK.js +7 -0
- package/node/locales/trTR.js +8 -1
- package/node/locales/ukUA.js +7 -0
- package/node/locales/viVN.js +7 -0
- package/node/locales/zhCN.js +7 -0
- package/node/models/api/gridColumnSpanning.js +5 -0
- package/node/models/events/gridEvents.js +10 -3
- package/node/models/gridColumnSpanning.js +5 -0
- package/node/models/index.js +0 -13
- package/node/utils/createSelector.js +25 -4
- package/node/utils/exportAs.js +1 -1
- package/package.json +4 -4
- package/utils/createSelector.d.ts +2 -1
- package/utils/createSelector.js +20 -2
- package/utils/domUtils.d.ts +2 -2
- package/utils/exportAs.d.ts +2 -2
- package/utils/exportAs.js +1 -1
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { GridEvents } from '../../../models/events';
|
|
3
2
|
import { gridVisibleColumnDefinitionsSelector } from '../columns/gridColumnsSelector';
|
|
4
3
|
import { useGridLogger } from '../../utils/useGridLogger';
|
|
5
4
|
import { useGridApiEventHandler } from '../../utils/useGridApiEventHandler';
|
|
@@ -9,6 +8,7 @@ import { GRID_CHECKBOX_SELECTION_COL_DEF } from '../../../colDef/gridCheckboxSel
|
|
|
9
8
|
import { gridClasses } from '../../../constants/gridClasses';
|
|
10
9
|
import { GridCellModes } from '../../../models/gridEditRowModel';
|
|
11
10
|
import { isNavigationKey } from '../../../utils/keyboardUtils';
|
|
11
|
+
import { GRID_DETAIL_PANEL_TOGGLE_FIELD } from '../../../constants/gridDetailPanelToggleField';
|
|
12
12
|
/**
|
|
13
13
|
* @requires useGridSorting (method) - can be after
|
|
14
14
|
* @requires useGridFilter (state) - can be after
|
|
@@ -16,21 +16,41 @@ import { isNavigationKey } from '../../../utils/keyboardUtils';
|
|
|
16
16
|
* @requires useGridDimensions (method) - can be after
|
|
17
17
|
* @requires useGridFocus (method) - can be after
|
|
18
18
|
* @requires useGridScroll (method) - can be after
|
|
19
|
+
* @requires useGridColumnSpanning (method) - can be after
|
|
19
20
|
*/
|
|
20
21
|
|
|
21
22
|
export var useGridKeyboardNavigation = function useGridKeyboardNavigation(apiRef, props) {
|
|
22
23
|
var logger = useGridLogger(apiRef, 'useGridKeyboardNavigation');
|
|
23
24
|
var currentPage = useGridVisibleRows(apiRef, props);
|
|
25
|
+
/**
|
|
26
|
+
* @param {number} colIndex Index of the column to focus
|
|
27
|
+
* @param {number} rowIndex index of the row to focus
|
|
28
|
+
* @param {string} closestColumnToUse Which closest column cell to use when the cell is spanned by `colSpan`.
|
|
29
|
+
*/
|
|
30
|
+
|
|
24
31
|
var goToCell = React.useCallback(function (colIndex, rowIndex) {
|
|
32
|
+
var _visibleSortedRows$ro;
|
|
33
|
+
|
|
34
|
+
var closestColumnToUse = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'left';
|
|
35
|
+
var visibleSortedRows = gridVisibleSortedRowEntriesSelector(apiRef);
|
|
36
|
+
var rowId = (_visibleSortedRows$ro = visibleSortedRows[rowIndex]) == null ? void 0 : _visibleSortedRows$ro.id;
|
|
37
|
+
var nextCellColSpanInfo = apiRef.current.unstable_getCellColSpanInfo(rowId, colIndex);
|
|
38
|
+
|
|
39
|
+
if (nextCellColSpanInfo && nextCellColSpanInfo.spannedByColSpan) {
|
|
40
|
+
if (closestColumnToUse === 'left') {
|
|
41
|
+
colIndex = nextCellColSpanInfo.leftVisibleCellIndex;
|
|
42
|
+
} else if (closestColumnToUse === 'right') {
|
|
43
|
+
colIndex = nextCellColSpanInfo.rightVisibleCellIndex;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
25
47
|
logger.debug("Navigating to cell row ".concat(rowIndex, ", col ").concat(colIndex));
|
|
26
48
|
apiRef.current.scrollToIndexes({
|
|
27
49
|
colIndex: colIndex,
|
|
28
50
|
rowIndex: rowIndex
|
|
29
51
|
});
|
|
30
52
|
var field = apiRef.current.getVisibleColumns()[colIndex].field;
|
|
31
|
-
|
|
32
|
-
var node = visibleSortedRows[rowIndex];
|
|
33
|
-
apiRef.current.setCellFocus(node.id, field);
|
|
53
|
+
apiRef.current.setCellFocus(rowId, field);
|
|
34
54
|
}, [apiRef, logger]);
|
|
35
55
|
var goToHeader = React.useCallback(function (colIndex, event) {
|
|
36
56
|
logger.debug("Navigating to header col ".concat(colIndex));
|
|
@@ -85,7 +105,7 @@ export var useGridKeyboardNavigation = function useGridKeyboardNavigation(apiRef
|
|
|
85
105
|
case 'ArrowRight':
|
|
86
106
|
{
|
|
87
107
|
if (colIndexBefore < lastColIndex) {
|
|
88
|
-
goToCell(colIndexBefore + 1, rowIndexBefore);
|
|
108
|
+
goToCell(colIndexBefore + 1, rowIndexBefore, 'right');
|
|
89
109
|
}
|
|
90
110
|
|
|
91
111
|
break;
|
|
@@ -104,9 +124,9 @@ export var useGridKeyboardNavigation = function useGridKeyboardNavigation(apiRef
|
|
|
104
124
|
{
|
|
105
125
|
// "Tab" is only triggered by the row / cell editing feature
|
|
106
126
|
if (event.shiftKey && colIndexBefore > firstColIndex) {
|
|
107
|
-
goToCell(colIndexBefore - 1, rowIndexBefore);
|
|
127
|
+
goToCell(colIndexBefore - 1, rowIndexBefore, 'left');
|
|
108
128
|
} else if (!event.shiftKey && colIndexBefore < lastColIndex) {
|
|
109
|
-
goToCell(colIndexBefore + 1, rowIndexBefore);
|
|
129
|
+
goToCell(colIndexBefore + 1, rowIndexBefore, 'right');
|
|
110
130
|
}
|
|
111
131
|
|
|
112
132
|
break;
|
|
@@ -114,6 +134,18 @@ export var useGridKeyboardNavigation = function useGridKeyboardNavigation(apiRef
|
|
|
114
134
|
|
|
115
135
|
case ' ':
|
|
116
136
|
{
|
|
137
|
+
var field = params.field;
|
|
138
|
+
|
|
139
|
+
if (field === GRID_DETAIL_PANEL_TOGGLE_FIELD) {
|
|
140
|
+
break;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
var colDef = params.colDef;
|
|
144
|
+
|
|
145
|
+
if (colDef && colDef.type === 'treeDataGroup') {
|
|
146
|
+
break;
|
|
147
|
+
}
|
|
148
|
+
|
|
117
149
|
if (!event.shiftKey && rowIndexBefore < lastRowIndexInPage) {
|
|
118
150
|
goToCell(colIndexBefore, Math.min(rowIndexBefore + viewportPageSize, lastRowIndexInPage));
|
|
119
151
|
}
|
|
@@ -286,10 +318,10 @@ export var useGridKeyboardNavigation = function useGridKeyboardNavigation(apiRef
|
|
|
286
318
|
var cellParams = apiRef.current.getCellParams(params.id, params.field);
|
|
287
319
|
|
|
288
320
|
if (cellParams.cellMode !== GridCellModes.Edit && isNavigationKey(event.key)) {
|
|
289
|
-
apiRef.current.publishEvent(
|
|
321
|
+
apiRef.current.publishEvent('cellNavigationKeyDown', cellParams, event);
|
|
290
322
|
}
|
|
291
323
|
}, [apiRef]);
|
|
292
|
-
useGridApiEventHandler(apiRef,
|
|
293
|
-
useGridApiEventHandler(apiRef,
|
|
294
|
-
useGridApiEventHandler(apiRef,
|
|
324
|
+
useGridApiEventHandler(apiRef, 'cellNavigationKeyDown', handleCellNavigationKeyDown);
|
|
325
|
+
useGridApiEventHandler(apiRef, 'columnHeaderKeyDown', handleColumnHeaderKeyDown);
|
|
326
|
+
useGridApiEventHandler(apiRef, 'cellKeyDown', handleCellKeyDown);
|
|
295
327
|
};
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { useGridLogger, useGridSelector, useGridApiMethod, useGridApiEventHandler } from '../../utils';
|
|
4
|
-
import { GridEvents } from '../../../models/events';
|
|
5
4
|
import { gridVisibleTopLevelRowCountSelector } from '../filter';
|
|
6
5
|
import { gridPageSelector, gridPageSizeSelector } from './gridPaginationSelector';
|
|
7
6
|
import { useGridRegisterPipeProcessor } from '../../core/pipeProcessing';
|
|
@@ -49,7 +48,7 @@ export var useGridPage = function useGridPage(apiRef, props) {
|
|
|
49
48
|
propModel: props.page,
|
|
50
49
|
propOnChange: props.onPageChange,
|
|
51
50
|
stateSelector: gridPageSelector,
|
|
52
|
-
changeEvent:
|
|
51
|
+
changeEvent: 'pageChange'
|
|
53
52
|
});
|
|
54
53
|
/**
|
|
55
54
|
* API METHODS
|
|
@@ -120,8 +119,8 @@ export var useGridPage = function useGridPage(apiRef, props) {
|
|
|
120
119
|
});
|
|
121
120
|
};
|
|
122
121
|
|
|
123
|
-
useGridApiEventHandler(apiRef,
|
|
124
|
-
useGridApiEventHandler(apiRef,
|
|
122
|
+
useGridApiEventHandler(apiRef, 'pageSizeChange', handlePageSizeChange);
|
|
123
|
+
useGridApiEventHandler(apiRef, 'pageChange', handlePageChange);
|
|
125
124
|
/**
|
|
126
125
|
* EFFECTS
|
|
127
126
|
*/
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
import { GridEvents } from '../../../models/events';
|
|
4
3
|
import { useGridLogger, useGridApiMethod, useGridApiEventHandler, useGridSelector } from '../../utils';
|
|
5
4
|
import { gridPageSizeSelector } from './gridPaginationSelector';
|
|
6
5
|
import { gridDensityRowHeightSelector } from '../density';
|
|
@@ -33,7 +32,7 @@ export var useGridPageSize = function useGridPageSize(apiRef, props) {
|
|
|
33
32
|
propModel: props.pageSize,
|
|
34
33
|
propOnChange: props.onPageSizeChange,
|
|
35
34
|
stateSelector: gridPageSizeSelector,
|
|
36
|
-
changeEvent:
|
|
35
|
+
changeEvent: 'pageSizeChange'
|
|
37
36
|
});
|
|
38
37
|
/**
|
|
39
38
|
* API METHODS
|
|
@@ -106,7 +105,7 @@ export var useGridPageSize = function useGridPageSize(apiRef, props) {
|
|
|
106
105
|
var maximumPageSizeWithoutScrollBar = Math.floor(dimensions.viewportInnerSize.height / rowHeight);
|
|
107
106
|
apiRef.current.setPageSize(maximumPageSizeWithoutScrollBar);
|
|
108
107
|
}, [apiRef, props.autoPageSize, rowHeight]);
|
|
109
|
-
useGridApiEventHandler(apiRef,
|
|
108
|
+
useGridApiEventHandler(apiRef, 'viewportInnerSizeChange', handleUpdateAutoPageSize);
|
|
110
109
|
/**
|
|
111
110
|
* EFFECTS
|
|
112
111
|
*/
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
import { GridEvents } from '../../../models/events';
|
|
4
3
|
import { useGridApiMethod } from '../../utils/useGridApiMethod';
|
|
5
4
|
import { useGridLogger } from '../../utils/useGridLogger';
|
|
6
5
|
import { useGridRegisterPipeProcessor } from '../../core/pipeProcessing';
|
|
7
6
|
import { gridPreferencePanelStateSelector } from './gridPreferencePanelSelector';
|
|
8
|
-
import { useGridSelector } from '../../utils/useGridSelector';
|
|
9
7
|
export var preferencePanelStateInitializer = function preferencePanelStateInitializer(state, props) {
|
|
10
8
|
var _props$initialState$p, _props$initialState;
|
|
11
9
|
|
|
@@ -21,7 +19,6 @@ export var preferencePanelStateInitializer = function preferencePanelStateInitia
|
|
|
21
19
|
|
|
22
20
|
export var useGridPreferencesPanel = function useGridPreferencesPanel(apiRef) {
|
|
23
21
|
var logger = useGridLogger(apiRef, 'useGridPreferencesPanel');
|
|
24
|
-
var preferencePanelState = useGridSelector(apiRef, gridPreferencePanelStateSelector);
|
|
25
22
|
var hideTimeout = React.useRef();
|
|
26
23
|
var immediateTimeout = React.useRef();
|
|
27
24
|
/**
|
|
@@ -30,9 +27,10 @@ export var useGridPreferencesPanel = function useGridPreferencesPanel(apiRef) {
|
|
|
30
27
|
|
|
31
28
|
var hidePreferences = React.useCallback(function () {
|
|
32
29
|
logger.debug('Hiding Preferences Panel');
|
|
30
|
+
var preferencePanelState = gridPreferencePanelStateSelector(apiRef.current.state);
|
|
33
31
|
|
|
34
32
|
if (preferencePanelState.openedPanelValue) {
|
|
35
|
-
apiRef.current.publishEvent(
|
|
33
|
+
apiRef.current.publishEvent('preferencePanelClose', {
|
|
36
34
|
openedPanelValue: preferencePanelState.openedPanelValue
|
|
37
35
|
});
|
|
38
36
|
}
|
|
@@ -45,7 +43,7 @@ export var useGridPreferencesPanel = function useGridPreferencesPanel(apiRef) {
|
|
|
45
43
|
});
|
|
46
44
|
});
|
|
47
45
|
apiRef.current.forceUpdate();
|
|
48
|
-
}, [apiRef, logger
|
|
46
|
+
}, [apiRef, logger]); // This is to prevent the preferences from closing when you open a select box or another panel,
|
|
49
47
|
// The issue is in MUI core V4 => Fixed in V5
|
|
50
48
|
|
|
51
49
|
var doNotHidePanel = React.useCallback(function () {
|
|
@@ -69,7 +67,7 @@ export var useGridPreferencesPanel = function useGridPreferencesPanel(apiRef) {
|
|
|
69
67
|
})
|
|
70
68
|
});
|
|
71
69
|
});
|
|
72
|
-
apiRef.current.publishEvent(
|
|
70
|
+
apiRef.current.publishEvent('preferencePanelOpen', {
|
|
73
71
|
openedPanelValue: newValue
|
|
74
72
|
});
|
|
75
73
|
apiRef.current.forceUpdate();
|
|
@@ -5,12 +5,18 @@ export var gridRowsStateSelector = function gridRowsStateSelector(state) {
|
|
|
5
5
|
export var gridRowCountSelector = createSelector(gridRowsStateSelector, function (rows) {
|
|
6
6
|
return rows.totalRowCount;
|
|
7
7
|
});
|
|
8
|
+
export var gridRowsLoadingSelector = createSelector(gridRowsStateSelector, function (rows) {
|
|
9
|
+
return rows.loading;
|
|
10
|
+
});
|
|
8
11
|
export var gridTopLevelRowCountSelector = createSelector(gridRowsStateSelector, function (rows) {
|
|
9
12
|
return rows.totalTopLevelRowCount;
|
|
10
13
|
});
|
|
11
14
|
export var gridRowsLookupSelector = createSelector(gridRowsStateSelector, function (rows) {
|
|
12
15
|
return rows.idRowsLookup;
|
|
13
16
|
});
|
|
17
|
+
export var gridRowsIdToIdLookupSelector = createSelector(gridRowsStateSelector, function (rows) {
|
|
18
|
+
return rows.idToIdLookup;
|
|
19
|
+
});
|
|
14
20
|
export var gridRowTreeSelector = createSelector(gridRowsStateSelector, function (rows) {
|
|
15
21
|
return rows.tree;
|
|
16
22
|
});
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
|
2
|
+
|
|
1
3
|
/**
|
|
2
4
|
* A helper function to check if the id provided is valid.
|
|
3
5
|
* @param {GridRowId} id Id as [[GridRowId]].
|
|
@@ -10,4 +12,28 @@ export function checkGridRowIdIsValid(id, row) {
|
|
|
10
12
|
if (id == null) {
|
|
11
13
|
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'));
|
|
12
14
|
}
|
|
13
|
-
}
|
|
15
|
+
}
|
|
16
|
+
export var getTreeNodeDescendants = function getTreeNodeDescendants(tree, parentId, skipAutoGeneratedRows) {
|
|
17
|
+
var _tree$parentId;
|
|
18
|
+
|
|
19
|
+
var children = (_tree$parentId = tree[parentId]) == null ? void 0 : _tree$parentId.children;
|
|
20
|
+
|
|
21
|
+
if (children == null) {
|
|
22
|
+
return [];
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
var validDescendants = [];
|
|
26
|
+
|
|
27
|
+
for (var i = 0; i < children.length; i += 1) {
|
|
28
|
+
var child = children[i];
|
|
29
|
+
var childNode = tree[child];
|
|
30
|
+
|
|
31
|
+
if (!skipAutoGeneratedRows || !childNode.isAutoGenerated) {
|
|
32
|
+
validDescendants.push(child);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
validDescendants.push.apply(validDescendants, _toConsumableArray(getTreeNodeDescendants(tree, childNode.id, skipAutoGeneratedRows)));
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
return validDescendants;
|
|
39
|
+
};
|
|
@@ -2,13 +2,14 @@ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
|
2
2
|
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
|
3
3
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
4
4
|
import * as React from 'react';
|
|
5
|
-
import { GridEvents } from '../../../models/events';
|
|
6
5
|
import { useGridApiMethod } from '../../utils/useGridApiMethod';
|
|
7
6
|
import { useGridLogger } from '../../utils/useGridLogger';
|
|
8
7
|
import { gridRowCountSelector, gridRowsLookupSelector, gridRowTreeSelector, gridRowIdsSelector, gridRowGroupingNameSelector } from './gridRowsSelector';
|
|
9
8
|
import { GridSignature, useGridApiEventHandler } from '../../utils/useGridApiEventHandler';
|
|
10
9
|
import { useGridVisibleRows } from '../../utils/useGridVisibleRows';
|
|
11
|
-
import {
|
|
10
|
+
import { gridSortedRowIdsSelector } from '../sorting/gridSortingSelector';
|
|
11
|
+
import { gridFilteredRowsLookupSelector } from '../filter/gridFilterSelector';
|
|
12
|
+
import { checkGridRowIdIsValid, getTreeNodeDescendants } from './gridRowsUtils';
|
|
12
13
|
|
|
13
14
|
function getGridRowId(rowModel, getRowId, detailErrorMessage) {
|
|
14
15
|
var id = getRowId ? getRowId(rowModel) : rowModel.id;
|
|
@@ -16,8 +17,8 @@ function getGridRowId(rowModel, getRowId, detailErrorMessage) {
|
|
|
16
17
|
return id;
|
|
17
18
|
}
|
|
18
19
|
|
|
19
|
-
var
|
|
20
|
-
var prevState = _ref.
|
|
20
|
+
var convertRowsPropToState = function convertRowsPropToState(_ref) {
|
|
21
|
+
var prevState = _ref.prevCache,
|
|
21
22
|
rows = _ref.rows,
|
|
22
23
|
getRowId = _ref.getRowId;
|
|
23
24
|
var value;
|
|
@@ -25,6 +26,7 @@ var convertGridRowsPropToState = function convertGridRowsPropToState(_ref) {
|
|
|
25
26
|
if (rows) {
|
|
26
27
|
value = {
|
|
27
28
|
idRowsLookup: {},
|
|
29
|
+
idToIdLookup: {},
|
|
28
30
|
ids: []
|
|
29
31
|
};
|
|
30
32
|
|
|
@@ -32,6 +34,7 @@ var convertGridRowsPropToState = function convertGridRowsPropToState(_ref) {
|
|
|
32
34
|
var row = rows[i];
|
|
33
35
|
var id = getGridRowId(row, getRowId);
|
|
34
36
|
value.idRowsLookup[id] = row;
|
|
37
|
+
value.idToIdLookup[id] = id;
|
|
35
38
|
value.ids.push(id);
|
|
36
39
|
}
|
|
37
40
|
} else {
|
|
@@ -44,8 +47,8 @@ var convertGridRowsPropToState = function convertGridRowsPropToState(_ref) {
|
|
|
44
47
|
};
|
|
45
48
|
};
|
|
46
49
|
|
|
47
|
-
var getRowsStateFromCache = function getRowsStateFromCache(rowsCache, previousTree, apiRef, rowCountProp) {
|
|
48
|
-
var value = rowsCache.
|
|
50
|
+
var getRowsStateFromCache = function getRowsStateFromCache(rowsCache, previousTree, apiRef, rowCountProp, loadingProp) {
|
|
51
|
+
var value = rowsCache.value;
|
|
49
52
|
var rowCount = rowCountProp != null ? rowCountProp : 0;
|
|
50
53
|
var groupingResponse = apiRef.current.unstable_applyStrategyProcessor('rowTreeCreation', _extends({}, value, {
|
|
51
54
|
previousTree: previousTree
|
|
@@ -54,31 +57,27 @@ var getRowsStateFromCache = function getRowsStateFromCache(rowsCache, previousTr
|
|
|
54
57
|
return node.parent == null;
|
|
55
58
|
}).length;
|
|
56
59
|
return _extends({}, groupingResponse, {
|
|
60
|
+
loading: loadingProp,
|
|
57
61
|
totalRowCount: Math.max(rowCount, groupingResponse.ids.length),
|
|
58
62
|
totalTopLevelRowCount: Math.max(rowCount, dataTopLevelRowCount)
|
|
59
63
|
});
|
|
60
64
|
};
|
|
61
65
|
|
|
62
66
|
export var rowsStateInitializer = function rowsStateInitializer(state, props, apiRef) {
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
timeout: null,
|
|
76
|
-
lastUpdateMs: Date.now()
|
|
77
|
-
};
|
|
67
|
+
apiRef.current.unstable_caches.rows = convertRowsPropToState({
|
|
68
|
+
rows: props.rows,
|
|
69
|
+
getRowId: props.getRowId,
|
|
70
|
+
prevCache: {
|
|
71
|
+
value: {
|
|
72
|
+
idRowsLookup: {},
|
|
73
|
+
idToIdLookup: {},
|
|
74
|
+
ids: []
|
|
75
|
+
},
|
|
76
|
+
rowsBeforePartialUpdates: []
|
|
77
|
+
}
|
|
78
|
+
});
|
|
78
79
|
return _extends({}, state, {
|
|
79
|
-
rows: getRowsStateFromCache(
|
|
80
|
-
rowsCache: rowsCache // TODO remove from state
|
|
81
|
-
|
|
80
|
+
rows: getRowsStateFromCache(apiRef.current.unstable_caches.rows, null, apiRef, props.rowCount, props.loading)
|
|
82
81
|
});
|
|
83
82
|
};
|
|
84
83
|
export var useGridRows = function useGridRows(apiRef, props) {
|
|
@@ -88,9 +87,9 @@ export var useGridRows = function useGridRows(apiRef, props) {
|
|
|
88
87
|
}
|
|
89
88
|
|
|
90
89
|
var logger = useGridLogger(apiRef, 'useGridRows');
|
|
91
|
-
var rowsCache = React.useRef(apiRef.current.state.rowsCache); // To avoid listing rowsCache as useEffect dep
|
|
92
|
-
|
|
93
90
|
var currentPage = useGridVisibleRows(apiRef, props);
|
|
91
|
+
var lastUpdateMs = React.useRef(Date.now());
|
|
92
|
+
var timeout = React.useRef(null);
|
|
94
93
|
var getRow = React.useCallback(function (id) {
|
|
95
94
|
var _ref2;
|
|
96
95
|
|
|
@@ -103,52 +102,52 @@ export var useGridRows = function useGridRows(apiRef, props) {
|
|
|
103
102
|
return acc;
|
|
104
103
|
}, {});
|
|
105
104
|
}, [currentPage.rows]);
|
|
106
|
-
var throttledRowsChange = React.useCallback(function (
|
|
105
|
+
var throttledRowsChange = React.useCallback(function (newCache, throttle) {
|
|
107
106
|
var run = function run() {
|
|
108
|
-
|
|
109
|
-
|
|
107
|
+
timeout.current = null;
|
|
108
|
+
lastUpdateMs.current = Date.now();
|
|
110
109
|
apiRef.current.setState(function (state) {
|
|
111
110
|
return _extends({}, state, {
|
|
112
|
-
rows: getRowsStateFromCache(
|
|
111
|
+
rows: getRowsStateFromCache(apiRef.current.unstable_caches.rows, gridRowTreeSelector(apiRef), apiRef, props.rowCount, props.loading)
|
|
113
112
|
});
|
|
114
113
|
});
|
|
115
|
-
apiRef.current.publishEvent(
|
|
114
|
+
apiRef.current.publishEvent('rowsSet');
|
|
116
115
|
apiRef.current.forceUpdate();
|
|
117
116
|
};
|
|
118
117
|
|
|
119
|
-
if (
|
|
120
|
-
clearTimeout(
|
|
118
|
+
if (timeout.current) {
|
|
119
|
+
clearTimeout(timeout.current);
|
|
120
|
+
timeout.current = null;
|
|
121
121
|
}
|
|
122
122
|
|
|
123
|
-
|
|
124
|
-
rowsCache.current.timeout = null;
|
|
123
|
+
apiRef.current.unstable_caches.rows = newCache;
|
|
125
124
|
|
|
126
125
|
if (!throttle) {
|
|
127
126
|
run();
|
|
128
127
|
return;
|
|
129
128
|
}
|
|
130
129
|
|
|
131
|
-
var throttleRemainingTimeMs = props.throttleRowsMs - (Date.now() -
|
|
130
|
+
var throttleRemainingTimeMs = props.throttleRowsMs - (Date.now() - lastUpdateMs.current);
|
|
132
131
|
|
|
133
132
|
if (throttleRemainingTimeMs > 0) {
|
|
134
|
-
|
|
133
|
+
timeout.current = setTimeout(run, throttleRemainingTimeMs);
|
|
135
134
|
return;
|
|
136
135
|
}
|
|
137
136
|
|
|
138
137
|
run();
|
|
139
|
-
}, [props.throttleRowsMs, props.rowCount, apiRef]);
|
|
138
|
+
}, [props.throttleRowsMs, props.rowCount, props.loading, apiRef]);
|
|
140
139
|
/**
|
|
141
140
|
* API METHODS
|
|
142
141
|
*/
|
|
143
142
|
|
|
144
143
|
var setRows = React.useCallback(function (rows) {
|
|
145
144
|
logger.debug("Updating all rows, new length ".concat(rows.length));
|
|
146
|
-
throttledRowsChange(
|
|
145
|
+
throttledRowsChange(convertRowsPropToState({
|
|
147
146
|
rows: rows,
|
|
148
|
-
|
|
147
|
+
prevCache: apiRef.current.unstable_caches.rows,
|
|
149
148
|
getRowId: props.getRowId
|
|
150
149
|
}), true);
|
|
151
|
-
}, [logger, props.getRowId, throttledRowsChange]);
|
|
150
|
+
}, [apiRef, logger, props.getRowId, throttledRowsChange]);
|
|
152
151
|
var updateRows = React.useCallback(function (updates) {
|
|
153
152
|
if (props.signature === GridSignature.DataGrid && updates.length > 1) {
|
|
154
153
|
// TODO: Add test with direct call to `apiRef.current.updateRows` in DataGrid after enabling the `apiRef` on the free plan.
|
|
@@ -168,13 +167,15 @@ export var useGridRows = function useGridRows(apiRef, props) {
|
|
|
168
167
|
});
|
|
169
168
|
var deletedRowIds = [];
|
|
170
169
|
var newStateValue = {
|
|
171
|
-
idRowsLookup: _extends({},
|
|
172
|
-
|
|
170
|
+
idRowsLookup: _extends({}, apiRef.current.unstable_caches.rows.value.idRowsLookup),
|
|
171
|
+
idToIdLookup: _extends({}, apiRef.current.unstable_caches.rows.value.idToIdLookup),
|
|
172
|
+
ids: _toConsumableArray(apiRef.current.unstable_caches.rows.value.ids)
|
|
173
173
|
};
|
|
174
174
|
uniqUpdates.forEach(function (partialRow, id) {
|
|
175
175
|
// eslint-disable-next-line no-underscore-dangle
|
|
176
176
|
if (partialRow._action === 'delete') {
|
|
177
177
|
delete newStateValue.idRowsLookup[id];
|
|
178
|
+
delete newStateValue.idToIdLookup[id];
|
|
178
179
|
deletedRowIds.push(id);
|
|
179
180
|
return;
|
|
180
181
|
}
|
|
@@ -183,6 +184,7 @@ export var useGridRows = function useGridRows(apiRef, props) {
|
|
|
183
184
|
|
|
184
185
|
if (!oldRow) {
|
|
185
186
|
newStateValue.idRowsLookup[id] = partialRow;
|
|
187
|
+
newStateValue.idToIdLookup[id] = id;
|
|
186
188
|
newStateValue.ids.push(id);
|
|
187
189
|
return;
|
|
188
190
|
}
|
|
@@ -196,12 +198,12 @@ export var useGridRows = function useGridRows(apiRef, props) {
|
|
|
196
198
|
});
|
|
197
199
|
}
|
|
198
200
|
|
|
199
|
-
var state = _extends({},
|
|
201
|
+
var state = _extends({}, apiRef.current.unstable_caches.rows, {
|
|
200
202
|
value: newStateValue
|
|
201
203
|
});
|
|
202
204
|
|
|
203
205
|
throttledRowsChange(state, true);
|
|
204
|
-
}, [
|
|
206
|
+
}, [props.signature, props.getRowId, throttledRowsChange, apiRef]);
|
|
205
207
|
var getRowModels = React.useCallback(function () {
|
|
206
208
|
var allRows = gridRowIdsSelector(apiRef);
|
|
207
209
|
var idRowsLookup = gridRowsLookupSelector(apiRef);
|
|
@@ -237,23 +239,92 @@ export var useGridRows = function useGridRows(apiRef, props) {
|
|
|
237
239
|
});
|
|
238
240
|
});
|
|
239
241
|
apiRef.current.forceUpdate();
|
|
240
|
-
apiRef.current.publishEvent(
|
|
242
|
+
apiRef.current.publishEvent('rowExpansionChange', newNode);
|
|
241
243
|
}, [apiRef]);
|
|
242
244
|
var getRowNode = React.useCallback(function (id) {
|
|
243
245
|
var _gridRowTreeSelector$;
|
|
244
246
|
|
|
245
247
|
return (_gridRowTreeSelector$ = gridRowTreeSelector(apiRef)[id]) != null ? _gridRowTreeSelector$ : null;
|
|
246
248
|
}, [apiRef]);
|
|
249
|
+
var getRowGroupChildren = React.useCallback(function (_ref4) {
|
|
250
|
+
var _ref4$skipAutoGenerat = _ref4.skipAutoGeneratedRows,
|
|
251
|
+
skipAutoGeneratedRows = _ref4$skipAutoGenerat === void 0 ? true : _ref4$skipAutoGenerat,
|
|
252
|
+
groupId = _ref4.groupId,
|
|
253
|
+
applySorting = _ref4.applySorting,
|
|
254
|
+
applyFiltering = _ref4.applyFiltering;
|
|
255
|
+
var tree = gridRowTreeSelector(apiRef);
|
|
256
|
+
var children;
|
|
257
|
+
|
|
258
|
+
if (applySorting) {
|
|
259
|
+
var groupNode = tree[groupId];
|
|
260
|
+
|
|
261
|
+
if (!groupNode) {
|
|
262
|
+
return [];
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
var sortedRowIds = gridSortedRowIdsSelector(apiRef);
|
|
266
|
+
children = [];
|
|
267
|
+
var startIndex = sortedRowIds.findIndex(function (id) {
|
|
268
|
+
return id === groupId;
|
|
269
|
+
}) + 1;
|
|
270
|
+
|
|
271
|
+
for (var index = startIndex; index < sortedRowIds.length && tree[sortedRowIds[index]].depth > groupNode.depth; index += 1) {
|
|
272
|
+
var id = sortedRowIds[index];
|
|
273
|
+
var node = tree[id];
|
|
274
|
+
|
|
275
|
+
if (!skipAutoGeneratedRows || !node.isAutoGenerated) {
|
|
276
|
+
children.push(id);
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
} else {
|
|
280
|
+
children = getTreeNodeDescendants(tree, groupId, skipAutoGeneratedRows);
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
if (applyFiltering) {
|
|
284
|
+
var filteredRowsLookup = gridFilteredRowsLookupSelector(apiRef);
|
|
285
|
+
children = children.filter(function (childId) {
|
|
286
|
+
return filteredRowsLookup[childId] !== false;
|
|
287
|
+
});
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
return children;
|
|
291
|
+
}, [apiRef]);
|
|
292
|
+
var setRowIndex = React.useCallback(function (rowId, targetIndex) {
|
|
293
|
+
var allRows = gridRowIdsSelector(apiRef);
|
|
294
|
+
var oldIndex = allRows.findIndex(function (row) {
|
|
295
|
+
return row === rowId;
|
|
296
|
+
});
|
|
297
|
+
|
|
298
|
+
if (oldIndex === -1 || oldIndex === targetIndex) {
|
|
299
|
+
return;
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
logger.debug("Moving row ".concat(rowId, " to index ").concat(targetIndex));
|
|
303
|
+
|
|
304
|
+
var updatedRows = _toConsumableArray(allRows);
|
|
305
|
+
|
|
306
|
+
updatedRows.splice(targetIndex, 0, updatedRows.splice(oldIndex, 1)[0]);
|
|
307
|
+
apiRef.current.setState(function (state) {
|
|
308
|
+
return _extends({}, state, {
|
|
309
|
+
rows: _extends({}, state.rows, {
|
|
310
|
+
ids: updatedRows
|
|
311
|
+
})
|
|
312
|
+
});
|
|
313
|
+
});
|
|
314
|
+
apiRef.current.applySorting();
|
|
315
|
+
}, [apiRef, logger]);
|
|
247
316
|
var rowApi = {
|
|
248
317
|
getRow: getRow,
|
|
249
318
|
getRowModels: getRowModels,
|
|
250
319
|
getRowsCount: getRowsCount,
|
|
251
320
|
getAllRowIds: getAllRowIds,
|
|
252
321
|
setRows: setRows,
|
|
322
|
+
setRowIndex: setRowIndex,
|
|
253
323
|
updateRows: updateRows,
|
|
254
324
|
setRowChildrenExpansion: setRowChildrenExpansion,
|
|
255
325
|
getRowNode: getRowNode,
|
|
256
|
-
getRowIndexRelativeToVisibleRows: getRowIndexRelativeToVisibleRows
|
|
326
|
+
getRowIndexRelativeToVisibleRows: getRowIndexRelativeToVisibleRows,
|
|
327
|
+
getRowGroupChildren: getRowGroupChildren
|
|
257
328
|
};
|
|
258
329
|
/**
|
|
259
330
|
* EVENTS
|
|
@@ -263,7 +334,7 @@ export var useGridRows = function useGridRows(apiRef, props) {
|
|
|
263
334
|
logger.info("Row grouping pre-processing have changed, regenerating the row tree");
|
|
264
335
|
var rows;
|
|
265
336
|
|
|
266
|
-
if (
|
|
337
|
+
if (apiRef.current.unstable_caches.rows.rowsBeforePartialUpdates === props.rows) {
|
|
267
338
|
// The `props.rows` has not changed since the last row grouping
|
|
268
339
|
// We can keep the potential updates stored in `inputRowsAfterUpdates` on the new grouping
|
|
269
340
|
rows = undefined;
|
|
@@ -274,12 +345,12 @@ export var useGridRows = function useGridRows(apiRef, props) {
|
|
|
274
345
|
rows = props.rows;
|
|
275
346
|
}
|
|
276
347
|
|
|
277
|
-
throttledRowsChange(
|
|
348
|
+
throttledRowsChange(convertRowsPropToState({
|
|
278
349
|
rows: rows,
|
|
279
350
|
getRowId: props.getRowId,
|
|
280
|
-
|
|
351
|
+
prevCache: apiRef.current.unstable_caches.rows
|
|
281
352
|
}), false);
|
|
282
|
-
}, [logger,
|
|
353
|
+
}, [logger, apiRef, props.rows, props.getRowId, throttledRowsChange]);
|
|
283
354
|
var handleStrategyProcessorChange = React.useCallback(function (methodName) {
|
|
284
355
|
if (methodName === 'rowTreeCreation') {
|
|
285
356
|
groupRows();
|
|
@@ -292,8 +363,8 @@ export var useGridRows = function useGridRows(apiRef, props) {
|
|
|
292
363
|
groupRows();
|
|
293
364
|
}
|
|
294
365
|
}, [apiRef, groupRows]);
|
|
295
|
-
useGridApiEventHandler(apiRef,
|
|
296
|
-
useGridApiEventHandler(apiRef,
|
|
366
|
+
useGridApiEventHandler(apiRef, 'activeStrategyProcessorChange', handleStrategyProcessorChange);
|
|
367
|
+
useGridApiEventHandler(apiRef, 'strategyAvailabilityChange', handleStrategyActivityChange);
|
|
297
368
|
useGridApiMethod(apiRef, rowApi, 'GridRowApi');
|
|
298
369
|
/**
|
|
299
370
|
* EFFECTS
|
|
@@ -301,9 +372,8 @@ export var useGridRows = function useGridRows(apiRef, props) {
|
|
|
301
372
|
|
|
302
373
|
React.useEffect(function () {
|
|
303
374
|
return function () {
|
|
304
|
-
if (
|
|
305
|
-
|
|
306
|
-
clearTimeout(rowsCache.current.timeout);
|
|
375
|
+
if (timeout.current !== null) {
|
|
376
|
+
clearTimeout(timeout.current);
|
|
307
377
|
}
|
|
308
378
|
};
|
|
309
379
|
}, []); // The effect do not track any value defined synchronously during the 1st render by hooks called after `useGridRows`
|
|
@@ -314,18 +384,18 @@ export var useGridRows = function useGridRows(apiRef, props) {
|
|
|
314
384
|
if (isFirstRender.current) {
|
|
315
385
|
isFirstRender.current = false;
|
|
316
386
|
return;
|
|
317
|
-
} // The new rows have already been applied (most likely in the `
|
|
387
|
+
} // The new rows have already been applied (most likely in the `'rowGroupsPreProcessingChange'` listener)
|
|
318
388
|
|
|
319
389
|
|
|
320
|
-
if (
|
|
390
|
+
if (apiRef.current.unstable_caches.rows.rowsBeforePartialUpdates === props.rows) {
|
|
321
391
|
return;
|
|
322
392
|
}
|
|
323
393
|
|
|
324
394
|
logger.debug("Updating all rows, new length ".concat(props.rows.length));
|
|
325
|
-
throttledRowsChange(
|
|
395
|
+
throttledRowsChange(convertRowsPropToState({
|
|
326
396
|
rows: props.rows,
|
|
327
397
|
getRowId: props.getRowId,
|
|
328
|
-
|
|
398
|
+
prevCache: apiRef.current.unstable_caches.rows
|
|
329
399
|
}), false);
|
|
330
|
-
}, [props.rows, props.rowCount, props.getRowId, logger, throttledRowsChange]);
|
|
400
|
+
}, [props.rows, props.rowCount, props.getRowId, logger, throttledRowsChange, apiRef]);
|
|
331
401
|
};
|