@mui/x-data-grid 5.9.0 → 5.11.1
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 +284 -10
- package/DataGrid/DataGrid.js +35 -1
- package/DataGrid/useDataGridProps.js +2 -1
- package/README.md +5 -4
- 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 +9 -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 +2 -3
- 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/GridRoot.js +25 -5
- 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/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/GridToolbarFilterButton.d.ts +1 -1
- package/components/toolbar/GridToolbarQuickFilter.d.ts +20 -0
- package/components/toolbar/GridToolbarQuickFilter.js +87 -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/defaultGridSlotsComponents.js +4 -2
- package/constants/gridClasses.d.ts +32 -0
- package/constants/gridClasses.js +1 -1
- package/constants/localeTextConstants.js +8 -1
- package/hooks/core/pipeProcessing/gridPipeProcessingApi.d.ts +11 -0
- package/hooks/core/pipeProcessing/useGridPipeProcessing.js +10 -9
- 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 -3
- package/hooks/features/columns/useGridColumnSpanning.js +1 -2
- package/hooks/features/columns/useGridColumns.d.ts +1 -1
- 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 +16 -11
- package/hooks/features/rows/gridRowsUtils.d.ts +14 -1
- package/hooks/features/rows/gridRowsUtils.js +79 -1
- package/hooks/features/rows/useGridRows.js +148 -128
- 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.d.ts +2 -0
- package/hooks/features/virtualization/useGridVirtualScroller.js +14 -5
- 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 +9 -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 +2 -3
- 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/GridRoot.js +23 -5
- 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/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 +102 -0
- package/legacy/components/toolbar/index.js +3 -2
- package/legacy/constants/defaultGridSlotsComponents.js +4 -2
- package/legacy/constants/gridClasses.js +1 -1
- package/legacy/constants/localeTextConstants.js +8 -1
- package/legacy/hooks/core/pipeProcessing/useGridPipeProcessing.js +10 -10
- 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 -3
- 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 +82 -1
- package/legacy/hooks/features/rows/useGridRows.js +164 -131
- 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 +14 -5
- 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 +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 +8 -1
- 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/events/gridEvents.js +8 -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.js +8 -1
- 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/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 +5 -0
- package/models/api/gridRowApi.d.ts +34 -0
- package/models/api/index.d.ts +1 -1
- package/models/colDef/gridColDef.d.ts +13 -0
- package/models/events/gridEventLookup.d.ts +293 -3
- package/models/events/gridEvents.d.ts +8 -251
- package/models/events/gridEvents.js +8 -0
- 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 +10 -0
- 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 +9 -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 +2 -3
- 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/GridRoot.js +25 -3
- 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/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 +85 -0
- package/modern/components/toolbar/index.js +3 -2
- package/modern/constants/defaultGridSlotsComponents.js +4 -2
- package/modern/constants/gridClasses.js +1 -1
- package/modern/constants/localeTextConstants.js +8 -1
- package/modern/hooks/core/pipeProcessing/useGridPipeProcessing.js +10 -9
- 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 -3
- 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 +77 -1
- package/modern/hooks/features/rows/useGridRows.js +148 -128
- 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 +14 -5
- 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 +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 +8 -1
- 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/events/gridEvents.js +8 -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 +9 -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 +2 -4
- 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/GridRoot.js +24 -3
- 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/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 +109 -0
- package/node/components/toolbar/index.js +42 -11
- package/node/constants/defaultGridSlotsComponents.js +3 -1
- package/node/constants/gridClasses.js +1 -1
- package/node/constants/localeTextConstants.js +8 -1
- package/node/hooks/core/pipeProcessing/useGridPipeProcessing.js +10 -8
- 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 -4
- 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 +95 -1
- package/node/hooks/features/rows/useGridRows.js +150 -126
- 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 +14 -6
- 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 +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 +8 -1
- 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/events/gridEvents.js +8 -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 +3 -2
- 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,2 +1,4 @@
|
|
|
1
1
|
import { GridFilterOperator } from '../models/gridFilterOperator';
|
|
2
|
+
import { GridCellParams } from '../models';
|
|
3
|
+
export declare const getGridStringQuickFilterFn: (value: any) => (({ value: columnValue }: GridCellParams) => boolean) | null;
|
|
2
4
|
export declare const getGridStringOperators: () => GridFilterOperator<any, number | string | null, any>[];
|
|
@@ -1,6 +1,18 @@
|
|
|
1
1
|
import { GridFilterInputValue } from '../components/panel/filterPanel/GridFilterInputValue';
|
|
2
2
|
import { escapeRegExp } from '../utils/utils';
|
|
3
3
|
import { GridFilterInputMultipleValue } from '../components/panel/filterPanel/GridFilterInputMultipleValue';
|
|
4
|
+
export const getGridStringQuickFilterFn = value => {
|
|
5
|
+
if (!value) {
|
|
6
|
+
return null;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
const filterRegex = new RegExp(escapeRegExp(value), 'i');
|
|
10
|
+
return ({
|
|
11
|
+
value: columnValue
|
|
12
|
+
}) => {
|
|
13
|
+
return columnValue != null ? filterRegex.test(columnValue.toString()) : false;
|
|
14
|
+
};
|
|
15
|
+
};
|
|
4
16
|
export const getGridStringOperators = () => [{
|
|
5
17
|
value: 'contains',
|
|
6
18
|
getApplyFilterFn: filterItem => {
|
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
declare const GridFooter: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & {
|
|
3
|
+
sx?: import("@mui/system").SxProps<import("@mui/material").Theme> | undefined;
|
|
4
|
+
} & React.RefAttributes<HTMLDivElement>>;
|
|
5
|
+
export { GridFooter };
|
package/components/GridFooter.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import * as React from 'react';
|
|
3
|
+
import PropTypes from 'prop-types';
|
|
3
4
|
import { useGridSelector } from '../hooks/utils/useGridSelector';
|
|
4
5
|
import { gridTopLevelRowCountSelector } from '../hooks/features/rows/gridRowsSelector';
|
|
5
6
|
import { selectedGridRowsCountSelector } from '../hooks/features/selection/gridSelectionSelector';
|
|
@@ -11,7 +12,7 @@ import { GridFooterContainer } from './containers/GridFooterContainer';
|
|
|
11
12
|
import { useGridRootProps } from '../hooks/utils/useGridRootProps';
|
|
12
13
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
13
14
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
14
|
-
|
|
15
|
+
const GridFooter = /*#__PURE__*/React.forwardRef(function GridFooter(props, ref) {
|
|
15
16
|
var _rootProps$components;
|
|
16
17
|
|
|
17
18
|
const apiRef = useGridApiContext();
|
|
@@ -34,4 +35,12 @@ export const GridFooter = /*#__PURE__*/React.forwardRef(function GridFooter(prop
|
|
|
34
35
|
}, props, {
|
|
35
36
|
children: [selectedRowCountElement, rowCountElement, paginationElement]
|
|
36
37
|
}));
|
|
37
|
-
});
|
|
38
|
+
});
|
|
39
|
+
process.env.NODE_ENV !== "production" ? GridFooter.propTypes = {
|
|
40
|
+
// ----------------------------- Warning --------------------------------
|
|
41
|
+
// | These PropTypes are generated from the TypeScript type definitions |
|
|
42
|
+
// | To update them edit the TypeScript types and run "yarn proptypes" |
|
|
43
|
+
// ----------------------------------------------------------------------
|
|
44
|
+
sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])
|
|
45
|
+
} : void 0;
|
|
46
|
+
export { GridFooter };
|
package/components/GridRow.js
CHANGED
|
@@ -9,7 +9,6 @@ import * as React from 'react';
|
|
|
9
9
|
import PropTypes from 'prop-types';
|
|
10
10
|
import clsx from 'clsx';
|
|
11
11
|
import { unstable_composeClasses as composeClasses } from '@mui/material';
|
|
12
|
-
import { GridEvents } from '../models/events';
|
|
13
12
|
import { GridEditModes, GridRowModes, GridCellModes } from '../models/gridEditRowModel';
|
|
14
13
|
import { useGridApiContext } from '../hooks/utils/useGridApiContext';
|
|
15
14
|
import { getDataGridUtilityClass, gridClasses } from '../constants/gridClasses';
|
|
@@ -136,6 +135,11 @@ function GridRow(props) {
|
|
|
136
135
|
|
|
137
136
|
if (field === GRID_DETAIL_PANEL_TOGGLE_FIELD) {
|
|
138
137
|
return;
|
|
138
|
+
} // User reorders a row
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
if (field === '__reorder__') {
|
|
142
|
+
return;
|
|
139
143
|
} // User is editing a cell
|
|
140
144
|
|
|
141
145
|
|
|
@@ -151,7 +155,7 @@ function GridRow(props) {
|
|
|
151
155
|
}
|
|
152
156
|
}
|
|
153
157
|
|
|
154
|
-
publish(
|
|
158
|
+
publish('rowClick', onClick)(event);
|
|
155
159
|
}, [apiRef, onClick, publish, rowId]);
|
|
156
160
|
|
|
157
161
|
const style = _extends({}, styleProp, {
|
|
@@ -282,9 +286,9 @@ function GridRow(props) {
|
|
|
282
286
|
"aria-selected": selected,
|
|
283
287
|
style: style,
|
|
284
288
|
onClick: publishClick,
|
|
285
|
-
onDoubleClick: publish(
|
|
286
|
-
onMouseEnter: publish(
|
|
287
|
-
onMouseLeave: publish(
|
|
289
|
+
onDoubleClick: publish('rowDoubleClick', onDoubleClick),
|
|
290
|
+
onMouseEnter: publish('rowMouseEnter', onMouseEnter),
|
|
291
|
+
onMouseLeave: publish('rowMouseLeave', onMouseLeave)
|
|
288
292
|
}, other, {
|
|
289
293
|
children: [cells, emptyCellWidth > 0 && /*#__PURE__*/_jsx(EmptyCell, {
|
|
290
294
|
width: emptyCellWidth,
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
+
import { SxProps, Theme } from '@mui/material/styles';
|
|
2
3
|
interface RowCountProps {
|
|
3
4
|
rowCount: number;
|
|
4
5
|
visibleRowCount: number;
|
|
5
6
|
}
|
|
6
|
-
declare const GridRowCount: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & RowCountProps &
|
|
7
|
+
declare const GridRowCount: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & RowCountProps & {
|
|
8
|
+
sx?: SxProps<Theme> | undefined;
|
|
9
|
+
} & React.RefAttributes<HTMLDivElement>>;
|
|
7
10
|
export { GridRowCount };
|
|
@@ -65,6 +65,7 @@ process.env.NODE_ENV !== "production" ? GridRowCount.propTypes = {
|
|
|
65
65
|
// | To update them edit the TypeScript types and run "yarn proptypes" |
|
|
66
66
|
// ----------------------------------------------------------------------
|
|
67
67
|
rowCount: PropTypes.number.isRequired,
|
|
68
|
+
sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
|
|
68
69
|
visibleRowCount: PropTypes.number.isRequired
|
|
69
70
|
} : void 0;
|
|
70
71
|
export { GridRowCount };
|
|
@@ -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 { styled } from '@mui/material/styles';
|
|
7
|
-
import { GridEvents } from '../models/events';
|
|
8
7
|
import { useGridApiEventHandler } from '../hooks/utils/useGridApiEventHandler';
|
|
9
8
|
import { useGridApiContext } from '../hooks/utils/useGridApiContext';
|
|
10
9
|
import { getDataGridUtilityClass, gridClasses } from '../constants/gridClasses';
|
|
@@ -100,9 +99,9 @@ function GridScrollAreaRaw(props) {
|
|
|
100
99
|
const toggleDragging = React.useCallback(() => {
|
|
101
100
|
setDragging(prevDragging => !prevDragging);
|
|
102
101
|
}, []);
|
|
103
|
-
useGridApiEventHandler(apiRef,
|
|
104
|
-
useGridApiEventHandler(apiRef,
|
|
105
|
-
useGridApiEventHandler(apiRef,
|
|
102
|
+
useGridApiEventHandler(apiRef, 'rowsScroll', handleScrolling);
|
|
103
|
+
useGridApiEventHandler(apiRef, 'columnHeaderDragStart', toggleDragging);
|
|
104
|
+
useGridApiEventHandler(apiRef, 'columnHeaderDragEnd', toggleDragging);
|
|
106
105
|
return dragging ? /*#__PURE__*/_jsx(GridScrollAreaRawRoot, {
|
|
107
106
|
ref: rootRef,
|
|
108
107
|
className: clsx(classes.root),
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
+
import { SxProps, Theme } from '@mui/material/styles';
|
|
2
3
|
interface SelectedRowCountProps {
|
|
3
4
|
selectedRowCount: number;
|
|
4
5
|
}
|
|
5
|
-
declare const GridSelectedRowCount: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & SelectedRowCountProps &
|
|
6
|
+
declare const GridSelectedRowCount: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & SelectedRowCountProps & {
|
|
7
|
+
sx?: SxProps<Theme> | undefined;
|
|
8
|
+
} & React.RefAttributes<HTMLDivElement>>;
|
|
6
9
|
export { GridSelectedRowCount };
|
|
@@ -66,6 +66,7 @@ process.env.NODE_ENV !== "production" ? GridSelectedRowCount.propTypes = {
|
|
|
66
66
|
// | These PropTypes are generated from the TypeScript type definitions |
|
|
67
67
|
// | To update them edit the TypeScript types and run "yarn proptypes" |
|
|
68
68
|
// ----------------------------------------------------------------------
|
|
69
|
-
selectedRowCount: PropTypes.number.isRequired
|
|
69
|
+
selectedRowCount: PropTypes.number.isRequired,
|
|
70
|
+
sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])
|
|
70
71
|
} : void 0;
|
|
71
72
|
export { GridSelectedRowCount };
|
|
@@ -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) {
|
|
@@ -27,7 +26,7 @@ function GridOverlayWrapper(props) {
|
|
|
27
26
|
setViewportInnerSize((_apiRef$current$getRo3 = (_apiRef$current$getRo4 = apiRef.current.getRootDimensions()) == null ? void 0 : _apiRef$current$getRo4.viewportInnerSize) != null ? _apiRef$current$getRo3 : null);
|
|
28
27
|
}, [apiRef]);
|
|
29
28
|
useEnhancedEffect(() => {
|
|
30
|
-
return apiRef.current.subscribeEvent(
|
|
29
|
+
return apiRef.current.subscribeEvent('viewportInnerSizeChange', handleViewportSizeChange);
|
|
31
30
|
}, [apiRef, handleViewportSizeChange]);
|
|
32
31
|
let height = (_viewportInnerSize$he = viewportInnerSize == null ? void 0 : viewportInnerSize.height) != null ? _viewportInnerSize$he : 0;
|
|
33
32
|
|
|
@@ -72,7 +71,7 @@ export function GridOverlays() {
|
|
|
72
71
|
overlay = /*#__PURE__*/_jsx(rootProps.components.NoResultsOverlay, _extends({}, (_rootProps$components2 = rootProps.componentsProps) == null ? void 0 : _rootProps$components2.noResultsOverlay));
|
|
73
72
|
}
|
|
74
73
|
|
|
75
|
-
if (
|
|
74
|
+
if (loading) {
|
|
76
75
|
var _rootProps$components3;
|
|
77
76
|
|
|
78
77
|
overlay = /*#__PURE__*/_jsx(rootProps.components.LoadingOverlay, _extends({}, (_rootProps$components3 = rootProps.componentsProps) == null ? void 0 : _rootProps$components3.loadingOverlay));
|
|
@@ -46,12 +46,16 @@ const GridActionsCell = props => {
|
|
|
46
46
|
}
|
|
47
47
|
}, [hasFocus]);
|
|
48
48
|
React.useEffect(() => {
|
|
49
|
-
if (focusedButtonIndex
|
|
50
|
-
|
|
49
|
+
if (focusedButtonIndex < 0 || !rootRef.current) {
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
51
52
|
|
|
52
|
-
|
|
53
|
-
|
|
53
|
+
if (focusedButtonIndex >= rootRef.current.children.length) {
|
|
54
|
+
return;
|
|
54
55
|
}
|
|
56
|
+
|
|
57
|
+
const child = rootRef.current.children[focusedButtonIndex];
|
|
58
|
+
child.focus();
|
|
55
59
|
}, [focusedButtonIndex]);
|
|
56
60
|
React.useEffect(() => {
|
|
57
61
|
if (!hasFocus) {
|
|
@@ -77,6 +81,11 @@ const GridActionsCell = props => {
|
|
|
77
81
|
const iconButtons = options.filter(option => !option.props.showInMenu);
|
|
78
82
|
const menuButtons = options.filter(option => option.props.showInMenu);
|
|
79
83
|
const numberOfButtons = iconButtons.length + (menuButtons.length ? 1 : 0);
|
|
84
|
+
React.useEffect(() => {
|
|
85
|
+
if (focusedButtonIndex >= numberOfButtons) {
|
|
86
|
+
setFocusedButtonIndex(numberOfButtons - 1);
|
|
87
|
+
}
|
|
88
|
+
}, [focusedButtonIndex, numberOfButtons]);
|
|
80
89
|
|
|
81
90
|
const showMenu = () => {
|
|
82
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';
|
|
@@ -194,13 +194,13 @@ function GridCell(props) {
|
|
|
194
194
|
"aria-colspan": colSpan,
|
|
195
195
|
style: style,
|
|
196
196
|
tabIndex: (cellMode === 'view' || !isEditable) && !managesOwnFocus ? tabIndex : -1,
|
|
197
|
-
onClick: publish(
|
|
198
|
-
onDoubleClick: publish(
|
|
199
|
-
onMouseDown: publish(
|
|
200
|
-
onMouseUp: publishMouseUp(
|
|
201
|
-
onKeyDown: publish(
|
|
202
|
-
onDragEnter: publish(
|
|
203
|
-
onDragOver: publish(
|
|
197
|
+
onClick: publish('cellClick', onClick),
|
|
198
|
+
onDoubleClick: publish('cellDoubleClick', onDoubleClick),
|
|
199
|
+
onMouseDown: publish('cellMouseDown', onMouseDown),
|
|
200
|
+
onMouseUp: publishMouseUp('cellMouseUp'),
|
|
201
|
+
onKeyDown: publish('cellKeyDown', onKeyDown),
|
|
202
|
+
onDragEnter: publish('cellDragEnter', onDragEnter),
|
|
203
|
+
onDragOver: publish('cellDragOver', onDragOver)
|
|
204
204
|
}, other, {
|
|
205
205
|
onFocus: handleFocus,
|
|
206
206
|
children: renderChildren()
|
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { GridRenderEditCellParams } from '../../models/params/gridCellParams';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
export interface GridEditBooleanCellProps extends GridRenderEditCellParams, Omit<React.DetailedHTMLProps<React.LabelHTMLAttributes<HTMLLabelElement>, HTMLLabelElement>, 'id' | 'tabIndex'> {
|
|
4
|
+
/**
|
|
5
|
+
* Callback called when the value is changed by the user.
|
|
6
|
+
* @param {React.ChangeEvent<HTMLInputElement>} event The event source of the callback.
|
|
7
|
+
* @param {boolean} newValue The value that is going to be passed to `apiRef.current.setEditCellValue`.
|
|
8
|
+
* @returns {Promise<void> | void} A promise to be awaited before calling `apiRef.current.setEditCellValue`
|
|
9
|
+
*/
|
|
10
|
+
onValueChange?: (event: React.ChangeEvent<HTMLInputElement>, newValue: boolean) => Promise<void> | void;
|
|
11
|
+
}
|
|
12
|
+
declare function GridEditBooleanCell(props: GridEditBooleanCellProps): JSX.Element;
|
|
13
|
+
declare namespace GridEditBooleanCell {
|
|
14
|
+
var propTypes: any;
|
|
15
|
+
}
|
|
16
|
+
export { GridEditBooleanCell };
|
|
17
|
+
export declare const renderEditBooleanCell: (params: GridEditBooleanCellProps) => JSX.Element;
|
|
@@ -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,7 +20,7 @@ const useUtilityClasses = ownerState => {
|
|
|
19
20
|
return composeClasses(slots, getDataGridUtilityClass, classes);
|
|
20
21
|
};
|
|
21
22
|
|
|
22
|
-
|
|
23
|
+
function GridEditBooleanCell(props) {
|
|
23
24
|
var _rootProps$components;
|
|
24
25
|
|
|
25
26
|
const {
|
|
@@ -28,7 +29,8 @@ export function GridEditBooleanCell(props) {
|
|
|
28
29
|
api,
|
|
29
30
|
field,
|
|
30
31
|
className,
|
|
31
|
-
hasFocus
|
|
32
|
+
hasFocus,
|
|
33
|
+
onValueChange
|
|
32
34
|
} = props,
|
|
33
35
|
other = _objectWithoutPropertiesLoose(props, _excluded);
|
|
34
36
|
|
|
@@ -40,15 +42,20 @@ export function GridEditBooleanCell(props) {
|
|
|
40
42
|
classes: rootProps.classes
|
|
41
43
|
};
|
|
42
44
|
const classes = useUtilityClasses(ownerState);
|
|
43
|
-
const handleChange = React.useCallback(event => {
|
|
45
|
+
const handleChange = React.useCallback(async event => {
|
|
44
46
|
const newValue = event.target.checked;
|
|
47
|
+
|
|
48
|
+
if (onValueChange) {
|
|
49
|
+
await onValueChange(event, newValue);
|
|
50
|
+
}
|
|
51
|
+
|
|
45
52
|
setValueState(newValue);
|
|
46
|
-
api.setEditCellValue({
|
|
53
|
+
await api.setEditCellValue({
|
|
47
54
|
id: idProp,
|
|
48
55
|
field,
|
|
49
56
|
value: newValue
|
|
50
57
|
}, event);
|
|
51
|
-
}, [api, field, idProp]);
|
|
58
|
+
}, [api, field, idProp, onValueChange]);
|
|
52
59
|
React.useEffect(() => {
|
|
53
60
|
setValueState(value);
|
|
54
61
|
}, [value]);
|
|
@@ -70,4 +77,92 @@ export function GridEditBooleanCell(props) {
|
|
|
70
77
|
}, (_rootProps$components = rootProps.componentsProps) == null ? void 0 : _rootProps$components.baseCheckbox))
|
|
71
78
|
}));
|
|
72
79
|
}
|
|
80
|
+
|
|
81
|
+
process.env.NODE_ENV !== "production" ? GridEditBooleanCell.propTypes = {
|
|
82
|
+
// ----------------------------- Warning --------------------------------
|
|
83
|
+
// | These PropTypes are generated from the TypeScript type definitions |
|
|
84
|
+
// | To update them edit the TypeScript types and run "yarn proptypes" |
|
|
85
|
+
// ----------------------------------------------------------------------
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* GridApi that let you manipulate the grid.
|
|
89
|
+
* @deprecated Use the `apiRef` returned by `useGridApiContext` or `useGridApiRef` (only available in `@mui/x-data-grid-pro`)
|
|
90
|
+
*/
|
|
91
|
+
api: PropTypes.any.isRequired,
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* The mode of the cell.
|
|
95
|
+
*/
|
|
96
|
+
cellMode: PropTypes.oneOf(['edit', 'view']).isRequired,
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* The column of the row that the current cell belongs to.
|
|
100
|
+
*/
|
|
101
|
+
colDef: PropTypes.object.isRequired,
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* The column field of the cell that triggered the event.
|
|
105
|
+
*/
|
|
106
|
+
field: PropTypes.string.isRequired,
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* The cell value formatted with the column valueFormatter.
|
|
110
|
+
*/
|
|
111
|
+
formattedValue: PropTypes.any,
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* Get the cell value of a row and field.
|
|
115
|
+
* @param {GridRowId} id The row id.
|
|
116
|
+
* @param {string} field The field.
|
|
117
|
+
* @returns {any} The cell value.
|
|
118
|
+
* @deprecated Use `params.row` to directly access the fields you want instead.
|
|
119
|
+
*/
|
|
120
|
+
getValue: PropTypes.func.isRequired,
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* If true, the cell is the active element.
|
|
124
|
+
*/
|
|
125
|
+
hasFocus: PropTypes.bool.isRequired,
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* The grid row id.
|
|
129
|
+
*/
|
|
130
|
+
id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* If true, the cell is editable.
|
|
134
|
+
*/
|
|
135
|
+
isEditable: PropTypes.bool,
|
|
136
|
+
isProcessingProps: PropTypes.bool,
|
|
137
|
+
isValidating: PropTypes.bool,
|
|
138
|
+
|
|
139
|
+
/**
|
|
140
|
+
* Callback called when the value is changed by the user.
|
|
141
|
+
* @param {React.ChangeEvent<HTMLInputElement>} event The event source of the callback.
|
|
142
|
+
* @param {boolean} newValue The value that is going to be passed to `apiRef.current.setEditCellValue`.
|
|
143
|
+
* @returns {Promise<void> | void} A promise to be awaited before calling `apiRef.current.setEditCellValue`
|
|
144
|
+
*/
|
|
145
|
+
onValueChange: PropTypes.func,
|
|
146
|
+
|
|
147
|
+
/**
|
|
148
|
+
* The row model of the row that the current cell belongs to.
|
|
149
|
+
*/
|
|
150
|
+
row: PropTypes.object.isRequired,
|
|
151
|
+
|
|
152
|
+
/**
|
|
153
|
+
* The node of the row that the current cell belongs to.
|
|
154
|
+
*/
|
|
155
|
+
rowNode: PropTypes.object.isRequired,
|
|
156
|
+
|
|
157
|
+
/**
|
|
158
|
+
* the tabIndex value.
|
|
159
|
+
*/
|
|
160
|
+
tabIndex: PropTypes.oneOf([-1, 0]).isRequired,
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* The cell value, but if the column has valueGetter, use getValue.
|
|
164
|
+
*/
|
|
165
|
+
value: PropTypes.any
|
|
166
|
+
} : void 0;
|
|
167
|
+
export { GridEditBooleanCell };
|
|
73
168
|
export const renderEditBooleanCell = params => /*#__PURE__*/_jsx(GridEditBooleanCell, _extends({}, params));
|
|
@@ -1,6 +1,18 @@
|
|
|
1
|
-
|
|
1
|
+
import * as React from 'react';
|
|
2
2
|
import { InputBaseProps } from '@mui/material/InputBase';
|
|
3
3
|
import { GridRenderEditCellParams } from '../../models/params/gridCellParams';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
export interface GridEditDateCellProps extends GridRenderEditCellParams, Omit<InputBaseProps, 'id' | 'value' | 'tabIndex'> {
|
|
5
|
+
/**
|
|
6
|
+
* Callback called when the value is changed by the user.
|
|
7
|
+
* @param {React.ChangeEvent<HTMLInputElement>} event The event source of the callback.
|
|
8
|
+
* @param {Date | null} newValue The value that is going to be passed to `apiRef.current.setEditCellValue`.
|
|
9
|
+
* @returns {Promise<void> | void} A promise to be awaited before calling `apiRef.current.setEditCellValue`
|
|
10
|
+
*/
|
|
11
|
+
onValueChange?: (event: React.ChangeEvent<HTMLInputElement>, newValue: Date | null) => Promise<void> | void;
|
|
12
|
+
}
|
|
13
|
+
declare function GridEditDateCell(props: GridEditDateCellProps): JSX.Element;
|
|
14
|
+
declare namespace GridEditDateCell {
|
|
15
|
+
var propTypes: any;
|
|
16
|
+
}
|
|
17
|
+
export { GridEditDateCell };
|
|
18
|
+
export declare const renderEditDateCell: (params: GridRenderEditCellParams) => JSX.Element;
|
|
@@ -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
|
var _valueTransformed$par, _state$parsed;
|
|
@@ -121,4 +127,92 @@ export function GridEditDateCell(props) {
|
|
|
121
127
|
onChange: handleChange
|
|
122
128
|
}, other));
|
|
123
129
|
}
|
|
130
|
+
|
|
131
|
+
process.env.NODE_ENV !== "production" ? GridEditDateCell.propTypes = {
|
|
132
|
+
// ----------------------------- Warning --------------------------------
|
|
133
|
+
// | These PropTypes are generated from the TypeScript type definitions |
|
|
134
|
+
// | To update them edit the TypeScript types and run "yarn proptypes" |
|
|
135
|
+
// ----------------------------------------------------------------------
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
* GridApi that let you manipulate the grid.
|
|
139
|
+
* @deprecated Use the `apiRef` returned by `useGridApiContext` or `useGridApiRef` (only available in `@mui/x-data-grid-pro`)
|
|
140
|
+
*/
|
|
141
|
+
api: PropTypes.any.isRequired,
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* The mode of the cell.
|
|
145
|
+
*/
|
|
146
|
+
cellMode: PropTypes.oneOf(['edit', 'view']).isRequired,
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* The column of the row that the current cell belongs to.
|
|
150
|
+
*/
|
|
151
|
+
colDef: PropTypes.object.isRequired,
|
|
152
|
+
|
|
153
|
+
/**
|
|
154
|
+
* The column field of the cell that triggered the event.
|
|
155
|
+
*/
|
|
156
|
+
field: PropTypes.string.isRequired,
|
|
157
|
+
|
|
158
|
+
/**
|
|
159
|
+
* The cell value formatted with the column valueFormatter.
|
|
160
|
+
*/
|
|
161
|
+
formattedValue: PropTypes.any,
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
* Get the cell value of a row and field.
|
|
165
|
+
* @param {GridRowId} id The row id.
|
|
166
|
+
* @param {string} field The field.
|
|
167
|
+
* @returns {any} The cell value.
|
|
168
|
+
* @deprecated Use `params.row` to directly access the fields you want instead.
|
|
169
|
+
*/
|
|
170
|
+
getValue: PropTypes.func.isRequired,
|
|
171
|
+
|
|
172
|
+
/**
|
|
173
|
+
* If true, the cell is the active element.
|
|
174
|
+
*/
|
|
175
|
+
hasFocus: PropTypes.bool.isRequired,
|
|
176
|
+
|
|
177
|
+
/**
|
|
178
|
+
* The grid row id.
|
|
179
|
+
*/
|
|
180
|
+
id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
|
|
181
|
+
|
|
182
|
+
/**
|
|
183
|
+
* If true, the cell is editable.
|
|
184
|
+
*/
|
|
185
|
+
isEditable: PropTypes.bool,
|
|
186
|
+
isProcessingProps: PropTypes.bool,
|
|
187
|
+
isValidating: PropTypes.bool,
|
|
188
|
+
|
|
189
|
+
/**
|
|
190
|
+
* Callback called when the value is changed by the user.
|
|
191
|
+
* @param {React.ChangeEvent<HTMLInputElement>} event The event source of the callback.
|
|
192
|
+
* @param {Date | null} newValue The value that is going to be passed to `apiRef.current.setEditCellValue`.
|
|
193
|
+
* @returns {Promise<void> | void} A promise to be awaited before calling `apiRef.current.setEditCellValue`
|
|
194
|
+
*/
|
|
195
|
+
onValueChange: PropTypes.func,
|
|
196
|
+
|
|
197
|
+
/**
|
|
198
|
+
* The row model of the row that the current cell belongs to.
|
|
199
|
+
*/
|
|
200
|
+
row: PropTypes.object.isRequired,
|
|
201
|
+
|
|
202
|
+
/**
|
|
203
|
+
* The node of the row that the current cell belongs to.
|
|
204
|
+
*/
|
|
205
|
+
rowNode: PropTypes.object.isRequired,
|
|
206
|
+
|
|
207
|
+
/**
|
|
208
|
+
* the tabIndex value.
|
|
209
|
+
*/
|
|
210
|
+
tabIndex: PropTypes.oneOf([-1, 0]).isRequired,
|
|
211
|
+
|
|
212
|
+
/**
|
|
213
|
+
* The cell value, but if the column has valueGetter, use getValue.
|
|
214
|
+
*/
|
|
215
|
+
value: PropTypes.any
|
|
216
|
+
} : void 0;
|
|
217
|
+
export { GridEditDateCell };
|
|
124
218
|
export const renderEditDateCell = params => /*#__PURE__*/_jsx(GridEditDateCell, _extends({}, params));
|
|
@@ -1,13 +1,19 @@
|
|
|
1
|
-
|
|
1
|
+
import * as React from 'react';
|
|
2
2
|
import { InputBaseProps } from '@mui/material/InputBase';
|
|
3
3
|
import { GridRenderEditCellParams } from '../../models/params/gridCellParams';
|
|
4
|
-
|
|
5
|
-
interface GridEditInputCellProps {
|
|
4
|
+
export interface GridEditInputCellProps extends GridRenderEditCellParams, Omit<InputBaseProps, 'id' | 'value' | 'tabIndex'> {
|
|
6
5
|
debounceMs?: number;
|
|
6
|
+
/**
|
|
7
|
+
* Callback called when the value is changed by the user.
|
|
8
|
+
* @param {React.ChangeEvent<HTMLInputElement>} event The event source of the callback.
|
|
9
|
+
* @param {Date | null} newValue The value that is going to be passed to `apiRef.current.setEditCellValue`.
|
|
10
|
+
* @returns {Promise<void> | void} A promise to be awaited before calling `apiRef.current.setEditCellValue`
|
|
11
|
+
*/
|
|
12
|
+
onValueChange?: (event: React.ChangeEvent<HTMLInputElement>, newValue: string) => Promise<void> | void;
|
|
7
13
|
}
|
|
8
|
-
declare function GridEditInputCell(props: GridEditInputCellProps
|
|
14
|
+
declare function GridEditInputCell(props: GridEditInputCellProps): JSX.Element;
|
|
9
15
|
declare namespace GridEditInputCell {
|
|
10
16
|
var propTypes: any;
|
|
11
17
|
}
|
|
12
18
|
export { GridEditInputCell };
|
|
13
|
-
export declare const renderEditInputCell:
|
|
19
|
+
export declare const renderEditInputCell: (params: GridEditInputCellProps) => JSX.Element;
|