@mui/x-data-grid 8.0.0-alpha.1 → 8.0.0-alpha.10

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 (762) hide show
  1. package/CHANGELOG.md +1903 -231
  2. package/DataGrid/DataGrid.js +20 -38
  3. package/DataGrid/useDataGridComponent.d.ts +2 -1
  4. package/DataGrid/useDataGridComponent.js +1 -1
  5. package/DataGrid/useDataGridProps.js +3 -3
  6. package/README.md +1 -1
  7. package/colDef/gridDateOperators.d.ts +2 -1
  8. package/colDef/gridNumericOperators.d.ts +4 -1
  9. package/components/GridApiContext.js +2 -0
  10. package/components/GridColumnHeaders.d.ts +1 -1
  11. package/components/GridColumnHeaders.js +4 -4
  12. package/components/GridConfigurationContext.js +2 -0
  13. package/components/GridFooter.d.ts +2 -1
  14. package/components/GridFooter.js +4 -4
  15. package/components/GridHeaders.js +2 -2
  16. package/components/GridLoadingOverlay.d.ts +1 -1
  17. package/components/GridLoadingOverlay.js +10 -8
  18. package/components/GridNoResultsOverlay.d.ts +2 -1
  19. package/components/GridNoResultsOverlay.js +4 -4
  20. package/components/GridNoRowsOverlay.d.ts +2 -1
  21. package/components/GridNoRowsOverlay.js +4 -4
  22. package/components/GridPagination.d.ts +1 -1
  23. package/components/GridPagination.js +7 -4
  24. package/components/GridRow.d.ts +6 -11
  25. package/components/GridRow.js +55 -87
  26. package/components/GridRowCount.d.ts +1 -1
  27. package/components/GridRowCount.js +3 -2
  28. package/components/GridScrollArea.js +2 -0
  29. package/components/GridSelectedRowCount.d.ts +4 -1
  30. package/components/GridSelectedRowCount.js +3 -2
  31. package/components/GridSkeletonLoadingOverlay.d.ts +1 -1
  32. package/components/GridSkeletonLoadingOverlay.js +22 -21
  33. package/components/base/GridOverlays.d.ts +4 -3
  34. package/components/base/GridOverlays.js +2 -24
  35. package/components/base/index.d.ts +0 -1
  36. package/components/base/index.js +1 -2
  37. package/components/cell/GridActionsCell.js +8 -1
  38. package/components/cell/GridActionsCellItem.d.ts +17 -10
  39. package/components/cell/GridActionsCellItem.js +9 -8
  40. package/components/cell/GridCell.d.ts +19 -23
  41. package/components/cell/GridCell.js +49 -92
  42. package/components/cell/GridEditDateCell.js +1 -1
  43. package/components/cell/GridEditInputCell.d.ts +1 -1
  44. package/components/cell/GridEditInputCell.js +73 -4
  45. package/components/cell/GridEditSingleSelectCell.js +2 -2
  46. package/components/cell/GridSkeletonCell.js +1 -2
  47. package/components/columnHeaders/ColumnHeaderMenuIcon.d.ts +1 -1
  48. package/components/columnHeaders/GridBaseColumnHeaders.d.ts +1 -1
  49. package/components/columnHeaders/GridBaseColumnHeaders.js +4 -3
  50. package/components/columnHeaders/GridColumnGroupHeader.d.ts +5 -5
  51. package/components/columnHeaders/GridColumnGroupHeader.js +7 -10
  52. package/components/columnHeaders/GridColumnHeaderFilterIconButton.d.ts +3 -3
  53. package/components/columnHeaders/GridColumnHeaderFilterIconButton.js +20 -7
  54. package/components/columnHeaders/GridColumnHeaderItem.d.ts +5 -5
  55. package/components/columnHeaders/GridColumnHeaderItem.js +13 -12
  56. package/components/columnHeaders/GridColumnHeaderTitle.js +5 -3
  57. package/components/columnHeaders/GridGenericColumnHeaderItem.d.ts +1 -1
  58. package/components/columnHeaders/GridGenericColumnHeaderItem.js +3 -2
  59. package/components/columnHeaders/GridIconButtonContainer.d.ts +1 -1
  60. package/components/columnHeaders/GridIconButtonContainer.js +5 -3
  61. package/components/columnSelection/GridCellCheckboxRenderer.d.ts +2 -2
  62. package/components/columnSelection/GridCellCheckboxRenderer.js +11 -9
  63. package/components/columnSelection/GridHeaderCheckbox.d.ts +1 -1
  64. package/components/columnSelection/GridHeaderCheckbox.js +17 -9
  65. package/components/columnsManagement/GridColumnsManagement.d.ts +1 -1
  66. package/components/columnsManagement/GridColumnsManagement.js +50 -27
  67. package/components/containers/GridFooterContainer.d.ts +1 -1
  68. package/components/containers/GridFooterContainer.js +5 -3
  69. package/components/containers/GridOverlay.d.ts +1 -1
  70. package/components/containers/GridOverlay.js +5 -3
  71. package/components/containers/GridRoot.d.ts +2 -2
  72. package/components/containers/GridRoot.js +18 -8
  73. package/components/containers/GridRootStyles.js +160 -50
  74. package/components/containers/GridToolbarContainer.d.ts +1 -1
  75. package/components/containers/GridToolbarContainer.js +3 -2
  76. package/components/menu/columnMenu/GridColumnMenu.d.ts +2 -2
  77. package/components/menu/columnMenu/GridColumnMenu.js +5 -5
  78. package/components/menu/columnMenu/GridColumnMenuContainer.d.ts +1 -1
  79. package/components/menu/columnMenu/GridColumnMenuContainer.js +3 -2
  80. package/components/menu/columnMenu/menuItems/GridColumnMenuFilterItem.js +6 -11
  81. package/components/menu/columnMenu/menuItems/GridColumnMenuHideItem.js +6 -11
  82. package/components/menu/columnMenu/menuItems/GridColumnMenuManageItem.js +6 -11
  83. package/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +13 -22
  84. package/components/panel/GridColumnsPanel.js +1 -2
  85. package/components/panel/GridPanel.d.ts +2 -2
  86. package/components/panel/GridPanel.js +5 -3
  87. package/components/panel/GridPanelContent.js +7 -3
  88. package/components/panel/GridPanelFooter.d.ts +1 -1
  89. package/components/panel/GridPanelFooter.js +4 -3
  90. package/components/panel/GridPanelWrapper.d.ts +1 -1
  91. package/components/panel/GridPanelWrapper.js +5 -3
  92. package/components/panel/filterPanel/GridFilterForm.d.ts +1 -1
  93. package/components/panel/filterPanel/GridFilterForm.js +22 -18
  94. package/components/panel/filterPanel/GridFilterInputBoolean.d.ts +4 -11
  95. package/components/panel/filterPanel/GridFilterInputBoolean.js +41 -31
  96. package/components/panel/filterPanel/GridFilterInputDate.d.ts +3 -9
  97. package/components/panel/filterPanel/GridFilterInputDate.js +50 -31
  98. package/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.d.ts +3 -3
  99. package/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +49 -24
  100. package/components/panel/filterPanel/GridFilterInputMultipleValue.d.ts +3 -3
  101. package/components/panel/filterPanel/GridFilterInputMultipleValue.js +55 -33
  102. package/components/panel/filterPanel/GridFilterInputSingleSelect.d.ts +3 -9
  103. package/components/panel/filterPanel/GridFilterInputSingleSelect.js +34 -25
  104. package/components/panel/filterPanel/GridFilterInputValue.d.ts +3 -9
  105. package/components/panel/filterPanel/GridFilterInputValue.js +63 -38
  106. package/components/panel/filterPanel/GridFilterPanel.d.ts +1 -1
  107. package/components/panel/filterPanel/GridFilterPanel.js +4 -4
  108. package/components/panel/filterPanel/index.d.ts +2 -2
  109. package/components/panel/filterPanel/index.js +1 -2
  110. package/components/toolbar/GridToolbar.d.ts +1 -1
  111. package/components/toolbar/GridToolbar.js +11 -5
  112. package/components/toolbar/GridToolbarColumnsButton.d.ts +1 -1
  113. package/components/toolbar/GridToolbarColumnsButton.js +12 -6
  114. package/components/toolbar/GridToolbarDensitySelector.d.ts +1 -1
  115. package/components/toolbar/GridToolbarDensitySelector.js +9 -11
  116. package/components/toolbar/GridToolbarExport.d.ts +1 -1
  117. package/components/toolbar/GridToolbarExport.js +2 -1
  118. package/components/toolbar/GridToolbarExportContainer.d.ts +1 -1
  119. package/components/toolbar/GridToolbarExportContainer.js +6 -6
  120. package/components/toolbar/GridToolbarFilterButton.d.ts +3 -1
  121. package/components/toolbar/GridToolbarFilterButton.js +20 -9
  122. package/components/toolbar/GridToolbarQuickFilter.d.ts +6 -2
  123. package/components/toolbar/GridToolbarQuickFilter.js +39 -31
  124. package/components/virtualization/GridMainContainer.d.ts +13 -1
  125. package/components/virtualization/GridMainContainer.js +14 -5
  126. package/components/virtualization/GridVirtualScrollbar.d.ts +5 -1
  127. package/components/virtualization/GridVirtualScrollbar.js +17 -17
  128. package/components/virtualization/GridVirtualScroller.js +27 -12
  129. package/components/virtualization/GridVirtualScrollerContent.d.ts +2 -0
  130. package/components/virtualization/GridVirtualScrollerContent.js +15 -6
  131. package/components/virtualization/GridVirtualScrollerRenderZone.d.ts +2 -0
  132. package/components/virtualization/GridVirtualScrollerRenderZone.js +5 -3
  133. package/constants/dataGridPropsDefaultValues.js +2 -4
  134. package/constants/gridClasses.d.ts +12 -12
  135. package/constants/gridClasses.js +1 -1
  136. package/constants/localeTextConstants.js +1 -1
  137. package/context/GridContextProvider.d.ts +2 -1
  138. package/context/GridRootPropsContext.js +2 -0
  139. package/hooks/core/pipeProcessing/gridPipeProcessingApi.d.ts +9 -2
  140. package/hooks/core/pipeProcessing/useGridPipeProcessing.d.ts +2 -2
  141. package/hooks/core/pipeProcessing/useGridRegisterPipeApplier.d.ts +2 -2
  142. package/hooks/core/pipeProcessing/useGridRegisterPipeApplier.js +1 -1
  143. package/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.d.ts +2 -2
  144. package/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.js +1 -1
  145. package/hooks/core/strategyProcessing/gridStrategyProcessingApi.d.ts +25 -9
  146. package/hooks/core/strategyProcessing/gridStrategyProcessingApi.js +5 -1
  147. package/hooks/core/strategyProcessing/useGridRegisterStrategyProcessor.d.ts +2 -2
  148. package/hooks/core/strategyProcessing/useGridStrategyProcessing.d.ts +5 -8
  149. package/hooks/core/strategyProcessing/useGridStrategyProcessing.js +7 -8
  150. package/hooks/core/useGridApiInitialization.d.ts +2 -2
  151. package/hooks/core/useGridApiInitialization.js +2 -2
  152. package/hooks/core/useGridInitialization.d.ts +2 -2
  153. package/hooks/core/useGridIsRtl.d.ts +2 -2
  154. package/hooks/core/useGridLocaleText.d.ts +2 -2
  155. package/hooks/core/useGridLoggerFactory.d.ts +2 -2
  156. package/hooks/core/useGridRefs.d.ts +2 -2
  157. package/hooks/core/useGridStateInitialization.d.ts +2 -2
  158. package/hooks/core/useGridStateInitialization.js +3 -3
  159. package/hooks/features/clipboard/useGridClipboard.d.ts +2 -2
  160. package/hooks/features/columnGrouping/gridColumnGroupsSelector.d.ts +4 -4
  161. package/hooks/features/columnGrouping/useGridColumnGrouping.d.ts +2 -2
  162. package/hooks/features/columnHeaders/useGridColumnHeaders.d.ts +5 -7
  163. package/hooks/features/columnHeaders/useGridColumnHeaders.js +33 -68
  164. package/hooks/features/columnMenu/useGridColumnMenu.d.ts +2 -2
  165. package/hooks/features/columnMenu/useGridColumnMenu.js +0 -2
  166. package/hooks/features/columnResize/columnResizeSelector.d.ts +1 -1
  167. package/hooks/features/columnResize/gridColumnResizeApi.d.ts +6 -0
  168. package/hooks/features/columnResize/gridColumnResizeApi.js +2 -1
  169. package/hooks/features/columnResize/useGridColumnResize.d.ts +2 -2
  170. package/hooks/features/columnResize/useGridColumnResize.js +17 -10
  171. package/hooks/features/columns/gridColumnsSelector.d.ts +12 -12
  172. package/hooks/features/columns/gridColumnsUtils.d.ts +4 -4
  173. package/hooks/features/columns/gridColumnsUtils.js +2 -1
  174. package/hooks/features/columns/useGridColumnSpanning.d.ts +2 -2
  175. package/hooks/features/columns/useGridColumns.d.ts +2 -2
  176. package/hooks/features/columns/useGridColumns.js +7 -3
  177. package/hooks/features/density/densitySelector.d.ts +1 -1
  178. package/hooks/features/density/useGridDensity.d.ts +2 -2
  179. package/hooks/features/dimensions/gridDimensionsApi.d.ts +0 -4
  180. package/hooks/features/dimensions/useGridDimensions.d.ts +2 -2
  181. package/hooks/features/dimensions/useGridDimensions.js +11 -32
  182. package/hooks/features/editing/gridEditingSelectors.d.ts +6 -0
  183. package/hooks/features/editing/gridEditingSelectors.js +7 -1
  184. package/hooks/features/editing/useGridCellEditing.d.ts +2 -2
  185. package/hooks/features/editing/useGridCellEditing.js +4 -4
  186. package/hooks/features/editing/useGridEditing.d.ts +2 -2
  187. package/hooks/features/editing/useGridRowEditing.d.ts +2 -2
  188. package/hooks/features/editing/useGridRowEditing.js +7 -8
  189. package/hooks/features/events/useGridEvents.d.ts +2 -2
  190. package/hooks/features/export/serializers/csvSerializer.d.ts +2 -1
  191. package/hooks/features/export/useGridCsvExport.d.ts +2 -2
  192. package/hooks/features/export/useGridPrintExport.d.ts +2 -2
  193. package/hooks/features/export/useGridPrintExport.js +1 -1
  194. package/hooks/features/export/utils.d.ts +2 -2
  195. package/hooks/features/filter/gridFilterSelector.d.ts +17 -17
  196. package/hooks/features/filter/gridFilterSelector.js +6 -1
  197. package/hooks/features/filter/gridFilterUtils.d.ts +7 -7
  198. package/hooks/features/filter/gridFilterUtils.js +3 -3
  199. package/hooks/features/filter/useGridFilter.d.ts +2 -2
  200. package/hooks/features/filter/useGridFilter.js +1 -1
  201. package/hooks/features/focus/gridFocusStateSelector.d.ts +8 -8
  202. package/hooks/features/focus/useGridFocus.d.ts +2 -2
  203. package/hooks/features/focus/useGridFocus.js +3 -2
  204. package/hooks/features/headerFiltering/gridHeaderFilteringSelectors.d.ts +3 -3
  205. package/hooks/features/headerFiltering/useGridHeaderFiltering.d.ts +2 -2
  206. package/hooks/features/index.d.ts +1 -0
  207. package/hooks/features/index.js +1 -0
  208. package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.d.ts +2 -2
  209. package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +24 -16
  210. package/hooks/features/keyboardNavigation/utils.d.ts +3 -4
  211. package/hooks/features/keyboardNavigation/utils.js +0 -5
  212. package/hooks/features/listView/gridListViewSelectors.d.ts +3 -1
  213. package/hooks/features/listView/gridListViewSelectors.js +3 -1
  214. package/hooks/features/listView/index.d.ts +1 -0
  215. package/hooks/features/listView/index.js +1 -0
  216. package/hooks/features/listView/useGridListView.d.ts +2 -2
  217. package/hooks/features/listView/useGridListView.js +2 -1
  218. package/hooks/features/overlays/useGridOverlays.d.ts +7 -4
  219. package/hooks/features/overlays/useGridOverlays.js +22 -2
  220. package/hooks/features/pagination/gridPaginationInterfaces.d.ts +3 -0
  221. package/hooks/features/pagination/gridPaginationSelector.d.ts +34 -9
  222. package/hooks/features/pagination/gridPaginationSelector.js +39 -1
  223. package/hooks/features/pagination/useGridPagination.d.ts +3 -3
  224. package/hooks/features/pagination/useGridPagination.js +5 -3
  225. package/hooks/features/pagination/useGridPaginationMeta.d.ts +2 -2
  226. package/hooks/features/pagination/useGridPaginationModel.d.ts +2 -2
  227. package/hooks/features/pagination/useGridPaginationModel.js +23 -1
  228. package/hooks/features/pagination/useGridRowCount.d.ts +2 -2
  229. package/hooks/features/preferencesPanel/gridPreferencePanelSelector.d.ts +1 -0
  230. package/hooks/features/preferencesPanel/gridPreferencePanelSelector.js +8 -1
  231. package/hooks/features/preferencesPanel/index.d.ts +1 -1
  232. package/hooks/features/preferencesPanel/index.js +1 -1
  233. package/hooks/features/preferencesPanel/useGridPreferencesPanel.d.ts +2 -2
  234. package/hooks/features/preferencesPanel/useGridPreferencesPanel.js +14 -38
  235. package/hooks/features/rowSelection/gridRowSelectionSelector.d.ts +3 -3
  236. package/hooks/features/rowSelection/useGridRowSelection.d.ts +2 -2
  237. package/hooks/features/rowSelection/useGridRowSelection.js +8 -16
  238. package/hooks/features/rowSelection/useGridRowSelectionPreProcessors.d.ts +2 -2
  239. package/hooks/features/rowSelection/utils.d.ts +4 -3
  240. package/hooks/features/rowSelection/utils.js +2 -2
  241. package/hooks/features/rows/gridRowSpanningSelectors.d.ts +3 -3
  242. package/hooks/features/rows/gridRowSpanningUtils.d.ts +2 -2
  243. package/hooks/features/rows/gridRowsInterfaces.d.ts +1 -8
  244. package/hooks/features/rows/gridRowsSelector.d.ts +23 -13
  245. package/hooks/features/rows/gridRowsSelector.js +1 -2
  246. package/hooks/features/rows/gridRowsUtils.d.ts +4 -4
  247. package/hooks/features/rows/gridRowsUtils.js +0 -9
  248. package/hooks/features/rows/index.d.ts +1 -1
  249. package/hooks/features/rows/index.js +1 -1
  250. package/hooks/features/rows/useGridParamsApi.d.ts +2 -2
  251. package/hooks/features/rows/useGridParamsApi.js +33 -14
  252. package/hooks/features/rows/useGridRowSpanning.d.ts +2 -2
  253. package/hooks/features/rows/useGridRowSpanning.js +97 -86
  254. package/hooks/features/rows/useGridRows.d.ts +2 -2
  255. package/hooks/features/rows/useGridRows.js +23 -27
  256. package/hooks/features/rows/useGridRowsMeta.d.ts +2 -2
  257. package/hooks/features/rows/useGridRowsMeta.js +3 -2
  258. package/hooks/features/rows/useGridRowsPreProcessors.d.ts +2 -2
  259. package/hooks/features/scroll/useGridScroll.d.ts +2 -2
  260. package/hooks/features/sorting/gridSortingSelector.d.ts +10 -5
  261. package/hooks/features/sorting/gridSortingSelector.js +11 -0
  262. package/hooks/features/sorting/gridSortingUtils.d.ts +3 -3
  263. package/hooks/features/sorting/gridSortingUtils.js +2 -2
  264. package/hooks/features/sorting/index.d.ts +2 -1
  265. package/hooks/features/sorting/index.js +1 -1
  266. package/hooks/features/sorting/useGridSorting.d.ts +2 -2
  267. package/hooks/features/sorting/useGridSorting.js +1 -1
  268. package/hooks/features/statePersistence/useGridStatePersistence.d.ts +2 -2
  269. package/hooks/features/virtualization/gridFocusedVirtualCellSelector.d.ts +6 -0
  270. package/hooks/features/virtualization/gridFocusedVirtualCellSelector.js +33 -0
  271. package/hooks/features/virtualization/gridVirtualizationSelectors.d.ts +5 -5
  272. package/hooks/features/virtualization/useGridVirtualScroller.d.ts +15 -6
  273. package/hooks/features/virtualization/useGridVirtualScroller.js +169 -94
  274. package/hooks/features/virtualization/useGridVirtualization.d.ts +2 -2
  275. package/hooks/utils/useGridApiContext.d.ts +2 -2
  276. package/hooks/utils/useGridApiEventHandler.d.ts +4 -4
  277. package/hooks/utils/useGridApiEventHandler.js +1 -1
  278. package/hooks/utils/useGridApiMethod.d.ts +2 -2
  279. package/hooks/utils/useGridApiRef.d.ts +2 -2
  280. package/hooks/utils/useGridApiRef.js +1 -1
  281. package/hooks/utils/useGridInitializeState.d.ts +3 -3
  282. package/hooks/utils/useGridLogger.d.ts +2 -2
  283. package/hooks/utils/useGridNativeEventListener.d.ts +2 -1
  284. package/hooks/utils/useGridPrivateApiContext.d.ts +2 -1
  285. package/hooks/utils/useGridSelector.d.ts +5 -7
  286. package/hooks/utils/useGridSelector.js +6 -44
  287. package/hooks/utils/useGridVisibleRows.d.ts +8 -6
  288. package/hooks/utils/useGridVisibleRows.js +5 -28
  289. package/index.js +1 -1
  290. package/internals/constants.d.ts +6 -0
  291. package/internals/constants.js +8 -1
  292. package/internals/index.d.ts +6 -4
  293. package/internals/index.js +4 -3
  294. package/internals/utils/attachPinnedStyle.d.ts +2 -0
  295. package/internals/utils/attachPinnedStyle.js +9 -0
  296. package/internals/utils/getPinnedCellOffset.d.ts +3 -3
  297. package/internals/utils/getPinnedCellOffset.js +6 -7
  298. package/internals/utils/index.d.ts +1 -1
  299. package/internals/utils/index.js +2 -2
  300. package/locales/arSD.js +2 -1
  301. package/locales/beBY.js +1 -1
  302. package/locales/bgBG.js +2 -1
  303. package/locales/csCZ.js +2 -1
  304. package/locales/daDK.js +2 -1
  305. package/locales/deDE.js +12 -13
  306. package/locales/elGR.js +2 -1
  307. package/locales/esES.js +12 -13
  308. package/locales/faIR.js +7 -7
  309. package/locales/fiFI.js +2 -1
  310. package/locales/frFR.js +2 -1
  311. package/locales/heIL.js +16 -17
  312. package/locales/hrHR.js +2 -1
  313. package/locales/huHU.js +2 -1
  314. package/locales/isIS.js +2 -1
  315. package/locales/itIT.js +2 -1
  316. package/locales/jaJP.js +2 -1
  317. package/locales/koKR.js +46 -49
  318. package/locales/nbNO.js +2 -1
  319. package/locales/nlNL.js +7 -7
  320. package/locales/nnNO.js +2 -1
  321. package/locales/plPL.js +2 -1
  322. package/locales/ptBR.js +12 -13
  323. package/locales/ptPT.js +12 -13
  324. package/locales/roRO.js +20 -21
  325. package/locales/ruRU.js +2 -1
  326. package/locales/skSK.js +2 -1
  327. package/locales/svSE.js +2 -1
  328. package/locales/trTR.js +14 -15
  329. package/locales/ukUA.js +2 -1
  330. package/locales/urPK.js +11 -11
  331. package/locales/viVN.js +2 -1
  332. package/locales/zhCN.js +12 -13
  333. package/locales/zhHK.js +2 -1
  334. package/locales/zhTW.js +2 -1
  335. package/material/index.js +58 -7
  336. package/models/api/gridApiCommon.d.ts +2 -2
  337. package/models/api/gridCoreApi.d.ts +7 -7
  338. package/models/api/gridDensityApi.d.ts +1 -1
  339. package/models/api/gridLocaleTextApi.d.ts +1 -1
  340. package/models/api/gridParamsApi.d.ts +29 -2
  341. package/models/api/gridStateApi.d.ts +1 -1
  342. package/models/api/index.d.ts +1 -1
  343. package/models/api/index.js +0 -1
  344. package/models/colDef/gridColDef.d.ts +34 -33
  345. package/models/controlStateItem.d.ts +2 -2
  346. package/models/events/gridEventLookup.d.ts +7 -1
  347. package/models/gridBaseSlots.d.ts +95 -0
  348. package/models/gridDataSource.d.ts +1 -1
  349. package/models/gridExport.d.ts +2 -2
  350. package/models/gridFilterInputComponent.d.ts +32 -0
  351. package/models/gridFilterOperator.d.ts +6 -4
  352. package/models/gridIconSlotsComponent.d.ts +5 -0
  353. package/models/gridSlotsComponent.d.ts +16 -1
  354. package/models/gridSlotsComponentsProps.d.ts +45 -9
  355. package/models/gridStateCommunity.d.ts +4 -0
  356. package/models/index.d.ts +1 -0
  357. package/models/props/DataGridProps.d.ts +12 -24
  358. package/modern/DataGrid/DataGrid.js +20 -38
  359. package/modern/DataGrid/useDataGridComponent.js +1 -1
  360. package/modern/DataGrid/useDataGridProps.js +3 -3
  361. package/modern/components/GridApiContext.js +2 -0
  362. package/modern/components/GridColumnHeaders.js +4 -4
  363. package/modern/components/GridConfigurationContext.js +2 -0
  364. package/modern/components/GridFooter.js +4 -4
  365. package/modern/components/GridHeaders.js +2 -2
  366. package/modern/components/GridLoadingOverlay.js +10 -8
  367. package/modern/components/GridNoResultsOverlay.js +4 -4
  368. package/modern/components/GridNoRowsOverlay.js +4 -4
  369. package/modern/components/GridPagination.js +7 -4
  370. package/modern/components/GridRow.js +55 -87
  371. package/modern/components/GridRowCount.js +3 -2
  372. package/modern/components/GridScrollArea.js +2 -0
  373. package/modern/components/GridSelectedRowCount.js +3 -2
  374. package/modern/components/GridSkeletonLoadingOverlay.js +22 -21
  375. package/modern/components/base/GridOverlays.js +2 -24
  376. package/modern/components/base/index.js +1 -2
  377. package/modern/components/cell/GridActionsCell.js +8 -1
  378. package/modern/components/cell/GridActionsCellItem.js +9 -8
  379. package/modern/components/cell/GridCell.js +49 -92
  380. package/modern/components/cell/GridEditDateCell.js +1 -1
  381. package/modern/components/cell/GridEditInputCell.js +73 -4
  382. package/modern/components/cell/GridEditSingleSelectCell.js +2 -2
  383. package/modern/components/cell/GridSkeletonCell.js +1 -2
  384. package/modern/components/columnHeaders/GridBaseColumnHeaders.js +4 -3
  385. package/modern/components/columnHeaders/GridColumnGroupHeader.js +7 -10
  386. package/modern/components/columnHeaders/GridColumnHeaderFilterIconButton.js +20 -7
  387. package/modern/components/columnHeaders/GridColumnHeaderItem.js +13 -12
  388. package/modern/components/columnHeaders/GridColumnHeaderTitle.js +5 -3
  389. package/modern/components/columnHeaders/GridGenericColumnHeaderItem.js +3 -2
  390. package/modern/components/columnHeaders/GridIconButtonContainer.js +5 -3
  391. package/modern/components/columnSelection/GridCellCheckboxRenderer.js +11 -9
  392. package/modern/components/columnSelection/GridHeaderCheckbox.js +17 -9
  393. package/modern/components/columnsManagement/GridColumnsManagement.js +50 -27
  394. package/modern/components/containers/GridFooterContainer.js +5 -3
  395. package/modern/components/containers/GridOverlay.js +5 -3
  396. package/modern/components/containers/GridRoot.js +18 -8
  397. package/modern/components/containers/GridRootStyles.js +160 -50
  398. package/modern/components/containers/GridToolbarContainer.js +3 -2
  399. package/modern/components/menu/columnMenu/GridColumnMenu.js +5 -5
  400. package/modern/components/menu/columnMenu/GridColumnMenuContainer.js +3 -2
  401. package/modern/components/menu/columnMenu/menuItems/GridColumnMenuFilterItem.js +6 -11
  402. package/modern/components/menu/columnMenu/menuItems/GridColumnMenuHideItem.js +6 -11
  403. package/modern/components/menu/columnMenu/menuItems/GridColumnMenuManageItem.js +6 -11
  404. package/modern/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +13 -22
  405. package/modern/components/panel/GridColumnsPanel.js +1 -2
  406. package/modern/components/panel/GridPanel.js +5 -3
  407. package/modern/components/panel/GridPanelContent.js +7 -3
  408. package/modern/components/panel/GridPanelFooter.js +4 -3
  409. package/modern/components/panel/GridPanelWrapper.js +5 -3
  410. package/modern/components/panel/filterPanel/GridFilterForm.js +22 -18
  411. package/modern/components/panel/filterPanel/GridFilterInputBoolean.js +41 -31
  412. package/modern/components/panel/filterPanel/GridFilterInputDate.js +50 -31
  413. package/modern/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +49 -24
  414. package/modern/components/panel/filterPanel/GridFilterInputMultipleValue.js +55 -33
  415. package/modern/components/panel/filterPanel/GridFilterInputSingleSelect.js +34 -25
  416. package/modern/components/panel/filterPanel/GridFilterInputValue.js +63 -38
  417. package/modern/components/panel/filterPanel/GridFilterPanel.js +4 -4
  418. package/modern/components/panel/filterPanel/index.js +1 -2
  419. package/modern/components/toolbar/GridToolbar.js +11 -5
  420. package/modern/components/toolbar/GridToolbarColumnsButton.js +12 -6
  421. package/modern/components/toolbar/GridToolbarDensitySelector.js +9 -11
  422. package/modern/components/toolbar/GridToolbarExport.js +2 -1
  423. package/modern/components/toolbar/GridToolbarExportContainer.js +6 -6
  424. package/modern/components/toolbar/GridToolbarFilterButton.js +20 -9
  425. package/modern/components/toolbar/GridToolbarQuickFilter.js +39 -31
  426. package/modern/components/virtualization/GridMainContainer.js +14 -5
  427. package/modern/components/virtualization/GridVirtualScrollbar.js +17 -17
  428. package/modern/components/virtualization/GridVirtualScroller.js +27 -12
  429. package/modern/components/virtualization/GridVirtualScrollerContent.js +15 -6
  430. package/modern/components/virtualization/GridVirtualScrollerRenderZone.js +5 -3
  431. package/modern/constants/dataGridPropsDefaultValues.js +2 -4
  432. package/modern/constants/gridClasses.js +1 -1
  433. package/modern/constants/localeTextConstants.js +1 -1
  434. package/modern/context/GridRootPropsContext.js +2 -0
  435. package/modern/hooks/core/pipeProcessing/useGridRegisterPipeApplier.js +1 -1
  436. package/modern/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.js +1 -1
  437. package/modern/hooks/core/strategyProcessing/gridStrategyProcessingApi.js +5 -1
  438. package/modern/hooks/core/strategyProcessing/useGridStrategyProcessing.js +7 -8
  439. package/modern/hooks/core/useGridApiInitialization.js +2 -2
  440. package/modern/hooks/core/useGridStateInitialization.js +3 -3
  441. package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +33 -68
  442. package/modern/hooks/features/columnMenu/useGridColumnMenu.js +0 -2
  443. package/modern/hooks/features/columnResize/gridColumnResizeApi.js +2 -1
  444. package/modern/hooks/features/columnResize/useGridColumnResize.js +17 -10
  445. package/modern/hooks/features/columns/gridColumnsUtils.js +2 -1
  446. package/modern/hooks/features/columns/useGridColumns.js +7 -3
  447. package/modern/hooks/features/dimensions/useGridDimensions.js +11 -32
  448. package/modern/hooks/features/editing/gridEditingSelectors.js +7 -1
  449. package/modern/hooks/features/editing/useGridCellEditing.js +4 -4
  450. package/modern/hooks/features/editing/useGridRowEditing.js +7 -8
  451. package/modern/hooks/features/export/useGridPrintExport.js +1 -1
  452. package/modern/hooks/features/filter/gridFilterSelector.js +6 -1
  453. package/modern/hooks/features/filter/gridFilterUtils.js +3 -3
  454. package/modern/hooks/features/filter/useGridFilter.js +1 -1
  455. package/modern/hooks/features/focus/useGridFocus.js +3 -2
  456. package/modern/hooks/features/index.js +1 -0
  457. package/modern/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +24 -16
  458. package/modern/hooks/features/keyboardNavigation/utils.js +0 -5
  459. package/modern/hooks/features/listView/gridListViewSelectors.js +3 -1
  460. package/modern/hooks/features/listView/index.js +1 -0
  461. package/modern/hooks/features/listView/useGridListView.js +2 -1
  462. package/modern/hooks/features/overlays/useGridOverlays.js +22 -2
  463. package/modern/hooks/features/pagination/gridPaginationSelector.js +39 -1
  464. package/modern/hooks/features/pagination/useGridPagination.js +5 -3
  465. package/modern/hooks/features/pagination/useGridPaginationModel.js +23 -1
  466. package/modern/hooks/features/preferencesPanel/gridPreferencePanelSelector.js +8 -1
  467. package/modern/hooks/features/preferencesPanel/index.js +1 -1
  468. package/modern/hooks/features/preferencesPanel/useGridPreferencesPanel.js +14 -38
  469. package/modern/hooks/features/rowSelection/useGridRowSelection.js +8 -16
  470. package/modern/hooks/features/rowSelection/utils.js +2 -2
  471. package/modern/hooks/features/rows/gridRowsSelector.js +1 -2
  472. package/modern/hooks/features/rows/gridRowsUtils.js +0 -9
  473. package/modern/hooks/features/rows/index.js +1 -1
  474. package/modern/hooks/features/rows/useGridParamsApi.js +33 -14
  475. package/modern/hooks/features/rows/useGridRowSpanning.js +97 -86
  476. package/modern/hooks/features/rows/useGridRows.js +23 -27
  477. package/modern/hooks/features/rows/useGridRowsMeta.js +3 -2
  478. package/modern/hooks/features/sorting/gridSortingSelector.js +11 -0
  479. package/modern/hooks/features/sorting/gridSortingUtils.js +2 -2
  480. package/modern/hooks/features/sorting/index.js +1 -1
  481. package/modern/hooks/features/sorting/useGridSorting.js +1 -1
  482. package/modern/hooks/features/virtualization/gridFocusedVirtualCellSelector.js +33 -0
  483. package/modern/hooks/features/virtualization/useGridVirtualScroller.js +169 -94
  484. package/modern/hooks/utils/useGridApiEventHandler.js +1 -1
  485. package/modern/hooks/utils/useGridApiRef.js +1 -1
  486. package/modern/hooks/utils/useGridSelector.js +6 -44
  487. package/modern/hooks/utils/useGridVisibleRows.js +5 -28
  488. package/modern/index.js +1 -1
  489. package/modern/internals/constants.js +8 -1
  490. package/modern/internals/index.js +4 -3
  491. package/modern/internals/utils/attachPinnedStyle.js +9 -0
  492. package/modern/internals/utils/getPinnedCellOffset.js +6 -7
  493. package/modern/internals/utils/index.js +2 -2
  494. package/modern/locales/arSD.js +2 -1
  495. package/modern/locales/beBY.js +1 -1
  496. package/modern/locales/bgBG.js +2 -1
  497. package/modern/locales/csCZ.js +2 -1
  498. package/modern/locales/daDK.js +2 -1
  499. package/modern/locales/deDE.js +12 -13
  500. package/modern/locales/elGR.js +2 -1
  501. package/modern/locales/esES.js +12 -13
  502. package/modern/locales/faIR.js +7 -7
  503. package/modern/locales/fiFI.js +2 -1
  504. package/modern/locales/frFR.js +2 -1
  505. package/modern/locales/heIL.js +16 -17
  506. package/modern/locales/hrHR.js +2 -1
  507. package/modern/locales/huHU.js +2 -1
  508. package/modern/locales/isIS.js +2 -1
  509. package/modern/locales/itIT.js +2 -1
  510. package/modern/locales/jaJP.js +2 -1
  511. package/modern/locales/koKR.js +46 -49
  512. package/modern/locales/nbNO.js +2 -1
  513. package/modern/locales/nlNL.js +7 -7
  514. package/modern/locales/nnNO.js +2 -1
  515. package/modern/locales/plPL.js +2 -1
  516. package/modern/locales/ptBR.js +12 -13
  517. package/modern/locales/ptPT.js +12 -13
  518. package/modern/locales/roRO.js +20 -21
  519. package/modern/locales/ruRU.js +2 -1
  520. package/modern/locales/skSK.js +2 -1
  521. package/modern/locales/svSE.js +2 -1
  522. package/modern/locales/trTR.js +14 -15
  523. package/modern/locales/ukUA.js +2 -1
  524. package/modern/locales/urPK.js +11 -11
  525. package/modern/locales/viVN.js +2 -1
  526. package/modern/locales/zhCN.js +12 -13
  527. package/modern/locales/zhHK.js +2 -1
  528. package/modern/locales/zhTW.js +2 -1
  529. package/modern/material/index.js +58 -7
  530. package/modern/models/api/index.js +0 -1
  531. package/modern/models/gridBaseSlots.js +1 -0
  532. package/modern/models/gridFilterInputComponent.js +1 -0
  533. package/modern/utils/assert.js +3 -0
  534. package/modern/utils/cellBorderUtils.js +5 -5
  535. package/modern/utils/createSelector.js +1 -120
  536. package/modern/utils/domUtils.js +7 -2
  537. package/modern/utils/isJSDOM.js +1 -0
  538. package/modern/utils/roundToDecimalPlaces.js +3 -0
  539. package/modern/utils/rtlFlipSide.js +22 -0
  540. package/modern/utils/utils.js +6 -1
  541. package/node/DataGrid/DataGrid.js +18 -36
  542. package/node/DataGrid/useDataGridComponent.js +1 -1
  543. package/node/DataGrid/useDataGridProps.js +2 -2
  544. package/node/components/GridApiContext.js +1 -0
  545. package/node/components/GridColumnHeaders.js +4 -4
  546. package/node/components/GridConfigurationContext.js +1 -0
  547. package/node/components/GridFooter.js +4 -4
  548. package/node/components/GridHeaders.js +2 -2
  549. package/node/components/GridLoadingOverlay.js +10 -8
  550. package/node/components/GridNoResultsOverlay.js +4 -4
  551. package/node/components/GridNoRowsOverlay.js +4 -4
  552. package/node/components/GridPagination.js +7 -4
  553. package/node/components/GridRow.js +51 -84
  554. package/node/components/GridRowCount.js +3 -2
  555. package/node/components/GridScrollArea.js +1 -0
  556. package/node/components/GridSelectedRowCount.js +3 -2
  557. package/node/components/GridSkeletonLoadingOverlay.js +21 -20
  558. package/node/components/base/GridOverlays.js +2 -24
  559. package/node/components/base/index.js +0 -11
  560. package/node/components/cell/GridActionsCell.js +8 -1
  561. package/node/components/cell/GridActionsCellItem.js +7 -8
  562. package/node/components/cell/GridCell.js +48 -91
  563. package/node/components/cell/GridEditDateCell.js +1 -1
  564. package/node/components/cell/GridEditInputCell.js +73 -4
  565. package/node/components/cell/GridEditSingleSelectCell.js +2 -2
  566. package/node/components/cell/GridSkeletonCell.js +1 -2
  567. package/node/components/columnHeaders/GridBaseColumnHeaders.js +4 -3
  568. package/node/components/columnHeaders/GridColumnGroupHeader.js +7 -10
  569. package/node/components/columnHeaders/GridColumnHeaderFilterIconButton.js +19 -6
  570. package/node/components/columnHeaders/GridColumnHeaderItem.js +13 -12
  571. package/node/components/columnHeaders/GridColumnHeaderTitle.js +5 -3
  572. package/node/components/columnHeaders/GridGenericColumnHeaderItem.js +3 -2
  573. package/node/components/columnHeaders/GridIconButtonContainer.js +5 -3
  574. package/node/components/columnSelection/GridCellCheckboxRenderer.js +10 -8
  575. package/node/components/columnSelection/GridHeaderCheckbox.js +17 -9
  576. package/node/components/columnsManagement/GridColumnsManagement.js +50 -27
  577. package/node/components/containers/GridFooterContainer.js +5 -3
  578. package/node/components/containers/GridOverlay.js +5 -3
  579. package/node/components/containers/GridRoot.js +17 -7
  580. package/node/components/containers/GridRootStyles.js +160 -50
  581. package/node/components/containers/GridToolbarContainer.js +3 -2
  582. package/node/components/menu/columnMenu/GridColumnMenu.js +5 -5
  583. package/node/components/menu/columnMenu/GridColumnMenuContainer.js +3 -2
  584. package/node/components/menu/columnMenu/menuItems/GridColumnMenuFilterItem.js +5 -10
  585. package/node/components/menu/columnMenu/menuItems/GridColumnMenuHideItem.js +5 -10
  586. package/node/components/menu/columnMenu/menuItems/GridColumnMenuManageItem.js +5 -10
  587. package/node/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +13 -22
  588. package/node/components/panel/GridColumnsPanel.js +1 -2
  589. package/node/components/panel/GridPanel.js +5 -3
  590. package/node/components/panel/GridPanelContent.js +7 -3
  591. package/node/components/panel/GridPanelFooter.js +5 -4
  592. package/node/components/panel/GridPanelWrapper.js +5 -3
  593. package/node/components/panel/filterPanel/GridFilterForm.js +22 -18
  594. package/node/components/panel/filterPanel/GridFilterInputBoolean.js +42 -33
  595. package/node/components/panel/filterPanel/GridFilterInputDate.js +49 -30
  596. package/node/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +49 -24
  597. package/node/components/panel/filterPanel/GridFilterInputMultipleValue.js +55 -33
  598. package/node/components/panel/filterPanel/GridFilterInputSingleSelect.js +34 -25
  599. package/node/components/panel/filterPanel/GridFilterInputValue.js +62 -37
  600. package/node/components/panel/filterPanel/GridFilterPanel.js +4 -4
  601. package/node/components/panel/filterPanel/index.js +7 -23
  602. package/node/components/toolbar/GridToolbar.js +11 -5
  603. package/node/components/toolbar/GridToolbarColumnsButton.js +12 -6
  604. package/node/components/toolbar/GridToolbarDensitySelector.js +9 -11
  605. package/node/components/toolbar/GridToolbarExport.js +2 -1
  606. package/node/components/toolbar/GridToolbarExportContainer.js +6 -6
  607. package/node/components/toolbar/GridToolbarFilterButton.js +20 -9
  608. package/node/components/toolbar/GridToolbarQuickFilter.js +39 -31
  609. package/node/components/virtualization/GridMainContainer.js +14 -5
  610. package/node/components/virtualization/GridVirtualScrollbar.js +17 -17
  611. package/node/components/virtualization/GridVirtualScroller.js +27 -12
  612. package/node/components/virtualization/GridVirtualScrollerContent.js +15 -6
  613. package/node/components/virtualization/GridVirtualScrollerRenderZone.js +5 -3
  614. package/node/constants/dataGridPropsDefaultValues.js +2 -4
  615. package/node/constants/gridClasses.js +1 -1
  616. package/node/constants/localeTextConstants.js +1 -1
  617. package/node/context/GridRootPropsContext.js +1 -0
  618. package/node/hooks/core/pipeProcessing/useGridRegisterPipeApplier.js +1 -1
  619. package/node/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.js +1 -1
  620. package/node/hooks/core/strategyProcessing/gridStrategyProcessingApi.js +7 -1
  621. package/node/hooks/core/strategyProcessing/useGridStrategyProcessing.js +7 -8
  622. package/node/hooks/core/useGridApiInitialization.js +2 -2
  623. package/node/hooks/core/useGridStateInitialization.js +3 -3
  624. package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +31 -66
  625. package/node/hooks/features/columnMenu/useGridColumnMenu.js +0 -2
  626. package/node/hooks/features/columnResize/gridColumnResizeApi.js +2 -1
  627. package/node/hooks/features/columnResize/useGridColumnResize.js +17 -10
  628. package/node/hooks/features/columns/gridColumnsUtils.js +2 -1
  629. package/node/hooks/features/columns/useGridColumns.js +7 -3
  630. package/node/hooks/features/dimensions/useGridDimensions.js +12 -33
  631. package/node/hooks/features/editing/gridEditingSelectors.js +8 -2
  632. package/node/hooks/features/editing/useGridCellEditing.js +3 -3
  633. package/node/hooks/features/editing/useGridRowEditing.js +5 -6
  634. package/node/hooks/features/export/useGridPrintExport.js +1 -1
  635. package/node/hooks/features/filter/gridFilterSelector.js +6 -1
  636. package/node/hooks/features/filter/gridFilterUtils.js +3 -3
  637. package/node/hooks/features/filter/useGridFilter.js +1 -1
  638. package/node/hooks/features/focus/useGridFocus.js +3 -2
  639. package/node/hooks/features/index.js +11 -0
  640. package/node/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +24 -15
  641. package/node/hooks/features/keyboardNavigation/utils.js +0 -6
  642. package/node/hooks/features/listView/gridListViewSelectors.js +3 -1
  643. package/node/hooks/features/listView/index.js +16 -0
  644. package/node/hooks/features/listView/useGridListView.js +2 -1
  645. package/node/hooks/features/overlays/useGridOverlays.js +24 -2
  646. package/node/hooks/features/pagination/gridPaginationSelector.js +41 -3
  647. package/node/hooks/features/pagination/useGridPagination.js +5 -3
  648. package/node/hooks/features/pagination/useGridPaginationModel.js +23 -1
  649. package/node/hooks/features/preferencesPanel/gridPreferencePanelSelector.js +9 -2
  650. package/node/hooks/features/preferencesPanel/index.js +11 -10
  651. package/node/hooks/features/preferencesPanel/useGridPreferencesPanel.js +14 -38
  652. package/node/hooks/features/rowSelection/useGridRowSelection.js +7 -15
  653. package/node/hooks/features/rowSelection/utils.js +2 -2
  654. package/node/hooks/features/rows/gridRowsSelector.js +2 -3
  655. package/node/hooks/features/rows/gridRowsUtils.js +0 -9
  656. package/node/hooks/features/rows/index.js +0 -7
  657. package/node/hooks/features/rows/useGridParamsApi.js +33 -14
  658. package/node/hooks/features/rows/useGridRowSpanning.js +95 -84
  659. package/node/hooks/features/rows/useGridRows.js +21 -25
  660. package/node/hooks/features/rows/useGridRowsMeta.js +5 -4
  661. package/node/hooks/features/sorting/gridSortingSelector.js +12 -1
  662. package/node/hooks/features/sorting/gridSortingUtils.js +2 -2
  663. package/node/hooks/features/sorting/index.js +24 -16
  664. package/node/hooks/features/sorting/useGridSorting.js +1 -1
  665. package/node/hooks/features/virtualization/gridFocusedVirtualCellSelector.js +40 -0
  666. package/node/hooks/features/virtualization/useGridVirtualScroller.js +171 -96
  667. package/node/hooks/utils/useGridApiEventHandler.js +1 -1
  668. package/node/hooks/utils/useGridApiRef.js +1 -1
  669. package/node/hooks/utils/useGridSelector.js +8 -47
  670. package/node/hooks/utils/useGridVisibleRows.js +3 -28
  671. package/node/index.js +1 -1
  672. package/node/internals/constants.js +9 -2
  673. package/node/internals/index.js +27 -22
  674. package/node/internals/utils/attachPinnedStyle.js +15 -0
  675. package/node/internals/utils/getPinnedCellOffset.js +6 -7
  676. package/node/internals/utils/index.js +11 -11
  677. package/node/locales/arSD.js +2 -1
  678. package/node/locales/beBY.js +1 -1
  679. package/node/locales/bgBG.js +2 -1
  680. package/node/locales/csCZ.js +2 -1
  681. package/node/locales/daDK.js +2 -1
  682. package/node/locales/deDE.js +12 -13
  683. package/node/locales/elGR.js +2 -1
  684. package/node/locales/esES.js +12 -13
  685. package/node/locales/faIR.js +7 -7
  686. package/node/locales/fiFI.js +2 -1
  687. package/node/locales/frFR.js +2 -1
  688. package/node/locales/heIL.js +16 -17
  689. package/node/locales/hrHR.js +2 -1
  690. package/node/locales/huHU.js +2 -1
  691. package/node/locales/isIS.js +2 -1
  692. package/node/locales/itIT.js +2 -1
  693. package/node/locales/jaJP.js +2 -1
  694. package/node/locales/koKR.js +46 -49
  695. package/node/locales/nbNO.js +2 -1
  696. package/node/locales/nlNL.js +7 -7
  697. package/node/locales/nnNO.js +2 -1
  698. package/node/locales/plPL.js +2 -1
  699. package/node/locales/ptBR.js +12 -13
  700. package/node/locales/ptPT.js +12 -13
  701. package/node/locales/roRO.js +20 -21
  702. package/node/locales/ruRU.js +2 -1
  703. package/node/locales/skSK.js +2 -1
  704. package/node/locales/svSE.js +2 -1
  705. package/node/locales/trTR.js +14 -15
  706. package/node/locales/ukUA.js +2 -1
  707. package/node/locales/urPK.js +11 -11
  708. package/node/locales/viVN.js +2 -1
  709. package/node/locales/zhCN.js +12 -13
  710. package/node/locales/zhHK.js +2 -1
  711. package/node/locales/zhTW.js +2 -1
  712. package/node/material/index.js +59 -7
  713. package/node/models/api/index.js +0 -11
  714. package/node/models/gridFilterInputComponent.js +5 -0
  715. package/node/utils/assert.js +9 -0
  716. package/node/utils/cellBorderUtils.js +5 -5
  717. package/node/utils/createSelector.js +4 -125
  718. package/node/utils/domUtils.js +7 -2
  719. package/node/utils/isJSDOM.js +7 -0
  720. package/node/utils/roundToDecimalPlaces.js +9 -0
  721. package/node/utils/rtlFlipSide.js +29 -0
  722. package/node/utils/utils.js +8 -1
  723. package/package.json +3 -3
  724. package/themeAugmentation/overrides.d.ts +10 -5
  725. package/utils/assert.d.ts +2 -0
  726. package/utils/assert.js +3 -0
  727. package/utils/cellBorderUtils.d.ts +3 -3
  728. package/utils/cellBorderUtils.js +5 -5
  729. package/utils/createSelector.d.ts +7 -19
  730. package/utils/createSelector.js +1 -120
  731. package/utils/domUtils.js +7 -2
  732. package/utils/getPublicApiRef.d.ts +2 -1
  733. package/utils/isJSDOM.d.ts +1 -0
  734. package/utils/isJSDOM.js +1 -0
  735. package/utils/keyboardUtils.d.ts +1 -1
  736. package/utils/roundToDecimalPlaces.d.ts +1 -0
  737. package/utils/roundToDecimalPlaces.js +3 -0
  738. package/utils/rtlFlipSide.d.ts +2 -0
  739. package/utils/rtlFlipSide.js +22 -0
  740. package/utils/utils.d.ts +1 -0
  741. package/utils/utils.js +6 -1
  742. package/components/panel/filterPanel/GridFilterInputValueProps.d.ts +0 -11
  743. package/internals/utils/useProps.d.ts +0 -1
  744. package/internals/utils/useProps.js +0 -24
  745. package/joy/icons.d.ts +0 -32
  746. package/joy/icons.js +0 -431
  747. package/joy/index.d.ts +0 -2
  748. package/joy/index.js +0 -2
  749. package/joy/joySlots.d.ts +0 -3
  750. package/joy/joySlots.js +0 -389
  751. package/joy/package.json +0 -6
  752. package/modern/internals/utils/useProps.js +0 -24
  753. package/modern/joy/icons.js +0 -431
  754. package/modern/joy/index.js +0 -2
  755. package/modern/joy/joySlots.js +0 -389
  756. package/node/internals/utils/useProps.js +0 -30
  757. package/node/joy/icons.js +0 -439
  758. package/node/joy/index.js +0 -13
  759. package/node/joy/joySlots.js +0 -397
  760. /package/{components/panel/filterPanel/GridFilterInputValueProps.js → models/gridBaseSlots.js} +0 -0
  761. /package/{modern/components/panel/filterPanel/GridFilterInputValueProps.js → models/gridFilterInputComponent.js} +0 -0
  762. /package/node/{components/panel/filterPanel/GridFilterInputValueProps.js → models/gridBaseSlots.js} +0 -0
