@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,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 { useGridApiEventHandler } from '../../utils/useGridApiEventHandler';
|
|
5
4
|
import { useGridApiMethod } from '../../utils/useGridApiMethod';
|
|
6
5
|
import { useGridLogger } from '../../utils/useGridLogger';
|
|
@@ -13,6 +12,7 @@ import { GRID_CHECKBOX_SELECTION_COL_DEF, GRID_ACTIONS_COLUMN_TYPE } from '../..
|
|
|
13
12
|
import { GridCellModes } from '../../../models/gridEditRowModel';
|
|
14
13
|
import { isKeyboardEvent, isNavigationKey } from '../../../utils/keyboardUtils';
|
|
15
14
|
import { getVisibleRows, useGridVisibleRows } from '../../utils/useGridVisibleRows';
|
|
15
|
+
import { GRID_DETAIL_PANEL_TOGGLE_FIELD } from '../../../constants/gridDetailPanelToggleField';
|
|
16
16
|
|
|
17
17
|
const getSelectionModelPropValue = (selectionModelProp, prevSelectionModel) => {
|
|
18
18
|
if (selectionModelProp == null) {
|
|
@@ -55,7 +55,7 @@ export const useGridSelection = (apiRef, props) => {
|
|
|
55
55
|
propModel: propSelectionModel,
|
|
56
56
|
propOnChange: props.onSelectionModelChange,
|
|
57
57
|
stateSelector: gridSelectionStateSelector,
|
|
58
|
-
changeEvent:
|
|
58
|
+
changeEvent: 'selectionChange'
|
|
59
59
|
});
|
|
60
60
|
const {
|
|
61
61
|
checkboxSelection,
|
|
@@ -197,6 +197,10 @@ export const useGridSelection = (apiRef, props) => {
|
|
|
197
197
|
*/
|
|
198
198
|
|
|
199
199
|
const removeOutdatedSelection = React.useCallback(() => {
|
|
200
|
+
if (props.keepNonExistentRowsSelected) {
|
|
201
|
+
return;
|
|
202
|
+
}
|
|
203
|
+
|
|
200
204
|
const currentSelection = gridSelectionStateSelector(apiRef.current.state);
|
|
201
205
|
const rowsLookup = gridRowsLookupSelector(apiRef); // We clone the existing object to avoid mutating the same object returned by the selector to others part of the project
|
|
202
206
|
|
|
@@ -213,12 +217,12 @@ export const useGridSelection = (apiRef, props) => {
|
|
|
213
217
|
if (hasChanged) {
|
|
214
218
|
apiRef.current.setSelectionModel(Object.values(selectionLookup));
|
|
215
219
|
}
|
|
216
|
-
}, [apiRef]);
|
|
220
|
+
}, [apiRef, props.keepNonExistentRowsSelected]);
|
|
217
221
|
const handleSingleRowSelection = React.useCallback((id, event) => {
|
|
218
222
|
const hasCtrlKey = event.metaKey || event.ctrlKey; // multiple selection is only allowed if:
|
|
219
223
|
// - it is a checkboxSelection
|
|
220
224
|
// - it is a keyboard selection
|
|
221
|
-
// -
|
|
225
|
+
// - Ctrl is pressed
|
|
222
226
|
|
|
223
227
|
const isMultipleSelectionDisabled = !checkboxSelection && !hasCtrlKey && !isKeyboardEvent(event);
|
|
224
228
|
const resetSelection = !canHaveMultipleSelection || isMultipleSelectionDisabled;
|
|
@@ -240,7 +244,7 @@ export const useGridSelection = (apiRef, props) => {
|
|
|
240
244
|
return;
|
|
241
245
|
}
|
|
242
246
|
|
|
243
|
-
if (params.field ===
|
|
247
|
+
if (params.field === GRID_DETAIL_PANEL_TOGGLE_FIELD) {
|
|
244
248
|
// click to open the detail panel should not select the row
|
|
245
249
|
return;
|
|
246
250
|
}
|
|
@@ -348,12 +352,12 @@ export const useGridSelection = (apiRef, props) => {
|
|
|
348
352
|
selectRows(apiRef.current.getAllRowIds(), true);
|
|
349
353
|
}
|
|
350
354
|
}, [apiRef, handleSingleRowSelection, selectRows, visibleRows.rows, canHaveMultipleSelection]);
|
|
351
|
-
useGridApiEventHandler(apiRef,
|
|
352
|
-
useGridApiEventHandler(apiRef,
|
|
353
|
-
useGridApiEventHandler(apiRef,
|
|
354
|
-
useGridApiEventHandler(apiRef,
|
|
355
|
-
useGridApiEventHandler(apiRef,
|
|
356
|
-
useGridApiEventHandler(apiRef,
|
|
355
|
+
useGridApiEventHandler(apiRef, 'sortedRowsSet', removeOutdatedSelection);
|
|
356
|
+
useGridApiEventHandler(apiRef, 'cellClick', handleCellClick);
|
|
357
|
+
useGridApiEventHandler(apiRef, 'rowSelectionCheckboxChange', handleRowSelectionCheckboxChange);
|
|
358
|
+
useGridApiEventHandler(apiRef, 'headerSelectionCheckboxChange', handleHeaderSelectionCheckboxChange);
|
|
359
|
+
useGridApiEventHandler(apiRef, 'cellMouseDown', preventSelectionOnShift);
|
|
360
|
+
useGridApiEventHandler(apiRef, 'cellKeyDown', handleCellKeyDown);
|
|
357
361
|
/**
|
|
358
362
|
* EFFECTS
|
|
359
363
|
*/
|
|
@@ -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 { GridFeatureModeConstant } from '../../../models/gridFeatureMode';
|
|
5
4
|
import { isEnterKey } from '../../../utils/keyboardUtils';
|
|
6
5
|
import { useGridApiEventHandler } from '../../utils/useGridApiEventHandler';
|
|
@@ -36,7 +35,7 @@ export const useGridSorting = (apiRef, props) => {
|
|
|
36
35
|
propModel: props.sortModel,
|
|
37
36
|
propOnChange: props.onSortModelChange,
|
|
38
37
|
stateSelector: gridSortModelSelector,
|
|
39
|
-
changeEvent:
|
|
38
|
+
changeEvent: 'sortModelChange'
|
|
40
39
|
});
|
|
41
40
|
const upsertSortModel = React.useCallback((field, sortItem) => {
|
|
42
41
|
const sortModel = gridSortModelSelector(apiRef);
|
|
@@ -80,17 +79,16 @@ export const useGridSorting = (apiRef, props) => {
|
|
|
80
79
|
*/
|
|
81
80
|
|
|
82
81
|
const applySorting = React.useCallback(() => {
|
|
83
|
-
if (props.sortingMode === GridFeatureModeConstant.server) {
|
|
84
|
-
logger.debug('Skipping sorting rows as sortingMode = server');
|
|
85
|
-
apiRef.current.setState(state => _extends({}, state, {
|
|
86
|
-
sorting: _extends({}, state.sorting, {
|
|
87
|
-
sortedRows: gridRowIdsSelector(state, apiRef.current.instanceId)
|
|
88
|
-
})
|
|
89
|
-
}));
|
|
90
|
-
return;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
82
|
apiRef.current.setState(state => {
|
|
83
|
+
if (props.sortingMode === GridFeatureModeConstant.server) {
|
|
84
|
+
logger.debug('Skipping sorting rows as sortingMode = server');
|
|
85
|
+
return _extends({}, state, {
|
|
86
|
+
sorting: _extends({}, state.sorting, {
|
|
87
|
+
sortedRows: gridRowIdsSelector(state, apiRef.current.instanceId)
|
|
88
|
+
})
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
|
|
94
92
|
const sortModel = gridSortModelSelector(state, apiRef.current.instanceId);
|
|
95
93
|
const sortRowList = buildAggregatedSortingApplier(sortModel, apiRef);
|
|
96
94
|
const sortedRows = apiRef.current.unstable_applyStrategyProcessor('sorting', {
|
|
@@ -102,6 +100,7 @@ export const useGridSorting = (apiRef, props) => {
|
|
|
102
100
|
})
|
|
103
101
|
});
|
|
104
102
|
});
|
|
103
|
+
apiRef.current.publishEvent('sortedRowsSet');
|
|
105
104
|
apiRef.current.forceUpdate();
|
|
106
105
|
}, [apiRef, logger, props.sortingMode]);
|
|
107
106
|
const setSortModel = React.useCallback(model => {
|
|
@@ -204,7 +203,7 @@ export const useGridSorting = (apiRef, props) => {
|
|
|
204
203
|
const handleColumnHeaderKeyDown = React.useCallback(({
|
|
205
204
|
colDef
|
|
206
205
|
}, event) => {
|
|
207
|
-
//
|
|
206
|
+
// Ctrl + Enter opens the column menu
|
|
208
207
|
if (isEnterKey(event.key) && !event.ctrlKey && !event.metaKey) {
|
|
209
208
|
sortColumn(colDef, undefined, event.shiftKey);
|
|
210
209
|
}
|
|
@@ -227,11 +226,11 @@ export const useGridSorting = (apiRef, props) => {
|
|
|
227
226
|
apiRef.current.applySorting();
|
|
228
227
|
}
|
|
229
228
|
}, [apiRef]);
|
|
230
|
-
useGridApiEventHandler(apiRef,
|
|
231
|
-
useGridApiEventHandler(apiRef,
|
|
232
|
-
useGridApiEventHandler(apiRef,
|
|
233
|
-
useGridApiEventHandler(apiRef,
|
|
234
|
-
useGridApiEventHandler(apiRef,
|
|
229
|
+
useGridApiEventHandler(apiRef, 'columnHeaderClick', handleColumnHeaderClick);
|
|
230
|
+
useGridApiEventHandler(apiRef, 'columnHeaderKeyDown', handleColumnHeaderKeyDown);
|
|
231
|
+
useGridApiEventHandler(apiRef, 'rowsSet', apiRef.current.applySorting);
|
|
232
|
+
useGridApiEventHandler(apiRef, 'columnsChange', handleColumnsChange);
|
|
233
|
+
useGridApiEventHandler(apiRef, 'activeStrategyProcessorChange', handleStrategyProcessorChange);
|
|
235
234
|
/**
|
|
236
235
|
* 1ST RENDER
|
|
237
236
|
*/
|
|
@@ -2,6 +2,13 @@ import * as React from 'react';
|
|
|
2
2
|
import { GridRenderContext } from '../../../models';
|
|
3
3
|
import { GridRowId, GridRowModel } from '../../../models/gridRows';
|
|
4
4
|
export declare function getIndexFromScroll(offset: number, positions: number[], sliceStart?: number, sliceEnd?: number): number;
|
|
5
|
+
export declare const getRenderableIndexes: ({ firstIndex, lastIndex, buffer, minFirstIndex, maxLastIndex, }: {
|
|
6
|
+
firstIndex: number;
|
|
7
|
+
lastIndex: number;
|
|
8
|
+
buffer: number;
|
|
9
|
+
minFirstIndex: number;
|
|
10
|
+
maxLastIndex: number;
|
|
11
|
+
}) => number[];
|
|
5
12
|
interface UseGridVirtualScrollerProps {
|
|
6
13
|
ref: React.Ref<HTMLDivElement>;
|
|
7
14
|
disableVirtualization?: boolean;
|
|
@@ -27,6 +34,8 @@ export declare const useGridVirtualScroller: (props: UseGridVirtualScrollerProps
|
|
|
27
34
|
}) => {
|
|
28
35
|
ref: React.Ref<HTMLDivElement>;
|
|
29
36
|
onScroll: (event: React.UIEvent) => void;
|
|
37
|
+
onWheel: (event: React.WheelEvent) => void;
|
|
38
|
+
onTouchMove: (event: React.TouchEvent) => void;
|
|
30
39
|
style: {
|
|
31
40
|
accentColor?: import("csstype").Property.AccentColor | undefined;
|
|
32
41
|
alignContent?: import("csstype").Property.AlignContent | undefined;
|
|
@@ -2,6 +2,7 @@ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWith
|
|
|
2
2
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
3
3
|
const _excluded = ["style"];
|
|
4
4
|
import * as React from 'react';
|
|
5
|
+
import * as ReactDOM from 'react-dom';
|
|
5
6
|
import { useForkRef } from '@mui/material/utils';
|
|
6
7
|
import { useGridApiContext } from '../../utils/useGridApiContext';
|
|
7
8
|
import { useGridRootProps } from '../../utils/useGridRootProps';
|
|
@@ -11,13 +12,13 @@ import { gridDensityRowHeightSelector } from '../density/densitySelector';
|
|
|
11
12
|
import { gridFocusCellSelector, gridTabIndexCellSelector } from '../focus/gridFocusStateSelector';
|
|
12
13
|
import { gridEditRowsStateSelector } from '../editRows/gridEditRowsSelector';
|
|
13
14
|
import { useGridVisibleRows } from '../../utils/useGridVisibleRows';
|
|
14
|
-
import { GridEvents } from '../../../models/events';
|
|
15
15
|
import { useGridApiEventHandler } from '../../utils/useGridApiEventHandler';
|
|
16
16
|
import { clamp } from '../../../utils/utils';
|
|
17
17
|
import { selectedIdsLookupSelector } from '../selection/gridSelectionSelector';
|
|
18
18
|
import { gridRowsMetaSelector } from '../rows/gridRowsMetaSelector';
|
|
19
|
+
import { getFirstNonSpannedColumnToRender } from '../columns/gridColumnsUtils'; // Uses binary search to avoid looping through all possible positions
|
|
20
|
+
|
|
19
21
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
20
|
-
// Uses binary search to avoid looping through all possible positions
|
|
21
22
|
export function getIndexFromScroll(offset, positions, sliceStart = 0, sliceEnd = positions.length) {
|
|
22
23
|
if (positions.length <= 0) {
|
|
23
24
|
return -1;
|
|
@@ -31,9 +32,16 @@ export function getIndexFromScroll(offset, positions, sliceStart = 0, sliceEnd =
|
|
|
31
32
|
const itemOffset = positions[pivot];
|
|
32
33
|
return offset <= itemOffset ? getIndexFromScroll(offset, positions, sliceStart, pivot) : getIndexFromScroll(offset, positions, pivot + 1, sliceEnd);
|
|
33
34
|
}
|
|
35
|
+
export const getRenderableIndexes = ({
|
|
36
|
+
firstIndex,
|
|
37
|
+
lastIndex,
|
|
38
|
+
buffer,
|
|
39
|
+
minFirstIndex,
|
|
40
|
+
maxLastIndex
|
|
41
|
+
}) => {
|
|
42
|
+
return [clamp(firstIndex - buffer, minFirstIndex, maxLastIndex), clamp(lastIndex + buffer, minFirstIndex, maxLastIndex)];
|
|
43
|
+
};
|
|
34
44
|
export const useGridVirtualScroller = props => {
|
|
35
|
-
var _currentPage$range2;
|
|
36
|
-
|
|
37
45
|
const apiRef = useGridApiContext();
|
|
38
46
|
const rootProps = useGridRootProps();
|
|
39
47
|
const visibleColumns = useGridSelector(apiRef, gridVisibleColumnDefinitionsSelector);
|
|
@@ -107,35 +115,29 @@ export const useGridVirtualScroller = props => {
|
|
|
107
115
|
setContainerWidth(rootRef.current.clientWidth);
|
|
108
116
|
}
|
|
109
117
|
}, []);
|
|
110
|
-
useGridApiEventHandler(apiRef,
|
|
111
|
-
|
|
112
|
-
const getRenderableIndexes = ({
|
|
113
|
-
firstIndex,
|
|
114
|
-
lastIndex,
|
|
115
|
-
buffer,
|
|
116
|
-
minFirstIndex,
|
|
117
|
-
maxLastIndex
|
|
118
|
-
}) => {
|
|
119
|
-
return [clamp(firstIndex - buffer, minFirstIndex, maxLastIndex), clamp(lastIndex + buffer, minFirstIndex, maxLastIndex)];
|
|
120
|
-
};
|
|
121
|
-
|
|
118
|
+
useGridApiEventHandler(apiRef, 'resize', handleResize);
|
|
122
119
|
const updateRenderZonePosition = React.useCallback(nextRenderContext => {
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
const [firstRowToRender] = getRenderableIndexes({
|
|
120
|
+
const [firstRowToRender, lastRowToRender] = getRenderableIndexes({
|
|
126
121
|
firstIndex: nextRenderContext.firstRowIndex,
|
|
127
122
|
lastIndex: nextRenderContext.lastRowIndex,
|
|
128
123
|
minFirstIndex: 0,
|
|
129
|
-
maxLastIndex:
|
|
124
|
+
maxLastIndex: currentPage.rows.length,
|
|
130
125
|
buffer: rootProps.rowBuffer
|
|
131
126
|
});
|
|
132
|
-
const [
|
|
127
|
+
const [initialFirstColumnToRender] = getRenderableIndexes({
|
|
133
128
|
firstIndex: nextRenderContext.firstColumnIndex,
|
|
134
129
|
lastIndex: nextRenderContext.lastColumnIndex,
|
|
135
130
|
minFirstIndex: renderZoneMinColumnIndex,
|
|
136
131
|
maxLastIndex: renderZoneMaxColumnIndex,
|
|
137
132
|
buffer: rootProps.columnBuffer
|
|
138
133
|
});
|
|
134
|
+
const firstColumnToRender = getFirstNonSpannedColumnToRender({
|
|
135
|
+
firstColumnToRender: initialFirstColumnToRender,
|
|
136
|
+
apiRef,
|
|
137
|
+
firstRowToRender,
|
|
138
|
+
lastRowToRender,
|
|
139
|
+
visibleRows: currentPage.rows
|
|
140
|
+
});
|
|
139
141
|
const top = gridRowsMetaSelector(apiRef.current.state).positions[firstRowToRender];
|
|
140
142
|
const left = gridColumnPositionsSelector(apiRef)[firstColumnToRender]; // Call directly the selector because it might be outdated when this method is called
|
|
141
143
|
|
|
@@ -147,19 +149,22 @@ export const useGridVirtualScroller = props => {
|
|
|
147
149
|
left
|
|
148
150
|
});
|
|
149
151
|
}
|
|
150
|
-
}, [apiRef,
|
|
152
|
+
}, [apiRef, currentPage.rows, onRenderZonePositioning, renderZoneMinColumnIndex, renderZoneMaxColumnIndex, rootProps.columnBuffer, rootProps.rowBuffer]);
|
|
153
|
+
React.useLayoutEffect(() => {
|
|
154
|
+
if (renderContext) {
|
|
155
|
+
updateRenderZonePosition(renderContext);
|
|
156
|
+
}
|
|
157
|
+
}, [renderContext, updateRenderZonePosition]);
|
|
151
158
|
const updateRenderContext = React.useCallback(nextRenderContext => {
|
|
152
159
|
setRenderContext(nextRenderContext);
|
|
153
|
-
updateRenderZonePosition(nextRenderContext);
|
|
154
160
|
prevRenderContext.current = nextRenderContext;
|
|
155
|
-
}, [setRenderContext, prevRenderContext
|
|
161
|
+
}, [setRenderContext, prevRenderContext]);
|
|
156
162
|
React.useEffect(() => {
|
|
157
163
|
if (containerWidth == null) {
|
|
158
164
|
return;
|
|
159
165
|
}
|
|
160
166
|
|
|
161
167
|
const initialRenderContext = computeRenderContext();
|
|
162
|
-
prevRenderContext.current = initialRenderContext;
|
|
163
168
|
updateRenderContext(initialRenderContext);
|
|
164
169
|
const {
|
|
165
170
|
top,
|
|
@@ -170,7 +175,7 @@ export const useGridVirtualScroller = props => {
|
|
|
170
175
|
left,
|
|
171
176
|
renderContext: initialRenderContext
|
|
172
177
|
};
|
|
173
|
-
apiRef.current.publishEvent(
|
|
178
|
+
apiRef.current.publishEvent('rowsScroll', params);
|
|
174
179
|
}, [apiRef, computeRenderContext, containerWidth, updateRenderContext]);
|
|
175
180
|
|
|
176
181
|
const handleScroll = event => {
|
|
@@ -193,18 +198,29 @@ export const useGridVirtualScroller = props => {
|
|
|
193
198
|
const bottomColumnsScrolledSincePreviousRender = Math.abs(nextRenderContext.lastColumnIndex - prevRenderContext.current.lastColumnIndex);
|
|
194
199
|
const shouldSetState = topRowsScrolledSincePreviousRender >= rootProps.rowThreshold || bottomRowsScrolledSincePreviousRender >= rootProps.rowThreshold || topColumnsScrolledSincePreviousRender >= rootProps.columnThreshold || bottomColumnsScrolledSincePreviousRender >= rootProps.columnThreshold || prevTotalWidth.current !== columnsTotalWidth; // TODO v6: rename event to a wider name, it's not only fired for row scrolling
|
|
195
200
|
|
|
196
|
-
apiRef.current.publishEvent(
|
|
201
|
+
apiRef.current.publishEvent('rowsScroll', {
|
|
197
202
|
top: scrollTop,
|
|
198
203
|
left: scrollLeft,
|
|
199
204
|
renderContext: shouldSetState ? nextRenderContext : prevRenderContext.current
|
|
200
|
-
});
|
|
205
|
+
}, event);
|
|
201
206
|
|
|
202
207
|
if (shouldSetState) {
|
|
203
|
-
|
|
208
|
+
// Prevents batching render context changes
|
|
209
|
+
ReactDOM.flushSync(() => {
|
|
210
|
+
updateRenderContext(nextRenderContext);
|
|
211
|
+
});
|
|
204
212
|
prevTotalWidth.current = columnsTotalWidth;
|
|
205
213
|
}
|
|
206
214
|
};
|
|
207
215
|
|
|
216
|
+
const handleWheel = event => {
|
|
217
|
+
apiRef.current.publishEvent('virtualScrollerWheel', {}, event);
|
|
218
|
+
};
|
|
219
|
+
|
|
220
|
+
const handleTouchMove = event => {
|
|
221
|
+
apiRef.current.publishEvent('virtualScrollerTouchMove', {}, event);
|
|
222
|
+
};
|
|
223
|
+
|
|
208
224
|
const getRows = (params = {
|
|
209
225
|
renderContext
|
|
210
226
|
}) => {
|
|
@@ -228,14 +244,32 @@ export const useGridVirtualScroller = props => {
|
|
|
228
244
|
maxLastIndex: currentPage.rows.length,
|
|
229
245
|
buffer: rowBuffer
|
|
230
246
|
});
|
|
231
|
-
const
|
|
247
|
+
const renderedRows = [];
|
|
248
|
+
|
|
249
|
+
for (let i = firstRowToRender; i < lastRowToRender; i += 1) {
|
|
250
|
+
const row = currentPage.rows[i];
|
|
251
|
+
renderedRows.push(row);
|
|
252
|
+
apiRef.current.unstable_calculateColSpan({
|
|
253
|
+
rowId: row.id,
|
|
254
|
+
minFirstColumn,
|
|
255
|
+
maxLastColumn
|
|
256
|
+
});
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
const [initialFirstColumnToRender, lastColumnToRender] = getRenderableIndexes({
|
|
232
260
|
firstIndex: nextRenderContext.firstColumnIndex,
|
|
233
261
|
lastIndex: nextRenderContext.lastColumnIndex,
|
|
234
262
|
minFirstIndex: minFirstColumn,
|
|
235
263
|
maxLastIndex: maxLastColumn,
|
|
236
264
|
buffer: columnBuffer
|
|
237
265
|
});
|
|
238
|
-
const
|
|
266
|
+
const firstColumnToRender = getFirstNonSpannedColumnToRender({
|
|
267
|
+
firstColumnToRender: initialFirstColumnToRender,
|
|
268
|
+
apiRef,
|
|
269
|
+
firstRowToRender,
|
|
270
|
+
lastRowToRender,
|
|
271
|
+
visibleRows: currentPage.rows
|
|
272
|
+
});
|
|
239
273
|
const renderedColumns = visibleColumns.slice(firstColumnToRender, lastColumnToRender);
|
|
240
274
|
const rows = [];
|
|
241
275
|
|
|
@@ -307,7 +341,7 @@ export const useGridVirtualScroller = props => {
|
|
|
307
341
|
return size;
|
|
308
342
|
}, [rootRef, columnsTotalWidth, rowsMeta.currentPageTotalHeight, currentPage.rows.length, needsHorizontalScrollbar, rootProps.autoHeight, rowHeight]);
|
|
309
343
|
React.useEffect(() => {
|
|
310
|
-
apiRef.current.publishEvent(
|
|
344
|
+
apiRef.current.publishEvent('virtualScrollerContentSizeChange');
|
|
311
345
|
}, [apiRef, contentSize]);
|
|
312
346
|
|
|
313
347
|
if (rootProps.autoHeight && currentPage.rows.length === 0) {
|
|
@@ -337,6 +371,8 @@ export const useGridVirtualScroller = props => {
|
|
|
337
371
|
return _extends({
|
|
338
372
|
ref: handleRef,
|
|
339
373
|
onScroll: handleScroll,
|
|
374
|
+
onWheel: handleWheel,
|
|
375
|
+
onTouchMove: handleTouchMove,
|
|
340
376
|
style: _extends({}, style, rootStyle)
|
|
341
377
|
}, other);
|
|
342
378
|
},
|
|
@@ -11,7 +11,10 @@ declare enum GridSignature {
|
|
|
11
11
|
DataGrid = "DataGrid",
|
|
12
12
|
DataGridPro = "DataGridPro"
|
|
13
13
|
}
|
|
14
|
-
|
|
14
|
+
interface RegistryContainer {
|
|
15
|
+
registry: CleanupTracking | null;
|
|
16
|
+
}
|
|
17
|
+
export declare function createUseGridApiEventHandler(registryContainer: RegistryContainer): <Api extends GridApiCommon, E extends keyof import("../../models").GridEventLookup>(apiRef: React.MutableRefObject<Api>, eventName: E, handler?: GridEventListener<E> | undefined, options?: EventListenerOptions | undefined) => void;
|
|
15
18
|
export declare const unstable_resetCleanupTracking: () => void;
|
|
16
19
|
export declare const useGridApiEventHandler: <Api extends GridApiCommon, E extends keyof import("../../models").GridEventLookup>(apiRef: React.MutableRefObject<Api>, eventName: E, handler?: GridEventListener<E> | undefined, options?: EventListenerOptions | undefined) => void;
|
|
17
20
|
export declare function useGridApiOptionHandler<Api extends GridApiCommon, E extends GridEventsStr>(apiRef: React.MutableRefObject<Api>, eventName: E, handler?: GridEventListener<E>): void;
|
|
@@ -6,20 +6,25 @@ import { FinalizationRegistryBasedCleanupTracking } from '../../utils/cleanupTra
|
|
|
6
6
|
* Signal to the underlying logic what version of the public component API
|
|
7
7
|
* of the data grid is exposed.
|
|
8
8
|
*/
|
|
9
|
-
var GridSignature;
|
|
9
|
+
var GridSignature;
|
|
10
10
|
|
|
11
11
|
(function (GridSignature) {
|
|
12
12
|
GridSignature["DataGrid"] = "DataGrid";
|
|
13
13
|
GridSignature["DataGridPro"] = "DataGridPro";
|
|
14
14
|
})(GridSignature || (GridSignature = {}));
|
|
15
15
|
|
|
16
|
+
// We use class to make it easier to detect in heap snapshots by name
|
|
16
17
|
class ObjectToBeRetainedByReact {} // Based on https://github.com/Bnaya/use-dispose-uncommitted/blob/main/src/finalization-registry-based-impl.ts
|
|
17
18
|
// Check https://github.com/facebook/react/issues/15317 to get more information
|
|
18
19
|
|
|
19
20
|
|
|
20
|
-
export function createUseGridApiEventHandler(
|
|
21
|
+
export function createUseGridApiEventHandler(registryContainer) {
|
|
21
22
|
let cleanupTokensCounter = 0;
|
|
22
23
|
return function useGridApiEventHandler(apiRef, eventName, handler, options) {
|
|
24
|
+
if (registryContainer.registry === null) {
|
|
25
|
+
registryContainer.registry = typeof FinalizationRegistry !== 'undefined' ? new FinalizationRegistryBasedCleanupTracking() : new TimerBasedCleanupTracking();
|
|
26
|
+
}
|
|
27
|
+
|
|
23
28
|
const [objectRetainedByReact] = React.useState(new ObjectToBeRetainedByReact());
|
|
24
29
|
const subscription = React.useRef(null);
|
|
25
30
|
const handlerRef = React.useRef();
|
|
@@ -40,7 +45,7 @@ export function createUseGridApiEventHandler(registry) {
|
|
|
40
45
|
cleanupTokenRef.current = {
|
|
41
46
|
cleanupToken: cleanupTokensCounter
|
|
42
47
|
};
|
|
43
|
-
registry.register(objectRetainedByReact, // The callback below will be called once this reference stops being retained
|
|
48
|
+
registryContainer.registry.register(objectRetainedByReact, // The callback below will be called once this reference stops being retained
|
|
44
49
|
() => {
|
|
45
50
|
var _subscription$current;
|
|
46
51
|
|
|
@@ -53,7 +58,7 @@ export function createUseGridApiEventHandler(registry) {
|
|
|
53
58
|
subscription.current = null;
|
|
54
59
|
|
|
55
60
|
if (cleanupTokenRef.current) {
|
|
56
|
-
registry.unregister(cleanupTokenRef.current);
|
|
61
|
+
registryContainer.registry.unregister(cleanupTokenRef.current);
|
|
57
62
|
cleanupTokenRef.current = null;
|
|
58
63
|
}
|
|
59
64
|
}
|
|
@@ -71,10 +76,10 @@ export function createUseGridApiEventHandler(registry) {
|
|
|
71
76
|
subscription.current = apiRef.current.subscribeEvent(eventName, enhancedHandler, options);
|
|
72
77
|
}
|
|
73
78
|
|
|
74
|
-
if (cleanupTokenRef.current && registry) {
|
|
79
|
+
if (cleanupTokenRef.current && registryContainer.registry) {
|
|
75
80
|
// If the effect was called, it means that this render was committed
|
|
76
81
|
// so we can trust the cleanup function to remove the listener.
|
|
77
|
-
registry.unregister(cleanupTokenRef.current);
|
|
82
|
+
registryContainer.registry.unregister(cleanupTokenRef.current);
|
|
78
83
|
cleanupTokenRef.current = null;
|
|
79
84
|
}
|
|
80
85
|
|
|
@@ -87,10 +92,18 @@ export function createUseGridApiEventHandler(registry) {
|
|
|
87
92
|
}, [apiRef, eventName, options]);
|
|
88
93
|
};
|
|
89
94
|
}
|
|
90
|
-
const
|
|
95
|
+
const registryContainer = {
|
|
96
|
+
registry: null
|
|
97
|
+
}; // TODO: move to @mui/x-data-grid/internals
|
|
98
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
91
99
|
|
|
92
|
-
export const unstable_resetCleanupTracking = () =>
|
|
93
|
-
|
|
100
|
+
export const unstable_resetCleanupTracking = () => {
|
|
101
|
+
var _registryContainer$re;
|
|
102
|
+
|
|
103
|
+
(_registryContainer$re = registryContainer.registry) == null ? void 0 : _registryContainer$re.reset();
|
|
104
|
+
registryContainer.registry = null;
|
|
105
|
+
};
|
|
106
|
+
export const useGridApiEventHandler = createUseGridApiEventHandler(registryContainer);
|
|
94
107
|
const optionsSubscriberOptions = {
|
|
95
108
|
isFirst: true
|
|
96
109
|
};
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { GridEvents } from '../../models/events';
|
|
3
2
|
import { isFunction } from '../../utils/utils';
|
|
4
3
|
import { useGridLogger } from './useGridLogger';
|
|
5
4
|
export const useGridNativeEventListener = (apiRef, ref, eventName, handler, options) => {
|
|
@@ -32,7 +31,7 @@ export const useGridNativeEventListener = (apiRef, ref, eventName, handler, opti
|
|
|
32
31
|
boundElem.removeEventListener(eventName, wrapHandler, options);
|
|
33
32
|
};
|
|
34
33
|
|
|
35
|
-
apiRef.current.subscribeEvent(
|
|
34
|
+
apiRef.current.subscribeEvent('unmount', unsubscribe);
|
|
36
35
|
}
|
|
37
36
|
}, [ref, wrapHandler, eventName, added, logger, options, apiRef]);
|
|
38
37
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { buildWarning } from '../../utils/warning';
|
|
2
2
|
|
|
3
3
|
function isOutputSelector(selector) {
|
|
4
|
-
return selector.
|
|
4
|
+
return selector.acceptsApiRef;
|
|
5
5
|
}
|
|
6
6
|
|
|
7
7
|
const stateNotInitializedWarning = buildWarning(['MUI: `useGridSelector` has been called before the initialization of the state.', 'This hook can only be used inside the context of the grid.']);
|
package/index.d.ts
CHANGED
|
@@ -14,6 +14,8 @@ export * from './context';
|
|
|
14
14
|
export * from './colDef';
|
|
15
15
|
export * from './utils';
|
|
16
16
|
export type { DataGridProps, GridExperimentalFeatures } from './models/props/DataGridProps';
|
|
17
|
+
export type { GridToolbarExportProps } from './components/toolbar/GridToolbarExport';
|
|
18
|
+
export type { GridExportFormat, GridExportExtension } from './models/gridExport';
|
|
17
19
|
/**
|
|
18
20
|
* The full grid API.
|
|
19
21
|
*/
|
package/index.js
CHANGED
package/internals/index.d.ts
CHANGED
|
@@ -12,6 +12,7 @@ export { useGridClipboard } from '../hooks/features/clipboard/useGridClipboard';
|
|
|
12
12
|
export { useGridColumnHeaders } from '../hooks/features/columnHeaders/useGridColumnHeaders';
|
|
13
13
|
export { useGridColumnMenu, columnMenuStateInitializer, } from '../hooks/features/columnMenu/useGridColumnMenu';
|
|
14
14
|
export { useGridColumns, columnsStateInitializer } from '../hooks/features/columns/useGridColumns';
|
|
15
|
+
export { useGridColumnSpanning } from '../hooks/features/columns/useGridColumnSpanning';
|
|
15
16
|
export type { GridColumnRawLookup, GridColumnsRawState, GridHydrateColumnsValue, } from '../hooks/features/columns/gridColumnsInterfaces';
|
|
16
17
|
export { useGridDensity, densityStateInitializer } from '../hooks/features/density/useGridDensity';
|
|
17
18
|
export { useGridCsvExport } from '../hooks/features/export/useGridCsvExport';
|
|
@@ -43,8 +44,11 @@ export { useGridVisibleRows } from '../hooks/utils/useGridVisibleRows';
|
|
|
43
44
|
export { useGridInitializeState } from '../hooks/utils/useGridInitializeState';
|
|
44
45
|
export type { GridStateInitializer } from '../hooks/utils/useGridInitializeState';
|
|
45
46
|
export type { GridExperimentalFeatures, DataGridPropsWithoutDefaultValue, DataGridPropsWithDefaultValues, DataGridPropsWithComplexDefaultValueAfterProcessing, DataGridPropsWithComplexDefaultValueBeforeProcessing, } from '../models/props/DataGridProps';
|
|
46
|
-
export {
|
|
47
|
+
export { getColumnsToExport, defaultGetRowsToExport } from '../hooks/features/export/utils';
|
|
48
|
+
export { createSelector, unstable_resetCreateSelectorCache } from '../utils/createSelector';
|
|
47
49
|
export { findParentElementFromClassName } from '../utils/domUtils';
|
|
48
50
|
export { isNavigationKey } from '../utils/keyboardUtils';
|
|
49
51
|
export { clamp, isDeepEqual } from '../utils/utils';
|
|
52
|
+
export { buildWarning } from '../utils/warning';
|
|
53
|
+
export { exportAs } from '../utils/exportAs';
|
|
50
54
|
export type { GridApiCommunity } from '../models/api/gridApiCommunity';
|
package/internals/index.js
CHANGED
|
@@ -10,6 +10,7 @@ export { useGridClipboard } from '../hooks/features/clipboard/useGridClipboard';
|
|
|
10
10
|
export { useGridColumnHeaders } from '../hooks/features/columnHeaders/useGridColumnHeaders';
|
|
11
11
|
export { useGridColumnMenu, columnMenuStateInitializer } from '../hooks/features/columnMenu/useGridColumnMenu';
|
|
12
12
|
export { useGridColumns, columnsStateInitializer } from '../hooks/features/columns/useGridColumns';
|
|
13
|
+
export { useGridColumnSpanning } from '../hooks/features/columns/useGridColumnSpanning';
|
|
13
14
|
export { useGridDensity, densityStateInitializer } from '../hooks/features/density/useGridDensity';
|
|
14
15
|
export { useGridCsvExport } from '../hooks/features/export/useGridCsvExport';
|
|
15
16
|
export { useGridPrintExport } from '../hooks/features/export/useGridPrintExport';
|
|
@@ -34,7 +35,10 @@ export { useGridStatePersistence } from '../hooks/features/statePersistence/useG
|
|
|
34
35
|
export { useGridVirtualScroller } from '../hooks/features/virtualization/useGridVirtualScroller';
|
|
35
36
|
export { useGridVisibleRows } from '../hooks/utils/useGridVisibleRows';
|
|
36
37
|
export { useGridInitializeState } from '../hooks/utils/useGridInitializeState';
|
|
37
|
-
export {
|
|
38
|
+
export { getColumnsToExport, defaultGetRowsToExport } from '../hooks/features/export/utils';
|
|
39
|
+
export { createSelector, unstable_resetCreateSelectorCache } from '../utils/createSelector';
|
|
38
40
|
export { findParentElementFromClassName } from '../utils/domUtils';
|
|
39
41
|
export { isNavigationKey } from '../utils/keyboardUtils';
|
|
40
|
-
export { clamp, isDeepEqual } from '../utils/utils';
|
|
42
|
+
export { clamp, isDeepEqual } from '../utils/utils';
|
|
43
|
+
export { buildWarning } from '../utils/warning';
|
|
44
|
+
export { exportAs } from '../utils/exportAs';
|
|
@@ -58,6 +58,11 @@ DataGridRaw.propTypes = {
|
|
|
58
58
|
*/
|
|
59
59
|
autoPageSize: PropTypes.bool,
|
|
60
60
|
|
|
61
|
+
/**
|
|
62
|
+
* Controls the modes of the cells.
|
|
63
|
+
*/
|
|
64
|
+
cellModesModel: PropTypes.object,
|
|
65
|
+
|
|
61
66
|
/**
|
|
62
67
|
* If `true`, the grid get a first column with a checkbox that allows to select rows.
|
|
63
68
|
* @default false
|
|
@@ -207,7 +212,9 @@ DataGridRaw.propTypes = {
|
|
|
207
212
|
operatorValue: PropTypes.string,
|
|
208
213
|
value: PropTypes.any
|
|
209
214
|
})).isRequired,
|
|
210
|
-
linkOperator: PropTypes.oneOf(['and', 'or'])
|
|
215
|
+
linkOperator: PropTypes.oneOf(['and', 'or']),
|
|
216
|
+
quickFilterLogicOperator: PropTypes.oneOf(['and', 'or']),
|
|
217
|
+
quickFilterValues: PropTypes.array
|
|
211
218
|
}),
|
|
212
219
|
|
|
213
220
|
/**
|
|
@@ -295,6 +302,14 @@ DataGridRaw.propTypes = {
|
|
|
295
302
|
*/
|
|
296
303
|
isRowSelectable: PropTypes.func,
|
|
297
304
|
|
|
305
|
+
/**
|
|
306
|
+
* If `true`, the selection model will retain selected rows that do not exist.
|
|
307
|
+
* Useful when using server side pagination and row selections need to be retained
|
|
308
|
+
* when changing pages.
|
|
309
|
+
* @default false
|
|
310
|
+
*/
|
|
311
|
+
keepNonExistentRowsSelected: PropTypes.bool,
|
|
312
|
+
|
|
298
313
|
/**
|
|
299
314
|
* If `true`, a loading overlay is displayed.
|
|
300
315
|
*/
|
|
@@ -382,6 +397,13 @@ DataGridRaw.propTypes = {
|
|
|
382
397
|
*/
|
|
383
398
|
onCellKeyDown: PropTypes.func,
|
|
384
399
|
|
|
400
|
+
/**
|
|
401
|
+
* Callback fired when the `cellModesModel` prop changes.
|
|
402
|
+
* @param {GridCellModesModel} cellModesModel Object containig which cells are in "edit" mode.
|
|
403
|
+
* @param {GridCallbackDetails} details Additional details for this callback.
|
|
404
|
+
*/
|
|
405
|
+
onCellModesModelChange: PropTypes.func,
|
|
406
|
+
|
|
385
407
|
/**
|
|
386
408
|
* Callback fired when a click event comes from a column header element.
|
|
387
409
|
* @param {GridColumnHeaderParams} params With all properties from [[GridColumnHeaderParams]].
|
|
@@ -460,7 +482,7 @@ DataGridRaw.propTypes = {
|
|
|
460
482
|
* @param {GridEditCellPropsParams} params With all properties from [[GridEditCellPropsParams]].
|
|
461
483
|
* @param {MuiEvent<React.SyntheticEvent>} event The event that caused this prop to be called.
|
|
462
484
|
* @param {GridCallbackDetails} details Additional details for this callback.
|
|
463
|
-
* @deprecated use `preProcessEditCellProps` from the [`GridColDef`](/api/data-grid/grid-col-def/)
|
|
485
|
+
* @deprecated use `preProcessEditCellProps` from the [`GridColDef`](/x/api/data-grid/grid-col-def/)
|
|
464
486
|
*/
|
|
465
487
|
onEditCellPropsChange: PropTypes.func,
|
|
466
488
|
|
|
@@ -568,6 +590,13 @@ DataGridRaw.propTypes = {
|
|
|
568
590
|
*/
|
|
569
591
|
onRowEditStop: PropTypes.func,
|
|
570
592
|
|
|
593
|
+
/**
|
|
594
|
+
* Callback fired when the `rowModesModel` prop changes.
|
|
595
|
+
* @param {GridRowModesModel} rowModesModel Object containig which rows are in "edit" mode.
|
|
596
|
+
* @param {GridCallbackDetails} details Additional details for this callback.
|
|
597
|
+
*/
|
|
598
|
+
onRowModesModelChange: PropTypes.func,
|
|
599
|
+
|
|
571
600
|
/**
|
|
572
601
|
* Callback fired when the selection state of one or multiple rows changes.
|
|
573
602
|
* @param {GridSelectionModel} selectionModel With all the row ids [[GridSelectionModel]].
|
|
@@ -653,6 +682,11 @@ DataGridRaw.propTypes = {
|
|
|
653
682
|
*/
|
|
654
683
|
rowHeight: PropTypes.number,
|
|
655
684
|
|
|
685
|
+
/**
|
|
686
|
+
* Controls the modes of the rows.
|
|
687
|
+
*/
|
|
688
|
+
rowModesModel: PropTypes.object,
|
|
689
|
+
|
|
656
690
|
/**
|
|
657
691
|
* Set of rows of type [[GridRowsProp]].
|
|
658
692
|
*/
|