@mui/x-data-grid-pro 6.0.0-beta.2 → 6.0.0-beta.4
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 +164 -0
- package/components/DataGridProColumnHeaders.js +3 -2
- package/components/DataGridProVirtualScroller.d.ts +1 -1
- package/components/DataGridProVirtualScroller.js +7 -3
- package/components/GridColumnMenuPinningItem.js +30 -21
- package/components/GridDetailPanelToggleCell.js +6 -4
- package/components/GridTreeDataGroupingCell.js +6 -5
- package/hooks/features/columnPinning/useGridColumnPinning.js +9 -6
- package/hooks/features/columnPinning/useGridColumnPinningPreProcessors.js +4 -2
- package/hooks/features/columnReorder/useGridColumnReorder.js +8 -3
- package/index.js +1 -1
- package/legacy/components/DataGridProColumnHeaders.js +3 -2
- package/legacy/components/DataGridProVirtualScroller.js +7 -3
- package/legacy/components/GridColumnMenuPinningItem.js +30 -21
- package/legacy/components/GridDetailPanelToggleCell.js +6 -4
- package/legacy/components/GridTreeDataGroupingCell.js +6 -5
- package/legacy/hooks/features/columnPinning/useGridColumnPinning.js +9 -6
- package/legacy/hooks/features/columnPinning/useGridColumnPinningPreProcessors.js +4 -2
- package/legacy/hooks/features/columnReorder/useGridColumnReorder.js +8 -3
- package/legacy/index.js +1 -1
- package/legacy/utils/releaseInfo.js +1 -1
- package/modern/components/DataGridProColumnHeaders.js +3 -2
- package/modern/components/DataGridProVirtualScroller.js +7 -3
- package/modern/components/GridColumnMenuPinningItem.js +30 -21
- package/modern/components/GridDetailPanelToggleCell.js +5 -4
- package/modern/components/GridTreeDataGroupingCell.js +5 -4
- package/modern/hooks/features/columnPinning/useGridColumnPinning.js +9 -6
- package/modern/hooks/features/columnPinning/useGridColumnPinningPreProcessors.js +4 -2
- package/modern/hooks/features/columnReorder/useGridColumnReorder.js +8 -3
- package/modern/index.js +1 -1
- package/modern/utils/releaseInfo.js +1 -1
- package/node/components/DataGridProColumnHeaders.js +2 -1
- package/node/components/DataGridProVirtualScroller.js +6 -2
- package/node/components/GridColumnMenuPinningItem.js +30 -21
- package/node/components/GridDetailPanelToggleCell.js +5 -4
- package/node/components/GridTreeDataGroupingCell.js +5 -4
- package/node/hooks/features/columnPinning/useGridColumnPinning.js +9 -6
- package/node/hooks/features/columnPinning/useGridColumnPinningPreProcessors.js +4 -2
- package/node/hooks/features/columnReorder/useGridColumnReorder.js +8 -3
- package/node/index.js +1 -1
- package/node/utils/releaseInfo.js +1 -1
- package/package.json +5 -5
- package/utils/releaseInfo.js +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,112 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## 6.0.0-beta.4
|
|
7
|
+
|
|
8
|
+
_Feb 16, 2023_
|
|
9
|
+
|
|
10
|
+
We'd like to offer a big thanks to the 8 contributors who made this release possible. Here are some highlights ✨:
|
|
11
|
+
|
|
12
|
+
- ⚡️ Improve grid performance by reducing rerenders (#7857) @cherniavskii
|
|
13
|
+
- 📚 Documentation improvements
|
|
14
|
+
- 🐞 Bugfixes
|
|
15
|
+
|
|
16
|
+
### `@mui/x-data-grid@v6.0.0-beta.4` / `@mui/x-data-grid-pro@v6.0.0-beta.4` / `@mui/x-data-grid-premium@v6.0.0-beta.4`
|
|
17
|
+
|
|
18
|
+
#### Changes
|
|
19
|
+
|
|
20
|
+
- [DataGrid] Add interface for `singleSelect` column (#7685) @m4theushw
|
|
21
|
+
- [DataGrid] Allow to pass props to the `TrapFocus` inside the panel wrapper (#7733) @Vivek-Prajapatii
|
|
22
|
+
- [DataGrid] Avoid unnecessary rerenders after `updateRows` (#7857) @cherniavskii
|
|
23
|
+
- [DataGridPro] Change cursor when dragging a column (#7725) @sai6855
|
|
24
|
+
- [DataGridPremium] Fix `leafField` to have correct focus value (#7950) @MBilalShafi
|
|
25
|
+
|
|
26
|
+
### `@mui/x-date-pickers@v6.0.0-beta.4` / `@mui/x-date-pickers-pro@v6.0.0-beta.4`
|
|
27
|
+
|
|
28
|
+
#### Changes
|
|
29
|
+
|
|
30
|
+
- [DateRangePicker] Fix slide transition by avoiding useless component re-rendering (#7874) @LukasTy
|
|
31
|
+
- [fields] Support Backspace key on `Android` (#7842) @flaviendelangle
|
|
32
|
+
- [fields] Support escaped characters on `Luxon` (#7888) @flaviendelangle
|
|
33
|
+
- [pickers] Prepare new pickers for custom fields (#7806) @flaviendelangle
|
|
34
|
+
|
|
35
|
+
### `@mui/x-codemod@v6.0.0-beta.4`
|
|
36
|
+
|
|
37
|
+
#### Changes
|
|
38
|
+
|
|
39
|
+
- [codemod] Fix import path (#7952) @LukasTy
|
|
40
|
+
|
|
41
|
+
### Docs
|
|
42
|
+
|
|
43
|
+
- [docs] Add an info callout specifying the current state of desktop time view (#7933) @LukasTy
|
|
44
|
+
- [docs] Add missing param in `useGridApiEventHandler` examples (#7939) @flaviendelangle
|
|
45
|
+
- [docs] Fix markdown table alignments (#7898) @oliviertassinari
|
|
46
|
+
- [docs] Improve `DataGrid` migration guide (#7861) @MBilalShafi
|
|
47
|
+
- [docs] Update `LocalizationProvider` `dateAdapter` with a link to the doc (#7872) @LukasTy
|
|
48
|
+
|
|
49
|
+
### Core
|
|
50
|
+
|
|
51
|
+
- [core] Run editing field tests on all major adapters (#7868) @flaviendelangle
|
|
52
|
+
|
|
53
|
+
## 6.0.0-beta.3
|
|
54
|
+
|
|
55
|
+
_Feb 9, 2023_
|
|
56
|
+
|
|
57
|
+
We'd like to offer a big thanks to the 11 contributors who made this release possible. Here are some highlights ✨:
|
|
58
|
+
|
|
59
|
+
- ⬅️ Add right-to-left support for the data grid (#6580) @yaredtsy
|
|
60
|
+
- ⚡️ Improve grid resize performance (#7864) @cherniavskii
|
|
61
|
+
- ✨ New codemods for migrating to v6 @MBilalShafi
|
|
62
|
+
- 📚 Documentation improvements
|
|
63
|
+
- 🐞 Bugfixes
|
|
64
|
+
|
|
65
|
+
### `@mui/x-data-grid@v6.0.0-beta.3` / `@mui/x-data-grid-pro@v6.0.0-beta.3` / `@mui/x-data-grid-premium@v6.0.0-beta.3`
|
|
66
|
+
|
|
67
|
+
#### Changes
|
|
68
|
+
|
|
69
|
+
- [DataGrid] Add `BaseIconButton` component slot (#7329) @123joshuawu
|
|
70
|
+
- [DataGrid] Allow to customize the value displayed in the filter button tooltip (#6956) @ithrforu
|
|
71
|
+
- [DataGrid] Improve grid resize performance (#7864) @cherniavskii
|
|
72
|
+
- [DataGrid] Make `apiRef.current.getRowWithUpdatedValues` stable (#7788) @m4theushw
|
|
73
|
+
- [DataGrid] Support RTL (#6580) @yaredtsy
|
|
74
|
+
- [DataGrid] Improve query selectors for selecting cell element (#7354) @yaredtsy
|
|
75
|
+
- [l10n] Improve Brazilian Portuguese (pt-BR) locale (#7854) @ed-ateixeira
|
|
76
|
+
|
|
77
|
+
### `@mui/x-date-pickers@v6.0.0-beta.3` / `@mui/x-date-pickers-pro@v6.0.0-beta.3`
|
|
78
|
+
|
|
79
|
+
#### Changes
|
|
80
|
+
|
|
81
|
+
- [fields] Allow to select year 2000 on 2-digit year section (#7858) @flaviendelangle
|
|
82
|
+
- [fields] Fix year editing on `day.js` (#7862) @flaviendelangle
|
|
83
|
+
- [fields] Fix year editing on valid date (#7834) @flaviendelangle
|
|
84
|
+
- [fields] Reset query when pressing `Backspace` or `Delete` (#7855) @flaviendelangle
|
|
85
|
+
- [pickers] Clean Popper position on new pickers (#7445) @flaviendelangle
|
|
86
|
+
- [pickers] Ditch pickers `skipLibCheck` (#7808) @LukasTy
|
|
87
|
+
- [pickers] Improve JSDoc and resulting API docs pages (#7847) @LukasTy
|
|
88
|
+
|
|
89
|
+
### `@mui/x-codemod@v6.0.0-beta.3`
|
|
90
|
+
|
|
91
|
+
#### Changes
|
|
92
|
+
|
|
93
|
+
- [codemod] Add more cases to `rename-selectors-and-events` codemod (#7856) @MBilalShafi
|
|
94
|
+
- [codemod] Add warning message to the codemods and migration guide (#7813) @MBilalShafi
|
|
95
|
+
- [codemod] Add codemod to remove unnecessary `experimentalFeatures` flag (#7836) @MBilalShafi
|
|
96
|
+
- [codemod] Rename `GridFilterItem` props (#7483) @MBilalShafi
|
|
97
|
+
- [codemod] Rename `linkOperators` to `logicOperators` (#7707) @MBilalShafi
|
|
98
|
+
- [codemod] Replace `onCellFocusOut` prop for Data Grid (#7786) @MBilalShafi
|
|
99
|
+
|
|
100
|
+
### Docs
|
|
101
|
+
|
|
102
|
+
- [docs] Add a "Whats new in v6" page linked on the sidebar (#7820) @joserodolfofreitas
|
|
103
|
+
- [docs] Fix hydration crash in pickers (#7734) @oliviertassinari
|
|
104
|
+
- [docs] Remove no longer relevant range shortcuts section (#7840) @LukasTy
|
|
105
|
+
- [docs] Use `@next` tag in grid and pickers installation instructions (#7814) @cherniavskii
|
|
106
|
+
|
|
107
|
+
### Core
|
|
108
|
+
|
|
109
|
+
- [core] Remove `tslint` package leftovers (#7841) @LukasTy
|
|
110
|
+
- [test] Use `createDescribes` for `describeValue` and `describeValidation` (#7866) @flaviendelangle
|
|
111
|
+
|
|
6
112
|
## 6.0.0-beta.2
|
|
7
113
|
|
|
8
114
|
We'd like to offer a big thanks to the 11 contributors who made this release possible. Here are some highlights ✨:
|
|
@@ -2073,6 +2179,64 @@ You can find more information about the new api, including how to set those tran
|
|
|
2073
2179
|
- [test] Skip tests for column pinning and dynamic row height (#5997) @m4theushw
|
|
2074
2180
|
- [website] Improve security header @oliviertassinari
|
|
2075
2181
|
|
|
2182
|
+
## 5.17.24
|
|
2183
|
+
|
|
2184
|
+
_Feb 16, 2023_
|
|
2185
|
+
|
|
2186
|
+
We'd like to offer a big thanks to the 5 contributors who made this release possible. Here are some highlights ✨:
|
|
2187
|
+
|
|
2188
|
+
- 🌍 Add Hungarian (hu-HU) locale
|
|
2189
|
+
- 🐞 Bugfixes
|
|
2190
|
+
|
|
2191
|
+
### `@mui/x-data-grid@v5.17.24` / `@mui/x-data-grid-pro@v5.17.24` / `@mui/x-data-grid-premium@v5.17.24`
|
|
2192
|
+
|
|
2193
|
+
#### Changes
|
|
2194
|
+
|
|
2195
|
+
- [DataGrid] Allow to pass props to the `TrapFocus` inside the panel wrapper (#7897) @Vivek-Prajapatii
|
|
2196
|
+
- [DataGrid] Avoid unnecessary rerenders after `updateRows` (#7945) @cherniavskii
|
|
2197
|
+
- [DataGridPro] Change cursor when dragging a column (#7878) @sai6855
|
|
2198
|
+
- [DataGridPremium] Fix `leafField` to have correct focus value (#7959) @MBilalShafi
|
|
2199
|
+
|
|
2200
|
+
### `@mui/x-date-pickers@v5.0.19` / `@mui/x-date-pickers-pro@v5.0.19`
|
|
2201
|
+
|
|
2202
|
+
#### Changes
|
|
2203
|
+
|
|
2204
|
+
- [l10n] Add Hungarian (hu-HU) locale (#7796) @noherczeg
|
|
2205
|
+
|
|
2206
|
+
## 5.17.23
|
|
2207
|
+
|
|
2208
|
+
_Feb 9, 2023_
|
|
2209
|
+
|
|
2210
|
+
We'd like to offer a big thanks to the 6 contributors who made this release possible. Here are some highlights ✨:
|
|
2211
|
+
|
|
2212
|
+
- 🌍 Improve Brazilian Portuguese (pt-BR) locale
|
|
2213
|
+
- 🎉 Add banner and callouts to inform about MUI X v6 beta
|
|
2214
|
+
- 🐞 Bugfixes
|
|
2215
|
+
|
|
2216
|
+
### `@mui/x-data-grid@v5.17.23` / `@mui/x-data-grid-pro@v5.17.23` / `@mui/x-data-grid-premium@v5.17.23`
|
|
2217
|
+
|
|
2218
|
+
#### Changes
|
|
2219
|
+
|
|
2220
|
+
- [DataGrid] Allow to customize the value displayed in the filter button tooltip (#7816) @ithrforu
|
|
2221
|
+
- [DataGrid] Fix `getCellElement` method not working with pinned columns (#7844) @yaredtsy
|
|
2222
|
+
- [DataGrid] Fix stale rows issue in `unstable_replaceRows` (#7694) @MBilalShafi
|
|
2223
|
+
- [l10n] Improve Brazilian Portuguese (pt-BR) locale (#7850) @ed-ateixeira
|
|
2224
|
+
|
|
2225
|
+
### `@mui/x-date-pickers@v_5.0.18` / `@mui/x-date-pickers-pro@v_5.0.18`
|
|
2226
|
+
|
|
2227
|
+
#### Changes
|
|
2228
|
+
|
|
2229
|
+
- [pickers] Update pickers when new value has a distinct timezone (#7853) @alexfauquette
|
|
2230
|
+
|
|
2231
|
+
### Docs
|
|
2232
|
+
|
|
2233
|
+
- [docs] Add messages in v5 doc to inform people about v6 (#7838) @flaviendelangle
|
|
2234
|
+
- [docs] Fix 301 link @oliviertassinari
|
|
2235
|
+
|
|
2236
|
+
### Core
|
|
2237
|
+
|
|
2238
|
+
- [core] Upgrade monorepo (#7849) @cherniavskii
|
|
2239
|
+
|
|
2076
2240
|
## 5.17.22
|
|
2077
2241
|
|
|
2078
2242
|
_Feb 2, 2023_
|
|
@@ -3,7 +3,7 @@ import _extends from "@babel/runtime/helpers/esm/extends";
|
|
|
3
3
|
const _excluded = ["style", "className", "innerRef"];
|
|
4
4
|
import * as React from 'react';
|
|
5
5
|
import { unstable_composeClasses as composeClasses, unstable_useEventCallback as useEventCallback } from '@mui/utils';
|
|
6
|
-
import { styled, alpha } from '@mui/material/styles';
|
|
6
|
+
import { styled, alpha, useTheme } from '@mui/material/styles';
|
|
7
7
|
import { getDataGridUtilityClass, gridClasses, useGridSelector, useGridApiEventHandler, gridVisibleColumnFieldsSelector, GridColumnHeaderSeparatorSides } from '@mui/x-data-grid';
|
|
8
8
|
import { GridColumnHeaders, GridColumnHeadersInner, useGridColumnHeaders } from '@mui/x-data-grid/internals';
|
|
9
9
|
import { useGridRootProps } from '../hooks/utils/useGridRootProps';
|
|
@@ -78,6 +78,7 @@ export const DataGridProColumnHeaders = /*#__PURE__*/React.forwardRef(function D
|
|
|
78
78
|
const apiRef = useGridApiContext();
|
|
79
79
|
const visibleColumnFields = useGridSelector(apiRef, gridVisibleColumnFieldsSelector);
|
|
80
80
|
const [scrollbarSize, setScrollbarSize] = React.useState(0);
|
|
81
|
+
const theme = useTheme();
|
|
81
82
|
const handleContentSizeChange = useEventCallback(() => {
|
|
82
83
|
const rootDimensions = apiRef.current.getRootDimensions();
|
|
83
84
|
if (!rootDimensions) {
|
|
@@ -90,7 +91,7 @@ export const DataGridProColumnHeaders = /*#__PURE__*/React.forwardRef(function D
|
|
|
90
91
|
});
|
|
91
92
|
useGridApiEventHandler(apiRef, 'virtualScrollerContentSizeChange', handleContentSizeChange);
|
|
92
93
|
const pinnedColumns = useGridSelector(apiRef, gridPinnedColumnsSelector);
|
|
93
|
-
const [leftPinnedColumns, rightPinnedColumns] = filterColumns(pinnedColumns, visibleColumnFields);
|
|
94
|
+
const [leftPinnedColumns, rightPinnedColumns] = filterColumns(pinnedColumns, visibleColumnFields, theme.direction === 'rtl');
|
|
94
95
|
const {
|
|
95
96
|
isDragging,
|
|
96
97
|
renderContext,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { GridPinnedColumns } from '../hooks/features/columnPinning';
|
|
3
|
-
export declare const filterColumns: (pinnedColumns: GridPinnedColumns, columns: string[]) => [string[], string[]];
|
|
3
|
+
export declare const filterColumns: (pinnedColumns: GridPinnedColumns, columns: string[], invert?: boolean) => [string[], string[]];
|
|
4
4
|
interface DataGridProVirtualScrollerProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
5
5
|
disableVirtualization?: boolean;
|
|
6
6
|
}
|
|
@@ -2,7 +2,7 @@ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWith
|
|
|
2
2
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
3
3
|
const _excluded = ["className", "disableVirtualization"];
|
|
4
4
|
import * as React from 'react';
|
|
5
|
-
import { styled, alpha } from '@mui/material/styles';
|
|
5
|
+
import { styled, alpha, useTheme } from '@mui/material/styles';
|
|
6
6
|
import { unstable_composeClasses as composeClasses } from '@mui/utils';
|
|
7
7
|
import { useGridSelector, getDataGridUtilityClass, gridClasses, gridVisibleColumnFieldsSelector, gridRowsMetaSelector, useGridApiEventHandler, GridOverlays } from '@mui/x-data-grid';
|
|
8
8
|
import { GridVirtualScroller, GridVirtualScrollerContent, GridVirtualScrollerRenderZone, useGridVirtualScroller, calculatePinnedRowsHeight } from '@mui/x-data-grid/internals';
|
|
@@ -14,7 +14,7 @@ import { GridDetailPanel } from './GridDetailPanel';
|
|
|
14
14
|
import { gridPinnedRowsSelector } from '../hooks/features/rowPinning/gridRowPinningSelector';
|
|
15
15
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
16
16
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
17
|
-
export const filterColumns = (pinnedColumns, columns) => {
|
|
17
|
+
export const filterColumns = (pinnedColumns, columns, invert) => {
|
|
18
18
|
var _pinnedColumns$left, _pinnedColumns$right;
|
|
19
19
|
if (!Array.isArray(pinnedColumns.left) && !Array.isArray(pinnedColumns.right)) {
|
|
20
20
|
return [[], []];
|
|
@@ -33,6 +33,9 @@ export const filterColumns = (pinnedColumns, columns) => {
|
|
|
33
33
|
// Filter out from the remaining columns those columns already pinned to the left
|
|
34
34
|
field => !leftPinnedColumns.includes(field));
|
|
35
35
|
const rightPinnedColumns = filter(pinnedColumns.right, columnsWithoutLeftPinnedColumns);
|
|
36
|
+
if (invert) {
|
|
37
|
+
return [rightPinnedColumns, leftPinnedColumns];
|
|
38
|
+
}
|
|
36
39
|
return [leftPinnedColumns, rightPinnedColumns];
|
|
37
40
|
};
|
|
38
41
|
const useUtilityClasses = ownerState => {
|
|
@@ -153,6 +156,7 @@ const DataGridProVirtualScroller = /*#__PURE__*/React.forwardRef(function DataGr
|
|
|
153
156
|
const rightColumns = React.useRef(null);
|
|
154
157
|
const topPinnedRowsRenderZoneRef = React.useRef(null);
|
|
155
158
|
const bottomPinnedRowsRenderZoneRef = React.useRef(null);
|
|
159
|
+
const theme = useTheme();
|
|
156
160
|
const handleRenderZonePositioning = React.useCallback(({
|
|
157
161
|
top,
|
|
158
162
|
left
|
|
@@ -182,7 +186,7 @@ const DataGridProVirtualScroller = /*#__PURE__*/React.forwardRef(function DataGr
|
|
|
182
186
|
};
|
|
183
187
|
};
|
|
184
188
|
const pinnedColumns = useGridSelector(apiRef, gridPinnedColumnsSelector);
|
|
185
|
-
const [leftPinnedColumns, rightPinnedColumns] = filterColumns(pinnedColumns, visibleColumnFields);
|
|
189
|
+
const [leftPinnedColumns, rightPinnedColumns] = filterColumns(pinnedColumns, visibleColumnFields, theme.direction === 'rtl');
|
|
186
190
|
const pinnedRows = useGridSelector(apiRef, gridPinnedRowsSelector);
|
|
187
191
|
const topPinnedRowsData = React.useMemo(() => (pinnedRows == null ? void 0 : pinnedRows.top) || [], [pinnedRows == null ? void 0 : pinnedRows.top]);
|
|
188
192
|
const bottomPinnedRowsData = React.useMemo(() => (pinnedRows == null ? void 0 : pinnedRows.bottom) || [], [pinnedRows == null ? void 0 : pinnedRows.bottom]);
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
+
import { useTheme } from '@mui/material/styles';
|
|
2
3
|
import PropTypes from 'prop-types';
|
|
3
4
|
import MenuItem from '@mui/material/MenuItem';
|
|
4
5
|
import ListItemIcon from '@mui/material/ListItemIcon';
|
|
@@ -15,14 +16,35 @@ function GridColumnMenuPinningItem(props) {
|
|
|
15
16
|
} = props;
|
|
16
17
|
const apiRef = useGridApiContext();
|
|
17
18
|
const rootProps = useGridRootProps();
|
|
18
|
-
const
|
|
19
|
+
const theme = useTheme();
|
|
20
|
+
const pinColumn = React.useCallback(side => event => {
|
|
19
21
|
apiRef.current.pinColumn(colDef.field, side);
|
|
20
22
|
onClick(event);
|
|
21
|
-
};
|
|
23
|
+
}, [apiRef, colDef.field, onClick]);
|
|
22
24
|
const unpinColumn = event => {
|
|
23
25
|
apiRef.current.unpinColumn(colDef.field);
|
|
24
26
|
onClick(event);
|
|
25
27
|
};
|
|
28
|
+
const pinToLeftMenuItem = /*#__PURE__*/_jsxs(MenuItem, {
|
|
29
|
+
onClick: pinColumn(GridPinnedPosition.left),
|
|
30
|
+
children: [/*#__PURE__*/_jsx(ListItemIcon, {
|
|
31
|
+
children: /*#__PURE__*/_jsx(rootProps.components.ColumnMenuPinLeftIcon, {
|
|
32
|
+
fontSize: "small"
|
|
33
|
+
})
|
|
34
|
+
}), /*#__PURE__*/_jsx(ListItemText, {
|
|
35
|
+
children: apiRef.current.getLocaleText('pinToLeft')
|
|
36
|
+
})]
|
|
37
|
+
});
|
|
38
|
+
const pinToRightMenuItem = /*#__PURE__*/_jsxs(MenuItem, {
|
|
39
|
+
onClick: pinColumn(GridPinnedPosition.right),
|
|
40
|
+
children: [/*#__PURE__*/_jsx(ListItemIcon, {
|
|
41
|
+
children: /*#__PURE__*/_jsx(rootProps.components.ColumnMenuPinRightIcon, {
|
|
42
|
+
fontSize: "small"
|
|
43
|
+
})
|
|
44
|
+
}), /*#__PURE__*/_jsx(ListItemText, {
|
|
45
|
+
children: apiRef.current.getLocaleText('pinToRight')
|
|
46
|
+
})]
|
|
47
|
+
});
|
|
26
48
|
if (!colDef) {
|
|
27
49
|
return null;
|
|
28
50
|
}
|
|
@@ -49,26 +71,13 @@ function GridColumnMenuPinningItem(props) {
|
|
|
49
71
|
})]
|
|
50
72
|
});
|
|
51
73
|
}
|
|
74
|
+
if (theme.direction === 'rtl') {
|
|
75
|
+
return /*#__PURE__*/_jsxs(React.Fragment, {
|
|
76
|
+
children: [pinToRightMenuItem, pinToLeftMenuItem]
|
|
77
|
+
});
|
|
78
|
+
}
|
|
52
79
|
return /*#__PURE__*/_jsxs(React.Fragment, {
|
|
53
|
-
children: [
|
|
54
|
-
onClick: pinColumn(GridPinnedPosition.left),
|
|
55
|
-
children: [/*#__PURE__*/_jsx(ListItemIcon, {
|
|
56
|
-
children: /*#__PURE__*/_jsx(rootProps.components.ColumnMenuPinLeftIcon, {
|
|
57
|
-
fontSize: "small"
|
|
58
|
-
})
|
|
59
|
-
}), /*#__PURE__*/_jsx(ListItemText, {
|
|
60
|
-
children: apiRef.current.getLocaleText('pinToLeft')
|
|
61
|
-
})]
|
|
62
|
-
}), /*#__PURE__*/_jsxs(MenuItem, {
|
|
63
|
-
onClick: pinColumn(GridPinnedPosition.right),
|
|
64
|
-
children: [/*#__PURE__*/_jsx(ListItemIcon, {
|
|
65
|
-
children: /*#__PURE__*/_jsx(rootProps.components.ColumnMenuPinRightIcon, {
|
|
66
|
-
fontSize: "small"
|
|
67
|
-
})
|
|
68
|
-
}), /*#__PURE__*/_jsx(ListItemText, {
|
|
69
|
-
children: apiRef.current.getLocaleText('pinToRight')
|
|
70
|
-
})]
|
|
71
|
-
})]
|
|
80
|
+
children: [pinToLeftMenuItem, pinToRightMenuItem]
|
|
72
81
|
});
|
|
73
82
|
}
|
|
74
83
|
process.env.NODE_ENV !== "production" ? GridColumnMenuPinningItem.propTypes = {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
1
2
|
import * as React from 'react';
|
|
2
3
|
import PropTypes from 'prop-types';
|
|
3
4
|
import { unstable_composeClasses as composeClasses } from '@mui/utils';
|
|
4
|
-
import IconButton from '@mui/material/IconButton';
|
|
5
5
|
import { getDataGridUtilityClass, useGridSelector } from '@mui/x-data-grid';
|
|
6
6
|
import { useGridRootProps } from '../hooks/utils/useGridRootProps';
|
|
7
7
|
import { useGridApiContext } from '../hooks/utils/useGridApiContext';
|
|
@@ -18,6 +18,7 @@ const useUtilityClasses = ownerState => {
|
|
|
18
18
|
return composeClasses(slots, getDataGridUtilityClass, classes);
|
|
19
19
|
};
|
|
20
20
|
function GridDetailPanelToggleCell(props) {
|
|
21
|
+
var _rootProps$components;
|
|
21
22
|
const {
|
|
22
23
|
id,
|
|
23
24
|
value: isExpanded
|
|
@@ -32,16 +33,17 @@ function GridDetailPanelToggleCell(props) {
|
|
|
32
33
|
const contentCache = useGridSelector(apiRef, gridDetailPanelExpandedRowsContentCacheSelector);
|
|
33
34
|
const hasContent = /*#__PURE__*/React.isValidElement(contentCache[id]);
|
|
34
35
|
const Icon = isExpanded ? rootProps.components.DetailPanelCollapseIcon : rootProps.components.DetailPanelExpandIcon;
|
|
35
|
-
return /*#__PURE__*/_jsx(
|
|
36
|
+
return /*#__PURE__*/_jsx(rootProps.components.BaseIconButton, _extends({
|
|
36
37
|
size: "small",
|
|
37
38
|
tabIndex: -1,
|
|
38
39
|
disabled: !hasContent,
|
|
39
40
|
className: classes.root,
|
|
40
|
-
"aria-label": isExpanded ? apiRef.current.getLocaleText('collapseDetailPanel') : apiRef.current.getLocaleText('expandDetailPanel')
|
|
41
|
+
"aria-label": isExpanded ? apiRef.current.getLocaleText('collapseDetailPanel') : apiRef.current.getLocaleText('expandDetailPanel')
|
|
42
|
+
}, (_rootProps$components = rootProps.componentsProps) == null ? void 0 : _rootProps$components.baseIconButton, {
|
|
41
43
|
children: /*#__PURE__*/_jsx(Icon, {
|
|
42
44
|
fontSize: "inherit"
|
|
43
45
|
})
|
|
44
|
-
});
|
|
46
|
+
}));
|
|
45
47
|
}
|
|
46
48
|
process.env.NODE_ENV !== "production" ? GridDetailPanelToggleCell.propTypes = {
|
|
47
49
|
// ----------------------------- Warning --------------------------------
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
1
2
|
import * as React from 'react';
|
|
2
3
|
import PropTypes from 'prop-types';
|
|
3
4
|
import { unstable_composeClasses as composeClasses } from '@mui/utils';
|
|
4
|
-
import IconButton from '@mui/material/IconButton';
|
|
5
5
|
import Box from '@mui/material/Box';
|
|
6
6
|
import { useGridSelector, gridFilteredDescendantCountLookupSelector, getDataGridUtilityClass } from '@mui/x-data-grid';
|
|
7
7
|
import { useGridRootProps } from '../hooks/utils/useGridRootProps';
|
|
@@ -19,7 +19,7 @@ const useUtilityClasses = ownerState => {
|
|
|
19
19
|
return composeClasses(slots, getDataGridUtilityClass, classes);
|
|
20
20
|
};
|
|
21
21
|
function GridTreeDataGroupingCell(props) {
|
|
22
|
-
var _filteredDescendantCo;
|
|
22
|
+
var _filteredDescendantCo, _rootProps$components;
|
|
23
23
|
const {
|
|
24
24
|
id,
|
|
25
25
|
field,
|
|
@@ -50,15 +50,16 @@ function GridTreeDataGroupingCell(props) {
|
|
|
50
50
|
},
|
|
51
51
|
children: [/*#__PURE__*/_jsx("div", {
|
|
52
52
|
className: classes.toggle,
|
|
53
|
-
children: filteredDescendantCount > 0 && /*#__PURE__*/_jsx(
|
|
53
|
+
children: filteredDescendantCount > 0 && /*#__PURE__*/_jsx(rootProps.components.BaseIconButton, _extends({
|
|
54
54
|
size: "small",
|
|
55
55
|
onClick: handleClick,
|
|
56
56
|
tabIndex: -1,
|
|
57
|
-
"aria-label": rowNode.childrenExpanded ? apiRef.current.getLocaleText('treeDataCollapse') : apiRef.current.getLocaleText('treeDataExpand')
|
|
57
|
+
"aria-label": rowNode.childrenExpanded ? apiRef.current.getLocaleText('treeDataCollapse') : apiRef.current.getLocaleText('treeDataExpand')
|
|
58
|
+
}, rootProps == null ? void 0 : (_rootProps$components = rootProps.componentsProps) == null ? void 0 : _rootProps$components.baseIconButton, {
|
|
58
59
|
children: /*#__PURE__*/_jsx(Icon, {
|
|
59
60
|
fontSize: "inherit"
|
|
60
61
|
})
|
|
61
|
-
})
|
|
62
|
+
}))
|
|
62
63
|
}), /*#__PURE__*/_jsxs("span", {
|
|
63
64
|
children: [formattedValue === undefined ? rowNode.groupingKey : formattedValue, !hideDescendantCount && filteredDescendantCount > 0 ? ` (${filteredDescendantCount})` : '']
|
|
64
65
|
})]
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import * as React from 'react';
|
|
3
|
+
import { useTheme } from '@mui/material/styles';
|
|
3
4
|
import { useGridSelector, gridVisibleColumnDefinitionsSelector, gridColumnsTotalWidthSelector, gridColumnPositionsSelector, gridVisibleColumnFieldsSelector, gridClasses, useGridApiMethod, useGridApiEventHandler, gridColumnFieldsSelector } from '@mui/x-data-grid';
|
|
4
5
|
import { useGridRegisterPipeProcessor } from '@mui/x-data-grid/internals';
|
|
5
6
|
import { GridPinnedPosition } from './gridColumnPinningInterface';
|
|
@@ -31,7 +32,7 @@ const mergeStateWithPinnedColumns = pinnedColumns => state => _extends({}, state
|
|
|
31
32
|
export const useGridColumnPinning = (apiRef, props) => {
|
|
32
33
|
var _props$initialState4;
|
|
33
34
|
const pinnedColumns = useGridSelector(apiRef, gridPinnedColumnsSelector);
|
|
34
|
-
|
|
35
|
+
const theme = useTheme();
|
|
35
36
|
// Each visible row (not to be confused with a filter result) is composed of a central .MuiDataGrid-row element
|
|
36
37
|
// and up to two additional .MuiDataGrid-row's, one for the columns pinned to the left and another
|
|
37
38
|
// for those on the right side. When hovering any of these elements, the :hover styles are applied only to
|
|
@@ -80,7 +81,7 @@ export const useGridColumnPinning = (apiRef, props) => {
|
|
|
80
81
|
return initialValue;
|
|
81
82
|
}
|
|
82
83
|
const visibleColumnFields = gridVisibleColumnFieldsSelector(apiRef);
|
|
83
|
-
const [leftPinnedColumns, rightPinnedColumns] = filterColumns(pinnedColumns, visibleColumnFields);
|
|
84
|
+
const [leftPinnedColumns, rightPinnedColumns] = filterColumns(pinnedColumns, visibleColumnFields, theme.direction === 'rtl');
|
|
84
85
|
if (!params.colIndex || leftPinnedColumns.length === 0 && rightPinnedColumns.length === 0) {
|
|
85
86
|
return initialValue;
|
|
86
87
|
}
|
|
@@ -88,7 +89,9 @@ export const useGridColumnPinning = (apiRef, props) => {
|
|
|
88
89
|
const columnsTotalWidth = gridColumnsTotalWidthSelector(apiRef);
|
|
89
90
|
const columnPositions = gridColumnPositionsSelector(apiRef);
|
|
90
91
|
const clientWidth = apiRef.current.virtualScrollerRef.current.clientWidth;
|
|
91
|
-
|
|
92
|
+
|
|
93
|
+
// When using RTL, `scrollLeft` becomes negative, so we must ensure that we only compare values.
|
|
94
|
+
const scrollLeft = Math.abs(apiRef.current.virtualScrollerRef.current.scrollLeft);
|
|
92
95
|
const offsetWidth = visibleColumns[params.colIndex].computedWidth;
|
|
93
96
|
const offsetLeft = columnPositions[params.colIndex];
|
|
94
97
|
const leftPinnedColumnsWidth = columnPositions[leftPinnedColumns.length];
|
|
@@ -107,7 +110,7 @@ export const useGridColumnPinning = (apiRef, props) => {
|
|
|
107
110
|
});
|
|
108
111
|
}
|
|
109
112
|
return initialValue;
|
|
110
|
-
}, [apiRef, pinnedColumns, props.disableColumnPinning]);
|
|
113
|
+
}, [apiRef, pinnedColumns, props.disableColumnPinning, theme.direction]);
|
|
111
114
|
const addColumnMenuItems = React.useCallback((columnMenuItems, colDef) => {
|
|
112
115
|
if (props.disableColumnPinning) {
|
|
113
116
|
return columnMenuItems;
|
|
@@ -121,7 +124,7 @@ export const useGridColumnPinning = (apiRef, props) => {
|
|
|
121
124
|
targetIndex
|
|
122
125
|
}) => {
|
|
123
126
|
const visibleColumnFields = gridVisibleColumnFieldsSelector(apiRef);
|
|
124
|
-
const [leftPinnedColumns, rightPinnedColumns] = filterColumns(pinnedColumns, visibleColumnFields);
|
|
127
|
+
const [leftPinnedColumns, rightPinnedColumns] = filterColumns(pinnedColumns, visibleColumnFields, theme.direction === 'rtl');
|
|
125
128
|
if (leftPinnedColumns.length === 0 && rightPinnedColumns.length === 0) {
|
|
126
129
|
return initialValue;
|
|
127
130
|
}
|
|
@@ -134,7 +137,7 @@ export const useGridColumnPinning = (apiRef, props) => {
|
|
|
134
137
|
return targetIndex >= firstRightPinnedColumnIndex ? false : initialValue;
|
|
135
138
|
}
|
|
136
139
|
return initialValue;
|
|
137
|
-
}, [apiRef, pinnedColumns]);
|
|
140
|
+
}, [apiRef, pinnedColumns, theme.direction]);
|
|
138
141
|
const stateExportPreProcessing = React.useCallback((prevState, context) => {
|
|
139
142
|
var _props$initialState3, _pinnedColumnsToExpor, _pinnedColumnsToExpor2;
|
|
140
143
|
const pinnedColumnsToExport = gridPinnedColumnsSelector(apiRef.current.state);
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import * as React from 'react';
|
|
3
|
+
import { useTheme } from '@mui/material/styles';
|
|
3
4
|
import { useGridRegisterPipeProcessor } from '@mui/x-data-grid/internals';
|
|
4
5
|
import { gridPinnedColumnsSelector } from './gridColumnPinningSelector';
|
|
5
6
|
import { columnPinningStateInitializer } from './useGridColumnPinning';
|
|
@@ -10,6 +11,7 @@ export const useGridColumnPinningPreProcessors = (apiRef, props) => {
|
|
|
10
11
|
pinnedColumns: pinnedColumnsProp,
|
|
11
12
|
initialState
|
|
12
13
|
} = props;
|
|
14
|
+
const theme = useTheme();
|
|
13
15
|
let pinnedColumns = gridPinnedColumnsSelector(apiRef.current.state);
|
|
14
16
|
if (pinnedColumns == null) {
|
|
15
17
|
// Since the state is not ready yet lets use the initializer to get which
|
|
@@ -26,7 +28,7 @@ export const useGridColumnPinningPreProcessors = (apiRef, props) => {
|
|
|
26
28
|
if (columnsState.orderedFields.length === 0 || disableColumnPinning) {
|
|
27
29
|
return columnsState;
|
|
28
30
|
}
|
|
29
|
-
const [leftPinnedColumns, rightPinnedColumns] = filterColumns(pinnedColumns, columnsState.orderedFields);
|
|
31
|
+
const [leftPinnedColumns, rightPinnedColumns] = filterColumns(pinnedColumns, columnsState.orderedFields, theme.direction === 'rtl');
|
|
30
32
|
let newOrderedFields;
|
|
31
33
|
const allPinnedColumns = [...leftPinnedColumns, ...rightPinnedColumns];
|
|
32
34
|
const {
|
|
@@ -99,6 +101,6 @@ export const useGridColumnPinningPreProcessors = (apiRef, props) => {
|
|
|
99
101
|
return _extends({}, columnsState, {
|
|
100
102
|
orderedFields: [...leftPinnedColumns, ...centerColumns, ...rightPinnedColumns]
|
|
101
103
|
});
|
|
102
|
-
}, [apiRef, disableColumnPinning, pinnedColumns]);
|
|
104
|
+
}, [apiRef, disableColumnPinning, pinnedColumns, theme.direction]);
|
|
103
105
|
useGridRegisterPipeProcessor(apiRef, 'hydrateColumns', reorderPinnedColumns);
|
|
104
106
|
};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { unstable_composeClasses as composeClasses } from '@mui/utils';
|
|
4
|
+
import { useTheme } from '@mui/material/styles';
|
|
4
5
|
import { useGridApiEventHandler, getDataGridUtilityClass, useGridLogger, useGridApiOptionHandler } from '@mui/x-data-grid';
|
|
5
6
|
import { gridColumnReorderDragColSelector } from './columnReorderSelector';
|
|
6
7
|
const CURSOR_MOVE_DIRECTION_LEFT = 'left';
|
|
@@ -41,6 +42,7 @@ export const useGridColumnReorder = (apiRef, props) => {
|
|
|
41
42
|
classes: props.classes
|
|
42
43
|
};
|
|
43
44
|
const classes = useUtilityClasses(ownerState);
|
|
45
|
+
const theme = useTheme();
|
|
44
46
|
React.useEffect(() => {
|
|
45
47
|
return () => {
|
|
46
48
|
clearTimeout(removeDnDStylesTimeout.current);
|
|
@@ -56,6 +58,9 @@ export const useGridColumnReorder = (apiRef, props) => {
|
|
|
56
58
|
event.stopPropagation();
|
|
57
59
|
dragColNode.current = event.currentTarget;
|
|
58
60
|
dragColNode.current.classList.add(classes.columnHeaderDragging);
|
|
61
|
+
if (event.dataTransfer) {
|
|
62
|
+
event.dataTransfer.effectAllowed = 'move';
|
|
63
|
+
}
|
|
59
64
|
apiRef.current.setState(state => _extends({}, state, {
|
|
60
65
|
columnReorder: _extends({}, state.columnReorder, {
|
|
61
66
|
dragCol: params.field
|
|
@@ -149,8 +154,8 @@ export const useGridColumnReorder = (apiRef, props) => {
|
|
|
149
154
|
const visibleColumns = apiRef.current.getVisibleColumns();
|
|
150
155
|
const allColumns = apiRef.current.getAllColumns();
|
|
151
156
|
const cursorMoveDirectionX = getCursorMoveDirectionX(cursorPosition.current, coordinates);
|
|
152
|
-
const hasMovedLeft = cursorMoveDirectionX === CURSOR_MOVE_DIRECTION_LEFT && targetColIndex < dragColIndex;
|
|
153
|
-
const hasMovedRight = cursorMoveDirectionX === CURSOR_MOVE_DIRECTION_RIGHT && dragColIndex < targetColIndex;
|
|
157
|
+
const hasMovedLeft = cursorMoveDirectionX === CURSOR_MOVE_DIRECTION_LEFT && theme.direction === 'rtl' ? dragColIndex < targetColIndex : targetColIndex < dragColIndex;
|
|
158
|
+
const hasMovedRight = cursorMoveDirectionX === CURSOR_MOVE_DIRECTION_RIGHT && theme.direction === 'rtl' ? targetColIndex < dragColIndex : dragColIndex < targetColIndex;
|
|
154
159
|
if (hasMovedLeft || hasMovedRight) {
|
|
155
160
|
let canBeReordered;
|
|
156
161
|
let indexOffsetInHiddenColumns = 0;
|
|
@@ -191,7 +196,7 @@ export const useGridColumnReorder = (apiRef, props) => {
|
|
|
191
196
|
}
|
|
192
197
|
cursorPosition.current = coordinates;
|
|
193
198
|
}
|
|
194
|
-
}, [apiRef, logger]);
|
|
199
|
+
}, [apiRef, logger, theme.direction]);
|
|
195
200
|
const handleDragEnd = React.useCallback((params, event) => {
|
|
196
201
|
const dragColField = gridColumnReorderDragColSelector(apiRef);
|
|
197
202
|
if (props.disableColumnReorder || !dragColField) {
|
package/index.js
CHANGED
|
@@ -5,7 +5,7 @@ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
|
5
5
|
var _excluded = ["style", "className", "innerRef"];
|
|
6
6
|
import * as React from 'react';
|
|
7
7
|
import { unstable_composeClasses as composeClasses, unstable_useEventCallback as useEventCallback } from '@mui/utils';
|
|
8
|
-
import { styled, alpha } from '@mui/material/styles';
|
|
8
|
+
import { styled, alpha, useTheme } from '@mui/material/styles';
|
|
9
9
|
import { getDataGridUtilityClass, gridClasses, useGridSelector, useGridApiEventHandler, gridVisibleColumnFieldsSelector, GridColumnHeaderSeparatorSides } from '@mui/x-data-grid';
|
|
10
10
|
import { GridColumnHeaders, GridColumnHeadersInner, useGridColumnHeaders } from '@mui/x-data-grid/internals';
|
|
11
11
|
import { useGridRootProps } from '../hooks/utils/useGridRootProps';
|
|
@@ -77,6 +77,7 @@ export var DataGridProColumnHeaders = /*#__PURE__*/React.forwardRef(function Dat
|
|
|
77
77
|
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
78
78
|
scrollbarSize = _React$useState2[0],
|
|
79
79
|
setScrollbarSize = _React$useState2[1];
|
|
80
|
+
var theme = useTheme();
|
|
80
81
|
var handleContentSizeChange = useEventCallback(function () {
|
|
81
82
|
var rootDimensions = apiRef.current.getRootDimensions();
|
|
82
83
|
if (!rootDimensions) {
|
|
@@ -89,7 +90,7 @@ export var DataGridProColumnHeaders = /*#__PURE__*/React.forwardRef(function Dat
|
|
|
89
90
|
});
|
|
90
91
|
useGridApiEventHandler(apiRef, 'virtualScrollerContentSizeChange', handleContentSizeChange);
|
|
91
92
|
var pinnedColumns = useGridSelector(apiRef, gridPinnedColumnsSelector);
|
|
92
|
-
var _filterColumns = filterColumns(pinnedColumns, visibleColumnFields),
|
|
93
|
+
var _filterColumns = filterColumns(pinnedColumns, visibleColumnFields, theme.direction === 'rtl'),
|
|
93
94
|
_filterColumns2 = _slicedToArray(_filterColumns, 2),
|
|
94
95
|
leftPinnedColumns = _filterColumns2[0],
|
|
95
96
|
rightPinnedColumns = _filterColumns2[1];
|
|
@@ -5,7 +5,7 @@ import _extends from "@babel/runtime/helpers/esm/extends";
|
|
|
5
5
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
6
6
|
var _excluded = ["className", "disableVirtualization"];
|
|
7
7
|
import * as React from 'react';
|
|
8
|
-
import { styled, alpha } from '@mui/material/styles';
|
|
8
|
+
import { styled, alpha, useTheme } from '@mui/material/styles';
|
|
9
9
|
import { unstable_composeClasses as composeClasses } from '@mui/utils';
|
|
10
10
|
import { useGridSelector, getDataGridUtilityClass, gridClasses, gridVisibleColumnFieldsSelector, gridRowsMetaSelector, useGridApiEventHandler, GridOverlays } from '@mui/x-data-grid';
|
|
11
11
|
import { GridVirtualScroller, GridVirtualScrollerContent, GridVirtualScrollerRenderZone, useGridVirtualScroller, calculatePinnedRowsHeight } from '@mui/x-data-grid/internals';
|
|
@@ -17,7 +17,7 @@ import { GridDetailPanel } from './GridDetailPanel';
|
|
|
17
17
|
import { gridPinnedRowsSelector } from '../hooks/features/rowPinning/gridRowPinningSelector';
|
|
18
18
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
19
19
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
20
|
-
export var filterColumns = function filterColumns(pinnedColumns, columns) {
|
|
20
|
+
export var filterColumns = function filterColumns(pinnedColumns, columns, invert) {
|
|
21
21
|
var _pinnedColumns$left, _pinnedColumns$right;
|
|
22
22
|
if (!Array.isArray(pinnedColumns.left) && !Array.isArray(pinnedColumns.right)) {
|
|
23
23
|
return [[], []];
|
|
@@ -40,6 +40,9 @@ export var filterColumns = function filterColumns(pinnedColumns, columns) {
|
|
|
40
40
|
return !leftPinnedColumns.includes(field);
|
|
41
41
|
});
|
|
42
42
|
var rightPinnedColumns = filter(pinnedColumns.right, columnsWithoutLeftPinnedColumns);
|
|
43
|
+
if (invert) {
|
|
44
|
+
return [rightPinnedColumns, leftPinnedColumns];
|
|
45
|
+
}
|
|
43
46
|
return [leftPinnedColumns, rightPinnedColumns];
|
|
44
47
|
};
|
|
45
48
|
var useUtilityClasses = function useUtilityClasses(ownerState) {
|
|
@@ -156,6 +159,7 @@ var DataGridProVirtualScroller = /*#__PURE__*/React.forwardRef(function DataGrid
|
|
|
156
159
|
var rightColumns = React.useRef(null);
|
|
157
160
|
var topPinnedRowsRenderZoneRef = React.useRef(null);
|
|
158
161
|
var bottomPinnedRowsRenderZoneRef = React.useRef(null);
|
|
162
|
+
var theme = useTheme();
|
|
159
163
|
var handleRenderZonePositioning = React.useCallback(function (_ref7) {
|
|
160
164
|
var top = _ref7.top,
|
|
161
165
|
left = _ref7.left;
|
|
@@ -184,7 +188,7 @@ var DataGridProVirtualScroller = /*#__PURE__*/React.forwardRef(function DataGrid
|
|
|
184
188
|
};
|
|
185
189
|
};
|
|
186
190
|
var pinnedColumns = useGridSelector(apiRef, gridPinnedColumnsSelector);
|
|
187
|
-
var _filterColumns = filterColumns(pinnedColumns, visibleColumnFields),
|
|
191
|
+
var _filterColumns = filterColumns(pinnedColumns, visibleColumnFields, theme.direction === 'rtl'),
|
|
188
192
|
_filterColumns2 = _slicedToArray(_filterColumns, 2),
|
|
189
193
|
leftPinnedColumns = _filterColumns2[0],
|
|
190
194
|
rightPinnedColumns = _filterColumns2[1];
|