@mui/x-data-grid 8.0.0-alpha.7 → 8.0.0-alpha.9

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 (393) hide show
  1. package/CHANGELOG.md +551 -3
  2. package/DataGrid/DataGrid.js +4 -5
  3. package/DataGrid/useDataGridComponent.d.ts +2 -1
  4. package/DataGrid/useDataGridComponent.js +1 -1
  5. package/components/GridApiContext.js +2 -0
  6. package/components/GridConfigurationContext.js +2 -0
  7. package/components/GridHeaders.js +2 -2
  8. package/components/GridRow.d.ts +5 -9
  9. package/components/GridRow.js +28 -78
  10. package/components/GridScrollArea.js +2 -0
  11. package/components/GridSkeletonLoadingOverlay.js +18 -18
  12. package/components/cell/GridCell.d.ts +9 -16
  13. package/components/cell/GridCell.js +17 -35
  14. package/components/columnHeaders/GridColumnGroupHeader.d.ts +5 -5
  15. package/components/columnHeaders/GridColumnGroupHeader.js +7 -10
  16. package/components/columnHeaders/GridColumnHeaderFilterIconButton.d.ts +3 -3
  17. package/components/columnHeaders/GridColumnHeaderFilterIconButton.js +20 -6
  18. package/components/columnHeaders/GridColumnHeaderItem.d.ts +5 -5
  19. package/components/columnHeaders/GridColumnHeaderItem.js +13 -12
  20. package/components/columnSelection/GridCellCheckboxRenderer.js +2 -2
  21. package/components/containers/GridRoot.d.ts +2 -2
  22. package/components/containers/GridRoot.js +14 -6
  23. package/components/containers/GridRootStyles.js +7 -0
  24. package/components/panel/GridPanel.js +2 -1
  25. package/components/panel/filterPanel/GridFilterInputBoolean.d.ts +1 -0
  26. package/components/panel/filterPanel/GridFilterInputBoolean.js +12 -16
  27. package/components/panel/filterPanel/GridFilterInputDate.d.ts +2 -1
  28. package/components/panel/filterPanel/GridFilterInputDate.js +32 -29
  29. package/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +1 -1
  30. package/components/panel/filterPanel/GridFilterInputMultipleValue.js +1 -1
  31. package/components/panel/filterPanel/GridFilterInputSingleSelect.d.ts +1 -0
  32. package/components/panel/filterPanel/GridFilterInputSingleSelect.js +13 -17
  33. package/components/panel/filterPanel/GridFilterInputValue.d.ts +1 -0
  34. package/components/panel/filterPanel/GridFilterInputValue.js +34 -28
  35. package/components/panel/filterPanel/GridFilterInputValueProps.d.ts +2 -1
  36. package/components/toolbar/GridToolbarColumnsButton.js +6 -1
  37. package/components/toolbar/GridToolbarFilterButton.js +6 -1
  38. package/components/virtualization/GridVirtualScrollbar.js +11 -12
  39. package/components/virtualization/GridVirtualScroller.js +4 -4
  40. package/constants/gridClasses.d.ts +12 -0
  41. package/constants/gridClasses.js +1 -1
  42. package/constants/localeTextConstants.js +1 -0
  43. package/context/GridContextProvider.d.ts +2 -1
  44. package/context/GridRootPropsContext.js +2 -0
  45. package/hooks/core/pipeProcessing/useGridPipeProcessing.d.ts +2 -2
  46. package/hooks/core/pipeProcessing/useGridRegisterPipeApplier.d.ts +2 -2
  47. package/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.d.ts +2 -2
  48. package/hooks/core/strategyProcessing/useGridRegisterStrategyProcessor.d.ts +2 -2
  49. package/hooks/core/strategyProcessing/useGridStrategyProcessing.d.ts +2 -2
  50. package/hooks/core/useGridApiInitialization.d.ts +2 -2
  51. package/hooks/core/useGridInitialization.d.ts +2 -2
  52. package/hooks/core/useGridIsRtl.d.ts +2 -2
  53. package/hooks/core/useGridLocaleText.d.ts +2 -2
  54. package/hooks/core/useGridLoggerFactory.d.ts +2 -2
  55. package/hooks/core/useGridRefs.d.ts +2 -2
  56. package/hooks/core/useGridStateInitialization.d.ts +2 -2
  57. package/hooks/features/clipboard/useGridClipboard.d.ts +2 -2
  58. package/hooks/features/columnGrouping/useGridColumnGrouping.d.ts +2 -2
  59. package/hooks/features/columnHeaders/useGridColumnHeaders.d.ts +5 -7
  60. package/hooks/features/columnHeaders/useGridColumnHeaders.js +34 -76
  61. package/hooks/features/columnMenu/useGridColumnMenu.d.ts +2 -2
  62. package/hooks/features/columnMenu/useGridColumnMenu.js +0 -2
  63. package/hooks/features/columnResize/useGridColumnResize.d.ts +2 -2
  64. package/hooks/features/columns/gridColumnsUtils.d.ts +4 -4
  65. package/hooks/features/columns/useGridColumnSpanning.d.ts +2 -2
  66. package/hooks/features/columns/useGridColumns.d.ts +2 -2
  67. package/hooks/features/density/useGridDensity.d.ts +2 -2
  68. package/hooks/features/dimensions/useGridDimensions.d.ts +2 -2
  69. package/hooks/features/dimensions/useGridDimensions.js +1 -3
  70. package/hooks/features/editing/useGridCellEditing.d.ts +2 -2
  71. package/hooks/features/editing/useGridCellEditing.js +1 -1
  72. package/hooks/features/editing/useGridEditing.d.ts +2 -2
  73. package/hooks/features/editing/useGridRowEditing.d.ts +2 -2
  74. package/hooks/features/editing/useGridRowEditing.js +1 -1
  75. package/hooks/features/events/useGridEvents.d.ts +2 -2
  76. package/hooks/features/export/serializers/csvSerializer.d.ts +2 -1
  77. package/hooks/features/export/useGridCsvExport.d.ts +2 -2
  78. package/hooks/features/export/useGridPrintExport.d.ts +2 -2
  79. package/hooks/features/export/utils.d.ts +2 -2
  80. package/hooks/features/filter/gridFilterSelector.d.ts +1 -1
  81. package/hooks/features/filter/gridFilterSelector.js +6 -1
  82. package/hooks/features/filter/gridFilterUtils.d.ts +7 -7
  83. package/hooks/features/filter/gridFilterUtils.js +3 -3
  84. package/hooks/features/filter/useGridFilter.d.ts +2 -2
  85. package/hooks/features/focus/useGridFocus.d.ts +2 -2
  86. package/hooks/features/headerFiltering/useGridHeaderFiltering.d.ts +2 -2
  87. package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.d.ts +2 -2
  88. package/hooks/features/keyboardNavigation/utils.d.ts +3 -3
  89. package/hooks/features/listView/useGridListView.d.ts +2 -2
  90. package/hooks/features/pagination/gridPaginationInterfaces.d.ts +3 -0
  91. package/hooks/features/pagination/gridPaginationSelector.d.ts +21 -2
  92. package/hooks/features/pagination/gridPaginationSelector.js +39 -1
  93. package/hooks/features/pagination/useGridPagination.d.ts +3 -3
  94. package/hooks/features/pagination/useGridPagination.js +5 -3
  95. package/hooks/features/pagination/useGridPaginationMeta.d.ts +2 -2
  96. package/hooks/features/pagination/useGridPaginationModel.d.ts +2 -2
  97. package/hooks/features/pagination/useGridPaginationModel.js +23 -1
  98. package/hooks/features/pagination/useGridRowCount.d.ts +2 -2
  99. package/hooks/features/preferencesPanel/gridPreferencePanelSelector.d.ts +1 -0
  100. package/hooks/features/preferencesPanel/gridPreferencePanelSelector.js +8 -1
  101. package/hooks/features/preferencesPanel/index.d.ts +1 -1
  102. package/hooks/features/preferencesPanel/index.js +1 -1
  103. package/hooks/features/preferencesPanel/useGridPreferencesPanel.d.ts +2 -2
  104. package/hooks/features/preferencesPanel/useGridPreferencesPanel.js +14 -38
  105. package/hooks/features/rowSelection/useGridRowSelection.d.ts +2 -2
  106. package/hooks/features/rowSelection/useGridRowSelectionPreProcessors.d.ts +2 -2
  107. package/hooks/features/rowSelection/utils.d.ts +3 -2
  108. package/hooks/features/rows/gridRowSpanningUtils.d.ts +2 -2
  109. package/hooks/features/rows/gridRowsSelector.js +1 -1
  110. package/hooks/features/rows/gridRowsUtils.d.ts +4 -4
  111. package/hooks/features/rows/useGridParamsApi.d.ts +2 -2
  112. package/hooks/features/rows/useGridRowSpanning.d.ts +2 -2
  113. package/hooks/features/rows/useGridRows.d.ts +2 -2
  114. package/hooks/features/rows/useGridRows.js +2 -2
  115. package/hooks/features/rows/useGridRowsMeta.d.ts +2 -2
  116. package/hooks/features/rows/useGridRowsPreProcessors.d.ts +2 -2
  117. package/hooks/features/scroll/useGridScroll.d.ts +2 -2
  118. package/hooks/features/sorting/gridSortingUtils.d.ts +3 -3
  119. package/hooks/features/sorting/gridSortingUtils.js +2 -2
  120. package/hooks/features/sorting/useGridSorting.d.ts +2 -2
  121. package/hooks/features/statePersistence/useGridStatePersistence.d.ts +2 -2
  122. package/hooks/features/virtualization/gridFocusedVirtualCellSelector.d.ts +6 -0
  123. package/hooks/features/virtualization/gridFocusedVirtualCellSelector.js +42 -0
  124. package/hooks/features/virtualization/useGridVirtualScroller.d.ts +2 -1
  125. package/hooks/features/virtualization/useGridVirtualScroller.js +92 -50
  126. package/hooks/features/virtualization/useGridVirtualization.d.ts +2 -2
  127. package/hooks/utils/useGridApiContext.d.ts +2 -2
  128. package/hooks/utils/useGridApiEventHandler.d.ts +4 -4
  129. package/hooks/utils/useGridApiMethod.d.ts +2 -2
  130. package/hooks/utils/useGridApiRef.d.ts +2 -2
  131. package/hooks/utils/useGridApiRef.js +3 -1
  132. package/hooks/utils/useGridInitializeState.d.ts +3 -3
  133. package/hooks/utils/useGridLogger.d.ts +2 -2
  134. package/hooks/utils/useGridNativeEventListener.d.ts +2 -1
  135. package/hooks/utils/useGridPrivateApiContext.d.ts +2 -1
  136. package/hooks/utils/useGridSelector.d.ts +2 -2
  137. package/hooks/utils/useGridVisibleRows.d.ts +8 -6
  138. package/hooks/utils/useGridVisibleRows.js +5 -28
  139. package/index.js +1 -1
  140. package/internals/constants.d.ts +6 -0
  141. package/internals/constants.js +8 -1
  142. package/internals/index.d.ts +1 -0
  143. package/internals/index.js +1 -0
  144. package/internals/utils/attachPinnedStyle.d.ts +2 -0
  145. package/internals/utils/attachPinnedStyle.js +9 -0
  146. package/internals/utils/getPinnedCellOffset.d.ts +3 -3
  147. package/internals/utils/getPinnedCellOffset.js +6 -7
  148. package/internals/utils/index.d.ts +1 -0
  149. package/internals/utils/index.js +2 -1
  150. package/locales/arSD.js +2 -0
  151. package/locales/beBY.js +1 -0
  152. package/locales/bgBG.js +2 -0
  153. package/locales/csCZ.js +2 -0
  154. package/locales/daDK.js +2 -0
  155. package/locales/deDE.js +2 -0
  156. package/locales/elGR.js +2 -0
  157. package/locales/esES.js +2 -0
  158. package/locales/faIR.js +7 -6
  159. package/locales/fiFI.js +2 -0
  160. package/locales/frFR.js +2 -0
  161. package/locales/heIL.js +2 -0
  162. package/locales/hrHR.js +2 -0
  163. package/locales/huHU.js +2 -0
  164. package/locales/isIS.js +2 -0
  165. package/locales/itIT.js +2 -0
  166. package/locales/jaJP.js +2 -0
  167. package/locales/koKR.js +2 -0
  168. package/locales/nbNO.js +2 -0
  169. package/locales/nlNL.js +2 -0
  170. package/locales/nnNO.js +2 -0
  171. package/locales/plPL.js +2 -0
  172. package/locales/ptBR.js +2 -0
  173. package/locales/ptPT.js +2 -0
  174. package/locales/roRO.js +2 -0
  175. package/locales/ruRU.js +2 -0
  176. package/locales/skSK.js +2 -0
  177. package/locales/svSE.js +2 -0
  178. package/locales/trTR.js +2 -0
  179. package/locales/ukUA.js +2 -0
  180. package/locales/urPK.js +11 -10
  181. package/locales/viVN.js +2 -0
  182. package/locales/zhCN.js +2 -0
  183. package/locales/zhHK.js +2 -0
  184. package/locales/zhTW.js +2 -0
  185. package/material/index.js +2 -1
  186. package/models/api/gridLocaleTextApi.d.ts +1 -0
  187. package/models/colDef/gridColDef.d.ts +9 -8
  188. package/models/events/gridEventLookup.d.ts +6 -1
  189. package/models/gridExport.d.ts +2 -2
  190. package/models/gridFilterOperator.d.ts +2 -1
  191. package/models/gridIconSlotsComponent.d.ts +5 -0
  192. package/models/gridStateCommunity.d.ts +4 -0
  193. package/models/props/DataGridProps.d.ts +2 -1
  194. package/modern/DataGrid/DataGrid.js +4 -5
  195. package/modern/DataGrid/useDataGridComponent.js +1 -1
  196. package/modern/components/GridApiContext.js +2 -0
  197. package/modern/components/GridConfigurationContext.js +2 -0
  198. package/modern/components/GridHeaders.js +2 -2
  199. package/modern/components/GridRow.js +28 -78
  200. package/modern/components/GridScrollArea.js +2 -0
  201. package/modern/components/GridSkeletonLoadingOverlay.js +18 -18
  202. package/modern/components/cell/GridCell.js +17 -35
  203. package/modern/components/columnHeaders/GridColumnGroupHeader.js +7 -10
  204. package/modern/components/columnHeaders/GridColumnHeaderFilterIconButton.js +20 -6
  205. package/modern/components/columnHeaders/GridColumnHeaderItem.js +13 -12
  206. package/modern/components/columnSelection/GridCellCheckboxRenderer.js +2 -2
  207. package/modern/components/containers/GridRoot.js +14 -6
  208. package/modern/components/containers/GridRootStyles.js +7 -0
  209. package/modern/components/panel/GridPanel.js +2 -1
  210. package/modern/components/panel/filterPanel/GridFilterInputBoolean.js +12 -16
  211. package/modern/components/panel/filterPanel/GridFilterInputDate.js +32 -29
  212. package/modern/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +1 -1
  213. package/modern/components/panel/filterPanel/GridFilterInputMultipleValue.js +1 -1
  214. package/modern/components/panel/filterPanel/GridFilterInputSingleSelect.js +13 -17
  215. package/modern/components/panel/filterPanel/GridFilterInputValue.js +34 -28
  216. package/modern/components/toolbar/GridToolbarColumnsButton.js +6 -1
  217. package/modern/components/toolbar/GridToolbarFilterButton.js +6 -1
  218. package/modern/components/virtualization/GridVirtualScrollbar.js +11 -12
  219. package/modern/components/virtualization/GridVirtualScroller.js +4 -4
  220. package/modern/constants/gridClasses.js +1 -1
  221. package/modern/constants/localeTextConstants.js +1 -0
  222. package/modern/context/GridRootPropsContext.js +2 -0
  223. package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +34 -76
  224. package/modern/hooks/features/columnMenu/useGridColumnMenu.js +0 -2
  225. package/modern/hooks/features/dimensions/useGridDimensions.js +1 -3
  226. package/modern/hooks/features/editing/useGridCellEditing.js +1 -1
  227. package/modern/hooks/features/editing/useGridRowEditing.js +1 -1
  228. package/modern/hooks/features/filter/gridFilterSelector.js +6 -1
  229. package/modern/hooks/features/filter/gridFilterUtils.js +3 -3
  230. package/modern/hooks/features/pagination/gridPaginationSelector.js +39 -1
  231. package/modern/hooks/features/pagination/useGridPagination.js +5 -3
  232. package/modern/hooks/features/pagination/useGridPaginationModel.js +23 -1
  233. package/modern/hooks/features/preferencesPanel/gridPreferencePanelSelector.js +8 -1
  234. package/modern/hooks/features/preferencesPanel/index.js +1 -1
  235. package/modern/hooks/features/preferencesPanel/useGridPreferencesPanel.js +14 -38
  236. package/modern/hooks/features/rows/gridRowsSelector.js +1 -1
  237. package/modern/hooks/features/rows/useGridRows.js +2 -2
  238. package/modern/hooks/features/sorting/gridSortingUtils.js +2 -2
  239. package/modern/hooks/features/virtualization/gridFocusedVirtualCellSelector.js +42 -0
  240. package/modern/hooks/features/virtualization/useGridVirtualScroller.js +92 -50
  241. package/modern/hooks/utils/useGridApiRef.js +3 -1
  242. package/modern/hooks/utils/useGridVisibleRows.js +5 -28
  243. package/modern/index.js +1 -1
  244. package/modern/internals/constants.js +8 -1
  245. package/modern/internals/index.js +1 -0
  246. package/modern/internals/utils/attachPinnedStyle.js +9 -0
  247. package/modern/internals/utils/getPinnedCellOffset.js +6 -7
  248. package/modern/internals/utils/index.js +2 -1
  249. package/modern/locales/arSD.js +2 -0
  250. package/modern/locales/beBY.js +1 -0
  251. package/modern/locales/bgBG.js +2 -0
  252. package/modern/locales/csCZ.js +2 -0
  253. package/modern/locales/daDK.js +2 -0
  254. package/modern/locales/deDE.js +2 -0
  255. package/modern/locales/elGR.js +2 -0
  256. package/modern/locales/esES.js +2 -0
  257. package/modern/locales/faIR.js +7 -6
  258. package/modern/locales/fiFI.js +2 -0
  259. package/modern/locales/frFR.js +2 -0
  260. package/modern/locales/heIL.js +2 -0
  261. package/modern/locales/hrHR.js +2 -0
  262. package/modern/locales/huHU.js +2 -0
  263. package/modern/locales/isIS.js +2 -0
  264. package/modern/locales/itIT.js +2 -0
  265. package/modern/locales/jaJP.js +2 -0
  266. package/modern/locales/koKR.js +2 -0
  267. package/modern/locales/nbNO.js +2 -0
  268. package/modern/locales/nlNL.js +2 -0
  269. package/modern/locales/nnNO.js +2 -0
  270. package/modern/locales/plPL.js +2 -0
  271. package/modern/locales/ptBR.js +2 -0
  272. package/modern/locales/ptPT.js +2 -0
  273. package/modern/locales/roRO.js +2 -0
  274. package/modern/locales/ruRU.js +2 -0
  275. package/modern/locales/skSK.js +2 -0
  276. package/modern/locales/svSE.js +2 -0
  277. package/modern/locales/trTR.js +2 -0
  278. package/modern/locales/ukUA.js +2 -0
  279. package/modern/locales/urPK.js +11 -10
  280. package/modern/locales/viVN.js +2 -0
  281. package/modern/locales/zhCN.js +2 -0
  282. package/modern/locales/zhHK.js +2 -0
  283. package/modern/locales/zhTW.js +2 -0
  284. package/modern/material/index.js +2 -1
  285. package/modern/utils/cellBorderUtils.js +5 -5
  286. package/modern/utils/domUtils.js +7 -2
  287. package/modern/utils/isJSDOM.js +1 -0
  288. package/modern/utils/rtlFlipSide.js +22 -0
  289. package/node/DataGrid/DataGrid.js +2 -3
  290. package/node/DataGrid/useDataGridComponent.js +1 -1
  291. package/node/components/GridApiContext.js +1 -0
  292. package/node/components/GridConfigurationContext.js +1 -0
  293. package/node/components/GridHeaders.js +2 -2
  294. package/node/components/GridRow.js +26 -77
  295. package/node/components/GridScrollArea.js +1 -0
  296. package/node/components/GridSkeletonLoadingOverlay.js +17 -17
  297. package/node/components/cell/GridCell.js +18 -36
  298. package/node/components/columnHeaders/GridColumnGroupHeader.js +7 -10
  299. package/node/components/columnHeaders/GridColumnHeaderFilterIconButton.js +19 -5
  300. package/node/components/columnHeaders/GridColumnHeaderItem.js +13 -12
  301. package/node/components/columnSelection/GridCellCheckboxRenderer.js +1 -1
  302. package/node/components/containers/GridRoot.js +14 -6
  303. package/node/components/containers/GridRootStyles.js +7 -0
  304. package/node/components/panel/GridPanel.js +2 -1
  305. package/node/components/panel/filterPanel/GridFilterInputBoolean.js +12 -16
  306. package/node/components/panel/filterPanel/GridFilterInputDate.js +31 -28
  307. package/node/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +1 -1
  308. package/node/components/panel/filterPanel/GridFilterInputMultipleValue.js +1 -1
  309. package/node/components/panel/filterPanel/GridFilterInputSingleSelect.js +13 -17
  310. package/node/components/panel/filterPanel/GridFilterInputValue.js +33 -27
  311. package/node/components/toolbar/GridToolbarColumnsButton.js +6 -1
  312. package/node/components/toolbar/GridToolbarFilterButton.js +6 -1
  313. package/node/components/virtualization/GridVirtualScrollbar.js +11 -12
  314. package/node/components/virtualization/GridVirtualScroller.js +4 -4
  315. package/node/constants/gridClasses.js +1 -1
  316. package/node/constants/localeTextConstants.js +1 -0
  317. package/node/context/GridRootPropsContext.js +1 -0
  318. package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +32 -74
  319. package/node/hooks/features/columnMenu/useGridColumnMenu.js +0 -2
  320. package/node/hooks/features/dimensions/useGridDimensions.js +3 -5
  321. package/node/hooks/features/editing/useGridCellEditing.js +1 -1
  322. package/node/hooks/features/editing/useGridRowEditing.js +1 -1
  323. package/node/hooks/features/filter/gridFilterSelector.js +6 -1
  324. package/node/hooks/features/filter/gridFilterUtils.js +3 -3
  325. package/node/hooks/features/pagination/gridPaginationSelector.js +41 -3
  326. package/node/hooks/features/pagination/useGridPagination.js +5 -3
  327. package/node/hooks/features/pagination/useGridPaginationModel.js +23 -1
  328. package/node/hooks/features/preferencesPanel/gridPreferencePanelSelector.js +9 -2
  329. package/node/hooks/features/preferencesPanel/index.js +11 -10
  330. package/node/hooks/features/preferencesPanel/useGridPreferencesPanel.js +14 -38
  331. package/node/hooks/features/rows/gridRowsSelector.js +1 -1
  332. package/node/hooks/features/rows/useGridRows.js +1 -1
  333. package/node/hooks/features/sorting/gridSortingUtils.js +2 -2
  334. package/node/hooks/features/virtualization/gridFocusedVirtualCellSelector.js +49 -0
  335. package/node/hooks/features/virtualization/useGridVirtualScroller.js +94 -52
  336. package/node/hooks/utils/useGridApiRef.js +3 -1
  337. package/node/hooks/utils/useGridVisibleRows.js +3 -28
  338. package/node/index.js +1 -1
  339. package/node/internals/constants.js +9 -2
  340. package/node/internals/index.js +12 -0
  341. package/node/internals/utils/attachPinnedStyle.js +15 -0
  342. package/node/internals/utils/getPinnedCellOffset.js +6 -7
  343. package/node/internals/utils/index.js +11 -0
  344. package/node/locales/arSD.js +2 -0
  345. package/node/locales/beBY.js +1 -0
  346. package/node/locales/bgBG.js +2 -0
  347. package/node/locales/csCZ.js +2 -0
  348. package/node/locales/daDK.js +2 -0
  349. package/node/locales/deDE.js +2 -0
  350. package/node/locales/elGR.js +2 -0
  351. package/node/locales/esES.js +2 -0
  352. package/node/locales/faIR.js +7 -6
  353. package/node/locales/fiFI.js +2 -0
  354. package/node/locales/frFR.js +2 -0
  355. package/node/locales/heIL.js +2 -0
  356. package/node/locales/hrHR.js +2 -0
  357. package/node/locales/huHU.js +2 -0
  358. package/node/locales/isIS.js +2 -0
  359. package/node/locales/itIT.js +2 -0
  360. package/node/locales/jaJP.js +2 -0
  361. package/node/locales/koKR.js +2 -0
  362. package/node/locales/nbNO.js +2 -0
  363. package/node/locales/nlNL.js +2 -0
  364. package/node/locales/nnNO.js +2 -0
  365. package/node/locales/plPL.js +2 -0
  366. package/node/locales/ptBR.js +2 -0
  367. package/node/locales/ptPT.js +2 -0
  368. package/node/locales/roRO.js +2 -0
  369. package/node/locales/ruRU.js +2 -0
  370. package/node/locales/skSK.js +2 -0
  371. package/node/locales/svSE.js +2 -0
  372. package/node/locales/trTR.js +2 -0
  373. package/node/locales/ukUA.js +2 -0
  374. package/node/locales/urPK.js +11 -10
  375. package/node/locales/viVN.js +2 -0
  376. package/node/locales/zhCN.js +2 -0
  377. package/node/locales/zhHK.js +2 -0
  378. package/node/locales/zhTW.js +2 -0
  379. package/node/material/index.js +2 -1
  380. package/node/utils/cellBorderUtils.js +5 -5
  381. package/node/utils/domUtils.js +7 -2
  382. package/node/utils/isJSDOM.js +7 -0
  383. package/node/utils/rtlFlipSide.js +29 -0
  384. package/package.json +2 -2
  385. package/utils/cellBorderUtils.d.ts +3 -3
  386. package/utils/cellBorderUtils.js +5 -5
  387. package/utils/createSelector.d.ts +2 -2
  388. package/utils/domUtils.js +7 -2
  389. package/utils/getPublicApiRef.d.ts +2 -1
  390. package/utils/isJSDOM.d.ts +1 -0
  391. package/utils/isJSDOM.js +1 -0
  392. package/utils/rtlFlipSide.d.ts +2 -0
  393. package/utils/rtlFlipSide.js +22 -0
