@mui/x-data-grid 5.15.1 → 5.16.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 +142 -0
- package/DataGrid/DataGrid.js +4 -2
- package/DataGrid/useDataGridComponent.js +5 -0
- package/README.md +2 -1
- package/components/DataGridColumnHeaders.js +4 -3
- package/components/ErrorBoundary.d.ts +1 -0
- package/components/GridAutoSizer.js +7 -0
- package/components/GridRow.js +5 -3
- package/components/base/GridBody.js +8 -5
- package/components/base/GridOverlays.js +4 -7
- package/components/cell/GridActionsCellItem.d.ts +2 -2
- package/components/cell/GridEditDateCell.js +1 -1
- package/components/cell/GridEditSingleSelectCell.js +9 -1
- package/components/columnHeaders/GridColumnGroupHeader.d.ts +14 -0
- package/components/columnHeaders/GridColumnGroupHeader.js +122 -0
- package/components/columnHeaders/GridColumnHeaderItem.js +55 -71
- package/components/columnHeaders/GridColumnHeadersInner.js +2 -1
- package/components/columnHeaders/GridGenericColumnHeaderItem.d.ts +32 -0
- package/components/columnHeaders/GridGenericColumnHeaderItem.js +104 -0
- package/components/containers/GridOverlay.js +7 -1
- package/components/containers/GridRoot.js +3 -3
- package/components/containers/GridRootStyles.js +14 -2
- package/components/menu/GridMenu.d.ts +3 -2
- package/components/menu/GridMenu.js +1 -0
- package/components/menu/columnMenu/GridColumnHeaderMenu.d.ts +1 -1
- package/components/panel/GridPanel.d.ts +1 -1
- package/components/panel/GridPanel.js +1 -0
- package/components/panel/filterPanel/GridFilterForm.d.ts +4 -0
- package/components/panel/filterPanel/GridFilterForm.js +5 -0
- package/components/panel/filterPanel/GridFilterInputMultipleValue.d.ts +1 -1
- package/components/panel/filterPanel/GridFilterPanel.d.ts +4 -0
- package/components/panel/filterPanel/GridFilterPanel.js +5 -0
- package/components/toolbar/GridToolbarColumnsButton.d.ts +1 -1
- package/components/toolbar/GridToolbarDensitySelector.d.ts +1 -1
- package/components/toolbar/GridToolbarExportContainer.d.ts +1 -1
- package/constants/gridClasses.d.ts +16 -0
- package/constants/gridClasses.js +1 -1
- package/hooks/features/columnGrouping/gridColumnGroupsInterfaces.d.ts +7 -0
- package/hooks/features/columnGrouping/gridColumnGroupsInterfaces.js +1 -0
- package/hooks/features/columnGrouping/gridColumnGroupsSelector.d.ts +7 -0
- package/hooks/features/columnGrouping/gridColumnGroupsSelector.js +8 -0
- package/hooks/features/columnGrouping/index.d.ts +2 -0
- package/hooks/features/columnGrouping/index.js +2 -0
- package/hooks/features/columnGrouping/useGridColumnGrouping.d.ts +24 -0
- package/hooks/features/columnGrouping/useGridColumnGrouping.js +153 -0
- package/hooks/features/columnGrouping/useGridColumnGroupingPreProcessors.d.ts +4 -0
- package/hooks/features/columnGrouping/useGridColumnGroupingPreProcessors.js +35 -0
- package/hooks/features/columnHeaders/useGridColumnHeaders.d.ts +7 -6
- package/hooks/features/columnHeaders/useGridColumnHeaders.js +204 -9
- package/hooks/features/density/densitySelector.d.ts +2 -0
- package/hooks/features/density/densitySelector.js +3 -1
- package/hooks/features/density/densityState.d.ts +1 -0
- package/hooks/features/density/useGridDensity.d.ts +1 -1
- package/hooks/features/density/useGridDensity.js +45 -9
- package/hooks/features/dimensions/useGridDimensions.js +4 -4
- package/hooks/features/editRows/useGridCellEditing.new.js +15 -7
- package/hooks/features/editRows/useGridRowEditing.new.js +9 -2
- package/hooks/features/export/useGridPrintExport.js +3 -3
- package/hooks/features/filter/gridFilterSelector.d.ts +3 -3
- package/hooks/features/filter/gridFilterState.d.ts +12 -1
- package/hooks/features/filter/gridFilterUtils.d.ts +8 -5
- package/hooks/features/filter/gridFilterUtils.js +74 -43
- package/hooks/features/filter/useGridFilter.js +16 -3
- package/hooks/features/focus/useGridFocus.js +11 -6
- package/hooks/features/index.d.ts +1 -0
- package/hooks/features/index.js +1 -0
- package/hooks/features/pagination/gridPaginationSelector.d.ts +1 -1
- package/hooks/features/rows/gridRowsSelector.d.ts +1 -1
- package/hooks/features/rows/useGridRows.js +5 -2
- package/hooks/features/selection/gridSelectionSelector.d.ts +1 -1
- package/hooks/features/sorting/gridSortingSelector.d.ts +1 -1
- package/hooks/features/statePersistence/gridStatePersistenceInterface.d.ts +3 -0
- package/hooks/features/virtualization/useGridVirtualScroller.d.ts +1 -1
- package/hooks/utils/useGridNativeEventListener.d.ts +1 -1
- package/hooks/utils/useGridNativeEventListener.js +2 -2
- package/hooks/utils/useGridVisibleRows.d.ts +2 -2
- package/index.js +1 -1
- package/internals/index.d.ts +3 -0
- package/internals/index.js +3 -0
- package/legacy/DataGrid/DataGrid.js +4 -2
- package/legacy/DataGrid/useDataGridComponent.js +5 -0
- package/legacy/components/DataGridColumnHeaders.js +4 -3
- package/legacy/components/GridAutoSizer.js +7 -0
- package/legacy/components/GridRow.js +4 -3
- package/legacy/components/base/GridBody.js +8 -5
- package/legacy/components/base/GridOverlays.js +4 -7
- package/legacy/components/cell/GridEditDateCell.js +1 -1
- package/legacy/components/cell/GridEditSingleSelectCell.js +9 -1
- package/legacy/components/columnHeaders/GridColumnGroupHeader.js +120 -0
- package/legacy/components/columnHeaders/GridColumnHeaderItem.js +78 -88
- package/legacy/components/columnHeaders/GridColumnHeadersInner.js +2 -1
- package/legacy/components/columnHeaders/GridGenericColumnHeaderItem.js +112 -0
- package/legacy/components/containers/GridOverlay.js +7 -1
- package/legacy/components/containers/GridRoot.js +3 -3
- package/legacy/components/containers/GridRootStyles.js +11 -2
- package/legacy/components/menu/GridMenu.js +1 -0
- package/legacy/components/panel/GridPanel.js +1 -0
- package/legacy/components/panel/filterPanel/GridFilterForm.js +5 -0
- package/legacy/components/panel/filterPanel/GridFilterPanel.js +5 -0
- package/legacy/constants/gridClasses.js +1 -1
- package/legacy/hooks/features/columnGrouping/gridColumnGroupsInterfaces.js +1 -0
- package/legacy/hooks/features/columnGrouping/gridColumnGroupsSelector.js +12 -0
- package/legacy/hooks/features/columnGrouping/index.js +2 -0
- package/legacy/hooks/features/columnGrouping/useGridColumnGrouping.js +151 -0
- package/legacy/hooks/features/columnGrouping/useGridColumnGroupingPreProcessors.js +35 -0
- package/legacy/hooks/features/columnHeaders/useGridColumnHeaders.js +213 -12
- package/legacy/hooks/features/density/densitySelector.js +6 -0
- package/legacy/hooks/features/density/useGridDensity.js +44 -6
- package/legacy/hooks/features/dimensions/useGridDimensions.js +4 -4
- package/legacy/hooks/features/editRows/useGridCellEditing.new.js +16 -8
- package/legacy/hooks/features/editRows/useGridRowEditing.new.js +9 -2
- package/legacy/hooks/features/export/useGridPrintExport.js +3 -3
- package/legacy/hooks/features/filter/gridFilterUtils.js +84 -55
- package/legacy/hooks/features/filter/useGridFilter.js +16 -3
- package/legacy/hooks/features/focus/useGridFocus.js +11 -6
- package/legacy/hooks/features/index.js +1 -0
- package/legacy/hooks/features/rows/useGridRows.js +5 -2
- package/legacy/hooks/utils/useGridNativeEventListener.js +2 -2
- package/legacy/index.js +1 -1
- package/legacy/internals/index.js +3 -0
- package/legacy/models/api/gridColumnGroupingApi.js +1 -0
- package/legacy/models/gridColumnGrouping.js +6 -0
- package/legacy/models/index.js +2 -1
- package/models/api/gridApiCommon.d.ts +2 -1
- package/models/api/gridColumnGroupingApi.d.ts +19 -0
- package/models/api/gridColumnGroupingApi.js +1 -0
- package/models/api/gridDensityApi.d.ts +2 -1
- package/models/colDef/gridColDef.d.ts +15 -1
- package/models/gridColumnGrouping.d.ts +67 -0
- package/models/gridColumnGrouping.js +6 -0
- package/models/gridRows.d.ts +5 -5
- package/models/gridStateCommunity.d.ts +2 -1
- package/models/index.d.ts +1 -0
- package/models/index.js +2 -1
- package/models/params/gridMenuParams.d.ts +1 -2
- package/models/props/DataGridProps.d.ts +10 -4
- package/modern/DataGrid/DataGrid.js +4 -2
- package/modern/DataGrid/useDataGridComponent.js +5 -0
- package/modern/components/DataGridColumnHeaders.js +4 -3
- package/modern/components/GridAutoSizer.js +7 -0
- package/modern/components/GridRow.js +5 -3
- package/modern/components/base/GridBody.js +8 -5
- package/modern/components/base/GridOverlays.js +4 -7
- package/modern/components/cell/GridEditDateCell.js +1 -1
- package/modern/components/cell/GridEditSingleSelectCell.js +9 -1
- package/modern/components/columnHeaders/GridColumnGroupHeader.js +120 -0
- package/modern/components/columnHeaders/GridColumnHeaderItem.js +53 -69
- package/modern/components/columnHeaders/GridColumnHeadersInner.js +2 -1
- package/modern/components/columnHeaders/GridGenericColumnHeaderItem.js +104 -0
- package/modern/components/containers/GridOverlay.js +7 -1
- package/modern/components/containers/GridRoot.js +3 -3
- package/modern/components/containers/GridRootStyles.js +14 -2
- package/modern/components/menu/GridMenu.js +1 -0
- package/modern/components/panel/GridPanel.js +1 -0
- package/modern/components/panel/filterPanel/GridFilterForm.js +5 -0
- package/modern/components/panel/filterPanel/GridFilterPanel.js +5 -0
- package/modern/constants/gridClasses.js +1 -1
- package/modern/hooks/features/columnGrouping/gridColumnGroupsInterfaces.js +1 -0
- package/modern/hooks/features/columnGrouping/gridColumnGroupsSelector.js +8 -0
- package/modern/hooks/features/columnGrouping/index.js +2 -0
- package/modern/hooks/features/columnGrouping/useGridColumnGrouping.js +145 -0
- package/modern/hooks/features/columnGrouping/useGridColumnGroupingPreProcessors.js +29 -0
- package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +186 -9
- package/modern/hooks/features/density/densitySelector.js +3 -1
- package/modern/hooks/features/density/useGridDensity.js +37 -9
- package/modern/hooks/features/dimensions/useGridDimensions.js +4 -4
- package/modern/hooks/features/editRows/useGridCellEditing.new.js +15 -7
- package/modern/hooks/features/editRows/useGridRowEditing.new.js +9 -2
- package/modern/hooks/features/export/useGridPrintExport.js +3 -3
- package/modern/hooks/features/filter/gridFilterUtils.js +73 -42
- package/modern/hooks/features/filter/useGridFilter.js +16 -3
- package/modern/hooks/features/focus/useGridFocus.js +11 -6
- package/modern/hooks/features/index.js +1 -0
- package/modern/hooks/features/rows/useGridRows.js +5 -2
- package/modern/hooks/utils/useGridNativeEventListener.js +2 -2
- package/modern/index.js +1 -1
- package/modern/internals/index.js +3 -0
- package/modern/models/api/gridColumnGroupingApi.js +1 -0
- package/modern/models/gridColumnGrouping.js +6 -0
- package/modern/models/index.js +2 -1
- package/node/DataGrid/DataGrid.js +4 -2
- package/node/DataGrid/useDataGridComponent.js +7 -0
- package/node/components/DataGridColumnHeaders.js +4 -3
- package/node/components/GridAutoSizer.js +7 -0
- package/node/components/GridRow.js +6 -3
- package/node/components/base/GridBody.js +7 -4
- package/node/components/base/GridOverlays.js +3 -6
- package/node/components/cell/GridEditDateCell.js +1 -1
- package/node/components/cell/GridEditSingleSelectCell.js +9 -1
- package/node/components/columnHeaders/GridColumnGroupHeader.js +141 -0
- package/node/components/columnHeaders/GridColumnHeaderItem.js +53 -72
- package/node/components/columnHeaders/GridColumnHeadersInner.js +2 -1
- package/node/components/columnHeaders/GridGenericColumnHeaderItem.js +126 -0
- package/node/components/containers/GridOverlay.js +7 -1
- package/node/components/containers/GridRoot.js +4 -4
- package/node/components/containers/GridRootStyles.js +14 -2
- package/node/components/menu/GridMenu.js +1 -0
- package/node/components/panel/GridPanel.js +1 -0
- package/node/components/panel/filterPanel/GridFilterForm.js +5 -0
- package/node/components/panel/filterPanel/GridFilterPanel.js +5 -0
- package/node/constants/gridClasses.js +1 -1
- package/node/hooks/features/columnGrouping/gridColumnGroupsInterfaces.js +5 -0
- package/node/hooks/features/columnGrouping/gridColumnGroupsSelector.js +18 -0
- package/node/hooks/features/columnGrouping/index.js +18 -0
- package/node/hooks/features/columnGrouping/useGridColumnGrouping.js +182 -0
- package/node/hooks/features/columnGrouping/useGridColumnGroupingPreProcessors.js +55 -0
- package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +207 -8
- package/node/hooks/features/density/densitySelector.js +6 -2
- package/node/hooks/features/density/useGridDensity.js +48 -9
- package/node/hooks/features/dimensions/useGridDimensions.js +3 -3
- package/node/hooks/features/editRows/useGridCellEditing.new.js +15 -7
- package/node/hooks/features/editRows/useGridRowEditing.new.js +9 -2
- package/node/hooks/features/export/useGridPrintExport.js +2 -2
- package/node/hooks/features/filter/gridFilterUtils.js +81 -47
- package/node/hooks/features/filter/useGridFilter.js +15 -2
- package/node/hooks/features/focus/useGridFocus.js +11 -6
- package/node/hooks/features/index.js +13 -0
- package/node/hooks/features/rows/useGridRows.js +5 -2
- package/node/hooks/utils/useGridNativeEventListener.js +2 -2
- package/node/index.js +1 -1
- package/node/internals/index.js +30 -0
- package/node/models/api/gridColumnGroupingApi.js +5 -0
- package/node/models/gridColumnGrouping.js +13 -0
- package/node/models/index.js +13 -0
- package/package.json +3 -3
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.GridColumnGroupHeader = GridColumnGroupHeader;
|
|
9
|
+
|
|
10
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
|
+
|
|
12
|
+
var React = _interopRequireWildcard(require("react"));
|
|
13
|
+
|
|
14
|
+
var _utils = require("@mui/utils");
|
|
15
|
+
|
|
16
|
+
var _material = require("@mui/material");
|
|
17
|
+
|
|
18
|
+
var _gridClasses = require("../../constants/gridClasses");
|
|
19
|
+
|
|
20
|
+
var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
|
|
21
|
+
|
|
22
|
+
var _gridColumnGroupsSelector = require("../../hooks/features/columnGrouping/gridColumnGroupsSelector");
|
|
23
|
+
|
|
24
|
+
var _useGridApiContext = require("../../hooks/utils/useGridApiContext");
|
|
25
|
+
|
|
26
|
+
var _useGridSelector = require("../../hooks/utils/useGridSelector");
|
|
27
|
+
|
|
28
|
+
var _GridGenericColumnHeaderItem = require("./GridGenericColumnHeaderItem");
|
|
29
|
+
|
|
30
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
31
|
+
|
|
32
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
33
|
+
|
|
34
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
35
|
+
|
|
36
|
+
const useUtilityClasses = ownerState => {
|
|
37
|
+
const {
|
|
38
|
+
classes,
|
|
39
|
+
headerAlign,
|
|
40
|
+
isDragging,
|
|
41
|
+
showRightBorder,
|
|
42
|
+
showColumnBorder,
|
|
43
|
+
groupId
|
|
44
|
+
} = ownerState;
|
|
45
|
+
const slots = {
|
|
46
|
+
root: ['columnHeader', headerAlign === 'left' && 'columnHeader--alignLeft', headerAlign === 'center' && 'columnHeader--alignCenter', headerAlign === 'right' && 'columnHeader--alignRight', isDragging && 'columnHeader--moving', showRightBorder && 'withBorder', showColumnBorder && 'columnHeader--showColumnBorder', groupId === null ? 'columnHeader--emptyGroup' : 'columnHeader--filledGroup'],
|
|
47
|
+
draggableContainer: ['columnHeaderDraggableContainer'],
|
|
48
|
+
titleContainer: ['columnHeaderTitleContainer'],
|
|
49
|
+
titleContainerContent: ['columnHeaderTitleContainerContent']
|
|
50
|
+
};
|
|
51
|
+
return (0, _material.unstable_composeClasses)(slots, _gridClasses.getDataGridUtilityClass, classes);
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
function GridColumnGroupHeader(props) {
|
|
55
|
+
var _apiRef$current$getRo, _columnGroupsLookup$g;
|
|
56
|
+
|
|
57
|
+
const {
|
|
58
|
+
groupId,
|
|
59
|
+
width,
|
|
60
|
+
depth,
|
|
61
|
+
maxDepth,
|
|
62
|
+
fields,
|
|
63
|
+
height,
|
|
64
|
+
colIndex,
|
|
65
|
+
isLastColumn,
|
|
66
|
+
extendRowFullWidth
|
|
67
|
+
} = props;
|
|
68
|
+
const rootProps = (0, _useGridRootProps.useGridRootProps)();
|
|
69
|
+
const apiRef = (0, _useGridApiContext.useGridApiContext)();
|
|
70
|
+
const columnGroupsLookup = (0, _useGridSelector.useGridSelector)(apiRef, _gridColumnGroupsSelector.gridColumnGroupsLookupSelector);
|
|
71
|
+
const {
|
|
72
|
+
hasScrollX,
|
|
73
|
+
hasScrollY
|
|
74
|
+
} = (_apiRef$current$getRo = apiRef.current.getRootDimensions()) != null ? _apiRef$current$getRo : {
|
|
75
|
+
hasScrollX: false,
|
|
76
|
+
hasScrollY: false
|
|
77
|
+
};
|
|
78
|
+
const group = groupId ? columnGroupsLookup[groupId] : {};
|
|
79
|
+
const {
|
|
80
|
+
headerName = groupId != null ? groupId : '',
|
|
81
|
+
description = '',
|
|
82
|
+
headerAlign = undefined
|
|
83
|
+
} = group;
|
|
84
|
+
let headerComponent;
|
|
85
|
+
const render = groupId && ((_columnGroupsLookup$g = columnGroupsLookup[groupId]) == null ? void 0 : _columnGroupsLookup$g.renderHeaderGroup);
|
|
86
|
+
const renderParams = {
|
|
87
|
+
groupId,
|
|
88
|
+
headerName,
|
|
89
|
+
description,
|
|
90
|
+
depth,
|
|
91
|
+
maxDepth,
|
|
92
|
+
fields,
|
|
93
|
+
colIndex,
|
|
94
|
+
isLastColumn
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
if (groupId && render) {
|
|
98
|
+
headerComponent = render(renderParams);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
const removeLastBorderRight = isLastColumn && hasScrollX && !hasScrollY;
|
|
102
|
+
const showRightBorder = !isLastColumn ? rootProps.showColumnRightBorder : !removeLastBorderRight && !extendRowFullWidth;
|
|
103
|
+
const showColumnBorder = rootProps.showColumnRightBorder;
|
|
104
|
+
const ownerState = (0, _extends2.default)({}, props, {
|
|
105
|
+
classes: rootProps.classes,
|
|
106
|
+
showRightBorder,
|
|
107
|
+
showColumnBorder,
|
|
108
|
+
headerAlign,
|
|
109
|
+
depth,
|
|
110
|
+
isDragging: false
|
|
111
|
+
});
|
|
112
|
+
const label = headerName != null ? headerName : groupId;
|
|
113
|
+
const id = (0, _utils.unstable_useId)();
|
|
114
|
+
const elementId = groupId === null ? `empty-group-cell-${id}` : groupId;
|
|
115
|
+
const classes = useUtilityClasses(ownerState);
|
|
116
|
+
const headerClassName = typeof group.headerClassName === 'function' ? group.headerClassName(renderParams) : group.headerClassName;
|
|
117
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridGenericColumnHeaderItem.GridGenericColumnHeaderItem, {
|
|
118
|
+
classes: classes,
|
|
119
|
+
columnMenuOpen: false,
|
|
120
|
+
colIndex: colIndex,
|
|
121
|
+
height: height,
|
|
122
|
+
isResizing: false,
|
|
123
|
+
sortDirection: null,
|
|
124
|
+
hasFocus: false,
|
|
125
|
+
tabIndex: -1,
|
|
126
|
+
isDraggable: false,
|
|
127
|
+
headerComponent: headerComponent,
|
|
128
|
+
headerClassName: headerClassName,
|
|
129
|
+
description: description,
|
|
130
|
+
elementId: elementId,
|
|
131
|
+
width: width,
|
|
132
|
+
columnMenuIconButton: null,
|
|
133
|
+
columnTitleIconButtons: null,
|
|
134
|
+
resizable: false,
|
|
135
|
+
label: label,
|
|
136
|
+
"aria-colspan": fields.length // The fields are wrapped between |-...-| to avoid confusion between fields "id" and "id2" when using selector data-fields~=
|
|
137
|
+
,
|
|
138
|
+
"data-fields": `|-${fields.join('-|-')}-|`,
|
|
139
|
+
disableHeaderSeparator: true
|
|
140
|
+
});
|
|
141
|
+
}
|
|
@@ -13,8 +13,6 @@ var React = _interopRequireWildcard(require("react"));
|
|
|
13
13
|
|
|
14
14
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
15
15
|
|
|
16
|
-
var _clsx = _interopRequireDefault(require("clsx"));
|
|
17
|
-
|
|
18
16
|
var _material = require("@mui/material");
|
|
19
17
|
|
|
20
18
|
var _utils = require("@mui/material/utils");
|
|
@@ -23,10 +21,6 @@ var _useGridApiContext = require("../../hooks/utils/useGridApiContext");
|
|
|
23
21
|
|
|
24
22
|
var _GridColumnHeaderSortIcon = require("./GridColumnHeaderSortIcon");
|
|
25
23
|
|
|
26
|
-
var _GridColumnHeaderTitle = require("./GridColumnHeaderTitle");
|
|
27
|
-
|
|
28
|
-
var _GridColumnHeaderSeparator = require("./GridColumnHeaderSeparator");
|
|
29
|
-
|
|
30
24
|
var _ColumnHeaderMenuIcon = require("./ColumnHeaderMenuIcon");
|
|
31
25
|
|
|
32
26
|
var _GridColumnHeaderMenu = require("../menu/columnMenu/GridColumnHeaderMenu");
|
|
@@ -35,6 +29,8 @@ var _gridClasses = require("../../constants/gridClasses");
|
|
|
35
29
|
|
|
36
30
|
var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
|
|
37
31
|
|
|
32
|
+
var _GridGenericColumnHeaderItem = require("./GridGenericColumnHeaderItem");
|
|
33
|
+
|
|
38
34
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
39
35
|
|
|
40
36
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
@@ -64,7 +60,7 @@ const useUtilityClasses = ownerState => {
|
|
|
64
60
|
};
|
|
65
61
|
|
|
66
62
|
function GridColumnHeaderItem(props) {
|
|
67
|
-
var _apiRef$current$getRo, _column$sortingOrder, _rootProps$
|
|
63
|
+
var _apiRef$current$getRo, _rootProps$components, _column$sortingOrder, _rootProps$components2, _column$headerName;
|
|
68
64
|
|
|
69
65
|
const {
|
|
70
66
|
column,
|
|
@@ -97,12 +93,19 @@ function GridColumnHeaderItem(props) {
|
|
|
97
93
|
hasScrollY: false
|
|
98
94
|
};
|
|
99
95
|
const isDraggable = React.useMemo(() => !rootProps.disableColumnReorder && !disableReorder && !column.disableReorder, [rootProps.disableColumnReorder, disableReorder, column.disableReorder]);
|
|
100
|
-
let headerComponent
|
|
96
|
+
let headerComponent;
|
|
101
97
|
|
|
102
98
|
if (column.renderHeader) {
|
|
103
99
|
headerComponent = column.renderHeader(apiRef.current.getColumnHeaderParams(column.field));
|
|
104
100
|
}
|
|
105
101
|
|
|
102
|
+
const removeLastBorderRight = isLastColumn && hasScrollX && !hasScrollY;
|
|
103
|
+
const showRightBorder = !isLastColumn ? rootProps.showColumnRightBorder : !removeLastBorderRight && !extendRowFullWidth;
|
|
104
|
+
const ownerState = (0, _extends2.default)({}, props, {
|
|
105
|
+
classes: rootProps.classes,
|
|
106
|
+
showRightBorder
|
|
107
|
+
});
|
|
108
|
+
const classes = useUtilityClasses(ownerState);
|
|
106
109
|
const publish = React.useCallback(eventName => event => {
|
|
107
110
|
// Ignore portal
|
|
108
111
|
// See https://github.com/mui/mui-x/issues/1721
|
|
@@ -112,7 +115,7 @@ function GridColumnHeaderItem(props) {
|
|
|
112
115
|
|
|
113
116
|
apiRef.current.publishEvent(eventName, apiRef.current.getColumnHeaderParams(column.field), event);
|
|
114
117
|
}, [apiRef, column.field]);
|
|
115
|
-
const mouseEventsHandlers = {
|
|
118
|
+
const mouseEventsHandlers = React.useMemo(() => ({
|
|
116
119
|
onClick: publish('columnHeaderClick'),
|
|
117
120
|
onDoubleClick: publish('columnHeaderDoubleClick'),
|
|
118
121
|
onMouseOver: publish('columnHeaderOver'),
|
|
@@ -126,27 +129,16 @@ function GridColumnHeaderItem(props) {
|
|
|
126
129
|
onKeyDown: publish('columnHeaderKeyDown'),
|
|
127
130
|
onFocus: publish('columnHeaderFocus'),
|
|
128
131
|
onBlur: publish('columnHeaderBlur')
|
|
129
|
-
};
|
|
130
|
-
const draggableEventHandlers = isDraggable ? {
|
|
132
|
+
}), [publish]);
|
|
133
|
+
const draggableEventHandlers = React.useMemo(() => isDraggable ? {
|
|
131
134
|
onDragStart: publish('columnHeaderDragStart'),
|
|
132
135
|
onDragEnter: publish('columnHeaderDragEnter'),
|
|
133
136
|
onDragOver: publish('columnHeaderDragOver'),
|
|
134
137
|
onDragEnd: publish('columnHeaderDragEnd')
|
|
135
|
-
} :
|
|
136
|
-
const
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
classes: rootProps.classes,
|
|
140
|
-
showRightBorder
|
|
141
|
-
});
|
|
142
|
-
const classes = useUtilityClasses(ownerState);
|
|
143
|
-
const width = column.computedWidth;
|
|
144
|
-
let ariaSort = 'none';
|
|
145
|
-
|
|
146
|
-
if (sortDirection != null) {
|
|
147
|
-
ariaSort = sortDirection === 'asc' ? 'ascending' : 'descending';
|
|
148
|
-
}
|
|
149
|
-
|
|
138
|
+
} : {}, [isDraggable, publish]);
|
|
139
|
+
const columnHeaderSeparatorProps = React.useMemo(() => ({
|
|
140
|
+
onMouseDown: publish('columnSeparatorMouseDown')
|
|
141
|
+
}), [publish]);
|
|
150
142
|
React.useEffect(() => {
|
|
151
143
|
if (!showColumnMenuIcon) {
|
|
152
144
|
setShowColumnMenuIcon(columnMenuOpen);
|
|
@@ -162,12 +154,22 @@ function GridColumnHeaderItem(props) {
|
|
|
162
154
|
open: showColumnMenuIcon,
|
|
163
155
|
iconButtonRef: iconButtonRef
|
|
164
156
|
});
|
|
157
|
+
const columnMenu = /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridColumnHeaderMenu.GridColumnHeaderMenu, {
|
|
158
|
+
columnMenuId: columnMenuId,
|
|
159
|
+
columnMenuButtonId: columnMenuButtonId,
|
|
160
|
+
field: column.field,
|
|
161
|
+
open: columnMenuOpen,
|
|
162
|
+
target: iconButtonRef.current,
|
|
163
|
+
ContentComponent: rootProps.components.ColumnMenu,
|
|
164
|
+
contentComponentProps: (_rootProps$components = rootProps.componentsProps) == null ? void 0 : _rootProps$components.columnMenu,
|
|
165
|
+
onExited: handleExited
|
|
166
|
+
});
|
|
165
167
|
const sortingOrder = (_column$sortingOrder = column.sortingOrder) != null ? _column$sortingOrder : rootProps.sortingOrder;
|
|
166
168
|
const columnTitleIconButtons = /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {
|
|
167
169
|
children: [!rootProps.disableColumnFilter && /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.components.ColumnHeaderFilterIconButton, (0, _extends2.default)({
|
|
168
170
|
field: column.field,
|
|
169
171
|
counter: filterItemsCounter
|
|
170
|
-
}, (_rootProps$
|
|
172
|
+
}, (_rootProps$components2 = rootProps.componentsProps) == null ? void 0 : _rootProps$components2.columnHeaderFilterIconButton)), column.sortable && !column.hideSortIcons && /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridColumnHeaderSortIcon.GridColumnHeaderSortIcon, {
|
|
171
173
|
direction: sortDirection,
|
|
172
174
|
index: sortIndex,
|
|
173
175
|
sortingOrder: sortingOrder
|
|
@@ -188,53 +190,32 @@ function GridColumnHeaderItem(props) {
|
|
|
188
190
|
colDef: column
|
|
189
191
|
}) : column.headerClassName;
|
|
190
192
|
const label = (_column$headerName = column.headerName) != null ? _column$headerName : column.field;
|
|
191
|
-
return /*#__PURE__*/(0, _jsxRuntime.
|
|
193
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridGenericColumnHeaderItem.GridGenericColumnHeaderItem, (0, _extends2.default)({
|
|
192
194
|
ref: headerCellRef,
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
role: "columnheader",
|
|
195
|
+
classes: classes,
|
|
196
|
+
columnMenuOpen: columnMenuOpen,
|
|
197
|
+
colIndex: colIndex,
|
|
198
|
+
height: headerHeight,
|
|
199
|
+
isResizing: isResizing,
|
|
200
|
+
sortDirection: sortDirection,
|
|
201
|
+
hasFocus: hasFocus,
|
|
201
202
|
tabIndex: tabIndex,
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
})
|
|
219
|
-
}), columnTitleIconButtons]
|
|
220
|
-
}), columnMenuIconButton]
|
|
221
|
-
})), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridColumnHeaderSeparator.GridColumnHeaderSeparator, {
|
|
222
|
-
resizable: !rootProps.disableColumnResize && !!column.resizable,
|
|
223
|
-
resizing: isResizing,
|
|
224
|
-
height: headerHeight,
|
|
225
|
-
onMouseDown: publish('columnSeparatorMouseDown'),
|
|
226
|
-
side: separatorSide
|
|
227
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridColumnHeaderMenu.GridColumnHeaderMenu, {
|
|
228
|
-
columnMenuId: columnMenuId,
|
|
229
|
-
columnMenuButtonId: columnMenuButtonId,
|
|
230
|
-
field: column.field,
|
|
231
|
-
open: columnMenuOpen,
|
|
232
|
-
target: iconButtonRef.current,
|
|
233
|
-
ContentComponent: rootProps.components.ColumnMenu,
|
|
234
|
-
contentComponentProps: (_rootProps$components2 = rootProps.componentsProps) == null ? void 0 : _rootProps$components2.columnMenu,
|
|
235
|
-
onExited: handleExited
|
|
236
|
-
})]
|
|
237
|
-
}));
|
|
203
|
+
separatorSide: separatorSide,
|
|
204
|
+
isDraggable: isDraggable,
|
|
205
|
+
headerComponent: headerComponent,
|
|
206
|
+
description: column.description,
|
|
207
|
+
elementId: column.field,
|
|
208
|
+
width: column.computedWidth,
|
|
209
|
+
columnMenuIconButton: columnMenuIconButton,
|
|
210
|
+
columnTitleIconButtons: columnTitleIconButtons,
|
|
211
|
+
headerClassName: headerClassName,
|
|
212
|
+
label: label,
|
|
213
|
+
resizable: !rootProps.disableColumnResize && !!column.resizable,
|
|
214
|
+
"data-field": column.field,
|
|
215
|
+
columnMenu: columnMenu,
|
|
216
|
+
draggableContainerProps: draggableEventHandlers,
|
|
217
|
+
columnHeaderSeparatorProps: columnHeaderSeparatorProps
|
|
218
|
+
}, mouseEventsHandlers));
|
|
238
219
|
}
|
|
239
220
|
|
|
240
221
|
process.env.NODE_ENV !== "production" ? GridColumnHeaderItem.propTypes = {
|
|
@@ -53,7 +53,8 @@ const GridColumnHeadersInnerRoot = (0, _styles.styled)('div', {
|
|
|
53
53
|
}, styles.columnHeadersInner]
|
|
54
54
|
})(() => ({
|
|
55
55
|
display: 'flex',
|
|
56
|
-
alignItems: '
|
|
56
|
+
alignItems: 'flex-start',
|
|
57
|
+
flexDirection: 'column',
|
|
57
58
|
[`&.${_gridClasses.gridClasses.columnHeaderDropZone} .${_gridClasses.gridClasses.columnHeaderDraggableContainer}`]: {
|
|
58
59
|
cursor: 'move'
|
|
59
60
|
},
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.GridGenericColumnHeaderItem = void 0;
|
|
9
|
+
|
|
10
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
|
+
|
|
12
|
+
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
13
|
+
|
|
14
|
+
var React = _interopRequireWildcard(require("react"));
|
|
15
|
+
|
|
16
|
+
var _clsx = _interopRequireDefault(require("clsx"));
|
|
17
|
+
|
|
18
|
+
var _utils = require("@mui/material/utils");
|
|
19
|
+
|
|
20
|
+
var _useGridApiContext = require("../../hooks/utils/useGridApiContext");
|
|
21
|
+
|
|
22
|
+
var _GridColumnHeaderTitle = require("./GridColumnHeaderTitle");
|
|
23
|
+
|
|
24
|
+
var _GridColumnHeaderSeparator = require("./GridColumnHeaderSeparator");
|
|
25
|
+
|
|
26
|
+
var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
|
|
27
|
+
|
|
28
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
29
|
+
|
|
30
|
+
const _excluded = ["classes", "columnMenuOpen", "colIndex", "height", "isResizing", "sortDirection", "hasFocus", "tabIndex", "separatorSide", "isDraggable", "headerComponent", "description", "elementId", "width", "columnMenuIconButton", "columnMenu", "columnTitleIconButtons", "headerClassName", "label", "resizable", "draggableContainerProps", "columnHeaderSeparatorProps", "disableHeaderSeparator"];
|
|
31
|
+
|
|
32
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
33
|
+
|
|
34
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
35
|
+
|
|
36
|
+
const GridGenericColumnHeaderItem = /*#__PURE__*/React.forwardRef(function GridGenericColumnHeaderItem(props, ref) {
|
|
37
|
+
const {
|
|
38
|
+
classes,
|
|
39
|
+
columnMenuOpen,
|
|
40
|
+
colIndex,
|
|
41
|
+
height,
|
|
42
|
+
isResizing,
|
|
43
|
+
sortDirection,
|
|
44
|
+
hasFocus,
|
|
45
|
+
tabIndex,
|
|
46
|
+
separatorSide,
|
|
47
|
+
isDraggable,
|
|
48
|
+
headerComponent,
|
|
49
|
+
description,
|
|
50
|
+
width,
|
|
51
|
+
columnMenuIconButton = null,
|
|
52
|
+
columnMenu = null,
|
|
53
|
+
columnTitleIconButtons = null,
|
|
54
|
+
headerClassName,
|
|
55
|
+
label,
|
|
56
|
+
resizable,
|
|
57
|
+
draggableContainerProps,
|
|
58
|
+
columnHeaderSeparatorProps,
|
|
59
|
+
disableHeaderSeparator
|
|
60
|
+
} = props,
|
|
61
|
+
other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
|
62
|
+
const apiRef = (0, _useGridApiContext.useGridApiContext)();
|
|
63
|
+
const rootProps = (0, _useGridRootProps.useGridRootProps)();
|
|
64
|
+
const headerCellRef = React.useRef(null);
|
|
65
|
+
const [showColumnMenuIcon, setShowColumnMenuIcon] = React.useState(columnMenuOpen);
|
|
66
|
+
const handleRef = (0, _utils.useForkRef)(headerCellRef, ref);
|
|
67
|
+
let ariaSort = 'none';
|
|
68
|
+
|
|
69
|
+
if (sortDirection != null) {
|
|
70
|
+
ariaSort = sortDirection === 'asc' ? 'ascending' : 'descending';
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
React.useEffect(() => {
|
|
74
|
+
if (!showColumnMenuIcon) {
|
|
75
|
+
setShowColumnMenuIcon(columnMenuOpen);
|
|
76
|
+
}
|
|
77
|
+
}, [showColumnMenuIcon, columnMenuOpen]);
|
|
78
|
+
React.useLayoutEffect(() => {
|
|
79
|
+
const columnMenuState = apiRef.current.state.columnMenu;
|
|
80
|
+
|
|
81
|
+
if (hasFocus && !columnMenuState.open) {
|
|
82
|
+
const focusableElement = headerCellRef.current.querySelector('[tabindex="0"]');
|
|
83
|
+
const elementToFocus = focusableElement || headerCellRef.current;
|
|
84
|
+
elementToFocus == null ? void 0 : elementToFocus.focus();
|
|
85
|
+
apiRef.current.columnHeadersContainerElementRef.current.scrollLeft = 0;
|
|
86
|
+
}
|
|
87
|
+
}, [apiRef, hasFocus]);
|
|
88
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", (0, _extends2.default)({
|
|
89
|
+
ref: handleRef,
|
|
90
|
+
className: (0, _clsx.default)(classes.root, headerClassName),
|
|
91
|
+
style: {
|
|
92
|
+
height,
|
|
93
|
+
width,
|
|
94
|
+
minWidth: width,
|
|
95
|
+
maxWidth: width
|
|
96
|
+
},
|
|
97
|
+
role: "columnheader",
|
|
98
|
+
tabIndex: tabIndex,
|
|
99
|
+
"aria-colindex": colIndex + 1,
|
|
100
|
+
"aria-sort": ariaSort,
|
|
101
|
+
"aria-label": headerComponent == null ? label : undefined
|
|
102
|
+
}, other, {
|
|
103
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("div", (0, _extends2.default)({
|
|
104
|
+
className: classes.draggableContainer,
|
|
105
|
+
draggable: isDraggable
|
|
106
|
+
}, draggableContainerProps, {
|
|
107
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
108
|
+
className: classes.titleContainer,
|
|
109
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
110
|
+
className: classes.titleContainerContent,
|
|
111
|
+
children: headerComponent !== undefined ? headerComponent : /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridColumnHeaderTitle.GridColumnHeaderTitle, {
|
|
112
|
+
label: label,
|
|
113
|
+
description: description,
|
|
114
|
+
columnWidth: width
|
|
115
|
+
})
|
|
116
|
+
}), columnTitleIconButtons]
|
|
117
|
+
}), columnMenuIconButton]
|
|
118
|
+
})), !disableHeaderSeparator && /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridColumnHeaderSeparator.GridColumnHeaderSeparator, (0, _extends2.default)({
|
|
119
|
+
resizable: !rootProps.disableColumnResize && !!resizable,
|
|
120
|
+
resizing: isResizing,
|
|
121
|
+
height: height,
|
|
122
|
+
side: separatorSide
|
|
123
|
+
}, columnHeaderSeparatorProps)), columnMenu]
|
|
124
|
+
}));
|
|
125
|
+
});
|
|
126
|
+
exports.GridGenericColumnHeaderItem = GridGenericColumnHeaderItem;
|
|
@@ -50,8 +50,14 @@ const GridOverlayRoot = (0, _styles.styled)('div', {
|
|
|
50
50
|
})(({
|
|
51
51
|
theme
|
|
52
52
|
}) => ({
|
|
53
|
-
|
|
53
|
+
position: 'absolute',
|
|
54
|
+
top: 0,
|
|
55
|
+
zIndex: 4,
|
|
56
|
+
// should be above pinned columns, pinned rows and detail panel
|
|
57
|
+
width: '100%',
|
|
54
58
|
height: '100%',
|
|
59
|
+
pointerEvents: 'none',
|
|
60
|
+
display: 'flex',
|
|
55
61
|
alignSelf: 'center',
|
|
56
62
|
alignItems: 'center',
|
|
57
63
|
justifyContent: 'center',
|
|
@@ -33,10 +33,10 @@ var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
|
|
|
33
33
|
|
|
34
34
|
var _gridClasses = require("../../constants/gridClasses");
|
|
35
35
|
|
|
36
|
-
var _gridRowsSelector = require("../../hooks/features/rows/gridRowsSelector");
|
|
37
|
-
|
|
38
36
|
var _densitySelector = require("../../hooks/features/density/densitySelector");
|
|
39
37
|
|
|
38
|
+
var _gridRowsSelector = require("../../hooks/features/rows/gridRowsSelector");
|
|
39
|
+
|
|
40
40
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
41
41
|
|
|
42
42
|
const _excluded = ["children", "className"];
|
|
@@ -68,6 +68,7 @@ const GridRoot = /*#__PURE__*/React.forwardRef(function GridRoot(props, ref) {
|
|
|
68
68
|
const visibleColumns = (0, _useGridSelector.useGridSelector)(apiRef, _gridColumnsSelector.gridVisibleColumnDefinitionsSelector);
|
|
69
69
|
const totalRowCount = (0, _useGridSelector.useGridSelector)(apiRef, _gridRowsSelector.gridRowCountSelector);
|
|
70
70
|
const densityValue = (0, _useGridSelector.useGridSelector)(apiRef, _densitySelector.gridDensityValueSelector);
|
|
71
|
+
const headerGroupingMaxDepth = (0, _useGridSelector.useGridSelector)(apiRef, _densitySelector.gridDensityHeaderGroupingMaxDepthSelector);
|
|
71
72
|
const rootContainerRef = React.useRef(null);
|
|
72
73
|
const handleRef = (0, _utils.useForkRef)(rootContainerRef, ref);
|
|
73
74
|
const pinnedRowsCount = (0, _useGridSelector.useGridSelector)(apiRef, _gridRowsSelector.gridPinnedRowsCountSelector);
|
|
@@ -98,8 +99,7 @@ const GridRoot = /*#__PURE__*/React.forwardRef(function GridRoot(props, ref) {
|
|
|
98
99
|
className: (0, _clsx.default)(className, classes.root),
|
|
99
100
|
role: "grid",
|
|
100
101
|
"aria-colcount": visibleColumns.length,
|
|
101
|
-
"aria-rowcount":
|
|
102
|
-
,
|
|
102
|
+
"aria-rowcount": headerGroupingMaxDepth + 1 + pinnedRowsCount + totalRowCount,
|
|
103
103
|
"aria-multiselectable": !rootProps.disableMultipleSelection,
|
|
104
104
|
"aria-label": rootProps['aria-label'],
|
|
105
105
|
"aria-labelledby": rootProps['aria-labelledby']
|
|
@@ -186,13 +186,24 @@ const GridRootStyles = (0, _styles.styled)('div', {
|
|
|
186
186
|
minWidth: 0,
|
|
187
187
|
flex: 1,
|
|
188
188
|
whiteSpace: 'nowrap',
|
|
189
|
-
|
|
189
|
+
overflow: 'hidden'
|
|
190
190
|
},
|
|
191
191
|
[`& .${_gridClasses.gridClasses.columnHeaderTitleContainerContent}`]: {
|
|
192
192
|
overflow: 'hidden',
|
|
193
193
|
display: 'flex',
|
|
194
194
|
alignItems: 'center'
|
|
195
195
|
},
|
|
196
|
+
[`& .${_gridClasses.gridClasses['columnHeader--filledGroup']} .${_gridClasses.gridClasses.columnHeaderTitleContainer}`]: {
|
|
197
|
+
borderBottom: `solid ${borderColor} 1px`,
|
|
198
|
+
boxSizing: 'border-box'
|
|
199
|
+
},
|
|
200
|
+
[`& .${_gridClasses.gridClasses['columnHeader--filledGroup']}.${_gridClasses.gridClasses['columnHeader--showColumnBorder']} .${_gridClasses.gridClasses.columnHeaderTitleContainer}`]: {
|
|
201
|
+
borderBottom: `none`
|
|
202
|
+
},
|
|
203
|
+
[`& .${_gridClasses.gridClasses['columnHeader--filledGroup']}.${_gridClasses.gridClasses['columnHeader--showColumnBorder']}`]: {
|
|
204
|
+
borderBottom: `solid ${borderColor} 1px`,
|
|
205
|
+
boxSizing: 'border-box'
|
|
206
|
+
},
|
|
196
207
|
[`& .${_gridClasses.gridClasses.sortIcon}, & .${_gridClasses.gridClasses.filterIcon}`]: {
|
|
197
208
|
fontSize: 'inherit'
|
|
198
209
|
},
|
|
@@ -372,7 +383,8 @@ const GridRootStyles = (0, _styles.styled)('div', {
|
|
|
372
383
|
},
|
|
373
384
|
[`& .${_gridClasses.gridClasses.columnHeaderDraggableContainer}`]: {
|
|
374
385
|
display: 'flex',
|
|
375
|
-
width: '100%'
|
|
386
|
+
width: '100%',
|
|
387
|
+
height: '100%'
|
|
376
388
|
},
|
|
377
389
|
[`& .${_gridClasses.gridClasses.rowReorderCellPlaceholder}`]: {
|
|
378
390
|
display: 'none'
|
|
@@ -150,6 +150,7 @@ process.env.NODE_ENV !== "production" ? GridMenu.propTypes = {
|
|
|
150
150
|
// | These PropTypes are generated from the TypeScript type definitions |
|
|
151
151
|
// | To update them edit the TypeScript types and run "yarn proptypes" |
|
|
152
152
|
// ----------------------------------------------------------------------
|
|
153
|
+
children: _propTypes.default.node,
|
|
153
154
|
onClickAway: _propTypes.default.func.isRequired,
|
|
154
155
|
onExited: _propTypes.default.func,
|
|
155
156
|
|
|
@@ -126,6 +126,7 @@ process.env.NODE_ENV !== "production" ? GridPanel.propTypes = {
|
|
|
126
126
|
// | These PropTypes are generated from the TypeScript type definitions |
|
|
127
127
|
// | To update them edit the TypeScript types and run "yarn proptypes" |
|
|
128
128
|
// ----------------------------------------------------------------------
|
|
129
|
+
children: _propTypes.default.node,
|
|
129
130
|
|
|
130
131
|
/**
|
|
131
132
|
* Override or extend the styles applied to the component.
|
|
@@ -380,6 +380,11 @@ process.env.NODE_ENV !== "production" ? GridFilterForm.propTypes = {
|
|
|
380
380
|
*/
|
|
381
381
|
applyMultiFilterOperatorChanges: _propTypes.default.func.isRequired,
|
|
382
382
|
|
|
383
|
+
/**
|
|
384
|
+
* @ignore - do not document.
|
|
385
|
+
*/
|
|
386
|
+
children: _propTypes.default.node,
|
|
387
|
+
|
|
383
388
|
/**
|
|
384
389
|
* Props passed to the column input component.
|
|
385
390
|
* @default {}
|
|
@@ -154,6 +154,11 @@ process.env.NODE_ENV !== "production" ? GridFilterPanel.propTypes = {
|
|
|
154
154
|
// | To update them edit the TypeScript types and run "yarn proptypes" |
|
|
155
155
|
// ----------------------------------------------------------------------
|
|
156
156
|
|
|
157
|
+
/**
|
|
158
|
+
* @ignore - do not document.
|
|
159
|
+
*/
|
|
160
|
+
children: _propTypes.default.node,
|
|
161
|
+
|
|
157
162
|
/**
|
|
158
163
|
* Changes how the options in the columns selector should be ordered.
|
|
159
164
|
* If not specified, the order is derived from the `columns` prop.
|
|
@@ -12,5 +12,5 @@ function getDataGridUtilityClass(slot) {
|
|
|
12
12
|
return (0, _material.generateUtilityClass)('MuiDataGrid', slot);
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
const gridClasses = (0, _material.generateUtilityClasses)('MuiDataGrid', ['actionsCell', 'aggregationColumnHeader', 'aggregationColumnHeader--alignLeft', 'aggregationColumnHeader--alignCenter', 'aggregationColumnHeader--alignRight', 'autoHeight', 'booleanCell', 'cell--editable', 'cell--editing', 'cell--textCenter', 'cell--textLeft', 'cell--textRight', 'cell--withRenderer', 'cell', 'cellContent', 'cellCheckbox', 'checkboxInput', 'columnHeader--alignCenter', 'columnHeader--alignLeft', 'columnHeader--alignRight', 'columnHeader--dragging', 'columnHeader--moving', 'columnHeader--numeric', 'columnHeader--sortable', 'columnHeader--sorted', 'columnHeader--filtered', 'columnHeader', 'columnHeaderCheckbox', 'columnHeaderDraggableContainer', 'columnHeaderDropZone', 'columnHeaderTitle', 'columnHeaderTitleContainer', 'columnHeaderTitleContainerContent', 'columnHeaders', 'columnHeadersInner', 'columnHeadersInner--scrollable', 'columnSeparator--resizable', 'columnSeparator--resizing', 'columnSeparator--sideLeft', 'columnSeparator--sideRight', 'columnSeparator', 'columnsPanel', 'columnsPanelRow', 'detailPanel', 'detailPanels', 'detailPanelToggleCell', 'detailPanelToggleCell--expanded', 'footerCell', 'panel', 'panelHeader', 'panelWrapper', 'panelContent', 'panelFooter', 'paper', 'editBooleanCell', 'editInputCell', 'filterForm', 'filterFormDeleteIcon', 'filterFormLinkOperatorInput', 'filterFormColumnInput', 'filterFormOperatorInput', 'filterFormValueInput', 'filterIcon', 'footerContainer', 'iconButtonContainer', 'iconSeparator', 'main', 'menu', 'menuIcon', 'menuIconButton', 'menuOpen', 'menuList', 'overlay', 'root', 'root--densityStandard', 'root--densityComfortable', 'root--densityCompact', 'row', 'row--editable', 'row--editing', 'row--lastVisible', 'row--dragging', 'row--dynamicHeight', 'rowReorderCellPlaceholder', 'rowCount', 'rowReorderCellContainer', 'rowReorderCell', 'rowReorderCell--draggable', 'scrollArea--left', 'scrollArea--right', 'scrollArea', 'selectedRowCount', 'sortIcon', 'toolbarContainer', 'toolbarFilterList', 'virtualScroller', 'virtualScrollerContent', 'virtualScrollerContent--overflowed', 'virtualScrollerRenderZone', 'pinnedColumns', 'pinnedColumns--left', 'pinnedColumns--right', 'pinnedColumnHeaders', 'pinnedColumnHeaders--left', 'pinnedColumnHeaders--right', 'withBorder', 'treeDataGroupingCell', 'treeDataGroupingCellToggle', 'groupingCriteriaCell', 'groupingCriteriaCellToggle', 'pinnedRows', 'pinnedRows--top', 'pinnedRows--bottom', 'pinnedRowsRenderZone']);
|
|
15
|
+
const gridClasses = (0, _material.generateUtilityClasses)('MuiDataGrid', ['actionsCell', 'aggregationColumnHeader', 'aggregationColumnHeader--alignLeft', 'aggregationColumnHeader--alignCenter', 'aggregationColumnHeader--alignRight', 'autoHeight', 'booleanCell', 'cell--editable', 'cell--editing', 'cell--textCenter', 'cell--textLeft', 'cell--textRight', 'cell--withRenderer', 'cell', 'cellContent', 'cellCheckbox', 'checkboxInput', 'columnHeader--alignCenter', 'columnHeader--alignLeft', 'columnHeader--alignRight', 'columnHeader--dragging', 'columnHeader--moving', 'columnHeader--numeric', 'columnHeader--sortable', 'columnHeader--sorted', 'columnHeader--filtered', 'columnHeader', 'columnHeaderCheckbox', 'columnHeaderDraggableContainer', 'columnHeaderDropZone', 'columnHeaderTitle', 'columnHeaderTitleContainer', 'columnHeaderTitleContainerContent', 'columnGroupHeader', 'columnHeader--filledGroup', 'columnHeader--emptyGroup', 'columnHeader--showColumnBorder', 'columnHeaders', 'columnHeadersInner', 'columnHeadersInner--scrollable', 'columnSeparator--resizable', 'columnSeparator--resizing', 'columnSeparator--sideLeft', 'columnSeparator--sideRight', 'columnSeparator', 'columnsPanel', 'columnsPanelRow', 'detailPanel', 'detailPanels', 'detailPanelToggleCell', 'detailPanelToggleCell--expanded', 'footerCell', 'panel', 'panelHeader', 'panelWrapper', 'panelContent', 'panelFooter', 'paper', 'editBooleanCell', 'editInputCell', 'filterForm', 'filterFormDeleteIcon', 'filterFormLinkOperatorInput', 'filterFormColumnInput', 'filterFormOperatorInput', 'filterFormValueInput', 'filterIcon', 'footerContainer', 'iconButtonContainer', 'iconSeparator', 'main', 'menu', 'menuIcon', 'menuIconButton', 'menuOpen', 'menuList', 'overlay', 'root', 'root--densityStandard', 'root--densityComfortable', 'root--densityCompact', 'row', 'row--editable', 'row--editing', 'row--lastVisible', 'row--dragging', 'row--dynamicHeight', 'rowReorderCellPlaceholder', 'rowCount', 'rowReorderCellContainer', 'rowReorderCell', 'rowReorderCell--draggable', 'scrollArea--left', 'scrollArea--right', 'scrollArea', 'selectedRowCount', 'sortIcon', 'toolbarContainer', 'toolbarFilterList', 'virtualScroller', 'virtualScrollerContent', 'virtualScrollerContent--overflowed', 'virtualScrollerRenderZone', 'pinnedColumns', 'pinnedColumns--left', 'pinnedColumns--right', 'pinnedColumnHeaders', 'pinnedColumnHeaders--left', 'pinnedColumnHeaders--right', 'withBorder', 'treeDataGroupingCell', 'treeDataGroupingCellToggle', 'groupingCriteriaCell', 'groupingCriteriaCellToggle', 'pinnedRows', 'pinnedRows--top', 'pinnedRows--bottom', 'pinnedRowsRenderZone']);
|
|
16
16
|
exports.gridClasses = gridClasses;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.gridColumnGroupsLookupSelector = exports.gridColumnGroupingSelector = void 0;
|
|
7
|
+
|
|
8
|
+
var _createSelector = require("../../../utils/createSelector");
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* @category ColumnGrouping
|
|
12
|
+
* @ignore - do not document.
|
|
13
|
+
*/
|
|
14
|
+
const gridColumnGroupingSelector = state => state.columnGrouping;
|
|
15
|
+
|
|
16
|
+
exports.gridColumnGroupingSelector = gridColumnGroupingSelector;
|
|
17
|
+
const gridColumnGroupsLookupSelector = (0, _createSelector.createSelector)(gridColumnGroupingSelector, columnGrouping => columnGrouping.lookup);
|
|
18
|
+
exports.gridColumnGroupsLookupSelector = gridColumnGroupsLookupSelector;
|