@mui/x-data-grid 5.10.0 → 5.12.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 +325 -10
- package/DataGrid/DataGrid.js +61 -2
- package/DataGrid/useDataGridProps.js +2 -1
- package/README.md +4 -5
- package/colDef/gridActionsColDef.js +2 -1
- package/colDef/gridBooleanColDef.js +2 -1
- package/colDef/gridCheckboxSelectionColDef.js +1 -0
- package/colDef/gridDateColDef.js +4 -2
- package/colDef/gridNumericColDef.js +3 -2
- package/colDef/gridNumericOperators.d.ts +2 -0
- package/colDef/gridNumericOperators.js +11 -0
- package/colDef/gridSingleSelectColDef.js +3 -2
- package/colDef/gridSingleSelectOperators.d.ts +3 -0
- package/colDef/gridSingleSelectOperators.js +52 -0
- package/colDef/gridStringColDef.js +3 -2
- package/colDef/gridStringOperators.d.ts +2 -0
- package/colDef/gridStringOperators.js +12 -0
- package/components/GridFooter.d.ts +4 -2
- package/components/GridFooter.js +11 -2
- package/components/GridRow.d.ts +1 -1
- package/components/GridRow.js +55 -17
- 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/GridActionsCellItem.d.ts +1 -1
- package/components/cell/GridCell.d.ts +2 -1
- package/components/cell/GridCell.js +17 -12
- 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 +19 -19
- 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 +4 -2
- package/components/containers/GridToolbarContainer.d.ts +8 -2
- package/components/containers/GridToolbarContainer.js +12 -2
- package/components/menu/GridMenu.js +9 -2
- package/components/panel/GridColumnsPanel.js +10 -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/panel/GridPanelWrapper.d.ts +1 -1
- package/components/panel/GridPanelWrapper.js +3 -3
- package/components/panel/filterPanel/GridFilterForm.d.ts +61 -4
- package/components/panel/filterPanel/GridFilterForm.js +88 -8
- package/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +0 -1
- package/components/panel/filterPanel/GridFilterPanel.d.ts +8 -5
- package/components/panel/filterPanel/GridFilterPanel.js +24 -6
- 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 +3 -2
- package/constants/gridClasses.d.ts +16 -0
- package/constants/gridClasses.js +1 -1
- package/constants/localeTextConstants.js +5 -0
- 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 -4
- package/hooks/features/columns/gridColumnsInterfaces.d.ts +3 -0
- package/hooks/features/columns/useGridColumnSpanning.js +1 -2
- package/hooks/features/columns/useGridColumns.js +20 -23
- 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 +140 -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 +128 -42
- package/hooks/features/editRows/useGridRowEditing.old.js +21 -22
- package/hooks/features/events/useGridEvents.d.ts +1 -1
- package/hooks/features/events/useGridEvents.js +19 -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 +17 -1
- package/hooks/features/filter/gridFilterUtils.js +85 -4
- package/hooks/features/filter/useGridFilter.js +25 -13
- 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 +130 -129
- package/hooks/features/rows/useGridRowsMeta.d.ts +1 -1
- package/hooks/features/rows/useGridRowsMeta.js +107 -43
- 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 +1 -0
- package/hooks/features/virtualization/useGridVirtualScroller.js +33 -14
- package/hooks/utils/useGridApiEventHandler.d.ts +4 -1
- package/hooks/utils/useGridApiEventHandler.js +22 -9
- package/hooks/utils/useGridNativeEventListener.js +1 -2
- package/hooks/utils/useGridSelector.js +1 -1
- package/index.d.ts +2 -0
- package/index.js +1 -1
- package/internals/index.d.ts +5 -1
- package/internals/index.js +5 -2
- package/legacy/DataGrid/DataGrid.js +61 -2
- 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 +60 -17
- 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 +17 -12
- 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 +21 -19
- 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 +3 -2
- package/legacy/components/containers/GridToolbarContainer.js +12 -2
- package/legacy/components/menu/GridMenu.js +9 -2
- package/legacy/components/panel/GridColumnsPanel.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/panel/GridPanelWrapper.js +3 -3
- package/legacy/components/panel/filterPanel/GridFilterForm.js +89 -8
- package/legacy/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +0 -1
- package/legacy/components/panel/filterPanel/GridFilterPanel.js +25 -6
- 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 +3 -2
- package/legacy/constants/gridClasses.js +1 -1
- package/legacy/constants/localeTextConstants.js +5 -0
- 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 -4
- package/legacy/hooks/features/columns/useGridColumnSpanning.js +1 -2
- package/legacy/hooks/features/columns/useGridColumns.js +20 -23
- package/legacy/hooks/features/dimensions/useGridDimensions.js +8 -9
- package/legacy/hooks/features/editRows/useGridCellEditing.new.js +220 -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 +132 -42
- package/legacy/hooks/features/editRows/useGridRowEditing.old.js +20 -21
- package/legacy/hooks/features/events/useGridEvents.js +19 -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 +97 -4
- package/legacy/hooks/features/filter/useGridFilter.js +25 -13
- 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 +140 -132
- package/legacy/hooks/features/rows/useGridRowsMeta.js +104 -41
- 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 +52 -29
- 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 +10 -5
- 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/nbNO.js +127 -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 +8 -3
- 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 +4 -0
- package/legacy/models/gridApiCaches.js +1 -0
- package/legacy/models/index.js +4 -3
- package/legacy/models/params/gridMenuParams.js +1 -0
- package/legacy/models/params/index.js +2 -1
- 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 +10 -5
- 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/nbNO.d.ts +2 -0
- package/locales/nbNO.js +115 -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 +8 -3
- package/locales/ukUA.js +5 -0
- package/locales/viVN.js +5 -0
- package/locales/zhCN.js +5 -0
- package/models/api/gridCoreApi.d.ts +6 -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/gridRowsMetaApi.d.ts +24 -0
- package/models/api/index.d.ts +1 -1
- package/models/colDef/gridColDef.d.ts +16 -3
- package/models/events/gridEventLookup.d.ts +286 -4
- package/models/events/gridEvents.d.ts +5 -278
- package/models/events/gridEvents.js +4 -0
- package/models/gridApiCaches.d.ts +6 -0
- package/models/gridApiCaches.js +1 -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 +5 -0
- package/models/gridStateCommunity.d.ts +0 -2
- package/models/index.d.ts +1 -1
- package/models/index.js +4 -3
- package/models/params/gridMenuParams.d.ts +7 -0
- package/models/params/gridMenuParams.js +1 -0
- package/models/params/gridRowParams.d.ts +1 -1
- package/models/params/index.d.ts +1 -0
- package/models/params/index.js +2 -1
- package/models/props/DataGridProps.d.ts +79 -29
- package/modern/DataGrid/DataGrid.js +61 -2
- 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 +55 -17
- 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 +17 -12
- 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 +19 -19
- 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 +4 -2
- package/modern/components/containers/GridToolbarContainer.js +12 -2
- package/modern/components/menu/GridMenu.js +9 -2
- package/modern/components/panel/GridColumnsPanel.js +10 -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/panel/GridPanelWrapper.js +3 -3
- package/modern/components/panel/filterPanel/GridFilterForm.js +88 -8
- package/modern/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +0 -1
- package/modern/components/panel/filterPanel/GridFilterPanel.js +24 -6
- 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 +3 -2
- package/modern/constants/gridClasses.js +1 -1
- package/modern/constants/localeTextConstants.js +5 -0
- 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 -4
- package/modern/hooks/features/columns/useGridColumnSpanning.js +1 -2
- package/modern/hooks/features/columns/useGridColumns.js +19 -22
- package/modern/hooks/features/dimensions/useGridDimensions.js +8 -9
- package/modern/hooks/features/editRows/useGridCellEditing.new.js +138 -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 +126 -42
- package/modern/hooks/features/editRows/useGridRowEditing.old.js +21 -22
- package/modern/hooks/features/events/useGridEvents.js +19 -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 +81 -4
- package/modern/hooks/features/filter/useGridFilter.js +25 -13
- 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 +130 -129
- package/modern/hooks/features/rows/useGridRowsMeta.js +105 -37
- 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 +33 -14
- 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 +10 -5
- 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/nbNO.js +115 -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 +8 -3
- 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 +4 -0
- package/modern/models/gridApiCaches.js +1 -0
- package/modern/models/index.js +4 -3
- package/modern/models/params/gridMenuParams.js +1 -0
- package/modern/models/params/index.js +2 -1
- package/modern/utils/createSelector.js +20 -2
- package/modern/utils/exportAs.js +1 -1
- package/node/DataGrid/DataGrid.js +61 -2
- 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 +57 -18
- 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 +16 -11
- 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 +19 -20
- 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 +4 -2
- package/node/components/containers/GridToolbarContainer.js +11 -1
- package/node/components/menu/GridMenu.js +10 -2
- package/node/components/panel/GridColumnsPanel.js +10 -2
- package/node/components/panel/GridPanelContent.js +11 -1
- package/node/components/panel/GridPanelFooter.js +11 -1
- package/node/components/panel/GridPanelHeader.js +11 -1
- package/node/components/panel/GridPanelWrapper.js +5 -3
- package/node/components/panel/filterPanel/GridFilterForm.js +91 -9
- package/node/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +0 -1
- package/node/components/panel/filterPanel/GridFilterPanel.js +26 -6
- 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 +2 -1
- package/node/constants/gridClasses.js +1 -1
- package/node/constants/localeTextConstants.js +5 -0
- 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 -5
- package/node/hooks/features/columns/useGridColumnSpanning.js +1 -3
- package/node/hooks/features/columns/useGridColumns.js +20 -24
- package/node/hooks/features/dimensions/useGridDimensions.js +8 -10
- package/node/hooks/features/editRows/useGridCellEditing.new.js +140 -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 +128 -43
- package/node/hooks/features/editRows/useGridRowEditing.old.js +21 -23
- package/node/hooks/features/events/useGridEvents.js +19 -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 +93 -3
- package/node/hooks/features/filter/useGridFilter.js +25 -13
- 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 +132 -127
- package/node/hooks/features/rows/useGridRowsMeta.js +107 -43
- 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 +33 -15
- 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 +10 -5
- 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/nbNO.js +125 -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 +8 -3
- 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 +4 -0
- package/node/models/gridApiCaches.js +5 -0
- package/node/models/index.js +0 -13
- package/node/models/params/gridMenuParams.js +5 -0
- package/node/models/params/index.js +13 -0
- package/node/utils/createSelector.js +25 -4
- package/node/utils/exportAs.js +1 -1
- package/package.json +5 -4
- 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,22 +1,16 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
3
|
-
var _excluded = ["csvOptions", "printOptions"];
|
|
3
|
+
var _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 var GridCsvExportMenuItem = function GridCsvExportMenuItem(props) {
|
|
12
11
|
var apiRef = useGridApiContext();
|
|
13
12
|
var hideMenu = props.hideMenu,
|
|
14
13
|
options = props.options;
|
|
15
|
-
|
|
16
|
-
if (options != null && options.disableToolbarButton) {
|
|
17
|
-
return null;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
14
|
return /*#__PURE__*/_jsx(MenuItem, {
|
|
21
15
|
onClick: function onClick() {
|
|
22
16
|
apiRef.current.exportDataAsCsv(options);
|
|
@@ -29,11 +23,6 @@ export var GridPrintExportMenuItem = function GridPrintExportMenuItem(props) {
|
|
|
29
23
|
var apiRef = useGridApiContext();
|
|
30
24
|
var hideMenu = props.hideMenu,
|
|
31
25
|
options = props.options;
|
|
32
|
-
|
|
33
|
-
if (options != null && options.disableToolbarButton) {
|
|
34
|
-
return null;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
26
|
return /*#__PURE__*/_jsx(MenuItem, {
|
|
38
27
|
onClick: function onClick() {
|
|
39
28
|
apiRef.current.exportDataAsPrint(options);
|
|
@@ -47,19 +36,29 @@ var GridToolbarExport = /*#__PURE__*/React.forwardRef(function GridToolbarExport
|
|
|
47
36
|
csvOptions = _props$csvOptions === void 0 ? {} : _props$csvOptions,
|
|
48
37
|
_props$printOptions = props.printOptions,
|
|
49
38
|
printOptions = _props$printOptions === void 0 ? {} : _props$printOptions,
|
|
39
|
+
excelOptions = props.excelOptions,
|
|
50
40
|
other = _objectWithoutProperties(props, _excluded);
|
|
51
41
|
|
|
52
|
-
|
|
42
|
+
var apiRef = useGridApiContext();
|
|
43
|
+
var preProcessedButtons = apiRef.current.unstable_applyPipeProcessors('exportMenu', [], {
|
|
44
|
+
excelOptions: excelOptions,
|
|
45
|
+
csvOptions: csvOptions,
|
|
46
|
+
printOptions: printOptions
|
|
47
|
+
}).sort(function (a, b) {
|
|
48
|
+
return a.componentName > b.componentName ? 1 : -1;
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
if (preProcessedButtons.length === 0) {
|
|
53
52
|
return null;
|
|
54
53
|
}
|
|
55
54
|
|
|
56
|
-
return /*#__PURE__*/
|
|
55
|
+
return /*#__PURE__*/_jsx(GridToolbarExportContainer, _extends({}, other, {
|
|
57
56
|
ref: ref,
|
|
58
|
-
children:
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
})
|
|
57
|
+
children: preProcessedButtons.map(function (button, index) {
|
|
58
|
+
return /*#__PURE__*/React.cloneElement(button.component, {
|
|
59
|
+
key: index
|
|
60
|
+
});
|
|
61
|
+
})
|
|
63
62
|
}));
|
|
64
63
|
});
|
|
65
64
|
process.env.NODE_ENV !== "production" ? GridToolbarExport.propTypes = {
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
3
|
+
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
4
|
+
var _excluded = ["quickFilterParser", "debounceMs"];
|
|
5
|
+
import * as React from 'react';
|
|
6
|
+
import PropTypes from 'prop-types';
|
|
7
|
+
import TextField from '@mui/material/TextField';
|
|
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
|
+
var GridToolbarQuickFilterRoot = styled(TextField, {
|
|
14
|
+
name: 'MuiDataGrid',
|
|
15
|
+
slot: 'ToolbarQuickFilter',
|
|
16
|
+
overridesResolver: function overridesResolver(props, styles) {
|
|
17
|
+
return styles.toolbarQuickFilter;
|
|
18
|
+
}
|
|
19
|
+
})(function (_ref) {
|
|
20
|
+
var theme = _ref.theme;
|
|
21
|
+
return {
|
|
22
|
+
width: 'auto',
|
|
23
|
+
paddingBottom: theme.spacing(0.5),
|
|
24
|
+
'& .MuiSvgIcon-root': {
|
|
25
|
+
marginRight: theme.spacing(0.5)
|
|
26
|
+
},
|
|
27
|
+
'& .MuiInput-underline:before': {
|
|
28
|
+
borderBottom: "1px solid ".concat(theme.palette.divider)
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
var defaultSearchValueParser = function defaultSearchValueParser(searchText) {
|
|
34
|
+
return searchText.split(' ').filter(function (word) {
|
|
35
|
+
return word !== '';
|
|
36
|
+
});
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
function GridToolbarQuickFilter(props) {
|
|
40
|
+
var _rootProps$components;
|
|
41
|
+
|
|
42
|
+
var _props$quickFilterPar = props.quickFilterParser,
|
|
43
|
+
quickFilterParser = _props$quickFilterPar === void 0 ? defaultSearchValueParser : _props$quickFilterPar,
|
|
44
|
+
_props$debounceMs = props.debounceMs,
|
|
45
|
+
debounceMs = _props$debounceMs === void 0 ? 500 : _props$debounceMs,
|
|
46
|
+
other = _objectWithoutProperties(props, _excluded);
|
|
47
|
+
|
|
48
|
+
var apiRef = useGridApiContext();
|
|
49
|
+
var rootProps = useGridRootProps();
|
|
50
|
+
|
|
51
|
+
var _React$useState = React.useState(''),
|
|
52
|
+
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
53
|
+
searchValue = _React$useState2[0],
|
|
54
|
+
setSearchValue = _React$useState2[1];
|
|
55
|
+
|
|
56
|
+
var updateSearchValue = React.useCallback(function (newSearchValue) {
|
|
57
|
+
apiRef.current.setQuickFilterValues(quickFilterParser(newSearchValue));
|
|
58
|
+
}, [apiRef, quickFilterParser]);
|
|
59
|
+
var debouncedUpdateSearchValue = React.useMemo(function () {
|
|
60
|
+
return debounce(updateSearchValue, debounceMs);
|
|
61
|
+
}, [updateSearchValue, debounceMs]);
|
|
62
|
+
var handleSearchValueChange = React.useCallback(function (event) {
|
|
63
|
+
var newSearchValue = event.target.value;
|
|
64
|
+
setSearchValue(newSearchValue);
|
|
65
|
+
debouncedUpdateSearchValue(newSearchValue);
|
|
66
|
+
}, [debouncedUpdateSearchValue]);
|
|
67
|
+
return /*#__PURE__*/_jsx(GridToolbarQuickFilterRoot, _extends({
|
|
68
|
+
as: rootProps.components.BaseTextField,
|
|
69
|
+
variant: "standard",
|
|
70
|
+
value: searchValue,
|
|
71
|
+
onChange: handleSearchValueChange,
|
|
72
|
+
placeholder: apiRef.current.getLocaleText('toolbarQuickFilterPlaceholder'),
|
|
73
|
+
"aria-label": apiRef.current.getLocaleText('toolbarQuickFilterLabel'),
|
|
74
|
+
type: "search",
|
|
75
|
+
InputProps: {
|
|
76
|
+
startAdornment: /*#__PURE__*/_jsx(rootProps.components.QuickFilterIcon, {
|
|
77
|
+
fontSize: "small"
|
|
78
|
+
})
|
|
79
|
+
}
|
|
80
|
+
}, other, (_rootProps$components = rootProps.componentsProps) == null ? void 0 : _rootProps$components.baseTextField));
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
process.env.NODE_ENV !== "production" ? GridToolbarQuickFilter.propTypes = {
|
|
84
|
+
// ----------------------------- Warning --------------------------------
|
|
85
|
+
// | These PropTypes are generated from the TypeScript type definitions |
|
|
86
|
+
// | To update them edit the TypeScript types and run "yarn proptypes" |
|
|
87
|
+
// ----------------------------------------------------------------------
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* The debounce time in milliseconds.
|
|
91
|
+
* @default 500
|
|
92
|
+
*/
|
|
93
|
+
debounceMs: PropTypes.number,
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Function responsible for parsing text input in an array of independent values for quick filtering.
|
|
97
|
+
* @param {string} input The value entered by the user
|
|
98
|
+
* @returns {any[]} The array of value on which quick filter is applied
|
|
99
|
+
*/
|
|
100
|
+
quickFilterParser: PropTypes.func
|
|
101
|
+
} : void 0;
|
|
102
|
+
export { 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';
|
|
@@ -7,7 +7,7 @@ import MUISwitch from '@mui/material/Switch';
|
|
|
7
7
|
import MUIButton from '@mui/material/Button';
|
|
8
8
|
import MUITooltip from '@mui/material/Tooltip';
|
|
9
9
|
import MUIPopper from '@mui/material/Popper';
|
|
10
|
-
import { GridArrowDownwardIcon, GridArrowUpwardIcon, GridCell, GridCheckIcon, GridCloseIcon, GridColumnIcon, GridColumnMenu, GridColumnsPanel, GridFilterAltIcon, GridFilterListIcon, GridFilterPanel, GridFooter, GridHeader, GridLoadingOverlay, GridNoRowsOverlay, GridPagination, GridPanel, GridPreferencesPanel, GridRow, GridSaveAltIcon, GridSeparatorIcon, GridTableRowsIcon, GridTripleDotsVerticalIcon, GridViewHeadlineIcon, GridViewStreamIcon, GridMoreVertIcon, GridExpandMoreIcon, GridKeyboardArrowRight, GridAddIcon, GridRemoveIcon, GridDragIcon, GridColumnHeaderFilterIconButton } from '../components';
|
|
10
|
+
import { GridArrowDownwardIcon, GridArrowUpwardIcon, GridCell, GridCheckIcon, GridCloseIcon, GridColumnIcon, GridColumnMenu, GridColumnsPanel, GridFilterAltIcon, GridFilterListIcon, GridFilterPanel, GridFooter, GridHeader, GridLoadingOverlay, GridNoRowsOverlay, GridPagination, GridPanel, GridPreferencesPanel, GridRow, GridSaveAltIcon, GridSeparatorIcon, GridTableRowsIcon, GridTripleDotsVerticalIcon, GridViewHeadlineIcon, GridViewStreamIcon, GridMoreVertIcon, GridExpandMoreIcon, GridKeyboardArrowRight, GridAddIcon, GridRemoveIcon, GridDragIcon, GridColumnHeaderFilterIconButton, GridSearchIcon } from '../components';
|
|
11
11
|
import { GridColumnUnsortedIcon } from '../components/columnHeaders/GridColumnUnsortedIcon';
|
|
12
12
|
import { ErrorOverlay } from '../components/ErrorOverlay';
|
|
13
13
|
import { GridNoResultsOverlay } from '../components/GridNoResultsOverlay';
|
|
@@ -34,7 +34,8 @@ var DEFAULT_GRID_ICON_SLOTS_COMPONENTS = {
|
|
|
34
34
|
GroupingCriteriaExpandIcon: GridKeyboardArrowRight,
|
|
35
35
|
DetailPanelExpandIcon: GridAddIcon,
|
|
36
36
|
DetailPanelCollapseIcon: GridRemoveIcon,
|
|
37
|
-
RowReorderIcon: GridDragIcon
|
|
37
|
+
RowReorderIcon: GridDragIcon,
|
|
38
|
+
QuickFilterIcon: GridSearchIcon
|
|
38
39
|
};
|
|
39
40
|
/**
|
|
40
41
|
* TODO: Differentiate community and pro value and interface
|
|
@@ -2,4 +2,4 @@ import { generateUtilityClasses, generateUtilityClass } from '@mui/material';
|
|
|
2
2
|
export function getDataGridUtilityClass(slot) {
|
|
3
3
|
return generateUtilityClass('MuiDataGrid', slot);
|
|
4
4
|
}
|
|
5
|
-
export var gridClasses = generateUtilityClasses('MuiDataGrid', ['actionsCell', 'autoHeight', 'booleanCell', 'cell--editable', 'cell--editing', 'cell--textCenter', 'cell--textLeft', 'cell--textRight', 'cell--withRenderer', 'cell', 'cellContent', 'cellCheckbox', 'checkboxInput', 'columnHeader--alignCenter', 'columnHeader--alignLeft', 'columnHeader--alignRight', 'columnHeader--dragging', 'columnHeader--moving', 'columnHeader--numeric', 'columnHeader--sortable', 'columnHeader--sorted', 'columnHeader--filtered', 'columnHeader', 'columnHeaderCheckbox', 'columnHeaderDraggableContainer', 'columnHeaderDropZone', 'columnHeaderTitle', 'columnHeaderTitleContainer', 'columnHeaderTitleContainerContent', 'columnHeaders', 'columnHeadersInner', 'columnHeadersInner--scrollable', 'columnSeparator--resizable', 'columnSeparator--resizing', 'columnSeparator--sideLeft', 'columnSeparator--sideRight', 'columnSeparator', 'columnsPanel', 'columnsPanelRow', 'detailPanel', 'detailPanels', 'detailPanelToggleCell', 'detailPanelToggleCell--expanded', 'panel', 'panelHeader', 'panelWrapper', 'panelContent', 'panelFooter', 'paper', 'editBooleanCell', 'editInputCell', 'filterForm', 'filterFormDeleteIcon', 'filterFormLinkOperatorInput', 'filterFormColumnInput', 'filterFormOperatorInput', 'filterFormValueInput', 'filterIcon', 'footerContainer', 'iconButtonContainer', 'iconSeparator', 'main', 'menu', 'menuIcon', 'menuIconButton', 'menuOpen', 'menuList', 'overlay', 'root', 'row', 'row--editable', 'row--editing', 'row--lastVisible', 'row--dragging', 'rowReorderCellPlaceholder', 'rowCount', 'rowReorderCellContainer', 'rowReorderCell', 'rowReorderCell--draggable', 'scrollArea--left', 'scrollArea--right', 'scrollArea', 'selectedRowCount', 'sortIcon', 'toolbarContainer', 'toolbarFilterList', 'virtualScroller', 'virtualScrollerContent', 'virtualScrollerContent--overflowed', 'virtualScrollerRenderZone', 'pinnedColumns', 'pinnedColumns--left', 'pinnedColumns--right', 'pinnedColumnHeaders', 'pinnedColumnHeaders--left', 'pinnedColumnHeaders--right', 'withBorder', 'treeDataGroupingCell', 'treeDataGroupingCellToggle', 'groupingCriteriaCell', 'groupingCriteriaCellToggle']);
|
|
5
|
+
export var gridClasses = generateUtilityClasses('MuiDataGrid', ['actionsCell', 'autoHeight', 'booleanCell', 'cell--editable', 'cell--editing', 'cell--textCenter', 'cell--textLeft', 'cell--textRight', 'cell--withRenderer', 'cell', 'cellContent', 'cellCheckbox', 'checkboxInput', 'columnHeader--alignCenter', 'columnHeader--alignLeft', 'columnHeader--alignRight', 'columnHeader--dragging', 'columnHeader--moving', 'columnHeader--numeric', 'columnHeader--sortable', 'columnHeader--sorted', 'columnHeader--filtered', 'columnHeader', 'columnHeaderCheckbox', 'columnHeaderDraggableContainer', 'columnHeaderDropZone', 'columnHeaderTitle', 'columnHeaderTitleContainer', 'columnHeaderTitleContainerContent', 'columnHeaders', 'columnHeadersInner', 'columnHeadersInner--scrollable', 'columnSeparator--resizable', 'columnSeparator--resizing', 'columnSeparator--sideLeft', 'columnSeparator--sideRight', 'columnSeparator', 'columnsPanel', 'columnsPanelRow', 'detailPanel', 'detailPanels', 'detailPanelToggleCell', 'detailPanelToggleCell--expanded', 'panel', 'panelHeader', 'panelWrapper', 'panelContent', 'panelFooter', 'paper', 'editBooleanCell', 'editInputCell', 'filterForm', 'filterFormDeleteIcon', 'filterFormLinkOperatorInput', 'filterFormColumnInput', 'filterFormOperatorInput', 'filterFormValueInput', 'filterIcon', 'footerContainer', 'iconButtonContainer', 'iconSeparator', 'main', 'menu', 'menuIcon', 'menuIconButton', 'menuOpen', 'menuList', 'overlay', 'root', 'root--densityStandard', 'root--densityComfortable', 'root--densityCompact', 'row', 'row--editable', 'row--editing', 'row--lastVisible', 'row--dragging', 'row--dynamicHeight', 'rowReorderCellPlaceholder', 'rowCount', 'rowReorderCellContainer', 'rowReorderCell', 'rowReorderCell--draggable', 'scrollArea--left', 'scrollArea--right', 'scrollArea', 'selectedRowCount', 'sortIcon', 'toolbarContainer', 'toolbarFilterList', 'virtualScroller', 'virtualScrollerContent', 'virtualScrollerContent--overflowed', 'virtualScrollerRenderZone', 'pinnedColumns', 'pinnedColumns--left', 'pinnedColumns--right', 'pinnedColumnHeaders', 'pinnedColumnHeaders--left', 'pinnedColumnHeaders--right', 'withBorder', 'treeDataGroupingCell', 'treeDataGroupingCellToggle', 'groupingCriteriaCell', 'groupingCriteriaCellToggle']);
|
|
@@ -20,11 +20,16 @@ export var GRID_DEFAULT_LOCALE_TEXT = {
|
|
|
20
20
|
toolbarFiltersTooltipActive: function toolbarFiltersTooltipActive(count) {
|
|
21
21
|
return count !== 1 ? "".concat(count, " active filters") : "".concat(count, " active filter");
|
|
22
22
|
},
|
|
23
|
+
// Quick filter toolbar field
|
|
24
|
+
toolbarQuickFilterPlaceholder: 'Search...',
|
|
25
|
+
toolbarQuickFilterLabel: 'Search',
|
|
26
|
+
toolbarQuickFilterDeleteIconLabel: 'Clear',
|
|
23
27
|
// Export selector toolbar button text
|
|
24
28
|
toolbarExport: 'Export',
|
|
25
29
|
toolbarExportLabel: 'Export',
|
|
26
30
|
toolbarExportCSV: 'Download as CSV',
|
|
27
31
|
toolbarExportPrint: 'Print',
|
|
32
|
+
toolbarExportExcel: 'Download as Excel',
|
|
28
33
|
// Columns panel text
|
|
29
34
|
columnsPanelTextFieldLabel: 'Find column',
|
|
30
35
|
columnsPanelTextFieldPlaceholder: 'Column title',
|
|
@@ -47,31 +47,27 @@ export var useGridPipeProcessing = function useGridPipeProcessing(apiRef) {
|
|
|
47
47
|
var registerPipeProcessor = React.useCallback(function (group, id, processor) {
|
|
48
48
|
if (!processorsCache.current[group]) {
|
|
49
49
|
processorsCache.current[group] = {
|
|
50
|
-
processors:
|
|
50
|
+
processors: new Map(),
|
|
51
51
|
appliers: {}
|
|
52
52
|
};
|
|
53
53
|
}
|
|
54
54
|
|
|
55
55
|
var groupCache = processorsCache.current[group];
|
|
56
|
-
var oldProcessor = groupCache.processors
|
|
56
|
+
var oldProcessor = groupCache.processors.get(id);
|
|
57
57
|
|
|
58
58
|
if (oldProcessor !== processor) {
|
|
59
|
-
groupCache.processors
|
|
59
|
+
groupCache.processors.set(id, processor);
|
|
60
60
|
runAppliers(groupCache);
|
|
61
61
|
}
|
|
62
62
|
|
|
63
63
|
return function () {
|
|
64
|
-
|
|
65
|
-
removedGroupProcessor = _processors[id],
|
|
66
|
-
otherProcessors = _objectWithoutProperties(_processors, [id].map(_toPropertyKey));
|
|
67
|
-
|
|
68
|
-
processorsCache.current[group].processors = otherProcessors;
|
|
64
|
+
processorsCache.current[group].processors.set(id, null);
|
|
69
65
|
};
|
|
70
66
|
}, [runAppliers]);
|
|
71
67
|
var registerPipeApplier = React.useCallback(function (group, id, applier) {
|
|
72
68
|
if (!processorsCache.current[group]) {
|
|
73
69
|
processorsCache.current[group] = {
|
|
74
|
-
processors:
|
|
70
|
+
processors: new Map(),
|
|
75
71
|
appliers: {}
|
|
76
72
|
};
|
|
77
73
|
}
|
|
@@ -104,8 +100,12 @@ export var useGridPipeProcessing = function useGridPipeProcessing(apiRef) {
|
|
|
104
100
|
return value;
|
|
105
101
|
}
|
|
106
102
|
|
|
107
|
-
var preProcessors =
|
|
103
|
+
var preProcessors = Array.from(processorsCache.current[group].processors.values());
|
|
108
104
|
return preProcessors.reduce(function (acc, preProcessor) {
|
|
105
|
+
if (!preProcessor) {
|
|
106
|
+
return acc;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
109
|
return preProcessor(acc, context);
|
|
110
110
|
}, value);
|
|
111
111
|
}, []);
|
|
@@ -3,7 +3,6 @@ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutPr
|
|
|
3
3
|
import _toPropertyKey from "@babel/runtime/helpers/esm/toPropertyKey";
|
|
4
4
|
import * as React from 'react';
|
|
5
5
|
import { useGridApiMethod } from '../../utils/useGridApiMethod';
|
|
6
|
-
import { GridEvents } from '../../../models/events';
|
|
7
6
|
export var GRID_DEFAULT_STRATEGY = 'none';
|
|
8
7
|
export var GRID_STRATEGIES_PROCESSORS = {
|
|
9
8
|
rowTreeCreation: 'rowTree',
|
|
@@ -26,7 +25,7 @@ export var GRID_STRATEGIES_PROCESSORS = {
|
|
|
26
25
|
* The plugin containing the custom logic must use:
|
|
27
26
|
*
|
|
28
27
|
* - `useGridRegisterStrategyProcessor` to register their processor.
|
|
29
|
-
* When the processor of the active strategy changes, it will fire `
|
|
28
|
+
* When the processor of the active strategy changes, it will fire `"activeStrategyProcessorChange"` to re-apply the processor.
|
|
30
29
|
*
|
|
31
30
|
* - `apiRef.current.unstable_setStrategyAvailability` to tell if their strategy can be used.
|
|
32
31
|
*
|
|
@@ -36,12 +35,12 @@ export var GRID_STRATEGIES_PROCESSORS = {
|
|
|
36
35
|
*
|
|
37
36
|
* - `apiRef.current.unstable_applyStrategyProcessor` to run the processor of the active strategy for a given processor name.
|
|
38
37
|
*
|
|
39
|
-
* -
|
|
38
|
+
* - the "strategyAvailabilityChange" event to update something when the active strategy changes.
|
|
40
39
|
* Warning: Be careful not to apply the processor several times.
|
|
41
|
-
* For instance
|
|
40
|
+
* For instance "rowsSet" is fired by `useGridRows` whenever the active strategy changes.
|
|
42
41
|
* So listening to both would most likely run your logic twice.
|
|
43
42
|
*
|
|
44
|
-
* -
|
|
43
|
+
* - The "activeStrategyProcessorChange" event to update something when the processor of the active strategy changes.
|
|
45
44
|
*
|
|
46
45
|
* =====================================================================================================================
|
|
47
46
|
*
|
|
@@ -76,7 +75,7 @@ export var useGridStrategyProcessing = function useGridStrategyProcessing(apiRef
|
|
|
76
75
|
}
|
|
77
76
|
|
|
78
77
|
if (strategyName === apiRef.current.unstable_getActiveStrategy(GRID_STRATEGIES_PROCESSORS[processorName])) {
|
|
79
|
-
apiRef.current.publishEvent(
|
|
78
|
+
apiRef.current.publishEvent('activeStrategyProcessorChange', processorName);
|
|
80
79
|
}
|
|
81
80
|
|
|
82
81
|
return cleanup;
|
|
@@ -118,7 +117,7 @@ export var useGridStrategyProcessing = function useGridStrategyProcessing(apiRef
|
|
|
118
117
|
group: strategyGroup,
|
|
119
118
|
isAvailable: isAvailable
|
|
120
119
|
});
|
|
121
|
-
apiRef.current.publishEvent(
|
|
120
|
+
apiRef.current.publishEvent('strategyAvailabilityChange');
|
|
122
121
|
}, [apiRef]);
|
|
123
122
|
var strategyProcessingApi = {
|
|
124
123
|
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
|
};
|
|
@@ -52,7 +52,7 @@ export function useGridApiInitialization(inputApiRef, props) {
|
|
|
52
52
|
};
|
|
53
53
|
}, [apiRef]);
|
|
54
54
|
var showError = React.useCallback(function (args) {
|
|
55
|
-
apiRef.current.publishEvent(
|
|
55
|
+
apiRef.current.publishEvent('componentError', args);
|
|
56
56
|
}, [apiRef]);
|
|
57
57
|
useGridApiMethod(apiRef, {
|
|
58
58
|
subscribeEvent: subscribeEvent,
|
|
@@ -62,7 +62,7 @@ export function useGridApiInitialization(inputApiRef, props) {
|
|
|
62
62
|
React.useEffect(function () {
|
|
63
63
|
var api = apiRef.current;
|
|
64
64
|
return function () {
|
|
65
|
-
api.publishEvent(
|
|
65
|
+
api.publishEvent('unmount');
|
|
66
66
|
};
|
|
67
67
|
}, [apiRef]);
|
|
68
68
|
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
|
var handleError = React.useCallback(function (args) {
|
|
@@ -14,5 +13,5 @@ export function useGridErrorHandler(apiRef, props) {
|
|
|
14
13
|
React.useEffect(function () {
|
|
15
14
|
handleError(props.error);
|
|
16
15
|
}, [handleError, props.error]);
|
|
17
|
-
useGridApiEventHandler(apiRef,
|
|
16
|
+
useGridApiEventHandler(apiRef, 'componentError', handleError);
|
|
18
17
|
}
|
|
@@ -4,7 +4,6 @@ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
|
4
4
|
var _excluded = ["stateId"];
|
|
5
5
|
import * as React from 'react';
|
|
6
6
|
import { GridSignature } from '../utils/useGridApiEventHandler';
|
|
7
|
-
import { GridEvents } from '../../models/events';
|
|
8
7
|
import { useGridApiMethod } from '../utils';
|
|
9
8
|
import { isFunction } from '../../utils/utils';
|
|
10
9
|
export var useGridStateInitialization = function useGridStateInitialization(apiRef, props) {
|
|
@@ -71,7 +70,7 @@ export var useGridStateInitialization = function useGridStateInitialization(apiR
|
|
|
71
70
|
apiRef.current.state = newState;
|
|
72
71
|
|
|
73
72
|
if (apiRef.current.publishEvent) {
|
|
74
|
-
apiRef.current.publishEvent(
|
|
73
|
+
apiRef.current.publishEvent('stateChange', newState);
|
|
75
74
|
}
|
|
76
75
|
}
|
|
77
76
|
|
|
@@ -14,7 +14,6 @@ import { gridSortColumnLookupSelector } from '../sorting/gridSortingSelector';
|
|
|
14
14
|
import { gridColumnMenuSelector } from '../columnMenu/columnMenuSelector';
|
|
15
15
|
import { useGridRootProps } from '../../utils/useGridRootProps';
|
|
16
16
|
import { useGridApiEventHandler } from '../../utils/useGridApiEventHandler';
|
|
17
|
-
import { GridEvents } from '../../../models/events';
|
|
18
17
|
import { GridColumnHeaderItem } from '../../../components/columnHeaders/GridColumnHeaderItem';
|
|
19
18
|
import { getFirstColumnIndexToRender } from '../columns/gridColumnsUtils';
|
|
20
19
|
import { useGridVisibleRows } from '../../utils/useGridVisibleRows';
|
|
@@ -160,11 +159,11 @@ export var useGridColumnHeaders = function useGridColumnHeaders(props) {
|
|
|
160
159
|
var handleColumnReorderStop = React.useCallback(function () {
|
|
161
160
|
return setDragCol('');
|
|
162
161
|
}, []);
|
|
163
|
-
useGridApiEventHandler(apiRef,
|
|
164
|
-
useGridApiEventHandler(apiRef,
|
|
165
|
-
useGridApiEventHandler(apiRef,
|
|
166
|
-
useGridApiEventHandler(apiRef,
|
|
167
|
-
useGridApiEventHandler(apiRef,
|
|
162
|
+
useGridApiEventHandler(apiRef, 'columnResizeStart', handleColumnResizeStart);
|
|
163
|
+
useGridApiEventHandler(apiRef, 'columnResizeStop', handleColumnResizeStop);
|
|
164
|
+
useGridApiEventHandler(apiRef, 'columnHeaderDragStart', handleColumnReorderStart);
|
|
165
|
+
useGridApiEventHandler(apiRef, 'columnHeaderDragEnd', handleColumnReorderStop);
|
|
166
|
+
useGridApiEventHandler(apiRef, 'rowsScroll', handleScroll);
|
|
168
167
|
|
|
169
168
|
var getColumns = function getColumns(params) {
|
|
170
169
|
var other = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
import { GridEvents } from '../../../models/events';
|
|
4
3
|
import { useGridLogger, useGridApiMethod, useGridApiEventHandler } from '../../utils';
|
|
5
4
|
import { gridColumnMenuSelector } from './columnMenuSelector';
|
|
6
5
|
export var columnMenuStateInitializer = function columnMenuStateInitializer(state) {
|
|
@@ -80,7 +79,7 @@ export var useGridColumnMenu = function useGridColumnMenu(apiRef) {
|
|
|
80
79
|
* EVENTS
|
|
81
80
|
*/
|
|
82
81
|
|
|
83
|
-
useGridApiEventHandler(apiRef,
|
|
84
|
-
useGridApiEventHandler(apiRef,
|
|
85
|
-
useGridApiEventHandler(apiRef,
|
|
82
|
+
useGridApiEventHandler(apiRef, 'columnResizeStart', hideColumnMenu);
|
|
83
|
+
useGridApiEventHandler(apiRef, 'virtualScrollerWheel', apiRef.current.hideColumnMenu);
|
|
84
|
+
useGridApiEventHandler(apiRef, 'virtualScrollerTouchMove', apiRef.current.hideColumnMenu);
|
|
86
85
|
};
|
|
@@ -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)
|
|
@@ -103,5 +102,5 @@ export var useGridColumnSpanning = function useGridColumnSpanning(apiRef) {
|
|
|
103
102
|
// `colSpan` needs to be recalculated after column reordering
|
|
104
103
|
lookup.current = {};
|
|
105
104
|
}, []);
|
|
106
|
-
useGridApiEventHandler(apiRef,
|
|
105
|
+
useGridApiEventHandler(apiRef, 'columnOrderChange', handleColumnReorderChange);
|
|
107
106
|
};
|
|
@@ -2,7 +2,6 @@ import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
|
|
2
2
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
3
3
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
4
4
|
import * as React from 'react';
|
|
5
|
-
import { GridEvents } from '../../../models/events';
|
|
6
5
|
import { useGridApiMethod } from '../../utils/useGridApiMethod';
|
|
7
6
|
import { useGridLogger } from '../../utils/useGridLogger';
|
|
8
7
|
import { gridColumnFieldsSelector, gridColumnDefinitionsSelector, gridColumnLookupSelector, gridColumnsMetaSelector, gridColumnsSelector, gridColumnVisibilityModelSelector, gridVisibleColumnDefinitionsSelector, gridColumnPositionsSelector } from './gridColumnsSelector';
|
|
@@ -15,6 +14,9 @@ export var columnsStateInitializer = function columnsStateInitializer(state, pro
|
|
|
15
14
|
var _props$initialState, _props$initialState$c, _props$initialState2, _ref, _props$columnVisibili, _props$initialState3, _props$initialState3$;
|
|
16
15
|
|
|
17
16
|
var isUsingColumnVisibilityModel = !!props.columnVisibilityModel || !!((_props$initialState = props.initialState) != null && (_props$initialState$c = _props$initialState.columns) != null && _props$initialState$c.columnVisibilityModel);
|
|
17
|
+
apiRef.current.unstable_caches.columns = {
|
|
18
|
+
isUsingColumnVisibilityModel: isUsingColumnVisibilityModel
|
|
19
|
+
};
|
|
18
20
|
var columnsTypes = computeColumnTypes(props.columnTypes);
|
|
19
21
|
var columnsState = createColumnsState({
|
|
20
22
|
apiRef: apiRef,
|
|
@@ -36,7 +38,7 @@ export var columnsStateInitializer = function columnsStateInitializer(state, pro
|
|
|
36
38
|
*/
|
|
37
39
|
|
|
38
40
|
export function useGridColumns(apiRef, props) {
|
|
39
|
-
var _props$
|
|
41
|
+
var _props$componentsProp2;
|
|
40
42
|
|
|
41
43
|
var logger = useGridLogger(apiRef, 'useGridColumns');
|
|
42
44
|
var columnTypes = React.useMemo(function () {
|
|
@@ -44,24 +46,18 @@ export function useGridColumns(apiRef, props) {
|
|
|
44
46
|
}, [props.columnTypes]);
|
|
45
47
|
var previousColumnsProp = React.useRef(props.columns);
|
|
46
48
|
var previousColumnTypesProp = React.useRef(columnTypes);
|
|
47
|
-
/**
|
|
48
|
-
* If `initialState.columns.columnVisibilityModel` or `columnVisibilityModel` was defined during the 1st render, we are directly updating the model
|
|
49
|
-
* If not, we keep the old behavior and update the `GridColDef.hide` option (which will update the state model through the `GridColDef.hide` => `columnVisibilityModel` sync in `createColumnsState`
|
|
50
|
-
*/
|
|
51
|
-
|
|
52
|
-
var isUsingColumnVisibilityModel = React.useRef(!!props.columnVisibilityModel || !!((_props$initialState4 = props.initialState) != null && (_props$initialState4$ = _props$initialState4.columns) != null && _props$initialState4$.columnVisibilityModel));
|
|
53
49
|
apiRef.current.unstable_updateControlState({
|
|
54
50
|
stateId: 'visibleColumns',
|
|
55
51
|
propModel: props.columnVisibilityModel,
|
|
56
52
|
propOnChange: props.onColumnVisibilityModelChange,
|
|
57
53
|
stateSelector: gridColumnVisibilityModelSelector,
|
|
58
|
-
changeEvent:
|
|
54
|
+
changeEvent: 'columnVisibilityModelChange'
|
|
59
55
|
});
|
|
60
56
|
var setGridColumnsState = React.useCallback(function (columnsState) {
|
|
61
57
|
logger.debug('Updating columns state.');
|
|
62
58
|
apiRef.current.setState(mergeColumnsState(columnsState));
|
|
63
59
|
apiRef.current.forceUpdate();
|
|
64
|
-
apiRef.current.publishEvent(
|
|
60
|
+
apiRef.current.publishEvent('columnsChange', columnsState.all);
|
|
65
61
|
}, [logger, apiRef]);
|
|
66
62
|
/**
|
|
67
63
|
* API METHODS
|
|
@@ -128,7 +124,7 @@ export function useGridColumns(apiRef, props) {
|
|
|
128
124
|
// We keep updating the `hide` option of `GridColDef` when not controlling the model to avoid any breaking change.
|
|
129
125
|
// `updateColumns` take care of updating the model itself if needs be.
|
|
130
126
|
// TODO v6: stop using the `hide` field even when the model is not defined
|
|
131
|
-
if (
|
|
127
|
+
if (apiRef.current.unstable_caches.columns.isUsingColumnVisibilityModel) {
|
|
132
128
|
var _columnVisibilityMode;
|
|
133
129
|
|
|
134
130
|
var columnVisibilityModel = gridColumnVisibilityModelSelector(apiRef);
|
|
@@ -152,7 +148,7 @@ export function useGridColumns(apiRef, props) {
|
|
|
152
148
|
colDef: newColumn,
|
|
153
149
|
isVisible: isVisible
|
|
154
150
|
};
|
|
155
|
-
apiRef.current.publishEvent(
|
|
151
|
+
apiRef.current.publishEvent('columnVisibilityChange', params);
|
|
156
152
|
}
|
|
157
153
|
}, [apiRef]);
|
|
158
154
|
var setColumnIndex = React.useCallback(function (field, targetIndexPosition) {
|
|
@@ -169,7 +165,8 @@ export function useGridColumns(apiRef, props) {
|
|
|
169
165
|
|
|
170
166
|
var updatedColumns = _toConsumableArray(allColumns);
|
|
171
167
|
|
|
172
|
-
|
|
168
|
+
var fieldRemoved = updatedColumns.splice(oldIndexPosition, 1)[0];
|
|
169
|
+
updatedColumns.splice(targetIndexPosition, 0, fieldRemoved);
|
|
173
170
|
setGridColumnsState(_extends({}, gridColumnsSelector(apiRef.current.state), {
|
|
174
171
|
all: updatedColumns
|
|
175
172
|
}));
|
|
@@ -180,7 +177,7 @@ export function useGridColumns(apiRef, props) {
|
|
|
180
177
|
targetIndex: targetIndexPosition,
|
|
181
178
|
oldIndex: oldIndexPosition
|
|
182
179
|
};
|
|
183
|
-
apiRef.current.publishEvent(
|
|
180
|
+
apiRef.current.publishEvent('columnOrderChange', params);
|
|
184
181
|
}, [apiRef, logger, setGridColumnsState]);
|
|
185
182
|
var setColumnWidth = React.useCallback(function (field, width) {
|
|
186
183
|
logger.debug("Updating column ".concat(field, " width to ").concat(width));
|
|
@@ -191,7 +188,7 @@ export function useGridColumns(apiRef, props) {
|
|
|
191
188
|
});
|
|
192
189
|
|
|
193
190
|
apiRef.current.updateColumns([newColumn]);
|
|
194
|
-
apiRef.current.publishEvent(
|
|
191
|
+
apiRef.current.publishEvent('columnWidthChange', {
|
|
195
192
|
element: apiRef.current.getColumnHeaderElement(field),
|
|
196
193
|
colDef: newColumn,
|
|
197
194
|
width: width
|
|
@@ -219,7 +216,7 @@ export function useGridColumns(apiRef, props) {
|
|
|
219
216
|
var stateExportPreProcessing = React.useCallback(function (prevState) {
|
|
220
217
|
var columnsStateToExport = {};
|
|
221
218
|
|
|
222
|
-
if (
|
|
219
|
+
if (apiRef.current.unstable_caches.columns.isUsingColumnVisibilityModel) {
|
|
223
220
|
var columnVisibilityModelToExport = gridColumnVisibilityModelSelector(apiRef);
|
|
224
221
|
var hasHiddenColumns = Object.values(columnVisibilityModelToExport).some(function (value) {
|
|
225
222
|
return value === false;
|
|
@@ -260,7 +257,7 @@ export function useGridColumns(apiRef, props) {
|
|
|
260
257
|
var stateRestorePreProcessing = React.useCallback(function (params, context) {
|
|
261
258
|
var _context$stateToResto;
|
|
262
259
|
|
|
263
|
-
var columnVisibilityModelToImport =
|
|
260
|
+
var columnVisibilityModelToImport = apiRef.current.unstable_caches.columns.isUsingColumnVisibilityModel ? (_context$stateToResto = context.stateToRestore.columns) == null ? void 0 : _context$stateToResto.columnVisibilityModel : undefined;
|
|
264
261
|
var initialState = context.stateToRestore.columns;
|
|
265
262
|
|
|
266
263
|
if (columnVisibilityModelToImport == null && initialState == null) {
|
|
@@ -272,14 +269,14 @@ export function useGridColumns(apiRef, props) {
|
|
|
272
269
|
columnTypes: columnTypes,
|
|
273
270
|
columnsToUpsert: [],
|
|
274
271
|
initialState: initialState,
|
|
275
|
-
shouldRegenColumnVisibilityModelFromColumns: !
|
|
272
|
+
shouldRegenColumnVisibilityModelFromColumns: !apiRef.current.unstable_caches.columns.isUsingColumnVisibilityModel,
|
|
276
273
|
currentColumnVisibilityModel: columnVisibilityModelToImport,
|
|
277
274
|
keepOnlyColumnsToUpsert: false
|
|
278
275
|
});
|
|
279
276
|
apiRef.current.setState(mergeColumnsState(columnsState));
|
|
280
277
|
|
|
281
278
|
if (initialState != null) {
|
|
282
|
-
apiRef.current.publishEvent(
|
|
279
|
+
apiRef.current.publishEvent('columnsChange', columnsState.all);
|
|
283
280
|
}
|
|
284
281
|
|
|
285
282
|
return params;
|
|
@@ -310,8 +307,8 @@ export function useGridColumns(apiRef, props) {
|
|
|
310
307
|
}
|
|
311
308
|
};
|
|
312
309
|
|
|
313
|
-
useGridApiEventHandler(apiRef,
|
|
314
|
-
useGridApiOptionHandler(apiRef,
|
|
310
|
+
useGridApiEventHandler(apiRef, 'viewportInnerSizeChange', handleGridSizeChange);
|
|
311
|
+
useGridApiOptionHandler(apiRef, 'columnVisibilityChange', props.onColumnVisibilityChange);
|
|
315
312
|
/**
|
|
316
313
|
* APPLIERS
|
|
317
314
|
*/
|
|
@@ -323,7 +320,7 @@ export function useGridColumns(apiRef, props) {
|
|
|
323
320
|
columnTypes: columnTypes,
|
|
324
321
|
columnsToUpsert: [],
|
|
325
322
|
initialState: undefined,
|
|
326
|
-
shouldRegenColumnVisibilityModelFromColumns: !
|
|
323
|
+
shouldRegenColumnVisibilityModelFromColumns: !apiRef.current.unstable_caches.columns.isUsingColumnVisibilityModel,
|
|
327
324
|
keepOnlyColumnsToUpsert: false
|
|
328
325
|
});
|
|
329
326
|
setGridColumnsState(columnsState);
|
|
@@ -353,7 +350,7 @@ export function useGridColumns(apiRef, props) {
|
|
|
353
350
|
columnTypes: columnTypes,
|
|
354
351
|
initialState: undefined,
|
|
355
352
|
// If the user provides a model, we don't want to set it in the state here because it has it's dedicated `useEffect` which calls `setColumnVisibilityModel`
|
|
356
|
-
shouldRegenColumnVisibilityModelFromColumns: !
|
|
353
|
+
shouldRegenColumnVisibilityModelFromColumns: !apiRef.current.unstable_caches.columns.isUsingColumnVisibilityModel,
|
|
357
354
|
columnsToUpsert: props.columns,
|
|
358
355
|
keepOnlyColumnsToUpsert: true
|
|
359
356
|
});
|