@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
|
@@ -11,8 +11,6 @@ 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
|
-
|
|
16
14
|
var _useGridApiMethod = require("../../utils/useGridApiMethod");
|
|
17
15
|
|
|
18
16
|
var _useGridLogger = require("../../utils/useGridLogger");
|
|
@@ -21,8 +19,6 @@ var _pipeProcessing = require("../../core/pipeProcessing");
|
|
|
21
19
|
|
|
22
20
|
var _gridPreferencePanelSelector = require("./gridPreferencePanelSelector");
|
|
23
21
|
|
|
24
|
-
var _useGridSelector = require("../../utils/useGridSelector");
|
|
25
|
-
|
|
26
22
|
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
23
|
|
|
28
24
|
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; }
|
|
@@ -45,7 +41,6 @@ exports.preferencePanelStateInitializer = preferencePanelStateInitializer;
|
|
|
45
41
|
|
|
46
42
|
const useGridPreferencesPanel = apiRef => {
|
|
47
43
|
const logger = (0, _useGridLogger.useGridLogger)(apiRef, 'useGridPreferencesPanel');
|
|
48
|
-
const preferencePanelState = (0, _useGridSelector.useGridSelector)(apiRef, _gridPreferencePanelSelector.gridPreferencePanelStateSelector);
|
|
49
44
|
const hideTimeout = React.useRef();
|
|
50
45
|
const immediateTimeout = React.useRef();
|
|
51
46
|
/**
|
|
@@ -54,9 +49,10 @@ const useGridPreferencesPanel = apiRef => {
|
|
|
54
49
|
|
|
55
50
|
const hidePreferences = React.useCallback(() => {
|
|
56
51
|
logger.debug('Hiding Preferences Panel');
|
|
52
|
+
const preferencePanelState = (0, _gridPreferencePanelSelector.gridPreferencePanelStateSelector)(apiRef.current.state);
|
|
57
53
|
|
|
58
54
|
if (preferencePanelState.openedPanelValue) {
|
|
59
|
-
apiRef.current.publishEvent(
|
|
55
|
+
apiRef.current.publishEvent('preferencePanelClose', {
|
|
60
56
|
openedPanelValue: preferencePanelState.openedPanelValue
|
|
61
57
|
});
|
|
62
58
|
}
|
|
@@ -67,7 +63,7 @@ const useGridPreferencesPanel = apiRef => {
|
|
|
67
63
|
}
|
|
68
64
|
}));
|
|
69
65
|
apiRef.current.forceUpdate();
|
|
70
|
-
}, [apiRef, logger
|
|
66
|
+
}, [apiRef, logger]); // This is to prevent the preferences from closing when you open a select box or another panel,
|
|
71
67
|
// The issue is in MUI core V4 => Fixed in V5
|
|
72
68
|
|
|
73
69
|
const doNotHidePanel = React.useCallback(() => {
|
|
@@ -87,7 +83,7 @@ const useGridPreferencesPanel = apiRef => {
|
|
|
87
83
|
openedPanelValue: newValue
|
|
88
84
|
})
|
|
89
85
|
}));
|
|
90
|
-
apiRef.current.publishEvent(
|
|
86
|
+
apiRef.current.publishEvent('preferencePanelOpen', {
|
|
91
87
|
openedPanelValue: newValue
|
|
92
88
|
});
|
|
93
89
|
apiRef.current.forceUpdate();
|
|
@@ -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.gridRowsIdToIdLookupSelector = exports.gridRowTreeSelector = exports.gridRowTreeDepthSelector = exports.gridRowIdsSelector = exports.gridRowGroupingNameSelector = exports.gridRowCountSelector = void 0;
|
|
7
7
|
|
|
8
8
|
var _createSelector = require("../../../utils/createSelector");
|
|
9
9
|
|
|
@@ -12,10 +12,14 @@ 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);
|
|
18
20
|
exports.gridRowsLookupSelector = gridRowsLookupSelector;
|
|
21
|
+
const gridRowsIdToIdLookupSelector = (0, _createSelector.createSelector)(gridRowsStateSelector, rows => rows.idToIdLookup);
|
|
22
|
+
exports.gridRowsIdToIdLookupSelector = gridRowsIdToIdLookupSelector;
|
|
19
23
|
const gridRowTreeSelector = (0, _createSelector.createSelector)(gridRowsStateSelector, rows => rows.tree);
|
|
20
24
|
exports.gridRowTreeSelector = gridRowTreeSelector;
|
|
21
25
|
const gridRowGroupingNameSelector = (0, _createSelector.createSelector)(gridRowsStateSelector, rows => rows.groupingName);
|
|
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.checkGridRowIdIsValid = checkGridRowIdIsValid;
|
|
7
|
+
exports.getTreeNodeDescendants = void 0;
|
|
7
8
|
|
|
8
9
|
/**
|
|
9
10
|
* A helper function to check if the id provided is valid.
|
|
@@ -15,4 +16,31 @@ function checkGridRowIdIsValid(id, row, detailErrorMessage = 'A row was provided
|
|
|
15
16
|
if (id == null) {
|
|
16
17
|
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
|
}
|
|
18
|
-
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
const getTreeNodeDescendants = (tree, parentId, skipAutoGeneratedRows) => {
|
|
22
|
+
var _tree$parentId;
|
|
23
|
+
|
|
24
|
+
const children = (_tree$parentId = tree[parentId]) == null ? void 0 : _tree$parentId.children;
|
|
25
|
+
|
|
26
|
+
if (children == null) {
|
|
27
|
+
return [];
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
const validDescendants = [];
|
|
31
|
+
|
|
32
|
+
for (let i = 0; i < children.length; i += 1) {
|
|
33
|
+
const child = children[i];
|
|
34
|
+
const childNode = tree[child];
|
|
35
|
+
|
|
36
|
+
if (!skipAutoGeneratedRows || !childNode.isAutoGenerated) {
|
|
37
|
+
validDescendants.push(child);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
validDescendants.push(...getTreeNodeDescendants(tree, childNode.id, skipAutoGeneratedRows));
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
return validDescendants;
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
exports.getTreeNodeDescendants = getTreeNodeDescendants;
|
|
@@ -11,8 +11,6 @@ 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
|
-
|
|
16
14
|
var _useGridApiMethod = require("../../utils/useGridApiMethod");
|
|
17
15
|
|
|
18
16
|
var _useGridLogger = require("../../utils/useGridLogger");
|
|
@@ -23,6 +21,10 @@ var _useGridApiEventHandler = require("../../utils/useGridApiEventHandler");
|
|
|
23
21
|
|
|
24
22
|
var _useGridVisibleRows = require("../../utils/useGridVisibleRows");
|
|
25
23
|
|
|
24
|
+
var _gridSortingSelector = require("../sorting/gridSortingSelector");
|
|
25
|
+
|
|
26
|
+
var _gridFilterSelector = require("../filter/gridFilterSelector");
|
|
27
|
+
|
|
26
28
|
var _gridRowsUtils = require("./gridRowsUtils");
|
|
27
29
|
|
|
28
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); }
|
|
@@ -35,8 +37,8 @@ function getGridRowId(rowModel, getRowId, detailErrorMessage) {
|
|
|
35
37
|
return id;
|
|
36
38
|
}
|
|
37
39
|
|
|
38
|
-
const
|
|
39
|
-
prevState,
|
|
40
|
+
const convertRowsPropToState = ({
|
|
41
|
+
prevCache: prevState,
|
|
40
42
|
rows,
|
|
41
43
|
getRowId
|
|
42
44
|
}) => {
|
|
@@ -45,6 +47,7 @@ const convertGridRowsPropToState = ({
|
|
|
45
47
|
if (rows) {
|
|
46
48
|
value = {
|
|
47
49
|
idRowsLookup: {},
|
|
50
|
+
idToIdLookup: {},
|
|
48
51
|
ids: []
|
|
49
52
|
};
|
|
50
53
|
|
|
@@ -52,6 +55,7 @@ const convertGridRowsPropToState = ({
|
|
|
52
55
|
const row = rows[i];
|
|
53
56
|
const id = getGridRowId(row, getRowId);
|
|
54
57
|
value.idRowsLookup[id] = row;
|
|
58
|
+
value.idToIdLookup[id] = id;
|
|
55
59
|
value.ids.push(id);
|
|
56
60
|
}
|
|
57
61
|
} else {
|
|
@@ -64,41 +68,37 @@ const convertGridRowsPropToState = ({
|
|
|
64
68
|
};
|
|
65
69
|
};
|
|
66
70
|
|
|
67
|
-
const getRowsStateFromCache = (rowsCache, previousTree, apiRef, rowCountProp) => {
|
|
71
|
+
const getRowsStateFromCache = (rowsCache, previousTree, apiRef, rowCountProp, loadingProp) => {
|
|
68
72
|
const {
|
|
69
73
|
value
|
|
70
|
-
} = rowsCache
|
|
74
|
+
} = rowsCache;
|
|
71
75
|
const rowCount = rowCountProp != null ? rowCountProp : 0;
|
|
72
76
|
const groupingResponse = apiRef.current.unstable_applyStrategyProcessor('rowTreeCreation', (0, _extends2.default)({}, value, {
|
|
73
77
|
previousTree
|
|
74
78
|
}));
|
|
75
79
|
const dataTopLevelRowCount = groupingResponse.treeDepth === 1 ? groupingResponse.ids.length : Object.values(groupingResponse.tree).filter(node => node.parent == null).length;
|
|
76
80
|
return (0, _extends2.default)({}, groupingResponse, {
|
|
81
|
+
loading: loadingProp,
|
|
77
82
|
totalRowCount: Math.max(rowCount, groupingResponse.ids.length),
|
|
78
83
|
totalTopLevelRowCount: Math.max(rowCount, dataTopLevelRowCount)
|
|
79
84
|
});
|
|
80
85
|
};
|
|
81
86
|
|
|
82
87
|
const rowsStateInitializer = (state, props, apiRef) => {
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
timeout: null,
|
|
96
|
-
lastUpdateMs: Date.now()
|
|
97
|
-
};
|
|
88
|
+
apiRef.current.unstable_caches.rows = convertRowsPropToState({
|
|
89
|
+
rows: props.rows,
|
|
90
|
+
getRowId: props.getRowId,
|
|
91
|
+
prevCache: {
|
|
92
|
+
value: {
|
|
93
|
+
idRowsLookup: {},
|
|
94
|
+
idToIdLookup: {},
|
|
95
|
+
ids: []
|
|
96
|
+
},
|
|
97
|
+
rowsBeforePartialUpdates: []
|
|
98
|
+
}
|
|
99
|
+
});
|
|
98
100
|
return (0, _extends2.default)({}, state, {
|
|
99
|
-
rows: getRowsStateFromCache(
|
|
100
|
-
rowsCache // TODO remove from state
|
|
101
|
-
|
|
101
|
+
rows: getRowsStateFromCache(apiRef.current.unstable_caches.rows, null, apiRef, props.rowCount, props.loading)
|
|
102
102
|
});
|
|
103
103
|
};
|
|
104
104
|
|
|
@@ -111,9 +111,9 @@ const useGridRows = (apiRef, props) => {
|
|
|
111
111
|
}
|
|
112
112
|
|
|
113
113
|
const logger = (0, _useGridLogger.useGridLogger)(apiRef, 'useGridRows');
|
|
114
|
-
const rowsCache = React.useRef(apiRef.current.state.rowsCache); // To avoid listing rowsCache as useEffect dep
|
|
115
|
-
|
|
116
114
|
const currentPage = (0, _useGridVisibleRows.useGridVisibleRows)(apiRef, props);
|
|
115
|
+
const lastUpdateMs = React.useRef(Date.now());
|
|
116
|
+
const timeout = React.useRef(null);
|
|
117
117
|
const getRow = React.useCallback(id => {
|
|
118
118
|
var _ref;
|
|
119
119
|
|
|
@@ -125,50 +125,50 @@ const useGridRows = (apiRef, props) => {
|
|
|
125
125
|
acc[id] = index;
|
|
126
126
|
return acc;
|
|
127
127
|
}, {}), [currentPage.rows]);
|
|
128
|
-
const throttledRowsChange = React.useCallback((
|
|
128
|
+
const throttledRowsChange = React.useCallback((newCache, throttle) => {
|
|
129
129
|
const run = () => {
|
|
130
|
-
|
|
131
|
-
|
|
130
|
+
timeout.current = null;
|
|
131
|
+
lastUpdateMs.current = Date.now();
|
|
132
132
|
apiRef.current.setState(state => (0, _extends2.default)({}, state, {
|
|
133
|
-
rows: getRowsStateFromCache(
|
|
133
|
+
rows: getRowsStateFromCache(apiRef.current.unstable_caches.rows, (0, _gridRowsSelector.gridRowTreeSelector)(apiRef), apiRef, props.rowCount, props.loading)
|
|
134
134
|
}));
|
|
135
|
-
apiRef.current.publishEvent(
|
|
135
|
+
apiRef.current.publishEvent('rowsSet');
|
|
136
136
|
apiRef.current.forceUpdate();
|
|
137
137
|
};
|
|
138
138
|
|
|
139
|
-
if (
|
|
140
|
-
clearTimeout(
|
|
139
|
+
if (timeout.current) {
|
|
140
|
+
clearTimeout(timeout.current);
|
|
141
|
+
timeout.current = null;
|
|
141
142
|
}
|
|
142
143
|
|
|
143
|
-
|
|
144
|
-
rowsCache.current.timeout = null;
|
|
144
|
+
apiRef.current.unstable_caches.rows = newCache;
|
|
145
145
|
|
|
146
146
|
if (!throttle) {
|
|
147
147
|
run();
|
|
148
148
|
return;
|
|
149
149
|
}
|
|
150
150
|
|
|
151
|
-
const throttleRemainingTimeMs = props.throttleRowsMs - (Date.now() -
|
|
151
|
+
const throttleRemainingTimeMs = props.throttleRowsMs - (Date.now() - lastUpdateMs.current);
|
|
152
152
|
|
|
153
153
|
if (throttleRemainingTimeMs > 0) {
|
|
154
|
-
|
|
154
|
+
timeout.current = setTimeout(run, throttleRemainingTimeMs);
|
|
155
155
|
return;
|
|
156
156
|
}
|
|
157
157
|
|
|
158
158
|
run();
|
|
159
|
-
}, [props.throttleRowsMs, props.rowCount, apiRef]);
|
|
159
|
+
}, [props.throttleRowsMs, props.rowCount, props.loading, apiRef]);
|
|
160
160
|
/**
|
|
161
161
|
* API METHODS
|
|
162
162
|
*/
|
|
163
163
|
|
|
164
164
|
const setRows = React.useCallback(rows => {
|
|
165
165
|
logger.debug(`Updating all rows, new length ${rows.length}`);
|
|
166
|
-
throttledRowsChange(
|
|
166
|
+
throttledRowsChange(convertRowsPropToState({
|
|
167
167
|
rows,
|
|
168
|
-
|
|
168
|
+
prevCache: apiRef.current.unstable_caches.rows,
|
|
169
169
|
getRowId: props.getRowId
|
|
170
170
|
}), true);
|
|
171
|
-
}, [logger, props.getRowId, throttledRowsChange]);
|
|
171
|
+
}, [apiRef, logger, props.getRowId, throttledRowsChange]);
|
|
172
172
|
const updateRows = React.useCallback(updates => {
|
|
173
173
|
if (props.signature === _useGridApiEventHandler.GridSignature.DataGrid && updates.length > 1) {
|
|
174
174
|
// TODO: Add test with direct call to `apiRef.current.updateRows` in DataGrid after enabling the `apiRef` on the free plan.
|
|
@@ -188,13 +188,15 @@ const useGridRows = (apiRef, props) => {
|
|
|
188
188
|
});
|
|
189
189
|
const deletedRowIds = [];
|
|
190
190
|
const newStateValue = {
|
|
191
|
-
idRowsLookup: (0, _extends2.default)({},
|
|
192
|
-
|
|
191
|
+
idRowsLookup: (0, _extends2.default)({}, apiRef.current.unstable_caches.rows.value.idRowsLookup),
|
|
192
|
+
idToIdLookup: (0, _extends2.default)({}, apiRef.current.unstable_caches.rows.value.idToIdLookup),
|
|
193
|
+
ids: [...apiRef.current.unstable_caches.rows.value.ids]
|
|
193
194
|
};
|
|
194
195
|
uniqUpdates.forEach((partialRow, id) => {
|
|
195
196
|
// eslint-disable-next-line no-underscore-dangle
|
|
196
197
|
if (partialRow._action === 'delete') {
|
|
197
198
|
delete newStateValue.idRowsLookup[id];
|
|
199
|
+
delete newStateValue.idToIdLookup[id];
|
|
198
200
|
deletedRowIds.push(id);
|
|
199
201
|
return;
|
|
200
202
|
}
|
|
@@ -203,6 +205,7 @@ const useGridRows = (apiRef, props) => {
|
|
|
203
205
|
|
|
204
206
|
if (!oldRow) {
|
|
205
207
|
newStateValue.idRowsLookup[id] = partialRow;
|
|
208
|
+
newStateValue.idToIdLookup[id] = id;
|
|
206
209
|
newStateValue.ids.push(id);
|
|
207
210
|
return;
|
|
208
211
|
}
|
|
@@ -214,11 +217,11 @@ const useGridRows = (apiRef, props) => {
|
|
|
214
217
|
newStateValue.ids = newStateValue.ids.filter(id => !deletedRowIds.includes(id));
|
|
215
218
|
}
|
|
216
219
|
|
|
217
|
-
const state = (0, _extends2.default)({},
|
|
220
|
+
const state = (0, _extends2.default)({}, apiRef.current.unstable_caches.rows, {
|
|
218
221
|
value: newStateValue
|
|
219
222
|
});
|
|
220
223
|
throttledRowsChange(state, true);
|
|
221
|
-
}, [
|
|
224
|
+
}, [props.signature, props.getRowId, throttledRowsChange, apiRef]);
|
|
222
225
|
const getRowModels = React.useCallback(() => {
|
|
223
226
|
const allRows = (0, _gridRowsSelector.gridRowIdsSelector)(apiRef);
|
|
224
227
|
const idRowsLookup = (0, _gridRowsSelector.gridRowsLookupSelector)(apiRef);
|
|
@@ -247,23 +250,82 @@ const useGridRows = (apiRef, props) => {
|
|
|
247
250
|
});
|
|
248
251
|
});
|
|
249
252
|
apiRef.current.forceUpdate();
|
|
250
|
-
apiRef.current.publishEvent(
|
|
253
|
+
apiRef.current.publishEvent('rowExpansionChange', newNode);
|
|
251
254
|
}, [apiRef]);
|
|
252
255
|
const getRowNode = React.useCallback(id => {
|
|
253
256
|
var _gridRowTreeSelector$;
|
|
254
257
|
|
|
255
258
|
return (_gridRowTreeSelector$ = (0, _gridRowsSelector.gridRowTreeSelector)(apiRef)[id]) != null ? _gridRowTreeSelector$ : null;
|
|
256
259
|
}, [apiRef]);
|
|
260
|
+
const getRowGroupChildren = React.useCallback(({
|
|
261
|
+
skipAutoGeneratedRows = true,
|
|
262
|
+
groupId,
|
|
263
|
+
applySorting,
|
|
264
|
+
applyFiltering
|
|
265
|
+
}) => {
|
|
266
|
+
const tree = (0, _gridRowsSelector.gridRowTreeSelector)(apiRef);
|
|
267
|
+
let children;
|
|
268
|
+
|
|
269
|
+
if (applySorting) {
|
|
270
|
+
const groupNode = tree[groupId];
|
|
271
|
+
|
|
272
|
+
if (!groupNode) {
|
|
273
|
+
return [];
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
const sortedRowIds = (0, _gridSortingSelector.gridSortedRowIdsSelector)(apiRef);
|
|
277
|
+
children = [];
|
|
278
|
+
const startIndex = sortedRowIds.findIndex(id => id === groupId) + 1;
|
|
279
|
+
|
|
280
|
+
for (let index = startIndex; index < sortedRowIds.length && tree[sortedRowIds[index]].depth > groupNode.depth; index += 1) {
|
|
281
|
+
const id = sortedRowIds[index];
|
|
282
|
+
const node = tree[id];
|
|
283
|
+
|
|
284
|
+
if (!skipAutoGeneratedRows || !node.isAutoGenerated) {
|
|
285
|
+
children.push(id);
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
} else {
|
|
289
|
+
children = (0, _gridRowsUtils.getTreeNodeDescendants)(tree, groupId, skipAutoGeneratedRows);
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
if (applyFiltering) {
|
|
293
|
+
const filteredRowsLookup = (0, _gridFilterSelector.gridFilteredRowsLookupSelector)(apiRef);
|
|
294
|
+
children = children.filter(childId => filteredRowsLookup[childId] !== false);
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
return children;
|
|
298
|
+
}, [apiRef]);
|
|
299
|
+
const setRowIndex = React.useCallback((rowId, targetIndex) => {
|
|
300
|
+
const allRows = (0, _gridRowsSelector.gridRowIdsSelector)(apiRef);
|
|
301
|
+
const oldIndex = allRows.findIndex(row => row === rowId);
|
|
302
|
+
|
|
303
|
+
if (oldIndex === -1 || oldIndex === targetIndex) {
|
|
304
|
+
return;
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
logger.debug(`Moving row ${rowId} to index ${targetIndex}`);
|
|
308
|
+
const updatedRows = [...allRows];
|
|
309
|
+
updatedRows.splice(targetIndex, 0, updatedRows.splice(oldIndex, 1)[0]);
|
|
310
|
+
apiRef.current.setState(state => (0, _extends2.default)({}, state, {
|
|
311
|
+
rows: (0, _extends2.default)({}, state.rows, {
|
|
312
|
+
ids: updatedRows
|
|
313
|
+
})
|
|
314
|
+
}));
|
|
315
|
+
apiRef.current.applySorting();
|
|
316
|
+
}, [apiRef, logger]);
|
|
257
317
|
const rowApi = {
|
|
258
318
|
getRow,
|
|
259
319
|
getRowModels,
|
|
260
320
|
getRowsCount,
|
|
261
321
|
getAllRowIds,
|
|
262
322
|
setRows,
|
|
323
|
+
setRowIndex,
|
|
263
324
|
updateRows,
|
|
264
325
|
setRowChildrenExpansion,
|
|
265
326
|
getRowNode,
|
|
266
|
-
getRowIndexRelativeToVisibleRows
|
|
327
|
+
getRowIndexRelativeToVisibleRows,
|
|
328
|
+
getRowGroupChildren
|
|
267
329
|
};
|
|
268
330
|
/**
|
|
269
331
|
* EVENTS
|
|
@@ -273,7 +335,7 @@ const useGridRows = (apiRef, props) => {
|
|
|
273
335
|
logger.info(`Row grouping pre-processing have changed, regenerating the row tree`);
|
|
274
336
|
let rows;
|
|
275
337
|
|
|
276
|
-
if (
|
|
338
|
+
if (apiRef.current.unstable_caches.rows.rowsBeforePartialUpdates === props.rows) {
|
|
277
339
|
// The `props.rows` has not changed since the last row grouping
|
|
278
340
|
// We can keep the potential updates stored in `inputRowsAfterUpdates` on the new grouping
|
|
279
341
|
rows = undefined;
|
|
@@ -284,12 +346,12 @@ const useGridRows = (apiRef, props) => {
|
|
|
284
346
|
rows = props.rows;
|
|
285
347
|
}
|
|
286
348
|
|
|
287
|
-
throttledRowsChange(
|
|
349
|
+
throttledRowsChange(convertRowsPropToState({
|
|
288
350
|
rows,
|
|
289
351
|
getRowId: props.getRowId,
|
|
290
|
-
|
|
352
|
+
prevCache: apiRef.current.unstable_caches.rows
|
|
291
353
|
}), false);
|
|
292
|
-
}, [logger,
|
|
354
|
+
}, [logger, apiRef, props.rows, props.getRowId, throttledRowsChange]);
|
|
293
355
|
const handleStrategyProcessorChange = React.useCallback(methodName => {
|
|
294
356
|
if (methodName === 'rowTreeCreation') {
|
|
295
357
|
groupRows();
|
|
@@ -302,8 +364,8 @@ const useGridRows = (apiRef, props) => {
|
|
|
302
364
|
groupRows();
|
|
303
365
|
}
|
|
304
366
|
}, [apiRef, groupRows]);
|
|
305
|
-
(0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef,
|
|
306
|
-
(0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef,
|
|
367
|
+
(0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, 'activeStrategyProcessorChange', handleStrategyProcessorChange);
|
|
368
|
+
(0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, 'strategyAvailabilityChange', handleStrategyActivityChange);
|
|
307
369
|
(0, _useGridApiMethod.useGridApiMethod)(apiRef, rowApi, 'GridRowApi');
|
|
308
370
|
/**
|
|
309
371
|
* EFFECTS
|
|
@@ -311,9 +373,8 @@ const useGridRows = (apiRef, props) => {
|
|
|
311
373
|
|
|
312
374
|
React.useEffect(() => {
|
|
313
375
|
return () => {
|
|
314
|
-
if (
|
|
315
|
-
|
|
316
|
-
clearTimeout(rowsCache.current.timeout);
|
|
376
|
+
if (timeout.current !== null) {
|
|
377
|
+
clearTimeout(timeout.current);
|
|
317
378
|
}
|
|
318
379
|
};
|
|
319
380
|
}, []); // The effect do not track any value defined synchronously during the 1st render by hooks called after `useGridRows`
|
|
@@ -324,20 +385,20 @@ const useGridRows = (apiRef, props) => {
|
|
|
324
385
|
if (isFirstRender.current) {
|
|
325
386
|
isFirstRender.current = false;
|
|
326
387
|
return;
|
|
327
|
-
} // The new rows have already been applied (most likely in the `
|
|
388
|
+
} // The new rows have already been applied (most likely in the `'rowGroupsPreProcessingChange'` listener)
|
|
328
389
|
|
|
329
390
|
|
|
330
|
-
if (
|
|
391
|
+
if (apiRef.current.unstable_caches.rows.rowsBeforePartialUpdates === props.rows) {
|
|
331
392
|
return;
|
|
332
393
|
}
|
|
333
394
|
|
|
334
395
|
logger.debug(`Updating all rows, new length ${props.rows.length}`);
|
|
335
|
-
throttledRowsChange(
|
|
396
|
+
throttledRowsChange(convertRowsPropToState({
|
|
336
397
|
rows: props.rows,
|
|
337
398
|
getRowId: props.getRowId,
|
|
338
|
-
|
|
399
|
+
prevCache: apiRef.current.unstable_caches.rows
|
|
339
400
|
}), false);
|
|
340
|
-
}, [props.rows, props.rowCount, props.getRowId, logger, throttledRowsChange]);
|
|
401
|
+
}, [props.rows, props.rowCount, props.getRowId, logger, throttledRowsChange, apiRef]);
|
|
341
402
|
};
|
|
342
403
|
|
|
343
404
|
exports.useGridRows = useGridRows;
|
|
@@ -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,10 +90,11 @@ 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;
|
|
@@ -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.pipeProcessorRegister, handlepipeProcessorRegister);
|
|
149
|
+
(0, _pipeProcessing.useGridRegisterPipeApplier)(apiRef, 'rowHeight', hydrateRowsMeta);
|
|
158
150
|
const rowsMetaApi = {
|
|
159
151
|
unstable_getRowHeight: getTargetRowHeight,
|
|
160
152
|
unstable_getRowInternalSizes: getRowInternalSizes,
|
|
@@ -10,6 +10,7 @@ var _strategyProcessing = require("../../core/strategyProcessing");
|
|
|
10
10
|
const flatRowTreeCreationMethod = ({
|
|
11
11
|
ids,
|
|
12
12
|
idRowsLookup,
|
|
13
|
+
idToIdLookup,
|
|
13
14
|
previousTree
|
|
14
15
|
}) => {
|
|
15
16
|
const tree = {};
|
|
@@ -35,6 +36,7 @@ const flatRowTreeCreationMethod = ({
|
|
|
35
36
|
tree,
|
|
36
37
|
treeDepth: 1,
|
|
37
38
|
idRowsLookup,
|
|
39
|
+
idToIdLookup,
|
|
38
40
|
ids
|
|
39
41
|
};
|
|
40
42
|
};
|
|
@@ -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,6 +21,8 @@ var _gridRowsMetaSelector = require("../rows/gridRowsMetaSelector");
|
|
|
19
21
|
|
|
20
22
|
var _useGridApiMethod = require("../../utils/useGridApiMethod");
|
|
21
23
|
|
|
24
|
+
var _gridFilterSelector = require("../filter/gridFilterSelector");
|
|
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; }
|
|
@@ -32,7 +36,12 @@ function scrollIntoView(dimensions) {
|
|
|
32
36
|
offsetHeight,
|
|
33
37
|
offsetTop
|
|
34
38
|
} = dimensions;
|
|
35
|
-
const elementBottom = offsetTop + offsetHeight;
|
|
39
|
+
const elementBottom = offsetTop + offsetHeight; // Always scroll to top when cell is higher than viewport to avoid scroll jump
|
|
40
|
+
// See https://github.com/mui/mui-x/issues/4513 and https://github.com/mui/mui-x/issues/4514
|
|
41
|
+
|
|
42
|
+
if (offsetHeight > clientHeight) {
|
|
43
|
+
return offsetTop;
|
|
44
|
+
}
|
|
36
45
|
|
|
37
46
|
if (elementBottom - clientHeight > scrollTop) {
|
|
38
47
|
return elementBottom - clientHeight;
|
|
@@ -49,6 +58,8 @@ function scrollIntoView(dimensions) {
|
|
|
49
58
|
* @requires useGridColumns (state) - can be after, async only
|
|
50
59
|
* @requires useGridRows (state) - can be after, async only
|
|
51
60
|
* @requires useGridRowsMeta (state) - can be after, async only
|
|
61
|
+
* @requires useGridFilter (state)
|
|
62
|
+
* @requires useGridColumnSpanning (method)
|
|
52
63
|
*/
|
|
53
64
|
|
|
54
65
|
|
|
@@ -56,6 +67,7 @@ const useGridScroll = (apiRef, props) => {
|
|
|
56
67
|
const logger = (0, _useGridLogger.useGridLogger)(apiRef, 'useGridScroll');
|
|
57
68
|
const colRef = apiRef.current.columnHeadersElementRef;
|
|
58
69
|
const windowRef = apiRef.current.windowRef;
|
|
70
|
+
const visibleSortedRows = (0, _useGridSelector.useGridSelector)(apiRef, _gridFilterSelector.gridVisibleSortedRowEntriesSelector);
|
|
59
71
|
const scrollToIndexes = React.useCallback(params => {
|
|
60
72
|
const totalRowCount = (0, _gridRowsSelector.gridRowCountSelector)(apiRef);
|
|
61
73
|
const visibleColumns = (0, _gridColumnsSelector.gridVisibleColumnDefinitionsSelector)(apiRef);
|
|
@@ -70,10 +82,27 @@ const useGridScroll = (apiRef, props) => {
|
|
|
70
82
|
|
|
71
83
|
if (params.colIndex != null) {
|
|
72
84
|
const columnPositions = (0, _gridColumnsSelector.gridColumnPositionsSelector)(apiRef);
|
|
85
|
+
let cellWidth;
|
|
86
|
+
|
|
87
|
+
if (typeof params.rowIndex !== 'undefined') {
|
|
88
|
+
var _visibleSortedRows$pa;
|
|
89
|
+
|
|
90
|
+
const rowId = (_visibleSortedRows$pa = visibleSortedRows[params.rowIndex]) == null ? void 0 : _visibleSortedRows$pa.id;
|
|
91
|
+
const cellColSpanInfo = apiRef.current.unstable_getCellColSpanInfo(rowId, params.colIndex);
|
|
92
|
+
|
|
93
|
+
if (cellColSpanInfo && !cellColSpanInfo.spannedByColSpan) {
|
|
94
|
+
cellWidth = cellColSpanInfo.cellProps.width;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
if (typeof cellWidth === 'undefined') {
|
|
99
|
+
cellWidth = visibleColumns[params.colIndex].computedWidth;
|
|
100
|
+
}
|
|
101
|
+
|
|
73
102
|
scrollCoordinates.left = scrollIntoView({
|
|
74
103
|
clientHeight: windowRef.current.clientWidth,
|
|
75
104
|
scrollTop: windowRef.current.scrollLeft,
|
|
76
|
-
offsetHeight:
|
|
105
|
+
offsetHeight: cellWidth,
|
|
77
106
|
offsetTop: columnPositions[params.colIndex]
|
|
78
107
|
});
|
|
79
108
|
}
|
|
@@ -100,7 +129,7 @@ const useGridScroll = (apiRef, props) => {
|
|
|
100
129
|
}
|
|
101
130
|
|
|
102
131
|
return false;
|
|
103
|
-
}, [logger, apiRef, windowRef, props.pagination]);
|
|
132
|
+
}, [logger, apiRef, windowRef, props.pagination, visibleSortedRows]);
|
|
104
133
|
const scroll = React.useCallback(params => {
|
|
105
134
|
if (windowRef.current && params.left != null && colRef.current) {
|
|
106
135
|
colRef.current.scrollLeft = params.left;
|