@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,7 +1,8 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
|
-
const _excluded = ["id", "value", "formattedValue", "api", "field", "row", "rowNode", "colDef", "cellMode", "isEditable", "tabIndex", "className", "getValue", "hasFocus", "isValidating", "isProcessingProps", "error"];
|
|
3
|
+
const _excluded = ["id", "value", "formattedValue", "api", "field", "row", "rowNode", "colDef", "cellMode", "isEditable", "tabIndex", "className", "getValue", "hasFocus", "isValidating", "isProcessingProps", "error", "onValueChange"];
|
|
4
4
|
import * as React from 'react';
|
|
5
|
+
import PropTypes from 'prop-types';
|
|
5
6
|
import clsx from 'clsx';
|
|
6
7
|
import { unstable_composeClasses as composeClasses } from '@mui/material';
|
|
7
8
|
import { unstable_useId as useId, unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/material/utils';
|
|
@@ -19,14 +20,15 @@ const useUtilityClasses = ownerState => {
|
|
|
19
20
|
return composeClasses(slots, getDataGridUtilityClass, classes);
|
|
20
21
|
};
|
|
21
22
|
|
|
22
|
-
|
|
23
|
+
function GridEditBooleanCell(props) {
|
|
23
24
|
const {
|
|
24
25
|
id: idProp,
|
|
25
26
|
value,
|
|
26
27
|
api,
|
|
27
28
|
field,
|
|
28
29
|
className,
|
|
29
|
-
hasFocus
|
|
30
|
+
hasFocus,
|
|
31
|
+
onValueChange
|
|
30
32
|
} = props,
|
|
31
33
|
other = _objectWithoutPropertiesLoose(props, _excluded);
|
|
32
34
|
|
|
@@ -38,15 +40,20 @@ export function GridEditBooleanCell(props) {
|
|
|
38
40
|
classes: rootProps.classes
|
|
39
41
|
};
|
|
40
42
|
const classes = useUtilityClasses(ownerState);
|
|
41
|
-
const handleChange = React.useCallback(event => {
|
|
43
|
+
const handleChange = React.useCallback(async event => {
|
|
42
44
|
const newValue = event.target.checked;
|
|
45
|
+
|
|
46
|
+
if (onValueChange) {
|
|
47
|
+
await onValueChange(event, newValue);
|
|
48
|
+
}
|
|
49
|
+
|
|
43
50
|
setValueState(newValue);
|
|
44
|
-
api.setEditCellValue({
|
|
51
|
+
await api.setEditCellValue({
|
|
45
52
|
id: idProp,
|
|
46
53
|
field,
|
|
47
54
|
value: newValue
|
|
48
55
|
}, event);
|
|
49
|
-
}, [api, field, idProp]);
|
|
56
|
+
}, [api, field, idProp, onValueChange]);
|
|
50
57
|
React.useEffect(() => {
|
|
51
58
|
setValueState(value);
|
|
52
59
|
}, [value]);
|
|
@@ -68,4 +75,92 @@ export function GridEditBooleanCell(props) {
|
|
|
68
75
|
}, rootProps.componentsProps?.baseCheckbox))
|
|
69
76
|
}));
|
|
70
77
|
}
|
|
78
|
+
|
|
79
|
+
process.env.NODE_ENV !== "production" ? GridEditBooleanCell.propTypes = {
|
|
80
|
+
// ----------------------------- Warning --------------------------------
|
|
81
|
+
// | These PropTypes are generated from the TypeScript type definitions |
|
|
82
|
+
// | To update them edit the TypeScript types and run "yarn proptypes" |
|
|
83
|
+
// ----------------------------------------------------------------------
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* GridApi that let you manipulate the grid.
|
|
87
|
+
* @deprecated Use the `apiRef` returned by `useGridApiContext` or `useGridApiRef` (only available in `@mui/x-data-grid-pro`)
|
|
88
|
+
*/
|
|
89
|
+
api: PropTypes.any.isRequired,
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* The mode of the cell.
|
|
93
|
+
*/
|
|
94
|
+
cellMode: PropTypes.oneOf(['edit', 'view']).isRequired,
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* The column of the row that the current cell belongs to.
|
|
98
|
+
*/
|
|
99
|
+
colDef: PropTypes.object.isRequired,
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* The column field of the cell that triggered the event.
|
|
103
|
+
*/
|
|
104
|
+
field: PropTypes.string.isRequired,
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* The cell value formatted with the column valueFormatter.
|
|
108
|
+
*/
|
|
109
|
+
formattedValue: PropTypes.any,
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* Get the cell value of a row and field.
|
|
113
|
+
* @param {GridRowId} id The row id.
|
|
114
|
+
* @param {string} field The field.
|
|
115
|
+
* @returns {any} The cell value.
|
|
116
|
+
* @deprecated Use `params.row` to directly access the fields you want instead.
|
|
117
|
+
*/
|
|
118
|
+
getValue: PropTypes.func.isRequired,
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* If true, the cell is the active element.
|
|
122
|
+
*/
|
|
123
|
+
hasFocus: PropTypes.bool.isRequired,
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* The grid row id.
|
|
127
|
+
*/
|
|
128
|
+
id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* If true, the cell is editable.
|
|
132
|
+
*/
|
|
133
|
+
isEditable: PropTypes.bool,
|
|
134
|
+
isProcessingProps: PropTypes.bool,
|
|
135
|
+
isValidating: PropTypes.bool,
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
* Callback called when the value is changed by the user.
|
|
139
|
+
* @param {React.ChangeEvent<HTMLInputElement>} event The event source of the callback.
|
|
140
|
+
* @param {boolean} newValue The value that is going to be passed to `apiRef.current.setEditCellValue`.
|
|
141
|
+
* @returns {Promise<void> | void} A promise to be awaited before calling `apiRef.current.setEditCellValue`
|
|
142
|
+
*/
|
|
143
|
+
onValueChange: PropTypes.func,
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* The row model of the row that the current cell belongs to.
|
|
147
|
+
*/
|
|
148
|
+
row: PropTypes.object.isRequired,
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* The node of the row that the current cell belongs to.
|
|
152
|
+
*/
|
|
153
|
+
rowNode: PropTypes.object.isRequired,
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* the tabIndex value.
|
|
157
|
+
*/
|
|
158
|
+
tabIndex: PropTypes.oneOf([-1, 0]).isRequired,
|
|
159
|
+
|
|
160
|
+
/**
|
|
161
|
+
* The cell value, but if the column has valueGetter, use getValue.
|
|
162
|
+
*/
|
|
163
|
+
value: PropTypes.any
|
|
164
|
+
} : void 0;
|
|
165
|
+
export { GridEditBooleanCell };
|
|
71
166
|
export const renderEditBooleanCell = params => /*#__PURE__*/_jsx(GridEditBooleanCell, _extends({}, params));
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
|
-
const _excluded = ["id", "value", "formattedValue", "api", "field", "row", "rowNode", "colDef", "cellMode", "isEditable", "tabIndex", "hasFocus", "getValue", "inputProps", "isValidating", "isProcessingProps"];
|
|
3
|
+
const _excluded = ["id", "value", "formattedValue", "api", "field", "row", "rowNode", "colDef", "cellMode", "isEditable", "tabIndex", "hasFocus", "getValue", "inputProps", "isValidating", "isProcessingProps", "onValueChange"];
|
|
4
4
|
import * as React from 'react';
|
|
5
|
+
import PropTypes from 'prop-types';
|
|
5
6
|
import { unstable_composeClasses as composeClasses } from '@mui/material';
|
|
6
7
|
import { unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/material/utils';
|
|
7
8
|
import InputBase from '@mui/material/InputBase';
|
|
@@ -19,7 +20,7 @@ const useUtilityClasses = ownerState => {
|
|
|
19
20
|
return composeClasses(slots, getDataGridUtilityClass, classes);
|
|
20
21
|
};
|
|
21
22
|
|
|
22
|
-
|
|
23
|
+
function GridEditDateCell(props) {
|
|
23
24
|
const {
|
|
24
25
|
id,
|
|
25
26
|
value: valueProp,
|
|
@@ -27,7 +28,8 @@ export function GridEditDateCell(props) {
|
|
|
27
28
|
field,
|
|
28
29
|
colDef,
|
|
29
30
|
hasFocus,
|
|
30
|
-
inputProps
|
|
31
|
+
inputProps,
|
|
32
|
+
onValueChange
|
|
31
33
|
} = props,
|
|
32
34
|
other = _objectWithoutPropertiesLoose(props, _excluded);
|
|
33
35
|
|
|
@@ -64,7 +66,7 @@ export function GridEditDateCell(props) {
|
|
|
64
66
|
classes: rootProps.classes
|
|
65
67
|
};
|
|
66
68
|
const classes = useUtilityClasses(ownerState);
|
|
67
|
-
const handleChange = React.useCallback(event => {
|
|
69
|
+
const handleChange = React.useCallback(async event => {
|
|
68
70
|
const newFormattedDate = event.target.value;
|
|
69
71
|
let newParsedDate;
|
|
70
72
|
|
|
@@ -83,6 +85,10 @@ export function GridEditDateCell(props) {
|
|
|
83
85
|
}
|
|
84
86
|
}
|
|
85
87
|
|
|
88
|
+
if (onValueChange) {
|
|
89
|
+
await onValueChange(event, newParsedDate);
|
|
90
|
+
}
|
|
91
|
+
|
|
86
92
|
setValueState({
|
|
87
93
|
parsed: newParsedDate,
|
|
88
94
|
formatted: newFormattedDate
|
|
@@ -92,7 +98,7 @@ export function GridEditDateCell(props) {
|
|
|
92
98
|
field,
|
|
93
99
|
value: newParsedDate
|
|
94
100
|
}, event);
|
|
95
|
-
}, [api, field, id]);
|
|
101
|
+
}, [api, field, id, onValueChange]);
|
|
96
102
|
React.useEffect(() => {
|
|
97
103
|
setValueState(state => {
|
|
98
104
|
if (valueTransformed.parsed !== state.parsed && valueTransformed.parsed?.getTime() !== state.parsed?.getTime()) {
|
|
@@ -119,4 +125,92 @@ export function GridEditDateCell(props) {
|
|
|
119
125
|
onChange: handleChange
|
|
120
126
|
}, other));
|
|
121
127
|
}
|
|
128
|
+
|
|
129
|
+
process.env.NODE_ENV !== "production" ? GridEditDateCell.propTypes = {
|
|
130
|
+
// ----------------------------- Warning --------------------------------
|
|
131
|
+
// | These PropTypes are generated from the TypeScript type definitions |
|
|
132
|
+
// | To update them edit the TypeScript types and run "yarn proptypes" |
|
|
133
|
+
// ----------------------------------------------------------------------
|
|
134
|
+
|
|
135
|
+
/**
|
|
136
|
+
* GridApi that let you manipulate the grid.
|
|
137
|
+
* @deprecated Use the `apiRef` returned by `useGridApiContext` or `useGridApiRef` (only available in `@mui/x-data-grid-pro`)
|
|
138
|
+
*/
|
|
139
|
+
api: PropTypes.any.isRequired,
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* The mode of the cell.
|
|
143
|
+
*/
|
|
144
|
+
cellMode: PropTypes.oneOf(['edit', 'view']).isRequired,
|
|
145
|
+
|
|
146
|
+
/**
|
|
147
|
+
* The column of the row that the current cell belongs to.
|
|
148
|
+
*/
|
|
149
|
+
colDef: PropTypes.object.isRequired,
|
|
150
|
+
|
|
151
|
+
/**
|
|
152
|
+
* The column field of the cell that triggered the event.
|
|
153
|
+
*/
|
|
154
|
+
field: PropTypes.string.isRequired,
|
|
155
|
+
|
|
156
|
+
/**
|
|
157
|
+
* The cell value formatted with the column valueFormatter.
|
|
158
|
+
*/
|
|
159
|
+
formattedValue: PropTypes.any,
|
|
160
|
+
|
|
161
|
+
/**
|
|
162
|
+
* Get the cell value of a row and field.
|
|
163
|
+
* @param {GridRowId} id The row id.
|
|
164
|
+
* @param {string} field The field.
|
|
165
|
+
* @returns {any} The cell value.
|
|
166
|
+
* @deprecated Use `params.row` to directly access the fields you want instead.
|
|
167
|
+
*/
|
|
168
|
+
getValue: PropTypes.func.isRequired,
|
|
169
|
+
|
|
170
|
+
/**
|
|
171
|
+
* If true, the cell is the active element.
|
|
172
|
+
*/
|
|
173
|
+
hasFocus: PropTypes.bool.isRequired,
|
|
174
|
+
|
|
175
|
+
/**
|
|
176
|
+
* The grid row id.
|
|
177
|
+
*/
|
|
178
|
+
id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
|
|
179
|
+
|
|
180
|
+
/**
|
|
181
|
+
* If true, the cell is editable.
|
|
182
|
+
*/
|
|
183
|
+
isEditable: PropTypes.bool,
|
|
184
|
+
isProcessingProps: PropTypes.bool,
|
|
185
|
+
isValidating: PropTypes.bool,
|
|
186
|
+
|
|
187
|
+
/**
|
|
188
|
+
* Callback called when the value is changed by the user.
|
|
189
|
+
* @param {React.ChangeEvent<HTMLInputElement>} event The event source of the callback.
|
|
190
|
+
* @param {Date | null} newValue The value that is going to be passed to `apiRef.current.setEditCellValue`.
|
|
191
|
+
* @returns {Promise<void> | void} A promise to be awaited before calling `apiRef.current.setEditCellValue`
|
|
192
|
+
*/
|
|
193
|
+
onValueChange: PropTypes.func,
|
|
194
|
+
|
|
195
|
+
/**
|
|
196
|
+
* The row model of the row that the current cell belongs to.
|
|
197
|
+
*/
|
|
198
|
+
row: PropTypes.object.isRequired,
|
|
199
|
+
|
|
200
|
+
/**
|
|
201
|
+
* The node of the row that the current cell belongs to.
|
|
202
|
+
*/
|
|
203
|
+
rowNode: PropTypes.object.isRequired,
|
|
204
|
+
|
|
205
|
+
/**
|
|
206
|
+
* the tabIndex value.
|
|
207
|
+
*/
|
|
208
|
+
tabIndex: PropTypes.oneOf([-1, 0]).isRequired,
|
|
209
|
+
|
|
210
|
+
/**
|
|
211
|
+
* The cell value, but if the column has valueGetter, use getValue.
|
|
212
|
+
*/
|
|
213
|
+
value: PropTypes.any
|
|
214
|
+
} : void 0;
|
|
215
|
+
export { GridEditDateCell };
|
|
122
216
|
export const renderEditDateCell = params => /*#__PURE__*/_jsx(GridEditDateCell, _extends({}, params));
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
2
2
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
3
|
-
const _excluded = ["id", "value", "formattedValue", "api", "field", "row", "rowNode", "colDef", "cellMode", "isEditable", "tabIndex", "hasFocus", "getValue", "isValidating", "debounceMs", "isProcessingProps"];
|
|
3
|
+
const _excluded = ["id", "value", "formattedValue", "api", "field", "row", "rowNode", "colDef", "cellMode", "isEditable", "tabIndex", "hasFocus", "getValue", "isValidating", "debounceMs", "isProcessingProps", "onValueChange"];
|
|
4
4
|
import * as React from 'react';
|
|
5
5
|
import PropTypes from 'prop-types';
|
|
6
6
|
import { unstable_composeClasses as composeClasses } from '@mui/material';
|
|
@@ -48,7 +48,8 @@ function GridEditInputCell(props) {
|
|
|
48
48
|
colDef,
|
|
49
49
|
hasFocus,
|
|
50
50
|
debounceMs = rootProps.experimentalFeatures?.newEditingApi ? 200 : SUBMIT_FILTER_STROKE_TIME,
|
|
51
|
-
isProcessingProps
|
|
51
|
+
isProcessingProps,
|
|
52
|
+
onValueChange
|
|
52
53
|
} = props,
|
|
53
54
|
other = _objectWithoutPropertiesLoose(props, _excluded);
|
|
54
55
|
|
|
@@ -58,8 +59,13 @@ function GridEditInputCell(props) {
|
|
|
58
59
|
classes: rootProps.classes
|
|
59
60
|
};
|
|
60
61
|
const classes = useUtilityClasses(ownerState);
|
|
61
|
-
const handleChange = React.useCallback(event => {
|
|
62
|
+
const handleChange = React.useCallback(async event => {
|
|
62
63
|
const newValue = event.target.value;
|
|
64
|
+
|
|
65
|
+
if (onValueChange) {
|
|
66
|
+
await onValueChange(event, newValue);
|
|
67
|
+
}
|
|
68
|
+
|
|
63
69
|
setValueState(newValue);
|
|
64
70
|
api.setEditCellValue({
|
|
65
71
|
id,
|
|
@@ -67,7 +73,7 @@ function GridEditInputCell(props) {
|
|
|
67
73
|
value: newValue,
|
|
68
74
|
debounceMs
|
|
69
75
|
}, event);
|
|
70
|
-
}, [api, debounceMs, field, id]);
|
|
76
|
+
}, [api, debounceMs, field, id, onValueChange]);
|
|
71
77
|
React.useEffect(() => {
|
|
72
78
|
setValueState(value);
|
|
73
79
|
}, [value]);
|
|
@@ -118,7 +124,7 @@ process.env.NODE_ENV !== "production" ? GridEditInputCell.propTypes = {
|
|
|
118
124
|
/**
|
|
119
125
|
* The cell value formatted with the column valueFormatter.
|
|
120
126
|
*/
|
|
121
|
-
formattedValue: PropTypes.any
|
|
127
|
+
formattedValue: PropTypes.any,
|
|
122
128
|
|
|
123
129
|
/**
|
|
124
130
|
* Get the cell value of a row and field.
|
|
@@ -146,6 +152,14 @@ process.env.NODE_ENV !== "production" ? GridEditInputCell.propTypes = {
|
|
|
146
152
|
isProcessingProps: PropTypes.bool,
|
|
147
153
|
isValidating: PropTypes.bool,
|
|
148
154
|
|
|
155
|
+
/**
|
|
156
|
+
* Callback called when the value is changed by the user.
|
|
157
|
+
* @param {React.ChangeEvent<HTMLInputElement>} event The event source of the callback.
|
|
158
|
+
* @param {Date | null} newValue The value that is going to be passed to `apiRef.current.setEditCellValue`.
|
|
159
|
+
* @returns {Promise<void> | void} A promise to be awaited before calling `apiRef.current.setEditCellValue`
|
|
160
|
+
*/
|
|
161
|
+
onValueChange: PropTypes.func,
|
|
162
|
+
|
|
149
163
|
/**
|
|
150
164
|
* The row model of the row that the current cell belongs to.
|
|
151
165
|
*/
|
|
@@ -154,7 +168,17 @@ process.env.NODE_ENV !== "production" ? GridEditInputCell.propTypes = {
|
|
|
154
168
|
/**
|
|
155
169
|
* The node of the row that the current cell belongs to.
|
|
156
170
|
*/
|
|
157
|
-
rowNode: PropTypes.object.isRequired
|
|
171
|
+
rowNode: PropTypes.object.isRequired,
|
|
172
|
+
|
|
173
|
+
/**
|
|
174
|
+
* the tabIndex value.
|
|
175
|
+
*/
|
|
176
|
+
tabIndex: PropTypes.oneOf([-1, 0]).isRequired,
|
|
177
|
+
|
|
178
|
+
/**
|
|
179
|
+
* The cell value, but if the column has valueGetter, use getValue.
|
|
180
|
+
*/
|
|
181
|
+
value: PropTypes.any
|
|
158
182
|
} : void 0;
|
|
159
183
|
export { GridEditInputCell };
|
|
160
184
|
export const renderEditInputCell = params => /*#__PURE__*/_jsx(GridEditInputCell, _extends({}, params));
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
|
-
const _excluded = ["id", "value", "formattedValue", "api", "field", "row", "rowNode", "colDef", "cellMode", "isEditable", "tabIndex", "className", "getValue", "hasFocus", "isValidating", "isProcessingProps", "error"];
|
|
3
|
+
const _excluded = ["id", "value", "formattedValue", "api", "field", "row", "rowNode", "colDef", "cellMode", "isEditable", "tabIndex", "className", "getValue", "hasFocus", "isValidating", "isProcessingProps", "error", "onValueChange"];
|
|
4
4
|
import * as React from 'react';
|
|
5
5
|
import PropTypes from 'prop-types';
|
|
6
6
|
import { unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/material/utils';
|
|
@@ -8,16 +8,19 @@ import MenuItem from '@mui/material/MenuItem';
|
|
|
8
8
|
import { isEscapeKey } from '../../utils/keyboardUtils';
|
|
9
9
|
import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
|
|
10
10
|
import { GridEditModes } from '../../models/gridEditRowModel';
|
|
11
|
-
import {
|
|
11
|
+
import { getValueFromValueOptions } from '../panel/filterPanel/filterPanelUtils';
|
|
12
12
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
13
13
|
|
|
14
|
-
const renderSingleSelectOptions = option =>
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
14
|
+
const renderSingleSelectOptions = (option, OptionComponent) => {
|
|
15
|
+
const isOptionTypeObject = typeof option === 'object';
|
|
16
|
+
const key = isOptionTypeObject ? option.value : option;
|
|
17
|
+
const value = isOptionTypeObject ? option.value : option;
|
|
18
|
+
const content = isOptionTypeObject ? option.label : option;
|
|
19
|
+
return /*#__PURE__*/_jsx(OptionComponent, {
|
|
20
|
+
value: value,
|
|
21
|
+
children: content
|
|
22
|
+
}, key);
|
|
23
|
+
};
|
|
21
24
|
|
|
22
25
|
function GridEditSingleSelectCell(props) {
|
|
23
26
|
const {
|
|
@@ -28,7 +31,8 @@ function GridEditSingleSelectCell(props) {
|
|
|
28
31
|
row,
|
|
29
32
|
colDef,
|
|
30
33
|
hasFocus,
|
|
31
|
-
error
|
|
34
|
+
error,
|
|
35
|
+
onValueChange
|
|
32
36
|
} = props,
|
|
33
37
|
other = _objectWithoutPropertiesLoose(props, _excluded);
|
|
34
38
|
|
|
@@ -36,6 +40,8 @@ function GridEditSingleSelectCell(props) {
|
|
|
36
40
|
const inputRef = React.useRef();
|
|
37
41
|
const rootProps = useGridRootProps();
|
|
38
42
|
const [open, setOpen] = React.useState(rootProps.editMode === 'cell');
|
|
43
|
+
const baseSelectProps = rootProps.componentsProps?.baseSelect || {};
|
|
44
|
+
const isSelectNative = baseSelectProps.native ?? false;
|
|
39
45
|
let valueOptionsFormatted;
|
|
40
46
|
|
|
41
47
|
if (typeof colDef.valueOptions === 'function') {
|
|
@@ -68,11 +74,18 @@ function GridEditSingleSelectCell(props) {
|
|
|
68
74
|
|
|
69
75
|
const handleChange = async event => {
|
|
70
76
|
setOpen(false);
|
|
71
|
-
const target = event.target;
|
|
77
|
+
const target = event.target; // NativeSelect casts the value to a string.
|
|
78
|
+
|
|
79
|
+
const formattedTargetValue = getValueFromValueOptions(target.value, valueOptionsFormatted);
|
|
80
|
+
|
|
81
|
+
if (onValueChange) {
|
|
82
|
+
await onValueChange(event, formattedTargetValue);
|
|
83
|
+
}
|
|
84
|
+
|
|
72
85
|
const isValid = await api.setEditCellValue({
|
|
73
86
|
id,
|
|
74
87
|
field,
|
|
75
|
-
value:
|
|
88
|
+
value: formattedTargetValue
|
|
76
89
|
}, event);
|
|
77
90
|
|
|
78
91
|
if (rootProps.experimentalFeatures?.newEditingApi) {
|
|
@@ -95,7 +108,7 @@ function GridEditSingleSelectCell(props) {
|
|
|
95
108
|
if (event.key) {
|
|
96
109
|
// TODO v6: remove once we stop ignoring events fired from portals
|
|
97
110
|
const params = api.getCellParams(id, field);
|
|
98
|
-
api.publishEvent(
|
|
111
|
+
api.publishEvent('cellNavigationKeyDown', params, event);
|
|
99
112
|
}
|
|
100
113
|
}
|
|
101
114
|
};
|
|
@@ -139,9 +152,10 @@ function GridEditSingleSelectCell(props) {
|
|
|
139
152
|
onClose: handleClose
|
|
140
153
|
},
|
|
141
154
|
error: error,
|
|
155
|
+
native: isSelectNative,
|
|
142
156
|
fullWidth: true
|
|
143
157
|
}, other, rootProps.componentsProps?.baseSelect, {
|
|
144
|
-
children: valueOptionsFormatted.map(renderSingleSelectOptions)
|
|
158
|
+
children: valueOptionsFormatted.map(valueOptions => renderSingleSelectOptions(valueOptions, isSelectNative ? 'option' : MenuItem))
|
|
145
159
|
}));
|
|
146
160
|
}
|
|
147
161
|
|
|
@@ -175,7 +189,7 @@ process.env.NODE_ENV !== "production" ? GridEditSingleSelectCell.propTypes = {
|
|
|
175
189
|
/**
|
|
176
190
|
* The cell value formatted with the column valueFormatter.
|
|
177
191
|
*/
|
|
178
|
-
formattedValue: PropTypes.any
|
|
192
|
+
formattedValue: PropTypes.any,
|
|
179
193
|
|
|
180
194
|
/**
|
|
181
195
|
* Get the cell value of a row and field.
|
|
@@ -203,6 +217,14 @@ process.env.NODE_ENV !== "production" ? GridEditSingleSelectCell.propTypes = {
|
|
|
203
217
|
isProcessingProps: PropTypes.bool,
|
|
204
218
|
isValidating: PropTypes.bool,
|
|
205
219
|
|
|
220
|
+
/**
|
|
221
|
+
* Callback called when the value is changed by the user.
|
|
222
|
+
* @param {SelectChangeEvent<any>} event The event source of the callback.
|
|
223
|
+
* @param {any} newValue The value that is going to be passed to `apiRef.current.setEditCellValue`.
|
|
224
|
+
* @returns {Promise<void> | void} A promise to be awaited before calling `apiRef.current.setEditCellValue`
|
|
225
|
+
*/
|
|
226
|
+
onValueChange: PropTypes.func,
|
|
227
|
+
|
|
206
228
|
/**
|
|
207
229
|
* The row model of the row that the current cell belongs to.
|
|
208
230
|
*/
|
|
@@ -211,7 +233,17 @@ process.env.NODE_ENV !== "production" ? GridEditSingleSelectCell.propTypes = {
|
|
|
211
233
|
/**
|
|
212
234
|
* The node of the row that the current cell belongs to.
|
|
213
235
|
*/
|
|
214
|
-
rowNode: PropTypes.object.isRequired
|
|
236
|
+
rowNode: PropTypes.object.isRequired,
|
|
237
|
+
|
|
238
|
+
/**
|
|
239
|
+
* the tabIndex value.
|
|
240
|
+
*/
|
|
241
|
+
tabIndex: PropTypes.oneOf([-1, 0]).isRequired,
|
|
242
|
+
|
|
243
|
+
/**
|
|
244
|
+
* The cell value, but if the column has valueGetter, use getValue.
|
|
245
|
+
*/
|
|
246
|
+
value: PropTypes.any
|
|
215
247
|
} : void 0;
|
|
216
248
|
export { GridEditSingleSelectCell };
|
|
217
249
|
export const renderEditSingleSelectCell = params => /*#__PURE__*/_jsx(GridEditSingleSelectCell, _extends({}, params));
|
|
@@ -4,7 +4,6 @@ import PropTypes from 'prop-types';
|
|
|
4
4
|
import clsx from 'clsx';
|
|
5
5
|
import { unstable_composeClasses as composeClasses } from '@mui/material';
|
|
6
6
|
import { unstable_useId as useId } from '@mui/material/utils';
|
|
7
|
-
import { GridEvents } from '../../models/events';
|
|
8
7
|
import { useGridApiContext } from '../../hooks/utils/useGridApiContext';
|
|
9
8
|
import { GridColumnHeaderSortIcon } from './GridColumnHeaderSortIcon';
|
|
10
9
|
import { GridColumnHeaderTitle } from './GridColumnHeaderTitle';
|
|
@@ -85,25 +84,25 @@ function GridColumnHeaderItem(props) {
|
|
|
85
84
|
apiRef.current.publishEvent(eventName, apiRef.current.getColumnHeaderParams(column.field), event);
|
|
86
85
|
}, [apiRef, column.field]);
|
|
87
86
|
const mouseEventsHandlers = {
|
|
88
|
-
onClick: publish(
|
|
89
|
-
onDoubleClick: publish(
|
|
90
|
-
onMouseOver: publish(
|
|
87
|
+
onClick: publish('columnHeaderClick'),
|
|
88
|
+
onDoubleClick: publish('columnHeaderDoubleClick'),
|
|
89
|
+
onMouseOver: publish('columnHeaderOver'),
|
|
91
90
|
// TODO remove as it's not used
|
|
92
|
-
onMouseOut: publish(
|
|
91
|
+
onMouseOut: publish('columnHeaderOut'),
|
|
93
92
|
// TODO remove as it's not used
|
|
94
|
-
onMouseEnter: publish(
|
|
93
|
+
onMouseEnter: publish('columnHeaderEnter'),
|
|
95
94
|
// TODO remove as it's not used
|
|
96
|
-
onMouseLeave: publish(
|
|
95
|
+
onMouseLeave: publish('columnHeaderLeave'),
|
|
97
96
|
// TODO remove as it's not used
|
|
98
|
-
onKeyDown: publish(
|
|
99
|
-
onFocus: publish(
|
|
100
|
-
onBlur: publish(
|
|
97
|
+
onKeyDown: publish('columnHeaderKeyDown'),
|
|
98
|
+
onFocus: publish('columnHeaderFocus'),
|
|
99
|
+
onBlur: publish('columnHeaderBlur')
|
|
101
100
|
};
|
|
102
101
|
const draggableEventHandlers = {
|
|
103
|
-
onDragStart: publish(
|
|
104
|
-
onDragEnter: publish(
|
|
105
|
-
onDragOver: publish(
|
|
106
|
-
onDragEnd: publish(
|
|
102
|
+
onDragStart: publish('columnHeaderDragStart'),
|
|
103
|
+
onDragEnter: publish('columnHeaderDragEnter'),
|
|
104
|
+
onDragOver: publish('columnHeaderDragOver'),
|
|
105
|
+
onDragEnd: publish('columnHeaderDragEnd')
|
|
107
106
|
};
|
|
108
107
|
const removeLastBorderRight = isLastColumn && hasScrollX && !hasScrollY;
|
|
109
108
|
const showRightBorder = !isLastColumn ? rootProps.showColumnRightBorder : !removeLastBorderRight && !extendRowFullWidth;
|
|
@@ -115,7 +114,7 @@ function GridColumnHeaderItem(props) {
|
|
|
115
114
|
|
|
116
115
|
const classes = useUtilityClasses(ownerState);
|
|
117
116
|
const width = column.computedWidth;
|
|
118
|
-
let ariaSort;
|
|
117
|
+
let ariaSort = 'none';
|
|
119
118
|
|
|
120
119
|
if (sortDirection != null) {
|
|
121
120
|
ariaSort = sortDirection === 'asc' ? 'ascending' : 'descending';
|
|
@@ -156,14 +155,11 @@ function GridColumnHeaderItem(props) {
|
|
|
156
155
|
|
|
157
156
|
if (hasFocus && !columnMenuState.open) {
|
|
158
157
|
const focusableElement = headerCellRef.current.querySelector('[tabindex="0"]');
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
} else {
|
|
163
|
-
headerCellRef.current.focus();
|
|
164
|
-
}
|
|
158
|
+
const elementToFocus = focusableElement || headerCellRef.current;
|
|
159
|
+
elementToFocus?.focus();
|
|
160
|
+
apiRef.current.columnHeadersContainerElementRef.current.scrollLeft = 0;
|
|
165
161
|
}
|
|
166
|
-
});
|
|
162
|
+
}, [apiRef, hasFocus]);
|
|
167
163
|
const headerClassName = typeof column.headerClassName === 'function' ? column.headerClassName({
|
|
168
164
|
field: column.field,
|
|
169
165
|
colDef: column
|
|
@@ -201,7 +197,7 @@ function GridColumnHeaderItem(props) {
|
|
|
201
197
|
resizable: !rootProps.disableColumnResize && !!column.resizable,
|
|
202
198
|
resizing: isResizing,
|
|
203
199
|
height: headerHeight,
|
|
204
|
-
onMouseDown: publish(
|
|
200
|
+
onMouseDown: publish('columnSeparatorMouseDown'),
|
|
205
201
|
side: separatorSide
|
|
206
202
|
}), /*#__PURE__*/_jsx(GridColumnHeaderMenu, {
|
|
207
203
|
columnMenuId: columnMenuId,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
|
-
const _excluded = ["
|
|
3
|
+
const _excluded = ["className"];
|
|
4
4
|
import * as React from 'react';
|
|
5
5
|
import clsx from 'clsx';
|
|
6
6
|
import { unstable_composeClasses as composeClasses } from '@mui/material';
|