@@ -12,6 +12,7 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
12
12
  var _clsx = _interopRequireDefault(require("clsx"));
13
13
  var _utils = require("@mui/utils");
14
14
  var _fastMemo = require("@mui/x-internals/fastMemo");
15
+ var _RtlProvider = require("@mui/system/RtlProvider");
15
16
  var _useGridPrivateApiContext = require("../../hooks/utils/useGridPrivateApiContext");
16
17
  var _ColumnHeaderMenuIcon = require("./ColumnHeaderMenuIcon");
17
18
  var _GridColumnHeaderMenu = require("../menu/columnMenu/GridColumnHeaderMenu");
@@ -19,7 +20,8 @@ var _gridClasses = require("../../constants/gridClasses");
19
20
  var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
20
21
  var _GridGenericColumnHeaderItem = require("./GridGenericColumnHeaderItem");
21
22
  var _domUtils = require("../../utils/domUtils");
22
- var _cellBorderUtils = require("../../utils/cellBorderUtils");
23
+ var _constants = require("../../internals/constants");
24
+ var _utils2 = require("../../internals/utils");
23
25
  var _jsxRuntime = require("react/jsx-runtime");
24
26
  const useUtilityClasses = ownerState => {
25
27
  const {
@@ -39,7 +41,7 @@ const useUtilityClasses = ownerState => {
39
41
  // todo refactor to a prop on col isNumeric or ?? ie: coltype===price wont work
40
42
  const isColumnNumeric = colDef.type === 'number';
41
43
  const slots = {
42
- root: ['columnHeader', colDef.headerAlign === 'left' && 'columnHeader--alignLeft', colDef.headerAlign === 'center' && 'columnHeader--alignCenter', colDef.headerAlign === 'right' && 'columnHeader--alignRight', colDef.sortable && 'columnHeader--sortable', isDragging && 'columnHeader--moving', isColumnSorted && 'columnHeader--sorted', isColumnFiltered && 'columnHeader--filtered', isColumnNumeric && 'columnHeader--numeric', 'withBorderColor', showRightBorder && 'columnHeader--withRightBorder', showLeftBorder && 'columnHeader--withLeftBorder', pinnedPosition === 'left' && 'columnHeader--pinnedLeft', pinnedPosition === 'right' && 'columnHeader--pinnedRight',
44
+ root: ['columnHeader', colDef.headerAlign === 'left' && 'columnHeader--alignLeft', colDef.headerAlign === 'center' && 'columnHeader--alignCenter', colDef.headerAlign === 'right' && 'columnHeader--alignRight', colDef.sortable && 'columnHeader--sortable', isDragging && 'columnHeader--moving', isColumnSorted && 'columnHeader--sorted', isColumnFiltered && 'columnHeader--filtered', isColumnNumeric && 'columnHeader--numeric', 'withBorderColor', showRightBorder && 'columnHeader--withRightBorder', showLeftBorder && 'columnHeader--withLeftBorder', pinnedPosition === _constants.PinnedColumnPosition.LEFT && 'columnHeader--pinnedLeft', pinnedPosition === _constants.PinnedColumnPosition.RIGHT && 'columnHeader--pinnedRight',
43
45
  // TODO: Remove classes below and restore `:has` selectors when they are supported in jsdom
44
46
  // See https://github.com/mui/mui-x/pull/14559
45
47
  isLastUnpinned && 'columnHeader--lastUnpinned', isSiblingFocused && 'columnHeader--siblingFocused'],
@@ -64,14 +66,14 @@ function GridColumnHeaderItem(props) {
64
66
  tabIndex,
65
67
  disableReorder,
66
68
  separatorSide,
67
- style,
69
+ showLeftBorder,
70
+ showRightBorder,
68
71
  pinnedPosition,
69
- indexInSection,
70
- sectionLength,
71
- gridHasFiller
72
+ pinnedOffset
72
73
  } = props;
73
74
  const apiRef = (0, _useGridPrivateApiContext.useGridPrivateApiContext)();
74
75
  const rootProps = (0, _useGridRootProps.useGridRootProps)();
76
+ const isRtl = (0, _RtlProvider.useRtl)();
75
77
  const headerCellRef = React.useRef(null);
76
78
  const columnMenuId = (0, _utils.unstable_useId)();
77
79
  const columnMenuButtonId = (0, _utils.unstable_useId)();
@@ -82,8 +84,6 @@ function GridColumnHeaderItem(props) {
82
84
  if (colDef.renderHeader) {
83
85
  headerComponent = colDef.renderHeader(apiRef.current.getColumnHeaderParams(colDef.field));
84
86
  }
85
- const showLeftBorder = (0, _cellBorderUtils.shouldCellShowLeftBorder)(pinnedPosition, indexInSection);
86
- const showRightBorder = (0, _cellBorderUtils.shouldCellShowRightBorder)(pinnedPosition, indexInSection, sectionLength, rootProps.showColumnVerticalBorder, gridHasFiller);
87
87
  const ownerState = (0, _extends2.default)({}, props, {
88
88
  classes: rootProps.classes,
89
89
  showRightBorder,
@@ -179,6 +179,7 @@ function GridColumnHeaderItem(props) {
179
179
  colDef
180
180
  }) : colDef.headerClassName;
181
181
  const label = colDef.headerName ?? colDef.field;
182
+ const style = React.useMemo(() => (0, _utils2.attachPinnedStyle)((0, _extends2.default)({}, props.style), isRtl, pinnedPosition, pinnedOffset), [pinnedPosition, pinnedOffset, props.style, isRtl]);
182
183
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridGenericColumnHeaderItem.GridGenericColumnHeaderItem, (0, _extends2.default)({
183
184
  ref: headerCellRef,
184
185
  classes: classes,
@@ -217,18 +218,18 @@ process.env.NODE_ENV !== "production" ? GridColumnHeaderItem.propTypes = {
217
218
  columnMenuOpen: _propTypes.default.bool.isRequired,
218
219
  disableReorder: _propTypes.default.bool,
219
220
  filterItemsCounter: _propTypes.default.number,
220
- gridHasFiller: _propTypes.default.bool.isRequired,
221
221
  hasFocus: _propTypes.default.bool,
222
222
  headerHeight: _propTypes.default.number.isRequired,
223
- indexInSection: _propTypes.default.number.isRequired,
224
223
  isDragging: _propTypes.default.bool.isRequired,
225
224
  isLast: _propTypes.default.bool.isRequired,
226
225
  isLastUnpinned: _propTypes.default.bool.isRequired,
227
226
  isResizing: _propTypes.default.bool.isRequired,
228
227
  isSiblingFocused: _propTypes.default.bool.isRequired,
229
- pinnedPosition: _propTypes.default.oneOf(['left', 'right']),
230
- sectionLength: _propTypes.default.number.isRequired,
228
+ pinnedOffset: _propTypes.default.number,
229
+ pinnedPosition: _propTypes.default.oneOf([0, 1, 2, 3]),
231
230
  separatorSide: _propTypes.default.oneOf(['left', 'right']),
231
+ showLeftBorder: _propTypes.default.bool.isRequired,
232
+ showRightBorder: _propTypes.default.bool.isRequired,
232
233
  sortDirection: _propTypes.default.oneOf(['asc', 'desc']),
233
234
  sortIndex: _propTypes.default.number,
234
235
  style: _propTypes.default.object,
@@ -84,7 +84,7 @@ const GridCellCheckboxForwardRef = exports.GridCellCheckboxForwardRef = (0, _for
84
84
  const {
85
85
  isIndeterminate,
86
86
  isChecked
87
- } = (0, _useGridSelector.useGridSelector)(apiRef, checkboxPropsSelector);
87
+ } = (0, _useGridSelector.useGridSelector)(apiRef, checkboxPropsSelector, undefined, _useGridSelector.objectShallowCompare);
88
88
  if (rowNode.type === 'footer' || rowNode.type === 'pinnedRow') {
89
89
  return null;
90
90
  }
@@ -12,6 +12,7 @@ var React = _interopRequireWildcard(require("react"));
12
12
  var _propTypes = _interopRequireDefault(require("prop-types"));
13
13
  var _clsx = _interopRequireDefault(require("clsx"));
14
14
  var _utils = require("@mui/utils");
15
+ var _fastMemo = require("@mui/x-internals/fastMemo");
15
16
  var _forwardRef = require("@mui/x-internals/forwardRef");
16
17
  var _GridRootStyles = require("./GridRootStyles");
17
18
  var _useGridSelector = require("../../hooks/utils/useGridSelector");
@@ -19,8 +20,10 @@ var _useGridPrivateApiContext = require("../../hooks/utils/useGridPrivateApiCont
19
20
  var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
20
21
  var _gridClasses = require("../../constants/gridClasses");
21
22
  var _densitySelector = require("../../hooks/features/density/densitySelector");
23
+ var _GridHeader = require("../GridHeader");
24
+ var _base = require("../base");
22
25
  var _jsxRuntime = require("react/jsx-runtime");
23
- const _excluded = ["className"];
26
+ const _excluded = ["className", "children"];
24
27
  const useUtilityClasses = (ownerState, density) => {
25
28
  const {
26
29
  autoHeight,
@@ -32,10 +35,11 @@ const useUtilityClasses = (ownerState, density) => {
32
35
  };
33
36
  return (0, _utils.unstable_composeClasses)(slots, _gridClasses.getDataGridUtilityClass, classes);
34
37
  };
35
- const GridRoot = exports.GridRoot = (0, _forwardRef.forwardRef)(function GridRoot(props, ref) {
38
+ const GridRoot = (0, _forwardRef.forwardRef)(function GridRoot(props, ref) {
36
39
  const rootProps = (0, _useGridRootProps.useGridRootProps)();
37
40
  const {
38
- className
41
+ className,
42
+ children
39
43
  } = props,
40
44
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
41
45
  const apiRef = (0, _useGridPrivateApiContext.useGridPrivateApiContext)();
@@ -53,11 +57,14 @@ const GridRoot = exports.GridRoot = (0, _forwardRef.forwardRef)(function GridRoo
53
57
  if (!mountedState) {
54
58
  return null;
55
59
  }
56
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridRootStyles.GridRootStyles, (0, _extends2.default)({
60
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_GridRootStyles.GridRootStyles, (0, _extends2.default)({
57
61
  className: (0, _clsx.default)(classes.root, className),
58
62
  ownerState: ownerState
59
63
  }, other, {
60
- ref: handleRef
64
+ ref: handleRef,
65
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_GridHeader.GridHeader, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_base.GridBody, {
66
+ children: children
67
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_base.GridFooterPlaceholder, {})]
61
68
  }));
62
69
  });
63
70
  process.env.NODE_ENV !== "production" ? GridRoot.propTypes = {
@@ -69,4 +76,5 @@ process.env.NODE_ENV !== "production" ? GridRoot.propTypes = {
69
76
  * The system prop that allows defining system overrides as well as additional CSS styles.
70
77
  */
71
78
  sx: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object, _propTypes.default.bool])), _propTypes.default.func, _propTypes.default.object])
72
- } : void 0;
79
+ } : void 0;
80
+ const MemoizedGridRoot = exports.GridRoot = (0, _fastMemo.fastMemo)(GridRoot);
@@ -338,6 +338,13 @@ const GridRootStyles = exports.GridRootStyles = (0, _styles.styled)('div', {
338
338
  display: 'flex',
339
339
  alignItems: 'center'
340
340
  },
341
+ [`& .${_gridClasses.gridClasses['columnHeader--filter']}`]: {
342
+ paddingTop: 8,
343
+ paddingBottom: 8,
344
+ paddingRight: 5,
345
+ minHeight: 'min-content',
346
+ overflow: 'hidden'
347
+ },
341
348
  [`& .${_gridClasses.gridClasses['virtualScroller--hasScrollX']} .${_gridClasses.gridClasses['columnHeader--last']}`]: {
342
349
  overflow: 'hidden'
343
350
  },
@@ -99,7 +99,8 @@ const GridPanel = exports.GridPanel = (0, _forwardRef.forwardRef)((props, ref) =
99
99
  }, other, {
100
100
  ref: ref,
101
101
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ClickAwayListener.default, {
102
- mouseEvent: "onMouseUp",
102
+ mouseEvent: "onPointerUp",
103
+ touchEvent: false,
103
104
  onClickAway: handleClickAway,
104
105
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(GridPaperRoot, {
105
106
  className: classes.paper,
@@ -12,28 +12,22 @@ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runt
12
12
  var React = _interopRequireWildcard(require("react"));
13
13
  var _propTypes = _interopRequireDefault(require("prop-types"));
14
14
  var _utils = require("@mui/utils");
15
- var _styles = require("@mui/material/styles");
16
15
  var _useGridRootProps = require("../../../hooks/utils/useGridRootProps");
17
16
  var _jsxRuntime = require("react/jsx-runtime");
18
- const _excluded = ["item", "applyValue", "apiRef", "focusElementRef", "isFilterActive", "clearButton", "tabIndex", "label", "variant", "InputLabelProps"];
19
- const BooleanOperatorContainer = (0, _styles.styled)('div')({
20
- display: 'flex',
21
- alignItems: 'center',
22
- width: '100%',
23
- [`& button`]: {
24
- margin: 'auto 0px 5px 5px'
25
- }
26
- });
17
+ const _excluded = ["item", "applyValue", "apiRef", "focusElementRef", "isFilterActive", "headerFilterMenu", "clearButton", "tabIndex", "label", "variant", "InputProps", "InputLabelProps", "sx"];
27
18
  function GridFilterInputBoolean(props) {
28
19
  const {
29
20
  item,
30
21
  applyValue,
31
22
  apiRef,
32
23
  focusElementRef,
24
+ headerFilterMenu,
33
25
  clearButton,
34
26
  tabIndex,
35
27
  label: labelProp,
36
- variant = 'standard'
28
+ variant = 'outlined',
29
+ InputProps,
30
+ sx
37
31
  } = props,
38
32
  others = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
39
33
  const [filterValueState, setFilterValueState] = React.useState(sanitizeFilterItemValue(item.value));
@@ -54,9 +48,10 @@ function GridFilterInputBoolean(props) {
54
48
  setFilterValueState(sanitizeFilterItemValue(item.value));
55
49
  }, [item.value]);
56
50
  const label = labelProp ?? apiRef.current.getLocaleText('filterPanelInputLabel');
57
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(BooleanOperatorContainer, {
51
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {
58
52
  children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(rootProps.slots.baseFormControl, {
59
53
  fullWidth: true,
54
+ sx: sx,
60
55
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseInputLabel, (0, _extends2.default)({}, rootProps.slotProps?.baseInputLabel, {
61
56
  id: labelId,
62
57
  shrink: true,
@@ -72,11 +67,11 @@ function GridFilterInputBoolean(props) {
72
67
  notched: variant === 'outlined' ? true : undefined,
73
68
  native: isSelectNative,
74
69
  displayEmpty: true,
75
- inputProps: {
70
+ inputProps: (0, _extends2.default)({
76
71
  ref: focusElementRef,
77
72
  tabIndex
78
- }
79
- }, others /* FIXME: typing error */, baseSelectProps, {
73
+ }, InputProps?.inputProps)
74
+ }, baseSelectProps, others /* FIXME: typing error */, {
80
75
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseSelectOption, (0, _extends2.default)({}, baseSelectOptionProps, {
81
76
  native: isSelectNative,
82
77
  value: "",
@@ -91,7 +86,7 @@ function GridFilterInputBoolean(props) {
91
86
  children: apiRef.current.getLocaleText('filterValueFalse')
92
87
  }))]
93
88
  }))]
94
- }), clearButton]
89
+ }), headerFilterMenu, clearButton]
95
90
  });
96
91
  }
97
92
  function sanitizeFilterItemValue(value) {
@@ -114,6 +109,7 @@ process.env.NODE_ENV !== "production" ? GridFilterInputBoolean.propTypes = {
114
109
  applyValue: _propTypes.default.func.isRequired,
115
110
  clearButton: _propTypes.default.node,
116
111
  focusElementRef: _utils.refType,
112
+ headerFilterMenu: _propTypes.default.node,
117
113
  /**
118
114
  * It is `true` if the filter either has a value or an operator with no value
119
115
  * required is selected (for example `isEmpty`)
@@ -14,7 +14,7 @@ var _utils = require("@mui/utils");
14
14
  var _useTimeout = require("../../../hooks/utils/useTimeout");
15
15
  var _useGridRootProps = require("../../../hooks/utils/useGridRootProps");
16
16
  var _jsxRuntime = require("react/jsx-runtime");
17
- const _excluded = ["item", "applyValue", "type", "apiRef", "focusElementRef", "InputProps", "isFilterActive", "clearButton", "tabIndex", "disabled"];
17
+ const _excluded = ["item", "applyValue", "type", "apiRef", "focusElementRef", "InputProps", "isFilterActive", "headerFilterMenu", "clearButton", "tabIndex", "disabled"];
18
18
  function convertFilterItemValueToInputValue(itemValue, inputType) {
19
19
  if (itemValue == null) {
20
20
  return '';
@@ -43,6 +43,7 @@ function GridFilterInputDate(props) {
43
43
  apiRef,
44
44
  focusElementRef,
45
45
  InputProps,
46
+ headerFilterMenu,
46
47
  clearButton,
47
48
  tabIndex,
48
49
  disabled
@@ -70,33 +71,34 @@ function GridFilterInputDate(props) {
70
71
  const value = convertFilterItemValueToInputValue(item.value, type);
71
72
  setFilterValueState(value);
72
73
  }, [item.value, type]);
73
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseTextField, (0, _extends2.default)({
74
- fullWidth: true,
75
- id: id,
76
- label: apiRef.current.getLocaleText('filterPanelInputLabel'),
77
- placeholder: apiRef.current.getLocaleText('filterPanelInputPlaceholder'),
78
- value: filterValueState,
79
- onChange: onFilterChange,
80
- variant: "standard",
81
- type: type || 'text',
82
- InputLabelProps: {
83
- shrink: true
84
- },
85
- inputRef: focusElementRef,
86
- InputProps: (0, _extends2.default)({}, applying || clearButton ? {
87
- endAdornment: applying ? /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.loadIcon, {
88
- fontSize: "small",
89
- color: "action"
90
- }) : clearButton
91
- } : {}, {
92
- disabled
93
- }, InputProps, {
94
- inputProps: (0, _extends2.default)({
95
- max: type === 'datetime-local' ? '9999-12-31T23:59' : '9999-12-31',
96
- tabIndex
97
- }, InputProps?.inputProps)
98
- })
99
- }, other, rootProps.slotProps?.baseTextField));
74
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {
75
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseTextField, (0, _extends2.default)({
76
+ fullWidth: true,
77
+ id: id,
78
+ label: apiRef.current.getLocaleText('filterPanelInputLabel'),
79
+ placeholder: apiRef.current.getLocaleText('filterPanelInputPlaceholder'),
80
+ value: filterValueState,
81
+ onChange: onFilterChange,
82
+ variant: "standard",
83
+ type: type || 'text',
84
+ disabled: disabled,
85
+ InputLabelProps: {
86
+ shrink: true
87
+ },
88
+ inputRef: focusElementRef,
89
+ InputProps: (0, _extends2.default)({
90
+ endAdornment: applying ? /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.loadIcon, {
91
+ fontSize: "small",
92
+ color: "action"
93
+ }) : null
94
+ }, InputProps, {
95
+ inputProps: (0, _extends2.default)({
96
+ max: type === 'datetime-local' ? '9999-12-31T23:59' : '9999-12-31',
97
+ tabIndex
98
+ }, InputProps?.inputProps)
99
+ })
100
+ }, rootProps.slotProps?.baseTextField, other)), headerFilterMenu, clearButton]
101
+ });
100
102
  }
101
103
  process.env.NODE_ENV !== "production" ? GridFilterInputDate.propTypes = {
102
104
  // ----------------------------- Warning --------------------------------
@@ -109,6 +111,7 @@ process.env.NODE_ENV !== "production" ? GridFilterInputDate.propTypes = {
109
111
  applyValue: _propTypes.default.func.isRequired,
110
112
  clearButton: _propTypes.default.node,
111
113
  focusElementRef: _propTypes.default /* @typescript-to-proptypes-ignore */.oneOfType([_propTypes.default.func, _propTypes.default.object]),
114
+ headerFilterMenu: _propTypes.default.node,
112
115
  /**
113
116
  * It is `true` if the filter either has a value or an operator with no value
114
117
  * required is selected (for example `isEmpty`)
@@ -28,7 +28,7 @@ function GridFilterInputMultipleSingleSelect(props) {
28
28
  error,
29
29
  helperText,
30
30
  size,
31
- variant = 'standard'
31
+ variant = 'outlined'
32
32
  } = props,
33
33
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
34
34
  const TextFieldProps = {
@@ -27,7 +27,7 @@ function GridFilterInputMultipleValue(props) {
27
27
  error,
28
28
  helperText,
29
29
  size,
30
- variant = 'standard'
30
+ variant = 'outlined'
31
31
  } = props,
32
32
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
33
33
  const TextFieldProps = {
@@ -12,11 +12,10 @@ var _react = _interopRequireWildcard(require("react"));
12
12
  var React = _react;
13
13
  var _propTypes = _interopRequireDefault(require("prop-types"));
14
14
  var _utils = require("@mui/utils");
15
- var _styles = require("@mui/material/styles");
16
15
  var _useGridRootProps = require("../../../hooks/utils/useGridRootProps");
17
16
  var _filterPanelUtils = require("./filterPanelUtils");
18
17
  var _jsxRuntime = require("react/jsx-runtime");
19
- const _excluded = ["item", "applyValue", "type", "apiRef", "focusElementRef", "placeholder", "tabIndex", "label", "variant", "isFilterActive", "clearButton", "InputLabelProps"];
18
+ const _excluded = ["item", "applyValue", "type", "apiRef", "focusElementRef", "placeholder", "tabIndex", "label", "variant", "isFilterActive", "clearButton", "headerFilterMenu", "InputProps", "InputLabelProps", "sx"];
20
19
  const renderSingleSelectOptions = ({
21
20
  column,
22
21
  OptionComponent,
@@ -39,14 +38,6 @@ const renderSingleSelectOptions = ({
39
38
  }), label);
40
39
  });
41
40
  };
42
- const SingleSelectOperatorContainer = (0, _styles.styled)('div')({
43
- display: 'flex',
44
- alignItems: 'flex-end',
45
- width: '100%',
46
- [`& button`]: {
47
- margin: 'auto 0px 5px 5px'
48
- }
49
- });
50
41
  function GridFilterInputSingleSelect(props) {
51
42
  const {
52
43
  item,
@@ -57,8 +48,11 @@ function GridFilterInputSingleSelect(props) {
57
48
  placeholder,
58
49
  tabIndex,
59
50
  label: labelProp,
60
- variant = 'standard',
61
- clearButton
51
+ variant = 'outlined',
52
+ clearButton,
53
+ headerFilterMenu,
54
+ InputProps,
55
+ sx
62
56
  } = props,
63
57
  others = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
64
58
  const filterValue = item.value ?? '';
@@ -91,9 +85,10 @@ function GridFilterInputSingleSelect(props) {
91
85
  return null;
92
86
  }
93
87
  const label = labelProp ?? apiRef.current.getLocaleText('filterPanelInputLabel');
94
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(SingleSelectOperatorContainer, {
88
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {
95
89
  children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(rootProps.slots.baseFormControl, {
96
90
  fullWidth: true,
91
+ sx: sx,
97
92
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseInputLabel, (0, _extends2.default)({}, rootProps.slotProps?.baseInputLabel, {
98
93
  id: labelId,
99
94
  htmlFor: id,
@@ -108,14 +103,14 @@ function GridFilterInputSingleSelect(props) {
108
103
  onChange: onFilterChange,
109
104
  variant: variant,
110
105
  type: type || 'text',
111
- inputProps: {
106
+ inputProps: (0, _extends2.default)({
112
107
  tabIndex,
113
108
  ref: focusElementRef,
114
109
  placeholder: placeholder ?? apiRef.current.getLocaleText('filterPanelInputPlaceholder')
115
- },
110
+ }, InputProps?.inputProps),
116
111
  native: isSelectNative,
117
112
  notched: variant === 'outlined' ? true : undefined
118
- }, others /* FIXME: typing error */, rootProps.slotProps?.baseSelect, {
113
+ }, rootProps.slotProps?.baseSelect, others /* FIXME: typing error */, {
119
114
  children: renderSingleSelectOptions({
120
115
  column: resolvedColumn,
121
116
  OptionComponent: rootProps.slots.baseSelectOption,
@@ -125,7 +120,7 @@ function GridFilterInputSingleSelect(props) {
125
120
  baseSelectOptionProps: rootProps.slotProps?.baseSelectOption
126
121
  })
127
122
  }))]
128
- }), clearButton]
123
+ }), headerFilterMenu, clearButton]
129
124
  });
130
125
  }
