@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
@@ -140,11 +140,11 @@ function GridColumnsManagement(props) {
140
140
  endAdornment: /*#__PURE__*/_jsx(rootProps.slots.baseIconButton, _extends({
141
141
  "aria-label": apiRef.current.getLocaleText('columnsManagementDeleteIconLabel'),
142
142
  size: "small",
143
- sx: [searchValue ? {
143
+ style: searchValue ? {
144
144
  visibility: 'visible'
145
145
  } : {
146
146
  visibility: 'hidden'
147
- }],
147
+ },
148
148
  tabIndex: -1,
149
149
  onClick: handleSearchReset
150
150
  }, rootProps.slotProps?.baseIconButton, {
@@ -7,5 +7,5 @@ export interface GridRootProps extends React.HTMLAttributes<HTMLDivElement> {
7
7
  */
8
8
  sx?: SxProps<Theme>;
9
9
  }
10
- declare const GridRoot: React.ForwardRefExoticComponent<GridRootProps> | React.ForwardRefExoticComponent<GridRootProps & React.RefAttributes<HTMLDivElement>>;
11
- export { GridRoot };
10
+ declare const MemoizedGridRoot: React.ForwardRefExoticComponent<GridRootProps> | React.ForwardRefExoticComponent<GridRootProps & React.RefAttributes<HTMLDivElement>>;
11
+ export { MemoizedGridRoot as GridRoot };
@@ -1,10 +1,11 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
- const _excluded = ["className"];
3
+ const _excluded = ["className", "children"];
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import clsx from 'clsx';
7
7
  import { unstable_useForkRef as useForkRef, unstable_useEnhancedEffect as useEnhancedEffect, unstable_capitalize as capitalize, unstable_composeClasses as composeClasses } from '@mui/utils';
8
+ import { fastMemo } from '@mui/x-internals/fastMemo';
8
9
  import { forwardRef } from '@mui/x-internals/forwardRef';
9
10
  import { GridRootStyles } from "./GridRootStyles.js";
10
11
  import { useGridSelector } from "../../hooks/utils/useGridSelector.js";
@@ -12,7 +13,9 @@ import { useGridPrivateApiContext } from "../../hooks/utils/useGridPrivateApiCon
12
13
  import { useGridRootProps } from "../../hooks/utils/useGridRootProps.js";
13
14
  import { getDataGridUtilityClass } from "../../constants/gridClasses.js";
14
15
  import { gridDensitySelector } from "../../hooks/features/density/densitySelector.js";
15
- import { jsx as _jsx } from "react/jsx-runtime";
16
+ import { GridHeader } from "../GridHeader.js";
17
+ import { GridBody, GridFooterPlaceholder } from "../base/index.js";
18
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
16
19
  const useUtilityClasses = (ownerState, density) => {
17
20
  const {
18
21
  autoHeight,
@@ -27,7 +30,8 @@ const useUtilityClasses = (ownerState, density) => {
27
30
  const GridRoot = forwardRef(function GridRoot(props, ref) {
28
31
  const rootProps = useGridRootProps();
29
32
  const {
30
- className
33
+ className,
34
+ children
31
35
  } = props,
32
36
  other = _objectWithoutPropertiesLoose(props, _excluded);
33
37
  const apiRef = useGridPrivateApiContext();
@@ -45,11 +49,14 @@ const GridRoot = forwardRef(function GridRoot(props, ref) {
45
49
  if (!mountedState) {
46
50
  return null;
47
51
  }
48
- return /*#__PURE__*/_jsx(GridRootStyles, _extends({
52
+ return /*#__PURE__*/_jsxs(GridRootStyles, _extends({
49
53
  className: clsx(classes.root, className),
50
54
  ownerState: ownerState
51
55
  }, other, {
52
- ref: handleRef
56
+ ref: handleRef,
57
+ children: [/*#__PURE__*/_jsx(GridHeader, {}), /*#__PURE__*/_jsx(GridBody, {
58
+ children: children
59
+ }), /*#__PURE__*/_jsx(GridFooterPlaceholder, {})]
53
60
  }));
54
61
  });
55
62
  process.env.NODE_ENV !== "production" ? GridRoot.propTypes = {
@@ -62,4 +69,5 @@ process.env.NODE_ENV !== "production" ? GridRoot.propTypes = {
62
69
  */
63
70
  sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])
64
71
  } : void 0;
65
- export { GridRoot };
72
+ const MemoizedGridRoot = fastMemo(GridRoot);
73
+ export { MemoizedGridRoot as GridRoot };
@@ -331,6 +331,13 @@ export const GridRootStyles = styled('div', {
331
331
  display: 'flex',
332
332
  alignItems: 'center'
333
333
  },
334
+ [`& .${c['columnHeader--filter']}`]: {
335
+ paddingTop: 8,
336
+ paddingBottom: 8,
337
+ paddingRight: 5,
338
+ minHeight: 'min-content',
339
+ overflow: 'hidden'
340
+ },
334
341
  [`& .${c['virtualScroller--hasScrollX']} .${c['columnHeader--last']}`]: {
335
342
  overflow: 'hidden'
336
343
  },
@@ -16,7 +16,7 @@ export interface GridPanelProps extends Partial<React.ComponentProps<typeof Grid
16
16
  open: boolean;
17
17
  }
18
18
  export declare const gridPanelClasses: Record<keyof GridPanelClasses, string>;
19
- declare const GridPanelRoot: import("@emotion/styled").StyledComponent<Pick<import("@mui/material").PopperProps & React.RefAttributes<HTMLDivElement>, "hidden" | "color" | "content" | "style" | "open" | "translate" | "container" | "transition" | "slot" | "title" | "ref" | "suppressHydrationWarning" | "className" | "id" | "lang" | "role" | "tabIndex" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-braillelabel" | "aria-brailleroledescription" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colindextext" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-description" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowindextext" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "children" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onResize" | "onResizeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerLeave" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "key" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "accessKey" | "autoCapitalize" | "autoFocus" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "enterKeyHint" | "nonce" | "spellCheck" | "radioGroup" | "about" | "datatype" | "inlist" | "prefix" | "property" | "rel" | "resource" | "rev" | "typeof" | "vocab" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "component" | "sx" | "components" | "componentsProps" | "placement" | "disablePortal" | "modifiers" | "anchorEl" | "keepMounted" | "popperOptions" | "popperRef" | "slotProps" | "slots"> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme> & {
19
+ declare const GridPanelRoot: import("@emotion/styled").StyledComponent<Pick<import("@mui/material").PopperProps & React.RefAttributes<HTMLDivElement>, "id" | "children" | "tabIndex" | "ref" | "className" | "style" | "color" | "componentsProps" | "components" | "slotProps" | "slots" | "sx" | "slot" | "title" | "key" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "autoCapitalize" | "autoFocus" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "enterKeyHint" | "hidden" | "lang" | "nonce" | "spellCheck" | "translate" | "radioGroup" | "role" | "about" | "content" | "datatype" | "inlist" | "prefix" | "property" | "rel" | "resource" | "rev" | "typeof" | "vocab" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "popover" | "popoverTargetAction" | "popoverTarget" | "inert" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-braillelabel" | "aria-brailleroledescription" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colindextext" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-description" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowindextext" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onResize" | "onResizeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerLeave" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onToggle" | "onBeforeToggle" | "onTransitionCancel" | "onTransitionCancelCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "onTransitionRun" | "onTransitionRunCapture" | "onTransitionStart" | "onTransitionStartCapture" | "container" | "transition" | "component" | "open" | "disablePortal" | "anchorEl" | "keepMounted" | "modifiers" | "placement" | "popperOptions" | "popperRef"> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme> & {
20
20
  ownerState: OwnerState;
21
21
  }, {}, {}>;
22
22
  declare const GridPanel: React.ForwardRefExoticComponent<GridPanelProps> | React.ForwardRefExoticComponent<Omit<GridPanelProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
@@ -2,6 +2,7 @@ import * as React from 'react';
2
2
  import { TextFieldProps } from '@mui/material/TextField';
3
3
  import { GridFilterInputValueProps } from './GridFilterInputValueProps';
4
4
  export type GridFilterInputBooleanProps = GridFilterInputValueProps & TextFieldProps & {
5
+ headerFilterMenu?: React.ReactNode;
5
6
  clearButton?: React.ReactNode | null;
6
7
  /**
7
8
  * It is `true` if the filter either has a value or an operator with no value
@@ -1,30 +1,24 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
- const _excluded = ["item", "applyValue", "apiRef", "focusElementRef", "isFilterActive", "clearButton", "tabIndex", "label", "variant", "InputLabelProps"];
3
+ const _excluded = ["item", "applyValue", "apiRef", "focusElementRef", "isFilterActive", "headerFilterMenu", "clearButton", "tabIndex", "label", "variant", "InputProps", "InputLabelProps", "sx"];
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import { refType, unstable_useId as useId } from '@mui/utils';
7
- import { styled } from '@mui/material/styles';
8
7
  import { useGridRootProps } from "../../../hooks/utils/useGridRootProps.js";
9
8
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
- const BooleanOperatorContainer = styled('div')({
11
- display: 'flex',
12
- alignItems: 'center',
13
- width: '100%',
14
- [`& button`]: {
15
- margin: 'auto 0px 5px 5px'
16
- }
17
- });
18
9
  function GridFilterInputBoolean(props) {
19
10
  const {
20
11
  item,
21
12
  applyValue,
22
13
  apiRef,
23
14
  focusElementRef,
15
+ headerFilterMenu,
24
16
  clearButton,
25
17
  tabIndex,
26
18
  label: labelProp,
27
- variant = 'standard'
19
+ variant = 'outlined',
20
+ InputProps,
21
+ sx
28
22
  } = props,
29
23
  others = _objectWithoutPropertiesLoose(props, _excluded);
30
24
  const [filterValueState, setFilterValueState] = React.useState(sanitizeFilterItemValue(item.value));
@@ -45,9 +39,10 @@ function GridFilterInputBoolean(props) {
45
39
  setFilterValueState(sanitizeFilterItemValue(item.value));
46
40
  }, [item.value]);
47
41
  const label = labelProp ?? apiRef.current.getLocaleText('filterPanelInputLabel');
48
- return /*#__PURE__*/_jsxs(BooleanOperatorContainer, {
42
+ return /*#__PURE__*/_jsxs(React.Fragment, {
49
43
  children: [/*#__PURE__*/_jsxs(rootProps.slots.baseFormControl, {
50
44
  fullWidth: true,
45
+ sx: sx,
51
46
  children: [/*#__PURE__*/_jsx(rootProps.slots.baseInputLabel, _extends({}, rootProps.slotProps?.baseInputLabel, {
52
47
  id: labelId,
53
48
  shrink: true,
@@ -63,11 +58,11 @@ function GridFilterInputBoolean(props) {
63
58
  notched: variant === 'outlined' ? true : undefined,
64
59
  native: isSelectNative,
65
60
  displayEmpty: true,
66
- inputProps: {
61
+ inputProps: _extends({
67
62
  ref: focusElementRef,
68
63
  tabIndex
69
- }
70
- }, others /* FIXME: typing error */, baseSelectProps, {
64
+ }, InputProps?.inputProps)
65
+ }, baseSelectProps, others /* FIXME: typing error */, {
71
66
  children: [/*#__PURE__*/_jsx(rootProps.slots.baseSelectOption, _extends({}, baseSelectOptionProps, {
72
67
  native: isSelectNative,
73
68
  value: "",
@@ -82,7 +77,7 @@ function GridFilterInputBoolean(props) {
82
77
  children: apiRef.current.getLocaleText('filterValueFalse')
83
78
  }))]
84
79
  }))]
85
- }), clearButton]
80
+ }), headerFilterMenu, clearButton]
86
81
  });
87
82
  }
88
83
  export function sanitizeFilterItemValue(value) {
@@ -105,6 +100,7 @@ process.env.NODE_ENV !== "production" ? GridFilterInputBoolean.propTypes = {
105
100
  applyValue: PropTypes.func.isRequired,
106
101
  clearButton: PropTypes.node,
107
102
  focusElementRef: refType,
103
+ headerFilterMenu: PropTypes.node,
108
104
  /**
109
105
  * It is `true` if the filter either has a value or an operator with no value
110
106
  * required is selected (for example `isEmpty`)
@@ -2,8 +2,9 @@ import * as React from 'react';
2
2
  import { TextFieldProps } from '@mui/material/TextField';
3
3
  import { GridFilterInputValueProps } from './GridFilterInputValueProps';
4
4
  export type GridFilterInputDateProps = GridFilterInputValueProps & TextFieldProps & {
5
- type?: 'date' | 'datetime-local';
5
+ headerFilterMenu?: React.ReactNode;
6
6
  clearButton?: React.ReactNode | null;
7
+ type?: 'date' | 'datetime-local';
7
8
  /**
8
9
  * It is `true` if the filter either has a value or an operator with no value
9
10
  * required is selected (for example `isEmpty`)
@@ -1,12 +1,12 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
- const _excluded = ["item", "applyValue", "type", "apiRef", "focusElementRef", "InputProps", "isFilterActive", "clearButton", "tabIndex", "disabled"];
3
+ const _excluded = ["item", "applyValue", "type", "apiRef", "focusElementRef", "InputProps", "isFilterActive", "headerFilterMenu", "clearButton", "tabIndex", "disabled"];
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import { unstable_useId as useId } from '@mui/utils';
7
7
  import { useTimeout } from "../../../hooks/utils/useTimeout.js";
8
8
  import { useGridRootProps } from "../../../hooks/utils/useGridRootProps.js";
9
- import { jsx as _jsx } from "react/jsx-runtime";
9
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
10
  function convertFilterItemValueToInputValue(itemValue, inputType) {
11
11
  if (itemValue == null) {
12
12
  return '';
@@ -35,6 +35,7 @@ function GridFilterInputDate(props) {
35
35
  apiRef,
36
36
  focusElementRef,
37
37
  InputProps,
38
+ headerFilterMenu,
38
39
  clearButton,
39
40
  tabIndex,
40
41
  disabled
@@ -62,33 +63,34 @@ function GridFilterInputDate(props) {
62
63
  const value = convertFilterItemValueToInputValue(item.value, type);
63
64
  setFilterValueState(value);
64
65
  }, [item.value, type]);
65
- return /*#__PURE__*/_jsx(rootProps.slots.baseTextField, _extends({
66
- fullWidth: true,
67
- id: id,
68
- label: apiRef.current.getLocaleText('filterPanelInputLabel'),
69
- placeholder: apiRef.current.getLocaleText('filterPanelInputPlaceholder'),
70
- value: filterValueState,
71
- onChange: onFilterChange,
72
- variant: "standard",
73
- type: type || 'text',
74
- InputLabelProps: {
75
- shrink: true
76
- },
77
- inputRef: focusElementRef,
78
- InputProps: _extends({}, applying || clearButton ? {
79
- endAdornment: applying ? /*#__PURE__*/_jsx(rootProps.slots.loadIcon, {
80
- fontSize: "small",
81
- color: "action"
82
- }) : clearButton
83
- } : {}, {
84
- disabled
85
- }, InputProps, {
86
- inputProps: _extends({
87
- max: type === 'datetime-local' ? '9999-12-31T23:59' : '9999-12-31',
88
- tabIndex
89
- }, InputProps?.inputProps)
90
- })
91
- }, other, rootProps.slotProps?.baseTextField));
66
+ return /*#__PURE__*/_jsxs(React.Fragment, {
67
+ children: [/*#__PURE__*/_jsx(rootProps.slots.baseTextField, _extends({
68
+ fullWidth: true,
69
+ id: id,
70
+ label: apiRef.current.getLocaleText('filterPanelInputLabel'),
71
+ placeholder: apiRef.current.getLocaleText('filterPanelInputPlaceholder'),
72
+ value: filterValueState,
73
+ onChange: onFilterChange,
74
+ variant: "standard",
75
+ type: type || 'text',
76
+ disabled: disabled,
77
+ InputLabelProps: {
78
+ shrink: true
79
+ },
80
+ inputRef: focusElementRef,
81
+ InputProps: _extends({
82
+ endAdornment: applying ? /*#__PURE__*/_jsx(rootProps.slots.loadIcon, {
83
+ fontSize: "small",
84
+ color: "action"
85
+ }) : null
86
+ }, InputProps, {
87
+ inputProps: _extends({
88
+ max: type === 'datetime-local' ? '9999-12-31T23:59' : '9999-12-31',
89
+ tabIndex
90
+ }, InputProps?.inputProps)
91
+ })
92
+ }, rootProps.slotProps?.baseTextField, other)), headerFilterMenu, clearButton]
93
+ });
92
94
  }
93
95
  process.env.NODE_ENV !== "production" ? GridFilterInputDate.propTypes = {
94
96
  // ----------------------------- Warning --------------------------------
@@ -101,6 +103,7 @@ process.env.NODE_ENV !== "production" ? GridFilterInputDate.propTypes = {
101
103
  applyValue: PropTypes.func.isRequired,
102
104
  clearButton: PropTypes.node,
103
105
  focusElementRef: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.func, PropTypes.object]),
106
+ headerFilterMenu: PropTypes.node,
104
107
  /**
105
108
  * It is `true` if the filter either has a value or an operator with no value
106
109
  * required is selected (for example `isEmpty`)
@@ -20,7 +20,7 @@ function GridFilterInputMultipleSingleSelect(props) {
20
20
  error,
21
21
  helperText,
22
22
  size,
23
- variant = 'standard'
23
+ variant = 'outlined'
24
24
  } = props,
25
25
  other = _objectWithoutPropertiesLoose(props, _excluded);
26
26
  const TextFieldProps = {
@@ -19,7 +19,7 @@ function GridFilterInputMultipleValue(props) {
19
19
  error,
20
20
  helperText,
21
21
  size,
22
- variant = 'standard'
22
+ variant = 'outlined'
23
23
  } = props,
24
24
  other = _objectWithoutPropertiesLoose(props, _excluded);
25
25
  const TextFieldProps = {
@@ -2,6 +2,7 @@ import * as React from 'react';
2
2
  import { TextFieldProps } from '@mui/material/TextField';
3
3
  import { GridFilterInputValueProps } from './GridFilterInputValueProps';
4
4
  export type GridFilterInputSingleSelectProps = GridFilterInputValueProps & TextFieldProps & {
5
+ headerFilterMenu?: React.ReactNode;
5
6
  clearButton?: React.ReactNode | null;
6
7
  /**
7
8
  * It is `true` if the filter either has a value or an operator with no value
@@ -1,10 +1,9 @@
1
1
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
2
2
  import _extends from "@babel/runtime/helpers/esm/extends";
3
- const _excluded = ["item", "applyValue", "type", "apiRef", "focusElementRef", "placeholder", "tabIndex", "label", "variant", "isFilterActive", "clearButton", "InputLabelProps"];
3
+ const _excluded = ["item", "applyValue", "type", "apiRef", "focusElementRef", "placeholder", "tabIndex", "label", "variant", "isFilterActive", "clearButton", "headerFilterMenu", "InputProps", "InputLabelProps", "sx"];
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import { unstable_useId as useId } from '@mui/utils';
7
- import { styled } from '@mui/material/styles';
8
7
  import { useGridRootProps } from "../../../hooks/utils/useGridRootProps.js";
9
8
  import { getValueFromValueOptions, getValueOptions, isSingleSelectColDef } from "./filterPanelUtils.js";
10
9
  import { createElement as _createElement } from "react";
@@ -31,14 +30,6 @@ const renderSingleSelectOptions = ({
31
30
  }), label);
32
31
  });
33
32
  };
34
- const SingleSelectOperatorContainer = styled('div')({
35
- display: 'flex',
36
- alignItems: 'flex-end',
37
- width: '100%',
38
- [`& button`]: {
39
- margin: 'auto 0px 5px 5px'
40
- }
41
- });
42
33
  function GridFilterInputSingleSelect(props) {
43
34
  const {
44
35
  item,
@@ -49,8 +40,11 @@ function GridFilterInputSingleSelect(props) {
49
40
  placeholder,
50
41
  tabIndex,
51
42
  label: labelProp,
52
- variant = 'standard',
53
- clearButton
43
+ variant = 'outlined',
44
+ clearButton,
45
+ headerFilterMenu,
46
+ InputProps,
47
+ sx
54
48
  } = props,
55
49
  others = _objectWithoutPropertiesLoose(props, _excluded);
56
50
  const filterValue = item.value ?? '';
@@ -83,9 +77,10 @@ function GridFilterInputSingleSelect(props) {
83
77
  return null;
84
78
  }
85
79
  const label = labelProp ?? apiRef.current.getLocaleText('filterPanelInputLabel');
86
- return /*#__PURE__*/_jsxs(SingleSelectOperatorContainer, {
80
+ return /*#__PURE__*/_jsxs(React.Fragment, {
87
81
  children: [/*#__PURE__*/_jsxs(rootProps.slots.baseFormControl, {
88
82
  fullWidth: true,
83
+ sx: sx,
89
84
  children: [/*#__PURE__*/_jsx(rootProps.slots.baseInputLabel, _extends({}, rootProps.slotProps?.baseInputLabel, {
90
85
  id: labelId,
91
86
  htmlFor: id,
@@ -100,14 +95,14 @@ function GridFilterInputSingleSelect(props) {
100
95
  onChange: onFilterChange,
101
96
  variant: variant,
102
97
  type: type || 'text',
103
- inputProps: {
98
+ inputProps: _extends({
104
99
  tabIndex,
105
100
  ref: focusElementRef,
106
101
  placeholder: placeholder ?? apiRef.current.getLocaleText('filterPanelInputPlaceholder')
107
- },
102
+ }, InputProps?.inputProps),
108
103
  native: isSelectNative,
109
104
  notched: variant === 'outlined' ? true : undefined
110
- }, others /* FIXME: typing error */, rootProps.slotProps?.baseSelect, {
105
+ }, rootProps.slotProps?.baseSelect, others /* FIXME: typing error */, {
111
106
  children: renderSingleSelectOptions({
112
107
  column: resolvedColumn,
113
108
  OptionComponent: rootProps.slots.baseSelectOption,
@@ -117,7 +112,7 @@ function GridFilterInputSingleSelect(props) {
117
112
  baseSelectOptionProps: rootProps.slotProps?.baseSelectOption
118
113
  })
119
114
  }))]
120
- }), clearButton]
115
+ }), headerFilterMenu, clearButton]
121
116
  });
122
117
  }
123
118
  process.env.NODE_ENV !== "production" ? GridFilterInputSingleSelect.propTypes = {
@@ -131,6 +126,7 @@ process.env.NODE_ENV !== "production" ? GridFilterInputSingleSelect.propTypes =
131
126
  applyValue: PropTypes.func.isRequired,
132
127
  clearButton: PropTypes.node,
133
128
  focusElementRef: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.func, PropTypes.object]),
129
+ headerFilterMenu: PropTypes.node,
134
130
  /**
135
131
  * It is `true` if the filter either has a value or an operator with no value
136
132
  * required is selected (for example `isEmpty`)
@@ -3,6 +3,7 @@ import { TextFieldProps } from '@mui/material/TextField';
3
3
  import { GridFilterInputValueProps } from './GridFilterInputValueProps';
4
4
  export type GridTypeFilterInputValueProps = GridFilterInputValueProps & TextFieldProps & {
5
5
  type?: 'text' | 'number' | 'date' | 'datetime-local';
6
+ headerFilterMenu?: React.ReactNode;
6
7
  clearButton?: React.ReactNode | null;
7
8
  /**
8
9
  * It is `true` if the filter either has a value or an operator with no value
@@ -1,12 +1,12 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
- const _excluded = ["item", "applyValue", "type", "apiRef", "focusElementRef", "tabIndex", "disabled", "isFilterActive", "clearButton", "InputProps", "variant"];
3
+ const _excluded = ["item", "applyValue", "type", "apiRef", "focusElementRef", "tabIndex", "disabled", "isFilterActive", "clearButton", "headerFilterMenu", "InputProps", "variant"];
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import { unstable_useId as useId } from '@mui/utils';
7
7
  import { useTimeout } from "../../../hooks/utils/useTimeout.js";
8
8
  import { useGridRootProps } from "../../../hooks/utils/useGridRootProps.js";
9
- import { jsx as _jsx } from "react/jsx-runtime";
9
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
10
  function GridFilterInputValue(props) {
11
11
  const {
12
12
  item,
@@ -17,22 +17,23 @@ function GridFilterInputValue(props) {
17
17
  tabIndex,
18
18
  disabled,
19
19
  clearButton,
20
+ headerFilterMenu,
20
21
  InputProps,
21
- variant = 'standard'
22
+ variant = 'outlined'
22
23
  } = props,
23
24
  others = _objectWithoutPropertiesLoose(props, _excluded);
24
25
  const filterTimeout = useTimeout();
25
- const [filterValueState, setFilterValueState] = React.useState(sanitizeFilterItemValue(item.value, type));
26
+ const [filterValueState, setFilterValueState] = React.useState(sanitizeFilterItemValue(item.value));
26
27
  const [applying, setIsApplying] = React.useState(false);
27
28
  const id = useId();
28
29
  const rootProps = useGridRootProps();
29
30
  const onFilterChange = React.useCallback(event => {
30
- const value = sanitizeFilterItemValue(event.target.value, type);
31
+ const value = sanitizeFilterItemValue(event.target.value);
31
32
  setFilterValueState(value);
32
33
  setIsApplying(true);
33
34
  filterTimeout.start(rootProps.filterDebounceMs, () => {
34
35
  const newItem = _extends({}, item, {
35
- value,
36
+ value: type === 'number' && !Number.isNaN(Number(value)) ? Number(value) : value,
36
37
  fromInput: id
37
38
  });
38
39
  applyValue(newItem);
@@ -42,42 +43,43 @@ function GridFilterInputValue(props) {
42
43
  React.useEffect(() => {
43
44
  const itemPlusTag = item;
44
45
  if (itemPlusTag.fromInput !== id || item.value == null) {
45
- setFilterValueState(sanitizeFilterItemValue(item.value, type));
46
+ setFilterValueState(sanitizeFilterItemValue(item.value));
46
47
  }
47
- }, [id, item, type]);
48
- return /*#__PURE__*/_jsx(rootProps.slots.baseTextField, _extends({
49
- id: id,
50
- label: apiRef.current.getLocaleText('filterPanelInputLabel'),
51
- placeholder: apiRef.current.getLocaleText('filterPanelInputPlaceholder'),
52
- value: filterValueState === undefined ? '' : String(filterValueState),
53
- onChange: onFilterChange,
54
- variant: variant,
55
- type: type || 'text',
56
- InputProps: _extends({}, applying || clearButton ? {
57
- endAdornment: applying ? /*#__PURE__*/_jsx(rootProps.slots.loadIcon, {
58
- fontSize: "small",
59
- color: "action"
60
- }) : clearButton
61
- } : {}, {
62
- disabled
63
- }, InputProps, {
64
- inputProps: _extends({
65
- tabIndex
66
- }, InputProps?.inputProps)
67
- }),
68
- InputLabelProps: {
69
- shrink: true
70
- },
71
- inputRef: focusElementRef
72
- }, others, rootProps.slotProps?.baseTextField));
48
+ }, [id, item]);
49
+ return /*#__PURE__*/_jsxs(React.Fragment, {
50
+ children: [/*#__PURE__*/_jsx(rootProps.slots.baseTextField, _extends({
51
+ id: id,
52
+ label: apiRef.current.getLocaleText('filterPanelInputLabel'),
53
+ placeholder: apiRef.current.getLocaleText('filterPanelInputPlaceholder'),
54
+ value: filterValueState ?? '',
55
+ onChange: onFilterChange,
56
+ variant: variant,
57
+ type: type || 'text',
58
+ disabled: disabled,
59
+ InputProps: _extends({
60
+ endAdornment: applying ? /*#__PURE__*/_jsx(rootProps.slots.baseInputAdornment, {
61
+ position: "end",
62
+ children: /*#__PURE__*/_jsx(rootProps.slots.loadIcon, {
63
+ fontSize: "small",
64
+ color: "action"
65
+ })
66
+ }) : null
67
+ }, InputProps, {
68
+ inputProps: _extends({
69
+ tabIndex
70
+ }, InputProps?.inputProps)
71
+ }),
72
+ InputLabelProps: {
73
+ shrink: true
74
+ },
75
+ inputRef: focusElementRef
76
+ }, rootProps.slotProps?.baseTextField, others)), headerFilterMenu, clearButton]
77
+ });
73
78
  }
74
- function sanitizeFilterItemValue(value, type) {
79
+ function sanitizeFilterItemValue(value) {
75
80
  if (value == null || value === '') {
76
81
  return undefined;
77
82
  }
78
- if (type === 'number') {
79
- return Number(value);
80
- }
81
83
  return String(value);
82
84
  }
83
85
  process.env.NODE_ENV !== "production" ? GridFilterInputValue.propTypes = {
@@ -91,6 +93,7 @@ process.env.NODE_ENV !== "production" ? GridFilterInputValue.propTypes = {
91
93
  applyValue: PropTypes.func.isRequired,
92
94
  clearButton: PropTypes.node,
93
95
  focusElementRef: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.func, PropTypes.object]),
96
+ headerFilterMenu: PropTypes.node,
94
97
  /**
95
98
  * It is `true` if the filter either has a value or an operator with no value
96
99
  * required is selected (for example `isEmpty`)
@@ -6,6 +6,6 @@ import type { GridApiCommunity } from '../../../models/api/gridApiCommunity';
6
6
  export type GridFilterInputValueProps<Api extends GridApiCommon = GridApiCommunity> = {
7
7
  item: GridFilterItem;
8
8
  applyValue: (value: GridFilterItem) => void;
9
- apiRef: React.MutableRefObject<Api>;
9
+ apiRef: React.RefObject<Api>;
10
10
  focusElementRef?: React.Ref<any>;
11
11
  } & Pick<TextFieldProps, 'color' | 'error' | 'helperText' | 'size' | 'variant'>;
@@ -109,11 +109,11 @@ function GridToolbarQuickFilter(props) {
109
109
  "aria-label": apiRef.current.getLocaleText('toolbarQuickFilterDeleteIconLabel'),
110
110
  size: "small",
111
111
  edge: "end",
112
- sx: [searchValue ? {
112
+ style: searchValue ? {
113
113
  visibility: 'visible'
114
114
  } : {
115
115
  visibility: 'hidden'
116
- }],
116
+ },
117
117
  onClick: handleSearchReset
118
118
  }, rootProps.slotProps?.baseIconButton, {
119
119
  children: /*#__PURE__*/_jsx(rootProps.slots.quickFilterClearIcon, {