@mui/x-data-grid 5.10.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 +163 -10
- package/DataGrid/DataGrid.js +35 -1
- package/DataGrid/useDataGridProps.js +2 -1
- package/README.md +1 -1
- 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.js +4 -5
- 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 +1 -2
- package/components/cell/GridActionsCell.js +13 -4
- package/components/cell/GridCell.js +8 -8
- 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 +29 -5
- package/components/cell/GridEditSingleSelectCell.d.ts +12 -4
- package/components/cell/GridEditSingleSelectCell.js +28 -5
- package/components/cell/index.d.ts +2 -0
- package/components/cell/index.js +2 -0
- package/components/columnHeaders/GridColumnHeaderItem.js +15 -16
- package/components/columnHeaders/GridColumnHeaders.d.ts +2 -0
- package/components/columnHeaders/GridColumnHeadersInner.d.ts +2 -0
- package/components/columnSelection/GridCellCheckboxRenderer.js +2 -3
- 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/GridToolbarContainer.d.ts +8 -2
- package/components/containers/GridToolbarContainer.js +12 -2
- 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/toolbar/GridToolbar.d.ts +12 -2
- package/components/toolbar/GridToolbar.js +30 -7
- package/components/toolbar/GridToolbarExport.d.ts +5 -4
- package/components/toolbar/GridToolbarExport.js +15 -20
- 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/GridVirtualScrollerContent.d.ts +4 -1
- package/components/virtualization/GridVirtualScrollerRenderZone.d.ts +4 -1
- package/constants/localeTextConstants.js +5 -0
- package/hooks/core/pipeProcessing/gridPipeProcessingApi.d.ts +7 -0
- 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.js +5 -6
- package/hooks/features/columnMenu/useGridColumnMenu.js +3 -4
- package/hooks/features/columns/useGridColumnSpanning.js +1 -2
- package/hooks/features/columns/useGridColumns.js +8 -9
- package/hooks/features/dimensions/useGridDimensions.d.ts +1 -1
- package/hooks/features/dimensions/useGridDimensions.js +8 -9
- package/hooks/features/editRows/useGridCellEditing.new.d.ts +1 -1
- package/hooks/features/editRows/useGridCellEditing.new.js +133 -32
- package/hooks/features/editRows/useGridCellEditing.old.js +20 -21
- 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 +122 -42
- 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 +20 -8
- package/hooks/features/focus/useGridFocus.d.ts +1 -1
- package/hooks/features/focus/useGridFocus.js +29 -33
- package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +4 -5
- 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 +1 -0
- package/hooks/features/rows/gridRowsSelector.js +1 -0
- package/hooks/features/rows/gridRowsState.d.ts +3 -7
- package/hooks/features/rows/gridRowsUtils.d.ts +2 -1
- package/hooks/features/rows/gridRowsUtils.js +25 -1
- package/hooks/features/rows/useGridRows.js +100 -60
- package/hooks/features/rows/useGridRowsPreProcessors.js +2 -0
- package/hooks/features/scroll/useGridScroll.js +6 -1
- package/hooks/features/selection/useGridSelection.d.ts +1 -1
- package/hooks/features/selection/useGridSelection.js +13 -10
- package/hooks/features/sorting/useGridSorting.js +8 -9
- package/hooks/features/virtualization/useGridVirtualScroller.js +6 -7
- 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 +4 -1
- package/internals/index.js +5 -2
- package/legacy/DataGrid/DataGrid.js +35 -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 +4 -5
- 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 +1 -2
- package/legacy/components/cell/GridActionsCell.js +13 -4
- package/legacy/components/cell/GridCell.js +8 -8
- package/legacy/components/cell/GridEditBooleanCell.js +132 -11
- package/legacy/components/cell/GridEditDateCell.js +148 -42
- package/legacy/components/cell/GridEditInputCell.js +61 -12
- package/legacy/components/cell/GridEditSingleSelectCell.js +41 -13
- package/legacy/components/cell/index.js +2 -0
- package/legacy/components/columnHeaders/GridColumnHeaderItem.js +15 -16
- package/legacy/components/columnSelection/GridCellCheckboxRenderer.js +2 -3
- package/legacy/components/columnSelection/GridHeaderCheckbox.js +4 -5
- package/legacy/components/containers/GridFooterContainer.js +11 -2
- package/legacy/components/containers/GridToolbarContainer.js +12 -2
- 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/toolbar/GridToolbar.js +31 -6
- 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/constants/localeTextConstants.js +5 -0
- 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 +5 -6
- package/legacy/hooks/features/columnMenu/useGridColumnMenu.js +3 -4
- package/legacy/hooks/features/columns/useGridColumnSpanning.js +1 -2
- package/legacy/hooks/features/columns/useGridColumns.js +8 -9
- package/legacy/hooks/features/dimensions/useGridDimensions.js +8 -9
- package/legacy/hooks/features/editRows/useGridCellEditing.new.js +213 -83
- package/legacy/hooks/features/editRows/useGridCellEditing.old.js +20 -21
- package/legacy/hooks/features/editRows/useGridEditing.old.js +4 -5
- package/legacy/hooks/features/editRows/useGridRowEditing.new.js +126 -42
- 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 +20 -8
- package/legacy/hooks/features/focus/useGridFocus.js +31 -35
- package/legacy/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +4 -5
- 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 +3 -0
- package/legacy/hooks/features/rows/gridRowsUtils.js +27 -1
- package/legacy/hooks/features/rows/useGridRows.js +104 -60
- package/legacy/hooks/features/rows/useGridRowsPreProcessors.js +2 -0
- package/legacy/hooks/features/scroll/useGridScroll.js +6 -1
- package/legacy/hooks/features/selection/useGridSelection.js +13 -10
- package/legacy/hooks/features/sorting/useGridSorting.js +8 -9
- package/legacy/hooks/features/virtualization/useGridVirtualScroller.js +6 -7
- 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 +5 -2
- package/legacy/locales/arSD.js +5 -0
- package/legacy/locales/bgBG.js +5 -0
- package/legacy/locales/csCZ.js +5 -0
- package/legacy/locales/daDK.js +5 -0
- package/legacy/locales/deDE.js +10 -5
- package/legacy/locales/elGR.js +5 -0
- package/legacy/locales/esES.js +5 -0
- package/legacy/locales/faIR.js +5 -0
- package/legacy/locales/fiFI.js +5 -0
- package/legacy/locales/frFR.js +5 -0
- package/legacy/locales/heIL.js +5 -0
- package/legacy/locales/huHU.js +5 -0
- package/legacy/locales/itIT.js +5 -0
- package/legacy/locales/jaJP.js +5 -0
- package/legacy/locales/koKR.js +5 -0
- package/legacy/locales/nlNL.js +5 -0
- package/legacy/locales/plPL.js +5 -0
- package/legacy/locales/ptBR.js +5 -0
- package/legacy/locales/ruRU.js +5 -0
- package/legacy/locales/skSK.js +5 -0
- package/legacy/locales/trTR.js +5 -0
- package/legacy/locales/ukUA.js +5 -0
- package/legacy/locales/viVN.js +5 -0
- package/legacy/locales/zhCN.js +5 -0
- package/legacy/models/events/gridEvents.js +2 -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 +5 -0
- package/locales/bgBG.js +5 -0
- package/locales/csCZ.js +5 -0
- package/locales/daDK.js +5 -0
- package/locales/deDE.js +10 -5
- package/locales/elGR.js +5 -0
- package/locales/esES.js +5 -0
- package/locales/faIR.js +5 -0
- package/locales/fiFI.js +5 -0
- package/locales/frFR.js +5 -0
- package/locales/heIL.js +5 -0
- package/locales/huHU.js +5 -0
- package/locales/itIT.js +5 -0
- package/locales/jaJP.js +5 -0
- package/locales/koKR.js +5 -0
- package/locales/nlNL.js +5 -0
- package/locales/plPL.js +5 -0
- package/locales/ptBR.js +5 -0
- package/locales/ruRU.js +5 -0
- package/locales/skSK.js +5 -0
- package/locales/trTR.js +5 -0
- package/locales/ukUA.js +5 -0
- package/locales/viVN.js +5 -0
- package/locales/zhCN.js +5 -0
- package/models/api/gridCoreApi.d.ts +10 -0
- package/models/api/gridEditingApi.d.ts +23 -4
- package/models/api/gridFilterApi.d.ts +5 -0
- package/models/api/gridFocusApi.d.ts +1 -0
- package/models/api/gridLocaleTextApi.d.ts +4 -0
- package/models/api/gridRowApi.d.ts +28 -0
- package/models/api/index.d.ts +1 -1
- package/models/colDef/gridColDef.d.ts +13 -0
- package/models/events/gridEventLookup.d.ts +273 -3
- package/models/events/gridEvents.d.ts +2 -277
- package/models/events/gridEvents.js +2 -0
- package/models/gridExport.d.ts +29 -2
- package/models/gridFilterModel.d.ts +11 -0
- package/models/gridFilterOperator.d.ts +1 -1
- package/models/gridStateCommunity.d.ts +0 -2
- package/models/index.d.ts +1 -1
- package/models/index.js +4 -3
- package/models/props/DataGridProps.d.ts +56 -28
- package/modern/DataGrid/DataGrid.js +35 -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 +4 -5
- 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 +1 -2
- package/modern/components/cell/GridActionsCell.js +14 -3
- package/modern/components/cell/GridCell.js +8 -8
- package/modern/components/cell/GridEditBooleanCell.js +101 -6
- package/modern/components/cell/GridEditDateCell.js +99 -5
- package/modern/components/cell/GridEditInputCell.js +29 -5
- package/modern/components/cell/GridEditSingleSelectCell.js +28 -5
- package/modern/components/cell/index.js +2 -0
- package/modern/components/columnHeaders/GridColumnHeaderItem.js +15 -16
- package/modern/components/columnSelection/GridCellCheckboxRenderer.js +2 -3
- package/modern/components/columnSelection/GridHeaderCheckbox.js +4 -5
- package/modern/components/containers/GridFooterContainer.js +11 -2
- package/modern/components/containers/GridToolbarContainer.js +12 -2
- 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/toolbar/GridToolbar.js +30 -7
- 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/constants/localeTextConstants.js +5 -0
- 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 +5 -6
- package/modern/hooks/features/columnMenu/useGridColumnMenu.js +3 -4
- package/modern/hooks/features/columns/useGridColumnSpanning.js +1 -2
- package/modern/hooks/features/columns/useGridColumns.js +8 -9
- package/modern/hooks/features/dimensions/useGridDimensions.js +8 -9
- package/modern/hooks/features/editRows/useGridCellEditing.new.js +131 -32
- package/modern/hooks/features/editRows/useGridCellEditing.old.js +20 -21
- package/modern/hooks/features/editRows/useGridEditing.old.js +4 -5
- package/modern/hooks/features/editRows/useGridRowEditing.new.js +120 -42
- 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 +20 -8
- package/modern/hooks/features/focus/useGridFocus.js +29 -33
- package/modern/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +4 -5
- 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 +1 -0
- package/modern/hooks/features/rows/gridRowsUtils.js +23 -1
- package/modern/hooks/features/rows/useGridRows.js +100 -60
- package/modern/hooks/features/rows/useGridRowsPreProcessors.js +2 -0
- package/modern/hooks/features/scroll/useGridScroll.js +6 -1
- package/modern/hooks/features/selection/useGridSelection.js +13 -10
- package/modern/hooks/features/sorting/useGridSorting.js +8 -9
- package/modern/hooks/features/virtualization/useGridVirtualScroller.js +6 -7
- 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 +5 -2
- package/modern/locales/arSD.js +5 -0
- package/modern/locales/bgBG.js +5 -0
- package/modern/locales/csCZ.js +5 -0
- package/modern/locales/daDK.js +5 -0
- package/modern/locales/deDE.js +10 -5
- package/modern/locales/elGR.js +5 -0
- package/modern/locales/esES.js +5 -0
- package/modern/locales/faIR.js +5 -0
- package/modern/locales/fiFI.js +5 -0
- package/modern/locales/frFR.js +5 -0
- package/modern/locales/heIL.js +5 -0
- package/modern/locales/huHU.js +5 -0
- package/modern/locales/itIT.js +5 -0
- package/modern/locales/jaJP.js +5 -0
- package/modern/locales/koKR.js +5 -0
- package/modern/locales/nlNL.js +5 -0
- package/modern/locales/plPL.js +5 -0
- package/modern/locales/ptBR.js +5 -0
- package/modern/locales/ruRU.js +5 -0
- package/modern/locales/skSK.js +5 -0
- package/modern/locales/trTR.js +5 -0
- package/modern/locales/ukUA.js +5 -0
- package/modern/locales/viVN.js +5 -0
- package/modern/locales/zhCN.js +5 -0
- package/modern/models/events/gridEvents.js +2 -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 +35 -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 +4 -6
- 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 +1 -3
- package/node/components/cell/GridActionsCell.js +13 -4
- package/node/components/cell/GridCell.js +7 -7
- package/node/components/cell/GridEditBooleanCell.js +100 -5
- package/node/components/cell/GridEditDateCell.js +98 -4
- package/node/components/cell/GridEditInputCell.js +29 -5
- package/node/components/cell/GridEditSingleSelectCell.js +28 -6
- package/node/components/cell/index.js +26 -0
- package/node/components/columnHeaders/GridColumnHeaderItem.js +15 -17
- package/node/components/columnSelection/GridCellCheckboxRenderer.js +2 -4
- package/node/components/columnSelection/GridHeaderCheckbox.js +4 -6
- package/node/components/containers/GridFooterContainer.js +10 -1
- package/node/components/containers/GridToolbarContainer.js +11 -1
- 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/toolbar/GridToolbar.js +32 -7
- 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/constants/localeTextConstants.js +5 -0
- 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 +5 -7
- package/node/hooks/features/columnMenu/useGridColumnMenu.js +3 -5
- package/node/hooks/features/columns/useGridColumnSpanning.js +1 -3
- package/node/hooks/features/columns/useGridColumns.js +8 -10
- package/node/hooks/features/dimensions/useGridDimensions.js +8 -10
- package/node/hooks/features/editRows/useGridCellEditing.new.js +133 -32
- package/node/hooks/features/editRows/useGridCellEditing.old.js +20 -22
- package/node/hooks/features/editRows/useGridEditing.old.js +4 -6
- package/node/hooks/features/editRows/useGridRowEditing.new.js +122 -43
- 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 +21 -9
- package/node/hooks/features/focus/useGridFocus.js +29 -34
- package/node/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +4 -6
- 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 +3 -1
- package/node/hooks/features/rows/gridRowsUtils.js +29 -1
- package/node/hooks/features/rows/useGridRows.js +101 -60
- package/node/hooks/features/rows/useGridRowsPreProcessors.js +2 -0
- package/node/hooks/features/scroll/useGridScroll.js +6 -1
- package/node/hooks/features/selection/useGridSelection.js +13 -11
- package/node/hooks/features/sorting/useGridSorting.js +8 -10
- package/node/hooks/features/virtualization/useGridVirtualScroller.js +6 -8
- 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 +39 -3
- package/node/locales/arSD.js +5 -0
- package/node/locales/bgBG.js +5 -0
- package/node/locales/csCZ.js +5 -0
- package/node/locales/daDK.js +5 -0
- package/node/locales/deDE.js +10 -5
- package/node/locales/elGR.js +5 -0
- package/node/locales/esES.js +5 -0
- package/node/locales/faIR.js +5 -0
- package/node/locales/fiFI.js +5 -0
- package/node/locales/frFR.js +5 -0
- package/node/locales/heIL.js +5 -0
- package/node/locales/huHU.js +5 -0
- package/node/locales/itIT.js +5 -0
- package/node/locales/jaJP.js +5 -0
- package/node/locales/koKR.js +5 -0
- package/node/locales/nlNL.js +5 -0
- package/node/locales/plPL.js +5 -0
- package/node/locales/ptBR.js +5 -0
- package/node/locales/ruRU.js +5 -0
- package/node/locales/skSK.js +5 -0
- package/node/locales/trTR.js +5 -0
- package/node/locales/ukUA.js +5 -0
- package/node/locales/viVN.js +5 -0
- package/node/locales/zhCN.js +5 -0
- package/node/models/events/gridEvents.js +2 -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 +1 -1
- package/utils/createSelector.d.ts +2 -1
- package/utils/createSelector.js +20 -2
- package/utils/exportAs.d.ts +2 -2
- package/utils/exportAs.js +1 -1
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
|
-
import { GridEvents } from '../../models/events';
|
|
4
3
|
import { useGridApiContext } from '../../hooks/utils/useGridApiContext';
|
|
5
4
|
import { GridMainContainer } from '../containers/GridMainContainer';
|
|
6
5
|
import { GridAutoSizer } from '../GridAutoSizer';
|
|
@@ -46,7 +45,7 @@ function GridBody(props) {
|
|
|
46
45
|
apiRef.current.renderingZoneRef = renderingZoneRef; // TODO remove, nobody should have access to internal parts of the virtualization
|
|
47
46
|
|
|
48
47
|
const handleResize = React.useCallback(size => {
|
|
49
|
-
apiRef.current.publishEvent(
|
|
48
|
+
apiRef.current.publishEvent('resize', size);
|
|
50
49
|
}, [apiRef]);
|
|
51
50
|
return /*#__PURE__*/_jsxs(GridMainContainer, {
|
|
52
51
|
children: [/*#__PURE__*/_jsx(GridOverlays, {}), /*#__PURE__*/_jsx(ColumnHeadersComponent, {
|
|
@@ -7,7 +7,6 @@ import { gridRowCountSelector, gridRowsLoadingSelector } from '../../hooks/featu
|
|
|
7
7
|
import { useGridApiContext } from '../../hooks/utils/useGridApiContext';
|
|
8
8
|
import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
|
|
9
9
|
import { gridDensityHeaderHeightSelector } from '../../hooks/features/density/densitySelector';
|
|
10
|
-
import { GridEvents } from '../../models/events';
|
|
11
10
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
12
11
|
|
|
13
12
|
function GridOverlayWrapper(props) {
|
|
@@ -19,7 +18,7 @@ function GridOverlayWrapper(props) {
|
|
|
19
18
|
setViewportInnerSize(apiRef.current.getRootDimensions()?.viewportInnerSize ?? null);
|
|
20
19
|
}, [apiRef]);
|
|
21
20
|
useEnhancedEffect(() => {
|
|
22
|
-
return apiRef.current.subscribeEvent(
|
|
21
|
+
return apiRef.current.subscribeEvent('viewportInnerSizeChange', handleViewportSizeChange);
|
|
23
22
|
}, [apiRef, handleViewportSizeChange]);
|
|
24
23
|
let height = viewportInnerSize?.height ?? 0;
|
|
25
24
|
|
|
@@ -46,10 +46,16 @@ const GridActionsCell = props => {
|
|
|
46
46
|
}
|
|
47
47
|
}, [hasFocus]);
|
|
48
48
|
React.useEffect(() => {
|
|
49
|
-
if (focusedButtonIndex
|
|
50
|
-
|
|
51
|
-
|
|
49
|
+
if (focusedButtonIndex < 0 || !rootRef.current) {
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
if (focusedButtonIndex >= rootRef.current.children.length) {
|
|
54
|
+
return;
|
|
52
55
|
}
|
|
56
|
+
|
|
57
|
+
const child = rootRef.current.children[focusedButtonIndex];
|
|
58
|
+
child.focus();
|
|
53
59
|
}, [focusedButtonIndex]);
|
|
54
60
|
React.useEffect(() => {
|
|
55
61
|
if (!hasFocus) {
|
|
@@ -75,6 +81,11 @@ const GridActionsCell = props => {
|
|
|
75
81
|
const iconButtons = options.filter(option => !option.props.showInMenu);
|
|
76
82
|
const menuButtons = options.filter(option => option.props.showInMenu);
|
|
77
83
|
const numberOfButtons = iconButtons.length + (menuButtons.length ? 1 : 0);
|
|
84
|
+
React.useEffect(() => {
|
|
85
|
+
if (focusedButtonIndex >= numberOfButtons) {
|
|
86
|
+
setFocusedButtonIndex(numberOfButtons - 1);
|
|
87
|
+
}
|
|
88
|
+
}, [focusedButtonIndex, numberOfButtons]);
|
|
78
89
|
|
|
79
90
|
const showMenu = () => {
|
|
80
91
|
setOpen(true);
|
|
@@ -9,7 +9,7 @@ import clsx from 'clsx';
|
|
|
9
9
|
import { unstable_composeClasses as composeClasses } from '@mui/material';
|
|
10
10
|
import { ownerDocument, capitalize } from '@mui/material/utils';
|
|
11
11
|
import { getDataGridUtilityClass } from '../../constants/gridClasses';
|
|
12
|
-
import {
|
|
12
|
+
import { GridCellModes } from '../../models';
|
|
13
13
|
import { useGridApiContext } from '../../hooks/utils/useGridApiContext';
|
|
14
14
|
import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
|
|
15
15
|
import { gridFocusCellSelector } from '../../hooks/features/focus/gridFocusStateSelector';
|
|
@@ -192,13 +192,13 @@ function GridCell(props) {
|
|
|
192
192
|
"aria-colspan": colSpan,
|
|
193
193
|
style: style,
|
|
194
194
|
tabIndex: (cellMode === 'view' || !isEditable) && !managesOwnFocus ? tabIndex : -1,
|
|
195
|
-
onClick: publish(
|
|
196
|
-
onDoubleClick: publish(
|
|
197
|
-
onMouseDown: publish(
|
|
198
|
-
onMouseUp: publishMouseUp(
|
|
199
|
-
onKeyDown: publish(
|
|
200
|
-
onDragEnter: publish(
|
|
201
|
-
onDragOver: publish(
|
|
195
|
+
onClick: publish('cellClick', onClick),
|
|
196
|
+
onDoubleClick: publish('cellDoubleClick', onDoubleClick),
|
|
197
|
+
onMouseDown: publish('cellMouseDown', onMouseDown),
|
|
198
|
+
onMouseUp: publishMouseUp('cellMouseUp'),
|
|
199
|
+
onKeyDown: publish('cellKeyDown', onKeyDown),
|
|
200
|
+
onDragEnter: publish('cellDragEnter', onDragEnter),
|
|
201
|
+
onDragOver: publish('cellDragOver', onDragOver)
|
|
202
202
|
}, other, {
|
|
203
203
|
onFocus: handleFocus,
|
|
204
204
|
children: renderChildren()
|
|
@@ -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]);
|
|
@@ -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,7 +8,6 @@ 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 { GridEvents } from '../../models/events/gridEvents';
|
|
12
11
|
import { getValueFromValueOptions } from '../panel/filterPanel/filterPanelUtils';
|
|
13
12
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
14
13
|
|
|
@@ -32,7 +31,8 @@ function GridEditSingleSelectCell(props) {
|
|
|
32
31
|
row,
|
|
33
32
|
colDef,
|
|
34
33
|
hasFocus,
|
|
35
|
-
error
|
|
34
|
+
error,
|
|
35
|
+
onValueChange
|
|
36
36
|
} = props,
|
|
37
37
|
other = _objectWithoutPropertiesLoose(props, _excluded);
|
|
38
38
|
|
|
@@ -77,6 +77,11 @@ function GridEditSingleSelectCell(props) {
|
|
|
77
77
|
const target = event.target; // NativeSelect casts the value to a string.
|
|
78
78
|
|
|
79
79
|
const formattedTargetValue = getValueFromValueOptions(target.value, valueOptionsFormatted);
|
|
80
|
+
|
|
81
|
+
if (onValueChange) {
|
|
82
|
+
await onValueChange(event, formattedTargetValue);
|
|
83
|
+
}
|
|
84
|
+
|
|
80
85
|
const isValid = await api.setEditCellValue({
|
|
81
86
|
id,
|
|
82
87
|
field,
|
|
@@ -103,7 +108,7 @@ function GridEditSingleSelectCell(props) {
|
|
|
103
108
|
if (event.key) {
|
|
104
109
|
// TODO v6: remove once we stop ignoring events fired from portals
|
|
105
110
|
const params = api.getCellParams(id, field);
|
|
106
|
-
api.publishEvent(
|
|
111
|
+
api.publishEvent('cellNavigationKeyDown', params, event);
|
|
107
112
|
}
|
|
108
113
|
}
|
|
109
114
|
};
|
|
@@ -212,6 +217,14 @@ process.env.NODE_ENV !== "production" ? GridEditSingleSelectCell.propTypes = {
|
|
|
212
217
|
isProcessingProps: PropTypes.bool,
|
|
213
218
|
isValidating: PropTypes.bool,
|
|
214
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
|
+
|
|
215
228
|
/**
|
|
216
229
|
* The row model of the row that the current cell belongs to.
|
|
217
230
|
*/
|
|
@@ -220,7 +233,17 @@ process.env.NODE_ENV !== "production" ? GridEditSingleSelectCell.propTypes = {
|
|
|
220
233
|
/**
|
|
221
234
|
* The node of the row that the current cell belongs to.
|
|
222
235
|
*/
|
|
223
|
-
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
|
|
224
247
|
} : void 0;
|
|
225
248
|
export { GridEditSingleSelectCell };
|
|
226
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';
|
|
@@ -198,7 +197,7 @@ function GridColumnHeaderItem(props) {
|
|
|
198
197
|
resizable: !rootProps.disableColumnResize && !!column.resizable,
|
|
199
198
|
resizing: isResizing,
|
|
200
199
|
height: headerHeight,
|
|
201
|
-
onMouseDown: publish(
|
|
200
|
+
onMouseDown: publish('columnSeparatorMouseDown'),
|
|
202
201
|
side: separatorSide
|
|
203
202
|
}), /*#__PURE__*/_jsx(GridColumnHeaderMenu, {
|
|
204
203
|
columnMenuId: columnMenuId,
|
|
@@ -5,7 +5,6 @@ import * as React from 'react';
|
|
|
5
5
|
import PropTypes from 'prop-types';
|
|
6
6
|
import { unstable_composeClasses as composeClasses } from '@mui/material';
|
|
7
7
|
import { useForkRef } from '@mui/material/utils';
|
|
8
|
-
import { GridEvents } from '../../models/events';
|
|
9
8
|
import { isNavigationKey, isSpaceKey } from '../../utils/keyboardUtils';
|
|
10
9
|
import { useGridApiContext } from '../../hooks/utils/useGridApiContext';
|
|
11
10
|
import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
|
|
@@ -48,7 +47,7 @@ const GridCellCheckboxForwardRef = /*#__PURE__*/React.forwardRef(function GridCe
|
|
|
48
47
|
value: event.target.checked,
|
|
49
48
|
id
|
|
50
49
|
};
|
|
51
|
-
apiRef.current.publishEvent(
|
|
50
|
+
apiRef.current.publishEvent('rowSelectionCheckboxChange', params, event);
|
|
52
51
|
};
|
|
53
52
|
|
|
54
53
|
React.useLayoutEffect(() => {
|
|
@@ -71,7 +70,7 @@ const GridCellCheckboxForwardRef = /*#__PURE__*/React.forwardRef(function GridCe
|
|
|
71
70
|
}
|
|
72
71
|
|
|
73
72
|
if (isNavigationKey(event.key) && !event.shiftKey) {
|
|
74
|
-
apiRef.current.publishEvent(
|
|
73
|
+
apiRef.current.publishEvent('cellNavigationKeyDown', props, event);
|
|
75
74
|
}
|
|
76
75
|
}, [apiRef, props]);
|
|
77
76
|
const isSelectable = !rootProps.isRowSelectable || rootProps.isRowSelectable(apiRef.current.getRowParams(id));
|