131
126
  process.env.NODE_ENV !== "production" ? GridFilterInputSingleSelect.propTypes = {
@@ -139,6 +134,7 @@ process.env.NODE_ENV !== "production" ? GridFilterInputSingleSelect.propTypes =
139
134
  applyValue: _propTypes.default.func.isRequired,
140
135
  clearButton: _propTypes.default.node,
141
136
  focusElementRef: _propTypes.default /* @typescript-to-proptypes-ignore */.oneOfType([_propTypes.default.func, _propTypes.default.object]),
137
+ headerFilterMenu: _propTypes.default.node,
142
138
  /**
143
139
  * It is `true` if the filter either has a value or an operator with no value
144
140
  * required is selected (for example `isEmpty`)
@@ -14,7 +14,7 @@ var _utils = require("@mui/utils");
14
14
  var _useTimeout = require("../../../hooks/utils/useTimeout");
15
15
  var _useGridRootProps = require("../../../hooks/utils/useGridRootProps");
16
16
  var _jsxRuntime = require("react/jsx-runtime");
17
- const _excluded = ["item", "applyValue", "type", "apiRef", "focusElementRef", "tabIndex", "disabled", "isFilterActive", "clearButton", "InputProps", "variant"];
17
+ const _excluded = ["item", "applyValue", "type", "apiRef", "focusElementRef", "tabIndex", "disabled", "isFilterActive", "clearButton", "headerFilterMenu", "InputProps", "variant"];
18
18
  function GridFilterInputValue(props) {
19
19
  const {
20
20
  item,
@@ -25,8 +25,9 @@ function GridFilterInputValue(props) {
25
25
  tabIndex,
26
26
  disabled,
27
27
  clearButton,
28
+ headerFilterMenu,
28
29
  InputProps,
29
- variant = 'standard'
30
+ variant = 'outlined'
30
31
  } = props,
31
32
  others = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
32
33
  const filterTimeout = (0, _useTimeout.useTimeout)();
@@ -53,31 +54,35 @@ function GridFilterInputValue(props) {
53
54
  setFilterValueState(sanitizeFilterItemValue(item.value));
54
55
  }
55
56
  }, [id, item]);
56
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseTextField, (0, _extends2.default)({
57
- id: id,
58
- label: apiRef.current.getLocaleText('filterPanelInputLabel'),
59
- placeholder: apiRef.current.getLocaleText('filterPanelInputPlaceholder'),
60
- value: filterValueState ?? '',
61
- onChange: onFilterChange,
62
- variant: variant,
63
- type: type || 'text',
64
- InputProps: (0, _extends2.default)({}, applying || clearButton ? {
65
- endAdornment: applying ? /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.loadIcon, {
66
- fontSize: "small",
67
- color: "action"
68
- }) : clearButton
69
- } : {}, {
70
- disabled
71
- }, InputProps, {
72
- inputProps: (0, _extends2.default)({
73
- tabIndex
74
- }, InputProps?.inputProps)
75
- }),
76
- InputLabelProps: {
77
- shrink: true
78
- },
79
- inputRef: focusElementRef
80
- }, others, rootProps.slotProps?.baseTextField));
57
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {
58
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseTextField, (0, _extends2.default)({
59
+ id: id,
60
+ label: apiRef.current.getLocaleText('filterPanelInputLabel'),
61
+ placeholder: apiRef.current.getLocaleText('filterPanelInputPlaceholder'),
62
+ value: filterValueState ?? '',
63
+ onChange: onFilterChange,
64
+ variant: variant,
65
+ type: type || 'text',
66
+ disabled: disabled,
67
+ InputProps: (0, _extends2.default)({
68
+ endAdornment: applying ? /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseInputAdornment, {
69
+ position: "end",
70
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.loadIcon, {
71
+ fontSize: "small",
72
+ color: "action"
73
+ })
74
+ }) : null
75
+ }, InputProps, {
76
+ inputProps: (0, _extends2.default)({
77
+ tabIndex
78
+ }, InputProps?.inputProps)
79
+ }),
80
+ InputLabelProps: {
81
+ shrink: true
82
+ },
83
+ inputRef: focusElementRef
84
+ }, rootProps.slotProps?.baseTextField, others)), headerFilterMenu, clearButton]
85
+ });
81
86
  }
82
87
  function sanitizeFilterItemValue(value) {
83
88
  if (value == null || value === '') {
@@ -96,6 +101,7 @@ process.env.NODE_ENV !== "production" ? GridFilterInputValue.propTypes = {
96
101
  applyValue: _propTypes.default.func.isRequired,
97
102
  clearButton: _propTypes.default.node,
98
103
  focusElementRef: _propTypes.default /* @typescript-to-proptypes-ignore */.oneOfType([_propTypes.default.func, _propTypes.default.object]),
104
+ headerFilterMenu: _propTypes.default.node,
99
105
  /**
100
106
  * It is `true` if the filter either has a value or an operator with no value
101
107
  * required is selected (for example `isEmpty`)
@@ -54,7 +54,12 @@ const GridToolbarColumnsButton = exports.GridToolbarColumnsButton = (0, _forward
54
54
  "aria-expanded": isOpen,
55
55
  "aria-controls": isOpen ? columnPanelId : undefined,
56
56
  startIcon: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.columnSelectorIcon, {}),
57
- onClick: showColumns
57
+ onClick: showColumns,
58
+ onPointerUp: event => {
59
+ if (preferencePanel.open) {
60
+ event.stopPropagation();
61
+ }
62
+ }
58
63
  }, rootProps.slotProps?.baseButton, buttonProps, {
59
64
  ref: ref,
60
65
  children: apiRef.current.getLocaleText('toolbarColumns')
@@ -121,7 +121,12 @@ const GridToolbarFilterButton = exports.GridToolbarFilterButton = (0, _forwardRe
121
121
  }, rootProps.slotProps?.baseBadge, badgeProps, {
122
122
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.openFilterButtonIcon, {})
123
123
  })),
124
- onClick: toggleFilter
124
+ onClick: toggleFilter,
125
+ onPointerUp: event => {
126
+ if (preferencePanel.open) {
127
+ event.stopPropagation();
128
+ }
129
+ }
125
130
  }, rootProps.slotProps?.baseButton, buttonProps, {
126
131
  ref: ref,
127
132
  children: apiRef.current.getLocaleText('toolbarFilters')
@@ -29,6 +29,9 @@ const Scrollbar = (0, _system.styled)('div')({
29
29
  position: 'absolute',
30
30
  display: 'inline-block',
31
31
  zIndex: 6,
32
+ '&:hover': {
33
+ zIndex: 7
34
+ },
32
35
  // In macOS Safari and Gnome Web, scrollbars are overlaid and don't affect the layout. So we consider
33
36
  // their size to be 0px throughout all the calculations, but the floating scrollbar container does need
34
37
  // to appear and have a real size. We set it to 14px because it seems like an acceptable value and we
@@ -110,19 +113,15 @@ const GridVirtualScrollbar = exports.GridVirtualScrollbar = (0, _forwardRef.forw
110
113
  (0, _useOnMount.useOnMount)(() => {
111
114
  const scroller = apiRef.current.virtualScrollerRef.current;
112
115
  const scrollbar = scrollbarRef.current;
113
- scroller.addEventListener('scroll', onScrollerScroll, {
114
- capture: true
115
- });
116
- scrollbar.addEventListener('scroll', onScrollbarScroll, {
117
- capture: true
118
- });
116
+ const options = {
117
+ capture: true,
118
+ passive: true
119
+ };
120
+ scroller.addEventListener('scroll', onScrollerScroll, options);
121
+ scrollbar.addEventListener('scroll', onScrollbarScroll, options);
119
122
  return () => {
120
- scroller.removeEventListener('scroll', onScrollerScroll, {
121
- capture: true
122
- });
123
- scrollbar.removeEventListener('scroll', onScrollbarScroll, {
124
- capture: true
125
- });
123
+ scroller.removeEventListener('scroll', onScrollerScroll, options);
124
+ scrollbar.removeEventListener('scroll', onScrollbarScroll, options);
126
125
  };
127
126
  });
128
127
  React.useEffect(() => {
@@ -108,10 +108,10 @@ function GridVirtualScroller(props) {
108
108
  virtualScroller: virtualScroller
109
109
  })
110
110
  })]
111
- })), dimensions.hasScrollY && /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridVirtualScrollbar.GridVirtualScrollbar, (0, _extends2.default)({
112
- position: "vertical"
113
- }, getScrollbarVerticalProps())), dimensions.hasScrollX && !rootProps.unstable_listView && /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridVirtualScrollbar.GridVirtualScrollbar, (0, _extends2.default)({
111
+ })), dimensions.hasScrollX && !rootProps.unstable_listView && /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridVirtualScrollbar.GridVirtualScrollbar, (0, _extends2.default)({
114
112
  position: "horizontal"
115
- }, getScrollbarHorizontalProps())), props.children]
113
+ }, getScrollbarHorizontalProps())), dimensions.hasScrollY && /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridVirtualScrollbar.GridVirtualScrollbar, (0, _extends2.default)({
114
+ position: "vertical"
115
+ }, getScrollbarVerticalProps())), props.children]
116
116
  }));
117
117
  }