@@ -326,10 +326,11 @@ export const useGridFocus = (apiRef, props) => {
326
326
  // If the focused cell is in a row which does not exist anymore,
327
327
  // focus previous row or remove the focus
328
328
  if (cell && !apiRef.current.getRow(cell.id)) {
329
- const lastFocusedRowId = gridFocusCellSelector(apiRef)?.id;
329
+ const lastFocusedRowId = cell.id;
330
330
  let nextRowId = null;
331
331
  if (typeof lastFocusedRowId !== 'undefined') {
332
- const lastFocusedRowIndex = apiRef.current.getRowIndexRelativeToVisibleRows(lastFocusedRowId);
332
+ const rowEl = apiRef.current.getRowElement(lastFocusedRowId);
333
+ const lastFocusedRowIndex = rowEl?.dataset.rowindex ? Number(rowEl?.dataset.rowindex) : 0;
333
334
  const currentPage = getVisibleRows(apiRef, {
334
335
  pagination: props.pagination,
335
336
  paginationMode: props.paginationMode
@@ -1,5 +1,5 @@
1
1
  import { GridStateCommunity } from '../../../models/gridStateCommunity';
2
2
  export declare const gridHeaderFilteringStateSelector: (state: GridStateCommunity) => import("../../../models/gridHeaderFilteringModel").GridHeaderFilteringState;
3
- export declare const gridHeaderFilteringEnabledSelector: import("../../..").OutputSelector<GridStateCommunity, boolean>;
4
- export declare const gridHeaderFilteringEditFieldSelector: import("../../..").OutputSelector<GridStateCommunity, string | null>;
5
- export declare const gridHeaderFilteringMenuSelector: import("../../..").OutputSelector<GridStateCommunity, string | null>;
3
+ export declare const gridHeaderFilteringEnabledSelector: import("../../..").OutputSelector<GridStateCommunity, import("../../../models/gridHeaderFilteringModel").GridHeaderFilteringState, boolean>;
4
+ export declare const gridHeaderFilteringEditFieldSelector: import("../../..").OutputSelector<GridStateCommunity, import("../../../models/gridHeaderFilteringModel").GridHeaderFilteringState, string | null>;
5
+ export declare const gridHeaderFilteringMenuSelector: import("../../..").OutputSelector<GridStateCommunity, import("../../../models/gridHeaderFilteringModel").GridHeaderFilteringState, string | null>;
@@ -1,6 +1,6 @@
1
- import * as React from 'react';
1
+ import { RefObject } from '@mui/x-internals/types';
2
2
  import { GridPrivateApiCommunity } from '../../../models/api/gridApiCommunity';
3
3
  import { DataGridProcessedProps } from '../../../models/props/DataGridProps';
4
4
  import { GridStateInitializer } from '../../utils/useGridInitializeState';
5
5
  export declare const headerFilteringStateInitializer: GridStateInitializer;
6
- export declare const useGridHeaderFiltering: (apiRef: React.MutableRefObject<GridPrivateApiCommunity>, props: Pick<DataGridProcessedProps, "signature" | "headerFilters">) => void;
6
+ export declare const useGridHeaderFiltering: (apiRef: RefObject<GridPrivateApiCommunity>, props: Pick<DataGridProcessedProps, "signature" | "headerFilters">) => void;
@@ -6,6 +6,7 @@ export * from './density';
6
6
  export * from './editing';
7
7
  export * from './filter';
8
8
  export * from './focus';
9
+ export * from './listView';
9
10
  export * from './pagination';
10
11
  export * from './preferencesPanel';
11
12
  export * from './rows';
@@ -7,6 +7,7 @@ export * from "./density/index.js";
7
7
  export * from "./editing/index.js";
8
8
  export * from "./filter/index.js";
9
9
  export * from "./focus/index.js";
10
+ export * from "./listView/index.js";
10
11
  export * from "./pagination/index.js";
11
12
  export * from "./preferencesPanel/index.js";
12
13
  export * from "./rows/index.js";
@@ -1,4 +1,4 @@
1
- import * as React from 'react';
1
+ import { RefObject } from '@mui/x-internals/types';
2
2
  import { GridPrivateApiCommunity } from '../../../models/api/gridApiCommunity';
3
3
  import { DataGridProcessedProps } from '../../../models/props/DataGridProps';
4
4
  /**
@@ -10,4 +10,4 @@ import { DataGridProcessedProps } from '../../../models/props/DataGridProps';
10
10
  * @requires useGridScroll (method) - can be after
11
11
  * @requires useGridColumnSpanning (method) - can be after
12
12
  */
13
- export declare const useGridKeyboardNavigation: (apiRef: React.MutableRefObject<GridPrivateApiCommunity>, props: Pick<DataGridProcessedProps, "pagination" | "paginationMode" | "getRowId" | "experimentalFeatures" | "signature" | "headerFilters" | "unstable_listView">) => void;
13
+ export declare const useGridKeyboardNavigation: (apiRef: RefObject<GridPrivateApiCommunity>, props: Pick<DataGridProcessedProps, "pagination" | "paginationMode" | "getRowId" | "experimentalFeatures" | "signature" | "headerFilters" | "unstable_listView">) => void;
@@ -6,7 +6,6 @@ import { gridVisibleColumnDefinitionsSelector, gridVisibleColumnFieldsSelector }
6
6
  import { useGridLogger } from "../../utils/useGridLogger.js";
7
7
  import { useGridApiEventHandler } from "../../utils/useGridApiEventHandler.js";
8
8
  import { gridExpandedSortedRowEntriesSelector } from "../filter/gridFilterSelector.js";
9
- import { useGridVisibleRows } from "../../utils/useGridVisibleRows.js";
10
9
  import { GRID_CHECKBOX_SELECTION_COL_DEF } from "../../../colDef/gridCheckboxSelectionColDef.js";
11
10
  import { gridClasses } from "../../../constants/gridClasses.js";
12
11
  import { GridCellModes } from "../../../models/gridEditRowModel.js";
@@ -16,8 +15,14 @@ import { gridColumnGroupsHeaderMaxDepthSelector } from "../columnGrouping/gridCo
16
15
  import { gridHeaderFilteringEditFieldSelector, gridHeaderFilteringMenuSelector } from "../headerFiltering/gridHeaderFilteringSelectors.js";
17
16
  import { useGridRegisterPipeProcessor } from "../../core/pipeProcessing/index.js";
18
17
  import { isEventTargetInPortal } from "../../../utils/domUtils.js";
19
- import { enrichPageRowsWithPinnedRows, getLeftColumnIndex, getRightColumnIndex, findNonRowSpannedCell } from "./utils.js";
18
+ import { getLeftColumnIndex, getRightColumnIndex, findNonRowSpannedCell } from "./utils.js";
20
19
  import { gridListColumnSelector } from "../listView/gridListViewSelectors.js";
20
+ import { createSelectorMemoized } from "../../../utils/createSelector.js";
21
+ import { gridVisibleRowsSelector } from "../pagination/index.js";
22
+ import { gridPinnedRowsSelector } from "../rows/gridRowsSelector.js";
23
+ const gridVisibleRowsWithPinnedRowsSelector = createSelectorMemoized(gridVisibleRowsSelector, gridPinnedRowsSelector, (visibleRows, pinnedRows) => {
24
+ return (pinnedRows.top || []).concat(visibleRows.rows, pinnedRows.bottom || []);
25
+ });
21
26
 
22
27
  /**
23
28
  * @requires useGridSorting (method) - can be after
@@ -30,10 +35,11 @@ import { gridListColumnSelector } from "../listView/gridListViewSelectors.js";
30
35
  */
31
36
  export const useGridKeyboardNavigation = (apiRef, props) => {
32
37
  const logger = useGridLogger(apiRef, 'useGridKeyboardNavigation');
33
- const initialCurrentPageRows = useGridVisibleRows(apiRef, props).rows;
34
38
  const isRtl = useRtl();
35
39
  const listView = props.unstable_listView;
36
- const currentPageRows = React.useMemo(() => enrichPageRowsWithPinnedRows(apiRef, initialCurrentPageRows), [apiRef, initialCurrentPageRows]);
40
+ const getCurrentPageRows = React.useCallback(() => {
41
+ return gridVisibleRowsWithPinnedRowsSelector(apiRef);
42
+ }, [apiRef]);
37
43
  const headerFilteringEnabled = props.signature !== 'DataGrid' && props.headerFilters;
38
44
 
39
45
  /**
@@ -92,8 +98,8 @@ export const useGridKeyboardNavigation = (apiRef, props) => {
92
98
  apiRef.current.setColumnGroupHeaderFocus(field, depth, event);
93
99
  }, [apiRef, logger]);
94
100
  const getRowIdFromIndex = React.useCallback(rowIndex => {
95
- return currentPageRows[rowIndex]?.id;
96
- }, [currentPageRows]);
101
+ return getCurrentPageRows()[rowIndex]?.id;
102
+ }, [getCurrentPageRows]);
97
103
  const handleColumnHeaderKeyDown = React.useCallback((params, event) => {
98
104
  const headerTitleNode = event.currentTarget.querySelector(`.${gridClasses.columnHeaderTitleContainerContent}`);
99
105
  const isFromInsideContent = !!headerTitleNode && headerTitleNode.contains(event.target);
@@ -102,6 +108,7 @@ export const useGridKeyboardNavigation = (apiRef, props) => {
102
108
  // There is one exception for the checkBoxHeader
103
109
  return;
104
110
  }
111
+ const currentPageRows = getCurrentPageRows();
105
112
  const viewportPageSize = apiRef.current.getViewportPageSize();
106
113
  const colIndexBefore = params.field ? apiRef.current.getColumnIndex(params.field) : 0;
107
114
  const firstRowIndexInPage = currentPageRows.length > 0 ? 0 : null;
@@ -113,12 +120,10 @@ export const useGridKeyboardNavigation = (apiRef, props) => {
113
120
  switch (event.key) {
114
121
  case 'ArrowDown':
115
122
  {
116
- if (firstRowIndexInPage !== null) {
117
- if (headerFilteringEnabled) {
118
- goToHeaderFilter(colIndexBefore, event);
119
- } else {
120
- goToCell(colIndexBefore, getRowIdFromIndex(firstRowIndexInPage));
121
- }
123
+ if (headerFilteringEnabled) {
124
+ goToHeaderFilter(colIndexBefore, event);
125
+ } else if (firstRowIndexInPage !== null) {
126
+ goToCell(colIndexBefore, getRowIdFromIndex(firstRowIndexInPage));
122
127
  }
123
128
  break;
124
129
  }
@@ -192,13 +197,14 @@ export const useGridKeyboardNavigation = (apiRef, props) => {
192
197
  if (shouldPreventDefault) {
193
198
  event.preventDefault();
194
199
  }
195
- }, [apiRef, currentPageRows.length, headerFilteringEnabled, goToHeaderFilter, goToCell, getRowIdFromIndex, isRtl, goToHeader, goToGroupHeader]);
200
+ }, [apiRef, getCurrentPageRows, headerFilteringEnabled, goToHeaderFilter, goToCell, getRowIdFromIndex, isRtl, goToHeader, goToGroupHeader]);
196
201
  const handleHeaderFilterKeyDown = React.useCallback((params, event) => {
197
202
  const isEditing = gridHeaderFilteringEditFieldSelector(apiRef) === params.field;
198
203
  const isHeaderMenuOpen = gridHeaderFilteringMenuSelector(apiRef) === params.field;
199
204
  if (isEditing || isHeaderMenuOpen || !isNavigationKey(event.key)) {
200
205
  return;
201
206
  }
207
+ const currentPageRows = getCurrentPageRows();
202
208
  const viewportPageSize = apiRef.current.getViewportPageSize();
203
209
  const colIndexBefore = params.field ? apiRef.current.getColumnIndex(params.field) : 0;
204
210
  const firstRowIndexInPage = 0;
@@ -278,7 +284,7 @@ export const useGridKeyboardNavigation = (apiRef, props) => {
278
284
  if (shouldPreventDefault) {
279
285
  event.preventDefault();
280
286
  }
281
- }, [apiRef, currentPageRows.length, goToHeaderFilter, isRtl, goToHeader, goToCell, getRowIdFromIndex]);
287
+ }, [apiRef, getCurrentPageRows, goToHeaderFilter, isRtl, goToHeader, goToCell, getRowIdFromIndex]);
282
288
  const handleColumnGroupHeaderKeyDown = React.useCallback((params, event) => {
283
289
  const focusedColumnGroup = gridFocusColumnGroupHeaderSelector(apiRef);
284
290
  if (focusedColumnGroup === null) {
@@ -293,6 +299,7 @@ export const useGridKeyboardNavigation = (apiRef, props) => {
293
299
  depth,
294
300
  maxDepth
295
301
  } = params;
302
+ const currentPageRows = getCurrentPageRows();
296
303
  const viewportPageSize = apiRef.current.getViewportPageSize();
297
304
  const currentColIndex = apiRef.current.getColumnIndex(currentField);
298
305
  const colIndexBefore = currentField ? apiRef.current.getColumnIndex(currentField) : 0;
@@ -364,7 +371,7 @@ export const useGridKeyboardNavigation = (apiRef, props) => {
364
371
  if (shouldPreventDefault) {
365
372
  event.preventDefault();
366
373
  }
367
- }, [apiRef, currentPageRows.length, goToHeader, goToGroupHeader, goToCell, getRowIdFromIndex]);
374
+ }, [apiRef, getCurrentPageRows, goToHeader, goToGroupHeader, goToCell, getRowIdFromIndex]);
368
375
  const handleCellKeyDown = React.useCallback((params, event) => {
369
376
  // Ignore portal
370
377
  if (isEventTargetInPortal(event)) {
@@ -383,6 +390,7 @@ export const useGridKeyboardNavigation = (apiRef, props) => {
383
390
  if (!canUpdateFocus) {
384
391
  return;
385
392
  }
393
+ const currentPageRows = getCurrentPageRows();
386
394
  if (currentPageRows.length === 0) {
387
395
  return;
388
396
  }
@@ -511,7 +519,7 @@ export const useGridKeyboardNavigation = (apiRef, props) => {
511
519
  if (shouldPreventDefault) {
512
520
  event.preventDefault();
513
521
  }
514
- }, [apiRef, currentPageRows, isRtl, goToCell, getRowIdFromIndex, headerFilteringEnabled, goToHeaderFilter, goToHeader, listView]);
522
+ }, [apiRef, getCurrentPageRows, isRtl, goToCell, getRowIdFromIndex, headerFilteringEnabled, goToHeaderFilter, goToHeader, listView]);
515
523
  const checkIfCanStartEditing = React.useCallback((initialValue, {
516
524
  event
517
525
  }) => {
@@ -1,7 +1,6 @@
1
- import * as React from 'react';
2
- import { GridColDef, GridRowEntry, GridRowId } from '../../../models';
1
+ import { RefObject } from '@mui/x-internals/types';
2
+ import { GridColDef, GridRowId } from '../../../models';
3
3
  import { GridApiCommunity } from '../../../models/api/gridApiCommunity';
4
- export declare function enrichPageRowsWithPinnedRows(apiRef: React.MutableRefObject<GridApiCommunity>, rows: GridRowEntry[]): GridRowEntry<import("../../..").GridValidRowModel>[];
5
4
  export declare const getLeftColumnIndex: ({ currentColIndex, firstColIndex, lastColIndex, isRtl, }: {
6
5
  currentColIndex: number;
7
6
  firstColIndex: number;
@@ -14,4 +13,4 @@ export declare const getRightColumnIndex: ({ currentColIndex, firstColIndex, las
14
13
  lastColIndex: number;
15
14
  isRtl: boolean;
16
15
  }) => number | null;
17
- export declare function findNonRowSpannedCell(apiRef: React.MutableRefObject<GridApiCommunity>, rowId: GridRowId, field: GridColDef['field'], rowSpanScanDirection: 'up' | 'down'): GridRowId;
16
+ export declare function findNonRowSpannedCell(apiRef: RefObject<GridApiCommunity>, rowId: GridRowId, field: GridColDef['field'], rowSpanScanDirection: 'up' | 'down'): GridRowId;
@@ -1,10 +1,5 @@
1
1
  import { gridFilteredSortedRowIdsSelector } from "../filter/gridFilterSelector.js";
2
2
  import { gridRowSpanningHiddenCellsSelector } from "../rows/gridRowSpanningSelectors.js";
3
- import { gridPinnedRowsSelector } from "../rows/gridRowsSelector.js";
4
- export function enrichPageRowsWithPinnedRows(apiRef, rows) {
5
- const pinnedRows = gridPinnedRowsSelector(apiRef) || {};
6
- return [...(pinnedRows.top || []), ...rows, ...(pinnedRows.bottom || [])];
7
- }
8
3
  export const getLeftColumnIndex = ({
9
4
  currentColIndex,
10
5
  firstColIndex,
@@ -1,5 +1,7 @@
1
1
  import { GridStateCommunity } from '../../../models/gridStateCommunity';
2
2
  /**
3
- * Get a list column definition
3
+ * Get the list column definition
4
+ * @category List View
5
+ * @ignore - Do not document
4
6
  */
5
7
  export declare const gridListColumnSelector: (state: GridStateCommunity) => import("./useGridListView").GridListViewState;
@@ -1,4 +1,6 @@
1
1
  /**
2
- * Get a list column definition
2
+ * Get the list column definition
3
+ * @category List View
4
+ * @ignore - Do not document
3
5
  */
4
6
  export const gridListColumnSelector = state => state.listViewColumn;
@@ -0,0 +1 @@
1
+ export * from './gridListViewSelectors';
@@ -0,0 +1 @@
1
+ export * from "./gridListViewSelectors.js";
@@ -1,4 +1,4 @@
1
- import * as React from 'react';
1
+ import { RefObject } from '@mui/x-internals/types';
2
2
  import type { GridListColDef } from '../../../models/colDef/gridColDef';
3
3
  import { GridStateInitializer } from '../../utils/useGridInitializeState';
4
4
  import { GridPrivateApiCommunity } from '../../../models/api/gridApiCommunity';
@@ -7,4 +7,4 @@ export type GridListViewState = (GridListColDef & {
7
7
  computedWidth: number;
8
8
  }) | undefined;
9
9
  export declare const listViewStateInitializer: GridStateInitializer<Pick<DataGridProcessedProps, 'unstable_listColumn'>>;
10
- export declare function useGridListView(apiRef: React.MutableRefObject<GridPrivateApiCommunity>, props: Pick<DataGridProcessedProps, 'unstable_listView' | 'unstable_listColumn'>): void;
10
+ export declare function useGridListView(apiRef: RefObject<GridPrivateApiCommunity>, props: Pick<DataGridProcessedProps, 'unstable_listView' | 'unstable_listColumn'>): void;
@@ -1,5 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import * as React from 'react';
3
+ import useEnhancedEffect from '@mui/utils/useEnhancedEffect';
3
4
  import { warnOnce } from '@mui/x-internals/warning';
4
5
  import { gridDimensionsSelector } from "../dimensions/index.js";
5
6
  import { useGridApiEventHandler } from "../../utils/useGridApiEventHandler.js";
@@ -37,7 +38,7 @@ export function useGridListView(apiRef, props) {
37
38
  /*
38
39
  * EFFECTS
39
40
  */
40
- React.useEffect(() => {
41
+ useEnhancedEffect(() => {
41
42
  const listColumn = props.unstable_listColumn;
42
43
  if (listColumn) {
43
44
  apiRef.current.setState(state => {
@@ -1,11 +1,14 @@
1
+ import * as React from 'react';
1
2
  import { GridLoadingOverlayVariant } from '../../../components/GridLoadingOverlay';
2
- import { GridSlotsComponent } from '../../../models/gridSlotsComponent';
3
- export type GridOverlayType = keyof Pick<GridSlotsComponent, 'noRowsOverlay' | 'noResultsOverlay' | 'loadingOverlay'> | null;
3
+ import type { GridOverlayType } from '../../../components/base/GridOverlays';
4
4
  /**
5
5
  * Uses the grid state to determine which overlay to display.
6
6
  * Returns the active overlay type and the active loading overlay variant.
7
7
  */
8
8
  export declare const useGridOverlays: () => {
9
- overlayType: GridOverlayType;
10
- loadingOverlayVariant: GridLoadingOverlayVariant | null;
9
+ getOverlay: () => React.JSX.Element | null;
10
+ overlaysProps: {
11
+ overlayType: GridOverlayType;
12
+ loadingOverlayVariant: GridLoadingOverlayVariant | null;
13
+ };
11
14
  };
@@ -1,8 +1,13 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import * as React from 'react';
1
3
  import { useGridSelector } from "../../utils/index.js";
2
4
  import { useGridApiContext } from "../../utils/useGridApiContext.js";
3
5
  import { useGridRootProps } from "../../utils/useGridRootProps.js";
4
6
  import { gridExpandedRowCountSelector } from "../filter/index.js";
5
7
  import { gridRowCountSelector, gridRowsLoadingSelector } from "../rows/index.js";
8
+ import { gridPinnedRowsCountSelector } from "../rows/gridRowsSelector.js";
9
+ import { GridOverlayWrapper } from "../../../components/base/GridOverlays.js";
10
+ import { jsx as _jsx } from "react/jsx-runtime";
6
11
  /**
7
12
  * Uses the grid state to determine which overlay to display.
8
13
  * Returns the active overlay type and the active loading overlay variant.
@@ -12,7 +17,8 @@ export const useGridOverlays = () => {
12
17
  const rootProps = useGridRootProps();
13
18
  const totalRowCount = useGridSelector(apiRef, gridRowCountSelector);
14
19
  const visibleRowCount = useGridSelector(apiRef, gridExpandedRowCountSelector);
15
- const noRows = totalRowCount === 0;
20
+ const pinnedRowsCount = useGridSelector(apiRef, gridPinnedRowsCountSelector);
21
+ const noRows = totalRowCount === 0 && pinnedRowsCount === 0;
16
22
  const loading = useGridSelector(apiRef, gridRowsLoadingSelector);
17
23
  const showNoRowsOverlay = !loading && noRows;
18
24
  const showNoResultsOverlay = !loading && totalRowCount > 0 && visibleRowCount === 0;
@@ -28,8 +34,22 @@ export const useGridOverlays = () => {
28
34
  overlayType = 'loadingOverlay';
29
35
  loadingOverlayVariant = rootProps.slotProps?.loadingOverlay?.[noRows ? 'noRowsVariant' : 'variant'] || null;
30
36
  }
31
- return {
37
+ const overlaysProps = {
32
38
  overlayType,
33
39
  loadingOverlayVariant
34
40
  };
41
+ const getOverlay = () => {
42
+ if (!overlayType) {
43
+ return null;
44
+ }
45
+ const Overlay = rootProps.slots?.[overlayType];
46
+ const overlayProps = rootProps.slotProps?.[overlayType];
47
+ return /*#__PURE__*/_jsx(GridOverlayWrapper, _extends({}, overlaysProps, {
48
+ children: /*#__PURE__*/_jsx(Overlay, _extends({}, overlayProps))
49
+ }));
50
+ };
51
+ return {
52
+ getOverlay,
53
+ overlaysProps
54
+ };
35
55
  };
@@ -1,8 +1,11 @@
1
+ import { GridFeatureMode } from '../../../models/gridFeatureMode';
1
2
  import { GridPaginationMeta, GridPaginationModel } from '../../../models/gridPaginationProps';
2
3
  export interface GridPaginationState {
3
4
  paginationModel: GridPaginationModel;
4
5
  rowCount: number;
5
6
  meta: GridPaginationMeta;
7
+ enabled: boolean;
8
+ paginationMode: GridFeatureMode;
6
9
  }
7
10
  export interface GridPaginationInitialState {
8
11
  paginationModel?: Partial<GridPaginationModel>;
@@ -1,44 +1,50 @@
1
1
  import { GridStateCommunity } from '../../../models/gridStateCommunity';
2
+ import { GridRowId } from '../../../models/gridRows';
2
3
  /**
3
4
  * @category Pagination
4
5
  * @ignore - do not document.
5
6
  */
6
7
  export declare const gridPaginationSelector: (state: GridStateCommunity) => import("./gridPaginationInterfaces").GridPaginationState;
8
+ /**
9
+ * @category Pagination
10
+ * @ignore - do not document.
11
+ */
12
+ export declare const gridPaginationEnabledClientSideSelector: import("../../..").OutputSelector<GridStateCommunity, import("./gridPaginationInterfaces").GridPaginationState, boolean>;
7
13
  /**
8
14
  * Get the pagination model
9
15
  * @category Pagination
10
16
  */
11
- export declare const gridPaginationModelSelector: import("../../..").OutputSelector<GridStateCommunity, import("../../..").GridPaginationModel>;
17
+ export declare const gridPaginationModelSelector: import("../../..").OutputSelector<GridStateCommunity, import("./gridPaginationInterfaces").GridPaginationState, import("../../..").GridPaginationModel>;
12
18
  /**
13
19
  * Get the row count
14
20
  * @category Pagination
15
21
  */
16
- export declare const gridPaginationRowCountSelector: import("../../..").OutputSelector<GridStateCommunity, number>;
22
+ export declare const gridPaginationRowCountSelector: import("../../..").OutputSelector<GridStateCommunity, import("./gridPaginationInterfaces").GridPaginationState, number>;
17
23
  /**
18
24
  * Get the pagination meta
19
25
  * @category Pagination
20
26
  */
21
- export declare const gridPaginationMetaSelector: import("../../..").OutputSelector<GridStateCommunity, import("../../..").GridPaginationMeta>;
27
+ export declare const gridPaginationMetaSelector: import("../../..").OutputSelector<GridStateCommunity, import("./gridPaginationInterfaces").GridPaginationState, import("../../..").GridPaginationMeta>;
22
28
  /**
23
29
  * Get the index of the page to render if the pagination is enabled
24
30
  * @category Pagination
25
31
  */
26
- export declare const gridPageSelector: import("../../..").OutputSelector<GridStateCommunity, number>;
32
+ export declare const gridPageSelector: import("../../..").OutputSelector<GridStateCommunity, import("../../..").GridPaginationModel, number>;
27
33
  /**
28
34
  * Get the maximum amount of rows to display on a single page if the pagination is enabled
29
35
  * @category Pagination
30
36
  */
31
- export declare const gridPageSizeSelector: import("../../..").OutputSelector<GridStateCommunity, number>;
37
+ export declare const gridPageSizeSelector: import("../../..").OutputSelector<GridStateCommunity, import("../../..").GridPaginationModel, number>;
32
38
  /**
33
39
  * Get the amount of pages needed to display all the rows if the pagination is enabled
34
40
  * @category Pagination
35
41
  */
36
- export declare const gridPageCountSelector: import("../../..").OutputSelector<GridStateCommunity, number>;
42
+ export declare const gridPageCountSelector: import("../../..").OutputSelector<GridStateCommunity, number, number>;
37
43
  /**
38
44
  * Get the index of the first and the last row to include in the current page if the pagination is enabled.
39
45
  * @category Pagination
40
46
  */
41
- export declare const gridPaginationRowRangeSelector: import("../../..").OutputSelector<GridStateCommunity, {
47
+ export declare const gridPaginationRowRangeSelector: import("../../..").OutputSelector<GridStateCommunity, import("../../..").GridRowEntry<import("../../..").GridValidRowModel>[], {
42
48
  firstRowIndex: number;
43
49
  lastRowIndex: number;
44
50
  } | null>;
@@ -46,9 +52,28 @@ export declare const gridPaginationRowRangeSelector: import("../../..").OutputSe
46
52
  * Get the id and the model of each row to include in the current page if the pagination is enabled.
47
53
  * @category Pagination
48
54
  */
49
- export declare const gridPaginatedVisibleSortedGridRowEntriesSelector: import("../../..").OutputSelector<GridStateCommunity, import("../../..").GridRowEntry<import("../../..").GridValidRowModel>[]>;
55
+ export declare const gridPaginatedVisibleSortedGridRowEntriesSelector: import("../../..").OutputSelector<GridStateCommunity, {
56
+ firstRowIndex: number;
57
+ lastRowIndex: number;
58
+ } | null, import("../../..").GridRowEntry<import("../../..").GridValidRowModel>[]>;
50
59
  /**
51
60
  * Get the id of each row to include in the current page if the pagination is enabled.
52
61
  * @category Pagination
53
62
  */
54
- export declare const gridPaginatedVisibleSortedGridRowIdsSelector: import("../../..").OutputSelector<GridStateCommunity, import("../../..").GridRowId[]>;
63
+ export declare const gridPaginatedVisibleSortedGridRowIdsSelector: import("../../..").OutputSelector<GridStateCommunity, {
64
+ firstRowIndex: number;
65
+ lastRowIndex: number;
66
+ } | null, GridRowId[]>;
67
+ /**
68
+ * Get the rows, range and rowIndex lookup map after filtering and sorting.
69
+ * Does not contain the collapsed children.
70
+ * @category Pagination
71
+ */
72
+ export declare const gridVisibleRowsSelector: import("../../..").OutputSelector<GridStateCommunity, import("../../..").GridRowEntry<import("../../..").GridValidRowModel>[], {
73
+ rows: import("../../..").GridRowEntry<import("../../..").GridValidRowModel>[];
74
+ range: {
75
+ firstRowIndex: number;
76
+ lastRowIndex: number;
77
+ } | null;
78
+ rowIdToIndexMap: Map<GridRowId, number>;
79
+ }>;
@@ -10,6 +10,12 @@ const ALL_RESULTS_PAGE_VALUE = -1;
10
10
  */
11
11
  export const gridPaginationSelector = state => state.pagination;
12
12
 
13
+ /**
14
+ * @category Pagination
15
+ * @ignore - do not document.
16
+ */
17
+ export const gridPaginationEnabledClientSideSelector = createSelector(gridPaginationSelector, pagination => pagination.enabled && pagination.paginationMode === 'client');
18
+
13
19
  /**
14
20
  * Get the pagination model
15
21
  * @category Pagination
@@ -50,7 +56,10 @@ export const gridPageCountSelector = createSelector(gridPaginationModelSelector,
50
56
  * Get the index of the first and the last row to include in the current page if the pagination is enabled.
51
57
  * @category Pagination
52
58
  */
53
- export const gridPaginationRowRangeSelector = createSelectorMemoized(gridPaginationModelSelector, gridRowTreeSelector, gridRowMaximumTreeDepthSelector, gridExpandedSortedRowEntriesSelector, gridFilteredSortedTopLevelRowEntriesSelector, (paginationModel, rowTree, rowTreeDepth, visibleSortedRowEntries, visibleSortedTopLevelRowEntries) => {
59
+ export const gridPaginationRowRangeSelector = createSelectorMemoized(gridPaginationEnabledClientSideSelector, gridPaginationModelSelector, gridRowTreeSelector, gridRowMaximumTreeDepthSelector, gridExpandedSortedRowEntriesSelector, gridFilteredSortedTopLevelRowEntriesSelector, (clientSidePaginationEnabled, paginationModel, rowTree, rowTreeDepth, visibleSortedRowEntries, visibleSortedTopLevelRowEntries) => {
60
+ if (!clientSidePaginationEnabled) {
61
+ return null;
62
+ }
54
63
  const visibleTopLevelRowCount = visibleSortedTopLevelRowEntries.length;
55
64
  const topLevelFirstRowIndex = Math.min(paginationModel.pageSize * paginationModel.page, visibleTopLevelRowCount - 1);
56
65
  const topLevelLastRowIndex = paginationModel.pageSize === ALL_RESULTS_PAGE_VALUE ? visibleTopLevelRowCount - 1 : Math.min(topLevelFirstRowIndex + paginationModel.pageSize - 1, visibleTopLevelRowCount - 1);
@@ -112,4 +121,33 @@ export const gridPaginatedVisibleSortedGridRowIdsSelector = createSelectorMemoiz
112
121
  return [];
113
122
  }
114
123
  return visibleSortedRowIds.slice(paginationRange.firstRowIndex, paginationRange.lastRowIndex + 1);
124
+ });
125
+
126
+ /**
127
+ * Get the rows, range and rowIndex lookup map after filtering and sorting.
128
+ * Does not contain the collapsed children.
129
+ * @category Pagination
130
+ */
131
+ export const gridVisibleRowsSelector = createSelectorMemoized(gridPaginationEnabledClientSideSelector, gridPaginationRowRangeSelector, gridPaginatedVisibleSortedGridRowEntriesSelector, gridExpandedSortedRowEntriesSelector, (clientPaginationEnabled, paginationRowRange, paginationRows, expandedSortedRowEntries) => {
132
+ if (clientPaginationEnabled) {
133
+ return {
134
+ rows: paginationRows,
135
+ range: paginationRowRange,
136
+ rowIdToIndexMap: paginationRows.reduce((lookup, row, index) => {
137
+ lookup.set(row.id, index);
138
+ return lookup;
139
+ }, new Map())
140
+ };
141
+ }
142
+ return {
143
+ rows: expandedSortedRowEntries,
144
+ range: expandedSortedRowEntries.length === 0 ? null : {
145
+ firstRowIndex: 0,
146
+ lastRowIndex: expandedSortedRowEntries.length - 1
147
+ },
148
+ rowIdToIndexMap: expandedSortedRowEntries.reduce((lookup, row, index) => {
149
+ lookup.set(row.id, index);
150
+ return lookup;
151
+ }, new Map())
152
+ };
115
153
  });
@@ -1,10 +1,10 @@
1
- import * as React from 'react';
1
+ import { RefObject } from '@mui/x-internals/types';
2
2
  import { GridPrivateApiCommunity } from '../../../models/api/gridApiCommunity';
3
3
  import { DataGridProcessedProps } from '../../../models/props/DataGridProps';
4
4
  import { GridStateInitializer } from '../../utils/useGridInitializeState';
5
- export declare const paginationStateInitializer: GridStateInitializer<Pick<DataGridProcessedProps, 'paginationModel' | 'rowCount' | 'initialState' | 'autoPageSize' | 'signature' | 'paginationMeta'>>;
5
+ export declare const paginationStateInitializer: GridStateInitializer<Pick<DataGridProcessedProps, 'paginationModel' | 'rowCount' | 'initialState' | 'autoPageSize' | 'signature' | 'paginationMeta' | 'pagination' | 'paginationMode'>>;
6
6
  /**
7
7
  * @requires useGridFilter (state)
8
8
  * @requires useGridDimensions (event) - can be after
9
9
  */
10
- export declare const useGridPagination: (apiRef: React.MutableRefObject<GridPrivateApiCommunity>, props: DataGridProcessedProps) => void;
10
+ export declare const useGridPagination: (apiRef: RefObject<GridPrivateApiCommunity>, props: DataGridProcessedProps) => void;
@@ -9,11 +9,13 @@ export const paginationStateInitializer = (state, props) => {
9
9
  const rowCount = props.rowCount ?? props.initialState?.pagination?.rowCount;
10
10
  const meta = props.paginationMeta ?? props.initialState?.pagination?.meta ?? {};
11
11
  return _extends({}, state, {
12
- pagination: {
12
+ pagination: _extends({}, state.pagination, {
13
13
  paginationModel,
14
14
  rowCount,
15
- meta
16
- }
15
+ meta,
16
+ enabled: props.pagination === true,
17
+ paginationMode: props.paginationMode
18
+ })
17
19
  });
18
20
  };
19
21
 
@@ -1,4 +1,4 @@
1
- import * as React from 'react';
1
+ import { RefObject } from '@mui/x-internals/types';
2
2
  import { GridPrivateApiCommunity } from '../../../models/api/gridApiCommunity';
3
3
  import { DataGridProcessedProps } from '../../../models/props/DataGridProps';
4
- export declare const useGridPaginationMeta: (apiRef: React.MutableRefObject<GridPrivateApiCommunity>, props: Pick<DataGridProcessedProps, "paginationMeta" | "initialState" | "paginationMode" | "onPaginationMetaChange">) => void;
4
+ export declare const useGridPaginationMeta: (apiRef: RefObject<GridPrivateApiCommunity>, props: Pick<DataGridProcessedProps, "paginationMeta" | "initialState" | "paginationMode" | "onPaginationMetaChange">) => void;
@@ -1,4 +1,4 @@
1
- import * as React from 'react';
1
+ import { RefObject } from '@mui/x-internals/types';
2
2
  import { GridPrivateApiCommunity } from '../../../models/api/gridApiCommunity';
3
3
  import { DataGridProcessedProps } from '../../../models/props/DataGridProps';
4
4
  import { GridPaginationState } from './gridPaginationInterfaces';
@@ -8,4 +8,4 @@ export declare const getDerivedPaginationModel: (paginationState: GridPagination
8
8
  * @requires useGridFilter (state)
9
9
  * @requires useGridDimensions (event) - can be after
10
10
  */
11
- export declare const useGridPaginationModel: (apiRef: React.MutableRefObject<GridPrivateApiCommunity>, props: Pick<DataGridProcessedProps, "paginationModel" | "onPaginationModelChange" | "autoPageSize" | "initialState" | "paginationMode" | "signature" | "rowHeight">) => void;
11
+ export declare const useGridPaginationModel: (apiRef: RefObject<GridPrivateApiCommunity>, props: Pick<DataGridProcessedProps, "paginationModel" | "onPaginationModelChange" | "autoPageSize" | "initialState" | "paginationMode" | "pagination" | "signature" | "rowHeight">) => void;
@@ -155,12 +155,34 @@ export const useGridPaginationModel = (apiRef, props) => {
155
155
  /**
156
156
  * EFFECTS
157
157
  */
158
+ const isFirstRender = React.useRef(true);
158
159
  React.useEffect(() => {
160
+ if (isFirstRender.current) {
161
+ isFirstRender.current = false;
162
+ return;
163
+ }
164
+ if (!props.pagination) {
165
+ return;
166
+ }
159
167
  apiRef.current.setState(state => _extends({}, state, {
160
168
  pagination: _extends({}, state.pagination, {
161
169
  paginationModel: getDerivedPaginationModel(state.pagination, props.signature, props.paginationModel)
162
170
  })
163
171
  }));
164
- }, [apiRef, props.paginationModel, props.paginationMode, props.signature]);
172
+ }, [apiRef, props.paginationModel, props.signature, props.pagination]);
173
+ React.useEffect(() => {
174
+ apiRef.current.setState(state => {
175
+ const isEnabled = props.pagination === true;
176
+ if (state.pagination.paginationMode === props.paginationMode || state.pagination.enabled === isEnabled) {
177
+ return state;
178
+ }
179
+ return _extends({}, state, {
180
+ pagination: _extends({}, state.pagination, {
181
+ paginationMode: props.paginationMode,
182
+ enabled: props.pagination === true
183
+ })
184
+ });
185
+ });
186
+ }, [apiRef, props.paginationMode, props.pagination]);
165
187
  React.useEffect(handleUpdateAutoPageSize, [handleUpdateAutoPageSize]);
166
188
  };
@@ -1,4 +1,4 @@
1
- import * as React from 'react';
1
+ import { RefObject } from '@mui/x-internals/types';
2
2
  import { GridPrivateApiCommunity } from '../../../models/api/gridApiCommunity';
3
3
  import { DataGridProcessedProps } from '../../../models/props/DataGridProps';
4
- export declare const useGridRowCount: (apiRef: React.MutableRefObject<GridPrivateApiCommunity>, props: Pick<DataGridProcessedProps, "rowCount" | "initialState" | "paginationMode" | "onRowCountChange">) => void;
4
+ export declare const useGridRowCount: (apiRef: RefObject<GridPrivateApiCommunity>, props: Pick<DataGridProcessedProps, "rowCount" | "initialState" | "paginationMode" | "onRowCountChange">) => void;
@@ -1,2 +1,3 @@
1
1
  import { GridStateCommunity } from '../../../models/gridStateCommunity';
2
2
  export declare const gridPreferencePanelStateSelector: (state: GridStateCommunity) => import("./gridPreferencePanelState").GridPreferencePanelState;
3
+ export declare const gridPreferencePanelSelectorWithLabel: import("../../..").OutputSelector<GridStateCommunity, string, boolean>;