@mui/x-data-grid 7.0.0-beta.6 → 7.0.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 +311 -12
- package/DataGrid/DataGrid.js +57 -17
- package/DataGrid/useDataGridComponent.js +3 -0
- package/DataGrid/useDataGridProps.js +6 -7
- package/README.md +1 -1
- package/components/GridColumnHeaders.d.ts +1 -2
- package/components/GridColumnHeaders.js +6 -17
- package/components/GridFooter.js +2 -3
- package/components/GridHeader.js +1 -2
- package/components/GridHeaders.js +1 -4
- package/components/GridPagination.d.ts +6 -5
- package/components/GridPagination.js +14 -11
- package/components/GridRow.d.ts +1 -1
- package/components/GridRow.js +17 -36
- package/components/GridScrollArea.d.ts +10 -0
- package/components/GridScrollArea.js +150 -0
- package/components/base/GridFooterPlaceholder.js +1 -2
- package/components/base/GridOverlays.js +3 -6
- package/components/cell/GridActionsCell.js +4 -6
- package/components/cell/GridActionsCellItem.d.ts +8 -25
- package/components/cell/GridActionsCellItem.js +8 -5
- package/components/cell/GridBooleanCell.d.ts +1 -0
- package/components/cell/GridBooleanCell.js +3 -2
- package/components/cell/GridCell.d.ts +7 -0
- package/components/cell/GridCell.js +18 -11
- package/components/cell/GridEditBooleanCell.js +1 -2
- package/components/cell/GridEditDateCell.js +2 -3
- package/components/cell/GridEditInputCell.js +2 -2
- package/components/cell/GridEditSingleSelectCell.js +5 -8
- package/components/columnHeaders/ColumnHeaderMenuIcon.js +2 -3
- package/components/columnHeaders/GridBaseColumnHeaders.js +1 -0
- package/components/columnHeaders/GridColumnGroupHeader.d.ts +5 -0
- package/components/columnHeaders/GridColumnGroupHeader.js +22 -13
- package/components/columnHeaders/GridColumnHeaderFilterIconButton.js +2 -3
- package/components/columnHeaders/GridColumnHeaderItem.d.ts +5 -0
- package/components/columnHeaders/GridColumnHeaderItem.js +26 -12
- package/components/columnHeaders/GridColumnHeaderSortIcon.js +1 -2
- package/components/columnHeaders/GridColumnHeaderTitle.js +2 -3
- package/components/columnHeaders/GridGenericColumnHeaderItem.d.ts +1 -0
- package/components/columnHeaders/GridGenericColumnHeaderItem.js +7 -6
- package/components/columnSelection/GridCellCheckboxRenderer.js +3 -5
- package/components/columnSelection/GridHeaderCheckbox.js +1 -2
- package/components/columnsManagement/GridColumnsManagement.js +17 -21
- package/components/containers/GridRoot.js +3 -3
- package/components/containers/GridRootStyles.js +12 -20
- package/components/menu/GridMenu.js +4 -6
- package/components/menu/columnMenu/GridColumnHeaderMenu.js +1 -1
- package/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +2 -3
- package/components/panel/GridColumnsPanel.js +1 -2
- package/components/panel/GridPanel.d.ts +1 -10
- package/components/panel/GridPanel.js +1 -2
- package/components/panel/GridPreferencesPanel.js +2 -3
- package/components/panel/filterPanel/GridFilterForm.js +24 -27
- package/components/panel/filterPanel/GridFilterInputBoolean.d.ts +1 -1
- package/components/panel/filterPanel/GridFilterInputBoolean.js +6 -7
- package/components/panel/filterPanel/GridFilterInputDate.d.ts +1 -1
- package/components/panel/filterPanel/GridFilterInputDate.js +3 -4
- package/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +11 -15
- package/components/panel/filterPanel/GridFilterInputMultipleValue.js +10 -14
- package/components/panel/filterPanel/GridFilterInputSingleSelect.d.ts +1 -1
- package/components/panel/filterPanel/GridFilterInputSingleSelect.js +10 -11
- package/components/panel/filterPanel/GridFilterInputValue.d.ts +1 -1
- package/components/panel/filterPanel/GridFilterInputValue.js +5 -7
- package/components/panel/filterPanel/GridFilterPanel.js +5 -9
- package/components/panel/filterPanel/filterPanelUtils.js +1 -1
- package/components/toolbar/GridToolbarColumnsButton.js +3 -5
- package/components/toolbar/GridToolbarDensitySelector.js +8 -10
- package/components/toolbar/GridToolbarExport.js +2 -2
- package/components/toolbar/GridToolbarExportContainer.js +3 -5
- package/components/toolbar/GridToolbarFilterButton.js +3 -5
- package/components/toolbar/GridToolbarQuickFilter.js +4 -5
- package/components/virtualization/GridVirtualScrollbar.js +4 -0
- package/components/virtualization/GridVirtualScroller.js +6 -1
- package/components/virtualization/GridVirtualScrollerContent.js +1 -2
- package/components/virtualization/GridVirtualScrollerFiller.js +2 -1
- package/components/virtualization/GridVirtualScrollerRenderZone.js +1 -2
- package/constants/gridClasses.d.ts +6 -32
- package/constants/gridClasses.js +1 -1
- package/hooks/core/pipeProcessing/gridPipeProcessingApi.d.ts +5 -1
- package/hooks/core/strategyProcessing/useGridStrategyProcessing.js +1 -2
- package/hooks/core/useGridApiInitialization.js +4 -6
- package/hooks/features/clipboard/useGridClipboard.js +6 -5
- package/hooks/features/columnGrouping/gridColumnGroupsSelector.js +4 -16
- package/hooks/features/columnGrouping/gridColumnGroupsUtils.js +4 -8
- package/hooks/features/columnGrouping/useGridColumnGrouping.js +12 -23
- package/hooks/features/columnHeaders/useGridColumnHeaders.d.ts +23 -7
- package/hooks/features/columnHeaders/useGridColumnHeaders.js +186 -101
- package/hooks/features/columnMenu/useGridColumnMenuSlots.js +2 -2
- package/hooks/features/columnResize/columnResizeSelector.d.ts +3 -0
- package/hooks/features/columnResize/columnResizeSelector.js +3 -0
- package/hooks/features/columnResize/columnResizeState.d.ts +3 -0
- package/hooks/features/columnResize/columnResizeState.js +1 -0
- package/hooks/features/columnResize/gridColumnResizeApi.d.ts +44 -0
- package/hooks/features/columnResize/gridColumnResizeApi.js +10 -0
- package/hooks/features/columnResize/index.d.ts +3 -0
- package/hooks/features/columnResize/index.js +3 -0
- package/hooks/features/columnResize/useGridColumnResize.d.ts +10 -0
- package/hooks/features/columnResize/useGridColumnResize.js +553 -0
- package/hooks/features/columns/gridColumnsSelector.js +1 -2
- package/hooks/features/columns/gridColumnsUtils.d.ts +0 -9
- package/hooks/features/columns/gridColumnsUtils.js +5 -22
- package/hooks/features/columns/useGridColumnSpanning.js +1 -2
- package/hooks/features/columns/useGridColumns.js +11 -19
- package/hooks/features/density/densitySelector.d.ts +4 -2
- package/hooks/features/density/densitySelector.js +8 -2
- package/hooks/features/density/densityState.d.ts +1 -4
- package/hooks/features/density/useGridDensity.d.ts +2 -4
- package/hooks/features/density/useGridDensity.js +21 -29
- package/hooks/features/dimensions/useGridDimensions.js +7 -10
- package/hooks/features/editing/useGridCellEditing.js +25 -8
- package/hooks/features/editing/useGridEditing.js +1 -2
- package/hooks/features/editing/useGridRowEditing.js +4 -6
- package/hooks/features/export/serializers/csvSerializer.d.ts +2 -0
- package/hooks/features/export/serializers/csvSerializer.js +25 -16
- package/hooks/features/export/useGridCsvExport.js +9 -10
- package/hooks/features/export/useGridPrintExport.js +17 -22
- package/hooks/features/export/utils.js +2 -3
- package/hooks/features/filter/gridFilterSelector.js +15 -22
- package/hooks/features/filter/gridFilterUtils.js +10 -16
- package/hooks/features/filter/useGridFilter.js +9 -15
- package/hooks/features/focus/useGridFocus.js +5 -6
- package/hooks/features/headerFiltering/gridHeaderFilteringSelectors.d.ts +1 -0
- package/hooks/features/headerFiltering/gridHeaderFilteringSelectors.js +3 -0
- package/hooks/features/headerFiltering/useGridHeaderFiltering.js +23 -5
- package/hooks/features/index.d.ts +1 -0
- package/hooks/features/index.js +1 -0
- package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +1 -2
- package/hooks/features/pagination/gridPaginationInterfaces.d.ts +19 -2
- package/hooks/features/pagination/gridPaginationSelector.d.ts +5 -0
- package/hooks/features/pagination/gridPaginationSelector.js +9 -4
- package/hooks/features/pagination/useGridPagination.d.ts +1 -6
- package/hooks/features/pagination/useGridPagination.js +9 -158
- package/hooks/features/pagination/useGridPaginationModel.d.ts +11 -0
- package/hooks/features/pagination/useGridPaginationModel.js +165 -0
- package/hooks/features/pagination/useGridRowCount.d.ts +8 -0
- package/hooks/features/pagination/useGridRowCount.js +94 -0
- package/hooks/features/preferencesPanel/useGridPreferencesPanel.js +7 -12
- package/hooks/features/rowSelection/useGridRowSelection.js +11 -16
- package/hooks/features/rows/gridRowsSelector.js +11 -19
- package/hooks/features/rows/gridRowsUtils.js +7 -9
- package/hooks/features/rows/useGridParamsApi.js +1 -1
- package/hooks/features/rows/useGridRows.js +4 -13
- package/hooks/features/rows/useGridRowsMeta.js +7 -13
- package/hooks/features/scroll/useGridScroll.js +3 -4
- package/hooks/features/sorting/gridSortingSelector.js +4 -7
- package/hooks/features/sorting/useGridSorting.js +8 -14
- package/hooks/features/virtualization/gridVirtualizationSelectors.d.ts +4 -4
- package/hooks/features/virtualization/gridVirtualizationSelectors.js +0 -2
- package/hooks/features/virtualization/useGridVirtualScroller.d.ts +3 -3
- package/hooks/features/virtualization/useGridVirtualScroller.js +220 -71
- package/hooks/utils/useGridApiEventHandler.js +5 -10
- package/hooks/utils/useGridNativeEventListener.js +1 -2
- package/hooks/utils/useLazyRef.d.ts +1 -2
- package/hooks/utils/useLazyRef.js +1 -11
- package/hooks/utils/useOnMount.d.ts +1 -2
- package/hooks/utils/useOnMount.js +1 -7
- package/hooks/utils/useTimeout.d.ts +1 -11
- package/hooks/utils/useTimeout.js +1 -36
- package/index.js +1 -1
- package/internals/index.d.ts +3 -1
- package/internals/index.js +2 -1
- package/internals/utils/getPinnedCellOffset.d.ts +3 -0
- package/internals/utils/getPinnedCellOffset.js +17 -0
- package/internals/utils/useProps.js +1 -2
- package/joy/joySlots.js +18 -63
- package/locales/jaJP.js +3 -4
- package/material/index.js +0 -2
- package/models/api/gridApiCommon.d.ts +3 -3
- package/models/api/gridCoreApi.d.ts +1 -5
- package/models/api/gridRowsMetaApi.d.ts +1 -1
- package/models/api/index.d.ts +1 -1
- package/models/api/index.js +0 -1
- package/models/events/gridEventLookup.d.ts +13 -0
- package/models/gridExport.d.ts +6 -0
- package/models/gridHeaderFilteringModel.d.ts +1 -0
- package/models/gridSlotsComponent.d.ts +0 -5
- package/models/gridStateCommunity.d.ts +3 -0
- package/models/params/gridScrollParams.d.ts +5 -3
- package/models/props/DataGridProps.d.ts +58 -28
- package/modern/DataGrid/DataGrid.js +57 -17
- package/modern/DataGrid/useDataGridComponent.js +3 -0
- package/modern/DataGrid/useDataGridProps.js +6 -7
- package/modern/components/GridColumnHeaders.js +6 -17
- package/modern/components/GridHeaders.js +1 -4
- package/modern/components/GridPagination.js +13 -6
- package/modern/components/GridRow.js +4 -19
- package/modern/components/GridScrollArea.js +150 -0
- package/modern/components/cell/GridActionsCell.js +1 -1
- package/modern/components/cell/GridActionsCellItem.js +4 -0
- package/modern/components/cell/GridBooleanCell.js +3 -2
- package/modern/components/cell/GridCell.js +11 -3
- package/modern/components/columnHeaders/GridBaseColumnHeaders.js +1 -0
- package/modern/components/columnHeaders/GridColumnGroupHeader.js +18 -8
- package/modern/components/columnHeaders/GridColumnHeaderItem.js +21 -6
- package/modern/components/columnHeaders/GridGenericColumnHeaderItem.js +6 -5
- package/modern/components/containers/GridRoot.js +3 -3
- package/modern/components/containers/GridRootStyles.js +12 -20
- package/modern/components/panel/filterPanel/GridFilterInputBoolean.js +1 -1
- package/modern/components/panel/filterPanel/GridFilterInputDate.js +1 -1
- package/modern/components/panel/filterPanel/GridFilterInputSingleSelect.js +1 -1
- package/modern/components/panel/filterPanel/GridFilterInputValue.js +1 -1
- package/modern/components/toolbar/GridToolbarDensitySelector.js +5 -5
- package/modern/components/virtualization/GridVirtualScrollbar.js +4 -0
- package/modern/components/virtualization/GridVirtualScroller.js +6 -1
- package/modern/components/virtualization/GridVirtualScrollerFiller.js +2 -1
- package/modern/constants/gridClasses.js +1 -1
- package/modern/hooks/features/clipboard/useGridClipboard.js +4 -2
- package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +184 -97
- package/modern/hooks/features/columnResize/columnResizeSelector.js +3 -0
- package/modern/hooks/features/columnResize/columnResizeState.js +1 -0
- package/modern/hooks/features/columnResize/gridColumnResizeApi.js +10 -0
- package/modern/hooks/features/columnResize/index.js +3 -0
- package/modern/hooks/features/columnResize/useGridColumnResize.js +553 -0
- package/modern/hooks/features/columns/gridColumnsUtils.js +4 -20
- package/modern/hooks/features/density/densitySelector.js +8 -2
- package/modern/hooks/features/density/useGridDensity.js +21 -29
- package/modern/hooks/features/dimensions/useGridDimensions.js +4 -5
- package/modern/hooks/features/editing/useGridCellEditing.js +22 -3
- package/modern/hooks/features/editing/useGridRowEditing.js +1 -1
- package/modern/hooks/features/export/serializers/csvSerializer.js +23 -12
- package/modern/hooks/features/export/useGridCsvExport.js +2 -1
- package/modern/hooks/features/export/useGridPrintExport.js +8 -7
- package/modern/hooks/features/filter/gridFilterUtils.js +1 -1
- package/modern/hooks/features/headerFiltering/gridHeaderFilteringSelectors.js +3 -0
- package/modern/hooks/features/headerFiltering/useGridHeaderFiltering.js +21 -2
- package/modern/hooks/features/index.js +1 -0
- package/modern/hooks/features/pagination/gridPaginationSelector.js +8 -2
- package/modern/hooks/features/pagination/useGridPagination.js +8 -149
- package/modern/hooks/features/pagination/useGridPaginationModel.js +165 -0
- package/modern/hooks/features/pagination/useGridRowCount.js +94 -0
- package/modern/hooks/features/rowSelection/useGridRowSelection.js +3 -2
- package/modern/hooks/features/scroll/useGridScroll.js +1 -1
- package/modern/hooks/features/virtualization/gridVirtualizationSelectors.js +0 -2
- package/modern/hooks/features/virtualization/useGridVirtualScroller.js +211 -57
- package/modern/hooks/utils/useLazyRef.js +1 -11
- package/modern/hooks/utils/useOnMount.js +1 -7
- package/modern/hooks/utils/useTimeout.js +1 -36
- package/modern/index.js +1 -1
- package/modern/internals/index.js +2 -1
- package/modern/internals/utils/getPinnedCellOffset.js +17 -0
- package/modern/joy/joySlots.js +11 -50
- package/modern/locales/jaJP.js +3 -4
- package/modern/material/index.js +0 -2
- package/modern/models/api/index.js +0 -1
- package/modern/utils/cellBorderUtils.js +8 -0
- package/modern/utils/createSelector.js +1 -1
- package/modern/utils/domUtils.js +144 -0
- package/modern/utils/keyboardUtils.js +1 -1
- package/node/DataGrid/DataGrid.js +57 -17
- package/node/DataGrid/useDataGridComponent.js +3 -0
- package/node/DataGrid/useDataGridProps.js +6 -7
- package/node/components/GridColumnHeaders.js +6 -16
- package/node/components/GridHeaders.js +1 -4
- package/node/components/GridPagination.js +10 -4
- package/node/components/GridRow.js +3 -18
- package/node/components/GridScrollArea.js +158 -0
- package/node/components/cell/GridActionsCell.js +1 -1
- package/node/components/cell/GridActionsCellItem.js +4 -0
- package/node/components/cell/GridBooleanCell.js +3 -2
- package/node/components/cell/GridCell.js +12 -4
- package/node/components/columnHeaders/GridBaseColumnHeaders.js +1 -0
- package/node/components/columnHeaders/GridColumnGroupHeader.js +18 -8
- package/node/components/columnHeaders/GridColumnHeaderItem.js +21 -6
- package/node/components/columnHeaders/GridGenericColumnHeaderItem.js +6 -5
- package/node/components/containers/GridRoot.js +2 -2
- package/node/components/containers/GridRootStyles.js +12 -20
- package/node/components/panel/filterPanel/GridFilterInputBoolean.js +1 -1
- package/node/components/panel/filterPanel/GridFilterInputDate.js +1 -1
- package/node/components/panel/filterPanel/GridFilterInputSingleSelect.js +1 -1
- package/node/components/panel/filterPanel/GridFilterInputValue.js +1 -1
- package/node/components/toolbar/GridToolbarDensitySelector.js +4 -4
- package/node/components/virtualization/GridVirtualScrollbar.js +4 -0
- package/node/components/virtualization/GridVirtualScroller.js +6 -1
- package/node/components/virtualization/GridVirtualScrollerFiller.js +2 -1
- package/node/constants/gridClasses.js +1 -1
- package/node/hooks/features/clipboard/useGridClipboard.js +4 -2
- package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +190 -103
- package/node/hooks/features/columnResize/columnResizeSelector.js +10 -0
- package/node/hooks/features/columnResize/columnResizeState.js +5 -0
- package/node/hooks/features/columnResize/gridColumnResizeApi.js +16 -0
- package/node/hooks/features/columnResize/index.js +38 -0
- package/node/hooks/features/columnResize/useGridColumnResize.js +564 -0
- package/node/hooks/features/columns/gridColumnsUtils.js +4 -21
- package/node/hooks/features/density/densitySelector.js +9 -3
- package/node/hooks/features/density/useGridDensity.js +22 -30
- package/node/hooks/features/dimensions/useGridDimensions.js +4 -5
- package/node/hooks/features/editing/useGridCellEditing.js +22 -3
- package/node/hooks/features/editing/useGridRowEditing.js +1 -1
- package/node/hooks/features/export/serializers/csvSerializer.js +23 -12
- package/node/hooks/features/export/useGridCsvExport.js +2 -1
- package/node/hooks/features/export/useGridPrintExport.js +8 -7
- package/node/hooks/features/filter/gridFilterUtils.js +1 -1
- package/node/hooks/features/headerFiltering/gridHeaderFilteringSelectors.js +4 -1
- package/node/hooks/features/headerFiltering/useGridHeaderFiltering.js +21 -2
- package/node/hooks/features/index.js +11 -0
- package/node/hooks/features/pagination/gridPaginationSelector.js +8 -2
- package/node/hooks/features/pagination/useGridPagination.js +9 -153
- package/node/hooks/features/pagination/useGridPaginationModel.js +176 -0
- package/node/hooks/features/pagination/useGridRowCount.js +103 -0
- package/node/hooks/features/rowSelection/useGridRowSelection.js +2 -1
- package/node/hooks/features/scroll/useGridScroll.js +1 -1
- package/node/hooks/features/virtualization/gridVirtualizationSelectors.js +0 -2
- package/node/hooks/features/virtualization/useGridVirtualScroller.js +211 -57
- package/node/hooks/utils/useLazyRef.js +7 -13
- package/node/hooks/utils/useOnMount.js +8 -10
- package/node/hooks/utils/useTimeout.js +7 -37
- package/node/index.js +1 -1
- package/node/internals/index.js +27 -8
- package/node/internals/utils/getPinnedCellOffset.js +24 -0
- package/node/joy/joySlots.js +11 -50
- package/node/locales/jaJP.js +3 -4
- package/node/material/index.js +0 -2
- package/node/models/api/index.js +0 -11
- package/node/utils/cellBorderUtils.js +16 -0
- package/node/utils/createSelector.js +1 -1
- package/node/utils/domUtils.js +155 -0
- package/node/utils/keyboardUtils.js +1 -1
- package/package.json +4 -4
- package/utils/cellBorderUtils.d.ts +3 -0
- package/utils/cellBorderUtils.js +8 -0
- package/utils/createSelector.js +9 -9
- package/utils/domUtils.d.ts +14 -1
- package/utils/domUtils.js +144 -0
- package/utils/getGridLocalization.js +9 -12
- package/utils/keyboardUtils.js +1 -1
- package/components/columnHeaders/GridColumnHeadersInner.d.ts +0 -8
- package/components/columnHeaders/GridColumnHeadersInner.js +0 -58
- package/modern/components/columnHeaders/GridColumnHeadersInner.js +0 -58
- package/node/components/columnHeaders/GridColumnHeadersInner.js +0 -67
|
@@ -8,17 +8,20 @@ import { useGridApiContext } from '../../hooks/utils/useGridApiContext';
|
|
|
8
8
|
import { useGridSelector } from '../../hooks/utils/useGridSelector';
|
|
9
9
|
import { GridGenericColumnHeaderItem } from './GridGenericColumnHeaderItem';
|
|
10
10
|
import { isEventTargetInPortal } from '../../utils/domUtils';
|
|
11
|
+
import { shouldCellShowLeftBorder, shouldCellShowRightBorder } from '../../utils/cellBorderUtils';
|
|
11
12
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
12
13
|
const useUtilityClasses = ownerState => {
|
|
13
14
|
const {
|
|
14
15
|
classes,
|
|
15
16
|
headerAlign,
|
|
16
17
|
isDragging,
|
|
17
|
-
|
|
18
|
-
|
|
18
|
+
showLeftBorder,
|
|
19
|
+
showRightBorder,
|
|
20
|
+
groupId,
|
|
21
|
+
pinnedPosition
|
|
19
22
|
} = ownerState;
|
|
20
23
|
const slots = {
|
|
21
|
-
root: ['columnHeader', headerAlign === 'left' && 'columnHeader--alignLeft', headerAlign === 'center' && 'columnHeader--alignCenter', headerAlign === 'right' && 'columnHeader--alignRight', isDragging && 'columnHeader--moving',
|
|
24
|
+
root: ['columnHeader', headerAlign === 'left' && 'columnHeader--alignLeft', headerAlign === 'center' && 'columnHeader--alignCenter', headerAlign === 'right' && 'columnHeader--alignRight', isDragging && 'columnHeader--moving', showRightBorder && 'columnHeader--withRightBorder', showLeftBorder && 'columnHeader--withLeftBorder', 'withBorderColor', groupId === null ? 'columnHeader--emptyGroup' : 'columnHeader--filledGroup', pinnedPosition === 'left' && 'columnHeader--pinnedLeft', pinnedPosition === 'right' && 'columnHeader--pinnedRight'],
|
|
22
25
|
draggableContainer: ['columnHeaderDraggableContainer'],
|
|
23
26
|
titleContainer: ['columnHeaderTitleContainer', 'withBorderColor'],
|
|
24
27
|
titleContainerContent: ['columnHeaderTitleContainerContent']
|
|
@@ -36,7 +39,11 @@ function GridColumnGroupHeader(props) {
|
|
|
36
39
|
colIndex,
|
|
37
40
|
hasFocus,
|
|
38
41
|
tabIndex,
|
|
39
|
-
isLastColumn
|
|
42
|
+
isLastColumn,
|
|
43
|
+
pinnedPosition,
|
|
44
|
+
style,
|
|
45
|
+
indexInSection,
|
|
46
|
+
sectionLength
|
|
40
47
|
} = props;
|
|
41
48
|
const rootProps = useGridRootProps();
|
|
42
49
|
const headerCellRef = React.useRef(null);
|
|
@@ -63,10 +70,12 @@ function GridColumnGroupHeader(props) {
|
|
|
63
70
|
if (groupId && render) {
|
|
64
71
|
headerComponent = render(renderParams);
|
|
65
72
|
}
|
|
66
|
-
const
|
|
73
|
+
const showLeftBorder = shouldCellShowLeftBorder(pinnedPosition, indexInSection);
|
|
74
|
+
const showRightBorder = shouldCellShowRightBorder(pinnedPosition, indexInSection, sectionLength, rootProps.showCellVerticalBorder);
|
|
67
75
|
const ownerState = _extends({}, props, {
|
|
68
76
|
classes: rootProps.classes,
|
|
69
|
-
|
|
77
|
+
showLeftBorder,
|
|
78
|
+
showRightBorder,
|
|
70
79
|
headerAlign,
|
|
71
80
|
depth,
|
|
72
81
|
isDragging: false
|
|
@@ -117,12 +126,13 @@ function GridColumnGroupHeader(props) {
|
|
|
117
126
|
width: width,
|
|
118
127
|
columnMenuIconButton: null,
|
|
119
128
|
columnTitleIconButtons: null,
|
|
120
|
-
resizable:
|
|
129
|
+
resizable: true,
|
|
121
130
|
label: label,
|
|
122
131
|
"aria-colspan": fields.length
|
|
123
132
|
// The fields are wrapped between |-...-| to avoid confusion between fields "id" and "id2" when using selector data-fields~=
|
|
124
133
|
,
|
|
125
|
-
"data-fields": `|-${fields.join('-|-')}
|
|
134
|
+
"data-fields": `|-${fields.join('-|-')}-|`,
|
|
135
|
+
style: style
|
|
126
136
|
}, mouseEventsHandlers));
|
|
127
137
|
}
|
|
128
138
|
export { GridColumnGroupHeader };
|
|
@@ -11,6 +11,7 @@ import { getDataGridUtilityClass } from '../../constants/gridClasses';
|
|
|
11
11
|
import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
|
|
12
12
|
import { GridGenericColumnHeaderItem } from './GridGenericColumnHeaderItem';
|
|
13
13
|
import { isEventTargetInPortal } from '../../utils/domUtils';
|
|
14
|
+
import { shouldCellShowLeftBorder, shouldCellShowRightBorder } from '../../utils/cellBorderUtils';
|
|
14
15
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
15
16
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
16
17
|
const useUtilityClasses = ownerState => {
|
|
@@ -20,14 +21,16 @@ const useUtilityClasses = ownerState => {
|
|
|
20
21
|
isDragging,
|
|
21
22
|
sortDirection,
|
|
22
23
|
showRightBorder,
|
|
23
|
-
|
|
24
|
+
showLeftBorder,
|
|
25
|
+
filterItemsCounter,
|
|
26
|
+
pinnedPosition
|
|
24
27
|
} = ownerState;
|
|
25
28
|
const isColumnSorted = sortDirection != null;
|
|
26
29
|
const isColumnFiltered = filterItemsCounter != null && filterItemsCounter > 0;
|
|
27
30
|
// todo refactor to a prop on col isNumeric or ?? ie: coltype===price wont work
|
|
28
31
|
const isColumnNumeric = colDef.type === 'number';
|
|
29
32
|
const slots = {
|
|
30
|
-
root: ['columnHeader', colDef.headerAlign === 'left' && 'columnHeader--alignLeft', colDef.headerAlign === 'center' && 'columnHeader--alignCenter', colDef.headerAlign === 'right' && 'columnHeader--alignRight', colDef.sortable && 'columnHeader--sortable', isDragging && 'columnHeader--moving', isColumnSorted && 'columnHeader--sorted', isColumnFiltered && 'columnHeader--filtered', isColumnNumeric && 'columnHeader--numeric', 'withBorderColor', showRightBorder && 'columnHeader--withRightBorder'],
|
|
33
|
+
root: ['columnHeader', colDef.headerAlign === 'left' && 'columnHeader--alignLeft', colDef.headerAlign === 'center' && 'columnHeader--alignCenter', colDef.headerAlign === 'right' && 'columnHeader--alignRight', colDef.sortable && 'columnHeader--sortable', isDragging && 'columnHeader--moving', isColumnSorted && 'columnHeader--sorted', isColumnFiltered && 'columnHeader--filtered', isColumnNumeric && 'columnHeader--numeric', 'withBorderColor', showRightBorder && 'columnHeader--withRightBorder', showLeftBorder && 'columnHeader--withLeftBorder', pinnedPosition === 'left' && 'columnHeader--pinnedLeft', pinnedPosition === 'right' && 'columnHeader--pinnedRight'],
|
|
31
34
|
draggableContainer: ['columnHeaderDraggableContainer'],
|
|
32
35
|
titleContainer: ['columnHeaderTitleContainer'],
|
|
33
36
|
titleContainerContent: ['columnHeaderTitleContainerContent']
|
|
@@ -47,7 +50,11 @@ function GridColumnHeaderItem(props) {
|
|
|
47
50
|
hasFocus,
|
|
48
51
|
tabIndex,
|
|
49
52
|
disableReorder,
|
|
50
|
-
separatorSide
|
|
53
|
+
separatorSide,
|
|
54
|
+
style,
|
|
55
|
+
pinnedPosition,
|
|
56
|
+
indexInSection,
|
|
57
|
+
sectionLength
|
|
51
58
|
} = props;
|
|
52
59
|
const apiRef = useGridPrivateApiContext();
|
|
53
60
|
const rootProps = useGridRootProps();
|
|
@@ -61,9 +68,12 @@ function GridColumnHeaderItem(props) {
|
|
|
61
68
|
if (colDef.renderHeader) {
|
|
62
69
|
headerComponent = colDef.renderHeader(apiRef.current.getColumnHeaderParams(colDef.field));
|
|
63
70
|
}
|
|
71
|
+
const showLeftBorder = shouldCellShowLeftBorder(pinnedPosition, indexInSection);
|
|
72
|
+
const showRightBorder = shouldCellShowRightBorder(pinnedPosition, indexInSection, sectionLength, rootProps.showCellVerticalBorder);
|
|
64
73
|
const ownerState = _extends({}, props, {
|
|
65
74
|
classes: rootProps.classes,
|
|
66
|
-
showRightBorder
|
|
75
|
+
showRightBorder,
|
|
76
|
+
showLeftBorder
|
|
67
77
|
});
|
|
68
78
|
const classes = useUtilityClasses(ownerState);
|
|
69
79
|
const publish = React.useCallback(eventName => event => {
|
|
@@ -143,7 +153,7 @@ function GridColumnHeaderItem(props) {
|
|
|
143
153
|
const focusableElement = headerCellRef.current.querySelector('[tabindex="0"]');
|
|
144
154
|
const elementToFocus = focusableElement || headerCellRef.current;
|
|
145
155
|
elementToFocus?.focus();
|
|
146
|
-
apiRef.current.
|
|
156
|
+
apiRef.current.columnHeadersContainerRef.current.scrollLeft = 0;
|
|
147
157
|
}
|
|
148
158
|
}, [apiRef, hasFocus]);
|
|
149
159
|
const headerClassName = typeof colDef.headerClassName === 'function' ? colDef.headerClassName({
|
|
@@ -175,7 +185,8 @@ function GridColumnHeaderItem(props) {
|
|
|
175
185
|
"data-field": colDef.field,
|
|
176
186
|
columnMenu: columnMenu,
|
|
177
187
|
draggableContainerProps: draggableEventHandlers,
|
|
178
|
-
columnHeaderSeparatorProps: columnHeaderSeparatorProps
|
|
188
|
+
columnHeaderSeparatorProps: columnHeaderSeparatorProps,
|
|
189
|
+
style: style
|
|
179
190
|
}, mouseEventsHandlers));
|
|
180
191
|
}
|
|
181
192
|
process.env.NODE_ENV !== "production" ? GridColumnHeaderItem.propTypes = {
|
|
@@ -190,11 +201,15 @@ process.env.NODE_ENV !== "production" ? GridColumnHeaderItem.propTypes = {
|
|
|
190
201
|
filterItemsCounter: PropTypes.number,
|
|
191
202
|
hasFocus: PropTypes.bool,
|
|
192
203
|
headerHeight: PropTypes.number.isRequired,
|
|
204
|
+
indexInSection: PropTypes.number.isRequired,
|
|
193
205
|
isDragging: PropTypes.bool.isRequired,
|
|
194
206
|
isResizing: PropTypes.bool.isRequired,
|
|
207
|
+
pinnedPosition: PropTypes.oneOf(['left', 'right']),
|
|
208
|
+
sectionLength: PropTypes.number.isRequired,
|
|
195
209
|
separatorSide: PropTypes.oneOf(['left', 'right']),
|
|
196
210
|
sortDirection: PropTypes.oneOf(['asc', 'desc']),
|
|
197
211
|
sortIndex: PropTypes.number,
|
|
212
|
+
style: PropTypes.object,
|
|
198
213
|
tabIndex: PropTypes.oneOf([-1, 0]).isRequired
|
|
199
214
|
} : void 0;
|
|
200
215
|
const Memoized = fastMemo(GridColumnHeaderItem);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
|
-
const _excluded = ["classes", "columnMenuOpen", "colIndex", "height", "isResizing", "sortDirection", "hasFocus", "tabIndex", "separatorSide", "isDraggable", "headerComponent", "description", "elementId", "width", "columnMenuIconButton", "columnMenu", "columnTitleIconButtons", "headerClassName", "label", "resizable", "draggableContainerProps", "columnHeaderSeparatorProps"];
|
|
3
|
+
const _excluded = ["classes", "columnMenuOpen", "colIndex", "height", "isResizing", "sortDirection", "hasFocus", "tabIndex", "separatorSide", "isDraggable", "headerComponent", "description", "elementId", "width", "columnMenuIconButton", "columnMenu", "columnTitleIconButtons", "headerClassName", "label", "resizable", "draggableContainerProps", "columnHeaderSeparatorProps", "style"];
|
|
4
4
|
import * as React from 'react';
|
|
5
5
|
import clsx from 'clsx';
|
|
6
6
|
import { unstable_useForkRef as useForkRef } from '@mui/utils';
|
|
@@ -32,7 +32,8 @@ const GridGenericColumnHeaderItem = /*#__PURE__*/React.forwardRef(function GridG
|
|
|
32
32
|
label,
|
|
33
33
|
resizable,
|
|
34
34
|
draggableContainerProps,
|
|
35
|
-
columnHeaderSeparatorProps
|
|
35
|
+
columnHeaderSeparatorProps,
|
|
36
|
+
style
|
|
36
37
|
} = props,
|
|
37
38
|
other = _objectWithoutPropertiesLoose(props, _excluded);
|
|
38
39
|
const apiRef = useGridPrivateApiContext();
|
|
@@ -55,18 +56,18 @@ const GridGenericColumnHeaderItem = /*#__PURE__*/React.forwardRef(function GridG
|
|
|
55
56
|
const focusableElement = headerCellRef.current.querySelector('[tabindex="0"]');
|
|
56
57
|
const elementToFocus = focusableElement || headerCellRef.current;
|
|
57
58
|
elementToFocus?.focus();
|
|
58
|
-
apiRef.current.
|
|
59
|
+
apiRef.current.columnHeadersContainerRef.current.scrollLeft = 0;
|
|
59
60
|
}
|
|
60
61
|
}, [apiRef, hasFocus]);
|
|
61
62
|
return /*#__PURE__*/_jsxs("div", _extends({
|
|
62
63
|
ref: handleRef,
|
|
63
64
|
className: clsx(classes.root, headerClassName),
|
|
64
|
-
style: {
|
|
65
|
+
style: _extends({}, style, {
|
|
65
66
|
height,
|
|
66
67
|
width,
|
|
67
68
|
minWidth: width,
|
|
68
69
|
maxWidth: width
|
|
69
|
-
},
|
|
70
|
+
}),
|
|
70
71
|
role: "columnheader",
|
|
71
72
|
tabIndex: tabIndex,
|
|
72
73
|
"aria-colindex": colIndex + 1,
|
|
@@ -11,7 +11,7 @@ import { useGridSelector } from '../../hooks/utils/useGridSelector';
|
|
|
11
11
|
import { useGridPrivateApiContext } from '../../hooks/utils/useGridPrivateApiContext';
|
|
12
12
|
import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
|
|
13
13
|
import { getDataGridUtilityClass } from '../../constants/gridClasses';
|
|
14
|
-
import {
|
|
14
|
+
import { gridDensitySelector } from '../../hooks/features/density/densitySelector';
|
|
15
15
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
16
16
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
17
17
|
const useUtilityClasses = ownerState => {
|
|
@@ -39,11 +39,11 @@ const GridRoot = /*#__PURE__*/React.forwardRef(function GridRoot(props, ref) {
|
|
|
39
39
|
} = props,
|
|
40
40
|
other = _objectWithoutPropertiesLoose(props, _excluded);
|
|
41
41
|
const apiRef = useGridPrivateApiContext();
|
|
42
|
-
const
|
|
42
|
+
const density = useGridSelector(apiRef, gridDensitySelector);
|
|
43
43
|
const rootElementRef = apiRef.current.rootElementRef;
|
|
44
44
|
const handleRef = useForkRef(rootElementRef, ref);
|
|
45
45
|
const ownerState = _extends({}, rootProps, {
|
|
46
|
-
density
|
|
46
|
+
density
|
|
47
47
|
});
|
|
48
48
|
const classes = useUtilityClasses(ownerState);
|
|
49
49
|
|
|
@@ -307,14 +307,6 @@ export const GridRootStyles = styled('div', {
|
|
|
307
307
|
borderBottomStyle: 'solid',
|
|
308
308
|
boxSizing: 'border-box'
|
|
309
309
|
},
|
|
310
|
-
[`& .${c['columnHeader--filledGroup']}.${c['columnHeader--showColumnBorder']} .${c.columnHeaderTitleContainer}`]: {
|
|
311
|
-
borderBottom: `none`
|
|
312
|
-
},
|
|
313
|
-
[`& .${c['columnHeader--filledGroup']}.${c['columnHeader--showColumnBorder']}`]: {
|
|
314
|
-
borderBottomWidth: '1px',
|
|
315
|
-
borderBottomStyle: 'solid',
|
|
316
|
-
boxSizing: 'border-box'
|
|
317
|
-
},
|
|
318
310
|
[`& .${c.sortIcon}, & .${c.filterIcon}`]: {
|
|
319
311
|
fontSize: 'inherit'
|
|
320
312
|
},
|
|
@@ -338,6 +330,12 @@ export const GridRootStyles = styled('div', {
|
|
|
338
330
|
[`& .${c['columnHeader--moving']}`]: {
|
|
339
331
|
backgroundColor: (t.vars || t).palette.action.hover
|
|
340
332
|
},
|
|
333
|
+
[`& .${c['columnHeader--pinnedLeft']}, & .${c['columnHeader--pinnedRight']}`]: {
|
|
334
|
+
position: 'sticky',
|
|
335
|
+
zIndex: 4,
|
|
336
|
+
// Should be above the column separator
|
|
337
|
+
background: 'var(--DataGrid-pinnedBackground)'
|
|
338
|
+
},
|
|
341
339
|
[`& .${c.columnSeparator}`]: {
|
|
342
340
|
visibility: 'hidden',
|
|
343
341
|
position: 'absolute',
|
|
@@ -428,9 +426,6 @@ export const GridRootStyles = styled('div', {
|
|
|
428
426
|
[`& .${c['container--top']}, & .${c['container--bottom']}`]: {
|
|
429
427
|
'[role=row]': {
|
|
430
428
|
background: 'var(--DataGrid-containerBackground)'
|
|
431
|
-
},
|
|
432
|
-
[`.${c.pinnedColumnHeaders} [role=row]`]: {
|
|
433
|
-
background: 'var(--DataGrid-pinnedBackground)'
|
|
434
429
|
}
|
|
435
430
|
},
|
|
436
431
|
/* Cell styles */
|
|
@@ -520,20 +515,16 @@ export const GridRootStyles = styled('div', {
|
|
|
520
515
|
[`.${c.withBorderColor}`]: {
|
|
521
516
|
borderColor
|
|
522
517
|
},
|
|
523
|
-
[`& .${c['cell--withLeftBorder']}`]: {
|
|
518
|
+
[`& .${c['cell--withLeftBorder']}, & .${c['columnHeader--withLeftBorder']}`]: {
|
|
524
519
|
borderLeftColor: 'var(--DataGrid-rowBorderColor)',
|
|
525
520
|
borderLeftWidth: '1px',
|
|
526
521
|
borderLeftStyle: 'solid'
|
|
527
522
|
},
|
|
528
|
-
[`& .${c['cell--withRightBorder']}`]: {
|
|
523
|
+
[`& .${c['cell--withRightBorder']}, & .${c['columnHeader--withRightBorder']}`]: {
|
|
529
524
|
borderRightColor: 'var(--DataGrid-rowBorderColor)',
|
|
530
525
|
borderRightWidth: '1px',
|
|
531
526
|
borderRightStyle: 'solid'
|
|
532
527
|
},
|
|
533
|
-
[`& .${c['columnHeader--withRightBorder']}`]: {
|
|
534
|
-
borderRightWidth: '1px',
|
|
535
|
-
borderRightStyle: 'solid'
|
|
536
|
-
},
|
|
537
528
|
[`& .${c['cell--flex']}`]: {
|
|
538
529
|
display: 'flex',
|
|
539
530
|
alignItems: 'center',
|
|
@@ -634,12 +625,13 @@ export const GridRootStyles = styled('div', {
|
|
|
634
625
|
borderTop: '1px solid var(--DataGrid-rowBorderColor)'
|
|
635
626
|
},
|
|
636
627
|
[`&.${c['scrollbarFiller--pinnedRight']}`]: {
|
|
637
|
-
backgroundColor: 'var(--DataGrid-pinnedBackground)'
|
|
638
|
-
},
|
|
639
|
-
[`&.${c['scrollbarFiller--pinnedRight']}:not(.${c['scrollbarFiller--header']})`]: {
|
|
628
|
+
backgroundColor: 'var(--DataGrid-pinnedBackground)',
|
|
640
629
|
position: 'sticky',
|
|
641
630
|
right: 0
|
|
642
631
|
}
|
|
632
|
+
},
|
|
633
|
+
[`& .${c.filler}`]: {
|
|
634
|
+
flex: 1
|
|
643
635
|
}
|
|
644
636
|
});
|
|
645
637
|
return gridStyle;
|
|
@@ -99,7 +99,7 @@ process.env.NODE_ENV !== "production" ? GridFilterInputBoolean.propTypes = {
|
|
|
99
99
|
focusElementRef: refType,
|
|
100
100
|
/**
|
|
101
101
|
* It is `true` if the filter either has a value or an operator with no value
|
|
102
|
-
* required is selected (
|
|
102
|
+
* required is selected (for example `isEmpty`)
|
|
103
103
|
*/
|
|
104
104
|
isFilterActive: PropTypes.bool,
|
|
105
105
|
item: PropTypes.shape({
|
|
@@ -99,7 +99,7 @@ process.env.NODE_ENV !== "production" ? GridFilterInputDate.propTypes = {
|
|
|
99
99
|
focusElementRef: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.func, PropTypes.object]),
|
|
100
100
|
/**
|
|
101
101
|
* It is `true` if the filter either has a value or an operator with no value
|
|
102
|
-
* required is selected (
|
|
102
|
+
* required is selected (for example `isEmpty`)
|
|
103
103
|
*/
|
|
104
104
|
isFilterActive: PropTypes.bool,
|
|
105
105
|
item: PropTypes.shape({
|
|
@@ -134,7 +134,7 @@ process.env.NODE_ENV !== "production" ? GridFilterInputSingleSelect.propTypes =
|
|
|
134
134
|
focusElementRef: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.func, PropTypes.object]),
|
|
135
135
|
/**
|
|
136
136
|
* It is `true` if the filter either has a value or an operator with no value
|
|
137
|
-
* required is selected (
|
|
137
|
+
* required is selected (for example `isEmpty`)
|
|
138
138
|
*/
|
|
139
139
|
isFilterActive: PropTypes.bool,
|
|
140
140
|
item: PropTypes.shape({
|
|
@@ -86,7 +86,7 @@ process.env.NODE_ENV !== "production" ? GridFilterInputValue.propTypes = {
|
|
|
86
86
|
focusElementRef: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.func, PropTypes.object]),
|
|
87
87
|
/**
|
|
88
88
|
* It is `true` if the filter either has a value or an operator with no value
|
|
89
|
-
* required is selected (
|
|
89
|
+
* required is selected (for example `isEmpty`)
|
|
90
90
|
*/
|
|
91
91
|
isFilterActive: PropTypes.bool,
|
|
92
92
|
item: PropTypes.shape({
|
|
@@ -5,7 +5,7 @@ import { unstable_useId as useId, unstable_useForkRef as useForkRef } from '@mui
|
|
|
5
5
|
import MenuList from '@mui/material/MenuList';
|
|
6
6
|
import MenuItem from '@mui/material/MenuItem';
|
|
7
7
|
import ListItemIcon from '@mui/material/ListItemIcon';
|
|
8
|
-
import {
|
|
8
|
+
import { gridDensitySelector } from '../../hooks/features/density/densitySelector';
|
|
9
9
|
import { isHideMenuKey, isTabKey } from '../../utils/keyboardUtils';
|
|
10
10
|
import { useGridApiContext } from '../../hooks/utils/useGridApiContext';
|
|
11
11
|
import { useGridSelector } from '../../hooks/utils/useGridSelector';
|
|
@@ -22,7 +22,7 @@ const GridToolbarDensitySelector = /*#__PURE__*/React.forwardRef(function GridTo
|
|
|
22
22
|
const tooltipProps = slotProps.tooltip || {};
|
|
23
23
|
const apiRef = useGridApiContext();
|
|
24
24
|
const rootProps = useGridRootProps();
|
|
25
|
-
const
|
|
25
|
+
const density = useGridSelector(apiRef, gridDensitySelector);
|
|
26
26
|
const densityButtonId = useId();
|
|
27
27
|
const densityMenuId = useId();
|
|
28
28
|
const [open, setOpen] = React.useState(false);
|
|
@@ -42,7 +42,7 @@ const GridToolbarDensitySelector = /*#__PURE__*/React.forwardRef(function GridTo
|
|
|
42
42
|
value: 'comfortable'
|
|
43
43
|
}];
|
|
44
44
|
const startIcon = React.useMemo(() => {
|
|
45
|
-
switch (
|
|
45
|
+
switch (density) {
|
|
46
46
|
case 'compact':
|
|
47
47
|
return /*#__PURE__*/_jsx(rootProps.slots.densityCompactIcon, {});
|
|
48
48
|
case 'comfortable':
|
|
@@ -50,7 +50,7 @@ const GridToolbarDensitySelector = /*#__PURE__*/React.forwardRef(function GridTo
|
|
|
50
50
|
default:
|
|
51
51
|
return /*#__PURE__*/_jsx(rootProps.slots.densityStandardIcon, {});
|
|
52
52
|
}
|
|
53
|
-
}, [
|
|
53
|
+
}, [density, rootProps]);
|
|
54
54
|
const handleDensitySelectorOpen = event => {
|
|
55
55
|
setOpen(prevOpen => !prevOpen);
|
|
56
56
|
buttonProps.onClick?.(event);
|
|
@@ -77,7 +77,7 @@ const GridToolbarDensitySelector = /*#__PURE__*/React.forwardRef(function GridTo
|
|
|
77
77
|
}
|
|
78
78
|
const densityElements = densityOptions.map((option, index) => /*#__PURE__*/_jsxs(MenuItem, {
|
|
79
79
|
onClick: () => handleDensityUpdate(option.value),
|
|
80
|
-
selected: option.value ===
|
|
80
|
+
selected: option.value === density,
|
|
81
81
|
children: [/*#__PURE__*/_jsx(ListItemIcon, {
|
|
82
82
|
children: option.icon
|
|
83
83
|
}), option.label]
|
|
@@ -35,6 +35,8 @@ const ScrollbarVertical = styled(Scrollbar)({
|
|
|
35
35
|
height: 'calc(var(--DataGrid-hasScrollY) * (100% - var(--DataGrid-topContainerHeight) - var(--DataGrid-bottomContainerHeight) - var(--DataGrid-hasScrollX) * var(--DataGrid-scrollbarSize)))',
|
|
36
36
|
overflowY: 'auto',
|
|
37
37
|
overflowX: 'hidden',
|
|
38
|
+
// Disable focus-visible style, it's a scrollbar.
|
|
39
|
+
outline: 0,
|
|
38
40
|
'& > div': {
|
|
39
41
|
width: 'var(--size)'
|
|
40
42
|
},
|
|
@@ -46,6 +48,8 @@ const ScrollbarHorizontal = styled(Scrollbar)({
|
|
|
46
48
|
height: 'var(--size)',
|
|
47
49
|
overflowY: 'hidden',
|
|
48
50
|
overflowX: 'auto',
|
|
51
|
+
// Disable focus-visible style, it's a scrollbar.
|
|
52
|
+
outline: 0,
|
|
49
53
|
'& > div': {
|
|
50
54
|
height: 'var(--size)'
|
|
51
55
|
},
|
|
@@ -2,6 +2,7 @@ import _extends from "@babel/runtime/helpers/esm/extends";
|
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { styled } from '@mui/system';
|
|
4
4
|
import { unstable_composeClasses as composeClasses } from '@mui/utils';
|
|
5
|
+
import { GridScrollArea } from '../GridScrollArea';
|
|
5
6
|
import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
|
|
6
7
|
import { useGridApiContext } from '../../hooks/utils/useGridApiContext';
|
|
7
8
|
import { useGridSelector } from '../../hooks/utils/useGridSelector';
|
|
@@ -66,7 +67,11 @@ function GridVirtualScroller(props) {
|
|
|
66
67
|
return /*#__PURE__*/_jsxs(Container, _extends({
|
|
67
68
|
className: classes.root
|
|
68
69
|
}, getContainerProps(), {
|
|
69
|
-
children: [/*#__PURE__*/
|
|
70
|
+
children: [/*#__PURE__*/_jsx(GridScrollArea, {
|
|
71
|
+
scrollDirection: "left"
|
|
72
|
+
}), /*#__PURE__*/_jsx(GridScrollArea, {
|
|
73
|
+
scrollDirection: "right"
|
|
74
|
+
}), /*#__PURE__*/_jsxs(Scroller, _extends({
|
|
70
75
|
className: classes.scroller
|
|
71
76
|
}, getScrollerProps(), {
|
|
72
77
|
ownerState: rootProps,
|
|
@@ -38,6 +38,7 @@ function GridVirtualScrollerFiller() {
|
|
|
38
38
|
viewportOuterSize,
|
|
39
39
|
minimumSize,
|
|
40
40
|
hasScrollX,
|
|
41
|
+
hasScrollY,
|
|
41
42
|
scrollbarSize,
|
|
42
43
|
leftPinnedWidth,
|
|
43
44
|
rightPinnedWidth
|
|
@@ -62,7 +63,7 @@ function GridVirtualScrollerFiller() {
|
|
|
62
63
|
}), /*#__PURE__*/_jsx(Main, {}), rightPinnedWidth > 0 && /*#__PURE__*/_jsx(PinnedRight, {
|
|
63
64
|
className: gridClasses['filler--pinnedRight'],
|
|
64
65
|
style: {
|
|
65
|
-
width: rightPinnedWidth
|
|
66
|
+
width: rightPinnedWidth + (hasScrollY ? scrollbarSize : 0)
|
|
66
67
|
}
|
|
67
68
|
})]
|
|
68
69
|
});
|
|
@@ -2,4 +2,4 @@ import { unstable_generateUtilityClasses as generateUtilityClasses, unstable_gen
|
|
|
2
2
|
export function getDataGridUtilityClass(slot) {
|
|
3
3
|
return generateUtilityClass('MuiDataGrid', slot);
|
|
4
4
|
}
|
|
5
|
-
export const gridClasses = generateUtilityClasses('MuiDataGrid', ['actionsCell', 'aggregationColumnHeader', 'aggregationColumnHeader--alignLeft', 'aggregationColumnHeader--alignCenter', 'aggregationColumnHeader--alignRight', 'aggregationColumnHeaderLabel', 'autoHeight', 'autosizing', 'booleanCell', 'cell--editable', 'cell--editing', 'cell--flex', 'cell--textCenter', 'cell--textLeft', 'cell--textRight', 'cell--rangeTop', 'cell--rangeBottom', 'cell--rangeLeft', 'cell--rangeRight', 'cell--pinnedLeft', 'cell--pinnedRight', 'cell--selectionMode', 'cell', 'cellCheckbox', 'cellEmpty', 'cellSkeleton', 'cellOffsetLeft', 'checkboxInput', 'columnHeader--alignCenter', 'columnHeader--alignLeft', 'columnHeader--alignRight', 'columnHeader--dragging', 'columnHeader--moving', 'columnHeader--numeric', 'columnHeader--sortable', 'columnHeader--sorted', 'columnHeader--filtered', 'columnHeader', '
|
|
5
|
+
export const gridClasses = generateUtilityClasses('MuiDataGrid', ['actionsCell', 'aggregationColumnHeader', 'aggregationColumnHeader--alignLeft', 'aggregationColumnHeader--alignCenter', 'aggregationColumnHeader--alignRight', 'aggregationColumnHeaderLabel', 'autoHeight', 'autosizing', 'booleanCell', 'cell--editable', 'cell--editing', 'cell--flex', 'cell--textCenter', 'cell--textLeft', 'cell--textRight', 'cell--rangeTop', 'cell--rangeBottom', 'cell--rangeLeft', 'cell--rangeRight', 'cell--pinnedLeft', 'cell--pinnedRight', 'cell--selectionMode', 'cell', 'cellCheckbox', 'cellEmpty', 'cellSkeleton', 'cellOffsetLeft', 'checkboxInput', 'columnHeader--alignCenter', 'columnHeader--alignLeft', 'columnHeader--alignRight', 'columnHeader--dragging', 'columnHeader--moving', 'columnHeader--numeric', 'columnHeader--sortable', 'columnHeader--sorted', 'columnHeader--filtered', 'columnHeader--pinnedLeft', 'columnHeader--pinnedRight', 'columnHeader', 'columnHeaderCheckbox', 'columnHeaderDraggableContainer', 'columnHeaderTitle', 'columnHeaderTitleContainer', 'columnHeaderTitleContainerContent', 'columnHeader--filledGroup', 'columnHeader--emptyGroup', 'columnHeaders', 'columnSeparator--resizable', 'columnSeparator--resizing', 'columnSeparator--sideLeft', 'columnSeparator--sideRight', 'columnSeparator', 'columnsManagement', 'columnsManagementRow', 'columnsManagementHeader', 'columnsManagementFooter', 'container--top', 'container--bottom', 'detailPanel', 'detailPanels', 'detailPanelToggleCell', 'detailPanelToggleCell--expanded', 'footerCell', 'panel', 'panelHeader', 'panelWrapper', 'panelContent', 'panelFooter', 'paper', 'editBooleanCell', 'editInputCell', 'filler', 'filler--pinnedLeft', 'filler--pinnedRight', 'filterForm', 'filterFormDeleteIcon', 'filterFormLogicOperatorInput', 'filterFormColumnInput', 'filterFormOperatorInput', 'filterFormValueInput', 'filterIcon', 'footerContainer', 'headerFilterRow', 'iconButtonContainer', 'iconSeparator', 'main', 'main--hasPinnedRight', 'menu', 'menuIcon', 'menuIconButton', 'menuOpen', 'menuList', 'overlay', 'overlayWrapper', 'overlayWrapperInner', 'root', 'root--densityStandard', 'root--densityComfortable', 'root--densityCompact', 'root--disableUserSelection', 'row', 'row--editable', 'row--editing', 'row--firstVisible', 'row--lastVisible', 'row--dragging', 'row--dynamicHeight', 'row--detailPanelExpanded', 'rowReorderCellPlaceholder', 'rowCount', 'rowReorderCellContainer', 'rowReorderCell', 'rowReorderCell--draggable', 'scrollArea--left', 'scrollArea--right', 'scrollArea', 'scrollbar', 'scrollbar--vertical', 'scrollbar--horizontal', 'scrollbarFiller', 'scrollbarFiller--header', 'scrollbarFiller--borderTop', 'scrollbarFiller--pinnedRight', 'selectedRowCount', 'sortIcon', 'toolbarContainer', 'toolbarFilterList', 'virtualScroller', 'virtualScrollerContent', 'virtualScrollerContent--overflowed', 'virtualScrollerRenderZone', 'pinnedColumns', 'withVerticalBorder', 'withBorderColor', 'cell--withRightBorder', 'cell--withLeftBorder', 'columnHeader--withRightBorder', 'columnHeader--withLeftBorder', 'treeDataGroupingCell', 'treeDataGroupingCellToggle', 'groupingCriteriaCell', 'groupingCriteriaCellToggle', 'pinnedRows', 'pinnedRows--top', 'pinnedRows--bottom', 'pinnedRowsRenderZone']);
|
|
@@ -67,7 +67,8 @@ export const useGridClipboard = (apiRef, props) => {
|
|
|
67
67
|
textToCopy = apiRef.current.getDataAsCsv({
|
|
68
68
|
includeHeaders: false,
|
|
69
69
|
// TODO: make it configurable
|
|
70
|
-
delimiter: clipboardCopyCellDelimiter
|
|
70
|
+
delimiter: clipboardCopyCellDelimiter,
|
|
71
|
+
shouldAppendQuotes: false
|
|
71
72
|
});
|
|
72
73
|
} else {
|
|
73
74
|
const focusedCell = gridFocusCellSelector(apiRef);
|
|
@@ -75,7 +76,8 @@ export const useGridClipboard = (apiRef, props) => {
|
|
|
75
76
|
const cellParams = apiRef.current.getCellParams(focusedCell.id, focusedCell.field);
|
|
76
77
|
textToCopy = serializeCellValue(cellParams, {
|
|
77
78
|
delimiterCharacter: clipboardCopyCellDelimiter,
|
|
78
|
-
ignoreValueFormatter
|
|
79
|
+
ignoreValueFormatter,
|
|
80
|
+
shouldAppendQuotes: false
|
|
79
81
|
});
|
|
80
82
|
}
|
|
81
83
|
}
|