@mui/x-data-grid 6.6.0 → 6.7.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 +72 -0
- package/components/containers/GridRootStyles.js +8 -1
- package/components/panel/GridColumnsPanel.d.ts +14 -0
- package/components/panel/GridColumnsPanel.js +14 -0
- package/components/panel/filterPanel/GridFilterInputBoolean.d.ts +0 -1
- package/components/panel/filterPanel/GridFilterInputBoolean.js +6 -7
- package/components/panel/filterPanel/GridFilterInputDate.d.ts +0 -1
- package/components/panel/filterPanel/GridFilterInputDate.js +1 -6
- package/components/panel/filterPanel/GridFilterInputSingleSelect.d.ts +0 -1
- package/components/panel/filterPanel/GridFilterInputSingleSelect.js +5 -6
- package/components/panel/filterPanel/GridFilterInputValue.d.ts +0 -1
- package/components/panel/filterPanel/GridFilterInputValue.js +1 -6
- package/components/panel/filterPanel/GridFilterPanel.d.ts +8 -0
- package/components/panel/filterPanel/GridFilterPanel.js +8 -0
- package/constants/gridClasses.d.ts +4 -0
- package/constants/gridClasses.js +1 -1
- package/constants/localeTextConstants.js +4 -4
- package/hooks/features/filter/useGridFilter.js +2 -1
- package/hooks/features/focus/useGridFocus.js +1 -0
- package/hooks/features/rows/useGridRowsMeta.js +1 -1
- package/hooks/features/sorting/useGridSorting.js +2 -1
- package/hooks/features/virtualization/useGridVirtualScroller.js +2 -2
- package/index.js +1 -1
- package/legacy/components/containers/GridRootStyles.js +8 -4
- package/legacy/components/panel/GridColumnsPanel.js +14 -0
- package/legacy/components/panel/filterPanel/GridFilterInputBoolean.js +7 -7
- package/legacy/components/panel/filterPanel/GridFilterInputDate.js +1 -5
- package/legacy/components/panel/filterPanel/GridFilterInputSingleSelect.js +6 -6
- package/legacy/components/panel/filterPanel/GridFilterInputValue.js +1 -5
- package/legacy/components/panel/filterPanel/GridFilterPanel.js +8 -0
- package/legacy/constants/gridClasses.js +1 -1
- package/legacy/constants/localeTextConstants.js +4 -4
- package/legacy/hooks/features/filter/useGridFilter.js +2 -1
- package/legacy/hooks/features/focus/useGridFocus.js +1 -0
- package/legacy/hooks/features/rows/useGridRowsMeta.js +1 -1
- package/legacy/hooks/features/sorting/useGridSorting.js +2 -1
- package/legacy/hooks/features/virtualization/useGridVirtualScroller.js +2 -2
- package/legacy/index.js +1 -1
- package/legacy/locales/arSD.js +4 -4
- package/legacy/locales/beBY.js +4 -4
- package/legacy/locales/bgBG.js +4 -4
- package/legacy/locales/csCZ.js +25 -27
- package/legacy/locales/daDK.js +4 -4
- package/legacy/locales/deDE.js +25 -27
- package/legacy/locales/elGR.js +4 -4
- package/legacy/locales/esES.js +4 -4
- package/legacy/locales/faIR.js +4 -4
- package/legacy/locales/fiFI.js +4 -4
- package/legacy/locales/heIL.js +4 -4
- package/legacy/locales/huHU.js +4 -4
- package/legacy/locales/itIT.js +4 -4
- package/legacy/locales/jaJP.js +4 -4
- package/legacy/locales/koKR.js +4 -4
- package/legacy/locales/nbNO.js +4 -4
- package/legacy/locales/plPL.js +4 -4
- package/legacy/locales/ptBR.js +4 -4
- package/legacy/locales/roRO.js +4 -4
- package/legacy/locales/ruRU.js +4 -4
- package/legacy/locales/skSK.js +4 -4
- package/legacy/locales/svSE.js +4 -4
- package/legacy/locales/trTR.js +16 -17
- package/legacy/locales/ukUA.js +4 -4
- package/legacy/locales/urPK.js +4 -4
- package/legacy/locales/viVN.js +4 -4
- package/legacy/locales/zhCN.js +4 -4
- package/legacy/locales/zhTW.js +4 -4
- package/legacy/utils/EventManager.js +2 -2
- package/locales/arSD.js +4 -4
- package/locales/beBY.js +4 -4
- package/locales/bgBG.js +4 -4
- package/locales/csCZ.js +25 -27
- package/locales/daDK.js +4 -4
- package/locales/deDE.js +25 -27
- package/locales/elGR.js +4 -4
- package/locales/esES.js +4 -4
- package/locales/faIR.js +4 -4
- package/locales/fiFI.js +4 -4
- package/locales/heIL.js +4 -4
- package/locales/huHU.js +4 -4
- package/locales/itIT.js +4 -4
- package/locales/jaJP.js +4 -4
- package/locales/koKR.js +4 -4
- package/locales/nbNO.js +4 -4
- package/locales/plPL.js +4 -4
- package/locales/ptBR.js +4 -4
- package/locales/roRO.js +4 -4
- package/locales/ruRU.js +4 -4
- package/locales/skSK.js +4 -4
- package/locales/svSE.js +4 -4
- package/locales/trTR.js +16 -17
- package/locales/ukUA.js +4 -4
- package/locales/urPK.js +4 -4
- package/locales/viVN.js +4 -4
- package/locales/zhCN.js +4 -4
- package/locales/zhTW.js +4 -4
- package/models/events/gridEventLookup.d.ts +8 -0
- package/modern/components/containers/GridRootStyles.js +8 -1
- package/modern/components/panel/GridColumnsPanel.js +14 -0
- package/modern/components/panel/filterPanel/GridFilterInputBoolean.js +6 -7
- package/modern/components/panel/filterPanel/GridFilterInputDate.js +1 -6
- package/modern/components/panel/filterPanel/GridFilterInputSingleSelect.js +5 -6
- package/modern/components/panel/filterPanel/GridFilterInputValue.js +1 -6
- package/modern/components/panel/filterPanel/GridFilterPanel.js +8 -0
- package/modern/constants/gridClasses.js +1 -1
- package/modern/constants/localeTextConstants.js +4 -4
- package/modern/hooks/features/filter/useGridFilter.js +2 -1
- package/modern/hooks/features/focus/useGridFocus.js +1 -0
- package/modern/hooks/features/rows/useGridRowsMeta.js +1 -1
- package/modern/hooks/features/sorting/useGridSorting.js +2 -1
- package/modern/hooks/features/virtualization/useGridVirtualScroller.js +2 -2
- package/modern/index.js +1 -1
- package/modern/locales/arSD.js +4 -4
- package/modern/locales/beBY.js +4 -4
- package/modern/locales/bgBG.js +4 -4
- package/modern/locales/csCZ.js +25 -27
- package/modern/locales/daDK.js +4 -4
- package/modern/locales/deDE.js +25 -27
- package/modern/locales/elGR.js +4 -4
- package/modern/locales/esES.js +4 -4
- package/modern/locales/faIR.js +4 -4
- package/modern/locales/fiFI.js +4 -4
- package/modern/locales/heIL.js +4 -4
- package/modern/locales/huHU.js +4 -4
- package/modern/locales/itIT.js +4 -4
- package/modern/locales/jaJP.js +4 -4
- package/modern/locales/koKR.js +4 -4
- package/modern/locales/nbNO.js +4 -4
- package/modern/locales/plPL.js +4 -4
- package/modern/locales/ptBR.js +4 -4
- package/modern/locales/roRO.js +4 -4
- package/modern/locales/ruRU.js +4 -4
- package/modern/locales/skSK.js +4 -4
- package/modern/locales/svSE.js +4 -4
- package/modern/locales/trTR.js +16 -17
- package/modern/locales/ukUA.js +4 -4
- package/modern/locales/urPK.js +4 -4
- package/modern/locales/viVN.js +4 -4
- package/modern/locales/zhCN.js +4 -4
- package/modern/locales/zhTW.js +4 -4
- package/modern/utils/EventManager.js +2 -2
- package/node/components/containers/GridRootStyles.js +8 -1
- package/node/components/panel/GridColumnsPanel.js +14 -0
- package/node/components/panel/filterPanel/GridFilterInputBoolean.js +6 -7
- package/node/components/panel/filterPanel/GridFilterInputDate.js +1 -6
- package/node/components/panel/filterPanel/GridFilterInputSingleSelect.js +5 -6
- package/node/components/panel/filterPanel/GridFilterInputValue.js +1 -6
- package/node/components/panel/filterPanel/GridFilterPanel.js +8 -0
- package/node/constants/gridClasses.js +1 -1
- package/node/constants/localeTextConstants.js +4 -4
- package/node/hooks/features/filter/useGridFilter.js +5 -4
- package/node/hooks/features/focus/useGridFocus.js +1 -0
- package/node/hooks/features/rows/useGridRowsMeta.js +1 -1
- package/node/hooks/features/sorting/useGridSorting.js +2 -1
- package/node/hooks/features/virtualization/useGridVirtualScroller.js +2 -2
- package/node/index.js +1 -1
- package/node/locales/arSD.js +4 -4
- package/node/locales/beBY.js +4 -4
- package/node/locales/bgBG.js +4 -4
- package/node/locales/csCZ.js +25 -27
- package/node/locales/daDK.js +4 -4
- package/node/locales/deDE.js +25 -27
- package/node/locales/elGR.js +4 -4
- package/node/locales/esES.js +4 -4
- package/node/locales/faIR.js +4 -4
- package/node/locales/fiFI.js +4 -4
- package/node/locales/heIL.js +4 -4
- package/node/locales/huHU.js +4 -4
- package/node/locales/itIT.js +4 -4
- package/node/locales/jaJP.js +4 -4
- package/node/locales/koKR.js +4 -4
- package/node/locales/nbNO.js +4 -4
- package/node/locales/plPL.js +4 -4
- package/node/locales/ptBR.js +4 -4
- package/node/locales/roRO.js +4 -4
- package/node/locales/ruRU.js +4 -4
- package/node/locales/skSK.js +4 -4
- package/node/locales/svSE.js +4 -4
- package/node/locales/trTR.js +16 -17
- package/node/locales/ukUA.js +4 -4
- package/node/locales/urPK.js +4 -4
- package/node/locales/viVN.js +4 -4
- package/node/locales/zhCN.js +4 -4
- package/node/locales/zhTW.js +4 -4
- package/node/utils/EventManager.js +2 -2
- package/package.json +1 -1
- package/themeAugmentation/overrides.d.ts +1 -1
- package/utils/EventManager.js +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,78 @@
|
|
|
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.7.0
|
|
7
|
+
|
|
8
|
+
_Jun 9, 2023_
|
|
9
|
+
|
|
10
|
+
We'd like to offer a big thanks to the 12 contributors who made this release possible. Here are some highlights ✨:
|
|
11
|
+
|
|
12
|
+
- 🎁 Improve the default `format` prop value on the pickers.
|
|
13
|
+
|
|
14
|
+
Here are a few examples:
|
|
15
|
+
|
|
16
|
+
```tsx
|
|
17
|
+
<TimePicker views={['hours', 'minutes', 'seconds']} ampm />
|
|
18
|
+
// Format before v6.7.0: `hh:mm aa`
|
|
19
|
+
// Format after v6.7.0: `hh:mm:ss aa`
|
|
20
|
+
|
|
21
|
+
<DatePicker views={['year']} />
|
|
22
|
+
// Format before v6.7.0: `MM/DD/YYYY`
|
|
23
|
+
// Format after v6.7.0: `YYYY`
|
|
24
|
+
|
|
25
|
+
<DateTimePicker views={['day', 'hours', 'minutes']} ampm />
|
|
26
|
+
// Format before v6.7.0: `MM/DD/YYYY hh:mm aa`
|
|
27
|
+
// Format after v6.7.0: `DD hh:mm aa`
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
- 🌍 Add Romanian (ro-RO) locale on the pickers
|
|
31
|
+
- 🌍 Improve German (de-DE) locale on the pickers
|
|
32
|
+
- 🌍 Improve Czech (cs-CZ), German (de-DE) and Turkish (tr-TR) locales on the data grid
|
|
33
|
+
- 🚀 Performance improvements
|
|
34
|
+
- 🐞 Bugfixes
|
|
35
|
+
- 📚 Documentation improvements
|
|
36
|
+
|
|
37
|
+
### `@mui/x-data-grid@v6.7.0` / `@mui/x-data-grid-pro@v6.7.0` / `@mui/x-data-grid-premium@v6.7.0`
|
|
38
|
+
|
|
39
|
+
#### Changes
|
|
40
|
+
|
|
41
|
+
- [DataGrid] Allow overflowing grid root element (#9179) @cherniavskii
|
|
42
|
+
- [DataGrid] Fix module augmentation error when using `@mui/lab` (#9235) @cherniavskii
|
|
43
|
+
- [DataGrid] Fix row with ids matching `Object` prototype (#9265) @romgrk
|
|
44
|
+
- [DataGrid] Fix `sortModel` and `filterModel` resetting when columns change (#9239) @alexgonch
|
|
45
|
+
- [DataGrid] Improve grouping performance for large datasets (#9200) @romgrk
|
|
46
|
+
- [DataGrid] Increase threshold to trigger memory leak warning (#9263) @m4theushw
|
|
47
|
+
- [DataGrid] Update data grid migration guide to include updated type (#9272) @MBilalShafi
|
|
48
|
+
- [DataGridPro] Improve header filter menu visuals (#9181) @MBilalShafi
|
|
49
|
+
- [DataGridPremium] Remove last line break on clipboard paste (#9163) @cherniavskii
|
|
50
|
+
- [l10n] Improve Czech (cs-CZ) locale (#9266) @MartinSkarpa
|
|
51
|
+
- [l10n] Improve German (de-DE) locale (#9259) @ximex
|
|
52
|
+
- [l10n] Improve Turkish (tr-TR) locale (#9237) @MCErtan
|
|
53
|
+
|
|
54
|
+
### `@mui/x-date-pickers@v6.7.0` / `@mui/x-date-pickers-pro@v6.7.0`
|
|
55
|
+
|
|
56
|
+
#### Changes
|
|
57
|
+
|
|
58
|
+
- [l10n] Add Romanian (ro-RO) locale (#9257) @ximex
|
|
59
|
+
- [l10n] Improve German (de-DE) locale (#9258) @ximex
|
|
60
|
+
- [pickers] Apply dynamic default format depending on views for all desktop and mobile pickers (#9126) @flaviendelangle
|
|
61
|
+
- [pickers] Update `DateRangePickerDay` props JSDoc (#9191) @stevus
|
|
62
|
+
|
|
63
|
+
### Docs
|
|
64
|
+
|
|
65
|
+
- [docs] Fix missing props on the `GridFilterPanel` API page (#9180) @cherniavskii
|
|
66
|
+
- [docs] Fix overview page typo (#9230) @LukasTy
|
|
67
|
+
- [docs] Fix version redirect (#9273) @alexfauquette
|
|
68
|
+
|
|
69
|
+
### Core
|
|
70
|
+
|
|
71
|
+
- [core] Temporarily remove the Argos upload on the regression testing (#9267) @flaviendelangle
|
|
72
|
+
- [charts] Add clip-path to avoid charts overflow (#9012) @alexfauquette
|
|
73
|
+
- [charts] Add style customization on bar (#8935) @alexfauquette
|
|
74
|
+
- [charts] Enforce axis `min`/`max` over the `nice()` method (#9189) @alexfauquette
|
|
75
|
+
- [charts] Improve axis label and ticks label alignements (#9190) @alexfauquette
|
|
76
|
+
- [charts] Simplify the switch between responsive and fix dimensions (#9151) @alexfauquette
|
|
77
|
+
|
|
6
78
|
## 6.6.0
|
|
7
79
|
|
|
8
80
|
_Jun 1, 2023_
|
|
@@ -77,6 +77,8 @@ export const GridRootStyles = styled('div', {
|
|
|
77
77
|
[`& .${gridClasses['columnHeader--sorted']}`]: styles['columnHeader--sorted']
|
|
78
78
|
}, {
|
|
79
79
|
[`& .${gridClasses.columnHeader}`]: styles.columnHeader
|
|
80
|
+
}, {
|
|
81
|
+
[`& .${gridClasses.headerFilterRow}`]: styles.headerFilterRow
|
|
80
82
|
}, {
|
|
81
83
|
[`& .${gridClasses.columnHeaderCheckbox}`]: styles.columnHeaderCheckbox
|
|
82
84
|
}, {
|
|
@@ -149,7 +151,9 @@ export const GridRootStyles = styled('div', {
|
|
|
149
151
|
outline: 'none',
|
|
150
152
|
height: '100%',
|
|
151
153
|
display: 'flex',
|
|
152
|
-
|
|
154
|
+
minWidth: 0,
|
|
155
|
+
// See https://github.com/mui/mui-x/issues/8547
|
|
156
|
+
minHeight: 0,
|
|
153
157
|
flexDirection: 'column',
|
|
154
158
|
overflowAnchor: 'none',
|
|
155
159
|
// Keep the same scrolling position
|
|
@@ -227,6 +231,9 @@ export const GridRootStyles = styled('div', {
|
|
|
227
231
|
borderBottomStyle: 'solid',
|
|
228
232
|
boxSizing: 'border-box'
|
|
229
233
|
},
|
|
234
|
+
[`& .${gridClasses.headerFilterRow}`]: {
|
|
235
|
+
borderTop: `1px solid ${borderColor}`
|
|
236
|
+
},
|
|
230
237
|
[`& .${gridClasses.sortIcon}, & .${gridClasses.filterIcon}`]: {
|
|
231
238
|
fontSize: 'inherit'
|
|
232
239
|
},
|
|
@@ -4,8 +4,22 @@ import type { GridColDef } from '../../models/colDef/gridColDef';
|
|
|
4
4
|
export interface GridColumnsPanelProps extends GridPanelWrapperProps {
|
|
5
5
|
sort?: 'asc' | 'desc';
|
|
6
6
|
searchPredicate?: (column: GridColDef, searchValue: string) => boolean;
|
|
7
|
+
/**
|
|
8
|
+
* If `true`, the column search field will be focused automatically.
|
|
9
|
+
* If `false`, the first column switch input will be focused automatically.
|
|
10
|
+
* This helps to avoid input keyboard panel to popup automatically on touch devices.
|
|
11
|
+
* @default true
|
|
12
|
+
*/
|
|
7
13
|
autoFocusSearchField?: boolean;
|
|
14
|
+
/**
|
|
15
|
+
* If `true`, the `Hide all` button will not be displayed.
|
|
16
|
+
* @default false
|
|
17
|
+
*/
|
|
8
18
|
disableHideAllButton?: boolean;
|
|
19
|
+
/**
|
|
20
|
+
* If `true`, the `Show all` button will be disabled
|
|
21
|
+
* @default false
|
|
22
|
+
*/
|
|
9
23
|
disableShowAllButton?: boolean;
|
|
10
24
|
/**
|
|
11
25
|
* Returns the list of togglable columns.
|
|
@@ -198,8 +198,22 @@ process.env.NODE_ENV !== "production" ? GridColumnsPanel.propTypes = {
|
|
|
198
198
|
// | These PropTypes are generated from the TypeScript type definitions |
|
|
199
199
|
// | To update them edit the TypeScript types and run "yarn proptypes" |
|
|
200
200
|
// ----------------------------------------------------------------------
|
|
201
|
+
/**
|
|
202
|
+
* If `true`, the column search field will be focused automatically.
|
|
203
|
+
* If `false`, the first column switch input will be focused automatically.
|
|
204
|
+
* This helps to avoid input keyboard panel to popup automatically on touch devices.
|
|
205
|
+
* @default true
|
|
206
|
+
*/
|
|
201
207
|
autoFocusSearchField: PropTypes.bool,
|
|
208
|
+
/**
|
|
209
|
+
* If `true`, the `Hide all` button will not be displayed.
|
|
210
|
+
* @default false
|
|
211
|
+
*/
|
|
202
212
|
disableHideAllButton: PropTypes.bool,
|
|
213
|
+
/**
|
|
214
|
+
* If `true`, the `Show all` button will be disabled
|
|
215
|
+
* @default false
|
|
216
|
+
*/
|
|
203
217
|
disableShowAllButton: PropTypes.bool,
|
|
204
218
|
/**
|
|
205
219
|
* Returns the list of togglable columns.
|
|
@@ -2,7 +2,6 @@ import * as React from 'react';
|
|
|
2
2
|
import { TextFieldProps } from '@mui/material/TextField';
|
|
3
3
|
import { GridFilterInputValueProps } from './GridFilterInputValueProps';
|
|
4
4
|
export type GridFilterInputBooleanProps = GridFilterInputValueProps & TextFieldProps & {
|
|
5
|
-
headerFilterMenu?: React.ReactNode | null;
|
|
6
5
|
clearButton?: React.ReactNode | null;
|
|
7
6
|
/**
|
|
8
7
|
* It is `true` if the filter either has a value or an operator with no value
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
|
-
const _excluded = ["item", "applyValue", "apiRef", "focusElementRef", "
|
|
3
|
+
const _excluded = ["item", "applyValue", "apiRef", "focusElementRef", "isFilterActive", "clearButton", "tabIndex", "label"];
|
|
4
4
|
import * as React from 'react';
|
|
5
5
|
import PropTypes from 'prop-types';
|
|
6
6
|
import { unstable_useId as useId } from '@mui/utils';
|
|
@@ -10,8 +10,11 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
10
10
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
11
11
|
const BooleanOperatorContainer = styled('div')({
|
|
12
12
|
display: 'flex',
|
|
13
|
-
alignItems: '
|
|
14
|
-
width: '100%'
|
|
13
|
+
alignItems: 'center',
|
|
14
|
+
width: '100%',
|
|
15
|
+
[`& button`]: {
|
|
16
|
+
margin: 'auto 0px 5px 5px'
|
|
17
|
+
}
|
|
15
18
|
});
|
|
16
19
|
function GridFilterInputBoolean(props) {
|
|
17
20
|
var _rootProps$slotProps, _baseSelectProps$nati, _rootProps$slotProps2, _rootProps$slotProps3;
|
|
@@ -20,8 +23,6 @@ function GridFilterInputBoolean(props) {
|
|
|
20
23
|
applyValue,
|
|
21
24
|
apiRef,
|
|
22
25
|
focusElementRef,
|
|
23
|
-
headerFilterMenu,
|
|
24
|
-
isFilterActive,
|
|
25
26
|
clearButton,
|
|
26
27
|
tabIndex,
|
|
27
28
|
label: labelProp
|
|
@@ -62,7 +63,6 @@ function GridFilterInputBoolean(props) {
|
|
|
62
63
|
variant: "standard",
|
|
63
64
|
native: isSelectNative,
|
|
64
65
|
displayEmpty: true,
|
|
65
|
-
startAdornment: isFilterActive ? headerFilterMenu : null,
|
|
66
66
|
inputProps: {
|
|
67
67
|
ref: focusElementRef,
|
|
68
68
|
tabIndex
|
|
@@ -98,7 +98,6 @@ process.env.NODE_ENV !== "production" ? GridFilterInputBoolean.propTypes = {
|
|
|
98
98
|
focusElementRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({
|
|
99
99
|
current: PropTypes.any.isRequired
|
|
100
100
|
})]),
|
|
101
|
-
headerFilterMenu: PropTypes.node,
|
|
102
101
|
/**
|
|
103
102
|
* It is `true` if the filter either has a value or an operator with no value
|
|
104
103
|
* required is selected (e.g. `isEmpty`)
|
|
@@ -3,7 +3,6 @@ import { TextFieldProps } from '@mui/material/TextField';
|
|
|
3
3
|
import { GridFilterInputValueProps } from './GridFilterInputValueProps';
|
|
4
4
|
export type GridFilterInputDateProps = GridFilterInputValueProps & TextFieldProps & {
|
|
5
5
|
type?: 'date' | 'datetime-local';
|
|
6
|
-
headerFilterMenu?: React.ReactNode | null;
|
|
7
6
|
clearButton?: React.ReactNode | null;
|
|
8
7
|
/**
|
|
9
8
|
* It is `true` if the filter either has a value or an operator with no value
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
|
-
const _excluded = ["item", "applyValue", "type", "apiRef", "focusElementRef", "InputProps", "
|
|
3
|
+
const _excluded = ["item", "applyValue", "type", "apiRef", "focusElementRef", "InputProps", "isFilterActive", "clearButton", "tabIndex", "disabled"];
|
|
4
4
|
import * as React from 'react';
|
|
5
5
|
import PropTypes from 'prop-types';
|
|
6
6
|
import { unstable_useId as useId } from '@mui/utils';
|
|
@@ -16,8 +16,6 @@ function GridFilterInputDate(props) {
|
|
|
16
16
|
apiRef,
|
|
17
17
|
focusElementRef,
|
|
18
18
|
InputProps,
|
|
19
|
-
headerFilterMenu,
|
|
20
|
-
isFilterActive,
|
|
21
19
|
clearButton,
|
|
22
20
|
tabIndex,
|
|
23
21
|
disabled
|
|
@@ -68,8 +66,6 @@ function GridFilterInputDate(props) {
|
|
|
68
66
|
fontSize: "small",
|
|
69
67
|
color: "action"
|
|
70
68
|
}) : clearButton
|
|
71
|
-
} : {}, headerFilterMenu && isFilterActive ? {
|
|
72
|
-
startAdornment: headerFilterMenu
|
|
73
69
|
} : {}, {
|
|
74
70
|
disabled
|
|
75
71
|
}, InputProps, {
|
|
@@ -91,7 +87,6 @@ process.env.NODE_ENV !== "production" ? GridFilterInputDate.propTypes = {
|
|
|
91
87
|
applyValue: PropTypes.func.isRequired,
|
|
92
88
|
clearButton: PropTypes.node,
|
|
93
89
|
focusElementRef: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.func, PropTypes.object]),
|
|
94
|
-
headerFilterMenu: PropTypes.node,
|
|
95
90
|
/**
|
|
96
91
|
* It is `true` if the filter either has a value or an operator with no value
|
|
97
92
|
* required is selected (e.g. `isEmpty`)
|
|
@@ -3,7 +3,6 @@ import { TextFieldProps } from '@mui/material/TextField';
|
|
|
3
3
|
import { GridFilterInputValueProps } from './GridFilterInputValueProps';
|
|
4
4
|
import { GridSingleSelectColDef } from '../../../models/colDef/gridColDef';
|
|
5
5
|
export type GridFilterInputSingleSelectProps = GridFilterInputValueProps & TextFieldProps & Pick<GridSingleSelectColDef, 'getOptionLabel' | 'getOptionValue'> & {
|
|
6
|
-
headerFilterMenu?: React.ReactNode | null;
|
|
7
6
|
clearButton?: React.ReactNode | null;
|
|
8
7
|
/**
|
|
9
8
|
* It is `true` if the filter either has a value or an operator with no value
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
2
2
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
3
|
-
const _excluded = ["item", "applyValue", "type", "apiRef", "focusElementRef", "getOptionLabel", "getOptionValue", "placeholder", "tabIndex", "label", "
|
|
3
|
+
const _excluded = ["item", "applyValue", "type", "apiRef", "focusElementRef", "getOptionLabel", "getOptionValue", "placeholder", "tabIndex", "label", "isFilterActive", "clearButton"];
|
|
4
4
|
import * as React from 'react';
|
|
5
5
|
import PropTypes from 'prop-types';
|
|
6
6
|
import { unstable_useId as useId } from '@mui/utils';
|
|
@@ -37,7 +37,10 @@ const renderSingleSelectOptions = ({
|
|
|
37
37
|
const SingleSelectOperatorContainer = styled('div')({
|
|
38
38
|
display: 'flex',
|
|
39
39
|
alignItems: 'flex-end',
|
|
40
|
-
width: '100%'
|
|
40
|
+
width: '100%',
|
|
41
|
+
[`& button`]: {
|
|
42
|
+
margin: 'auto 0px 5px 5px'
|
|
43
|
+
}
|
|
41
44
|
});
|
|
42
45
|
function GridFilterInputSingleSelect(props) {
|
|
43
46
|
var _item$value, _rootProps$slotProps$, _rootProps$slotProps, _rootProps$slotProps$2, _resolvedColumn, _resolvedColumn2, _rootProps$slotProps2, _rootProps$slotProps3, _rootProps$slotProps4;
|
|
@@ -52,8 +55,6 @@ function GridFilterInputSingleSelect(props) {
|
|
|
52
55
|
placeholder,
|
|
53
56
|
tabIndex,
|
|
54
57
|
label: labelProp,
|
|
55
|
-
headerFilterMenu,
|
|
56
|
-
isFilterActive,
|
|
57
58
|
clearButton
|
|
58
59
|
} = props,
|
|
59
60
|
others = _objectWithoutPropertiesLoose(props, _excluded);
|
|
@@ -128,7 +129,6 @@ function GridFilterInputSingleSelect(props) {
|
|
|
128
129
|
labelId: labelId,
|
|
129
130
|
value: filterValueState,
|
|
130
131
|
onChange: onFilterChange,
|
|
131
|
-
startAdornment: isFilterActive ? headerFilterMenu : null,
|
|
132
132
|
variant: "standard",
|
|
133
133
|
type: type || 'text',
|
|
134
134
|
inputProps: {
|
|
@@ -173,7 +173,6 @@ process.env.NODE_ENV !== "production" ? GridFilterInputSingleSelect.propTypes =
|
|
|
173
173
|
* @returns {string} The value to be used.
|
|
174
174
|
*/
|
|
175
175
|
getOptionValue: PropTypes.func,
|
|
176
|
-
headerFilterMenu: PropTypes.node,
|
|
177
176
|
/**
|
|
178
177
|
* It is `true` if the filter either has a value or an operator with no value
|
|
179
178
|
* required is selected (e.g. `isEmpty`)
|
|
@@ -4,7 +4,6 @@ import { GridFilterInputValueProps } from './GridFilterInputValueProps';
|
|
|
4
4
|
export declare const SUBMIT_FILTER_STROKE_TIME = 500;
|
|
5
5
|
export type GridTypeFilterInputValueProps = GridFilterInputValueProps & TextFieldProps & {
|
|
6
6
|
type?: 'text' | 'number' | 'date' | 'datetime-local';
|
|
7
|
-
headerFilterMenu?: React.ReactNode | null;
|
|
8
7
|
clearButton?: React.ReactNode | null;
|
|
9
8
|
/**
|
|
10
9
|
* It is `true` if the filter either has a value or an operator with no value
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
|
-
const _excluded = ["item", "applyValue", "type", "apiRef", "focusElementRef", "tabIndex", "disabled", "
|
|
3
|
+
const _excluded = ["item", "applyValue", "type", "apiRef", "focusElementRef", "tabIndex", "disabled", "isFilterActive", "clearButton", "InputProps"];
|
|
4
4
|
import * as React from 'react';
|
|
5
5
|
import PropTypes from 'prop-types';
|
|
6
6
|
import { unstable_useId as useId } from '@mui/utils';
|
|
@@ -17,8 +17,6 @@ function GridFilterInputValue(props) {
|
|
|
17
17
|
focusElementRef,
|
|
18
18
|
tabIndex,
|
|
19
19
|
disabled,
|
|
20
|
-
headerFilterMenu,
|
|
21
|
-
isFilterActive,
|
|
22
20
|
clearButton,
|
|
23
21
|
InputProps
|
|
24
22
|
} = props,
|
|
@@ -65,8 +63,6 @@ function GridFilterInputValue(props) {
|
|
|
65
63
|
fontSize: "small",
|
|
66
64
|
color: "action"
|
|
67
65
|
}) : clearButton
|
|
68
|
-
} : {}, headerFilterMenu && isFilterActive ? {
|
|
69
|
-
startAdornment: headerFilterMenu
|
|
70
66
|
} : {}, {
|
|
71
67
|
disabled
|
|
72
68
|
}, InputProps, {
|
|
@@ -91,7 +87,6 @@ process.env.NODE_ENV !== "production" ? GridFilterInputValue.propTypes = {
|
|
|
91
87
|
applyValue: PropTypes.func.isRequired,
|
|
92
88
|
clearButton: PropTypes.node,
|
|
93
89
|
focusElementRef: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.func, PropTypes.object]),
|
|
94
|
-
headerFilterMenu: PropTypes.node,
|
|
95
90
|
/**
|
|
96
91
|
* It is `true` if the filter either has a value or an operator with no value
|
|
97
92
|
* required is selected (e.g. `isEmpty`)
|
|
@@ -22,7 +22,15 @@ export interface GridFilterPanelProps extends Pick<GridFilterFormProps, 'logicOp
|
|
|
22
22
|
* Props passed to each filter form.
|
|
23
23
|
*/
|
|
24
24
|
filterFormProps?: Pick<GridFilterFormProps, 'columnsSort' | 'deleteIconProps' | 'logicOperatorInputProps' | 'operatorInputProps' | 'columnInputProps' | 'valueInputProps' | 'filterColumns'>;
|
|
25
|
+
/**
|
|
26
|
+
* If `true`, the `Add filter` button will not be displayed.
|
|
27
|
+
* @default false
|
|
28
|
+
*/
|
|
25
29
|
disableAddFilterButton?: boolean;
|
|
30
|
+
/**
|
|
31
|
+
* If `true`, the `Remove all` button will be disabled
|
|
32
|
+
* @default false
|
|
33
|
+
*/
|
|
26
34
|
disableRemoveAllButton?: boolean;
|
|
27
35
|
/**
|
|
28
36
|
* @ignore - do not document.
|
|
@@ -179,7 +179,15 @@ process.env.NODE_ENV !== "production" ? GridFilterPanel.propTypes = {
|
|
|
179
179
|
* If not specified, the order is derived from the `columns` prop.
|
|
180
180
|
*/
|
|
181
181
|
columnsSort: PropTypes.oneOf(['asc', 'desc']),
|
|
182
|
+
/**
|
|
183
|
+
* If `true`, the `Add filter` button will not be displayed.
|
|
184
|
+
* @default false
|
|
185
|
+
*/
|
|
182
186
|
disableAddFilterButton: PropTypes.bool,
|
|
187
|
+
/**
|
|
188
|
+
* If `true`, the `Remove all` button will be disabled
|
|
189
|
+
* @default false
|
|
190
|
+
*/
|
|
183
191
|
disableRemoveAllButton: PropTypes.bool,
|
|
184
192
|
/**
|
|
185
193
|
* Props passed to each filter form.
|
|
@@ -307,6 +307,10 @@ export interface GridClasses {
|
|
|
307
307
|
* Styles applied to the column header separator icon element.
|
|
308
308
|
*/
|
|
309
309
|
iconSeparator: string;
|
|
310
|
+
/**
|
|
311
|
+
* Styles applied to the column header filter row.
|
|
312
|
+
*/
|
|
313
|
+
headerFilterRow: string;
|
|
310
314
|
/**
|
|
311
315
|
* Styles applied to the main container element.
|
|
312
316
|
*/
|
package/constants/gridClasses.js
CHANGED
|
@@ -2,4 +2,4 @@ import { unstable_generateUtilityClasses as generateUtilityClasses, unstable_gen
|
|
|
2
2
|
export function getDataGridUtilityClass(slot) {
|
|
3
3
|
return generateUtilityClass('MuiDataGrid', slot);
|
|
4
4
|
}
|
|
5
|
-
export const gridClasses = generateUtilityClasses('MuiDataGrid', ['actionsCell', 'aggregationColumnHeader', 'aggregationColumnHeader--alignLeft', 'aggregationColumnHeader--alignCenter', 'aggregationColumnHeader--alignRight', 'aggregationColumnHeaderLabel', 'autoHeight', 'booleanCell', 'cell--editable', 'cell--editing', 'cell--textCenter', 'cell--textLeft', 'cell--textRight', 'cell--withRenderer', 'cell--rangeTop', 'cell--rangeBottom', 'cell--rangeLeft', 'cell--rangeRight', 'cell', 'cellContent', 'cellCheckbox', 'cellSkeleton', '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', 'filterFormLogicOperatorInput', 'filterFormColumnInput', 'filterFormOperatorInput', 'filterFormValueInput', 'filterIcon', 'footerContainer', 'iconButtonContainer', 'iconSeparator', 'main', 'menu', 'menuIcon', 'menuIconButton', 'menuOpen', 'menuList', 'overlay', 'overlayWrapper', 'overlayWrapperInner', 'root', 'root--densityStandard', 'root--densityComfortable', 'root--densityCompact', 'root--disableUserSelection', 'row', 'row--editable', 'row--editing', 'row--lastVisible', 'row--dragging', 'row--dynamicHeight', 'row--detailPanelExpanded', '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', 'withBorderColor', 'cell--withRightBorder', 'columnHeader--withRightBorder', 'treeDataGroupingCell', 'treeDataGroupingCellToggle', 'groupingCriteriaCell', 'groupingCriteriaCellToggle', 'pinnedRows', 'pinnedRows--top', 'pinnedRows--bottom', 'pinnedRowsRenderZone']);
|
|
5
|
+
export const gridClasses = generateUtilityClasses('MuiDataGrid', ['actionsCell', 'aggregationColumnHeader', 'aggregationColumnHeader--alignLeft', 'aggregationColumnHeader--alignCenter', 'aggregationColumnHeader--alignRight', 'aggregationColumnHeaderLabel', 'autoHeight', 'booleanCell', 'cell--editable', 'cell--editing', 'cell--textCenter', 'cell--textLeft', 'cell--textRight', 'cell--withRenderer', 'cell--rangeTop', 'cell--rangeBottom', 'cell--rangeLeft', 'cell--rangeRight', 'cell', 'cellContent', 'cellCheckbox', 'cellSkeleton', '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', 'filterFormLogicOperatorInput', 'filterFormColumnInput', 'filterFormOperatorInput', 'filterFormValueInput', 'filterIcon', 'footerContainer', 'headerFilterRow', 'iconButtonContainer', 'iconSeparator', 'main', 'menu', 'menuIcon', 'menuIconButton', 'menuOpen', 'menuList', 'overlay', 'overlayWrapper', 'overlayWrapperInner', 'root', 'root--densityStandard', 'root--densityComfortable', 'root--densityCompact', 'root--disableUserSelection', 'row', 'row--editable', 'row--editing', 'row--lastVisible', 'row--dragging', 'row--dynamicHeight', 'row--detailPanelExpanded', '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', 'withBorderColor', 'cell--withRightBorder', 'columnHeader--withRightBorder', 'treeDataGroupingCell', 'treeDataGroupingCellToggle', 'groupingCriteriaCell', 'groupingCriteriaCellToggle', 'pinnedRows', 'pinnedRows--top', 'pinnedRows--bottom', 'pinnedRowsRenderZone']);
|
|
@@ -80,10 +80,10 @@ export const GRID_DEFAULT_LOCALE_TEXT = {
|
|
|
80
80
|
headerFilterOperatorIsAnyOf: 'Is any of',
|
|
81
81
|
'headerFilterOperator=': 'Equals',
|
|
82
82
|
'headerFilterOperator!=': 'Not equals',
|
|
83
|
-
'headerFilterOperator>': '
|
|
84
|
-
'headerFilterOperator>=': '
|
|
85
|
-
'headerFilterOperator<': '
|
|
86
|
-
'headerFilterOperator<=': '
|
|
83
|
+
'headerFilterOperator>': 'Greater than',
|
|
84
|
+
'headerFilterOperator>=': 'Greater than or equal to',
|
|
85
|
+
'headerFilterOperator<': 'Less than',
|
|
86
|
+
'headerFilterOperator<=': 'Less than or equal to',
|
|
87
87
|
// Filter values text
|
|
88
88
|
filterValueAny: 'any',
|
|
89
89
|
filterValueTrue: 'true',
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import * as React from 'react';
|
|
3
|
+
import { unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/utils';
|
|
3
4
|
import { useGridApiEventHandler } from '../../utils/useGridApiEventHandler';
|
|
4
5
|
import { useGridApiMethod } from '../../utils/useGridApiMethod';
|
|
5
6
|
import { useGridLogger } from '../../utils/useGridLogger';
|
|
@@ -336,7 +337,7 @@ export const useGridFilter = (apiRef, props) => {
|
|
|
336
337
|
/**
|
|
337
338
|
* EFFECTS
|
|
338
339
|
*/
|
|
339
|
-
|
|
340
|
+
useEnhancedEffect(() => {
|
|
340
341
|
if (props.filterModel !== undefined) {
|
|
341
342
|
apiRef.current.setFilterModel(props.filterModel);
|
|
342
343
|
}
|
|
@@ -350,6 +350,7 @@ export const useGridFocus = (apiRef, props) => {
|
|
|
350
350
|
};
|
|
351
351
|
}, [apiRef, handleDocumentClick]);
|
|
352
352
|
useGridApiEventHandler(apiRef, 'columnHeaderBlur', handleBlur);
|
|
353
|
+
useGridApiEventHandler(apiRef, 'headerFilterBlur', handleBlur);
|
|
353
354
|
useGridApiEventHandler(apiRef, 'cellDoubleClick', handleCellDoubleClick);
|
|
354
355
|
useGridApiEventHandler(apiRef, 'cellMouseDown', handleCellMouseDown);
|
|
355
356
|
useGridApiEventHandler(apiRef, 'cellKeyDown', handleCellKeyDown);
|
|
@@ -41,7 +41,7 @@ export const useGridRowsMeta = (apiRef, props) => {
|
|
|
41
41
|
getRowSpacing,
|
|
42
42
|
getEstimatedRowHeight
|
|
43
43
|
} = props;
|
|
44
|
-
const rowsHeightLookup = React.useRef(
|
|
44
|
+
const rowsHeightLookup = React.useRef(Object.create(null));
|
|
45
45
|
|
|
46
46
|
// Inspired by https://github.com/bvaughn/react-virtualized/blob/master/source/Grid/utils/CellSizeAndPositionManager.js
|
|
47
47
|
const lastMeasuredRowIndex = React.useRef(-1);
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import * as React from 'react';
|
|
3
|
+
import { unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/utils';
|
|
3
4
|
import { isEnterKey } from '../../../utils/keyboardUtils';
|
|
4
5
|
import { useGridApiEventHandler } from '../../utils/useGridApiEventHandler';
|
|
5
6
|
import { useGridApiMethod } from '../../utils/useGridApiMethod';
|
|
@@ -244,7 +245,7 @@ export const useGridSorting = (apiRef, props) => {
|
|
|
244
245
|
/**
|
|
245
246
|
* EFFECTS
|
|
246
247
|
*/
|
|
247
|
-
|
|
248
|
+
useEnhancedEffect(() => {
|
|
248
249
|
if (props.sortModel !== undefined) {
|
|
249
250
|
apiRef.current.setSortModel(props.sortModel);
|
|
250
251
|
}
|
|
@@ -91,7 +91,7 @@ export const useGridVirtualScroller = props => {
|
|
|
91
91
|
height: null
|
|
92
92
|
});
|
|
93
93
|
const prevTotalWidth = React.useRef(columnsTotalWidth);
|
|
94
|
-
const rowStyleCache = React.useRef(
|
|
94
|
+
const rowStyleCache = React.useRef(Object.create(null));
|
|
95
95
|
const prevGetRowProps = React.useRef();
|
|
96
96
|
const prevRootRowStyle = React.useRef();
|
|
97
97
|
const getRenderedColumnsRef = React.useRef(defaultMemoize((columns, firstColumnToRender, lastColumnToRender) => {
|
|
@@ -377,7 +377,7 @@ export const useGridVirtualScroller = props => {
|
|
|
377
377
|
rootRowProps = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
378
378
|
const invalidatesCachedRowStyle = prevGetRowProps.current !== getRowProps || prevRootRowStyle.current !== rootRowStyle;
|
|
379
379
|
if (invalidatesCachedRowStyle) {
|
|
380
|
-
rowStyleCache.current =
|
|
380
|
+
rowStyleCache.current = Object.create(null);
|
|
381
381
|
}
|
|
382
382
|
const rows = [];
|
|
383
383
|
for (let i = 0; i < renderedRows.length; i += 1) {
|
package/index.js
CHANGED
|
@@ -16,11 +16,11 @@ export var GridRootStyles = styled('div', {
|
|
|
16
16
|
slot: 'Root',
|
|
17
17
|
overridesResolver: function overridesResolver(props, styles) {
|
|
18
18
|
return [_defineProperty({}, "&.".concat(gridClasses.autoHeight), styles.autoHeight), _defineProperty({}, "&.".concat(gridClasses.aggregationColumnHeader), styles.aggregationColumnHeader), _defineProperty({}, "&.".concat(gridClasses['aggregationColumnHeader--alignLeft']), styles['aggregationColumnHeader--alignLeft']), _defineProperty({}, "&.".concat(gridClasses['aggregationColumnHeader--alignCenter']), styles['aggregationColumnHeader--alignCenter']), _defineProperty({}, "&.".concat(gridClasses['aggregationColumnHeader--alignRight']), styles['aggregationColumnHeader--alignRight']), _defineProperty({}, "&.".concat(gridClasses.aggregationColumnHeaderLabel), styles.aggregationColumnHeaderLabel), _defineProperty({}, "&.".concat(gridClasses['root--disableUserSelection'], " .").concat(gridClasses.cell), styles['root--disableUserSelection']), _defineProperty({}, "& .".concat(gridClasses.editBooleanCell), styles.editBooleanCell), _defineProperty({}, "& .".concat(gridClasses['cell--editing']), styles['cell--editing']), _defineProperty({}, "& .".concat(gridClasses['cell--textCenter']), styles['cell--textCenter']), _defineProperty({}, "& .".concat(gridClasses['cell--textLeft']), styles['cell--textLeft']), _defineProperty({}, "& .".concat(gridClasses['cell--textRight']), styles['cell--textRight']), // TODO v6: Remove
|
|
19
|
-
_defineProperty({}, "& .".concat(gridClasses['cell--withRenderer']), styles['cell--withRenderer']), _defineProperty({}, "& .".concat(gridClasses.cell), styles.cell), _defineProperty({}, "& .".concat(gridClasses['cell--rangeTop']), styles['cell--rangeTop']), _defineProperty({}, "& .".concat(gridClasses['cell--rangeBottom']), styles['cell--rangeBottom']), _defineProperty({}, "& .".concat(gridClasses['cell--rangeLeft']), styles['cell--rangeLeft']), _defineProperty({}, "& .".concat(gridClasses['cell--rangeRight']), styles['cell--rangeRight']), _defineProperty({}, "& .".concat(gridClasses.cellContent), styles.cellContent), _defineProperty({}, "& .".concat(gridClasses.cellCheckbox), styles.cellCheckbox), _defineProperty({}, "& .".concat(gridClasses.cellSkeleton), styles.cellSkeleton), _defineProperty({}, "& .".concat(gridClasses.checkboxInput), styles.checkboxInput), _defineProperty({}, "& .".concat(gridClasses['columnHeader--alignCenter']), styles['columnHeader--alignCenter']), _defineProperty({}, "& .".concat(gridClasses['columnHeader--alignLeft']), styles['columnHeader--alignLeft']), _defineProperty({}, "& .".concat(gridClasses['columnHeader--alignRight']), styles['columnHeader--alignRight']), _defineProperty({}, "& .".concat(gridClasses['columnHeader--dragging']), styles['columnHeader--dragging']), _defineProperty({}, "& .".concat(gridClasses['columnHeader--moving']), styles['columnHeader--moving']), _defineProperty({}, "& .".concat(gridClasses['columnHeader--numeric']), styles['columnHeader--numeric']), _defineProperty({}, "& .".concat(gridClasses['columnHeader--sortable']), styles['columnHeader--sortable']), _defineProperty({}, "& .".concat(gridClasses['columnHeader--sorted']), styles['columnHeader--sorted']), _defineProperty({}, "& .".concat(gridClasses.columnHeader), styles.columnHeader), _defineProperty({}, "& .".concat(gridClasses.columnHeaderCheckbox), styles.columnHeaderCheckbox), _defineProperty({}, "& .".concat(gridClasses.columnHeaderDraggableContainer), styles.columnHeaderDraggableContainer), _defineProperty({}, "& .".concat(gridClasses.columnHeaderTitleContainer), styles.columnHeaderTitleContainer), _defineProperty({}, "& .".concat(gridClasses['columnSeparator--resizable']), styles['columnSeparator--resizable']), _defineProperty({}, "& .".concat(gridClasses['columnSeparator--resizing']), styles['columnSeparator--resizing']), _defineProperty({}, "& .".concat(gridClasses.columnSeparator), styles.columnSeparator), _defineProperty({}, "& .".concat(gridClasses.filterIcon), styles.filterIcon), _defineProperty({}, "& .".concat(gridClasses.iconSeparator), styles.iconSeparator), _defineProperty({}, "& .".concat(gridClasses.menuIcon), styles.menuIcon), _defineProperty({}, "& .".concat(gridClasses.menuIconButton), styles.menuIconButton), _defineProperty({}, "& .".concat(gridClasses.menuOpen), styles.menuOpen), _defineProperty({}, "& .".concat(gridClasses.menuList), styles.menuList), _defineProperty({}, "& .".concat(gridClasses['row--editable']), styles['row--editable']), _defineProperty({}, "& .".concat(gridClasses['row--editing']), styles['row--editing']), _defineProperty({}, "& .".concat(gridClasses['row--dragging']), styles['row--dragging']), _defineProperty({}, "& .".concat(gridClasses.row), styles.row), _defineProperty({}, "& .".concat(gridClasses.rowReorderCellPlaceholder), styles.rowReorderCellPlaceholder), _defineProperty({}, "& .".concat(gridClasses.rowReorderCell), styles.rowReorderCell), _defineProperty({}, "& .".concat(gridClasses['rowReorderCell--draggable']), styles['rowReorderCell--draggable']), _defineProperty({}, "& .".concat(gridClasses.sortIcon), styles.sortIcon), _defineProperty({}, "& .".concat(gridClasses.withBorderColor), styles.withBorderColor), _defineProperty({}, "& .".concat(gridClasses.treeDataGroupingCell), styles.treeDataGroupingCell), _defineProperty({}, "& .".concat(gridClasses.treeDataGroupingCellToggle), styles.treeDataGroupingCellToggle), _defineProperty({}, "& .".concat(gridClasses.detailPanelToggleCell), styles.detailPanelToggleCell), _defineProperty({}, "& .".concat(gridClasses['detailPanelToggleCell--expanded']), styles['detailPanelToggleCell--expanded']), styles.root];
|
|
19
|
+
_defineProperty({}, "& .".concat(gridClasses['cell--withRenderer']), styles['cell--withRenderer']), _defineProperty({}, "& .".concat(gridClasses.cell), styles.cell), _defineProperty({}, "& .".concat(gridClasses['cell--rangeTop']), styles['cell--rangeTop']), _defineProperty({}, "& .".concat(gridClasses['cell--rangeBottom']), styles['cell--rangeBottom']), _defineProperty({}, "& .".concat(gridClasses['cell--rangeLeft']), styles['cell--rangeLeft']), _defineProperty({}, "& .".concat(gridClasses['cell--rangeRight']), styles['cell--rangeRight']), _defineProperty({}, "& .".concat(gridClasses.cellContent), styles.cellContent), _defineProperty({}, "& .".concat(gridClasses.cellCheckbox), styles.cellCheckbox), _defineProperty({}, "& .".concat(gridClasses.cellSkeleton), styles.cellSkeleton), _defineProperty({}, "& .".concat(gridClasses.checkboxInput), styles.checkboxInput), _defineProperty({}, "& .".concat(gridClasses['columnHeader--alignCenter']), styles['columnHeader--alignCenter']), _defineProperty({}, "& .".concat(gridClasses['columnHeader--alignLeft']), styles['columnHeader--alignLeft']), _defineProperty({}, "& .".concat(gridClasses['columnHeader--alignRight']), styles['columnHeader--alignRight']), _defineProperty({}, "& .".concat(gridClasses['columnHeader--dragging']), styles['columnHeader--dragging']), _defineProperty({}, "& .".concat(gridClasses['columnHeader--moving']), styles['columnHeader--moving']), _defineProperty({}, "& .".concat(gridClasses['columnHeader--numeric']), styles['columnHeader--numeric']), _defineProperty({}, "& .".concat(gridClasses['columnHeader--sortable']), styles['columnHeader--sortable']), _defineProperty({}, "& .".concat(gridClasses['columnHeader--sorted']), styles['columnHeader--sorted']), _defineProperty({}, "& .".concat(gridClasses.columnHeader), styles.columnHeader), _defineProperty({}, "& .".concat(gridClasses.headerFilterRow), styles.headerFilterRow), _defineProperty({}, "& .".concat(gridClasses.columnHeaderCheckbox), styles.columnHeaderCheckbox), _defineProperty({}, "& .".concat(gridClasses.columnHeaderDraggableContainer), styles.columnHeaderDraggableContainer), _defineProperty({}, "& .".concat(gridClasses.columnHeaderTitleContainer), styles.columnHeaderTitleContainer), _defineProperty({}, "& .".concat(gridClasses['columnSeparator--resizable']), styles['columnSeparator--resizable']), _defineProperty({}, "& .".concat(gridClasses['columnSeparator--resizing']), styles['columnSeparator--resizing']), _defineProperty({}, "& .".concat(gridClasses.columnSeparator), styles.columnSeparator), _defineProperty({}, "& .".concat(gridClasses.filterIcon), styles.filterIcon), _defineProperty({}, "& .".concat(gridClasses.iconSeparator), styles.iconSeparator), _defineProperty({}, "& .".concat(gridClasses.menuIcon), styles.menuIcon), _defineProperty({}, "& .".concat(gridClasses.menuIconButton), styles.menuIconButton), _defineProperty({}, "& .".concat(gridClasses.menuOpen), styles.menuOpen), _defineProperty({}, "& .".concat(gridClasses.menuList), styles.menuList), _defineProperty({}, "& .".concat(gridClasses['row--editable']), styles['row--editable']), _defineProperty({}, "& .".concat(gridClasses['row--editing']), styles['row--editing']), _defineProperty({}, "& .".concat(gridClasses['row--dragging']), styles['row--dragging']), _defineProperty({}, "& .".concat(gridClasses.row), styles.row), _defineProperty({}, "& .".concat(gridClasses.rowReorderCellPlaceholder), styles.rowReorderCellPlaceholder), _defineProperty({}, "& .".concat(gridClasses.rowReorderCell), styles.rowReorderCell), _defineProperty({}, "& .".concat(gridClasses['rowReorderCell--draggable']), styles['rowReorderCell--draggable']), _defineProperty({}, "& .".concat(gridClasses.sortIcon), styles.sortIcon), _defineProperty({}, "& .".concat(gridClasses.withBorderColor), styles.withBorderColor), _defineProperty({}, "& .".concat(gridClasses.treeDataGroupingCell), styles.treeDataGroupingCell), _defineProperty({}, "& .".concat(gridClasses.treeDataGroupingCellToggle), styles.treeDataGroupingCellToggle), _defineProperty({}, "& .".concat(gridClasses.detailPanelToggleCell), styles.detailPanelToggleCell), _defineProperty({}, "& .".concat(gridClasses['detailPanelToggleCell--expanded']), styles['detailPanelToggleCell--expanded']), styles.root];
|
|
20
20
|
}
|
|
21
|
-
})(function (
|
|
21
|
+
})(function (_ref58) {
|
|
22
22
|
var _$concat2, _$concat3, _extends2;
|
|
23
|
-
var theme =
|
|
23
|
+
var theme = _ref58.theme;
|
|
24
24
|
var borderColor = getBorderColor(theme);
|
|
25
25
|
var radius = theme.shape.borderRadius;
|
|
26
26
|
var gridStyle = _extends({
|
|
@@ -39,7 +39,9 @@ export var GridRootStyles = styled('div', {
|
|
|
39
39
|
outline: 'none',
|
|
40
40
|
height: '100%',
|
|
41
41
|
display: 'flex',
|
|
42
|
-
|
|
42
|
+
minWidth: 0,
|
|
43
|
+
// See https://github.com/mui/mui-x/issues/8547
|
|
44
|
+
minHeight: 0,
|
|
43
45
|
flexDirection: 'column',
|
|
44
46
|
overflowAnchor: 'none'
|
|
45
47
|
}, _defineProperty(_extends2, "&.".concat(gridClasses.autoHeight), _defineProperty({
|
|
@@ -100,6 +102,8 @@ export var GridRootStyles = styled('div', {
|
|
|
100
102
|
borderBottomWidth: '1px',
|
|
101
103
|
borderBottomStyle: 'solid',
|
|
102
104
|
boxSizing: 'border-box'
|
|
105
|
+
}), _defineProperty(_extends2, "& .".concat(gridClasses.headerFilterRow), {
|
|
106
|
+
borderTop: "1px solid ".concat(borderColor)
|
|
103
107
|
}), _defineProperty(_extends2, "& .".concat(gridClasses.sortIcon, ", & .").concat(gridClasses.filterIcon), {
|
|
104
108
|
fontSize: 'inherit'
|
|
105
109
|
}), _defineProperty(_extends2, "& .".concat(gridClasses['columnHeader--sortable']), {
|
|
@@ -218,8 +218,22 @@ process.env.NODE_ENV !== "production" ? GridColumnsPanel.propTypes = {
|
|
|
218
218
|
// | These PropTypes are generated from the TypeScript type definitions |
|
|
219
219
|
// | To update them edit the TypeScript types and run "yarn proptypes" |
|
|
220
220
|
// ----------------------------------------------------------------------
|
|
221
|
+
/**
|
|
222
|
+
* If `true`, the column search field will be focused automatically.
|
|
223
|
+
* If `false`, the first column switch input will be focused automatically.
|
|
224
|
+
* This helps to avoid input keyboard panel to popup automatically on touch devices.
|
|
225
|
+
* @default true
|
|
226
|
+
*/
|
|
221
227
|
autoFocusSearchField: PropTypes.bool,
|
|
228
|
+
/**
|
|
229
|
+
* If `true`, the `Hide all` button will not be displayed.
|
|
230
|
+
* @default false
|
|
231
|
+
*/
|
|
222
232
|
disableHideAllButton: PropTypes.bool,
|
|
233
|
+
/**
|
|
234
|
+
* If `true`, the `Show all` button will be disabled
|
|
235
|
+
* @default false
|
|
236
|
+
*/
|
|
223
237
|
disableShowAllButton: PropTypes.bool,
|
|
224
238
|
/**
|
|
225
239
|
* Returns the list of togglable columns.
|