@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,24 +1,18 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
|
-
const _excluded = ["csvOptions", "printOptions"];
|
|
3
|
+
const _excluded = ["csvOptions", "printOptions", "excelOptions"];
|
|
4
4
|
import * as React from 'react';
|
|
5
5
|
import PropTypes from 'prop-types';
|
|
6
6
|
import MenuItem from '@mui/material/MenuItem';
|
|
7
7
|
import { useGridApiContext } from '../../hooks/utils/useGridApiContext';
|
|
8
8
|
import { GridToolbarExportContainer } from './GridToolbarExportContainer';
|
|
9
9
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
10
|
-
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
11
10
|
export const GridCsvExportMenuItem = props => {
|
|
12
11
|
const apiRef = useGridApiContext();
|
|
13
12
|
const {
|
|
14
13
|
hideMenu,
|
|
15
14
|
options
|
|
16
15
|
} = props;
|
|
17
|
-
|
|
18
|
-
if (options != null && options.disableToolbarButton) {
|
|
19
|
-
return null;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
16
|
return /*#__PURE__*/_jsx(MenuItem, {
|
|
23
17
|
onClick: () => {
|
|
24
18
|
apiRef.current.exportDataAsCsv(options);
|
|
@@ -33,11 +27,6 @@ export const GridPrintExportMenuItem = props => {
|
|
|
33
27
|
hideMenu,
|
|
34
28
|
options
|
|
35
29
|
} = props;
|
|
36
|
-
|
|
37
|
-
if (options != null && options.disableToolbarButton) {
|
|
38
|
-
return null;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
30
|
return /*#__PURE__*/_jsx(MenuItem, {
|
|
42
31
|
onClick: () => {
|
|
43
32
|
apiRef.current.exportDataAsPrint(options);
|
|
@@ -49,21 +38,27 @@ export const GridPrintExportMenuItem = props => {
|
|
|
49
38
|
const GridToolbarExport = /*#__PURE__*/React.forwardRef(function GridToolbarExport(props, ref) {
|
|
50
39
|
const {
|
|
51
40
|
csvOptions = {},
|
|
52
|
-
printOptions = {}
|
|
41
|
+
printOptions = {},
|
|
42
|
+
excelOptions
|
|
53
43
|
} = props,
|
|
54
44
|
other = _objectWithoutPropertiesLoose(props, _excluded);
|
|
55
45
|
|
|
56
|
-
|
|
46
|
+
const apiRef = useGridApiContext();
|
|
47
|
+
const preProcessedButtons = apiRef.current.unstable_applyPipeProcessors('exportMenu', [], {
|
|
48
|
+
excelOptions,
|
|
49
|
+
csvOptions,
|
|
50
|
+
printOptions
|
|
51
|
+
}).sort((a, b) => a.componentName > b.componentName ? 1 : -1);
|
|
52
|
+
|
|
53
|
+
if (preProcessedButtons.length === 0) {
|
|
57
54
|
return null;
|
|
58
55
|
}
|
|
59
56
|
|
|
60
|
-
return /*#__PURE__*/
|
|
57
|
+
return /*#__PURE__*/_jsx(GridToolbarExportContainer, _extends({}, other, {
|
|
61
58
|
ref: ref,
|
|
62
|
-
children:
|
|
63
|
-
|
|
64
|
-
})
|
|
65
|
-
options: printOptions
|
|
66
|
-
})]
|
|
59
|
+
children: preProcessedButtons.map((button, index) => /*#__PURE__*/React.cloneElement(button.component, {
|
|
60
|
+
key: index
|
|
61
|
+
}))
|
|
67
62
|
}));
|
|
68
63
|
});
|
|
69
64
|
process.env.NODE_ENV !== "production" ? GridToolbarExport.propTypes = {
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { TextFieldProps } from '@mui/material/TextField';
|
|
3
|
+
export declare type GridToolbarQuickFilterProps = TextFieldProps & {
|
|
4
|
+
/**
|
|
5
|
+
* Function responsible for parsing text input in an array of independent values for quick filtering.
|
|
6
|
+
* @param {string} input The value entered by the user
|
|
7
|
+
* @returns {any[]} The array of value on which quick filter is applied
|
|
8
|
+
*/
|
|
9
|
+
quickFilterParser?: (input: string) => any[];
|
|
10
|
+
/**
|
|
11
|
+
* The debounce time in milliseconds.
|
|
12
|
+
* @default 500
|
|
13
|
+
*/
|
|
14
|
+
debounceMs?: number;
|
|
15
|
+
};
|
|
16
|
+
declare function GridToolbarQuickFilter(props: GridToolbarQuickFilterProps): JSX.Element;
|
|
17
|
+
declare namespace GridToolbarQuickFilter {
|
|
18
|
+
var propTypes: any;
|
|
19
|
+
}
|
|
20
|
+
export { GridToolbarQuickFilter };
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
|
+
const _excluded = ["quickFilterParser", "debounceMs"];
|
|
4
|
+
import * as React from 'react';
|
|
5
|
+
import PropTypes from 'prop-types';
|
|
6
|
+
import TextField from '@mui/material/TextField';
|
|
7
|
+
import SearchIcon from '@mui/icons-material/Search';
|
|
8
|
+
import { styled } from '@mui/material/styles';
|
|
9
|
+
import { debounce } from '@mui/material/utils';
|
|
10
|
+
import { useGridApiContext } from '../../hooks/utils/useGridApiContext';
|
|
11
|
+
import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
|
|
12
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
13
|
+
const GridToolbarQuickFilterRoot = styled(TextField, {
|
|
14
|
+
name: 'MuiDataGrid',
|
|
15
|
+
slot: 'ToolbarQuickFilter',
|
|
16
|
+
overridesResolver: (props, styles) => styles.toolbarQuickFilter
|
|
17
|
+
})(({
|
|
18
|
+
theme
|
|
19
|
+
}) => ({
|
|
20
|
+
width: 'auto',
|
|
21
|
+
paddingBottom: theme.spacing(0.5),
|
|
22
|
+
'& .MuiSvgIcon-root': {
|
|
23
|
+
marginRight: theme.spacing(0.5)
|
|
24
|
+
},
|
|
25
|
+
'& .MuiInput-underline:before': {
|
|
26
|
+
borderBottom: `1px solid ${theme.palette.divider}`
|
|
27
|
+
}
|
|
28
|
+
}));
|
|
29
|
+
|
|
30
|
+
const defaultSearchValueParser = searchText => searchText.split(' ').filter(word => word !== '');
|
|
31
|
+
|
|
32
|
+
function GridToolbarQuickFilter(props) {
|
|
33
|
+
var _rootProps$components;
|
|
34
|
+
|
|
35
|
+
const {
|
|
36
|
+
quickFilterParser = defaultSearchValueParser,
|
|
37
|
+
debounceMs = 500
|
|
38
|
+
} = props,
|
|
39
|
+
other = _objectWithoutPropertiesLoose(props, _excluded);
|
|
40
|
+
|
|
41
|
+
const apiRef = useGridApiContext();
|
|
42
|
+
const rootProps = useGridRootProps();
|
|
43
|
+
const [searchValue, setSearchValue] = React.useState('');
|
|
44
|
+
const updateSearchValue = React.useCallback(newSearchValue => {
|
|
45
|
+
apiRef.current.setQuickFilterValues(quickFilterParser(newSearchValue));
|
|
46
|
+
}, [apiRef, quickFilterParser]);
|
|
47
|
+
const debouncedUpdateSearchValue = React.useMemo(() => debounce(updateSearchValue, debounceMs), [updateSearchValue, debounceMs]);
|
|
48
|
+
const handleSearchValueChange = React.useCallback(event => {
|
|
49
|
+
const newSearchValue = event.target.value;
|
|
50
|
+
setSearchValue(newSearchValue);
|
|
51
|
+
debouncedUpdateSearchValue(newSearchValue);
|
|
52
|
+
}, [debouncedUpdateSearchValue]);
|
|
53
|
+
return /*#__PURE__*/_jsx(GridToolbarQuickFilterRoot, _extends({
|
|
54
|
+
as: rootProps.components.BaseTextField,
|
|
55
|
+
variant: "standard",
|
|
56
|
+
value: searchValue,
|
|
57
|
+
onChange: handleSearchValueChange,
|
|
58
|
+
placeholder: apiRef.current.getLocaleText('toolbarQuickFilterPlaceholder'),
|
|
59
|
+
"aria-label": apiRef.current.getLocaleText('toolbarQuickFilterLabel'),
|
|
60
|
+
type: "search",
|
|
61
|
+
InputProps: {
|
|
62
|
+
startAdornment: /*#__PURE__*/_jsx(SearchIcon, {
|
|
63
|
+
fontSize: "small"
|
|
64
|
+
})
|
|
65
|
+
}
|
|
66
|
+
}, other, (_rootProps$components = rootProps.componentsProps) == null ? void 0 : _rootProps$components.baseTextField));
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
process.env.NODE_ENV !== "production" ? GridToolbarQuickFilter.propTypes = {
|
|
70
|
+
// ----------------------------- Warning --------------------------------
|
|
71
|
+
// | These PropTypes are generated from the TypeScript type definitions |
|
|
72
|
+
// | To update them edit the TypeScript types and run "yarn proptypes" |
|
|
73
|
+
// ----------------------------------------------------------------------
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* The debounce time in milliseconds.
|
|
77
|
+
* @default 500
|
|
78
|
+
*/
|
|
79
|
+
debounceMs: PropTypes.number,
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Function responsible for parsing text input in an array of independent values for quick filtering.
|
|
83
|
+
* @param {string} input The value entered by the user
|
|
84
|
+
* @returns {any[]} The array of value on which quick filter is applied
|
|
85
|
+
*/
|
|
86
|
+
quickFilterParser: PropTypes.func
|
|
87
|
+
} : void 0;
|
|
88
|
+
export { GridToolbarQuickFilter };
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
export * from './GridToolbar';
|
|
2
2
|
export * from './GridToolbarColumnsButton';
|
|
3
3
|
export * from './GridToolbarDensitySelector';
|
|
4
|
-
export
|
|
4
|
+
export type { GridExportDisplayOptions, GridExportMenuItemProps, GridCsvExportMenuItemProps, GridPrintExportMenuItemProps, } from './GridToolbarExport';
|
|
5
|
+
export { GridCsvExportMenuItem, GridPrintExportMenuItem, GridToolbarExport, } from './GridToolbarExport';
|
|
5
6
|
export * from './GridToolbarFilterButton';
|
|
6
7
|
export * from './GridToolbarExportContainer';
|
|
8
|
+
export * from './GridToolbarQuickFilter';
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export * from './GridToolbar';
|
|
2
2
|
export * from './GridToolbarColumnsButton';
|
|
3
3
|
export * from './GridToolbarDensitySelector';
|
|
4
|
-
export
|
|
4
|
+
export { GridCsvExportMenuItem, GridPrintExportMenuItem, GridToolbarExport } from './GridToolbarExport';
|
|
5
5
|
export * from './GridToolbarFilterButton';
|
|
6
|
-
export * from './GridToolbarExportContainer';
|
|
6
|
+
export * from './GridToolbarExportContainer';
|
|
7
|
+
export * from './GridToolbarQuickFilter';
|
|
@@ -1,3 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
|
|
2
|
+
import { SxProps, Theme } from '@mui/material/styles';
|
|
3
|
+
declare const GridVirtualScroller: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & {
|
|
4
|
+
sx?: SxProps<Theme> | undefined;
|
|
5
|
+
} & React.RefAttributes<HTMLDivElement>>;
|
|
3
6
|
export { GridVirtualScroller };
|
|
@@ -1,3 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
|
|
2
|
+
import { SxProps, Theme } from '@mui/material/styles';
|
|
3
|
+
declare const GridVirtualScrollerContent: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & {
|
|
4
|
+
sx?: SxProps<Theme> | undefined;
|
|
5
|
+
} & React.RefAttributes<HTMLDivElement>>;
|
|
3
6
|
export { GridVirtualScrollerContent };
|
|
@@ -1,3 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
|
|
2
|
+
import { SxProps, Theme } from '@mui/material/styles';
|
|
3
|
+
declare const GridVirtualScrollerRenderZone: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & {
|
|
4
|
+
sx?: SxProps<Theme> | undefined;
|
|
5
|
+
} & React.RefAttributes<HTMLDivElement>>;
|
|
3
6
|
export { GridVirtualScrollerRenderZone };
|
|
@@ -18,11 +18,16 @@ export const GRID_DEFAULT_LOCALE_TEXT = {
|
|
|
18
18
|
toolbarFiltersTooltipHide: 'Hide filters',
|
|
19
19
|
toolbarFiltersTooltipShow: 'Show filters',
|
|
20
20
|
toolbarFiltersTooltipActive: count => count !== 1 ? `${count} active filters` : `${count} active filter`,
|
|
21
|
+
// Quick filter toolbar field
|
|
22
|
+
toolbarQuickFilterPlaceholder: 'Search...',
|
|
23
|
+
toolbarQuickFilterLabel: 'Search',
|
|
24
|
+
toolbarQuickFilterDeleteIconLabel: 'Clear',
|
|
21
25
|
// Export selector toolbar button text
|
|
22
26
|
toolbarExport: 'Export',
|
|
23
27
|
toolbarExportLabel: 'Export',
|
|
24
28
|
toolbarExportCSV: 'Download as CSV',
|
|
25
29
|
toolbarExportPrint: 'Print',
|
|
30
|
+
toolbarExportExcel: 'Download as Excel',
|
|
26
31
|
// Columns panel text
|
|
27
32
|
columnsPanelTextFieldLabel: 'Find column',
|
|
28
33
|
columnsPanelTextFieldPlaceholder: 'Column title',
|
|
@@ -17,6 +17,13 @@ export interface GridPipeProcessingLookup {
|
|
|
17
17
|
hydrateColumns: {
|
|
18
18
|
value: GridHydrateColumnsValue;
|
|
19
19
|
};
|
|
20
|
+
exportMenu: {
|
|
21
|
+
value: {
|
|
22
|
+
component: React.ReactElement;
|
|
23
|
+
componentName: string;
|
|
24
|
+
}[];
|
|
25
|
+
context: any;
|
|
26
|
+
};
|
|
20
27
|
preferencePanel: {
|
|
21
28
|
value: React.ReactNode;
|
|
22
29
|
context: GridPreferencePanelsValue;
|
|
@@ -20,7 +20,7 @@ export declare const GRID_STRATEGIES_PROCESSORS: {
|
|
|
20
20
|
* The plugin containing the custom logic must use:
|
|
21
21
|
*
|
|
22
22
|
* - `useGridRegisterStrategyProcessor` to register their processor.
|
|
23
|
-
* When the processor of the active strategy changes, it will fire `
|
|
23
|
+
* When the processor of the active strategy changes, it will fire `"activeStrategyProcessorChange"` to re-apply the processor.
|
|
24
24
|
*
|
|
25
25
|
* - `apiRef.current.unstable_setStrategyAvailability` to tell if their strategy can be used.
|
|
26
26
|
*
|
|
@@ -30,12 +30,12 @@ export declare const GRID_STRATEGIES_PROCESSORS: {
|
|
|
30
30
|
*
|
|
31
31
|
* - `apiRef.current.unstable_applyStrategyProcessor` to run the processor of the active strategy for a given processor name.
|
|
32
32
|
*
|
|
33
|
-
* -
|
|
33
|
+
* - the "strategyAvailabilityChange" event to update something when the active strategy changes.
|
|
34
34
|
* Warning: Be careful not to apply the processor several times.
|
|
35
|
-
* For instance
|
|
35
|
+
* For instance "rowsSet" is fired by `useGridRows` whenever the active strategy changes.
|
|
36
36
|
* So listening to both would most likely run your logic twice.
|
|
37
37
|
*
|
|
38
|
-
* -
|
|
38
|
+
* - The "activeStrategyProcessorChange" event to update something when the processor of the active strategy changes.
|
|
39
39
|
*
|
|
40
40
|
* =====================================================================================================================
|
|
41
41
|
*
|
|
@@ -2,7 +2,6 @@ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWith
|
|
|
2
2
|
import _toPropertyKey from "@babel/runtime/helpers/esm/toPropertyKey";
|
|
3
3
|
import * as React from 'react';
|
|
4
4
|
import { useGridApiMethod } from '../../utils/useGridApiMethod';
|
|
5
|
-
import { GridEvents } from '../../../models/events';
|
|
6
5
|
export const GRID_DEFAULT_STRATEGY = 'none';
|
|
7
6
|
export const GRID_STRATEGIES_PROCESSORS = {
|
|
8
7
|
rowTreeCreation: 'rowTree',
|
|
@@ -25,7 +24,7 @@ export const GRID_STRATEGIES_PROCESSORS = {
|
|
|
25
24
|
* The plugin containing the custom logic must use:
|
|
26
25
|
*
|
|
27
26
|
* - `useGridRegisterStrategyProcessor` to register their processor.
|
|
28
|
-
* When the processor of the active strategy changes, it will fire `
|
|
27
|
+
* When the processor of the active strategy changes, it will fire `"activeStrategyProcessorChange"` to re-apply the processor.
|
|
29
28
|
*
|
|
30
29
|
* - `apiRef.current.unstable_setStrategyAvailability` to tell if their strategy can be used.
|
|
31
30
|
*
|
|
@@ -35,12 +34,12 @@ export const GRID_STRATEGIES_PROCESSORS = {
|
|
|
35
34
|
*
|
|
36
35
|
* - `apiRef.current.unstable_applyStrategyProcessor` to run the processor of the active strategy for a given processor name.
|
|
37
36
|
*
|
|
38
|
-
* -
|
|
37
|
+
* - the "strategyAvailabilityChange" event to update something when the active strategy changes.
|
|
39
38
|
* Warning: Be careful not to apply the processor several times.
|
|
40
|
-
* For instance
|
|
39
|
+
* For instance "rowsSet" is fired by `useGridRows` whenever the active strategy changes.
|
|
41
40
|
* So listening to both would most likely run your logic twice.
|
|
42
41
|
*
|
|
43
|
-
* -
|
|
42
|
+
* - The "activeStrategyProcessorChange" event to update something when the processor of the active strategy changes.
|
|
44
43
|
*
|
|
45
44
|
* =====================================================================================================================
|
|
46
45
|
*
|
|
@@ -74,7 +73,7 @@ export const useGridStrategyProcessing = apiRef => {
|
|
|
74
73
|
}
|
|
75
74
|
|
|
76
75
|
if (strategyName === apiRef.current.unstable_getActiveStrategy(GRID_STRATEGIES_PROCESSORS[processorName])) {
|
|
77
|
-
apiRef.current.publishEvent(
|
|
76
|
+
apiRef.current.publishEvent('activeStrategyProcessorChange', processorName);
|
|
78
77
|
}
|
|
79
78
|
|
|
80
79
|
return cleanup;
|
|
@@ -113,7 +112,7 @@ export const useGridStrategyProcessing = apiRef => {
|
|
|
113
112
|
group: strategyGroup,
|
|
114
113
|
isAvailable
|
|
115
114
|
});
|
|
116
|
-
apiRef.current.publishEvent(
|
|
115
|
+
apiRef.current.publishEvent('strategyAvailabilityChange');
|
|
117
116
|
}, [apiRef]);
|
|
118
117
|
const strategyProcessingApi = {
|
|
119
118
|
unstable_registerStrategyProcessor: registerStrategyProcessor,
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { GridEvents } from '../../models/events';
|
|
3
2
|
import { useGridApiMethod } from '../utils/useGridApiMethod';
|
|
4
3
|
import { GridSignature } from '../utils/useGridApiEventHandler';
|
|
5
4
|
import { EventManager } from '../../utils/EventManager';
|
|
@@ -15,6 +14,7 @@ export function useGridApiInitialization(inputApiRef, props) {
|
|
|
15
14
|
if (!apiRef.current) {
|
|
16
15
|
apiRef.current = {
|
|
17
16
|
unstable_eventManager: new EventManager(),
|
|
17
|
+
unstable_caches: {},
|
|
18
18
|
state: {},
|
|
19
19
|
instanceId: globalId
|
|
20
20
|
};
|
|
@@ -43,7 +43,7 @@ export function useGridApiInitialization(inputApiRef, props) {
|
|
|
43
43
|
};
|
|
44
44
|
}, [apiRef]);
|
|
45
45
|
const showError = React.useCallback(args => {
|
|
46
|
-
apiRef.current.publishEvent(
|
|
46
|
+
apiRef.current.publishEvent('componentError', args);
|
|
47
47
|
}, [apiRef]);
|
|
48
48
|
useGridApiMethod(apiRef, {
|
|
49
49
|
subscribeEvent,
|
|
@@ -53,7 +53,7 @@ export function useGridApiInitialization(inputApiRef, props) {
|
|
|
53
53
|
React.useEffect(() => {
|
|
54
54
|
const api = apiRef.current;
|
|
55
55
|
return () => {
|
|
56
|
-
api.publishEvent(
|
|
56
|
+
api.publishEvent('unmount');
|
|
57
57
|
};
|
|
58
58
|
}, [apiRef]);
|
|
59
59
|
return apiRef;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
import { GridEvents } from '../../models/events';
|
|
4
3
|
import { useGridApiEventHandler } from '../utils/useGridApiEventHandler';
|
|
5
4
|
export function useGridErrorHandler(apiRef, props) {
|
|
6
5
|
const handleError = React.useCallback(args => {
|
|
@@ -12,5 +11,5 @@ export function useGridErrorHandler(apiRef, props) {
|
|
|
12
11
|
React.useEffect(() => {
|
|
13
12
|
handleError(props.error);
|
|
14
13
|
}, [handleError, props.error]);
|
|
15
|
-
useGridApiEventHandler(apiRef,
|
|
14
|
+
useGridApiEventHandler(apiRef, 'componentError', handleError);
|
|
16
15
|
}
|
|
@@ -3,7 +3,6 @@ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWith
|
|
|
3
3
|
const _excluded = ["stateId"];
|
|
4
4
|
import * as React from 'react';
|
|
5
5
|
import { GridSignature } from '../utils/useGridApiEventHandler';
|
|
6
|
-
import { GridEvents } from '../../models/events';
|
|
7
6
|
import { useGridApiMethod } from '../utils';
|
|
8
7
|
import { isFunction } from '../../utils/utils';
|
|
9
8
|
export const useGridStateInitialization = (apiRef, props) => {
|
|
@@ -66,7 +65,7 @@ export const useGridStateInitialization = (apiRef, props) => {
|
|
|
66
65
|
apiRef.current.state = newState;
|
|
67
66
|
|
|
68
67
|
if (apiRef.current.publishEvent) {
|
|
69
|
-
apiRef.current.publishEvent(
|
|
68
|
+
apiRef.current.publishEvent('stateChange', newState);
|
|
70
69
|
}
|
|
71
70
|
}
|
|
72
71
|
|
|
@@ -13,7 +13,6 @@ import { gridSortColumnLookupSelector } from '../sorting/gridSortingSelector';
|
|
|
13
13
|
import { gridColumnMenuSelector } from '../columnMenu/columnMenuSelector';
|
|
14
14
|
import { useGridRootProps } from '../../utils/useGridRootProps';
|
|
15
15
|
import { useGridApiEventHandler } from '../../utils/useGridApiEventHandler';
|
|
16
|
-
import { GridEvents } from '../../../models/events';
|
|
17
16
|
import { GridColumnHeaderItem } from '../../../components/columnHeaders/GridColumnHeaderItem';
|
|
18
17
|
import { getFirstColumnIndexToRender } from '../columns/gridColumnsUtils';
|
|
19
18
|
import { useGridVisibleRows } from '../../utils/useGridVisibleRows';
|
|
@@ -129,11 +128,11 @@ export const useGridColumnHeaders = props => {
|
|
|
129
128
|
const handleColumnResizeStop = React.useCallback(() => setResizeCol(''), []);
|
|
130
129
|
const handleColumnReorderStart = React.useCallback(params => setDragCol(params.field), []);
|
|
131
130
|
const handleColumnReorderStop = React.useCallback(() => setDragCol(''), []);
|
|
132
|
-
useGridApiEventHandler(apiRef,
|
|
133
|
-
useGridApiEventHandler(apiRef,
|
|
134
|
-
useGridApiEventHandler(apiRef,
|
|
135
|
-
useGridApiEventHandler(apiRef,
|
|
136
|
-
useGridApiEventHandler(apiRef,
|
|
131
|
+
useGridApiEventHandler(apiRef, 'columnResizeStart', handleColumnResizeStart);
|
|
132
|
+
useGridApiEventHandler(apiRef, 'columnResizeStop', handleColumnResizeStop);
|
|
133
|
+
useGridApiEventHandler(apiRef, 'columnHeaderDragStart', handleColumnReorderStart);
|
|
134
|
+
useGridApiEventHandler(apiRef, 'columnHeaderDragEnd', handleColumnReorderStop);
|
|
135
|
+
useGridApiEventHandler(apiRef, 'rowsScroll', handleScroll);
|
|
137
136
|
|
|
138
137
|
const getColumns = (params, other = {}) => {
|
|
139
138
|
const {
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
import { GridEvents } from '../../../models/events';
|
|
4
3
|
import { useGridLogger, useGridApiMethod, useGridApiEventHandler } from '../../utils';
|
|
5
4
|
import { gridColumnMenuSelector } from './columnMenuSelector';
|
|
6
5
|
export const columnMenuStateInitializer = state => _extends({}, state, {
|
|
@@ -78,7 +77,7 @@ export const useGridColumnMenu = apiRef => {
|
|
|
78
77
|
* EVENTS
|
|
79
78
|
*/
|
|
80
79
|
|
|
81
|
-
useGridApiEventHandler(apiRef,
|
|
82
|
-
useGridApiEventHandler(apiRef,
|
|
83
|
-
useGridApiEventHandler(apiRef,
|
|
80
|
+
useGridApiEventHandler(apiRef, 'columnResizeStart', hideColumnMenu);
|
|
81
|
+
useGridApiEventHandler(apiRef, 'virtualScrollerWheel', apiRef.current.hideColumnMenu);
|
|
82
|
+
useGridApiEventHandler(apiRef, 'virtualScrollerTouchMove', apiRef.current.hideColumnMenu);
|
|
84
83
|
};
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { useGridApiMethod } from '../../utils/useGridApiMethod';
|
|
3
3
|
import { useGridApiEventHandler } from '../../utils/useGridApiEventHandler';
|
|
4
|
-
import { GridEvents } from '../../../models/events/gridEvents';
|
|
5
4
|
|
|
6
5
|
/**
|
|
7
6
|
* @requires useGridColumns (method, event)
|
|
@@ -105,5 +104,5 @@ export const useGridColumnSpanning = apiRef => {
|
|
|
105
104
|
// `colSpan` needs to be recalculated after column reordering
|
|
106
105
|
lookup.current = {};
|
|
107
106
|
}, []);
|
|
108
|
-
useGridApiEventHandler(apiRef,
|
|
107
|
+
useGridApiEventHandler(apiRef, 'columnOrderChange', handleColumnReorderChange);
|
|
109
108
|
};
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
import { GridEvents } from '../../../models/events';
|
|
4
3
|
import { useGridApiMethod } from '../../utils/useGridApiMethod';
|
|
5
4
|
import { useGridLogger } from '../../utils/useGridLogger';
|
|
6
5
|
import { gridColumnFieldsSelector, gridColumnDefinitionsSelector, gridColumnLookupSelector, gridColumnsMetaSelector, gridColumnsSelector, gridColumnVisibilityModelSelector, gridVisibleColumnDefinitionsSelector, gridColumnPositionsSelector } from './gridColumnsSelector';
|
|
@@ -51,13 +50,13 @@ export function useGridColumns(apiRef, props) {
|
|
|
51
50
|
propModel: props.columnVisibilityModel,
|
|
52
51
|
propOnChange: props.onColumnVisibilityModelChange,
|
|
53
52
|
stateSelector: gridColumnVisibilityModelSelector,
|
|
54
|
-
changeEvent:
|
|
53
|
+
changeEvent: 'columnVisibilityModelChange'
|
|
55
54
|
});
|
|
56
55
|
const setGridColumnsState = React.useCallback(columnsState => {
|
|
57
56
|
logger.debug('Updating columns state.');
|
|
58
57
|
apiRef.current.setState(mergeColumnsState(columnsState));
|
|
59
58
|
apiRef.current.forceUpdate();
|
|
60
|
-
apiRef.current.publishEvent(
|
|
59
|
+
apiRef.current.publishEvent('columnsChange', columnsState.all);
|
|
61
60
|
}, [logger, apiRef]);
|
|
62
61
|
/**
|
|
63
62
|
* API METHODS
|
|
@@ -135,7 +134,7 @@ export function useGridColumns(apiRef, props) {
|
|
|
135
134
|
colDef: newColumn,
|
|
136
135
|
isVisible
|
|
137
136
|
};
|
|
138
|
-
apiRef.current.publishEvent(
|
|
137
|
+
apiRef.current.publishEvent('columnVisibilityChange', params);
|
|
139
138
|
}
|
|
140
139
|
}, [apiRef]);
|
|
141
140
|
const setColumnIndex = React.useCallback((field, targetIndexPosition) => {
|
|
@@ -159,7 +158,7 @@ export function useGridColumns(apiRef, props) {
|
|
|
159
158
|
targetIndex: targetIndexPosition,
|
|
160
159
|
oldIndex: oldIndexPosition
|
|
161
160
|
};
|
|
162
|
-
apiRef.current.publishEvent(
|
|
161
|
+
apiRef.current.publishEvent('columnOrderChange', params);
|
|
163
162
|
}, [apiRef, logger, setGridColumnsState]);
|
|
164
163
|
const setColumnWidth = React.useCallback((field, width) => {
|
|
165
164
|
logger.debug(`Updating column ${field} width to ${width}`);
|
|
@@ -170,7 +169,7 @@ export function useGridColumns(apiRef, props) {
|
|
|
170
169
|
});
|
|
171
170
|
|
|
172
171
|
apiRef.current.updateColumns([newColumn]);
|
|
173
|
-
apiRef.current.publishEvent(
|
|
172
|
+
apiRef.current.publishEvent('columnWidthChange', {
|
|
174
173
|
element: apiRef.current.getColumnHeaderElement(field),
|
|
175
174
|
colDef: newColumn,
|
|
176
175
|
width
|
|
@@ -256,7 +255,7 @@ export function useGridColumns(apiRef, props) {
|
|
|
256
255
|
apiRef.current.setState(mergeColumnsState(columnsState));
|
|
257
256
|
|
|
258
257
|
if (initialState != null) {
|
|
259
|
-
apiRef.current.publishEvent(
|
|
258
|
+
apiRef.current.publishEvent('columnsChange', columnsState.all);
|
|
260
259
|
}
|
|
261
260
|
|
|
262
261
|
return params;
|
|
@@ -287,8 +286,8 @@ export function useGridColumns(apiRef, props) {
|
|
|
287
286
|
}
|
|
288
287
|
};
|
|
289
288
|
|
|
290
|
-
useGridApiEventHandler(apiRef,
|
|
291
|
-
useGridApiOptionHandler(apiRef,
|
|
289
|
+
useGridApiEventHandler(apiRef, 'viewportInnerSizeChange', handleGridSizeChange);
|
|
290
|
+
useGridApiOptionHandler(apiRef, 'columnVisibilityChange', props.onColumnVisibilityChange);
|
|
292
291
|
/**
|
|
293
292
|
* APPLIERS
|
|
294
293
|
*/
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { GridApiCommunity } from '../../../models/api/gridApiCommunity';
|
|
3
3
|
import { DataGridProcessedProps } from '../../../models/props/DataGridProps';
|
|
4
|
-
export declare function useGridDimensions(apiRef: React.MutableRefObject<GridApiCommunity>, props: Pick<DataGridProcessedProps, '
|
|
4
|
+
export declare function useGridDimensions(apiRef: React.MutableRefObject<GridApiCommunity>, props: Pick<DataGridProcessedProps, 'onResize' | 'scrollbarSize' | 'pagination' | 'paginationMode' | 'autoHeight' | 'getRowHeight'>): void;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { debounce, ownerDocument, unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/material/utils';
|
|
3
|
-
import { GridEvents } from '../../../models/events';
|
|
4
3
|
import { useGridApiEventHandler, useGridApiOptionHandler } from '../../utils/useGridApiEventHandler';
|
|
5
4
|
import { useGridApiMethod } from '../../utils/useGridApiMethod';
|
|
6
5
|
import { useGridLogger } from '../../utils/useGridLogger';
|
|
@@ -101,12 +100,12 @@ export function useGridDimensions(apiRef, props) {
|
|
|
101
100
|
fullDimensionsRef.current = newFullDimensions;
|
|
102
101
|
|
|
103
102
|
if (newFullDimensions.viewportInnerSize.width !== (prevDimensions == null ? void 0 : prevDimensions.viewportInnerSize.width) || newFullDimensions.viewportInnerSize.height !== (prevDimensions == null ? void 0 : prevDimensions.viewportInnerSize.height)) {
|
|
104
|
-
apiRef.current.publishEvent(
|
|
103
|
+
apiRef.current.publishEvent('viewportInnerSizeChange', newFullDimensions.viewportInnerSize);
|
|
105
104
|
}
|
|
106
105
|
}, [apiRef, props.scrollbarSize, props.autoHeight, headerHeight, rowsMeta.currentPageTotalHeight]);
|
|
107
106
|
const resize = React.useCallback(() => {
|
|
108
107
|
updateGridDimensionsRef();
|
|
109
|
-
apiRef.current.publishEvent(
|
|
108
|
+
apiRef.current.publishEvent('debouncedResize', rootDimensionsRef.current);
|
|
110
109
|
}, [apiRef, updateGridDimensionsRef]);
|
|
111
110
|
const getRootDimensions = React.useCallback(() => fullDimensionsRef.current, []);
|
|
112
111
|
const getViewportPageSize = React.useCallback(() => {
|
|
@@ -172,10 +171,10 @@ export function useGridDimensions(apiRef, props) {
|
|
|
172
171
|
debounceResize();
|
|
173
172
|
}, [props.autoHeight, debounceResize, logger, resize]);
|
|
174
173
|
useEnhancedEffect(() => updateGridDimensionsRef(), [updateGridDimensionsRef]);
|
|
175
|
-
useGridApiOptionHandler(apiRef,
|
|
176
|
-
useGridApiOptionHandler(apiRef,
|
|
177
|
-
useGridApiOptionHandler(apiRef,
|
|
178
|
-
useGridApiOptionHandler(apiRef,
|
|
179
|
-
useGridApiEventHandler(apiRef,
|
|
180
|
-
useGridApiOptionHandler(apiRef,
|
|
174
|
+
useGridApiOptionHandler(apiRef, 'sortedRowsSet', updateGridDimensionsRef);
|
|
175
|
+
useGridApiOptionHandler(apiRef, 'pageChange', updateGridDimensionsRef);
|
|
176
|
+
useGridApiOptionHandler(apiRef, 'pageSizeChange', updateGridDimensionsRef);
|
|
177
|
+
useGridApiOptionHandler(apiRef, 'columnsChange', updateGridDimensionsRef);
|
|
178
|
+
useGridApiEventHandler(apiRef, 'resize', handleResize);
|
|
179
|
+
useGridApiOptionHandler(apiRef, 'debouncedResize', props.onResize);
|
|
181
180
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { GridApiCommunity } from '../../../models/api/gridApiCommunity';
|
|
3
3
|
import { DataGridProcessedProps } from '../../../models/props/DataGridProps';
|
|
4
|
-
export declare const useGridCellEditing: (apiRef: React.MutableRefObject<GridApiCommunity>, props: Pick<DataGridProcessedProps, 'editMode' | 'processRowUpdate' | 'onCellEditStart' | 'onCellEditStop' | 'onProcessRowUpdateError'>) => void;
|
|
4
|
+
export declare const useGridCellEditing: (apiRef: React.MutableRefObject<GridApiCommunity>, props: Pick<DataGridProcessedProps, 'editMode' | 'processRowUpdate' | 'onCellEditStart' | 'onCellEditStop' | 'cellModesModel' | 'onCellModesModelChange' | 'onProcessRowUpdateError' | 'signature'>) => void;
|