@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.
Files changed (187) hide show
  1. package/CHANGELOG.md +72 -0
  2. package/components/containers/GridRootStyles.js +8 -1
  3. package/components/panel/GridColumnsPanel.d.ts +14 -0
  4. package/components/panel/GridColumnsPanel.js +14 -0
  5. package/components/panel/filterPanel/GridFilterInputBoolean.d.ts +0 -1
  6. package/components/panel/filterPanel/GridFilterInputBoolean.js +6 -7
  7. package/components/panel/filterPanel/GridFilterInputDate.d.ts +0 -1
  8. package/components/panel/filterPanel/GridFilterInputDate.js +1 -6
  9. package/components/panel/filterPanel/GridFilterInputSingleSelect.d.ts +0 -1
  10. package/components/panel/filterPanel/GridFilterInputSingleSelect.js +5 -6
  11. package/components/panel/filterPanel/GridFilterInputValue.d.ts +0 -1
  12. package/components/panel/filterPanel/GridFilterInputValue.js +1 -6
  13. package/components/panel/filterPanel/GridFilterPanel.d.ts +8 -0
  14. package/components/panel/filterPanel/GridFilterPanel.js +8 -0
  15. package/constants/gridClasses.d.ts +4 -0
  16. package/constants/gridClasses.js +1 -1
  17. package/constants/localeTextConstants.js +4 -4
  18. package/hooks/features/filter/useGridFilter.js +2 -1
  19. package/hooks/features/focus/useGridFocus.js +1 -0
  20. package/hooks/features/rows/useGridRowsMeta.js +1 -1
  21. package/hooks/features/sorting/useGridSorting.js +2 -1
  22. package/hooks/features/virtualization/useGridVirtualScroller.js +2 -2
  23. package/index.js +1 -1
  24. package/legacy/components/containers/GridRootStyles.js +8 -4
  25. package/legacy/components/panel/GridColumnsPanel.js +14 -0
  26. package/legacy/components/panel/filterPanel/GridFilterInputBoolean.js +7 -7
  27. package/legacy/components/panel/filterPanel/GridFilterInputDate.js +1 -5
  28. package/legacy/components/panel/filterPanel/GridFilterInputSingleSelect.js +6 -6
  29. package/legacy/components/panel/filterPanel/GridFilterInputValue.js +1 -5
  30. package/legacy/components/panel/filterPanel/GridFilterPanel.js +8 -0
  31. package/legacy/constants/gridClasses.js +1 -1
  32. package/legacy/constants/localeTextConstants.js +4 -4
  33. package/legacy/hooks/features/filter/useGridFilter.js +2 -1
  34. package/legacy/hooks/features/focus/useGridFocus.js +1 -0
  35. package/legacy/hooks/features/rows/useGridRowsMeta.js +1 -1
  36. package/legacy/hooks/features/sorting/useGridSorting.js +2 -1
  37. package/legacy/hooks/features/virtualization/useGridVirtualScroller.js +2 -2
  38. package/legacy/index.js +1 -1
  39. package/legacy/locales/arSD.js +4 -4
  40. package/legacy/locales/beBY.js +4 -4
  41. package/legacy/locales/bgBG.js +4 -4
  42. package/legacy/locales/csCZ.js +25 -27
  43. package/legacy/locales/daDK.js +4 -4
  44. package/legacy/locales/deDE.js +25 -27
  45. package/legacy/locales/elGR.js +4 -4
  46. package/legacy/locales/esES.js +4 -4
  47. package/legacy/locales/faIR.js +4 -4
  48. package/legacy/locales/fiFI.js +4 -4
  49. package/legacy/locales/heIL.js +4 -4
  50. package/legacy/locales/huHU.js +4 -4
  51. package/legacy/locales/itIT.js +4 -4
  52. package/legacy/locales/jaJP.js +4 -4
  53. package/legacy/locales/koKR.js +4 -4
  54. package/legacy/locales/nbNO.js +4 -4
  55. package/legacy/locales/plPL.js +4 -4
  56. package/legacy/locales/ptBR.js +4 -4
  57. package/legacy/locales/roRO.js +4 -4
  58. package/legacy/locales/ruRU.js +4 -4
  59. package/legacy/locales/skSK.js +4 -4
  60. package/legacy/locales/svSE.js +4 -4
  61. package/legacy/locales/trTR.js +16 -17
  62. package/legacy/locales/ukUA.js +4 -4
  63. package/legacy/locales/urPK.js +4 -4
  64. package/legacy/locales/viVN.js +4 -4
  65. package/legacy/locales/zhCN.js +4 -4
  66. package/legacy/locales/zhTW.js +4 -4
  67. package/legacy/utils/EventManager.js +2 -2
  68. package/locales/arSD.js +4 -4
  69. package/locales/beBY.js +4 -4
  70. package/locales/bgBG.js +4 -4
  71. package/locales/csCZ.js +25 -27
  72. package/locales/daDK.js +4 -4
  73. package/locales/deDE.js +25 -27
  74. package/locales/elGR.js +4 -4
  75. package/locales/esES.js +4 -4
  76. package/locales/faIR.js +4 -4
  77. package/locales/fiFI.js +4 -4
  78. package/locales/heIL.js +4 -4
  79. package/locales/huHU.js +4 -4
  80. package/locales/itIT.js +4 -4
  81. package/locales/jaJP.js +4 -4
  82. package/locales/koKR.js +4 -4
  83. package/locales/nbNO.js +4 -4
  84. package/locales/plPL.js +4 -4
  85. package/locales/ptBR.js +4 -4
  86. package/locales/roRO.js +4 -4
  87. package/locales/ruRU.js +4 -4
  88. package/locales/skSK.js +4 -4
  89. package/locales/svSE.js +4 -4
  90. package/locales/trTR.js +16 -17
  91. package/locales/ukUA.js +4 -4
  92. package/locales/urPK.js +4 -4
  93. package/locales/viVN.js +4 -4
  94. package/locales/zhCN.js +4 -4
  95. package/locales/zhTW.js +4 -4
  96. package/models/events/gridEventLookup.d.ts +8 -0
  97. package/modern/components/containers/GridRootStyles.js +8 -1
  98. package/modern/components/panel/GridColumnsPanel.js +14 -0
  99. package/modern/components/panel/filterPanel/GridFilterInputBoolean.js +6 -7
  100. package/modern/components/panel/filterPanel/GridFilterInputDate.js +1 -6
  101. package/modern/components/panel/filterPanel/GridFilterInputSingleSelect.js +5 -6
  102. package/modern/components/panel/filterPanel/GridFilterInputValue.js +1 -6
  103. package/modern/components/panel/filterPanel/GridFilterPanel.js +8 -0
  104. package/modern/constants/gridClasses.js +1 -1
  105. package/modern/constants/localeTextConstants.js +4 -4
  106. package/modern/hooks/features/filter/useGridFilter.js +2 -1
  107. package/modern/hooks/features/focus/useGridFocus.js +1 -0
  108. package/modern/hooks/features/rows/useGridRowsMeta.js +1 -1
  109. package/modern/hooks/features/sorting/useGridSorting.js +2 -1
  110. package/modern/hooks/features/virtualization/useGridVirtualScroller.js +2 -2
  111. package/modern/index.js +1 -1
  112. package/modern/locales/arSD.js +4 -4
  113. package/modern/locales/beBY.js +4 -4
  114. package/modern/locales/bgBG.js +4 -4
  115. package/modern/locales/csCZ.js +25 -27
  116. package/modern/locales/daDK.js +4 -4
  117. package/modern/locales/deDE.js +25 -27
  118. package/modern/locales/elGR.js +4 -4
  119. package/modern/locales/esES.js +4 -4
  120. package/modern/locales/faIR.js +4 -4
  121. package/modern/locales/fiFI.js +4 -4
  122. package/modern/locales/heIL.js +4 -4
  123. package/modern/locales/huHU.js +4 -4
  124. package/modern/locales/itIT.js +4 -4
  125. package/modern/locales/jaJP.js +4 -4
  126. package/modern/locales/koKR.js +4 -4
  127. package/modern/locales/nbNO.js +4 -4
  128. package/modern/locales/plPL.js +4 -4
  129. package/modern/locales/ptBR.js +4 -4
  130. package/modern/locales/roRO.js +4 -4
  131. package/modern/locales/ruRU.js +4 -4
  132. package/modern/locales/skSK.js +4 -4
  133. package/modern/locales/svSE.js +4 -4
  134. package/modern/locales/trTR.js +16 -17
  135. package/modern/locales/ukUA.js +4 -4
  136. package/modern/locales/urPK.js +4 -4
  137. package/modern/locales/viVN.js +4 -4
  138. package/modern/locales/zhCN.js +4 -4
  139. package/modern/locales/zhTW.js +4 -4
  140. package/modern/utils/EventManager.js +2 -2
  141. package/node/components/containers/GridRootStyles.js +8 -1
  142. package/node/components/panel/GridColumnsPanel.js +14 -0
  143. package/node/components/panel/filterPanel/GridFilterInputBoolean.js +6 -7
  144. package/node/components/panel/filterPanel/GridFilterInputDate.js +1 -6
  145. package/node/components/panel/filterPanel/GridFilterInputSingleSelect.js +5 -6
  146. package/node/components/panel/filterPanel/GridFilterInputValue.js +1 -6
  147. package/node/components/panel/filterPanel/GridFilterPanel.js +8 -0
  148. package/node/constants/gridClasses.js +1 -1
  149. package/node/constants/localeTextConstants.js +4 -4
  150. package/node/hooks/features/filter/useGridFilter.js +5 -4
  151. package/node/hooks/features/focus/useGridFocus.js +1 -0
  152. package/node/hooks/features/rows/useGridRowsMeta.js +1 -1
  153. package/node/hooks/features/sorting/useGridSorting.js +2 -1
  154. package/node/hooks/features/virtualization/useGridVirtualScroller.js +2 -2
  155. package/node/index.js +1 -1
  156. package/node/locales/arSD.js +4 -4
  157. package/node/locales/beBY.js +4 -4
  158. package/node/locales/bgBG.js +4 -4
  159. package/node/locales/csCZ.js +25 -27
  160. package/node/locales/daDK.js +4 -4
  161. package/node/locales/deDE.js +25 -27
  162. package/node/locales/elGR.js +4 -4
  163. package/node/locales/esES.js +4 -4
  164. package/node/locales/faIR.js +4 -4
  165. package/node/locales/fiFI.js +4 -4
  166. package/node/locales/heIL.js +4 -4
  167. package/node/locales/huHU.js +4 -4
  168. package/node/locales/itIT.js +4 -4
  169. package/node/locales/jaJP.js +4 -4
  170. package/node/locales/koKR.js +4 -4
  171. package/node/locales/nbNO.js +4 -4
  172. package/node/locales/plPL.js +4 -4
  173. package/node/locales/ptBR.js +4 -4
  174. package/node/locales/roRO.js +4 -4
  175. package/node/locales/ruRU.js +4 -4
  176. package/node/locales/skSK.js +4 -4
  177. package/node/locales/svSE.js +4 -4
  178. package/node/locales/trTR.js +16 -17
  179. package/node/locales/ukUA.js +4 -4
  180. package/node/locales/urPK.js +4 -4
  181. package/node/locales/viVN.js +4 -4
  182. package/node/locales/zhCN.js +4 -4
  183. package/node/locales/zhTW.js +4 -4
  184. package/node/utils/EventManager.js +2 -2
  185. package/package.json +1 -1
  186. package/themeAugmentation/overrides.d.ts +1 -1
  187. 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
- overflow: 'hidden',
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", "headerFilterMenu", "isFilterActive", "clearButton", "tabIndex", "label"];
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: 'flex-end',
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", "headerFilterMenu", "isFilterActive", "clearButton", "tabIndex", "disabled"];
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", "headerFilterMenu", "isFilterActive", "clearButton"];
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", "headerFilterMenu", "isFilterActive", "clearButton", "InputProps"];
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
  */
@@ -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>': 'Is greater than',
84
- 'headerFilterOperator>=': 'Is greater than or equal to',
85
- 'headerFilterOperator<': 'Is less than',
86
- 'headerFilterOperator<=': 'Is less than or equal to',
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
- React.useEffect(() => {
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
- React.useEffect(() => {
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
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-data-grid v6.6.0
2
+ * @mui/x-data-grid v6.7.0
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -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 (_ref57) {
21
+ })(function (_ref58) {
22
22
  var _$concat2, _$concat3, _extends2;
23
- var theme = _ref57.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
- overflow: 'hidden',
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.