@mui/x-data-grid 7.0.0-alpha.7 → 7.0.0-alpha.9
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 +554 -51
- package/DataGrid/DataGrid.js +15 -27
- package/DataGrid/useDataGridComponent.js +2 -1
- package/DataGrid/useDataGridProps.js +1 -0
- package/README.md +1 -1
- package/colDef/gridDateColDef.js +1 -1
- package/components/GridColumnHeaders.d.ts +3 -2
- package/components/GridColumnHeaders.js +3 -11
- package/components/GridDetailPanels.d.ts +5 -0
- package/components/GridDetailPanels.js +4 -0
- package/components/GridHeaders.d.ts +4 -0
- package/components/GridHeaders.js +53 -0
- package/components/GridPagination.d.ts +4 -4
- package/components/GridPagination.js +1 -1
- package/components/GridPinnedRows.d.ts +7 -0
- package/components/GridPinnedRows.js +4 -0
- package/components/GridRow.d.ts +7 -4
- package/components/GridRow.js +260 -97
- package/components/GridScrollbarFillerCell.d.ts +7 -0
- package/components/GridScrollbarFillerCell.js +39 -0
- package/components/base/GridBody.d.ts +2 -13
- package/components/base/GridBody.js +2 -116
- package/components/base/GridOverlays.js +10 -21
- package/components/cell/GridActionsCell.js +1 -1
- package/components/cell/GridActionsCellItem.d.ts +6 -6
- package/components/cell/GridCell.d.ts +15 -21
- package/components/cell/GridCell.js +68 -373
- package/components/columnHeaders/GridBaseColumnHeaders.js +1 -6
- package/components/columnHeaders/GridColumnHeaderItem.d.ts +2 -1
- package/components/columnHeaders/GridColumnHeaderItem.js +7 -3
- package/components/columnHeaders/GridColumnHeaderSortIcon.d.ts +1 -0
- package/components/columnHeaders/GridColumnHeaderSortIcon.js +5 -2
- package/components/columnHeaders/GridColumnHeadersInner.js +1 -2
- package/components/containers/GridRoot.js +18 -15
- package/components/containers/GridRootStyles.js +307 -204
- package/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +1 -1
- package/components/panel/GridPanel.d.ts +3 -3
- package/components/panel/GridPanel.js +3 -4
- package/components/panel/filterPanel/GridFilterForm.d.ts +6 -4
- package/components/panel/filterPanel/GridFilterForm.js +32 -15
- package/components/panel/filterPanel/GridFilterPanel.js +46 -20
- package/components/toolbar/GridToolbarColumnsButton.d.ts +13 -1
- package/components/toolbar/GridToolbarColumnsButton.js +40 -22
- package/components/toolbar/GridToolbarDensitySelector.d.ts +13 -1
- package/components/toolbar/GridToolbarDensitySelector.js +40 -22
- package/components/toolbar/GridToolbarExport.d.ts +10 -1
- package/components/toolbar/GridToolbarExport.js +6 -1
- package/components/toolbar/GridToolbarExportContainer.d.ts +15 -1
- package/components/toolbar/GridToolbarExportContainer.js +41 -23
- package/components/toolbar/GridToolbarFilterButton.d.ts +5 -4
- package/components/toolbar/GridToolbarFilterButton.js +6 -10
- package/components/toolbar/GridToolbarQuickFilter.d.ts +4 -0
- package/components/toolbar/GridToolbarQuickFilter.js +4 -0
- package/components/virtualization/GridBottomContainer.d.ts +2 -0
- package/components/virtualization/GridBottomContainer.js +25 -0
- package/components/{containers → virtualization}/GridMainContainer.d.ts +2 -0
- package/components/virtualization/GridMainContainer.js +20 -0
- package/components/virtualization/GridTopContainer.d.ts +2 -0
- package/components/virtualization/GridTopContainer.js +35 -0
- package/components/virtualization/GridVirtualScrollbar.d.ts +7 -0
- package/components/virtualization/GridVirtualScrollbar.js +131 -0
- package/components/virtualization/GridVirtualScroller.d.ts +4 -4
- package/components/virtualization/GridVirtualScroller.js +69 -16
- package/components/virtualization/GridVirtualScrollerFiller.d.ts +4 -0
- package/components/virtualization/GridVirtualScrollerFiller.js +71 -0
- package/components/virtualization/GridVirtualScrollerRenderZone.js +2 -1
- package/constants/defaultGridSlotsComponents.js +6 -2
- package/constants/gridClasses.d.ts +60 -8
- package/constants/gridClasses.js +1 -1
- package/hooks/core/gridCoreSelector.d.ts +6 -0
- package/hooks/core/gridCoreSelector.js +5 -0
- package/hooks/core/useGridInitialization.js +4 -0
- package/hooks/core/useGridLoggerFactory.js +2 -2
- package/hooks/core/useGridRefs.d.ts +3 -0
- package/hooks/core/useGridRefs.js +13 -0
- package/hooks/core/useGridTheme.d.ts +3 -0
- package/hooks/core/useGridTheme.js +19 -0
- package/hooks/features/columnGrouping/gridColumnGroupsUtils.js +1 -1
- package/hooks/features/columnGrouping/useGridColumnGrouping.d.ts +1 -1
- package/hooks/features/columnGrouping/useGridColumnGrouping.js +13 -18
- package/hooks/features/columnHeaders/useGridColumnHeaders.d.ts +13 -18
- package/hooks/features/columnHeaders/useGridColumnHeaders.js +68 -162
- package/hooks/features/columnMenu/useGridColumnMenu.js +28 -23
- package/hooks/features/columns/gridColumnsInterfaces.d.ts +17 -0
- package/hooks/features/columns/gridColumnsInterfaces.js +9 -1
- package/hooks/features/columns/gridColumnsSelector.d.ts +14 -1
- package/hooks/features/columns/gridColumnsSelector.js +52 -0
- package/hooks/features/columns/gridColumnsUtils.d.ts +1 -5
- package/hooks/features/columns/gridColumnsUtils.js +10 -12
- package/hooks/features/columns/index.d.ts +2 -2
- package/hooks/features/columns/index.js +2 -1
- package/hooks/features/columns/useGridColumnSpanning.js +62 -61
- package/hooks/features/columns/useGridColumns.js +20 -23
- package/hooks/features/dimensions/gridDimensionsApi.d.ts +60 -11
- package/hooks/features/dimensions/gridDimensionsSelectors.d.ts +2 -0
- package/hooks/features/dimensions/gridDimensionsSelectors.js +1 -0
- package/hooks/features/dimensions/index.d.ts +2 -0
- package/hooks/features/dimensions/index.js +1 -0
- package/hooks/features/dimensions/useGridDimensions.d.ts +7 -1
- package/hooks/features/dimensions/useGridDimensions.js +216 -148
- package/hooks/features/editing/useGridCellEditing.js +4 -4
- package/hooks/features/editing/useGridRowEditing.js +4 -4
- package/hooks/features/export/serializers/csvSerializer.js +3 -3
- package/hooks/features/export/useGridPrintExport.js +1 -1
- package/hooks/features/filter/gridFilterUtils.js +5 -5
- package/hooks/features/filter/useGridFilter.js +3 -3
- package/hooks/features/focus/gridFocusStateSelector.d.ts +2 -2
- package/hooks/features/focus/gridFocusStateSelector.js +2 -6
- package/hooks/features/focus/useGridFocus.js +3 -3
- package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +3 -16
- package/hooks/features/pagination/gridPaginationUtils.js +2 -2
- package/hooks/features/pagination/useGridPagination.js +3 -5
- package/hooks/features/rowSelection/useGridRowSelection.js +1 -1
- package/hooks/features/rows/gridRowsInterfaces.d.ts +1 -0
- package/hooks/features/rows/gridRowsSelector.d.ts +2 -2
- package/hooks/features/rows/gridRowsSelector.js +5 -5
- package/hooks/features/rows/gridRowsUtils.d.ts +1 -1
- package/hooks/features/rows/gridRowsUtils.js +6 -6
- package/hooks/features/rows/useGridRows.js +7 -7
- package/hooks/features/rows/useGridRowsMeta.js +9 -6
- package/hooks/features/scroll/useGridScroll.js +8 -10
- package/hooks/features/sorting/gridSortingUtils.js +5 -3
- package/hooks/features/sorting/useGridSorting.d.ts +1 -1
- package/hooks/features/sorting/useGridSorting.js +15 -10
- package/hooks/features/virtualization/gridVirtualizationSelectors.d.ts +14 -0
- package/hooks/features/virtualization/gridVirtualizationSelectors.js +22 -2
- package/hooks/features/virtualization/useGridVirtualScroller.d.ts +27 -42
- package/hooks/features/virtualization/useGridVirtualScroller.js +441 -438
- package/hooks/features/virtualization/useGridVirtualization.d.ts +8 -0
- package/hooks/features/virtualization/useGridVirtualization.js +8 -1
- package/hooks/utils/index.d.ts +3 -0
- package/hooks/utils/index.js +4 -1
- package/hooks/utils/useGridApiContext.js +1 -1
- package/hooks/utils/useGridAriaAttributes.js +1 -2
- package/hooks/utils/useGridNativeEventListener.js +4 -9
- package/hooks/utils/useGridPrivateApiContext.js +1 -1
- package/hooks/utils/useGridRootProps.js +1 -1
- package/hooks/utils/useGridSelector.js +1 -1
- package/hooks/utils/useResizeObserver.d.ts +2 -0
- package/hooks/utils/useResizeObserver.js +36 -0
- package/hooks/utils/useRunOnce.d.ts +5 -0
- package/hooks/utils/useRunOnce.js +18 -0
- package/index.d.ts +0 -1
- package/index.js +1 -2
- package/internals/index.d.ts +13 -9
- package/internals/index.js +9 -7
- package/internals/utils/index.d.ts +1 -0
- package/internals/utils/index.js +2 -1
- package/internals/utils/propValidation.d.ts +4 -0
- package/internals/utils/propValidation.js +19 -0
- package/legacy/DataGrid/DataGrid.js +20 -29
- package/legacy/DataGrid/useDataGridComponent.js +2 -1
- package/legacy/DataGrid/useDataGridProps.js +1 -0
- package/legacy/colDef/gridDateColDef.js +1 -1
- package/legacy/components/GridColumnHeaders.js +3 -11
- package/legacy/components/GridDetailPanels.js +4 -0
- package/legacy/components/GridHeaders.js +53 -0
- package/legacy/components/GridPagination.js +1 -1
- package/legacy/components/GridPinnedRows.js +4 -0
- package/legacy/components/GridRow.js +258 -98
- package/legacy/components/GridScrollbarFillerCell.js +36 -0
- package/legacy/components/base/GridBody.js +2 -114
- package/legacy/components/base/GridOverlays.js +10 -25
- package/legacy/components/cell/GridActionsCell.js +1 -1
- package/legacy/components/cell/GridCell.js +70 -378
- package/legacy/components/columnHeaders/GridBaseColumnHeaders.js +1 -6
- package/legacy/components/columnHeaders/GridColumnHeaderItem.js +7 -3
- package/legacy/components/columnHeaders/GridColumnHeaderSortIcon.js +5 -2
- package/legacy/components/columnHeaders/GridColumnHeadersInner.js +1 -2
- package/legacy/components/containers/GridRoot.js +18 -15
- package/legacy/components/containers/GridRootStyles.js +215 -137
- package/legacy/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +1 -1
- package/legacy/components/panel/GridPanel.js +3 -4
- package/legacy/components/panel/filterPanel/GridFilterForm.js +31 -14
- package/legacy/components/panel/filterPanel/GridFilterPanel.js +49 -20
- package/legacy/components/toolbar/GridToolbarColumnsButton.js +40 -21
- package/legacy/components/toolbar/GridToolbarDensitySelector.js +40 -21
- package/legacy/components/toolbar/GridToolbarExport.js +6 -1
- package/legacy/components/toolbar/GridToolbarExportContainer.js +40 -21
- package/legacy/components/toolbar/GridToolbarFilterButton.js +6 -10
- package/legacy/components/toolbar/GridToolbarQuickFilter.js +4 -0
- package/legacy/components/virtualization/GridBottomContainer.js +25 -0
- package/legacy/components/virtualization/GridMainContainer.js +20 -0
- package/legacy/components/virtualization/GridTopContainer.js +35 -0
- package/legacy/components/virtualization/GridVirtualScrollbar.js +129 -0
- package/legacy/components/virtualization/GridVirtualScroller.js +67 -16
- package/legacy/components/virtualization/GridVirtualScrollerFiller.js +70 -0
- package/legacy/components/virtualization/GridVirtualScrollerRenderZone.js +2 -1
- package/legacy/constants/defaultGridSlotsComponents.js +6 -2
- package/legacy/constants/gridClasses.js +1 -1
- package/legacy/hooks/core/gridCoreSelector.js +7 -0
- package/legacy/hooks/core/useGridInitialization.js +4 -0
- package/legacy/hooks/core/useGridLoggerFactory.js +2 -2
- package/legacy/hooks/core/useGridRefs.js +13 -0
- package/legacy/hooks/core/useGridTheme.js +21 -0
- package/legacy/hooks/features/columnGrouping/gridColumnGroupsUtils.js +1 -1
- package/legacy/hooks/features/columnGrouping/useGridColumnGrouping.js +13 -18
- package/legacy/hooks/features/columnHeaders/useGridColumnHeaders.js +69 -181
- package/legacy/hooks/features/columnMenu/useGridColumnMenu.js +28 -23
- package/legacy/hooks/features/columns/gridColumnsInterfaces.js +9 -1
- package/legacy/hooks/features/columns/gridColumnsSelector.js +62 -0
- package/legacy/hooks/features/columns/gridColumnsUtils.js +10 -16
- package/legacy/hooks/features/columns/index.js +2 -1
- package/legacy/hooks/features/columns/useGridColumnSpanning.js +60 -59
- package/legacy/hooks/features/columns/useGridColumns.js +22 -23
- package/legacy/hooks/features/dimensions/gridDimensionsSelectors.js +3 -0
- package/legacy/hooks/features/dimensions/index.js +1 -0
- package/legacy/hooks/features/dimensions/useGridDimensions.js +226 -151
- package/legacy/hooks/features/editing/useGridCellEditing.js +4 -4
- package/legacy/hooks/features/editing/useGridRowEditing.js +4 -4
- package/legacy/hooks/features/export/serializers/csvSerializer.js +3 -3
- package/legacy/hooks/features/export/useGridPrintExport.js +1 -1
- package/legacy/hooks/features/filter/gridFilterUtils.js +5 -5
- package/legacy/hooks/features/filter/useGridFilter.js +3 -3
- package/legacy/hooks/features/focus/gridFocusStateSelector.js +2 -6
- package/legacy/hooks/features/focus/useGridFocus.js +3 -3
- package/legacy/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +3 -16
- package/legacy/hooks/features/pagination/gridPaginationUtils.js +2 -2
- package/legacy/hooks/features/pagination/useGridPagination.js +3 -5
- package/legacy/hooks/features/rowSelection/useGridRowSelection.js +1 -1
- package/legacy/hooks/features/rows/gridRowsSelector.js +5 -5
- package/legacy/hooks/features/rows/gridRowsUtils.js +6 -6
- package/legacy/hooks/features/rows/useGridParamsApi.js +4 -5
- package/legacy/hooks/features/rows/useGridRows.js +7 -7
- package/legacy/hooks/features/rows/useGridRowsMeta.js +9 -6
- package/legacy/hooks/features/scroll/useGridScroll.js +8 -10
- package/legacy/hooks/features/sorting/gridSortingUtils.js +5 -3
- package/legacy/hooks/features/sorting/useGridSorting.js +15 -10
- package/legacy/hooks/features/virtualization/gridVirtualizationSelectors.js +29 -1
- package/legacy/hooks/features/virtualization/useGridVirtualScroller.js +490 -483
- package/legacy/hooks/features/virtualization/useGridVirtualization.js +8 -1
- package/legacy/hooks/utils/index.js +4 -1
- package/legacy/hooks/utils/useGridApiContext.js +1 -1
- package/legacy/hooks/utils/useGridAriaAttributes.js +1 -2
- package/legacy/hooks/utils/useGridNativeEventListener.js +4 -9
- package/legacy/hooks/utils/useGridPrivateApiContext.js +1 -1
- package/legacy/hooks/utils/useGridRootProps.js +1 -1
- package/legacy/hooks/utils/useGridSelector.js +1 -1
- package/legacy/hooks/utils/useResizeObserver.js +36 -0
- package/legacy/hooks/utils/useRunOnce.js +18 -0
- package/legacy/index.js +1 -2
- package/legacy/internals/index.js +9 -7
- package/legacy/internals/utils/index.js +2 -1
- package/legacy/internals/utils/propValidation.js +21 -0
- package/legacy/locales/hrHR.js +161 -0
- package/legacy/locales/index.js +4 -1
- package/legacy/locales/ptPT.js +161 -0
- package/legacy/locales/zhHK.js +161 -0
- package/legacy/models/index.js +0 -1
- package/legacy/models/params/index.js +1 -2
- package/legacy/utils/createSelector.js +1 -1
- package/legacy/utils/exportAs.js +1 -1
- package/legacy/utils/utils.js +10 -1
- package/locales/hrHR.d.ts +1 -0
- package/locales/hrHR.js +149 -0
- package/locales/index.d.ts +3 -0
- package/locales/index.js +4 -1
- package/locales/ptPT.d.ts +1 -0
- package/locales/ptPT.js +149 -0
- package/locales/zhHK.d.ts +1 -0
- package/locales/zhHK.js +149 -0
- package/models/api/gridColumnGroupingApi.d.ts +2 -2
- package/models/api/gridCoreApi.d.ts +16 -16
- package/models/api/gridRowsMetaApi.d.ts +1 -1
- package/models/api/gridVirtualizationApi.d.ts +2 -3
- package/models/events/gridEventLookup.d.ts +3 -3
- package/models/gridFilterModel.d.ts +1 -1
- package/models/gridSlotsComponent.d.ts +16 -2
- package/models/gridStateCommunity.d.ts +5 -1
- package/models/index.d.ts +0 -1
- package/models/index.js +0 -1
- package/models/params/index.d.ts +0 -1
- package/models/params/index.js +1 -2
- package/models/props/DataGridProps.d.ts +7 -12
- package/modern/DataGrid/DataGrid.js +15 -27
- package/modern/DataGrid/useDataGridComponent.js +2 -1
- package/modern/DataGrid/useDataGridProps.js +1 -0
- package/modern/colDef/gridDateColDef.js +1 -1
- package/modern/components/GridColumnHeaders.js +3 -11
- package/modern/components/GridDetailPanels.js +4 -0
- package/modern/components/GridHeaders.js +53 -0
- package/modern/components/GridPagination.js +1 -1
- package/modern/components/GridPinnedRows.js +4 -0
- package/modern/components/GridRow.js +258 -96
- package/modern/components/GridScrollbarFillerCell.js +39 -0
- package/modern/components/base/GridBody.js +2 -116
- package/modern/components/base/GridOverlays.js +10 -16
- package/modern/components/cell/GridActionsCell.js +1 -1
- package/modern/components/cell/GridCell.js +66 -370
- package/modern/components/columnHeaders/GridBaseColumnHeaders.js +1 -6
- package/modern/components/columnHeaders/GridColumnHeaderItem.js +7 -3
- package/modern/components/columnHeaders/GridColumnHeaderSortIcon.js +5 -2
- package/modern/components/columnHeaders/GridColumnHeadersInner.js +1 -1
- package/modern/components/containers/GridRoot.js +18 -14
- package/modern/components/containers/GridRootStyles.js +307 -204
- package/modern/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +1 -1
- package/modern/components/panel/GridPanel.js +3 -4
- package/modern/components/panel/filterPanel/GridFilterForm.js +31 -14
- package/modern/components/panel/filterPanel/GridFilterPanel.js +46 -20
- package/modern/components/toolbar/GridToolbarColumnsButton.js +38 -21
- package/modern/components/toolbar/GridToolbarDensitySelector.js +38 -21
- package/modern/components/toolbar/GridToolbarExport.js +6 -1
- package/modern/components/toolbar/GridToolbarExportContainer.js +39 -22
- package/modern/components/toolbar/GridToolbarFilterButton.js +6 -10
- package/modern/components/toolbar/GridToolbarQuickFilter.js +4 -0
- package/modern/components/virtualization/GridBottomContainer.js +25 -0
- package/modern/components/virtualization/GridMainContainer.js +20 -0
- package/modern/components/virtualization/GridTopContainer.js +35 -0
- package/modern/components/virtualization/GridVirtualScrollbar.js +131 -0
- package/modern/components/virtualization/GridVirtualScroller.js +69 -16
- package/modern/components/virtualization/GridVirtualScrollerFiller.js +71 -0
- package/modern/components/virtualization/GridVirtualScrollerRenderZone.js +2 -1
- package/modern/constants/defaultGridSlotsComponents.js +6 -2
- package/modern/constants/gridClasses.js +1 -1
- package/modern/hooks/core/gridCoreSelector.js +5 -0
- package/modern/hooks/core/useGridInitialization.js +4 -0
- package/modern/hooks/core/useGridLoggerFactory.js +2 -2
- package/modern/hooks/core/useGridRefs.js +13 -0
- package/modern/hooks/core/useGridTheme.js +19 -0
- package/modern/hooks/features/columnGrouping/gridColumnGroupsUtils.js +1 -1
- package/modern/hooks/features/columnGrouping/useGridColumnGrouping.js +11 -16
- package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +67 -160
- package/modern/hooks/features/columnMenu/useGridColumnMenu.js +28 -23
- package/modern/hooks/features/columns/gridColumnsInterfaces.js +9 -1
- package/modern/hooks/features/columns/gridColumnsSelector.js +51 -0
- package/modern/hooks/features/columns/gridColumnsUtils.js +10 -12
- package/modern/hooks/features/columns/index.js +2 -1
- package/modern/hooks/features/columns/useGridColumnSpanning.js +62 -61
- package/modern/hooks/features/columns/useGridColumns.js +19 -21
- package/modern/hooks/features/dimensions/gridDimensionsSelectors.js +1 -0
- package/modern/hooks/features/dimensions/index.js +1 -0
- package/modern/hooks/features/dimensions/useGridDimensions.js +214 -146
- package/modern/hooks/features/editing/useGridCellEditing.js +4 -4
- package/modern/hooks/features/editing/useGridRowEditing.js +4 -4
- package/modern/hooks/features/export/serializers/csvSerializer.js +3 -3
- package/modern/hooks/features/export/useGridPrintExport.js +1 -1
- package/modern/hooks/features/filter/gridFilterUtils.js +5 -5
- package/modern/hooks/features/filter/useGridFilter.js +3 -3
- package/modern/hooks/features/focus/gridFocusStateSelector.js +2 -6
- package/modern/hooks/features/focus/useGridFocus.js +3 -3
- package/modern/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +3 -16
- package/modern/hooks/features/pagination/gridPaginationUtils.js +2 -2
- package/modern/hooks/features/pagination/useGridPagination.js +3 -5
- package/modern/hooks/features/rowSelection/useGridRowSelection.js +1 -1
- package/modern/hooks/features/rows/gridRowsSelector.js +2 -2
- package/modern/hooks/features/rows/gridRowsUtils.js +6 -6
- package/modern/hooks/features/rows/useGridRows.js +7 -7
- package/modern/hooks/features/rows/useGridRowsMeta.js +9 -6
- package/modern/hooks/features/scroll/useGridScroll.js +8 -9
- package/modern/hooks/features/sorting/gridSortingUtils.js +5 -3
- package/modern/hooks/features/sorting/useGridSorting.js +15 -10
- package/modern/hooks/features/virtualization/gridVirtualizationSelectors.js +22 -2
- package/modern/hooks/features/virtualization/useGridVirtualScroller.js +435 -432
- package/modern/hooks/features/virtualization/useGridVirtualization.js +8 -1
- package/modern/hooks/utils/index.js +4 -1
- package/modern/hooks/utils/useGridApiContext.js +1 -1
- package/modern/hooks/utils/useGridAriaAttributes.js +1 -1
- package/modern/hooks/utils/useGridNativeEventListener.js +3 -9
- package/modern/hooks/utils/useGridPrivateApiContext.js +1 -1
- package/modern/hooks/utils/useGridRootProps.js +1 -1
- package/modern/hooks/utils/useGridSelector.js +1 -1
- package/modern/hooks/utils/useResizeObserver.js +36 -0
- package/modern/hooks/utils/useRunOnce.js +18 -0
- package/modern/index.js +1 -2
- package/modern/internals/index.js +9 -7
- package/modern/internals/utils/index.js +2 -1
- package/modern/internals/utils/propValidation.js +19 -0
- package/modern/locales/hrHR.js +149 -0
- package/modern/locales/index.js +4 -1
- package/modern/locales/ptPT.js +149 -0
- package/modern/locales/zhHK.js +149 -0
- package/modern/models/index.js +0 -1
- package/modern/models/params/index.js +1 -2
- package/modern/utils/createSelector.js +1 -1
- package/modern/utils/exportAs.js +1 -1
- package/modern/utils/utils.js +10 -1
- package/node/DataGrid/DataGrid.js +15 -27
- package/node/DataGrid/useDataGridComponent.js +1 -0
- package/node/DataGrid/useDataGridProps.js +1 -0
- package/node/colDef/gridDateColDef.js +1 -1
- package/node/components/GridColumnHeaders.js +3 -11
- package/node/components/GridDetailPanels.js +10 -0
- package/node/components/GridHeaders.js +60 -0
- package/node/components/GridPagination.js +1 -1
- package/node/components/GridPinnedRows.js +10 -0
- package/node/components/GridRow.js +256 -94
- package/node/components/GridScrollbarFillerCell.js +47 -0
- package/node/components/base/GridBody.js +7 -118
- package/node/components/base/GridOverlays.js +9 -15
- package/node/components/cell/GridActionsCell.js +1 -1
- package/node/components/cell/GridCell.js +67 -370
- package/node/components/columnHeaders/GridBaseColumnHeaders.js +1 -6
- package/node/components/columnHeaders/GridColumnHeaderItem.js +8 -4
- package/node/components/columnHeaders/GridColumnHeaderSortIcon.js +5 -2
- package/node/components/columnHeaders/GridColumnHeadersInner.js +1 -1
- package/node/components/containers/GridRoot.js +17 -14
- package/node/components/containers/GridRootStyles.js +175 -72
- package/node/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +1 -1
- package/node/components/panel/GridPanel.js +3 -4
- package/node/components/panel/filterPanel/GridFilterForm.js +30 -13
- package/node/components/panel/filterPanel/GridFilterPanel.js +45 -19
- package/node/components/toolbar/GridToolbarColumnsButton.js +36 -20
- package/node/components/toolbar/GridToolbarDensitySelector.js +36 -20
- package/node/components/toolbar/GridToolbarExport.js +6 -1
- package/node/components/toolbar/GridToolbarExportContainer.js +37 -21
- package/node/components/toolbar/GridToolbarFilterButton.js +6 -10
- package/node/components/toolbar/GridToolbarQuickFilter.js +4 -0
- package/node/components/virtualization/GridBottomContainer.js +34 -0
- package/node/components/{containers → virtualization}/GridMainContainer.js +7 -29
- package/node/components/virtualization/GridTopContainer.js +44 -0
- package/node/components/virtualization/GridVirtualScrollbar.js +138 -0
- package/node/components/virtualization/GridVirtualScroller.js +69 -17
- package/node/components/virtualization/GridVirtualScrollerFiller.js +77 -0
- package/node/components/virtualization/GridVirtualScrollerRenderZone.js +2 -1
- package/node/constants/defaultGridSlotsComponents.js +5 -1
- package/node/constants/gridClasses.js +1 -1
- package/node/hooks/core/gridCoreSelector.js +12 -0
- package/node/hooks/core/useGridInitialization.js +4 -0
- package/node/hooks/core/useGridLoggerFactory.js +2 -2
- package/node/hooks/core/useGridRefs.js +22 -0
- package/node/hooks/core/useGridTheme.js +29 -0
- package/node/hooks/features/columnGrouping/gridColumnGroupsUtils.js +1 -1
- package/node/hooks/features/columnGrouping/useGridColumnGrouping.js +11 -16
- package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +65 -159
- package/node/hooks/features/columnMenu/useGridColumnMenu.js +28 -23
- package/node/hooks/features/columns/gridColumnsInterfaces.js +11 -1
- package/node/hooks/features/columns/gridColumnsSelector.js +52 -1
- package/node/hooks/features/columns/gridColumnsUtils.js +10 -13
- package/node/hooks/features/columns/index.js +22 -61
- package/node/hooks/features/columns/useGridColumnSpanning.js +62 -61
- package/node/hooks/features/columns/useGridColumns.js +20 -22
- package/node/hooks/features/dimensions/gridDimensionsSelectors.js +8 -0
- package/node/hooks/features/dimensions/index.js +11 -0
- package/node/hooks/features/dimensions/useGridDimensions.js +215 -144
- package/node/hooks/features/editing/useGridCellEditing.js +4 -4
- package/node/hooks/features/editing/useGridRowEditing.js +4 -4
- package/node/hooks/features/export/serializers/csvSerializer.js +3 -3
- package/node/hooks/features/export/useGridPrintExport.js +1 -1
- package/node/hooks/features/filter/gridFilterUtils.js +5 -5
- package/node/hooks/features/filter/useGridFilter.js +2 -2
- package/node/hooks/features/focus/gridFocusStateSelector.js +3 -7
- package/node/hooks/features/focus/useGridFocus.js +2 -2
- package/node/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +2 -15
- package/node/hooks/features/pagination/gridPaginationUtils.js +2 -2
- package/node/hooks/features/pagination/useGridPagination.js +3 -5
- package/node/hooks/features/rowSelection/useGridRowSelection.js +1 -1
- package/node/hooks/features/rows/gridRowsSelector.js +2 -2
- package/node/hooks/features/rows/gridRowsUtils.js +6 -6
- package/node/hooks/features/rows/useGridRows.js +7 -7
- package/node/hooks/features/rows/useGridRowsMeta.js +7 -5
- package/node/hooks/features/scroll/useGridScroll.js +8 -9
- package/node/hooks/features/sorting/gridSortingUtils.js +5 -3
- package/node/hooks/features/sorting/useGridSorting.js +15 -10
- package/node/hooks/features/virtualization/gridVirtualizationSelectors.js +22 -2
- package/node/hooks/features/virtualization/useGridVirtualScroller.js +434 -431
- package/node/hooks/features/virtualization/useGridVirtualization.js +9 -1
- package/node/hooks/utils/index.js +36 -0
- package/node/hooks/utils/useGridApiContext.js +1 -1
- package/node/hooks/utils/useGridAriaAttributes.js +1 -1
- package/node/hooks/utils/useGridNativeEventListener.js +3 -9
- package/node/hooks/utils/useGridPrivateApiContext.js +1 -1
- package/node/hooks/utils/useGridRootProps.js +1 -1
- package/node/hooks/utils/useGridSelector.js +1 -1
- package/node/hooks/utils/useResizeObserver.js +44 -0
- package/node/hooks/utils/useRunOnce.js +27 -0
- package/node/index.js +1 -13
- package/node/internals/index.js +86 -71
- package/node/internals/utils/index.js +11 -0
- package/node/internals/utils/propValidation.js +26 -0
- package/node/locales/hrHR.js +155 -0
- package/node/locales/index.js +33 -0
- package/node/locales/ptPT.js +155 -0
- package/node/locales/zhHK.js +155 -0
- package/node/models/index.js +0 -11
- package/node/models/params/index.js +0 -11
- package/node/utils/createSelector.js +1 -1
- package/node/utils/exportAs.js +1 -1
- package/node/utils/utils.js +11 -1
- package/package.json +6 -6
- package/utils/createSelector.js +1 -1
- package/utils/exportAs.js +1 -1
- package/utils/utils.d.ts +6 -0
- package/utils/utils.js +10 -1
- package/components/DataGridVirtualScroller.d.ts +0 -3
- package/components/DataGridVirtualScroller.js +0 -35
- package/components/containers/GridMainContainer.js +0 -43
- package/legacy/components/DataGridVirtualScroller.js +0 -32
- package/legacy/components/containers/GridMainContainer.js +0 -45
- package/legacy/models/gridRootContainerRef.js +0 -1
- package/legacy/models/params/gridRenderedRowsIntervalChangeParams.js +0 -1
- package/models/gridRootContainerRef.d.ts +0 -5
- package/models/gridRootContainerRef.js +0 -1
- package/models/params/gridRenderedRowsIntervalChangeParams.d.ts +0 -10
- package/models/params/gridRenderedRowsIntervalChangeParams.js +0 -1
- package/modern/components/DataGridVirtualScroller.js +0 -35
- package/modern/components/containers/GridMainContainer.js +0 -42
- package/modern/models/gridRootContainerRef.js +0 -1
- package/modern/models/params/gridRenderedRowsIntervalChangeParams.js +0 -1
- package/node/components/DataGridVirtualScroller.js +0 -42
- package/node/models/gridRootContainerRef.js +0 -5
- package/node/models/params/gridRenderedRowsIntervalChangeParams.js +0 -5
|
@@ -1,145 +1,70 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
import * as ReactDOM from 'react-dom';
|
|
4
3
|
import { unstable_useForkRef as useForkRef } from '@mui/utils';
|
|
5
|
-
import { styled
|
|
6
|
-
import { defaultMemoize } from 'reselect';
|
|
4
|
+
import { styled } from '@mui/material/styles';
|
|
7
5
|
import { useGridSelector } from '../../utils';
|
|
8
6
|
import { useGridPrivateApiContext } from '../../utils/useGridPrivateApiContext';
|
|
9
|
-
import { useGridRootProps } from '../../utils/useGridRootProps';
|
|
10
7
|
import { useGridApiEventHandler } from '../../utils/useGridApiEventHandler';
|
|
11
8
|
import { GridColumnHeaderItem } from '../../../components/columnHeaders/GridColumnHeaderItem';
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import { areRenderContextsEqual, getRenderableIndexes } from '../virtualization/useGridVirtualScroller';
|
|
15
|
-
import { gridVirtualizationColumnEnabledSelector } from '../virtualization';
|
|
9
|
+
import { gridDimensionsSelector } from '../dimensions';
|
|
10
|
+
import { gridRenderContextColumnsSelector, gridVirtualizationColumnEnabledSelector } from '../virtualization';
|
|
16
11
|
import { GridColumnGroupHeader } from '../../../components/columnHeaders/GridColumnGroupHeader';
|
|
12
|
+
import { GridPinnedColumnPosition, gridVisiblePinnedColumnDefinitionsSelector } from '../columns';
|
|
13
|
+
import { GridScrollbarFillerCell as ScrollbarFiller } from '../../../components/GridScrollbarFillerCell';
|
|
14
|
+
import { gridClasses } from '../../../constants/gridClasses';
|
|
17
15
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
18
|
-
|
|
16
|
+
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
17
|
+
const SpaceFiller = styled('div')({
|
|
18
|
+
/* GridRootStyles conflict */
|
|
19
|
+
'&&': {
|
|
20
|
+
padding: 0,
|
|
21
|
+
width: 'calc(var(--DataGrid-width) - var(--DataGrid-columnsTotalWidth))'
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
export const GridColumnHeaderRow = styled('div', {
|
|
19
25
|
name: 'MuiDataGrid',
|
|
20
26
|
slot: 'ColumnHeaderRow',
|
|
21
27
|
overridesResolver: (props, styles) => styles.columnHeaderRow
|
|
22
|
-
})((
|
|
23
|
-
|
|
28
|
+
})(({
|
|
29
|
+
ownerState: {
|
|
30
|
+
params: {
|
|
31
|
+
position
|
|
32
|
+
} = {},
|
|
33
|
+
leftOverflow = 0
|
|
34
|
+
}
|
|
35
|
+
}) => ({
|
|
36
|
+
display: 'flex',
|
|
37
|
+
height: 'var(--DataGrid-headerHeight)',
|
|
38
|
+
transform: position === undefined ? `translate3d(${leftOverflow !== 0 ? `calc(var(--DataGrid-offsetLeft) - ${leftOverflow}px)` : 'var(--DataGrid-offsetLeft)'}, 0, 0)` : undefined
|
|
24
39
|
}));
|
|
25
|
-
function isUIEvent(event) {
|
|
26
|
-
return !!event.target;
|
|
27
|
-
}
|
|
28
40
|
export const useGridColumnHeaders = props => {
|
|
29
41
|
const {
|
|
30
42
|
innerRef: innerRefProp,
|
|
31
|
-
minColumnIndex = 0,
|
|
32
43
|
visibleColumns,
|
|
33
44
|
sortColumnLookup,
|
|
34
45
|
filterColumnLookup,
|
|
35
|
-
columnPositions,
|
|
36
46
|
columnHeaderTabIndexState,
|
|
37
47
|
columnGroupHeaderTabIndexState,
|
|
38
48
|
columnHeaderFocus,
|
|
39
49
|
columnGroupHeaderFocus,
|
|
40
|
-
densityFactor,
|
|
41
50
|
headerGroupingMaxDepth,
|
|
42
51
|
columnMenuState,
|
|
43
52
|
columnVisibility,
|
|
44
53
|
columnGroupsHeaderStructure,
|
|
45
54
|
hasOtherElementInTabSequence
|
|
46
55
|
} = props;
|
|
47
|
-
const theme = useTheme();
|
|
48
56
|
const [dragCol, setDragCol] = React.useState('');
|
|
49
57
|
const [resizeCol, setResizeCol] = React.useState('');
|
|
50
58
|
const apiRef = useGridPrivateApiContext();
|
|
51
59
|
const hasVirtualization = useGridSelector(apiRef, gridVirtualizationColumnEnabledSelector);
|
|
52
|
-
const rootProps = useGridRootProps();
|
|
53
60
|
const innerRef = React.useRef(null);
|
|
54
61
|
const handleInnerRef = useForkRef(innerRefProp, innerRef);
|
|
55
|
-
const
|
|
56
|
-
const
|
|
57
|
-
const
|
|
58
|
-
const currentPage = useGridVisibleRows(apiRef, rootProps);
|
|
59
|
-
const totalHeaderHeight = getTotalHeaderHeight(apiRef, rootProps.columnHeaderHeight);
|
|
60
|
-
const headerHeight = Math.floor(rootProps.columnHeaderHeight * densityFactor);
|
|
61
|
-
const setRenderContext = React.useCallback(nextRenderContext => {
|
|
62
|
-
if (renderContext && nextRenderContext && areRenderContextsEqual(renderContext, nextRenderContext)) {
|
|
63
|
-
return;
|
|
64
|
-
}
|
|
65
|
-
setRenderContextRaw(nextRenderContext);
|
|
66
|
-
}, [renderContext]);
|
|
62
|
+
const dimensions = useGridSelector(apiRef, gridDimensionsSelector);
|
|
63
|
+
const renderContext = useGridSelector(apiRef, gridRenderContextColumnsSelector);
|
|
64
|
+
const visiblePinnedColumns = useGridSelector(apiRef, gridVisiblePinnedColumnDefinitionsSelector);
|
|
67
65
|
React.useEffect(() => {
|
|
68
66
|
apiRef.current.columnHeadersContainerElementRef.current.scrollLeft = 0;
|
|
69
67
|
}, [apiRef]);
|
|
70
|
-
|
|
71
|
-
// memoize `getFirstColumnIndexToRender`, since it's called on scroll
|
|
72
|
-
const getFirstColumnIndexToRenderRef = React.useRef(defaultMemoize(getFirstColumnIndexToRender, {
|
|
73
|
-
equalityCheck: (a, b) => ['firstColumnIndex', 'minColumnIndex', 'columnBuffer'].every(key => a[key] === b[key])
|
|
74
|
-
}));
|
|
75
|
-
const updateInnerPosition = React.useCallback(nextRenderContext => {
|
|
76
|
-
const [firstRowToRender, lastRowToRender] = getRenderableIndexes({
|
|
77
|
-
firstIndex: nextRenderContext.firstRowIndex,
|
|
78
|
-
lastIndex: nextRenderContext.lastRowIndex,
|
|
79
|
-
minFirstIndex: 0,
|
|
80
|
-
maxLastIndex: currentPage.rows.length,
|
|
81
|
-
buffer: rootProps.rowBuffer
|
|
82
|
-
});
|
|
83
|
-
const firstColumnToRender = getFirstColumnIndexToRenderRef.current({
|
|
84
|
-
firstColumnIndex: nextRenderContext.firstColumnIndex,
|
|
85
|
-
minColumnIndex,
|
|
86
|
-
columnBuffer: rootProps.columnBuffer,
|
|
87
|
-
firstRowToRender,
|
|
88
|
-
lastRowToRender,
|
|
89
|
-
apiRef,
|
|
90
|
-
visibleRows: currentPage.rows
|
|
91
|
-
});
|
|
92
|
-
const direction = theme.direction === 'ltr' ? 1 : -1;
|
|
93
|
-
const offset = firstColumnToRender > 0 ? prevScrollLeft.current - direction * columnPositions[firstColumnToRender] : prevScrollLeft.current;
|
|
94
|
-
innerRef.current.style.transform = `translate3d(${-offset}px, 0px, 0px)`;
|
|
95
|
-
}, [columnPositions, minColumnIndex, rootProps.columnBuffer, apiRef, currentPage.rows, rootProps.rowBuffer, theme.direction]);
|
|
96
|
-
React.useLayoutEffect(() => {
|
|
97
|
-
if (renderContext) {
|
|
98
|
-
updateInnerPosition(renderContext);
|
|
99
|
-
}
|
|
100
|
-
}, [renderContext, updateInnerPosition]);
|
|
101
|
-
const handleScroll = React.useCallback(({
|
|
102
|
-
left,
|
|
103
|
-
renderContext: nextRenderContext = null
|
|
104
|
-
}, event) => {
|
|
105
|
-
var _prevRenderContext$cu, _prevRenderContext$cu2;
|
|
106
|
-
if (!innerRef.current) {
|
|
107
|
-
return;
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
// Ignore vertical scroll.
|
|
111
|
-
// Excepts the first event which sets the previous render context.
|
|
112
|
-
if (prevScrollLeft.current === left && ((_prevRenderContext$cu = prevRenderContext.current) == null ? void 0 : _prevRenderContext$cu.firstColumnIndex) === (nextRenderContext == null ? void 0 : nextRenderContext.firstColumnIndex) && ((_prevRenderContext$cu2 = prevRenderContext.current) == null ? void 0 : _prevRenderContext$cu2.lastColumnIndex) === (nextRenderContext == null ? void 0 : nextRenderContext.lastColumnIndex)) {
|
|
113
|
-
return;
|
|
114
|
-
}
|
|
115
|
-
prevScrollLeft.current = left;
|
|
116
|
-
|
|
117
|
-
// We can only update the position when we guarantee that the render context has been
|
|
118
|
-
// rendered. This is achieved using ReactDOM.flushSync or when the context doesn't change.
|
|
119
|
-
let canUpdateInnerPosition = false;
|
|
120
|
-
if (nextRenderContext !== prevRenderContext.current || !prevRenderContext.current) {
|
|
121
|
-
// ReactDOM.flushSync cannot be called on `scroll` events fired inside effects
|
|
122
|
-
if (isUIEvent(event)) {
|
|
123
|
-
// To prevent flickering, the inner position can only be updated after the new context has
|
|
124
|
-
// been rendered. ReactDOM.flushSync ensures that the state changes will happen before
|
|
125
|
-
// updating the position.
|
|
126
|
-
ReactDOM.flushSync(() => {
|
|
127
|
-
setRenderContext(nextRenderContext);
|
|
128
|
-
});
|
|
129
|
-
canUpdateInnerPosition = true;
|
|
130
|
-
} else {
|
|
131
|
-
setRenderContext(nextRenderContext);
|
|
132
|
-
}
|
|
133
|
-
prevRenderContext.current = nextRenderContext;
|
|
134
|
-
} else {
|
|
135
|
-
canUpdateInnerPosition = true;
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
// Pass directly the render context to avoid waiting for the next render
|
|
139
|
-
if (nextRenderContext && canUpdateInnerPosition) {
|
|
140
|
-
updateInnerPosition(nextRenderContext);
|
|
141
|
-
}
|
|
142
|
-
}, [updateInnerPosition, setRenderContext]);
|
|
143
68
|
const handleColumnResizeStart = React.useCallback(params => setResizeCol(params.field), []);
|
|
144
69
|
const handleColumnResizeStop = React.useCallback(() => setResizeCol(''), []);
|
|
145
70
|
const handleColumnReorderStart = React.useCallback(params => setDragCol(params.field), []);
|
|
@@ -148,53 +73,41 @@ export const useGridColumnHeaders = props => {
|
|
|
148
73
|
useGridApiEventHandler(apiRef, 'columnResizeStop', handleColumnResizeStop);
|
|
149
74
|
useGridApiEventHandler(apiRef, 'columnHeaderDragStart', handleColumnReorderStart);
|
|
150
75
|
useGridApiEventHandler(apiRef, 'columnHeaderDragEnd', handleColumnReorderStop);
|
|
151
|
-
useGridApiEventHandler(apiRef, 'scrollPositionChange', handleScroll);
|
|
152
76
|
|
|
153
77
|
// Helper for computation common between getColumnHeaders and getColumnGroupHeaders
|
|
154
78
|
const getColumnsToRender = params => {
|
|
155
79
|
const {
|
|
156
|
-
renderContext:
|
|
157
|
-
minFirstColumn
|
|
80
|
+
renderContext: currentContext = renderContext,
|
|
81
|
+
// TODO: `minFirstColumn` is not used anymore, could be refactored out.
|
|
158
82
|
maxLastColumn = visibleColumns.length
|
|
159
83
|
} = params || {};
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
}
|
|
163
|
-
const [firstRowToRender, lastRowToRender] = getRenderableIndexes({
|
|
164
|
-
firstIndex: nextRenderContext.firstRowIndex,
|
|
165
|
-
lastIndex: nextRenderContext.lastRowIndex,
|
|
166
|
-
minFirstIndex: 0,
|
|
167
|
-
maxLastIndex: currentPage.rows.length,
|
|
168
|
-
buffer: rootProps.rowBuffer
|
|
169
|
-
});
|
|
170
|
-
const firstColumnToRender = !hasVirtualization ? 0 : getFirstColumnIndexToRenderRef.current({
|
|
171
|
-
firstColumnIndex: nextRenderContext.firstColumnIndex,
|
|
172
|
-
minColumnIndex: minFirstColumn,
|
|
173
|
-
columnBuffer: rootProps.columnBuffer,
|
|
174
|
-
apiRef,
|
|
175
|
-
firstRowToRender,
|
|
176
|
-
lastRowToRender,
|
|
177
|
-
visibleRows: currentPage.rows
|
|
178
|
-
});
|
|
179
|
-
const lastColumnToRender = !hasVirtualization ? maxLastColumn : Math.min(nextRenderContext.lastColumnIndex + rootProps.columnBuffer, maxLastColumn);
|
|
84
|
+
const firstColumnToRender = !hasVirtualization ? 0 : currentContext.firstColumnIndex;
|
|
85
|
+
const lastColumnToRender = !hasVirtualization ? maxLastColumn : currentContext.lastColumnIndex;
|
|
180
86
|
const renderedColumns = visibleColumns.slice(firstColumnToRender, lastColumnToRender);
|
|
181
87
|
return {
|
|
182
88
|
renderedColumns,
|
|
183
89
|
firstColumnToRender,
|
|
184
|
-
lastColumnToRender
|
|
185
|
-
minFirstColumn,
|
|
186
|
-
maxLastColumn
|
|
90
|
+
lastColumnToRender
|
|
187
91
|
};
|
|
188
92
|
};
|
|
93
|
+
const getFiller = (params, borderTop = false) => {
|
|
94
|
+
const isPinnedRight = (params == null ? void 0 : params.position) === GridPinnedColumnPosition.RIGHT;
|
|
95
|
+
const hasScrollbarFiller = visiblePinnedColumns.right.length > 0 && isPinnedRight || visiblePinnedColumns.right.length === 0 && (params == null ? void 0 : params.position) === undefined;
|
|
96
|
+
return /*#__PURE__*/_jsxs(React.Fragment, {
|
|
97
|
+
children: [(params == null ? void 0 : params.position) === undefined && /*#__PURE__*/_jsx(SpaceFiller, {
|
|
98
|
+
className: gridClasses.columnHeader
|
|
99
|
+
}), hasScrollbarFiller && /*#__PURE__*/_jsx(ScrollbarFiller, {
|
|
100
|
+
header: true,
|
|
101
|
+
borderTop: borderTop,
|
|
102
|
+
pinnedRight: isPinnedRight
|
|
103
|
+
})]
|
|
104
|
+
});
|
|
105
|
+
};
|
|
189
106
|
const getColumnHeaders = (params, other = {}) => {
|
|
190
|
-
const columnsToRender = getColumnsToRender(params);
|
|
191
|
-
if (columnsToRender == null) {
|
|
192
|
-
return null;
|
|
193
|
-
}
|
|
194
107
|
const {
|
|
195
108
|
renderedColumns,
|
|
196
109
|
firstColumnToRender
|
|
197
|
-
} =
|
|
110
|
+
} = getColumnsToRender(params);
|
|
198
111
|
const columns = [];
|
|
199
112
|
for (let i = 0; i < renderedColumns.length; i += 1) {
|
|
200
113
|
const colDef = renderedColumns[i];
|
|
@@ -206,7 +119,7 @@ export const useGridColumnHeaders = props => {
|
|
|
206
119
|
columns.push( /*#__PURE__*/_jsx(GridColumnHeaderItem, _extends({}, sortColumnLookup[colDef.field], {
|
|
207
120
|
columnMenuOpen: open,
|
|
208
121
|
filterItemsCounter: filterColumnLookup[colDef.field] && filterColumnLookup[colDef.field].length,
|
|
209
|
-
headerHeight: headerHeight,
|
|
122
|
+
headerHeight: dimensions.headerHeight,
|
|
210
123
|
isDragging: colDef.field === dragCol,
|
|
211
124
|
colDef: colDef,
|
|
212
125
|
colIndex: columnIndex,
|
|
@@ -215,11 +128,13 @@ export const useGridColumnHeaders = props => {
|
|
|
215
128
|
tabIndex: tabIndex
|
|
216
129
|
}, other), colDef.field));
|
|
217
130
|
}
|
|
218
|
-
return /*#__PURE__*/
|
|
131
|
+
return /*#__PURE__*/_jsxs(GridColumnHeaderRow, {
|
|
219
132
|
role: "row",
|
|
220
133
|
"aria-rowindex": headerGroupingMaxDepth + 1,
|
|
221
|
-
ownerState:
|
|
222
|
-
|
|
134
|
+
ownerState: {
|
|
135
|
+
params
|
|
136
|
+
},
|
|
137
|
+
children: [columns, getFiller(params)]
|
|
223
138
|
});
|
|
224
139
|
};
|
|
225
140
|
const getColumnGroupHeaders = params => {
|
|
@@ -227,7 +142,7 @@ export const useGridColumnHeaders = props => {
|
|
|
227
142
|
return null;
|
|
228
143
|
}
|
|
229
144
|
const columnsToRender = getColumnsToRender(params);
|
|
230
|
-
if (columnsToRender
|
|
145
|
+
if (columnsToRender.renderedColumns.length === 0) {
|
|
231
146
|
return null;
|
|
232
147
|
}
|
|
233
148
|
const {
|
|
@@ -237,16 +152,16 @@ export const useGridColumnHeaders = props => {
|
|
|
237
152
|
const columns = [];
|
|
238
153
|
const headerToRender = [];
|
|
239
154
|
for (let depth = 0; depth < headerGroupingMaxDepth; depth += 1) {
|
|
240
|
-
var _apiRef$current$
|
|
155
|
+
var _apiRef$current$getCo, _apiRef$current$getCo2;
|
|
241
156
|
const rowStructure = columnGroupsHeaderStructure[depth];
|
|
242
157
|
const firstColumnFieldToRender = visibleColumns[firstColumnToRender].field;
|
|
243
|
-
const firstGroupToRender = (_apiRef$current$
|
|
158
|
+
const firstGroupToRender = (_apiRef$current$getCo = apiRef.current.getColumnGroupPath(firstColumnFieldToRender)[depth]) != null ? _apiRef$current$getCo : null;
|
|
244
159
|
const firstGroupIndex = rowStructure.findIndex(({
|
|
245
160
|
groupId,
|
|
246
161
|
columnFields
|
|
247
162
|
}) => groupId === firstGroupToRender && columnFields.includes(firstColumnFieldToRender));
|
|
248
163
|
const lastColumnFieldToRender = visibleColumns[lastColumnToRender - 1].field;
|
|
249
|
-
const lastGroupToRender = (_apiRef$current$
|
|
164
|
+
const lastGroupToRender = (_apiRef$current$getCo2 = apiRef.current.getColumnGroupPath(lastColumnFieldToRender)[depth]) != null ? _apiRef$current$getCo2 : null;
|
|
250
165
|
const lastGroupIndex = rowStructure.findIndex(({
|
|
251
166
|
groupId,
|
|
252
167
|
columnFields
|
|
@@ -287,15 +202,14 @@ export const useGridColumnHeaders = props => {
|
|
|
287
202
|
});
|
|
288
203
|
}
|
|
289
204
|
headerToRender.forEach((depthInfo, depthIndex) => {
|
|
290
|
-
columns.push( /*#__PURE__*/
|
|
291
|
-
style: {
|
|
292
|
-
height: `${headerHeight}px`,
|
|
293
|
-
transform: `translateX(-${depthInfo.leftOverflow}px)`
|
|
294
|
-
},
|
|
205
|
+
columns.push( /*#__PURE__*/_jsxs(GridColumnHeaderRow, {
|
|
295
206
|
role: "row",
|
|
296
207
|
"aria-rowindex": depthIndex + 1,
|
|
297
|
-
ownerState:
|
|
298
|
-
|
|
208
|
+
ownerState: {
|
|
209
|
+
params,
|
|
210
|
+
leftOverflow: depthInfo.leftOverflow
|
|
211
|
+
},
|
|
212
|
+
children: [depthInfo.elements.map(({
|
|
299
213
|
groupId,
|
|
300
214
|
width,
|
|
301
215
|
fields,
|
|
@@ -311,33 +225,25 @@ export const useGridColumnHeaders = props => {
|
|
|
311
225
|
depth: depthIndex,
|
|
312
226
|
isLastColumn: colIndex === visibleColumns.length - fields.length,
|
|
313
227
|
maxDepth: headerToRender.length,
|
|
314
|
-
height: headerHeight,
|
|
228
|
+
height: dimensions.headerHeight,
|
|
315
229
|
hasFocus: hasFocus,
|
|
316
230
|
tabIndex: tabIndex
|
|
317
231
|
}, groupIndex);
|
|
318
|
-
})
|
|
232
|
+
}), getFiller(params)]
|
|
319
233
|
}, depthIndex));
|
|
320
234
|
});
|
|
321
235
|
return columns;
|
|
322
236
|
};
|
|
323
|
-
const rootStyle = {
|
|
324
|
-
minHeight: totalHeaderHeight,
|
|
325
|
-
maxHeight: totalHeaderHeight,
|
|
326
|
-
lineHeight: `${headerHeight}px`
|
|
327
|
-
};
|
|
328
237
|
return {
|
|
329
238
|
renderContext,
|
|
239
|
+
getFiller,
|
|
330
240
|
getColumnHeaders,
|
|
331
241
|
getColumnsToRender,
|
|
332
242
|
getColumnGroupHeaders,
|
|
333
243
|
isDragging: !!dragCol,
|
|
334
|
-
getRootProps: (other = {}) => _extends({
|
|
335
|
-
style: rootStyle
|
|
336
|
-
}, other),
|
|
337
244
|
getInnerProps: () => ({
|
|
338
245
|
ref: handleInnerRef,
|
|
339
246
|
role: 'rowgroup'
|
|
340
|
-
})
|
|
341
|
-
headerHeight
|
|
247
|
+
})
|
|
342
248
|
};
|
|
343
249
|
};
|
|
@@ -20,19 +20,25 @@ export const useGridColumnMenu = apiRef => {
|
|
|
20
20
|
* API METHODS
|
|
21
21
|
*/
|
|
22
22
|
const showColumnMenu = React.useCallback(field => {
|
|
23
|
-
const
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
23
|
+
const columnMenuState = gridColumnMenuSelector(apiRef.current.state);
|
|
24
|
+
const newState = {
|
|
25
|
+
open: true,
|
|
26
|
+
field
|
|
27
|
+
};
|
|
28
|
+
const shouldUpdate = newState.open !== columnMenuState.open || newState.field !== columnMenuState.field;
|
|
29
|
+
if (shouldUpdate) {
|
|
30
|
+
apiRef.current.setState(state => {
|
|
31
|
+
if (state.columnMenu.open && state.columnMenu.field === field) {
|
|
32
|
+
return state;
|
|
32
33
|
}
|
|
34
|
+
logger.debug('Opening Column Menu');
|
|
35
|
+
return _extends({}, state, {
|
|
36
|
+
columnMenu: {
|
|
37
|
+
open: true,
|
|
38
|
+
field
|
|
39
|
+
}
|
|
40
|
+
});
|
|
33
41
|
});
|
|
34
|
-
});
|
|
35
|
-
if (shouldUpdate) {
|
|
36
42
|
apiRef.current.hidePreferences();
|
|
37
43
|
apiRef.current.forceUpdate();
|
|
38
44
|
}
|
|
@@ -64,19 +70,18 @@ export const useGridColumnMenu = apiRef => {
|
|
|
64
70
|
}
|
|
65
71
|
apiRef.current.setColumnHeaderFocus(fieldToFocus);
|
|
66
72
|
}
|
|
67
|
-
const
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
return _extends({}, state, {
|
|
73
|
-
columnMenu: _extends({}, state.columnMenu, {
|
|
74
|
-
open: false,
|
|
75
|
-
field: undefined
|
|
76
|
-
})
|
|
77
|
-
});
|
|
78
|
-
});
|
|
73
|
+
const newState = {
|
|
74
|
+
open: false,
|
|
75
|
+
field: undefined
|
|
76
|
+
};
|
|
77
|
+
const shouldUpdate = newState.open !== columnMenuState.open || newState.field !== columnMenuState.field;
|
|
79
78
|
if (shouldUpdate) {
|
|
79
|
+
apiRef.current.setState(state => {
|
|
80
|
+
logger.debug('Hiding Column Menu');
|
|
81
|
+
return _extends({}, state, {
|
|
82
|
+
columnMenu: newState
|
|
83
|
+
});
|
|
84
|
+
});
|
|
80
85
|
apiRef.current.forceUpdate();
|
|
81
86
|
}
|
|
82
87
|
}, [apiRef, logger]);
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import { GridColDef, GridStateColDef } from '../../../models/colDef/gridColDef';
|
|
2
2
|
import type { GridColumnDimensionProperties } from './gridColumnsUtils';
|
|
3
|
+
export declare enum GridPinnedColumnPosition {
|
|
4
|
+
LEFT = "left",
|
|
5
|
+
RIGHT = "right"
|
|
6
|
+
}
|
|
3
7
|
export type GridColumnLookup = {
|
|
4
8
|
[field: string]: GridStateColDef;
|
|
5
9
|
};
|
|
@@ -11,6 +15,19 @@ export interface GridColumnsState {
|
|
|
11
15
|
lookup: GridColumnLookup;
|
|
12
16
|
columnVisibilityModel: GridColumnVisibilityModel;
|
|
13
17
|
}
|
|
18
|
+
export interface GridPinnedColumnFields {
|
|
19
|
+
left?: string[];
|
|
20
|
+
right?: string[];
|
|
21
|
+
}
|
|
22
|
+
export declare const EMPTY_PINNED_COLUMN_FIELDS: {
|
|
23
|
+
left: string[];
|
|
24
|
+
right: string[];
|
|
25
|
+
};
|
|
26
|
+
export interface GridPinnedColumns {
|
|
27
|
+
left: GridStateColDef[];
|
|
28
|
+
right: GridStateColDef[];
|
|
29
|
+
}
|
|
30
|
+
export type GridColumnPinningState = GridPinnedColumnFields;
|
|
14
31
|
export type GridColumnDimensions = {
|
|
15
32
|
[key in GridColumnDimensionProperties]?: number;
|
|
16
33
|
};
|
|
@@ -1 +1,9 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export let GridPinnedColumnPosition = /*#__PURE__*/function (GridPinnedColumnPosition) {
|
|
2
|
+
GridPinnedColumnPosition["LEFT"] = "left";
|
|
3
|
+
GridPinnedColumnPosition["RIGHT"] = "right";
|
|
4
|
+
return GridPinnedColumnPosition;
|
|
5
|
+
}({});
|
|
6
|
+
export const EMPTY_PINNED_COLUMN_FIELDS = {
|
|
7
|
+
left: [],
|
|
8
|
+
right: []
|
|
9
|
+
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { GridStateCommunity } from '../../../models/gridStateCommunity';
|
|
2
|
-
import { GridColumnLookup } from './gridColumnsInterfaces';
|
|
2
|
+
import { GridColumnLookup, GridPinnedColumnFields } from './gridColumnsInterfaces';
|
|
3
3
|
/**
|
|
4
4
|
* Get the columns state
|
|
5
5
|
* @category Columns
|
|
@@ -36,6 +36,19 @@ export declare const gridVisibleColumnDefinitionsSelector: import("../../../util
|
|
|
36
36
|
* @category Visible Columns
|
|
37
37
|
*/
|
|
38
38
|
export declare const gridVisibleColumnFieldsSelector: import("../../../utils/createSelector").OutputSelector<GridStateCommunity, string[]>;
|
|
39
|
+
/**
|
|
40
|
+
* Get the visible pinned columns model.
|
|
41
|
+
* @category Visible Columns
|
|
42
|
+
*/
|
|
43
|
+
export declare const gridPinnedColumnsSelector: (state: GridStateCommunity) => GridPinnedColumnFields;
|
|
44
|
+
/**
|
|
45
|
+
* Get the visible pinned columns.
|
|
46
|
+
* @category Visible Columns
|
|
47
|
+
*/
|
|
48
|
+
export declare const gridVisiblePinnedColumnDefinitionsSelector: import("../../../utils/createSelector").OutputSelector<GridStateCommunity, {
|
|
49
|
+
left: import("../../../internals").GridStateColDef[];
|
|
50
|
+
right: import("../../../internals").GridStateColDef[];
|
|
51
|
+
}>;
|
|
39
52
|
/**
|
|
40
53
|
* Get the left position in pixel of each visible columns relative to the left of the first column.
|
|
41
54
|
* @category Visible Columns
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import { createSelector, createSelectorMemoized } from '../../../utils/createSelector';
|
|
2
|
+
import { EMPTY_PINNED_COLUMN_FIELDS } from './gridColumnsInterfaces';
|
|
3
|
+
import { gridThemeSelector } from '../../core/gridCoreSelector';
|
|
4
|
+
|
|
2
5
|
/**
|
|
3
6
|
* Get the columns state
|
|
4
7
|
* @category Columns
|
|
@@ -42,6 +45,55 @@ export const gridVisibleColumnDefinitionsSelector = createSelectorMemoized(gridC
|
|
|
42
45
|
*/
|
|
43
46
|
export const gridVisibleColumnFieldsSelector = createSelectorMemoized(gridVisibleColumnDefinitionsSelector, visibleColumns => visibleColumns.map(column => column.field));
|
|
44
47
|
|
|
48
|
+
/**
|
|
49
|
+
* Get the visible pinned columns model.
|
|
50
|
+
* @category Visible Columns
|
|
51
|
+
*/
|
|
52
|
+
export const gridPinnedColumnsSelector = state => state.pinnedColumns;
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Get the visible pinned columns.
|
|
56
|
+
* @category Visible Columns
|
|
57
|
+
*/
|
|
58
|
+
export const gridVisiblePinnedColumnDefinitionsSelector = createSelectorMemoized(gridColumnsStateSelector, gridPinnedColumnsSelector, gridVisibleColumnFieldsSelector, gridThemeSelector, (columnsState, model, visibleColumnFields, theme) => {
|
|
59
|
+
const visiblePinnedFields = filterVisibleColumns(model, visibleColumnFields, theme.direction === 'rtl');
|
|
60
|
+
const visiblePinnedColumns = {
|
|
61
|
+
left: visiblePinnedFields.left.map(field => columnsState.lookup[field]),
|
|
62
|
+
right: visiblePinnedFields.right.map(field => columnsState.lookup[field])
|
|
63
|
+
};
|
|
64
|
+
return visiblePinnedColumns;
|
|
65
|
+
});
|
|
66
|
+
function filterVisibleColumns(pinnedColumns, columns, invert) {
|
|
67
|
+
var _pinnedColumns$left, _pinnedColumns$right;
|
|
68
|
+
if (!Array.isArray(pinnedColumns.left) && !Array.isArray(pinnedColumns.right)) {
|
|
69
|
+
return EMPTY_PINNED_COLUMN_FIELDS;
|
|
70
|
+
}
|
|
71
|
+
if (((_pinnedColumns$left = pinnedColumns.left) == null ? void 0 : _pinnedColumns$left.length) === 0 && ((_pinnedColumns$right = pinnedColumns.right) == null ? void 0 : _pinnedColumns$right.length) === 0) {
|
|
72
|
+
return EMPTY_PINNED_COLUMN_FIELDS;
|
|
73
|
+
}
|
|
74
|
+
const filter = (newPinnedColumns, remainingColumns) => {
|
|
75
|
+
if (!Array.isArray(newPinnedColumns)) {
|
|
76
|
+
return [];
|
|
77
|
+
}
|
|
78
|
+
return newPinnedColumns.filter(field => remainingColumns.includes(field));
|
|
79
|
+
};
|
|
80
|
+
const leftPinnedColumns = filter(pinnedColumns.left, columns);
|
|
81
|
+
const columnsWithoutLeftPinnedColumns = columns.filter(
|
|
82
|
+
// Filter out from the remaining columns those columns already pinned to the left
|
|
83
|
+
field => !leftPinnedColumns.includes(field));
|
|
84
|
+
const rightPinnedColumns = filter(pinnedColumns.right, columnsWithoutLeftPinnedColumns);
|
|
85
|
+
if (invert) {
|
|
86
|
+
return {
|
|
87
|
+
left: rightPinnedColumns,
|
|
88
|
+
right: leftPinnedColumns
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
return {
|
|
92
|
+
left: leftPinnedColumns,
|
|
93
|
+
right: rightPinnedColumns
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
|
|
45
97
|
/**
|
|
46
98
|
* Get the left position in pixel of each visible columns relative to the left of the first column.
|
|
47
99
|
* @category Visible Columns
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { GridColumnsState, GridColumnsRawState, GridColumnVisibilityModel, GridColumnsInitialState } from './gridColumnsInterfaces';
|
|
3
|
-
import { GridColumnTypesRecord } from '../../../models';
|
|
4
|
-
import { GridStateCommunity } from '../../../models/gridStateCommunity';
|
|
5
3
|
import { GridApiCommunity } from '../../../models/api/gridApiCommunity';
|
|
6
4
|
import { GridColDef } from '../../../models/colDef/gridColDef';
|
|
7
5
|
import { GridApiCommon } from '../../../models/api/gridApiCommon';
|
|
@@ -39,15 +37,13 @@ export declare const hydrateColumnsWidth: (rawState: GridColumnsRawState, viewpo
|
|
|
39
37
|
* The columns not registered in `orderedFields` will be placed after the imported columns.
|
|
40
38
|
*/
|
|
41
39
|
export declare const applyInitialState: (columnsState: GridColumnsRawState, initialState: GridColumnsInitialState | undefined) => GridColumnsRawState;
|
|
42
|
-
export declare const createColumnsState: ({ apiRef, columnsToUpsert, initialState,
|
|
40
|
+
export declare const createColumnsState: ({ apiRef, columnsToUpsert, initialState, columnVisibilityModel, keepOnlyColumnsToUpsert, }: {
|
|
43
41
|
columnsToUpsert: readonly GridColDef[];
|
|
44
42
|
initialState: GridColumnsInitialState | undefined;
|
|
45
|
-
columnTypes: GridColumnTypesRecord;
|
|
46
43
|
columnVisibilityModel?: GridColumnVisibilityModel | undefined;
|
|
47
44
|
keepOnlyColumnsToUpsert: boolean;
|
|
48
45
|
apiRef: React.MutableRefObject<GridApiCommunity>;
|
|
49
46
|
}) => GridColumnsState;
|
|
50
|
-
export declare const mergeColumnsState: (columnsState: GridColumnsState) => (state: GridStateCommunity) => GridStateCommunity;
|
|
51
47
|
export declare function getFirstNonSpannedColumnToRender({ firstColumnToRender, apiRef, firstRowToRender, lastRowToRender, visibleRows, }: {
|
|
52
48
|
firstColumnToRender: number;
|
|
53
49
|
apiRef: React.MutableRefObject<GridApiCommon>;
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
-
import { DEFAULT_GRID_COL_TYPE_KEY, GRID_STRING_COL_DEF } from '../../../colDef';
|
|
2
|
+
import { DEFAULT_GRID_COL_TYPE_KEY, GRID_STRING_COL_DEF, getGridDefaultColumnTypes } from '../../../colDef';
|
|
3
3
|
import { gridColumnsStateSelector, gridColumnVisibilityModelSelector } from './gridColumnsSelector';
|
|
4
4
|
import { clamp } from '../../../utils/utils';
|
|
5
5
|
import { gridDensityFactorSelector } from '../density/densitySelector';
|
|
6
6
|
import { gridColumnGroupsHeaderMaxDepthSelector } from '../columnGrouping/gridColumnGroupsSelector';
|
|
7
7
|
export const COLUMNS_DIMENSION_PROPERTIES = ['maxWidth', 'minWidth', 'width', 'flex'];
|
|
8
|
+
const COLUMN_TYPES = getGridDefaultColumnTypes();
|
|
9
|
+
|
|
8
10
|
/**
|
|
9
11
|
* Computes width for flex columns.
|
|
10
12
|
* Based on CSS Flexbox specification:
|
|
@@ -196,10 +198,10 @@ export const applyInitialState = (columnsState, initialState) => {
|
|
|
196
198
|
});
|
|
197
199
|
return newColumnsState;
|
|
198
200
|
};
|
|
199
|
-
function getDefaultColTypeDef(
|
|
200
|
-
let colDef =
|
|
201
|
-
if (type &&
|
|
202
|
-
colDef =
|
|
201
|
+
function getDefaultColTypeDef(type) {
|
|
202
|
+
let colDef = COLUMN_TYPES[DEFAULT_GRID_COL_TYPE_KEY];
|
|
203
|
+
if (type && COLUMN_TYPES[type]) {
|
|
204
|
+
colDef = COLUMN_TYPES[type];
|
|
203
205
|
}
|
|
204
206
|
return colDef;
|
|
205
207
|
}
|
|
@@ -207,7 +209,6 @@ export const createColumnsState = ({
|
|
|
207
209
|
apiRef,
|
|
208
210
|
columnsToUpsert,
|
|
209
211
|
initialState,
|
|
210
|
-
columnTypes,
|
|
211
212
|
columnVisibilityModel = gridColumnVisibilityModelSelector(apiRef),
|
|
212
213
|
keepOnlyColumnsToUpsert = false
|
|
213
214
|
}) => {
|
|
@@ -244,7 +245,7 @@ export const createColumnsState = ({
|
|
|
244
245
|
columnsToKeep[field] = true;
|
|
245
246
|
let existingState = columnsState.lookup[field];
|
|
246
247
|
if (existingState == null) {
|
|
247
|
-
existingState = _extends({}, getDefaultColTypeDef(
|
|
248
|
+
existingState = _extends({}, getDefaultColTypeDef(newColumn.type), {
|
|
248
249
|
field,
|
|
249
250
|
hasBeenResized: false
|
|
250
251
|
});
|
|
@@ -255,7 +256,7 @@ export const createColumnsState = ({
|
|
|
255
256
|
|
|
256
257
|
// If the column type has changed - merge the existing state with the default column type definition
|
|
257
258
|
if (existingState && existingState.type !== newColumn.type) {
|
|
258
|
-
existingState = _extends({}, getDefaultColTypeDef(
|
|
259
|
+
existingState = _extends({}, getDefaultColTypeDef(newColumn.type), {
|
|
259
260
|
field
|
|
260
261
|
});
|
|
261
262
|
}
|
|
@@ -281,11 +282,8 @@ export const createColumnsState = ({
|
|
|
281
282
|
}
|
|
282
283
|
const columnsStateWithPreProcessing = apiRef.current.unstable_applyPipeProcessors('hydrateColumns', columnsState);
|
|
283
284
|
const columnsStateWithPortableColumns = applyInitialState(columnsStateWithPreProcessing, initialState);
|
|
284
|
-
return hydrateColumnsWidth(columnsStateWithPortableColumns, (_apiRef$current$getRo = (_apiRef$current$getRo2 = (_apiRef$current = apiRef.current).getRootDimensions) == null
|
|
285
|
+
return hydrateColumnsWidth(columnsStateWithPortableColumns, (_apiRef$current$getRo = (_apiRef$current$getRo2 = (_apiRef$current = apiRef.current).getRootDimensions) == null ? void 0 : _apiRef$current$getRo2.call(_apiRef$current).viewportInnerSize.width) != null ? _apiRef$current$getRo : 0);
|
|
285
286
|
};
|
|
286
|
-
export const mergeColumnsState = columnsState => state => _extends({}, state, {
|
|
287
|
-
columns: columnsState
|
|
288
|
-
});
|
|
289
287
|
export function getFirstNonSpannedColumnToRender({
|
|
290
288
|
firstColumnToRender,
|
|
291
289
|
apiRef,
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export
|
|
2
|
-
export
|
|
1
|
+
export * from './gridColumnsSelector';
|
|
2
|
+
export * from './gridColumnsInterfaces';
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export
|
|
1
|
+
export * from './gridColumnsSelector';
|
|
2
|
+
export * from './gridColumnsInterfaces';
|