@mui/x-data-grid 7.0.0-beta.6 → 7.0.0-beta.7
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 +117 -1
- package/DataGrid/DataGrid.js +44 -0
- package/DataGrid/useDataGridComponent.js +3 -0
- package/DataGrid/useDataGridProps.js +3 -2
- package/components/GridColumnHeaders.d.ts +1 -2
- package/components/GridColumnHeaders.js +6 -17
- package/components/GridHeaders.js +1 -4
- package/components/GridPagination.js +2 -7
- package/components/GridRow.d.ts +1 -1
- package/components/GridRow.js +4 -19
- package/components/GridScrollArea.d.ts +10 -0
- package/components/GridScrollArea.js +150 -0
- package/components/cell/GridCell.d.ts +7 -0
- package/components/cell/GridCell.js +11 -3
- package/components/columnHeaders/GridBaseColumnHeaders.js +1 -0
- package/components/columnHeaders/GridColumnGroupHeader.d.ts +5 -0
- package/components/columnHeaders/GridColumnGroupHeader.js +18 -8
- package/components/columnHeaders/GridColumnHeaderItem.d.ts +5 -0
- package/components/columnHeaders/GridColumnHeaderItem.js +21 -6
- package/components/columnHeaders/GridGenericColumnHeaderItem.d.ts +1 -0
- package/components/columnHeaders/GridGenericColumnHeaderItem.js +6 -5
- package/components/containers/GridRootStyles.js +12 -20
- package/components/virtualization/GridVirtualScrollbar.js +4 -0
- package/components/virtualization/GridVirtualScroller.js +6 -1
- package/components/virtualization/GridVirtualScrollerFiller.js +2 -1
- package/constants/gridClasses.d.ts +6 -32
- package/constants/gridClasses.js +1 -1
- package/hooks/core/pipeProcessing/gridPipeProcessingApi.d.ts +5 -1
- package/hooks/features/columnHeaders/useGridColumnHeaders.d.ts +23 -7
- package/hooks/features/columnHeaders/useGridColumnHeaders.js +186 -99
- 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 +563 -0
- package/hooks/features/columns/gridColumnsUtils.js +4 -1
- package/hooks/features/dimensions/useGridDimensions.js +4 -5
- package/hooks/features/editing/useGridCellEditing.js +21 -2
- package/hooks/features/export/useGridPrintExport.js +8 -7
- package/hooks/features/headerFiltering/gridHeaderFilteringSelectors.d.ts +1 -0
- package/hooks/features/headerFiltering/gridHeaderFilteringSelectors.js +6 -0
- package/hooks/features/headerFiltering/useGridHeaderFiltering.js +30 -7
- package/hooks/features/index.d.ts +1 -0
- package/hooks/features/index.js +1 -0
- package/hooks/features/pagination/gridPaginationInterfaces.d.ts +19 -2
- package/hooks/features/pagination/gridPaginationSelector.d.ts +5 -0
- package/hooks/features/pagination/gridPaginationSelector.js +8 -2
- package/hooks/features/pagination/useGridPagination.d.ts +1 -6
- package/hooks/features/pagination/useGridPagination.js +9 -157
- package/hooks/features/pagination/useGridPaginationModel.d.ts +11 -0
- package/hooks/features/pagination/useGridPaginationModel.js +170 -0
- package/hooks/features/pagination/useGridRowCount.d.ts +8 -0
- package/hooks/features/pagination/useGridRowCount.js +97 -0
- package/hooks/features/scroll/useGridScroll.js +1 -1
- package/hooks/features/virtualization/gridVirtualizationSelectors.d.ts +4 -4
- package/hooks/features/virtualization/gridVirtualizationSelectors.js +0 -2
- package/hooks/features/virtualization/useGridVirtualScroller.d.ts +2 -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 +1 -1
- package/internals/index.js +1 -1
- package/internals/utils/getPinnedCellOffset.d.ts +3 -0
- package/internals/utils/getPinnedCellOffset.js +17 -0
- package/joy/joySlots.js +13 -52
- 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/events/gridEventLookup.d.ts +6 -0
- package/models/gridHeaderFilteringModel.d.ts +1 -0
- package/models/gridSlotsComponent.d.ts +0 -5
- package/models/gridStateCommunity.d.ts +2 -0
- package/models/params/gridScrollParams.d.ts +5 -3
- package/models/props/DataGridProps.d.ts +35 -1
- package/modern/DataGrid/DataGrid.js +44 -0
- package/modern/DataGrid/useDataGridComponent.js +3 -0
- package/modern/DataGrid/useDataGridProps.js +3 -2
- package/modern/components/GridColumnHeaders.js +6 -17
- package/modern/components/GridHeaders.js +1 -4
- package/modern/components/GridPagination.js +2 -4
- package/modern/components/GridRow.js +4 -19
- package/modern/components/GridScrollArea.js +150 -0
- 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/GridRootStyles.js +12 -20
- 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/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 -1
- package/modern/hooks/features/dimensions/useGridDimensions.js +4 -5
- package/modern/hooks/features/editing/useGridCellEditing.js +21 -2
- package/modern/hooks/features/export/useGridPrintExport.js +8 -7
- 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/scroll/useGridScroll.js +1 -1
- package/modern/hooks/features/virtualization/gridVirtualizationSelectors.js +0 -2
- 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 +1 -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/utils/cellBorderUtils.js +8 -0
- package/modern/utils/domUtils.js +144 -0
- package/node/DataGrid/DataGrid.js +44 -0
- package/node/DataGrid/useDataGridComponent.js +3 -0
- package/node/DataGrid/useDataGridProps.js +3 -2
- package/node/components/GridColumnHeaders.js +6 -16
- package/node/components/GridHeaders.js +1 -4
- package/node/components/GridPagination.js +1 -3
- package/node/components/GridRow.js +3 -18
- package/node/components/GridScrollArea.js +158 -0
- 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/GridRootStyles.js +12 -20
- 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/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 -1
- package/node/hooks/features/dimensions/useGridDimensions.js +4 -5
- package/node/hooks/features/editing/useGridCellEditing.js +21 -2
- package/node/hooks/features/export/useGridPrintExport.js +8 -7
- 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/scroll/useGridScroll.js +1 -1
- package/node/hooks/features/virtualization/gridVirtualizationSelectors.js +0 -2
- 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 +15 -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/utils/cellBorderUtils.js +16 -0
- package/node/utils/domUtils.js +155 -0
- package/package.json +1 -1
- package/utils/cellBorderUtils.d.ts +3 -0
- package/utils/cellBorderUtils.js +8 -0
- package/utils/domUtils.d.ts +14 -1
- package/utils/domUtils.js +147 -0
- 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
|
@@ -7,9 +7,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.useGridColumnHeaders = exports.GridColumnHeaderRow = void 0;
|
|
8
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
9
|
var React = _interopRequireWildcard(require("react"));
|
|
10
|
-
var _utils = require("@mui/utils");
|
|
11
10
|
var _styles = require("@mui/material/styles");
|
|
12
|
-
var
|
|
11
|
+
var _utils = require("../../utils");
|
|
13
12
|
var _useGridRootProps = require("../../utils/useGridRootProps");
|
|
14
13
|
var _useGridPrivateApiContext = require("../../utils/useGridPrivateApiContext");
|
|
15
14
|
var _useGridApiEventHandler = require("../../utils/useGridApiEventHandler");
|
|
@@ -20,17 +19,12 @@ var _useGridVirtualScroller = require("../virtualization/useGridVirtualScroller"
|
|
|
20
19
|
var _GridColumnGroupHeader = require("../../../components/columnHeaders/GridColumnGroupHeader");
|
|
21
20
|
var _columns = require("../columns");
|
|
22
21
|
var _GridScrollbarFillerCell = require("../../../components/GridScrollbarFillerCell");
|
|
22
|
+
var _getPinnedCellOffset = require("../../../internals/utils/getPinnedCellOffset");
|
|
23
|
+
var _GridColumnHeaderSeparator = require("../../../components/columnHeaders/GridColumnHeaderSeparator");
|
|
23
24
|
var _gridClasses = require("../../../constants/gridClasses");
|
|
24
25
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
25
26
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
26
27
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
27
|
-
const SpaceFiller = (0, _styles.styled)('div')({
|
|
28
|
-
/* GridRootStyles conflict */
|
|
29
|
-
'&&&': {
|
|
30
|
-
padding: 0,
|
|
31
|
-
width: 'calc(var(--DataGrid-width) - var(--DataGrid-columnsTotalWidth))'
|
|
32
|
-
}
|
|
33
|
-
});
|
|
34
28
|
const GridColumnHeaderRow = exports.GridColumnHeaderRow = (0, _styles.styled)('div', {
|
|
35
29
|
name: 'MuiDataGrid',
|
|
36
30
|
slot: 'ColumnHeaderRow',
|
|
@@ -41,7 +35,6 @@ const GridColumnHeaderRow = exports.GridColumnHeaderRow = (0, _styles.styled)('d
|
|
|
41
35
|
});
|
|
42
36
|
const useGridColumnHeaders = props => {
|
|
43
37
|
const {
|
|
44
|
-
innerRef: innerRefProp,
|
|
45
38
|
visibleColumns,
|
|
46
39
|
sortColumnLookup,
|
|
47
40
|
filterColumnLookup,
|
|
@@ -60,21 +53,31 @@ const useGridColumnHeaders = props => {
|
|
|
60
53
|
const apiRef = (0, _useGridPrivateApiContext.useGridPrivateApiContext)();
|
|
61
54
|
const theme = (0, _styles.useTheme)();
|
|
62
55
|
const rootProps = (0, _useGridRootProps.useGridRootProps)();
|
|
63
|
-
const hasVirtualization = (0,
|
|
64
|
-
const
|
|
65
|
-
const
|
|
66
|
-
const
|
|
67
|
-
const
|
|
68
|
-
const renderContext = (0, _utils2.useGridSelector)(apiRef, _virtualization.gridRenderContextColumnsSelector);
|
|
69
|
-
const pinnedColumns = (0, _utils2.useGridSelector)(apiRef, _columns.gridVisiblePinnedColumnDefinitionsSelector);
|
|
56
|
+
const hasVirtualization = (0, _utils.useGridSelector)(apiRef, _virtualization.gridVirtualizationColumnEnabledSelector);
|
|
57
|
+
const dimensions = (0, _utils.useGridSelector)(apiRef, _dimensions.gridDimensionsSelector);
|
|
58
|
+
const columnPositions = (0, _utils.useGridSelector)(apiRef, _columns.gridColumnPositionsSelector);
|
|
59
|
+
const renderContext = (0, _utils.useGridSelector)(apiRef, _virtualization.gridRenderContextColumnsSelector);
|
|
60
|
+
const pinnedColumns = (0, _utils.useGridSelector)(apiRef, _columns.gridVisiblePinnedColumnDefinitionsSelector);
|
|
70
61
|
const offsetLeft = (0, _useGridVirtualScroller.computeOffsetLeft)(columnPositions, renderContext, theme.direction, pinnedColumns.left.length);
|
|
71
62
|
React.useEffect(() => {
|
|
72
|
-
apiRef.current.
|
|
63
|
+
apiRef.current.columnHeadersContainerRef.current.scrollLeft = 0;
|
|
73
64
|
}, [apiRef]);
|
|
74
65
|
const handleColumnResizeStart = React.useCallback(params => setResizeCol(params.field), []);
|
|
75
66
|
const handleColumnResizeStop = React.useCallback(() => setResizeCol(''), []);
|
|
76
67
|
const handleColumnReorderStart = React.useCallback(params => setDragCol(params.field), []);
|
|
77
68
|
const handleColumnReorderStop = React.useCallback(() => setDragCol(''), []);
|
|
69
|
+
const leftRenderContext = React.useMemo(() => {
|
|
70
|
+
return pinnedColumns.left.length ? {
|
|
71
|
+
firstColumnIndex: 0,
|
|
72
|
+
lastColumnIndex: pinnedColumns.left.length
|
|
73
|
+
} : null;
|
|
74
|
+
}, [pinnedColumns.left.length]);
|
|
75
|
+
const rightRenderContext = React.useMemo(() => {
|
|
76
|
+
return pinnedColumns.right.length ? {
|
|
77
|
+
firstColumnIndex: visibleColumns.length - pinnedColumns.right.length,
|
|
78
|
+
lastColumnIndex: visibleColumns.length
|
|
79
|
+
} : null;
|
|
80
|
+
}, [pinnedColumns.right.length, visibleColumns.length]);
|
|
78
81
|
(0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, 'columnResizeStart', handleColumnResizeStart);
|
|
79
82
|
(0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, 'columnResizeStop', handleColumnResizeStop);
|
|
80
83
|
(0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, 'columnHeaderDragStart', handleColumnReorderStart);
|
|
@@ -107,8 +110,9 @@ const useGridColumnHeaders = props => {
|
|
|
107
110
|
style: {
|
|
108
111
|
width: leftOffsetWidth
|
|
109
112
|
}
|
|
110
|
-
}), children, isNotPinned && /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
111
|
-
|
|
113
|
+
}), children, isNotPinned && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
114
|
+
role: "presentation",
|
|
115
|
+
className: _gridClasses.gridClasses.filler
|
|
112
116
|
}), hasScrollbarFiller && /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridScrollbarFillerCell.GridScrollbarFillerCell, {
|
|
113
117
|
header: true,
|
|
114
118
|
borderTop: borderTop,
|
|
@@ -116,6 +120,27 @@ const useGridColumnHeaders = props => {
|
|
|
116
120
|
})]
|
|
117
121
|
});
|
|
118
122
|
};
|
|
123
|
+
const getCellOffsetStyle = ({
|
|
124
|
+
pinnedPosition,
|
|
125
|
+
columnIndex,
|
|
126
|
+
computedWidth
|
|
127
|
+
}) => {
|
|
128
|
+
let style;
|
|
129
|
+
if (pinnedPosition === 'left' || pinnedPosition === 'right') {
|
|
130
|
+
const pinnedOffset = (0, _getPinnedCellOffset.getPinnedCellOffset)(pinnedPosition, computedWidth, columnIndex, columnPositions, dimensions);
|
|
131
|
+
if (pinnedPosition === 'left') {
|
|
132
|
+
style = {
|
|
133
|
+
left: pinnedOffset
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
if (pinnedPosition === 'right') {
|
|
137
|
+
style = {
|
|
138
|
+
right: pinnedOffset
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
return style;
|
|
143
|
+
};
|
|
119
144
|
const getColumnHeaders = (params, other = {}) => {
|
|
120
145
|
const {
|
|
121
146
|
renderedColumns,
|
|
@@ -129,6 +154,12 @@ const useGridColumnHeaders = props => {
|
|
|
129
154
|
const tabIndex = columnHeaderTabIndexState !== null && columnHeaderTabIndexState.field === colDef.field || isFirstColumn && !hasOtherElementInTabSequence ? 0 : -1;
|
|
130
155
|
const hasFocus = columnHeaderFocus !== null && columnHeaderFocus.field === colDef.field;
|
|
131
156
|
const open = columnMenuState.open && columnMenuState.field === colDef.field;
|
|
157
|
+
const pinnedPosition = params?.position;
|
|
158
|
+
const style = getCellOffsetStyle({
|
|
159
|
+
pinnedPosition,
|
|
160
|
+
columnIndex,
|
|
161
|
+
computedWidth: colDef.computedWidth
|
|
162
|
+
});
|
|
132
163
|
columns.push( /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridColumnHeaderItem.GridColumnHeaderItem, (0, _extends2.default)({}, sortColumnLookup[colDef.field], {
|
|
133
164
|
columnMenuOpen: open,
|
|
134
165
|
filterItemsCounter: filterColumnLookup[colDef.field] && filterColumnLookup[colDef.field].length,
|
|
@@ -138,118 +169,174 @@ const useGridColumnHeaders = props => {
|
|
|
138
169
|
colIndex: columnIndex,
|
|
139
170
|
isResizing: resizeCol === colDef.field,
|
|
140
171
|
hasFocus: hasFocus,
|
|
141
|
-
tabIndex: tabIndex
|
|
172
|
+
tabIndex: tabIndex,
|
|
173
|
+
pinnedPosition: pinnedPosition,
|
|
174
|
+
style: style,
|
|
175
|
+
indexInSection: i,
|
|
176
|
+
sectionLength: renderedColumns.length
|
|
142
177
|
}, other), colDef.field));
|
|
143
178
|
}
|
|
144
|
-
return
|
|
179
|
+
return getFillers(params, columns, 0);
|
|
180
|
+
};
|
|
181
|
+
const getColumnHeadersRow = () => {
|
|
182
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(GridColumnHeaderRow, {
|
|
145
183
|
role: "row",
|
|
146
184
|
"aria-rowindex": headerGroupingMaxDepth + 1,
|
|
147
185
|
ownerState: rootProps,
|
|
148
|
-
children:
|
|
186
|
+
children: [leftRenderContext && getColumnHeaders({
|
|
187
|
+
position: _columns.GridPinnedColumnPosition.LEFT,
|
|
188
|
+
renderContext: leftRenderContext,
|
|
189
|
+
minFirstColumn: leftRenderContext.firstColumnIndex,
|
|
190
|
+
maxLastColumn: leftRenderContext.lastColumnIndex
|
|
191
|
+
}, {
|
|
192
|
+
disableReorder: true
|
|
193
|
+
}), getColumnHeaders({
|
|
194
|
+
renderContext,
|
|
195
|
+
minFirstColumn: pinnedColumns.left.length,
|
|
196
|
+
maxLastColumn: visibleColumns.length - pinnedColumns.right.length
|
|
197
|
+
}), rightRenderContext && getColumnHeaders({
|
|
198
|
+
position: _columns.GridPinnedColumnPosition.RIGHT,
|
|
199
|
+
renderContext: rightRenderContext,
|
|
200
|
+
minFirstColumn: rightRenderContext.firstColumnIndex,
|
|
201
|
+
maxLastColumn: rightRenderContext.lastColumnIndex
|
|
202
|
+
}, {
|
|
203
|
+
disableReorder: true,
|
|
204
|
+
separatorSide: _GridColumnHeaderSeparator.GridColumnHeaderSeparatorSides.Left
|
|
205
|
+
})]
|
|
149
206
|
});
|
|
150
207
|
};
|
|
151
|
-
const getColumnGroupHeaders =
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
208
|
+
const getColumnGroupHeaders = ({
|
|
209
|
+
depth,
|
|
210
|
+
params
|
|
211
|
+
}) => {
|
|
155
212
|
const columnsToRender = getColumnsToRender(params);
|
|
156
213
|
if (columnsToRender.renderedColumns.length === 0) {
|
|
157
214
|
return null;
|
|
158
215
|
}
|
|
159
216
|
const {
|
|
217
|
+
renderedColumns,
|
|
160
218
|
firstColumnToRender,
|
|
161
219
|
lastColumnToRender
|
|
162
220
|
} = columnsToRender;
|
|
163
|
-
const
|
|
164
|
-
const
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
const visibleColumnGroupHeader = rowStructure.slice(firstGroupIndex, lastGroupIndex + 1).map(groupStructure => {
|
|
180
|
-
return (0, _extends2.default)({}, groupStructure, {
|
|
181
|
-
columnFields: groupStructure.columnFields.filter(field => columnVisibility[field] !== false)
|
|
182
|
-
});
|
|
183
|
-
}).filter(groupStructure => groupStructure.columnFields.length > 0);
|
|
184
|
-
const firstVisibleColumnIndex = visibleColumnGroupHeader[0].columnFields.indexOf(firstColumnFieldToRender);
|
|
185
|
-
const hiddenGroupColumns = visibleColumnGroupHeader[0].columnFields.slice(0, firstVisibleColumnIndex);
|
|
186
|
-
const leftOverflow = hiddenGroupColumns.reduce((acc, field) => {
|
|
187
|
-
const column = apiRef.current.getColumn(field);
|
|
188
|
-
return acc + (column.computedWidth ?? 0);
|
|
189
|
-
}, 0);
|
|
190
|
-
let columnIndex = firstColumnToRender;
|
|
191
|
-
const elements = visibleColumnGroupHeader.map(({
|
|
192
|
-
groupId,
|
|
193
|
-
columnFields
|
|
194
|
-
}) => {
|
|
195
|
-
const hasFocus = columnGroupHeaderFocus !== null && columnGroupHeaderFocus.depth === depth && columnFields.includes(columnGroupHeaderFocus.field);
|
|
196
|
-
const tabIndex = columnGroupHeaderTabIndexState !== null && columnGroupHeaderTabIndexState.depth === depth && columnFields.includes(columnGroupHeaderTabIndexState.field) ? 0 : -1;
|
|
197
|
-
const headerInfo = {
|
|
198
|
-
groupId,
|
|
199
|
-
width: columnFields.reduce((acc, field) => acc + apiRef.current.getColumn(field).computedWidth, 0),
|
|
200
|
-
fields: columnFields,
|
|
201
|
-
colIndex: columnIndex,
|
|
202
|
-
hasFocus,
|
|
203
|
-
tabIndex
|
|
204
|
-
};
|
|
205
|
-
columnIndex += columnFields.length;
|
|
206
|
-
return headerInfo;
|
|
207
|
-
});
|
|
208
|
-
headerToRender.push({
|
|
209
|
-
leftOverflow,
|
|
210
|
-
elements
|
|
221
|
+
const rowStructure = columnGroupsHeaderStructure[depth];
|
|
222
|
+
const firstColumnFieldToRender = visibleColumns[firstColumnToRender].field;
|
|
223
|
+
const firstGroupToRender = apiRef.current.getColumnGroupPath(firstColumnFieldToRender)[depth] ?? null;
|
|
224
|
+
const firstGroupIndex = rowStructure.findIndex(({
|
|
225
|
+
groupId,
|
|
226
|
+
columnFields
|
|
227
|
+
}) => groupId === firstGroupToRender && columnFields.includes(firstColumnFieldToRender));
|
|
228
|
+
const lastColumnFieldToRender = visibleColumns[lastColumnToRender - 1].field;
|
|
229
|
+
const lastGroupToRender = apiRef.current.getColumnGroupPath(lastColumnFieldToRender)[depth] ?? null;
|
|
230
|
+
const lastGroupIndex = rowStructure.findIndex(({
|
|
231
|
+
groupId,
|
|
232
|
+
columnFields
|
|
233
|
+
}) => groupId === lastGroupToRender && columnFields.includes(lastColumnFieldToRender));
|
|
234
|
+
const visibleColumnGroupHeader = rowStructure.slice(firstGroupIndex, lastGroupIndex + 1).map(groupStructure => {
|
|
235
|
+
return (0, _extends2.default)({}, groupStructure, {
|
|
236
|
+
columnFields: groupStructure.columnFields.filter(field => columnVisibility[field] !== false)
|
|
211
237
|
});
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
|
|
238
|
+
}).filter(groupStructure => groupStructure.columnFields.length > 0);
|
|
239
|
+
const firstVisibleColumnIndex = visibleColumnGroupHeader[0].columnFields.indexOf(firstColumnFieldToRender);
|
|
240
|
+
const hiddenGroupColumns = visibleColumnGroupHeader[0].columnFields.slice(0, firstVisibleColumnIndex);
|
|
241
|
+
const leftOverflow = hiddenGroupColumns.reduce((acc, field) => {
|
|
242
|
+
const column = apiRef.current.getColumn(field);
|
|
243
|
+
return acc + (column.computedWidth ?? 0);
|
|
244
|
+
}, 0);
|
|
245
|
+
let columnIndex = firstColumnToRender;
|
|
246
|
+
const children = visibleColumnGroupHeader.map(({
|
|
247
|
+
groupId,
|
|
248
|
+
columnFields
|
|
249
|
+
}, index) => {
|
|
250
|
+
const hasFocus = columnGroupHeaderFocus !== null && columnGroupHeaderFocus.depth === depth && columnFields.includes(columnGroupHeaderFocus.field);
|
|
251
|
+
const tabIndex = columnGroupHeaderTabIndexState !== null && columnGroupHeaderTabIndexState.depth === depth && columnFields.includes(columnGroupHeaderTabIndexState.field) ? 0 : -1;
|
|
252
|
+
const headerInfo = {
|
|
215
253
|
groupId,
|
|
216
|
-
width,
|
|
217
|
-
fields,
|
|
218
|
-
colIndex,
|
|
254
|
+
width: columnFields.reduce((acc, field) => acc + apiRef.current.getColumn(field).computedWidth, 0),
|
|
255
|
+
fields: columnFields,
|
|
256
|
+
colIndex: columnIndex,
|
|
219
257
|
hasFocus,
|
|
220
258
|
tabIndex
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
depth: depthIndex,
|
|
228
|
-
isLastColumn: colIndex === visibleColumns.length - fields.length,
|
|
229
|
-
maxDepth: headerToRender.length,
|
|
230
|
-
height: dimensions.headerHeight,
|
|
231
|
-
hasFocus: hasFocus,
|
|
232
|
-
tabIndex: tabIndex
|
|
233
|
-
}, groupIndex);
|
|
259
|
+
};
|
|
260
|
+
const pinnedPosition = params.position;
|
|
261
|
+
const style = getCellOffsetStyle({
|
|
262
|
+
pinnedPosition,
|
|
263
|
+
columnIndex,
|
|
264
|
+
computedWidth: headerInfo.width
|
|
234
265
|
});
|
|
235
|
-
|
|
266
|
+
columnIndex += columnFields.length;
|
|
267
|
+
let indexInSection = index;
|
|
268
|
+
if (pinnedPosition === 'left') {
|
|
269
|
+
// Group headers can expand to multiple columns, we need to adjust the index
|
|
270
|
+
indexInSection = columnIndex - 1;
|
|
271
|
+
}
|
|
272
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridColumnGroupHeader.GridColumnGroupHeader, {
|
|
273
|
+
groupId: groupId,
|
|
274
|
+
width: headerInfo.width,
|
|
275
|
+
fields: headerInfo.fields,
|
|
276
|
+
colIndex: headerInfo.colIndex,
|
|
277
|
+
depth: depth,
|
|
278
|
+
isLastColumn: headerInfo.colIndex === visibleColumns.length - headerInfo.fields.length,
|
|
279
|
+
maxDepth: headerGroupingMaxDepth,
|
|
280
|
+
height: dimensions.headerHeight,
|
|
281
|
+
hasFocus: hasFocus,
|
|
282
|
+
tabIndex: tabIndex,
|
|
283
|
+
pinnedPosition: pinnedPosition,
|
|
284
|
+
style: style,
|
|
285
|
+
indexInSection: indexInSection,
|
|
286
|
+
sectionLength: renderedColumns.length
|
|
287
|
+
}, index);
|
|
288
|
+
});
|
|
289
|
+
return getFillers(params, children, leftOverflow);
|
|
290
|
+
};
|
|
291
|
+
const getColumnGroupHeadersRows = () => {
|
|
292
|
+
if (headerGroupingMaxDepth === 0) {
|
|
293
|
+
return null;
|
|
294
|
+
}
|
|
295
|
+
const headerRows = [];
|
|
296
|
+
for (let depth = 0; depth < headerGroupingMaxDepth; depth += 1) {
|
|
297
|
+
headerRows.push( /*#__PURE__*/(0, _jsxRuntime.jsxs)(GridColumnHeaderRow, {
|
|
236
298
|
role: "row",
|
|
237
|
-
"aria-rowindex":
|
|
299
|
+
"aria-rowindex": depth + 1,
|
|
238
300
|
ownerState: rootProps,
|
|
239
|
-
children:
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
301
|
+
children: [leftRenderContext && getColumnGroupHeaders({
|
|
302
|
+
depth,
|
|
303
|
+
params: {
|
|
304
|
+
position: _columns.GridPinnedColumnPosition.LEFT,
|
|
305
|
+
renderContext: leftRenderContext,
|
|
306
|
+
minFirstColumn: leftRenderContext.firstColumnIndex,
|
|
307
|
+
maxLastColumn: leftRenderContext.lastColumnIndex
|
|
308
|
+
}
|
|
309
|
+
}), getColumnGroupHeaders({
|
|
310
|
+
depth,
|
|
311
|
+
params: {
|
|
312
|
+
renderContext
|
|
313
|
+
}
|
|
314
|
+
}), rightRenderContext && getColumnGroupHeaders({
|
|
315
|
+
depth,
|
|
316
|
+
params: {
|
|
317
|
+
position: _columns.GridPinnedColumnPosition.RIGHT,
|
|
318
|
+
renderContext: rightRenderContext,
|
|
319
|
+
minFirstColumn: rightRenderContext.firstColumnIndex,
|
|
320
|
+
maxLastColumn: rightRenderContext.lastColumnIndex
|
|
321
|
+
}
|
|
322
|
+
})]
|
|
323
|
+
}, depth));
|
|
324
|
+
}
|
|
325
|
+
return headerRows;
|
|
243
326
|
};
|
|
244
327
|
return {
|
|
245
328
|
renderContext,
|
|
329
|
+
leftRenderContext,
|
|
330
|
+
rightRenderContext,
|
|
331
|
+
pinnedColumns,
|
|
332
|
+
visibleColumns,
|
|
333
|
+
getCellOffsetStyle,
|
|
246
334
|
getFillers,
|
|
247
|
-
|
|
335
|
+
getColumnHeadersRow,
|
|
248
336
|
getColumnsToRender,
|
|
249
|
-
|
|
337
|
+
getColumnGroupHeadersRows,
|
|
250
338
|
isDragging: !!dragCol,
|
|
251
339
|
getInnerProps: () => ({
|
|
252
|
-
ref: handleInnerRef,
|
|
253
340
|
role: 'rowgroup'
|
|
254
341
|
})
|
|
255
342
|
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.gridResizingColumnFieldSelector = exports.gridColumnResizeSelector = void 0;
|
|
7
|
+
var _createSelector = require("../../../utils/createSelector");
|
|
8
|
+
const gridColumnResizeSelector = state => state.columnResize;
|
|
9
|
+
exports.gridColumnResizeSelector = gridColumnResizeSelector;
|
|
10
|
+
const gridResizingColumnFieldSelector = exports.gridResizingColumnFieldSelector = (0, _createSelector.createSelector)(gridColumnResizeSelector, columnResize => columnResize.resizingColumnField);
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.DEFAULT_GRID_AUTOSIZE_OPTIONS = void 0;
|
|
7
|
+
const DEFAULT_GRID_AUTOSIZE_OPTIONS = exports.DEFAULT_GRID_AUTOSIZE_OPTIONS = {
|
|
8
|
+
includeHeaders: true,
|
|
9
|
+
includeOutliers: false,
|
|
10
|
+
outliersFactor: 1.5,
|
|
11
|
+
expand: false
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* The Resize API interface that is available in the grid `apiRef`.
|
|
16
|
+
*/
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _columnResizeSelector = require("./columnResizeSelector");
|
|
7
|
+
Object.keys(_columnResizeSelector).forEach(function (key) {
|
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
|
9
|
+
if (key in exports && exports[key] === _columnResizeSelector[key]) return;
|
|
10
|
+
Object.defineProperty(exports, key, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function () {
|
|
13
|
+
return _columnResizeSelector[key];
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
var _columnResizeState = require("./columnResizeState");
|
|
18
|
+
Object.keys(_columnResizeState).forEach(function (key) {
|
|
19
|
+
if (key === "default" || key === "__esModule") return;
|
|
20
|
+
if (key in exports && exports[key] === _columnResizeState[key]) return;
|
|
21
|
+
Object.defineProperty(exports, key, {
|
|
22
|
+
enumerable: true,
|
|
23
|
+
get: function () {
|
|
24
|
+
return _columnResizeState[key];
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
var _gridColumnResizeApi = require("./gridColumnResizeApi");
|
|
29
|
+
Object.keys(_gridColumnResizeApi).forEach(function (key) {
|
|
30
|
+
if (key === "default" || key === "__esModule") return;
|
|
31
|
+
if (key in exports && exports[key] === _gridColumnResizeApi[key]) return;
|
|
32
|
+
Object.defineProperty(exports, key, {
|
|
33
|
+
enumerable: true,
|
|
34
|
+
get: function () {
|
|
35
|
+
return _gridColumnResizeApi[key];
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
});
|