@mui/x-data-grid 8.0.0-alpha.6 → 8.0.0-alpha.8

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 (397) hide show
  1. package/CHANGELOG.md +242 -1
  2. package/DataGrid/DataGrid.js +4 -5
  3. package/DataGrid/useDataGridComponent.d.ts +1 -1
  4. package/DataGrid/useDataGridComponent.js +1 -1
  5. package/components/GridHeaders.js +2 -2
  6. package/components/GridRow.d.ts +5 -9
  7. package/components/GridRow.js +26 -78
  8. package/components/GridSkeletonLoadingOverlay.js +18 -18
  9. package/components/cell/GridActionsCellItem.d.ts +16 -9
  10. package/components/cell/GridActionsCellItem.js +2 -0
  11. package/components/cell/GridCell.d.ts +9 -16
  12. package/components/cell/GridCell.js +17 -35
  13. package/components/cell/GridEditDateCell.js +1 -1
  14. package/components/cell/GridEditInputCell.js +1 -1
  15. package/components/cell/GridEditSingleSelectCell.js +2 -2
  16. package/components/columnHeaders/ColumnHeaderMenuIcon.d.ts +1 -1
  17. package/components/columnHeaders/GridColumnGroupHeader.d.ts +5 -5
  18. package/components/columnHeaders/GridColumnGroupHeader.js +7 -10
  19. package/components/columnHeaders/GridColumnHeaderFilterIconButton.js +0 -1
  20. package/components/columnHeaders/GridColumnHeaderItem.d.ts +5 -5
  21. package/components/columnHeaders/GridColumnHeaderItem.js +13 -12
  22. package/components/columnSelection/GridCellCheckboxRenderer.js +4 -3
  23. package/components/columnSelection/GridHeaderCheckbox.js +6 -2
  24. package/components/columnsManagement/GridColumnsManagement.js +2 -2
  25. package/components/containers/GridRoot.d.ts +2 -2
  26. package/components/containers/GridRoot.js +14 -6
  27. package/components/containers/GridRootStyles.js +7 -0
  28. package/components/panel/GridPanel.d.ts +1 -1
  29. package/components/panel/filterPanel/GridFilterInputBoolean.d.ts +1 -0
  30. package/components/panel/filterPanel/GridFilterInputBoolean.js +12 -16
  31. package/components/panel/filterPanel/GridFilterInputDate.d.ts +2 -1
  32. package/components/panel/filterPanel/GridFilterInputDate.js +32 -29
  33. package/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +1 -1
  34. package/components/panel/filterPanel/GridFilterInputMultipleValue.js +1 -1
  35. package/components/panel/filterPanel/GridFilterInputSingleSelect.d.ts +1 -0
  36. package/components/panel/filterPanel/GridFilterInputSingleSelect.js +13 -17
  37. package/components/panel/filterPanel/GridFilterInputValue.d.ts +1 -0
  38. package/components/panel/filterPanel/GridFilterInputValue.js +40 -37
  39. package/components/panel/filterPanel/GridFilterInputValueProps.d.ts +1 -1
  40. package/components/toolbar/GridToolbarQuickFilter.js +2 -2
  41. package/components/virtualization/GridVirtualScrollbar.js +11 -12
  42. package/components/virtualization/GridVirtualScroller.js +4 -4
  43. package/constants/gridClasses.d.ts +12 -0
  44. package/constants/gridClasses.js +1 -1
  45. package/constants/localeTextConstants.js +1 -0
  46. package/context/GridContextProvider.d.ts +1 -1
  47. package/hooks/core/pipeProcessing/gridPipeProcessingApi.d.ts +9 -2
  48. package/hooks/core/pipeProcessing/useGridPipeProcessing.d.ts +1 -1
  49. package/hooks/core/pipeProcessing/useGridRegisterPipeApplier.d.ts +1 -1
  50. package/hooks/core/pipeProcessing/useGridRegisterPipeApplier.js +1 -1
  51. package/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.d.ts +1 -1
  52. package/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.js +1 -1
  53. package/hooks/core/strategyProcessing/useGridRegisterStrategyProcessor.d.ts +1 -1
  54. package/hooks/core/strategyProcessing/useGridStrategyProcessing.d.ts +1 -1
  55. package/hooks/core/useGridApiInitialization.d.ts +1 -1
  56. package/hooks/core/useGridApiInitialization.js +2 -2
  57. package/hooks/core/useGridInitialization.d.ts +1 -1
  58. package/hooks/core/useGridIsRtl.d.ts +1 -1
  59. package/hooks/core/useGridLocaleText.d.ts +1 -1
  60. package/hooks/core/useGridLoggerFactory.d.ts +1 -1
  61. package/hooks/core/useGridRefs.d.ts +1 -1
  62. package/hooks/core/useGridStateInitialization.d.ts +1 -1
  63. package/hooks/features/clipboard/useGridClipboard.d.ts +1 -1
  64. package/hooks/features/columnGrouping/useGridColumnGrouping.d.ts +1 -1
  65. package/hooks/features/columnHeaders/useGridColumnHeaders.d.ts +5 -7
  66. package/hooks/features/columnHeaders/useGridColumnHeaders.js +34 -76
  67. package/hooks/features/columnMenu/useGridColumnMenu.d.ts +1 -1
  68. package/hooks/features/columnResize/useGridColumnResize.d.ts +1 -1
  69. package/hooks/features/columnResize/useGridColumnResize.js +4 -4
  70. package/hooks/features/columns/gridColumnsUtils.d.ts +3 -3
  71. package/hooks/features/columns/useGridColumnSpanning.d.ts +1 -1
  72. package/hooks/features/columns/useGridColumns.d.ts +1 -1
  73. package/hooks/features/density/useGridDensity.d.ts +1 -1
  74. package/hooks/features/dimensions/useGridDimensions.d.ts +1 -1
  75. package/hooks/features/editing/useGridCellEditing.d.ts +1 -1
  76. package/hooks/features/editing/useGridCellEditing.js +1 -1
  77. package/hooks/features/editing/useGridEditing.d.ts +1 -1
  78. package/hooks/features/editing/useGridRowEditing.d.ts +1 -1
  79. package/hooks/features/editing/useGridRowEditing.js +2 -2
  80. package/hooks/features/events/useGridEvents.d.ts +1 -1
  81. package/hooks/features/export/serializers/csvSerializer.d.ts +1 -1
  82. package/hooks/features/export/useGridCsvExport.d.ts +1 -1
  83. package/hooks/features/export/useGridPrintExport.d.ts +1 -1
  84. package/hooks/features/export/useGridPrintExport.js +1 -1
  85. package/hooks/features/export/utils.d.ts +1 -1
  86. package/hooks/features/filter/gridFilterSelector.d.ts +1 -1
  87. package/hooks/features/filter/gridFilterSelector.js +6 -1
  88. package/hooks/features/filter/gridFilterUtils.d.ts +6 -6
  89. package/hooks/features/filter/gridFilterUtils.js +3 -3
  90. package/hooks/features/filter/useGridFilter.d.ts +1 -1
  91. package/hooks/features/focus/useGridFocus.d.ts +1 -1
  92. package/hooks/features/headerFiltering/useGridHeaderFiltering.d.ts +1 -1
  93. package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.d.ts +1 -1
  94. package/hooks/features/keyboardNavigation/utils.d.ts +2 -2
  95. package/hooks/features/listView/useGridListView.d.ts +1 -1
  96. package/hooks/features/pagination/gridPaginationInterfaces.d.ts +3 -0
  97. package/hooks/features/pagination/gridPaginationSelector.d.ts +21 -2
  98. package/hooks/features/pagination/gridPaginationSelector.js +39 -1
  99. package/hooks/features/pagination/useGridPagination.d.ts +2 -2
  100. package/hooks/features/pagination/useGridPagination.js +5 -3
  101. package/hooks/features/pagination/useGridPaginationMeta.d.ts +1 -1
  102. package/hooks/features/pagination/useGridPaginationModel.d.ts +1 -1
  103. package/hooks/features/pagination/useGridPaginationModel.js +23 -1
  104. package/hooks/features/pagination/useGridRowCount.d.ts +1 -1
  105. package/hooks/features/preferencesPanel/useGridPreferencesPanel.d.ts +1 -1
  106. package/hooks/features/preferencesPanel/useGridPreferencesPanel.js +2 -2
  107. package/hooks/features/rowSelection/useGridRowSelection.d.ts +1 -1
  108. package/hooks/features/rowSelection/useGridRowSelectionPreProcessors.d.ts +1 -1
  109. package/hooks/features/rowSelection/utils.d.ts +2 -2
  110. package/hooks/features/rows/gridRowSpanningUtils.d.ts +1 -1
  111. package/hooks/features/rows/gridRowsSelector.js +1 -1
  112. package/hooks/features/rows/gridRowsUtils.d.ts +3 -3
  113. package/hooks/features/rows/useGridParamsApi.d.ts +1 -1
  114. package/hooks/features/rows/useGridRowSpanning.d.ts +1 -1
  115. package/hooks/features/rows/useGridRows.d.ts +1 -1
  116. package/hooks/features/rows/useGridRows.js +2 -2
  117. package/hooks/features/rows/useGridRowsMeta.d.ts +1 -1
  118. package/hooks/features/rows/useGridRowsPreProcessors.d.ts +1 -1
  119. package/hooks/features/scroll/useGridScroll.d.ts +1 -1
  120. package/hooks/features/sorting/gridSortingUtils.d.ts +2 -2
  121. package/hooks/features/sorting/gridSortingUtils.js +2 -2
  122. package/hooks/features/sorting/useGridSorting.d.ts +1 -1
  123. package/hooks/features/statePersistence/useGridStatePersistence.d.ts +1 -1
  124. package/hooks/features/virtualization/gridFocusedVirtualCellSelector.d.ts +6 -0
  125. package/hooks/features/virtualization/gridFocusedVirtualCellSelector.js +42 -0
  126. package/hooks/features/virtualization/useGridVirtualScroller.d.ts +5 -4
  127. package/hooks/features/virtualization/useGridVirtualScroller.js +96 -43
  128. package/hooks/features/virtualization/useGridVirtualization.d.ts +1 -1
  129. package/hooks/utils/useGridApiContext.d.ts +1 -1
  130. package/hooks/utils/useGridApiEventHandler.d.ts +3 -3
  131. package/hooks/utils/useGridApiEventHandler.js +1 -1
  132. package/hooks/utils/useGridApiMethod.d.ts +1 -1
  133. package/hooks/utils/useGridApiRef.d.ts +1 -1
  134. package/hooks/utils/useGridInitializeState.d.ts +2 -2
  135. package/hooks/utils/useGridLogger.d.ts +1 -1
  136. package/hooks/utils/useGridNativeEventListener.d.ts +1 -1
  137. package/hooks/utils/useGridPrivateApiContext.d.ts +1 -1
  138. package/hooks/utils/useGridSelector.d.ts +1 -1
  139. package/hooks/utils/useGridVisibleRows.d.ts +7 -5
  140. package/hooks/utils/useGridVisibleRows.js +5 -28
  141. package/index.js +1 -1
  142. package/internals/constants.d.ts +6 -0
  143. package/internals/constants.js +8 -1
  144. package/internals/index.d.ts +2 -1
  145. package/internals/index.js +1 -0
  146. package/internals/utils/attachPinnedStyle.d.ts +2 -0
  147. package/internals/utils/attachPinnedStyle.js +9 -0
  148. package/internals/utils/getPinnedCellOffset.d.ts +3 -3
  149. package/internals/utils/getPinnedCellOffset.js +6 -7
  150. package/internals/utils/index.d.ts +1 -0
  151. package/internals/utils/index.js +2 -1
  152. package/locales/arSD.js +2 -0
  153. package/locales/beBY.js +1 -0
  154. package/locales/bgBG.js +2 -0
  155. package/locales/csCZ.js +2 -0
  156. package/locales/daDK.js +2 -0
  157. package/locales/deDE.js +2 -0
  158. package/locales/elGR.js +2 -0
  159. package/locales/esES.js +2 -0
  160. package/locales/faIR.js +2 -0
  161. package/locales/fiFI.js +2 -0
  162. package/locales/frFR.js +2 -0
  163. package/locales/heIL.js +2 -0
  164. package/locales/hrHR.js +2 -0
  165. package/locales/huHU.js +2 -0
  166. package/locales/isIS.js +2 -0
  167. package/locales/itIT.js +2 -0
  168. package/locales/jaJP.js +2 -0
  169. package/locales/koKR.js +2 -0
  170. package/locales/nbNO.js +2 -0
  171. package/locales/nlNL.js +2 -0
  172. package/locales/nnNO.js +2 -0
  173. package/locales/plPL.js +2 -0
  174. package/locales/ptBR.js +2 -0
  175. package/locales/ptPT.js +2 -0
  176. package/locales/roRO.js +2 -0
  177. package/locales/ruRU.js +2 -0
  178. package/locales/skSK.js +2 -0
  179. package/locales/svSE.js +2 -0
  180. package/locales/trTR.js +2 -0
  181. package/locales/ukUA.js +2 -0
  182. package/locales/urPK.js +2 -0
  183. package/locales/viVN.js +2 -0
  184. package/locales/zhCN.js +2 -0
  185. package/locales/zhHK.js +2 -0
  186. package/locales/zhTW.js +2 -0
  187. package/material/index.js +2 -1
  188. package/models/api/gridCoreApi.d.ts +7 -7
  189. package/models/api/gridDensityApi.d.ts +1 -1
  190. package/models/api/gridLocaleTextApi.d.ts +1 -0
  191. package/models/colDef/gridColDef.d.ts +8 -8
  192. package/models/events/gridEventLookup.d.ts +6 -1
  193. package/models/gridBaseSlots.d.ts +32 -2
  194. package/models/gridExport.d.ts +1 -1
  195. package/models/gridFilterOperator.d.ts +1 -1
  196. package/models/gridIconSlotsComponent.d.ts +5 -0
  197. package/models/gridSlotsComponentsProps.d.ts +12 -8
  198. package/models/gridStateCommunity.d.ts +4 -0
  199. package/models/props/DataGridProps.d.ts +1 -1
  200. package/modern/DataGrid/DataGrid.js +4 -5
  201. package/modern/DataGrid/useDataGridComponent.js +1 -1
  202. package/modern/components/GridHeaders.js +2 -2
  203. package/modern/components/GridRow.js +26 -78
  204. package/modern/components/GridSkeletonLoadingOverlay.js +18 -18
  205. package/modern/components/cell/GridActionsCellItem.js +2 -0
  206. package/modern/components/cell/GridCell.js +17 -35
  207. package/modern/components/cell/GridEditDateCell.js +1 -1
  208. package/modern/components/cell/GridEditInputCell.js +1 -1
  209. package/modern/components/cell/GridEditSingleSelectCell.js +2 -2
  210. package/modern/components/columnHeaders/GridColumnGroupHeader.js +7 -10
  211. package/modern/components/columnHeaders/GridColumnHeaderFilterIconButton.js +0 -1
  212. package/modern/components/columnHeaders/GridColumnHeaderItem.js +13 -12
  213. package/modern/components/columnSelection/GridCellCheckboxRenderer.js +4 -3
  214. package/modern/components/columnSelection/GridHeaderCheckbox.js +6 -2
  215. package/modern/components/columnsManagement/GridColumnsManagement.js +2 -2
  216. package/modern/components/containers/GridRoot.js +14 -6
  217. package/modern/components/containers/GridRootStyles.js +7 -0
  218. package/modern/components/panel/filterPanel/GridFilterInputBoolean.js +12 -16
  219. package/modern/components/panel/filterPanel/GridFilterInputDate.js +32 -29
  220. package/modern/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +1 -1
  221. package/modern/components/panel/filterPanel/GridFilterInputMultipleValue.js +1 -1
  222. package/modern/components/panel/filterPanel/GridFilterInputSingleSelect.js +13 -17
  223. package/modern/components/panel/filterPanel/GridFilterInputValue.js +40 -37
  224. package/modern/components/toolbar/GridToolbarQuickFilter.js +2 -2
  225. package/modern/components/virtualization/GridVirtualScrollbar.js +11 -12
  226. package/modern/components/virtualization/GridVirtualScroller.js +4 -4
  227. package/modern/constants/gridClasses.js +1 -1
  228. package/modern/constants/localeTextConstants.js +1 -0
  229. package/modern/hooks/core/pipeProcessing/useGridRegisterPipeApplier.js +1 -1
  230. package/modern/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.js +1 -1
  231. package/modern/hooks/core/useGridApiInitialization.js +2 -2
  232. package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +34 -76
  233. package/modern/hooks/features/columnResize/useGridColumnResize.js +4 -4
  234. package/modern/hooks/features/editing/useGridCellEditing.js +1 -1
  235. package/modern/hooks/features/editing/useGridRowEditing.js +2 -2
  236. package/modern/hooks/features/export/useGridPrintExport.js +1 -1
  237. package/modern/hooks/features/filter/gridFilterSelector.js +6 -1
  238. package/modern/hooks/features/filter/gridFilterUtils.js +3 -3
  239. package/modern/hooks/features/pagination/gridPaginationSelector.js +39 -1
  240. package/modern/hooks/features/pagination/useGridPagination.js +5 -3
  241. package/modern/hooks/features/pagination/useGridPaginationModel.js +23 -1
  242. package/modern/hooks/features/preferencesPanel/useGridPreferencesPanel.js +2 -2
  243. package/modern/hooks/features/rows/gridRowsSelector.js +1 -1
  244. package/modern/hooks/features/rows/useGridRows.js +2 -2
  245. package/modern/hooks/features/sorting/gridSortingUtils.js +2 -2
  246. package/modern/hooks/features/virtualization/gridFocusedVirtualCellSelector.js +42 -0
  247. package/modern/hooks/features/virtualization/useGridVirtualScroller.js +96 -43
  248. package/modern/hooks/utils/useGridApiEventHandler.js +1 -1
  249. package/modern/hooks/utils/useGridVisibleRows.js +5 -28
  250. package/modern/index.js +1 -1
  251. package/modern/internals/constants.js +8 -1
  252. package/modern/internals/index.js +1 -0
  253. package/modern/internals/utils/attachPinnedStyle.js +9 -0
  254. package/modern/internals/utils/getPinnedCellOffset.js +6 -7
  255. package/modern/internals/utils/index.js +2 -1
  256. package/modern/locales/arSD.js +2 -0
  257. package/modern/locales/beBY.js +1 -0
  258. package/modern/locales/bgBG.js +2 -0
  259. package/modern/locales/csCZ.js +2 -0
  260. package/modern/locales/daDK.js +2 -0
  261. package/modern/locales/deDE.js +2 -0
  262. package/modern/locales/elGR.js +2 -0
  263. package/modern/locales/esES.js +2 -0
  264. package/modern/locales/faIR.js +2 -0
  265. package/modern/locales/fiFI.js +2 -0
  266. package/modern/locales/frFR.js +2 -0
  267. package/modern/locales/heIL.js +2 -0
  268. package/modern/locales/hrHR.js +2 -0
  269. package/modern/locales/huHU.js +2 -0
  270. package/modern/locales/isIS.js +2 -0
  271. package/modern/locales/itIT.js +2 -0
  272. package/modern/locales/jaJP.js +2 -0
  273. package/modern/locales/koKR.js +2 -0
  274. package/modern/locales/nbNO.js +2 -0
  275. package/modern/locales/nlNL.js +2 -0
  276. package/modern/locales/nnNO.js +2 -0
  277. package/modern/locales/plPL.js +2 -0
  278. package/modern/locales/ptBR.js +2 -0
  279. package/modern/locales/ptPT.js +2 -0
  280. package/modern/locales/roRO.js +2 -0
  281. package/modern/locales/ruRU.js +2 -0
  282. package/modern/locales/skSK.js +2 -0
  283. package/modern/locales/svSE.js +2 -0
  284. package/modern/locales/trTR.js +2 -0
  285. package/modern/locales/ukUA.js +2 -0
  286. package/modern/locales/urPK.js +2 -0
  287. package/modern/locales/viVN.js +2 -0
  288. package/modern/locales/zhCN.js +2 -0
  289. package/modern/locales/zhHK.js +2 -0
  290. package/modern/locales/zhTW.js +2 -0
  291. package/modern/material/index.js +2 -1
  292. package/modern/utils/cellBorderUtils.js +5 -5
  293. package/modern/utils/domUtils.js +7 -2
  294. package/modern/utils/rtlFlipSide.js +22 -0
  295. package/node/DataGrid/DataGrid.js +2 -3
  296. package/node/DataGrid/useDataGridComponent.js +1 -1
  297. package/node/components/GridHeaders.js +2 -2
  298. package/node/components/GridRow.js +25 -77
  299. package/node/components/GridSkeletonLoadingOverlay.js +17 -17
  300. package/node/components/cell/GridActionsCellItem.js +1 -1
  301. package/node/components/cell/GridCell.js +18 -36
  302. package/node/components/cell/GridEditDateCell.js +1 -1
  303. package/node/components/cell/GridEditInputCell.js +1 -1
  304. package/node/components/cell/GridEditSingleSelectCell.js +2 -2
  305. package/node/components/columnHeaders/GridColumnGroupHeader.js +7 -10
  306. package/node/components/columnHeaders/GridColumnHeaderFilterIconButton.js +0 -1
  307. package/node/components/columnHeaders/GridColumnHeaderItem.js +13 -12
  308. package/node/components/columnSelection/GridCellCheckboxRenderer.js +3 -2
  309. package/node/components/columnSelection/GridHeaderCheckbox.js +6 -2
  310. package/node/components/columnsManagement/GridColumnsManagement.js +2 -2
  311. package/node/components/containers/GridRoot.js +14 -6
  312. package/node/components/containers/GridRootStyles.js +7 -0
  313. package/node/components/panel/filterPanel/GridFilterInputBoolean.js +12 -16
  314. package/node/components/panel/filterPanel/GridFilterInputDate.js +31 -28
  315. package/node/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +1 -1
  316. package/node/components/panel/filterPanel/GridFilterInputMultipleValue.js +1 -1
  317. package/node/components/panel/filterPanel/GridFilterInputSingleSelect.js +13 -17
  318. package/node/components/panel/filterPanel/GridFilterInputValue.js +39 -36
  319. package/node/components/toolbar/GridToolbarQuickFilter.js +2 -2
  320. package/node/components/virtualization/GridVirtualScrollbar.js +11 -12
  321. package/node/components/virtualization/GridVirtualScroller.js +4 -4
  322. package/node/constants/gridClasses.js +1 -1
  323. package/node/constants/localeTextConstants.js +1 -0
  324. package/node/hooks/core/pipeProcessing/useGridRegisterPipeApplier.js +1 -1
  325. package/node/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.js +1 -1
  326. package/node/hooks/core/useGridApiInitialization.js +2 -2
  327. package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +32 -74
  328. package/node/hooks/features/columnResize/useGridColumnResize.js +4 -4
  329. package/node/hooks/features/editing/useGridCellEditing.js +1 -1
  330. package/node/hooks/features/editing/useGridRowEditing.js +2 -2
  331. package/node/hooks/features/export/useGridPrintExport.js +1 -1
  332. package/node/hooks/features/filter/gridFilterSelector.js +6 -1
  333. package/node/hooks/features/filter/gridFilterUtils.js +3 -3
  334. package/node/hooks/features/pagination/gridPaginationSelector.js +41 -3
  335. package/node/hooks/features/pagination/useGridPagination.js +5 -3
  336. package/node/hooks/features/pagination/useGridPaginationModel.js +23 -1
  337. package/node/hooks/features/preferencesPanel/useGridPreferencesPanel.js +2 -2
  338. package/node/hooks/features/rows/gridRowsSelector.js +1 -1
  339. package/node/hooks/features/rows/useGridRows.js +1 -1
  340. package/node/hooks/features/sorting/gridSortingUtils.js +2 -2
  341. package/node/hooks/features/virtualization/gridFocusedVirtualCellSelector.js +49 -0
  342. package/node/hooks/features/virtualization/useGridVirtualScroller.js +96 -43
  343. package/node/hooks/utils/useGridApiEventHandler.js +1 -1
  344. package/node/hooks/utils/useGridVisibleRows.js +3 -28
  345. package/node/index.js +1 -1
  346. package/node/internals/constants.js +9 -2
  347. package/node/internals/index.js +12 -0
  348. package/node/internals/utils/attachPinnedStyle.js +15 -0
  349. package/node/internals/utils/getPinnedCellOffset.js +6 -7
  350. package/node/internals/utils/index.js +11 -0
  351. package/node/locales/arSD.js +2 -0
  352. package/node/locales/beBY.js +1 -0
  353. package/node/locales/bgBG.js +2 -0
  354. package/node/locales/csCZ.js +2 -0
  355. package/node/locales/daDK.js +2 -0
  356. package/node/locales/deDE.js +2 -0
  357. package/node/locales/elGR.js +2 -0
  358. package/node/locales/esES.js +2 -0
  359. package/node/locales/faIR.js +2 -0
  360. package/node/locales/fiFI.js +2 -0
  361. package/node/locales/frFR.js +2 -0
  362. package/node/locales/heIL.js +2 -0
  363. package/node/locales/hrHR.js +2 -0
  364. package/node/locales/huHU.js +2 -0
  365. package/node/locales/isIS.js +2 -0
  366. package/node/locales/itIT.js +2 -0
  367. package/node/locales/jaJP.js +2 -0
  368. package/node/locales/koKR.js +2 -0
  369. package/node/locales/nbNO.js +2 -0
  370. package/node/locales/nlNL.js +2 -0
  371. package/node/locales/nnNO.js +2 -0
  372. package/node/locales/plPL.js +2 -0
  373. package/node/locales/ptBR.js +2 -0
  374. package/node/locales/ptPT.js +2 -0
  375. package/node/locales/roRO.js +2 -0
  376. package/node/locales/ruRU.js +2 -0
  377. package/node/locales/skSK.js +2 -0
  378. package/node/locales/svSE.js +2 -0
  379. package/node/locales/trTR.js +2 -0
  380. package/node/locales/ukUA.js +2 -0
  381. package/node/locales/urPK.js +2 -0
  382. package/node/locales/viVN.js +2 -0
  383. package/node/locales/zhCN.js +2 -0
  384. package/node/locales/zhHK.js +2 -0
  385. package/node/locales/zhTW.js +2 -0
  386. package/node/material/index.js +2 -1
  387. package/node/utils/cellBorderUtils.js +5 -5
  388. package/node/utils/domUtils.js +7 -2
  389. package/node/utils/rtlFlipSide.js +29 -0
  390. package/package.json +2 -2
  391. package/utils/cellBorderUtils.d.ts +3 -3
  392. package/utils/cellBorderUtils.js +5 -5
  393. package/utils/createSelector.d.ts +1 -1
  394. package/utils/domUtils.js +7 -2
  395. package/utils/getPublicApiRef.d.ts +1 -1
  396. package/utils/rtlFlipSide.d.ts +2 -0
  397. package/utils/rtlFlipSide.js +22 -0
