@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/locales/jaJP.js CHANGED
@@ -83,10 +83,10 @@ const jaJPGrid = {
83
83
  // headerFilterOperatorIsAnyOf: 'Is any of',
84
84
  // 'headerFilterOperator=': 'Equals',
85
85
  // 'headerFilterOperator!=': 'Not equals',
86
- // 'headerFilterOperator>': 'Is greater than',
87
- // 'headerFilterOperator>=': 'Is greater than or equal to',
88
- // 'headerFilterOperator<': 'Is less than',
89
- // 'headerFilterOperator<=': 'Is less than or equal to',
86
+ // 'headerFilterOperator>': 'Greater than',
87
+ // 'headerFilterOperator>=': 'Greater than or equal to',
88
+ // 'headerFilterOperator<': 'Less than',
89
+ // 'headerFilterOperator<=': 'Less than or equal to',
90
90
 
91
91
  // Filter values text
92
92
  filterValueAny: 'いずれか',
package/locales/koKR.js CHANGED
@@ -83,10 +83,10 @@ const koKRGrid = {
83
83
  // headerFilterOperatorIsAnyOf: 'Is any of',
84
84
  // 'headerFilterOperator=': 'Equals',
85
85
  // 'headerFilterOperator!=': 'Not equals',
86
- // 'headerFilterOperator>': 'Is greater than',
87
- // 'headerFilterOperator>=': 'Is greater than or equal to',
88
- // 'headerFilterOperator<': 'Is less than',
89
- // 'headerFilterOperator<=': 'Is less than or equal to',
86
+ // 'headerFilterOperator>': 'Greater than',
87
+ // 'headerFilterOperator>=': 'Greater than or equal to',
88
+ // 'headerFilterOperator<': 'Less than',
89
+ // 'headerFilterOperator<=': 'Less than or equal to',
90
90
 
91
91
  // Filter values text
92
92
  filterValueAny: '아무값',
package/locales/nbNO.js CHANGED
@@ -83,10 +83,10 @@ const nbNOGrid = {
83
83
  // headerFilterOperatorIsAnyOf: 'Is any of',
84
84
  // 'headerFilterOperator=': 'Equals',
85
85
  // 'headerFilterOperator!=': 'Not equals',
86
- // 'headerFilterOperator>': 'Is greater than',
87
- // 'headerFilterOperator>=': 'Is greater than or equal to',
88
- // 'headerFilterOperator<': 'Is less than',
89
- // 'headerFilterOperator<=': 'Is less than or equal to',
86
+ // 'headerFilterOperator>': 'Greater than',
87
+ // 'headerFilterOperator>=': 'Greater than or equal to',
88
+ // 'headerFilterOperator<': 'Less than',
89
+ // 'headerFilterOperator<=': 'Less than or equal to',
90
90
 
91
91
  // Filter values text
92
92
  filterValueAny: 'noen',
package/locales/plPL.js CHANGED
@@ -83,10 +83,10 @@ const plPLGrid = {
83
83
  // headerFilterOperatorIsAnyOf: 'Is any of',
84
84
  // 'headerFilterOperator=': 'Equals',
85
85
  // 'headerFilterOperator!=': 'Not equals',
86
- // 'headerFilterOperator>': 'Is greater than',
87
- // 'headerFilterOperator>=': 'Is greater than or equal to',
88
- // 'headerFilterOperator<': 'Is less than',
89
- // 'headerFilterOperator<=': 'Is less than or equal to',
86
+ // 'headerFilterOperator>': 'Greater than',
87
+ // 'headerFilterOperator>=': 'Greater than or equal to',
88
+ // 'headerFilterOperator<': 'Less than',
89
+ // 'headerFilterOperator<=': 'Less than or equal to',
90
90
 
91
91
  // Filter values text
92
92
  filterValueAny: 'dowolny',
package/locales/ptBR.js CHANGED
@@ -83,10 +83,10 @@ const ptBRGrid = {
83
83
  // headerFilterOperatorIsAnyOf: 'Is any of',
84
84
  // 'headerFilterOperator=': 'Equals',
85
85
  // 'headerFilterOperator!=': 'Not equals',
86
- // 'headerFilterOperator>': 'Is greater than',
87
- // 'headerFilterOperator>=': 'Is greater than or equal to',
88
- // 'headerFilterOperator<': 'Is less than',
89
- // 'headerFilterOperator<=': 'Is less than or equal to',
86
+ // 'headerFilterOperator>': 'Greater than',
87
+ // 'headerFilterOperator>=': 'Greater than or equal to',
88
+ // 'headerFilterOperator<': 'Less than',
89
+ // 'headerFilterOperator<=': 'Less than or equal to',
90
90
 
91
91
  // Filter values text
92
92
  filterValueAny: 'qualquer',
package/locales/roRO.js CHANGED
@@ -83,10 +83,10 @@ const roROGrid = {
83
83
  // headerFilterOperatorIsAnyOf: 'Is any of',
84
84
  // 'headerFilterOperator=': 'Equals',
85
85
  // 'headerFilterOperator!=': 'Not equals',
86
- // 'headerFilterOperator>': 'Is greater than',
87
- // 'headerFilterOperator>=': 'Is greater than or equal to',
88
- // 'headerFilterOperator<': 'Is less than',
89
- // 'headerFilterOperator<=': 'Is less than or equal to',
86
+ // 'headerFilterOperator>': 'Greater than',
87
+ // 'headerFilterOperator>=': 'Greater than or equal to',
88
+ // 'headerFilterOperator<': 'Less than',
89
+ // 'headerFilterOperator<=': 'Less than or equal to',
90
90
 
91
91
  // Filter values text
92
92
  filterValueAny: 'Aleatoriu',
package/locales/ruRU.js CHANGED
@@ -92,10 +92,10 @@ const ruRUGrid = {
92
92
  // headerFilterOperatorIsAnyOf: 'Is any of',
93
93
  // 'headerFilterOperator=': 'Equals',
94
94
  // 'headerFilterOperator!=': 'Not equals',
95
- // 'headerFilterOperator>': 'Is greater than',
96
- // 'headerFilterOperator>=': 'Is greater than or equal to',
97
- // 'headerFilterOperator<': 'Is less than',
98
- // 'headerFilterOperator<=': 'Is less than or equal to',
95
+ // 'headerFilterOperator>': 'Greater than',
96
+ // 'headerFilterOperator>=': 'Greater than or equal to',
97
+ // 'headerFilterOperator<': 'Less than',
98
+ // 'headerFilterOperator<=': 'Less than or equal to',
99
99
 
100
100
  // Filter values text
101
101
  filterValueAny: 'любой',
package/locales/skSK.js CHANGED
@@ -91,10 +91,10 @@ const skSKGrid = {
91
91
  // headerFilterOperatorIsAnyOf: 'Is any of',
92
92
  // 'headerFilterOperator=': 'Equals',
93
93
  // 'headerFilterOperator!=': 'Not equals',
94
- // 'headerFilterOperator>': 'Is greater than',
95
- // 'headerFilterOperator>=': 'Is greater than or equal to',
96
- // 'headerFilterOperator<': 'Is less than',
97
- // 'headerFilterOperator<=': 'Is less than or equal to',
94
+ // 'headerFilterOperator>': 'Greater than',
95
+ // 'headerFilterOperator>=': 'Greater than or equal to',
96
+ // 'headerFilterOperator<': 'Less than',
97
+ // 'headerFilterOperator<=': 'Less than or equal to',
98
98
 
99
99
  // Filter values text
100
100
  filterValueAny: 'akýkoľvek',
package/locales/svSE.js CHANGED
@@ -83,10 +83,10 @@ const svSEGrid = {
83
83
  // headerFilterOperatorIsAnyOf: 'Is any of',
84
84
  // 'headerFilterOperator=': 'Equals',
85
85
  // 'headerFilterOperator!=': 'Not equals',
86
- // 'headerFilterOperator>': 'Is greater than',
87
- // 'headerFilterOperator>=': 'Is greater than or equal to',
88
- // 'headerFilterOperator<': 'Is less than',
89
- // 'headerFilterOperator<=': 'Is less than or equal to',
86
+ // 'headerFilterOperator>': 'Greater than',
87
+ // 'headerFilterOperator>=': 'Greater than or equal to',
88
+ // 'headerFilterOperator<': 'Less than',
89
+ // 'headerFilterOperator<=': 'Less than or equal to',
90
90
 
91
91
  // Filter values text
92
92
  filterValueAny: 'något',
package/locales/trTR.js CHANGED
@@ -60,18 +60,17 @@ const trTRGrid = {
60
60
  filterOperatorIsEmpty: 'boş',
61
61
  filterOperatorIsNotEmpty: 'dolu',
62
62
  filterOperatorIsAnyOf: 'herhangi biri',
63
- // 'filterOperator=': '=',
64
- // 'filterOperator!=': '!=',
65
- // 'filterOperator>': '>',
66
- // 'filterOperator>=': '>=',
67
- // 'filterOperator<': '<',
68
- // 'filterOperator<=': '<=',
69
-
63
+ 'filterOperator=': '=',
64
+ 'filterOperator!=': '!=',
65
+ 'filterOperator>': '>',
66
+ 'filterOperator>=': '>=',
67
+ 'filterOperator<': '<',
68
+ 'filterOperator<=': '<=',
70
69
  // Header filter operators text
71
- // headerFilterOperatorContains: 'Contains',
72
- // headerFilterOperatorEquals: 'Equals',
73
- // headerFilterOperatorStartsWith: 'Starts with',
74
- // headerFilterOperatorEndsWith: 'Ends with',
70
+ headerFilterOperatorContains: 'Şunu içerir',
71
+ headerFilterOperatorEquals: 'Şuna eşittir',
72
+ headerFilterOperatorStartsWith: 'Şununla başlar',
73
+ headerFilterOperatorEndsWith: 'Şununla biter',
75
74
  // headerFilterOperatorIs: 'Is',
76
75
  // headerFilterOperatorNot: 'Is not',
77
76
  // headerFilterOperatorAfter: 'Is after',
@@ -83,10 +82,10 @@ const trTRGrid = {
83
82
  // headerFilterOperatorIsAnyOf: 'Is any of',
84
83
  // 'headerFilterOperator=': 'Equals',
85
84
  // 'headerFilterOperator!=': 'Not equals',
86
- // 'headerFilterOperator>': 'Is greater than',
87
- // 'headerFilterOperator>=': 'Is greater than or equal to',
88
- // 'headerFilterOperator<': 'Is less than',
89
- // 'headerFilterOperator<=': 'Is less than or equal to',
85
+ // 'headerFilterOperator>': 'Greater than',
86
+ // 'headerFilterOperator>=': 'Greater than or equal to',
87
+ // 'headerFilterOperator<': 'Less than',
88
+ // 'headerFilterOperator<=': 'Less than or equal to',
90
89
 
91
90
  // Filter values text
92
91
  filterValueAny: 'herhangi',
@@ -96,9 +95,9 @@ const trTRGrid = {
96
95
  columnMenuLabel: 'Menü',
97
96
  columnMenuShowColumns: 'Sütunları göster',
98
97
  columnMenuManageColumns: 'Sütunları yönet',
99
- columnMenuFilter: 'Filtre uygula',
98
+ columnMenuFilter: 'Filtre Ekle',
100
99
  columnMenuHideColumn: 'Gizle',
101
- columnMenuUnsort: 'Sıralama',
100
+ columnMenuUnsort: 'Varsayılan Sıralama',
102
101
  columnMenuSortAsc: 'Sırala - Artan',
103
102
  columnMenuSortDesc: 'Sırala - Azalan',
104
103
  // Column header text
package/locales/ukUA.js CHANGED
@@ -97,10 +97,10 @@ const ukUAGrid = {
97
97
  // headerFilterOperatorIsAnyOf: 'Is any of',
98
98
  // 'headerFilterOperator=': 'Equals',
99
99
  // 'headerFilterOperator!=': 'Not equals',
100
- // 'headerFilterOperator>': 'Is greater than',
101
- // 'headerFilterOperator>=': 'Is greater than or equal to',
102
- // 'headerFilterOperator<': 'Is less than',
103
- // 'headerFilterOperator<=': 'Is less than or equal to',
100
+ // 'headerFilterOperator>': 'Greater than',
101
+ // 'headerFilterOperator>=': 'Greater than or equal to',
102
+ // 'headerFilterOperator<': 'Less than',
103
+ // 'headerFilterOperator<=': 'Less than or equal to',
104
104
 
105
105
  // Filter values text
106
106
  filterValueAny: 'будь-який',
package/locales/urPK.js CHANGED
@@ -83,10 +83,10 @@ const urPKGrid = {
83
83
  // headerFilterOperatorIsAnyOf: 'Is any of',
84
84
  // 'headerFilterOperator=': 'Equals',
85
85
  // 'headerFilterOperator!=': 'Not equals',
86
- // 'headerFilterOperator>': 'Is greater than',
87
- // 'headerFilterOperator>=': 'Is greater than or equal to',
88
- // 'headerFilterOperator<': 'Is less than',
89
- // 'headerFilterOperator<=': 'Is less than or equal to',
86
+ // 'headerFilterOperator>': 'Greater than',
87
+ // 'headerFilterOperator>=': 'Greater than or equal to',
88
+ // 'headerFilterOperator<': 'Less than',
89
+ // 'headerFilterOperator<=': 'Less than or equal to',
90
90
 
91
91
  // Filter values text
92
92
  filterValueAny: 'کوئی بھی',
package/locales/viVN.js CHANGED
@@ -83,10 +83,10 @@ const viVNGrid = {
83
83
  // headerFilterOperatorIsAnyOf: 'Is any of',
84
84
  // 'headerFilterOperator=': 'Equals',
85
85
  // 'headerFilterOperator!=': 'Not equals',
86
- // 'headerFilterOperator>': 'Is greater than',
87
- // 'headerFilterOperator>=': 'Is greater than or equal to',
88
- // 'headerFilterOperator<': 'Is less than',
89
- // 'headerFilterOperator<=': 'Is less than or equal to',
86
+ // 'headerFilterOperator>': 'Greater than',
87
+ // 'headerFilterOperator>=': 'Greater than or equal to',
88
+ // 'headerFilterOperator<': 'Less than',
89
+ // 'headerFilterOperator<=': 'Less than or equal to',
90
90
 
91
91
  // Filter values text
92
92
  filterValueAny: 'bất kỳ giá trị nào',
package/locales/zhCN.js CHANGED
@@ -83,10 +83,10 @@ const zhCNGrid = {
83
83
  // headerFilterOperatorIsAnyOf: 'Is any of',
84
84
  // 'headerFilterOperator=': 'Equals',
85
85
  // 'headerFilterOperator!=': 'Not equals',
86
- // 'headerFilterOperator>': 'Is greater than',
87
- // 'headerFilterOperator>=': 'Is greater than or equal to',
88
- // 'headerFilterOperator<': 'Is less than',
89
- // 'headerFilterOperator<=': 'Is less than or equal to',
86
+ // 'headerFilterOperator>': 'Greater than',
87
+ // 'headerFilterOperator>=': 'Greater than or equal to',
88
+ // 'headerFilterOperator<': 'Less than',
89
+ // 'headerFilterOperator<=': 'Less than or equal to',
90
90
 
91
91
  // Filter values text
92
92
  filterValueAny: '任何',
package/locales/zhTW.js CHANGED
@@ -83,10 +83,10 @@ const zhTWGrid = {
83
83
  // headerFilterOperatorIsAnyOf: 'Is any of',
84
84
  // 'headerFilterOperator=': 'Equals',
85
85
  // 'headerFilterOperator!=': 'Not equals',
86
- // 'headerFilterOperator>': 'Is greater than',
87
- // 'headerFilterOperator>=': 'Is greater than or equal to',
88
- // 'headerFilterOperator<': 'Is less than',
89
- // 'headerFilterOperator<=': 'Is less than or equal to',
86
+ // 'headerFilterOperator>': 'Greater than',
87
+ // 'headerFilterOperator>=': 'Greater than or equal to',
88
+ // 'headerFilterOperator<': 'Less than',
89
+ // 'headerFilterOperator<=': 'Less than or equal to',
90
90
 
91
91
  // Filter values text
92
92
  filterValueAny: '任何值',
@@ -214,6 +214,14 @@ export interface GridHeaderFilterEventLookup {
214
214
  params: GridColumnHeaderParams;
215
215
  event: React.KeyboardEvent<HTMLElement>;
216
216
  };
217
+ /**
218
+ * Fired when a column header filter is blurred.
219
+ * @ignore - do not document.
220
+ */
221
+ headerFilterBlur: {
222
+ params: GridColumnHeaderParams;
223
+ event: React.KeyboardEvent<HTMLElement>;
224
+ };
217
225
  }
218
226
  export interface GridColumnGroupHeaderEventLookup {
219
227
  /**
@@ -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
  },
@@ -194,8 +194,22 @@ process.env.NODE_ENV !== "production" ? GridColumnsPanel.propTypes = {
194
194
  // | These PropTypes are generated from the TypeScript type definitions |
195
195
  // | To update them edit the TypeScript types and run "yarn proptypes" |
196
196
  // ----------------------------------------------------------------------
197
+ /**
198
+ * If `true`, the column search field will be focused automatically.
199
+ * If `false`, the first column switch input will be focused automatically.
200
+ * This helps to avoid input keyboard panel to popup automatically on touch devices.
201
+ * @default true
202
+ */
197
203
  autoFocusSearchField: PropTypes.bool,
204
+ /**
205
+ * If `true`, the `Hide all` button will not be displayed.
206
+ * @default false
207
+ */
198
208
  disableHideAllButton: PropTypes.bool,
209
+ /**
210
+ * If `true`, the `Show all` button will be disabled
211
+ * @default false
212
+ */
199
213
  disableShowAllButton: PropTypes.bool,
200
214
  /**
201
215
  * Returns the list of togglable columns.
@@ -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
  const {
@@ -19,8 +22,6 @@ function GridFilterInputBoolean(props) {
19
22
  applyValue,
20
23
  apiRef,
21
24
  focusElementRef,
22
- headerFilterMenu,
23
- isFilterActive,
24
25
  clearButton,
25
26
  tabIndex,
26
27
  label: labelProp
@@ -61,7 +62,6 @@ function GridFilterInputBoolean(props) {
61
62
  variant: "standard",
62
63
  native: isSelectNative,
63
64
  displayEmpty: true,
64
- startAdornment: isFilterActive ? headerFilterMenu : null,
65
65
  inputProps: {
66
66
  ref: focusElementRef,
67
67
  tabIndex
@@ -97,7 +97,6 @@ process.env.NODE_ENV !== "production" ? GridFilterInputBoolean.propTypes = {
97
97
  focusElementRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({
98
98
  current: PropTypes.any.isRequired
99
99
  })]),
100
- headerFilterMenu: PropTypes.node,
101
100
  /**
102
101
  * It is `true` if the filter either has a value or an operator with no value
103
102
  * required is selected (e.g. `isEmpty`)
@@ -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';
@@ -15,8 +15,6 @@ function GridFilterInputDate(props) {
15
15
  apiRef,
16
16
  focusElementRef,
17
17
  InputProps,
18
- headerFilterMenu,
19
- isFilterActive,
20
18
  clearButton,
21
19
  tabIndex,
22
20
  disabled
@@ -66,8 +64,6 @@ function GridFilterInputDate(props) {
66
64
  fontSize: "small",
67
65
  color: "action"
68
66
  }) : clearButton
69
- } : {}, headerFilterMenu && isFilterActive ? {
70
- startAdornment: headerFilterMenu
71
67
  } : {}, {
72
68
  disabled
73
69
  }, InputProps, {
@@ -89,7 +85,6 @@ process.env.NODE_ENV !== "production" ? GridFilterInputDate.propTypes = {
89
85
  applyValue: PropTypes.func.isRequired,
90
86
  clearButton: PropTypes.node,
91
87
  focusElementRef: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.func, PropTypes.object]),
92
- headerFilterMenu: PropTypes.node,
93
88
  /**
94
89
  * It is `true` if the filter either has a value or an operator with no value
95
90
  * required is selected (e.g. `isEmpty`)
@@ -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
  const {
@@ -51,8 +54,6 @@ function GridFilterInputSingleSelect(props) {
51
54
  placeholder,
52
55
  tabIndex,
53
56
  label: labelProp,
54
- headerFilterMenu,
55
- isFilterActive,
56
57
  clearButton
57
58
  } = props,
58
59
  others = _objectWithoutPropertiesLoose(props, _excluded);
@@ -126,7 +127,6 @@ function GridFilterInputSingleSelect(props) {
126
127
  labelId: labelId,
127
128
  value: filterValueState,
128
129
  onChange: onFilterChange,
129
- startAdornment: isFilterActive ? headerFilterMenu : null,
130
130
  variant: "standard",
131
131
  type: type || 'text',
132
132
  inputProps: {
@@ -171,7 +171,6 @@ process.env.NODE_ENV !== "production" ? GridFilterInputSingleSelect.propTypes =
171
171
  * @returns {string} The value to be used.
172
172
  */
173
173
  getOptionValue: PropTypes.func,
174
- headerFilterMenu: PropTypes.node,
175
174
  /**
176
175
  * It is `true` if the filter either has a value or an operator with no value
177
176
  * required is selected (e.g. `isEmpty`)
@@ -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';
@@ -16,8 +16,6 @@ function GridFilterInputValue(props) {
16
16
  focusElementRef,
17
17
  tabIndex,
18
18
  disabled,
19
- headerFilterMenu,
20
- isFilterActive,
21
19
  clearButton,
22
20
  InputProps
23
21
  } = props,
@@ -63,8 +61,6 @@ function GridFilterInputValue(props) {
63
61
  fontSize: "small",
64
62
  color: "action"
65
63
  }) : clearButton
66
- } : {}, headerFilterMenu && isFilterActive ? {
67
- startAdornment: headerFilterMenu
68
64
  } : {}, {
69
65
  disabled
70
66
  }, InputProps, {
@@ -89,7 +85,6 @@ process.env.NODE_ENV !== "production" ? GridFilterInputValue.propTypes = {
89
85
  applyValue: PropTypes.func.isRequired,
90
86
  clearButton: PropTypes.node,
91
87
  focusElementRef: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.func, PropTypes.object]),
92
- headerFilterMenu: PropTypes.node,
93
88
  /**
94
89
  * It is `true` if the filter either has a value or an operator with no value
95
90
  * required is selected (e.g. `isEmpty`)
@@ -175,7 +175,15 @@ process.env.NODE_ENV !== "production" ? GridFilterPanel.propTypes = {
175
175
  * If not specified, the order is derived from the `columns` prop.
176
176
  */
177
177
  columnsSort: PropTypes.oneOf(['asc', 'desc']),
178
+ /**
179
+ * If `true`, the `Add filter` button will not be displayed.
180
+ * @default false
181
+ */
178
182
  disableAddFilterButton: PropTypes.bool,
183
+ /**
184
+ * If `true`, the `Remove all` button will be disabled
185
+ * @default false
186
+ */
179
187
  disableRemoveAllButton: PropTypes.bool,
180
188
  /**
181
189
  * Props passed to each filter form.
@@ -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';
@@ -330,7 +331,7 @@ export const useGridFilter = (apiRef, props) => {
330
331
  /**
331
332
  * EFFECTS
332
333
  */
333
- React.useEffect(() => {
334
+ useEnhancedEffect(() => {
334
335
  if (props.filterModel !== undefined) {
335
336
  apiRef.current.setFilterModel(props.filterModel);
336
337
  }
@@ -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';
@@ -238,7 +239,7 @@ export const useGridSorting = (apiRef, props) => {
238
239
  /**
239
240
  * EFFECTS
240
241
  */
241
- React.useEffect(() => {
242
+ useEnhancedEffect(() => {
242
243
  if (props.sortModel !== undefined) {
243
244
  apiRef.current.setSortModel(props.sortModel);
244
245
  }