@@ -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
  }
@@ -95,7 +95,8 @@ const GridCellCheckboxForwardRef = exports.GridCellCheckboxForwardRef = (0, _for
95
95
  onChange: handleChange,
96
96
  className: classes.root,
97
97
  inputProps: {
98
- 'aria-label': label
98
+ 'aria-label': label,
99
+ name: 'select_row'
99
100
  },
100
101
  onKeyDown: handleKeyDown,
101
102
  indeterminate: isIndeterminate,
@@ -50,13 +50,16 @@ const GridHeaderCheckbox = exports.GridHeaderCheckbox = (0, _forwardRef.forwardR
50
50
  return selection;
51
51
  }
52
52
  return selection.filter(id => {
53
+ if (rootProps.keepNonExistentRowsSelected) {
54
+ return true;
55
+ }
53
56
  // The row might have been deleted
54
57
  if (!apiRef.current.getRow(id)) {
55
58
  return false;
56
59
  }
57
60
  return rootProps.isRowSelectable(apiRef.current.getRowParams(id));
58
61
  });
59
- }, [apiRef, rootProps.isRowSelectable, selection]);
62
+ }, [apiRef, rootProps.isRowSelectable, selection, rootProps.keepNonExistentRowsSelected]);
60
63
 
61
64
  // All the rows that could be selected / unselected by toggling this checkbox
62
65
  const selectionCandidates = React.useMemo(() => {
@@ -111,7 +114,8 @@ const GridHeaderCheckbox = exports.GridHeaderCheckbox = (0, _forwardRef.forwardR
111
114
  onChange: handleChange,
112
115
  className: classes.root,
113
116
  inputProps: {
114
- 'aria-label': label
117
+ 'aria-label': label,
118
+ name: 'select_all_rows'
115
119
  },
116
120
  tabIndex: tabIndex,
117
121
  onKeyDown: handleKeyDown,
@@ -149,11 +149,11 @@ function GridColumnsManagement(props) {
149
149
  endAdornment: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseIconButton, (0, _extends2.default)({
150
150
  "aria-label": apiRef.current.getLocaleText('columnsManagementDeleteIconLabel'),
151
151
  size: "small",
152
- sx: [searchValue ? {
152
+ style: searchValue ? {
153
153
  visibility: 'visible'
154
154
  } : {
155
155
  visibility: 'hidden'
156
- }],
156
+ },
157
157
  tabIndex: -1,
158
158
  onClick: handleSearchReset
159
159
  }, rootProps.slotProps?.baseIconButton, {
@@ -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
  },
@@ -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,22 +25,23 @@ 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)();
33
- const [filterValueState, setFilterValueState] = React.useState(sanitizeFilterItemValue(item.value, type));
34
+ const [filterValueState, setFilterValueState] = React.useState(sanitizeFilterItemValue(item.value));
34
35
  const [applying, setIsApplying] = React.useState(false);
35
36
  const id = (0, _utils.unstable_useId)();
36
37
  const rootProps = (0, _useGridRootProps.useGridRootProps)();
37
38
  const onFilterChange = React.useCallback(event => {
38
- const value = sanitizeFilterItemValue(event.target.value, type);
39
+ const value = sanitizeFilterItemValue(event.target.value);
39
40
  setFilterValueState(value);
40
41
  setIsApplying(true);
41
42
  filterTimeout.start(rootProps.filterDebounceMs, () => {
42
43
  const newItem = (0, _extends2.default)({}, item, {
43
- value,
44
+ value: type === 'number' && !Number.isNaN(Number(value)) ? Number(value) : value,
44
45
  fromInput: id
45
46
  });
46
47
  applyValue(newItem);
@@ -50,42 +51,43 @@ function GridFilterInputValue(props) {
50
51
  React.useEffect(() => {
51
52
  const itemPlusTag = item;
52
53
  if (itemPlusTag.fromInput !== id || item.value == null) {
53
- setFilterValueState(sanitizeFilterItemValue(item.value, type));
54
+ setFilterValueState(sanitizeFilterItemValue(item.value));
54
55
  }
55
- }, [id, item, type]);
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 === undefined ? '' : String(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));
56
+ }, [id, item]);
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
- function sanitizeFilterItemValue(value, type) {
87
+ function sanitizeFilterItemValue(value) {
83
88
  if (value == null || value === '') {
84
89
  return undefined;
85
90
  }
86
- if (type === 'number') {
87
- return Number(value);
88
- }
89
91
  return String(value);
90
92
  }
91
93
  process.env.NODE_ENV !== "production" ? GridFilterInputValue.propTypes = {
@@ -99,6 +101,7 @@ process.env.NODE_ENV !== "production" ? GridFilterInputValue.propTypes = {
99
101
  applyValue: _propTypes.default.func.isRequired,
100
102
  clearButton: _propTypes.default.node,
101
103
  focusElementRef: _propTypes.default /* @typescript-to-proptypes-ignore */.oneOfType([_propTypes.default.func, _propTypes.default.object]),
104
+ headerFilterMenu: _propTypes.default.node,
102
105
  /**
103
106
  * It is `true` if the filter either has a value or an operator with no value
104
107
  * required is selected (for example `isEmpty`)
@@ -117,11 +117,11 @@ function GridToolbarQuickFilter(props) {
117
117
  "aria-label": apiRef.current.getLocaleText('toolbarQuickFilterDeleteIconLabel'),
118
118
  size: "small",
119
119
  edge: "end",
120
- sx: [searchValue ? {
120
+ style: searchValue ? {
121
121
  visibility: 'visible'
122
122
  } : {
123
123
  visibility: 'hidden'
124
- }],
124
+ },
125
125
  onClick: handleSearchReset
126
126
  }, rootProps.slotProps?.baseIconButton, {
127
127
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.quickFilterClearIcon, {
@@ -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
  }
@@ -9,4 +9,4 @@ var _utils = require("@mui/utils");
9
9
  function getDataGridUtilityClass(slot) {
10
10
  return (0, _utils.unstable_generateUtilityClass)('MuiDataGrid', slot);
11
11
  }
12
- const gridClasses = exports.gridClasses = (0, _utils.unstable_generateUtilityClasses)('MuiDataGrid', ['actionsCell', 'aggregationColumnHeader', 'aggregationColumnHeader--alignLeft', 'aggregationColumnHeader--alignCenter', 'aggregationColumnHeader--alignRight', 'aggregationColumnHeaderLabel', 'autoHeight', 'autosizing', 'booleanCell', 'cell--editable', 'cell--editing', 'cell--flex', 'cell--textCenter', 'cell--textLeft', 'cell--textRight', 'cell--rangeTop', 'cell--rangeBottom', 'cell--rangeLeft', 'cell--rangeRight', 'cell--pinnedLeft', 'cell--pinnedRight', 'cell--selectionMode', 'cell', 'cellCheckbox', 'cellEmpty', 'cellSkeleton', 'cellOffsetLeft', 'checkboxInput', 'columnHeader', 'columnHeader--alignCenter', 'columnHeader--alignLeft', 'columnHeader--alignRight', 'columnHeader--dragging', 'columnHeader--moving', 'columnHeader--numeric', 'columnHeader--sortable', 'columnHeader--sorted', 'columnHeader--filtered', 'columnHeader--pinnedLeft', 'columnHeader--pinnedRight', 'columnHeader--last', 'columnHeader--lastUnpinned', 'columnHeader--siblingFocused', 'columnHeaderCheckbox', 'columnHeaderDraggableContainer', 'columnHeaderTitle', 'columnHeaderTitleContainer', 'columnHeaderTitleContainerContent', 'columnHeader--filledGroup', 'columnHeader--emptyGroup', 'columnHeaders', 'columnSeparator--resizable', 'columnSeparator--resizing', 'columnSeparator--sideLeft', 'columnSeparator--sideRight', 'columnSeparator', 'columnsManagement', 'columnsManagementRow', 'columnsManagementHeader', 'columnsManagementSearchInput', 'columnsManagementFooter', 'container--top', 'container--bottom', 'detailPanel', 'detailPanels', 'detailPanelToggleCell', 'detailPanelToggleCell--expanded', 'footerCell', 'panel', 'panelHeader', 'panelWrapper', 'panelContent', 'panelFooter', 'paper', 'editBooleanCell', 'editInputCell', 'filler', 'filler--borderBottom', 'filler--pinnedLeft', 'filler--pinnedRight', 'filterForm', 'filterFormDeleteIcon', 'filterFormLogicOperatorInput', 'filterFormColumnInput', 'filterFormOperatorInput', 'filterFormValueInput', 'filterIcon', 'footerContainer', 'headerFilterRow', 'iconButtonContainer', 'iconSeparator', 'main', 'main--hasPinnedRight', 'main--hasSkeletonLoadingOverlay', 'menu', 'menuIcon', 'menuIconButton', 'menuOpen', 'menuList', 'overlay', 'overlayWrapper', 'overlayWrapperInner', 'root', 'root--densityStandard', 'root--densityComfortable', 'root--densityCompact', 'root--disableUserSelection', 'root--noToolbar', 'row', 'row--editable', 'row--editing', 'row--firstVisible', 'row--lastVisible', 'row--dragging', 'row--dynamicHeight', 'row--detailPanelExpanded', 'row--borderBottom', 'rowReorderCellPlaceholder', 'rowCount', 'rowReorderCellContainer', 'rowReorderCell', 'rowReorderCell--draggable', 'rowSkeleton', 'scrollArea--left', 'scrollArea--right', 'scrollArea', 'scrollbar', 'scrollbar--vertical', 'scrollbar--horizontal', 'scrollbarFiller', 'scrollbarFiller--header', 'scrollbarFiller--borderTop', 'scrollbarFiller--borderBottom', 'scrollbarFiller--pinnedRight', 'selectedRowCount', 'sortIcon', 'toolbarContainer', 'toolbarFilterList', 'toolbarPromptControl', 'toolbarPromptControl--recording', 'toolbarPromptControlRecordingIndicator', 'toolbarPromptControlRecordButton', 'toolbarPromptControlSendButton', 'virtualScroller', 'virtualScroller--hasScrollX', 'virtualScrollerContent', 'virtualScrollerContent--overflowed', 'virtualScrollerRenderZone', 'pinnedColumns', 'withVerticalBorder', 'withBorderColor', 'cell--withRightBorder', 'cell--withLeftBorder', 'columnHeader--withRightBorder', 'columnHeader--withLeftBorder', 'treeDataGroupingCell', 'treeDataGroupingCellToggle', 'treeDataGroupingCellLoadingContainer', 'groupingCriteriaCell', 'groupingCriteriaCellToggle', 'groupingCriteriaCellLoadingContainer', 'pinnedRows', 'pinnedRows--top', 'pinnedRows--bottom', 'pinnedRowsRenderZone']);
12
+ const gridClasses = exports.gridClasses = (0, _utils.unstable_generateUtilityClasses)('MuiDataGrid', ['actionsCell', 'aggregationColumnHeader', 'aggregationColumnHeader--alignLeft', 'aggregationColumnHeader--alignCenter', 'aggregationColumnHeader--alignRight', 'aggregationColumnHeaderLabel', 'autoHeight', 'autosizing', 'booleanCell', 'cell--editable', 'cell--editing', 'cell--flex', 'cell--textCenter', 'cell--textLeft', 'cell--textRight', 'cell--rangeTop', 'cell--rangeBottom', 'cell--rangeLeft', 'cell--rangeRight', 'cell--pinnedLeft', 'cell--pinnedRight', 'cell--selectionMode', 'cell', 'cellCheckbox', 'cellEmpty', 'cellSkeleton', 'cellOffsetLeft', 'checkboxInput', 'columnHeader', 'columnHeader--alignCenter', 'columnHeader--alignLeft', 'columnHeader--alignRight', 'columnHeader--dragging', 'columnHeader--moving', 'columnHeader--numeric', 'columnHeader--sortable', 'columnHeader--sorted', 'columnHeader--filtered', 'columnHeader--pinnedLeft', 'columnHeader--pinnedRight', 'columnHeader--last', 'columnHeader--lastUnpinned', 'columnHeader--siblingFocused', 'columnHeader--filter', 'columnHeaderFilterInput', 'columnHeaderFilterOperatorLabel', 'columnHeaderCheckbox', 'columnHeaderDraggableContainer', 'columnHeaderTitle', 'columnHeaderTitleContainer', 'columnHeaderTitleContainerContent', 'columnHeader--filledGroup', 'columnHeader--emptyGroup', 'columnHeaders', 'columnSeparator--resizable', 'columnSeparator--resizing', 'columnSeparator--sideLeft', 'columnSeparator--sideRight', 'columnSeparator', 'columnsManagement', 'columnsManagementRow', 'columnsManagementHeader', 'columnsManagementSearchInput', 'columnsManagementFooter', 'container--top', 'container--bottom', 'detailPanel', 'detailPanels', 'detailPanelToggleCell', 'detailPanelToggleCell--expanded', 'footerCell', 'panel', 'panelHeader', 'panelWrapper', 'panelContent', 'panelFooter', 'paper', 'editBooleanCell', 'editInputCell', 'filler', 'filler--borderBottom', 'filler--pinnedLeft', 'filler--pinnedRight', 'filterForm', 'filterFormDeleteIcon', 'filterFormLogicOperatorInput', 'filterFormColumnInput', 'filterFormOperatorInput', 'filterFormValueInput', 'filterIcon', 'footerContainer', 'headerFilterRow', 'iconButtonContainer', 'iconSeparator', 'main', 'main--hasPinnedRight', 'main--hasSkeletonLoadingOverlay', 'menu', 'menuIcon', 'menuIconButton', 'menuOpen', 'menuList', 'overlay', 'overlayWrapper', 'overlayWrapperInner', 'root', 'root--densityStandard', 'root--densityComfortable', 'root--densityCompact', 'root--disableUserSelection', 'root--noToolbar', 'row', 'row--editable', 'row--editing', 'row--firstVisible', 'row--lastVisible', 'row--dragging', 'row--dynamicHeight', 'row--detailPanelExpanded', 'row--borderBottom', 'rowReorderCellPlaceholder', 'rowCount', 'rowReorderCellContainer', 'rowReorderCell', 'rowReorderCell--draggable', 'rowSkeleton', 'scrollArea--left', 'scrollArea--right', 'scrollArea', 'scrollbar', 'scrollbar--vertical', 'scrollbar--horizontal', 'scrollbarFiller', 'scrollbarFiller--header', 'scrollbarFiller--borderTop', 'scrollbarFiller--borderBottom', 'scrollbarFiller--pinnedRight', 'selectedRowCount', 'sortIcon', 'toolbarContainer', 'toolbarFilterList', 'toolbarPromptControl', 'toolbarPromptControl--recording', 'toolbarPromptControlRecordingIndicator', 'toolbarPromptControlRecordButton', 'toolbarPromptControlSendButton', 'virtualScroller', 'virtualScroller--hasScrollX', 'virtualScrollerContent', 'virtualScrollerContent--overflowed', 'virtualScrollerRenderZone', 'pinnedColumns', 'withVerticalBorder', 'withBorderColor', 'cell--withRightBorder', 'cell--withLeftBorder', 'columnHeader--withRightBorder', 'columnHeader--withLeftBorder', 'treeDataGroupingCell', 'treeDataGroupingCellToggle', 'treeDataGroupingCellLoadingContainer', 'groupingCriteriaCell', 'groupingCriteriaCellToggle', 'groupingCriteriaCellLoadingContainer', 'pinnedRows', 'pinnedRows--top', 'pinnedRows--bottom', 'pinnedRowsRenderZone']);
@@ -104,6 +104,7 @@ const GRID_DEFAULT_LOCALE_TEXT = exports.GRID_DEFAULT_LOCALE_TEXT = {
104
104
  'headerFilterOperator>=': 'Greater than or equal to',
105
105
  'headerFilterOperator<': 'Less than',
106
106
  'headerFilterOperator<=': 'Less than or equal to',
107
+ headerFilterClear: 'Clear filter',
107
108
  // Filter values text
108
109
  filterValueAny: 'any',
109
110
  filterValueTrue: 'true',