@mui/x-data-grid 7.0.0-beta.3 → 7.0.0-beta.5

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 (531) hide show
  1. package/CHANGELOG.md +357 -22
  2. package/DataGrid/DataGrid.js +2 -0
  3. package/colDef/gridActionsColDef.js +1 -0
  4. package/colDef/gridBooleanColDef.js +1 -0
  5. package/colDef/gridBooleanOperators.js +1 -1
  6. package/colDef/gridCheckboxSelectionColDef.js +1 -0
  7. package/components/GridRow.d.ts +7 -9
  8. package/components/GridRow.js +36 -47
  9. package/components/GridScrollbarFillerCell.js +6 -21
  10. package/components/cell/GridCell.d.ts +2 -1
  11. package/components/cell/GridCell.js +17 -15
  12. package/components/cell/GridSkeletonCell.d.ts +3 -2
  13. package/components/cell/GridSkeletonCell.js +14 -6
  14. package/components/columnSelection/GridCellCheckboxRenderer.js +7 -6
  15. package/components/columnsManagement/GridColumnsManagement.js +1 -1
  16. package/components/containers/GridRootStyles.js +59 -21
  17. package/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +8 -2
  18. package/components/virtualization/GridBottomContainer.js +1 -1
  19. package/components/virtualization/GridTopContainer.js +1 -1
  20. package/components/virtualization/GridVirtualScroller.js +2 -2
  21. package/components/virtualization/GridVirtualScrollerRenderZone.js +9 -3
  22. package/constants/gridClasses.d.ts +24 -8
  23. package/constants/gridClasses.js +1 -1
  24. package/hooks/features/clipboard/useGridClipboard.js +1 -1
  25. package/hooks/features/columnHeaders/useGridColumnHeaders.js +11 -8
  26. package/hooks/features/columns/gridColumnsSelector.d.ts +6 -0
  27. package/hooks/features/columns/gridColumnsSelector.js +8 -1
  28. package/hooks/features/columns/useGridColumns.js +4 -0
  29. package/hooks/features/editing/useGridCellEditing.js +3 -4
  30. package/hooks/features/editing/useGridRowEditing.js +4 -6
  31. package/hooks/features/filter/useGridFilter.js +2 -2
  32. package/hooks/features/rows/useGridRows.js +8 -4
  33. package/hooks/features/rows/useGridRowsMeta.js +5 -13
  34. package/hooks/features/sorting/gridSortingUtils.js +9 -1
  35. package/hooks/features/sorting/useGridSorting.js +1 -2
  36. package/hooks/features/virtualization/gridVirtualizationSelectors.d.ts +0 -9
  37. package/hooks/features/virtualization/gridVirtualizationSelectors.js +0 -7
  38. package/hooks/features/virtualization/useGridVirtualScroller.d.ts +3 -0
  39. package/hooks/features/virtualization/useGridVirtualScroller.js +82 -138
  40. package/hooks/features/virtualization/useGridVirtualization.d.ts +0 -8
  41. package/hooks/features/virtualization/useGridVirtualization.js +1 -6
  42. package/hooks/utils/useTimeout.d.ts +5 -3
  43. package/hooks/utils/useTimeout.js +13 -5
  44. package/index.js +1 -1
  45. package/internals/index.d.ts +1 -1
  46. package/internals/index.js +1 -1
  47. package/models/colDef/gridColDef.d.ts +13 -0
  48. package/modern/DataGrid/DataGrid.js +2 -0
  49. package/modern/colDef/gridActionsColDef.js +1 -0
  50. package/modern/colDef/gridBooleanColDef.js +1 -0
  51. package/modern/colDef/gridBooleanOperators.js +1 -1
  52. package/modern/colDef/gridCheckboxSelectionColDef.js +1 -0
  53. package/modern/components/GridRow.js +35 -46
  54. package/modern/components/GridScrollbarFillerCell.js +6 -21
  55. package/modern/components/cell/GridCell.js +17 -15
  56. package/modern/components/cell/GridSkeletonCell.js +14 -6
  57. package/modern/components/columnSelection/GridCellCheckboxRenderer.js +7 -6
  58. package/modern/components/columnsManagement/GridColumnsManagement.js +1 -1
  59. package/modern/components/containers/GridRootStyles.js +59 -21
  60. package/modern/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +8 -2
  61. package/modern/components/virtualization/GridBottomContainer.js +1 -1
  62. package/modern/components/virtualization/GridTopContainer.js +1 -1
  63. package/modern/components/virtualization/GridVirtualScroller.js +2 -2
  64. package/modern/components/virtualization/GridVirtualScrollerRenderZone.js +8 -3
  65. package/modern/constants/gridClasses.js +1 -1
  66. package/modern/hooks/features/clipboard/useGridClipboard.js +1 -1
  67. package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +11 -8
  68. package/modern/hooks/features/columns/gridColumnsSelector.js +8 -1
  69. package/modern/hooks/features/columns/useGridColumns.js +2 -0
  70. package/modern/hooks/features/editing/useGridCellEditing.js +3 -4
  71. package/modern/hooks/features/editing/useGridRowEditing.js +4 -6
  72. package/modern/hooks/features/filter/useGridFilter.js +2 -2
  73. package/modern/hooks/features/rows/useGridRows.js +8 -4
  74. package/modern/hooks/features/rows/useGridRowsMeta.js +5 -13
  75. package/modern/hooks/features/sorting/gridSortingUtils.js +9 -1
  76. package/modern/hooks/features/sorting/useGridSorting.js +1 -2
  77. package/modern/hooks/features/virtualization/gridVirtualizationSelectors.js +0 -7
  78. package/modern/hooks/features/virtualization/useGridVirtualScroller.js +80 -136
  79. package/modern/hooks/features/virtualization/useGridVirtualization.js +1 -6
  80. package/modern/hooks/utils/useTimeout.js +13 -5
  81. package/modern/index.js +1 -1
  82. package/modern/internals/index.js +1 -1
  83. package/modern/utils/keyboardUtils.js +20 -11
  84. package/modern/utils/utils.js +9 -0
  85. package/node/DataGrid/DataGrid.js +1 -0
  86. package/node/colDef/gridActionsColDef.js +1 -0
  87. package/node/colDef/gridBooleanColDef.js +1 -0
  88. package/node/colDef/gridBooleanOperators.js +1 -1
  89. package/node/colDef/gridCheckboxSelectionColDef.js +1 -0
  90. package/node/components/GridRow.js +35 -46
  91. package/node/components/GridScrollbarFillerCell.js +5 -20
  92. package/node/components/cell/GridCell.js +17 -15
  93. package/node/components/cell/GridSkeletonCell.js +15 -7
  94. package/node/components/columnSelection/GridCellCheckboxRenderer.js +7 -6
  95. package/node/components/columnsManagement/GridColumnsManagement.js +1 -1
  96. package/node/components/containers/GridRootStyles.js +59 -21
  97. package/node/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +8 -2
  98. package/node/components/virtualization/GridBottomContainer.js +1 -1
  99. package/node/components/virtualization/GridTopContainer.js +1 -1
  100. package/node/components/virtualization/GridVirtualScroller.js +2 -2
  101. package/node/components/virtualization/GridVirtualScrollerRenderZone.js +7 -2
  102. package/node/constants/gridClasses.js +1 -1
  103. package/node/hooks/features/clipboard/useGridClipboard.js +1 -1
  104. package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +8 -5
  105. package/node/hooks/features/columns/gridColumnsSelector.js +9 -2
  106. package/node/hooks/features/columns/useGridColumns.js +2 -0
  107. package/node/hooks/features/editing/useGridCellEditing.js +2 -3
  108. package/node/hooks/features/editing/useGridRowEditing.js +3 -5
  109. package/node/hooks/features/filter/useGridFilter.js +2 -2
  110. package/node/hooks/features/rows/useGridRows.js +8 -4
  111. package/node/hooks/features/rows/useGridRowsMeta.js +5 -13
  112. package/node/hooks/features/sorting/gridSortingUtils.js +9 -1
  113. package/node/hooks/features/sorting/useGridSorting.js +1 -2
  114. package/node/hooks/features/virtualization/gridVirtualizationSelectors.js +1 -8
  115. package/node/hooks/features/virtualization/useGridVirtualScroller.js +81 -136
  116. package/node/hooks/features/virtualization/useGridVirtualization.js +2 -7
  117. package/node/hooks/utils/useTimeout.js +13 -4
  118. package/node/index.js +1 -1
  119. package/node/internals/index.js +7 -0
  120. package/node/utils/keyboardUtils.js +25 -20
  121. package/node/utils/utils.js +12 -1
  122. package/package.json +1 -1
  123. package/utils/keyboardUtils.d.ts +7 -6
  124. package/utils/keyboardUtils.js +20 -11
  125. package/utils/utils.d.ts +4 -0
  126. package/utils/utils.js +9 -0
  127. package/legacy/DataGrid/DataGrid.js +0 -664
  128. package/legacy/DataGrid/index.js +0 -2
  129. package/legacy/DataGrid/useDataGridComponent.js +0 -81
  130. package/legacy/DataGrid/useDataGridProps.js +0 -98
  131. package/legacy/colDef/gridActionsColDef.js +0 -18
  132. package/legacy/colDef/gridBooleanColDef.js +0 -42
  133. package/legacy/colDef/gridBooleanOperators.js +0 -16
  134. package/legacy/colDef/gridCheckboxSelectionColDef.js +0 -33
  135. package/legacy/colDef/gridDateColDef.js +0 -62
  136. package/legacy/colDef/gridDateOperators.js +0 -115
  137. package/legacy/colDef/gridDefaultColumnTypes.js +0 -19
  138. package/legacy/colDef/gridNumericColDef.js +0 -19
  139. package/legacy/colDef/gridNumericOperators.js +0 -145
  140. package/legacy/colDef/gridSingleSelectColDef.js +0 -64
  141. package/legacy/colDef/gridSingleSelectOperators.js +0 -46
  142. package/legacy/colDef/gridStringColDef.js +0 -27
  143. package/legacy/colDef/gridStringOperators.js +0 -112
  144. package/legacy/colDef/index.js +0 -13
  145. package/legacy/components/GridApiContext.js +0 -5
  146. package/legacy/components/GridColumnHeaders.js +0 -94
  147. package/legacy/components/GridDetailPanels.js +0 -4
  148. package/legacy/components/GridFooter.js +0 -42
  149. package/legacy/components/GridHeader.js +0 -13
  150. package/legacy/components/GridHeaders.js +0 -53
  151. package/legacy/components/GridLoadingOverlay.js +0 -21
  152. package/legacy/components/GridNoResultsOverlay.js +0 -14
  153. package/legacy/components/GridNoRowsOverlay.js +0 -23
  154. package/legacy/components/GridPagination.js +0 -85
  155. package/legacy/components/GridPinnedRows.js +0 -4
  156. package/legacy/components/GridRow.js +0 -465
  157. package/legacy/components/GridRowCount.js +0 -63
  158. package/legacy/components/GridScrollbarFillerCell.js +0 -34
  159. package/legacy/components/GridSelectedRowCount.js +0 -66
  160. package/legacy/components/base/GridBody.js +0 -2
  161. package/legacy/components/base/GridFooterPlaceholder.js +0 -12
  162. package/legacy/components/base/GridOverlays.js +0 -122
  163. package/legacy/components/base/index.js +0 -3
  164. package/legacy/components/cell/GridActionsCell.js +0 -294
  165. package/legacy/components/cell/GridActionsCellItem.js +0 -69
  166. package/legacy/components/cell/GridBooleanCell.js +0 -121
  167. package/legacy/components/cell/GridCell.js +0 -350
  168. package/legacy/components/cell/GridEditBooleanCell.js +0 -174
  169. package/legacy/components/cell/GridEditDateCell.js +0 -230
  170. package/legacy/components/cell/GridEditInputCell.js +0 -198
  171. package/legacy/components/cell/GridEditSingleSelectCell.js +0 -231
  172. package/legacy/components/cell/GridSkeletonCell.js +0 -52
  173. package/legacy/components/cell/index.js +0 -9
  174. package/legacy/components/columnHeaders/ColumnHeaderMenuIcon.js +0 -59
  175. package/legacy/components/columnHeaders/GridBaseColumnHeaders.js +0 -41
  176. package/legacy/components/columnHeaders/GridColumnGroupHeader.js +0 -132
  177. package/legacy/components/columnHeaders/GridColumnHeaderFilterIconButton.js +0 -93
  178. package/legacy/components/columnHeaders/GridColumnHeaderItem.js +0 -212
  179. package/legacy/components/columnHeaders/GridColumnHeaderSeparator.js +0 -71
  180. package/legacy/components/columnHeaders/GridColumnHeaderSortIcon.js +0 -79
  181. package/legacy/components/columnHeaders/GridColumnHeaderTitle.js +0 -84
  182. package/legacy/components/columnHeaders/GridColumnHeadersInner.js +0 -55
  183. package/legacy/components/columnHeaders/GridGenericColumnHeaderItem.js +0 -107
  184. package/legacy/components/columnHeaders/GridIconButtonContainer.js +0 -41
  185. package/legacy/components/columnHeaders/index.js +0 -5
  186. package/legacy/components/columnSelection/GridCellCheckboxRenderer.js +0 -160
  187. package/legacy/components/columnSelection/GridHeaderCheckbox.js +0 -134
  188. package/legacy/components/columnSelection/index.js +0 -2
  189. package/legacy/components/columnsManagement/GridColumnsManagement.js +0 -307
  190. package/legacy/components/columnsManagement/index.js +0 -1
  191. package/legacy/components/columnsManagement/utils.js +0 -22
  192. package/legacy/components/containers/GridFooterContainer.js +0 -50
  193. package/legacy/components/containers/GridOverlay.js +0 -52
  194. package/legacy/components/containers/GridRoot.js +0 -79
  195. package/legacy/components/containers/GridRootStyles.js +0 -395
  196. package/legacy/components/containers/GridToolbarContainer.js +0 -59
  197. package/legacy/components/containers/index.js +0 -4
  198. package/legacy/components/index.js +0 -19
  199. package/legacy/components/menu/GridMenu.js +0 -132
  200. package/legacy/components/menu/columnMenu/GridColumnHeaderMenu.js +0 -61
  201. package/legacy/components/menu/columnMenu/GridColumnMenu.js +0 -81
  202. package/legacy/components/menu/columnMenu/GridColumnMenuContainer.js +0 -56
  203. package/legacy/components/menu/columnMenu/GridColumnMenuItemProps.js +0 -1
  204. package/legacy/components/menu/columnMenu/GridColumnMenuProps.js +0 -1
  205. package/legacy/components/menu/columnMenu/index.js +0 -9
  206. package/legacy/components/menu/columnMenu/menuItems/GridColumnMenuColumnsItem.js +0 -21
  207. package/legacy/components/menu/columnMenu/menuItems/GridColumnMenuFilterItem.js +0 -41
  208. package/legacy/components/menu/columnMenu/menuItems/GridColumnMenuHideItem.js +0 -60
  209. package/legacy/components/menu/columnMenu/menuItems/GridColumnMenuManageItem.js +0 -41
  210. package/legacy/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +0 -80
  211. package/legacy/components/menu/columnMenu/menuItems/index.js +0 -5
  212. package/legacy/components/menu/index.js +0 -2
  213. package/legacy/components/panel/GridColumnsPanel.js +0 -22
  214. package/legacy/components/panel/GridPanel.js +0 -137
  215. package/legacy/components/panel/GridPanelContent.js +0 -49
  216. package/legacy/components/panel/GridPanelFooter.js +0 -50
  217. package/legacy/components/panel/GridPanelHeader.js +0 -48
  218. package/legacy/components/panel/GridPanelWrapper.js +0 -64
  219. package/legacy/components/panel/GridPreferencesPanel.js +0 -26
  220. package/legacy/components/panel/filterPanel/GridFilterForm.js +0 -528
  221. package/legacy/components/panel/filterPanel/GridFilterInputBoolean.js +0 -118
  222. package/legacy/components/panel/filterPanel/GridFilterInputDate.js +0 -121
  223. package/legacy/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +0 -116
  224. package/legacy/components/panel/filterPanel/GridFilterInputMultipleValue.js +0 -102
  225. package/legacy/components/panel/filterPanel/GridFilterInputSingleSelect.js +0 -149
  226. package/legacy/components/panel/filterPanel/GridFilterInputValue.js +0 -106
  227. package/legacy/components/panel/filterPanel/GridFilterInputValueProps.js +0 -1
  228. package/legacy/components/panel/filterPanel/GridFilterPanel.js +0 -264
  229. package/legacy/components/panel/filterPanel/filterPanelUtils.js +0 -22
  230. package/legacy/components/panel/filterPanel/index.js +0 -9
  231. package/legacy/components/panel/index.js +0 -7
  232. package/legacy/components/reexportable.js +0 -1
  233. package/legacy/components/toolbar/GridToolbar.js +0 -64
  234. package/legacy/components/toolbar/GridToolbarColumnsButton.js +0 -68
  235. package/legacy/components/toolbar/GridToolbarDensitySelector.js +0 -142
  236. package/legacy/components/toolbar/GridToolbarExport.js +0 -80
  237. package/legacy/components/toolbar/GridToolbarExportContainer.js +0 -105
  238. package/legacy/components/toolbar/GridToolbarFilterButton.js +0 -136
  239. package/legacy/components/toolbar/GridToolbarQuickFilter.js +0 -164
  240. package/legacy/components/toolbar/index.js +0 -7
  241. package/legacy/components/virtualization/GridBottomContainer.js +0 -25
  242. package/legacy/components/virtualization/GridMainContainer.js +0 -20
  243. package/legacy/components/virtualization/GridTopContainer.js +0 -35
  244. package/legacy/components/virtualization/GridVirtualScrollbar.js +0 -129
  245. package/legacy/components/virtualization/GridVirtualScroller.js +0 -93
  246. package/legacy/components/virtualization/GridVirtualScrollerContent.js +0 -35
  247. package/legacy/components/virtualization/GridVirtualScrollerFiller.js +0 -70
  248. package/legacy/components/virtualization/GridVirtualScrollerRenderZone.js +0 -49
  249. package/legacy/constants/defaultGridSlotsComponents.js +0 -33
  250. package/legacy/constants/envConstants.js +0 -19
  251. package/legacy/constants/gridClasses.js +0 -5
  252. package/legacy/constants/gridDetailPanelToggleField.js +0 -2
  253. package/legacy/constants/index.js +0 -3
  254. package/legacy/constants/localeTextConstants.js +0 -158
  255. package/legacy/context/GridContextProvider.js +0 -21
  256. package/legacy/context/GridRootPropsContext.js +0 -6
  257. package/legacy/context/index.js +0 -1
  258. package/legacy/hooks/core/gridCoreSelector.js +0 -7
  259. package/legacy/hooks/core/index.js +0 -1
  260. package/legacy/hooks/core/pipeProcessing/gridPipeProcessingApi.js +0 -1
  261. package/legacy/hooks/core/pipeProcessing/index.js +0 -4
  262. package/legacy/hooks/core/pipeProcessing/useGridPipeProcessing.js +0 -114
  263. package/legacy/hooks/core/pipeProcessing/useGridRegisterPipeApplier.js +0 -26
  264. package/legacy/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.js +0 -26
  265. package/legacy/hooks/core/strategyProcessing/gridStrategyProcessingApi.js +0 -1
  266. package/legacy/hooks/core/strategyProcessing/index.js +0 -3
  267. package/legacy/hooks/core/strategyProcessing/useGridRegisterStrategyProcessor.js +0 -18
  268. package/legacy/hooks/core/strategyProcessing/useGridStrategyProcessing.js +0 -116
  269. package/legacy/hooks/core/useGridApiInitialization.js +0 -124
  270. package/legacy/hooks/core/useGridInitialization.js +0 -26
  271. package/legacy/hooks/core/useGridLocaleText.js +0 -12
  272. package/legacy/hooks/core/useGridLoggerFactory.js +0 -51
  273. package/legacy/hooks/core/useGridRefs.js +0 -13
  274. package/legacy/hooks/core/useGridStateInitialization.js +0 -106
  275. package/legacy/hooks/core/useGridTheme.js +0 -21
  276. package/legacy/hooks/features/clipboard/useGridClipboard.js +0 -92
  277. package/legacy/hooks/features/columnGrouping/gridColumnGroupsInterfaces.js +0 -1
  278. package/legacy/hooks/features/columnGrouping/gridColumnGroupsSelector.js +0 -24
  279. package/legacy/hooks/features/columnGrouping/gridColumnGroupsUtils.js +0 -92
  280. package/legacy/hooks/features/columnGrouping/index.js +0 -2
  281. package/legacy/hooks/features/columnGrouping/useGridColumnGrouping.js +0 -140
  282. package/legacy/hooks/features/columnHeaders/useGridColumnHeaders.js +0 -272
  283. package/legacy/hooks/features/columnMenu/columnMenuInterfaces.js +0 -1
  284. package/legacy/hooks/features/columnMenu/columnMenuSelector.js +0 -3
  285. package/legacy/hooks/features/columnMenu/index.js +0 -2
  286. package/legacy/hooks/features/columnMenu/useGridColumnMenu.js +0 -108
  287. package/legacy/hooks/features/columnMenu/useGridColumnMenuSlots.js +0 -71
  288. package/legacy/hooks/features/columns/gridColumnsInterfaces.js +0 -9
  289. package/legacy/hooks/features/columns/gridColumnsSelector.js +0 -174
  290. package/legacy/hooks/features/columns/gridColumnsUtils.js +0 -338
  291. package/legacy/hooks/features/columns/index.js +0 -2
  292. package/legacy/hooks/features/columns/useGridColumnSpanning.js +0 -105
  293. package/legacy/hooks/features/columns/useGridColumns.js +0 -319
  294. package/legacy/hooks/features/density/densitySelector.js +0 -10
  295. package/legacy/hooks/features/density/densityState.js +0 -1
  296. package/legacy/hooks/features/density/index.js +0 -2
  297. package/legacy/hooks/features/density/useGridDensity.js +0 -48
  298. package/legacy/hooks/features/dimensions/gridDimensionsApi.js +0 -1
  299. package/legacy/hooks/features/dimensions/gridDimensionsSelectors.js +0 -3
  300. package/legacy/hooks/features/dimensions/index.js +0 -2
  301. package/legacy/hooks/features/dimensions/useGridDimensions.js +0 -302
  302. package/legacy/hooks/features/editing/gridEditingSelectors.js +0 -4
  303. package/legacy/hooks/features/editing/useGridCellEditing.js +0 -456
  304. package/legacy/hooks/features/editing/useGridEditing.js +0 -145
  305. package/legacy/hooks/features/editing/useGridRowEditing.js +0 -567
  306. package/legacy/hooks/features/events/useGridEvents.js +0 -23
  307. package/legacy/hooks/features/export/serializers/csvSerializer.js +0 -155
  308. package/legacy/hooks/features/export/useGridCsvExport.js +0 -75
  309. package/legacy/hooks/features/export/useGridPrintExport.js +0 -313
  310. package/legacy/hooks/features/export/utils.js +0 -49
  311. package/legacy/hooks/features/filter/gridFilterSelector.js +0 -165
  312. package/legacy/hooks/features/filter/gridFilterState.js +0 -20
  313. package/legacy/hooks/features/filter/gridFilterUtils.js +0 -330
  314. package/legacy/hooks/features/filter/index.js +0 -2
  315. package/legacy/hooks/features/filter/useGridFilter.js +0 -378
  316. package/legacy/hooks/features/focus/gridFocusState.js +0 -1
  317. package/legacy/hooks/features/focus/gridFocusStateSelector.js +0 -31
  318. package/legacy/hooks/features/focus/index.js +0 -2
  319. package/legacy/hooks/features/focus/useGridFocus.js +0 -408
  320. package/legacy/hooks/features/headerFiltering/gridHeaderFilteringSelectors.js +0 -10
  321. package/legacy/hooks/features/headerFiltering/index.js +0 -1
  322. package/legacy/hooks/features/headerFiltering/useGridHeaderFiltering.js +0 -93
  323. package/legacy/hooks/features/index.js +0 -16
  324. package/legacy/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +0 -565
  325. package/legacy/hooks/features/pagination/gridPaginationInterfaces.js +0 -1
  326. package/legacy/hooks/features/pagination/gridPaginationSelector.js +0 -115
  327. package/legacy/hooks/features/pagination/gridPaginationUtils.js +0 -31
  328. package/legacy/hooks/features/pagination/index.js +0 -2
  329. package/legacy/hooks/features/pagination/useGridPagination.js +0 -175
  330. package/legacy/hooks/features/preferencesPanel/gridPreferencePanelSelector.js +0 -3
  331. package/legacy/hooks/features/preferencesPanel/gridPreferencePanelState.js +0 -1
  332. package/legacy/hooks/features/preferencesPanel/gridPreferencePanelsValue.js +0 -6
  333. package/legacy/hooks/features/preferencesPanel/index.js +0 -3
  334. package/legacy/hooks/features/preferencesPanel/useGridPreferencesPanel.js +0 -125
  335. package/legacy/hooks/features/rowSelection/gridRowSelectionSelector.js +0 -19
  336. package/legacy/hooks/features/rowSelection/index.js +0 -1
  337. package/legacy/hooks/features/rowSelection/useGridRowSelection.js +0 -419
  338. package/legacy/hooks/features/rowSelection/useGridRowSelectionPreProcessors.js +0 -45
  339. package/legacy/hooks/features/rowSelection/utils.js +0 -8
  340. package/legacy/hooks/features/rows/gridRowsInterfaces.js +0 -1
  341. package/legacy/hooks/features/rows/gridRowsMetaSelector.js +0 -3
  342. package/legacy/hooks/features/rows/gridRowsMetaState.js +0 -1
  343. package/legacy/hooks/features/rows/gridRowsSelector.js +0 -90
  344. package/legacy/hooks/features/rows/gridRowsUtils.js +0 -294
  345. package/legacy/hooks/features/rows/index.js +0 -4
  346. package/legacy/hooks/features/rows/useGridParamsApi.js +0 -142
  347. package/legacy/hooks/features/rows/useGridRows.js +0 -466
  348. package/legacy/hooks/features/rows/useGridRowsMeta.js +0 -236
  349. package/legacy/hooks/features/rows/useGridRowsPreProcessors.js +0 -82
  350. package/legacy/hooks/features/scroll/useGridScroll.js +0 -133
  351. package/legacy/hooks/features/sorting/gridSortingSelector.js +0 -56
  352. package/legacy/hooks/features/sorting/gridSortingState.js +0 -1
  353. package/legacy/hooks/features/sorting/gridSortingUtils.js +0 -154
  354. package/legacy/hooks/features/sorting/index.js +0 -2
  355. package/legacy/hooks/features/sorting/useGridSorting.js +0 -276
  356. package/legacy/hooks/features/statePersistence/gridStatePersistenceInterface.js +0 -1
  357. package/legacy/hooks/features/statePersistence/index.js +0 -1
  358. package/legacy/hooks/features/statePersistence/useGridStatePersistence.js +0 -25
  359. package/legacy/hooks/features/virtualization/gridVirtualizationSelectors.js +0 -61
  360. package/legacy/hooks/features/virtualization/index.js +0 -2
  361. package/legacy/hooks/features/virtualization/useGridVirtualScroller.js +0 -646
  362. package/legacy/hooks/features/virtualization/useGridVirtualization.js +0 -63
  363. package/legacy/hooks/index.js +0 -3
  364. package/legacy/hooks/utils/index.js +0 -9
  365. package/legacy/hooks/utils/useFirstRender.js +0 -8
  366. package/legacy/hooks/utils/useGridApiContext.js +0 -9
  367. package/legacy/hooks/utils/useGridApiEventHandler.js +0 -105
  368. package/legacy/hooks/utils/useGridApiMethod.js +0 -11
  369. package/legacy/hooks/utils/useGridApiRef.js +0 -7
  370. package/legacy/hooks/utils/useGridAriaAttributes.js +0 -25
  371. package/legacy/hooks/utils/useGridInitializeState.js +0 -8
  372. package/legacy/hooks/utils/useGridLogger.js +0 -10
  373. package/legacy/hooks/utils/useGridNativeEventListener.js +0 -32
  374. package/legacy/hooks/utils/useGridPrivateApiContext.js +0 -12
  375. package/legacy/hooks/utils/useGridRootProps.js +0 -9
  376. package/legacy/hooks/utils/useGridSelector.js +0 -54
  377. package/legacy/hooks/utils/useGridVisibleRows.js +0 -42
  378. package/legacy/hooks/utils/useLazyRef.js +0 -11
  379. package/legacy/hooks/utils/useOnMount.js +0 -7
  380. package/legacy/hooks/utils/useResizeObserver.js +0 -36
  381. package/legacy/hooks/utils/useRunOnce.js +0 -18
  382. package/legacy/hooks/utils/useTimeout.js +0 -38
  383. package/legacy/index.js +0 -38
  384. package/legacy/internals/index.js +0 -68
  385. package/legacy/internals/utils/computeSlots.js +0 -17
  386. package/legacy/internals/utils/index.js +0 -3
  387. package/legacy/internals/utils/propValidation.js +0 -21
  388. package/legacy/internals/utils/useProps.js +0 -32
  389. package/legacy/joy/icons.js +0 -432
  390. package/legacy/joy/index.js +0 -2
  391. package/legacy/joy/joySlots.js +0 -420
  392. package/legacy/locales/arSD.js +0 -160
  393. package/legacy/locales/beBY.js +0 -184
  394. package/legacy/locales/bgBG.js +0 -160
  395. package/legacy/locales/coreLocales.js +0 -62
  396. package/legacy/locales/csCZ.js +0 -181
  397. package/legacy/locales/daDK.js +0 -160
  398. package/legacy/locales/deDE.js +0 -160
  399. package/legacy/locales/elGR.js +0 -160
  400. package/legacy/locales/enUS.js +0 -4
  401. package/legacy/locales/esES.js +0 -160
  402. package/legacy/locales/faIR.js +0 -160
  403. package/legacy/locales/fiFI.js +0 -160
  404. package/legacy/locales/frFR.js +0 -160
  405. package/legacy/locales/heIL.js +0 -160
  406. package/legacy/locales/hrHR.js +0 -160
  407. package/legacy/locales/huHU.js +0 -160
  408. package/legacy/locales/index.js +0 -35
  409. package/legacy/locales/itIT.js +0 -160
  410. package/legacy/locales/jaJP.js +0 -160
  411. package/legacy/locales/koKR.js +0 -162
  412. package/legacy/locales/nbNO.js +0 -162
  413. package/legacy/locales/nlNL.js +0 -160
  414. package/legacy/locales/plPL.js +0 -163
  415. package/legacy/locales/ptBR.js +0 -160
  416. package/legacy/locales/ptPT.js +0 -160
  417. package/legacy/locales/roRO.js +0 -160
  418. package/legacy/locales/ruRU.js +0 -181
  419. package/legacy/locales/skSK.js +0 -181
  420. package/legacy/locales/svSE.js +0 -160
  421. package/legacy/locales/trTR.js +0 -161
  422. package/legacy/locales/ukUA.js +0 -182
  423. package/legacy/locales/urPK.js +0 -160
  424. package/legacy/locales/viVN.js +0 -160
  425. package/legacy/locales/zhCN.js +0 -160
  426. package/legacy/locales/zhHK.js +0 -160
  427. package/legacy/locales/zhTW.js +0 -160
  428. package/legacy/material/components/MUISelectOption.js +0 -14
  429. package/legacy/material/icons/GridColumnUnsortedIcon.js +0 -16
  430. package/legacy/material/icons/index.js +0 -89
  431. package/legacy/material/index.js +0 -69
  432. package/legacy/models/api/gridApiCommon.js +0 -1
  433. package/legacy/models/api/gridApiCommunity.js +0 -1
  434. package/legacy/models/api/gridCallbackDetails.js +0 -1
  435. package/legacy/models/api/gridColumnApi.js +0 -1
  436. package/legacy/models/api/gridColumnGroupingApi.js +0 -1
  437. package/legacy/models/api/gridColumnMenuApi.js +0 -1
  438. package/legacy/models/api/gridColumnSpanning.js +0 -1
  439. package/legacy/models/api/gridCoreApi.js +0 -1
  440. package/legacy/models/api/gridCsvExportApi.js +0 -1
  441. package/legacy/models/api/gridDensityApi.js +0 -1
  442. package/legacy/models/api/gridEditingApi.js +0 -1
  443. package/legacy/models/api/gridFilterApi.js +0 -1
  444. package/legacy/models/api/gridFocusApi.js +0 -1
  445. package/legacy/models/api/gridHeaderFilteringApi.js +0 -1
  446. package/legacy/models/api/gridLocaleTextApi.js +0 -1
  447. package/legacy/models/api/gridLoggerApi.js +0 -1
  448. package/legacy/models/api/gridParamsApi.js +0 -1
  449. package/legacy/models/api/gridPreferencesPanelApi.js +0 -1
  450. package/legacy/models/api/gridPrintExportApi.js +0 -1
  451. package/legacy/models/api/gridRowApi.js +0 -1
  452. package/legacy/models/api/gridRowSelectionApi.js +0 -1
  453. package/legacy/models/api/gridRowsMetaApi.js +0 -1
  454. package/legacy/models/api/gridScrollApi.js +0 -1
  455. package/legacy/models/api/gridSortApi.js +0 -1
  456. package/legacy/models/api/gridStateApi.js +0 -1
  457. package/legacy/models/api/gridVirtualizationApi.js +0 -1
  458. package/legacy/models/api/index.js +0 -16
  459. package/legacy/models/colDef/gridColDef.js +0 -1
  460. package/legacy/models/colDef/gridColType.js +0 -1
  461. package/legacy/models/colDef/gridColumnTypesRecord.js +0 -1
  462. package/legacy/models/colDef/index.js +0 -6
  463. package/legacy/models/controlStateItem.js +0 -1
  464. package/legacy/models/cursorCoordinates.js +0 -1
  465. package/legacy/models/elementSize.js +0 -1
  466. package/legacy/models/events/gridEventListener.js +0 -1
  467. package/legacy/models/events/gridEventLookup.js +0 -1
  468. package/legacy/models/events/gridEventPublisher.js +0 -1
  469. package/legacy/models/events/index.js +0 -3
  470. package/legacy/models/gridApiCaches.js +0 -1
  471. package/legacy/models/gridCell.js +0 -1
  472. package/legacy/models/gridCellClass.js +0 -1
  473. package/legacy/models/gridColumnGrouping.js +0 -11
  474. package/legacy/models/gridColumnHeaderClass.js +0 -1
  475. package/legacy/models/gridColumnSpanning.js +0 -1
  476. package/legacy/models/gridDensity.js +0 -1
  477. package/legacy/models/gridEditRowModel.js +0 -16
  478. package/legacy/models/gridExport.js +0 -1
  479. package/legacy/models/gridFeatureMode.js +0 -1
  480. package/legacy/models/gridFilterItem.js +0 -11
  481. package/legacy/models/gridFilterModel.js +0 -1
  482. package/legacy/models/gridFilterOperator.js +0 -1
  483. package/legacy/models/gridHeaderFilteringModel.js +0 -1
  484. package/legacy/models/gridIconSlotsComponent.js +0 -1
  485. package/legacy/models/gridPaginationProps.js +0 -1
  486. package/legacy/models/gridRenderContextProps.js +0 -1
  487. package/legacy/models/gridRowSelectionModel.js +0 -1
  488. package/legacy/models/gridRows.js +0 -1
  489. package/legacy/models/gridSlotsComponent.js +0 -1
  490. package/legacy/models/gridSlotsComponentsProps.js +0 -1
  491. package/legacy/models/gridSortModel.js +0 -1
  492. package/legacy/models/gridStateCommunity.js +0 -1
  493. package/legacy/models/index.js +0 -29
  494. package/legacy/models/logger.js +0 -1
  495. package/legacy/models/muiEvent.js +0 -1
  496. package/legacy/models/params/gridCellParams.js +0 -1
  497. package/legacy/models/params/gridColumnGroupHeaderParams.js +0 -1
  498. package/legacy/models/params/gridColumnHeaderParams.js +0 -1
  499. package/legacy/models/params/gridColumnOrderChangeParams.js +0 -1
  500. package/legacy/models/params/gridColumnResizeParams.js +0 -1
  501. package/legacy/models/params/gridEditCellParams.js +0 -27
  502. package/legacy/models/params/gridHeaderSelectionCheckboxParams.js +0 -1
  503. package/legacy/models/params/gridMenuParams.js +0 -1
  504. package/legacy/models/params/gridPreferencePanelParams.js +0 -1
  505. package/legacy/models/params/gridRowParams.js +0 -44
  506. package/legacy/models/params/gridRowSelectionCheckboxParams.js +0 -1
  507. package/legacy/models/params/gridScrollParams.js +0 -1
  508. package/legacy/models/params/gridValueOptionsParams.js +0 -1
  509. package/legacy/models/params/index.js +0 -13
  510. package/legacy/models/props/DataGridProps.js +0 -1
  511. package/legacy/themeAugmentation/index.js +0 -4
  512. package/legacy/themeAugmentation/overrides.js +0 -1
  513. package/legacy/themeAugmentation/props.js +0 -1
  514. package/legacy/utils/EventManager.js +0 -91
  515. package/legacy/utils/Store.js +0 -34
  516. package/legacy/utils/cleanupTracking/CleanupTracking.js +0 -1
  517. package/legacy/utils/cleanupTracking/FinalizationRegistryBasedCleanupTracking.js +0 -29
  518. package/legacy/utils/cleanupTracking/TimerBasedCleanupTracking.js +0 -52
  519. package/legacy/utils/createControllablePromise.js +0 -11
  520. package/legacy/utils/createSelector.js +0 -120
  521. package/legacy/utils/doesSupportPreventScroll.js +0 -13
  522. package/legacy/utils/domUtils.js +0 -49
  523. package/legacy/utils/exportAs.js +0 -40
  524. package/legacy/utils/fastMemo.js +0 -5
  525. package/legacy/utils/fastObjectShallowCompare.js +0 -32
  526. package/legacy/utils/getGridLocalization.js +0 -15
  527. package/legacy/utils/getPublicApiRef.js +0 -5
  528. package/legacy/utils/index.js +0 -1
  529. package/legacy/utils/keyboardUtils.js +0 -60
  530. package/legacy/utils/utils.js +0 -189
  531. package/legacy/utils/warning.js +0 -25
@@ -1,565 +0,0 @@
1
- import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
2
- import * as React from 'react';
3
- import { useTheme } from '@mui/material/styles';
4
- import { gridVisibleColumnDefinitionsSelector } from '../columns/gridColumnsSelector';
5
- import { useGridLogger } from '../../utils/useGridLogger';
6
- import { useGridApiEventHandler } from '../../utils/useGridApiEventHandler';
7
- import { gridExpandedSortedRowEntriesSelector } from '../filter/gridFilterSelector';
8
- import { useGridVisibleRows } from '../../utils/useGridVisibleRows';
9
- import { GRID_CHECKBOX_SELECTION_COL_DEF } from '../../../colDef/gridCheckboxSelectionColDef';
10
- import { gridClasses } from '../../../constants/gridClasses';
11
- import { GridCellModes } from '../../../models/gridEditRowModel';
12
- import { isNavigationKey } from '../../../utils/keyboardUtils';
13
- import { GRID_DETAIL_PANEL_TOGGLE_FIELD } from '../../../constants/gridDetailPanelToggleField';
14
- import { gridPinnedRowsSelector } from '../rows/gridRowsSelector';
15
- import { gridFocusColumnGroupHeaderSelector } from '../focus';
16
- import { gridColumnGroupsHeaderMaxDepthSelector } from '../columnGrouping/gridColumnGroupsSelector';
17
- import { gridHeaderFilteringEditFieldSelector, gridHeaderFilteringMenuSelector } from '../headerFiltering/gridHeaderFilteringSelectors';
18
- import { useGridRegisterPipeProcessor } from '../../core/pipeProcessing';
19
- import { isEventTargetInPortal } from '../../../utils/domUtils';
20
- function enrichPageRowsWithPinnedRows(apiRef, rows) {
21
- var pinnedRows = gridPinnedRowsSelector(apiRef) || {};
22
- return [].concat(_toConsumableArray(pinnedRows.top || []), _toConsumableArray(rows), _toConsumableArray(pinnedRows.bottom || []));
23
- }
24
- var getLeftColumnIndex = function getLeftColumnIndex(_ref) {
25
- var currentColIndex = _ref.currentColIndex,
26
- firstColIndex = _ref.firstColIndex,
27
- lastColIndex = _ref.lastColIndex,
28
- direction = _ref.direction;
29
- if (direction === 'rtl') {
30
- if (currentColIndex < lastColIndex) {
31
- return currentColIndex + 1;
32
- }
33
- } else if (direction === 'ltr') {
34
- if (currentColIndex > firstColIndex) {
35
- return currentColIndex - 1;
36
- }
37
- }
38
- return null;
39
- };
40
- var getRightColumnIndex = function getRightColumnIndex(_ref2) {
41
- var currentColIndex = _ref2.currentColIndex,
42
- firstColIndex = _ref2.firstColIndex,
43
- lastColIndex = _ref2.lastColIndex,
44
- direction = _ref2.direction;
45
- if (direction === 'rtl') {
46
- if (currentColIndex > firstColIndex) {
47
- return currentColIndex - 1;
48
- }
49
- } else if (direction === 'ltr') {
50
- if (currentColIndex < lastColIndex) {
51
- return currentColIndex + 1;
52
- }
53
- }
54
- return null;
55
- };
56
-
57
- /**
58
- * @requires useGridSorting (method) - can be after
59
- * @requires useGridFilter (state) - can be after
60
- * @requires useGridColumns (state, method) - can be after
61
- * @requires useGridDimensions (method) - can be after
62
- * @requires useGridFocus (method) - can be after
63
- * @requires useGridScroll (method) - can be after
64
- * @requires useGridColumnSpanning (method) - can be after
65
- */
66
- export var useGridKeyboardNavigation = function useGridKeyboardNavigation(apiRef, props) {
67
- var logger = useGridLogger(apiRef, 'useGridKeyboardNavigation');
68
- var initialCurrentPageRows = useGridVisibleRows(apiRef, props).rows;
69
- var theme = useTheme();
70
- var currentPageRows = React.useMemo(function () {
71
- return enrichPageRowsWithPinnedRows(apiRef, initialCurrentPageRows);
72
- }, [apiRef, initialCurrentPageRows]);
73
- var headerFilteringEnabled =
74
- // @ts-expect-error // TODO move relevant code to the `DataGridPro`
75
- props.signature !== 'DataGrid' && props.headerFilters;
76
-
77
- /**
78
- * @param {number} colIndex Index of the column to focus
79
- * @param {number} rowIndex index of the row to focus
80
- * @param {string} closestColumnToUse Which closest column cell to use when the cell is spanned by `colSpan`.
81
- * TODO replace with apiRef.current.moveFocusToRelativeCell()
82
- */
83
- var goToCell = React.useCallback(function (colIndex, rowId) {
84
- var closestColumnToUse = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'left';
85
- var visibleSortedRows = gridExpandedSortedRowEntriesSelector(apiRef);
86
- var nextCellColSpanInfo = apiRef.current.unstable_getCellColSpanInfo(rowId, colIndex);
87
- if (nextCellColSpanInfo && nextCellColSpanInfo.spannedByColSpan) {
88
- if (closestColumnToUse === 'left') {
89
- colIndex = nextCellColSpanInfo.leftVisibleCellIndex;
90
- } else if (closestColumnToUse === 'right') {
91
- colIndex = nextCellColSpanInfo.rightVisibleCellIndex;
92
- }
93
- }
94
- // `scrollToIndexes` requires a rowIndex relative to all visible rows.
95
- // Those rows do not include pinned rows, but pinned rows do not need scroll anyway.
96
- var rowIndexRelativeToAllRows = visibleSortedRows.findIndex(function (row) {
97
- return row.id === rowId;
98
- });
99
- logger.debug("Navigating to cell row ".concat(rowIndexRelativeToAllRows, ", col ").concat(colIndex));
100
- apiRef.current.scrollToIndexes({
101
- colIndex: colIndex,
102
- rowIndex: rowIndexRelativeToAllRows
103
- });
104
- var field = apiRef.current.getVisibleColumns()[colIndex].field;
105
- apiRef.current.setCellFocus(rowId, field);
106
- }, [apiRef, logger]);
107
- var goToHeader = React.useCallback(function (colIndex, event) {
108
- logger.debug("Navigating to header col ".concat(colIndex));
109
- apiRef.current.scrollToIndexes({
110
- colIndex: colIndex
111
- });
112
- var field = apiRef.current.getVisibleColumns()[colIndex].field;
113
- apiRef.current.setColumnHeaderFocus(field, event);
114
- }, [apiRef, logger]);
115
- var goToHeaderFilter = React.useCallback(function (colIndex, event) {
116
- logger.debug("Navigating to header filter col ".concat(colIndex));
117
- apiRef.current.scrollToIndexes({
118
- colIndex: colIndex
119
- });
120
- var field = apiRef.current.getVisibleColumns()[colIndex].field;
121
- apiRef.current.setColumnHeaderFilterFocus(field, event);
122
- }, [apiRef, logger]);
123
- var goToGroupHeader = React.useCallback(function (colIndex, depth, event) {
124
- logger.debug("Navigating to header col ".concat(colIndex));
125
- apiRef.current.scrollToIndexes({
126
- colIndex: colIndex
127
- });
128
- var field = apiRef.current.getVisibleColumns()[colIndex].field;
129
- apiRef.current.setColumnGroupHeaderFocus(field, depth, event);
130
- }, [apiRef, logger]);
131
- var getRowIdFromIndex = React.useCallback(function (rowIndex) {
132
- var _currentPageRows$rowI;
133
- return (_currentPageRows$rowI = currentPageRows[rowIndex]) == null ? void 0 : _currentPageRows$rowI.id;
134
- }, [currentPageRows]);
135
- var handleColumnHeaderKeyDown = React.useCallback(function (params, event) {
136
- var headerTitleNode = event.currentTarget.querySelector(".".concat(gridClasses.columnHeaderTitleContainerContent));
137
- var isFromInsideContent = !!headerTitleNode && headerTitleNode.contains(event.target);
138
- if (isFromInsideContent && params.field !== GRID_CHECKBOX_SELECTION_COL_DEF.field) {
139
- // When focus is on a nested input, keyboard events have no effect to avoid conflicts with native events.
140
- // There is one exception for the checkBoxHeader
141
- return;
142
- }
143
- var viewportPageSize = apiRef.current.getViewportPageSize();
144
- var colIndexBefore = params.field ? apiRef.current.getColumnIndex(params.field) : 0;
145
- var firstRowIndexInPage = currentPageRows.length > 0 ? 0 : null;
146
- var lastRowIndexInPage = currentPageRows.length - 1;
147
- var firstColIndex = 0;
148
- var lastColIndex = gridVisibleColumnDefinitionsSelector(apiRef).length - 1;
149
- var columnGroupMaxDepth = gridColumnGroupsHeaderMaxDepthSelector(apiRef);
150
- var shouldPreventDefault = true;
151
- switch (event.key) {
152
- case 'ArrowDown':
153
- {
154
- if (firstRowIndexInPage !== null) {
155
- if (headerFilteringEnabled) {
156
- goToHeaderFilter(colIndexBefore, event);
157
- } else {
158
- goToCell(colIndexBefore, getRowIdFromIndex(firstRowIndexInPage));
159
- }
160
- }
161
- break;
162
- }
163
- case 'ArrowRight':
164
- {
165
- var rightColIndex = getRightColumnIndex({
166
- currentColIndex: colIndexBefore,
167
- firstColIndex: firstColIndex,
168
- lastColIndex: lastColIndex,
169
- direction: theme.direction
170
- });
171
- if (rightColIndex !== null) {
172
- goToHeader(rightColIndex, event);
173
- }
174
- break;
175
- }
176
- case 'ArrowLeft':
177
- {
178
- var leftColIndex = getLeftColumnIndex({
179
- currentColIndex: colIndexBefore,
180
- firstColIndex: firstColIndex,
181
- lastColIndex: lastColIndex,
182
- direction: theme.direction
183
- });
184
- if (leftColIndex !== null) {
185
- goToHeader(leftColIndex, event);
186
- }
187
- break;
188
- }
189
- case 'ArrowUp':
190
- {
191
- if (columnGroupMaxDepth > 0) {
192
- goToGroupHeader(colIndexBefore, columnGroupMaxDepth - 1, event);
193
- }
194
- break;
195
- }
196
- case 'PageDown':
197
- {
198
- if (firstRowIndexInPage !== null && lastRowIndexInPage !== null) {
199
- goToCell(colIndexBefore, getRowIdFromIndex(Math.min(firstRowIndexInPage + viewportPageSize, lastRowIndexInPage)));
200
- }
201
- break;
202
- }
203
- case 'Home':
204
- {
205
- goToHeader(firstColIndex, event);
206
- break;
207
- }
208
- case 'End':
209
- {
210
- goToHeader(lastColIndex, event);
211
- break;
212
- }
213
- case 'Enter':
214
- {
215
- if (event.ctrlKey || event.metaKey) {
216
- apiRef.current.toggleColumnMenu(params.field);
217
- }
218
- break;
219
- }
220
- case ' ':
221
- {
222
- // prevent Space event from scrolling
223
- break;
224
- }
225
- default:
226
- {
227
- shouldPreventDefault = false;
228
- }
229
- }
230
- if (shouldPreventDefault) {
231
- event.preventDefault();
232
- }
233
- }, [apiRef, currentPageRows.length, headerFilteringEnabled, goToHeaderFilter, goToCell, getRowIdFromIndex, theme.direction, goToHeader, goToGroupHeader]);
234
- var handleHeaderFilterKeyDown = React.useCallback(function (params, event) {
235
- var isEditing = gridHeaderFilteringEditFieldSelector(apiRef) === params.field;
236
- var isHeaderMenuOpen = gridHeaderFilteringMenuSelector(apiRef) === params.field;
237
- if (isEditing || isHeaderMenuOpen || !isNavigationKey(event.key)) {
238
- return;
239
- }
240
- var viewportPageSize = apiRef.current.getViewportPageSize();
241
- var colIndexBefore = params.field ? apiRef.current.getColumnIndex(params.field) : 0;
242
- var firstRowIndexInPage = 0;
243
- var lastRowIndexInPage = currentPageRows.length - 1;
244
- var firstColIndex = 0;
245
- var lastColIndex = gridVisibleColumnDefinitionsSelector(apiRef).length - 1;
246
- var shouldPreventDefault = true;
247
- switch (event.key) {
248
- case 'ArrowDown':
249
- {
250
- var rowId = getRowIdFromIndex(firstRowIndexInPage);
251
- if (firstRowIndexInPage !== null && rowId != null) {
252
- goToCell(colIndexBefore, rowId);
253
- }
254
- break;
255
- }
256
- case 'ArrowRight':
257
- {
258
- var rightColIndex = getRightColumnIndex({
259
- currentColIndex: colIndexBefore,
260
- firstColIndex: firstColIndex,
261
- lastColIndex: lastColIndex,
262
- direction: theme.direction
263
- });
264
- if (rightColIndex !== null) {
265
- goToHeaderFilter(rightColIndex, event);
266
- }
267
- break;
268
- }
269
- case 'ArrowLeft':
270
- {
271
- var leftColIndex = getLeftColumnIndex({
272
- currentColIndex: colIndexBefore,
273
- firstColIndex: firstColIndex,
274
- lastColIndex: lastColIndex,
275
- direction: theme.direction
276
- });
277
- if (leftColIndex !== null) {
278
- goToHeaderFilter(leftColIndex, event);
279
- } else {
280
- apiRef.current.setColumnHeaderFilterFocus(params.field, event);
281
- }
282
- break;
283
- }
284
- case 'ArrowUp':
285
- {
286
- goToHeader(colIndexBefore, event);
287
- break;
288
- }
289
- case 'PageDown':
290
- {
291
- if (firstRowIndexInPage !== null && lastRowIndexInPage !== null) {
292
- goToCell(colIndexBefore, getRowIdFromIndex(Math.min(firstRowIndexInPage + viewportPageSize, lastRowIndexInPage)));
293
- }
294
- break;
295
- }
296
- case 'Home':
297
- {
298
- goToHeaderFilter(firstColIndex, event);
299
- break;
300
- }
301
- case 'End':
302
- {
303
- goToHeaderFilter(lastColIndex, event);
304
- break;
305
- }
306
- case ' ':
307
- {
308
- // prevent Space event from scrolling
309
- break;
310
- }
311
- default:
312
- {
313
- shouldPreventDefault = false;
314
- }
315
- }
316
- if (shouldPreventDefault) {
317
- event.preventDefault();
318
- }
319
- }, [apiRef, currentPageRows.length, goToHeaderFilter, theme.direction, goToHeader, goToCell, getRowIdFromIndex]);
320
- var handleColumnGroupHeaderKeyDown = React.useCallback(function (params, event) {
321
- var focusedColumnGroup = gridFocusColumnGroupHeaderSelector(apiRef);
322
- if (focusedColumnGroup === null) {
323
- return;
324
- }
325
- var currentField = focusedColumnGroup.field,
326
- currentDepth = focusedColumnGroup.depth;
327
- var fields = params.fields,
328
- depth = params.depth,
329
- maxDepth = params.maxDepth;
330
- var viewportPageSize = apiRef.current.getViewportPageSize();
331
- var currentColIndex = apiRef.current.getColumnIndex(currentField);
332
- var colIndexBefore = currentField ? apiRef.current.getColumnIndex(currentField) : 0;
333
- var firstRowIndexInPage = 0;
334
- var lastRowIndexInPage = currentPageRows.length - 1;
335
- var firstColIndex = 0;
336
- var lastColIndex = gridVisibleColumnDefinitionsSelector(apiRef).length - 1;
337
- var shouldPreventDefault = true;
338
- switch (event.key) {
339
- case 'ArrowDown':
340
- {
341
- if (depth === maxDepth - 1) {
342
- goToHeader(currentColIndex, event);
343
- } else {
344
- goToGroupHeader(currentColIndex, currentDepth + 1, event);
345
- }
346
- break;
347
- }
348
- case 'ArrowUp':
349
- {
350
- if (depth > 0) {
351
- goToGroupHeader(currentColIndex, currentDepth - 1, event);
352
- }
353
- break;
354
- }
355
- case 'ArrowRight':
356
- {
357
- var remainingRightColumns = fields.length - fields.indexOf(currentField) - 1;
358
- if (currentColIndex + remainingRightColumns + 1 <= lastColIndex) {
359
- goToGroupHeader(currentColIndex + remainingRightColumns + 1, currentDepth, event);
360
- }
361
- break;
362
- }
363
- case 'ArrowLeft':
364
- {
365
- var remainingLeftColumns = fields.indexOf(currentField);
366
- if (currentColIndex - remainingLeftColumns - 1 >= firstColIndex) {
367
- goToGroupHeader(currentColIndex - remainingLeftColumns - 1, currentDepth, event);
368
- }
369
- break;
370
- }
371
- case 'PageDown':
372
- {
373
- if (firstRowIndexInPage !== null && lastRowIndexInPage !== null) {
374
- goToCell(colIndexBefore, getRowIdFromIndex(Math.min(firstRowIndexInPage + viewportPageSize, lastRowIndexInPage)));
375
- }
376
- break;
377
- }
378
- case 'Home':
379
- {
380
- goToGroupHeader(firstColIndex, currentDepth, event);
381
- break;
382
- }
383
- case 'End':
384
- {
385
- goToGroupHeader(lastColIndex, currentDepth, event);
386
- break;
387
- }
388
- case ' ':
389
- {
390
- // prevent Space event from scrolling
391
- break;
392
- }
393
- default:
394
- {
395
- shouldPreventDefault = false;
396
- }
397
- }
398
- if (shouldPreventDefault) {
399
- event.preventDefault();
400
- }
401
- }, [apiRef, currentPageRows.length, goToHeader, goToGroupHeader, goToCell, getRowIdFromIndex]);
402
- var handleCellKeyDown = React.useCallback(function (params, event) {
403
- // Ignore portal
404
- if (isEventTargetInPortal(event)) {
405
- return;
406
- }
407
-
408
- // Get the most recent params because the cell mode may have changed by another listener
409
- var cellParams = apiRef.current.getCellParams(params.id, params.field);
410
- if (cellParams.cellMode === GridCellModes.Edit || !isNavigationKey(event.key)) {
411
- return;
412
- }
413
- var canUpdateFocus = apiRef.current.unstable_applyPipeProcessors('canUpdateFocus', true, {
414
- event: event,
415
- cell: cellParams
416
- });
417
- if (!canUpdateFocus) {
418
- return;
419
- }
420
- if (currentPageRows.length === 0) {
421
- return;
422
- }
423
- var direction = theme.direction;
424
- var viewportPageSize = apiRef.current.getViewportPageSize();
425
- var colIndexBefore = params.field ? apiRef.current.getColumnIndex(params.field) : 0;
426
- var rowIndexBefore = currentPageRows.findIndex(function (row) {
427
- return row.id === params.id;
428
- });
429
- var firstRowIndexInPage = 0;
430
- var lastRowIndexInPage = currentPageRows.length - 1;
431
- var firstColIndex = 0;
432
- var lastColIndex = gridVisibleColumnDefinitionsSelector(apiRef).length - 1;
433
- var shouldPreventDefault = true;
434
- switch (event.key) {
435
- case 'ArrowDown':
436
- {
437
- // "Enter" is only triggered by the row / cell editing feature
438
- if (rowIndexBefore < lastRowIndexInPage) {
439
- goToCell(colIndexBefore, getRowIdFromIndex(rowIndexBefore + 1));
440
- }
441
- break;
442
- }
443
- case 'ArrowUp':
444
- {
445
- if (rowIndexBefore > firstRowIndexInPage) {
446
- goToCell(colIndexBefore, getRowIdFromIndex(rowIndexBefore - 1));
447
- } else if (headerFilteringEnabled) {
448
- goToHeaderFilter(colIndexBefore, event);
449
- } else {
450
- goToHeader(colIndexBefore, event);
451
- }
452
- break;
453
- }
454
- case 'ArrowRight':
455
- {
456
- var rightColIndex = getRightColumnIndex({
457
- currentColIndex: colIndexBefore,
458
- firstColIndex: firstColIndex,
459
- lastColIndex: lastColIndex,
460
- direction: direction
461
- });
462
- if (rightColIndex !== null) {
463
- goToCell(rightColIndex, getRowIdFromIndex(rowIndexBefore), direction === 'rtl' ? 'left' : 'right');
464
- }
465
- break;
466
- }
467
- case 'ArrowLeft':
468
- {
469
- var leftColIndex = getLeftColumnIndex({
470
- currentColIndex: colIndexBefore,
471
- firstColIndex: firstColIndex,
472
- lastColIndex: lastColIndex,
473
- direction: direction
474
- });
475
- if (leftColIndex !== null) {
476
- goToCell(leftColIndex, getRowIdFromIndex(rowIndexBefore), direction === 'rtl' ? 'right' : 'left');
477
- }
478
- break;
479
- }
480
- case 'Tab':
481
- {
482
- // "Tab" is only triggered by the row / cell editing feature
483
- if (event.shiftKey && colIndexBefore > firstColIndex) {
484
- goToCell(colIndexBefore - 1, getRowIdFromIndex(rowIndexBefore), 'left');
485
- } else if (!event.shiftKey && colIndexBefore < lastColIndex) {
486
- goToCell(colIndexBefore + 1, getRowIdFromIndex(rowIndexBefore), 'right');
487
- }
488
- break;
489
- }
490
- case ' ':
491
- {
492
- var field = params.field;
493
- if (field === GRID_DETAIL_PANEL_TOGGLE_FIELD) {
494
- break;
495
- }
496
- var colDef = params.colDef;
497
- if (colDef &&
498
- // `GRID_TREE_DATA_GROUPING_FIELD` from the Pro package
499
- colDef.field === '__tree_data_group__') {
500
- break;
501
- }
502
- if (!event.shiftKey && rowIndexBefore < lastRowIndexInPage) {
503
- goToCell(colIndexBefore, getRowIdFromIndex(Math.min(rowIndexBefore + viewportPageSize, lastRowIndexInPage)));
504
- }
505
- break;
506
- }
507
- case 'PageDown':
508
- {
509
- if (rowIndexBefore < lastRowIndexInPage) {
510
- goToCell(colIndexBefore, getRowIdFromIndex(Math.min(rowIndexBefore + viewportPageSize, lastRowIndexInPage)));
511
- }
512
- break;
513
- }
514
- case 'PageUp':
515
- {
516
- // Go to the first row before going to header
517
- var nextRowIndex = Math.max(rowIndexBefore - viewportPageSize, firstRowIndexInPage);
518
- if (nextRowIndex !== rowIndexBefore && nextRowIndex >= firstRowIndexInPage) {
519
- goToCell(colIndexBefore, getRowIdFromIndex(nextRowIndex));
520
- } else {
521
- goToHeader(colIndexBefore, event);
522
- }
523
- break;
524
- }
525
- case 'Home':
526
- {
527
- if (event.ctrlKey || event.metaKey || event.shiftKey) {
528
- goToCell(firstColIndex, getRowIdFromIndex(firstRowIndexInPage));
529
- } else {
530
- goToCell(firstColIndex, getRowIdFromIndex(rowIndexBefore));
531
- }
532
- break;
533
- }
534
- case 'End':
535
- {
536
- if (event.ctrlKey || event.metaKey || event.shiftKey) {
537
- goToCell(lastColIndex, getRowIdFromIndex(lastRowIndexInPage));
538
- } else {
539
- goToCell(lastColIndex, getRowIdFromIndex(rowIndexBefore));
540
- }
541
- break;
542
- }
543
- default:
544
- {
545
- shouldPreventDefault = false;
546
- }
547
- }
548
- if (shouldPreventDefault) {
549
- event.preventDefault();
550
- }
551
- }, [apiRef, currentPageRows, theme.direction, goToCell, getRowIdFromIndex, headerFilteringEnabled, goToHeaderFilter, goToHeader]);
552
- var checkIfCanStartEditing = React.useCallback(function (initialValue, _ref3) {
553
- var event = _ref3.event;
554
- if (event.key === ' ') {
555
- // Space scrolls to the last row
556
- return false;
557
- }
558
- return initialValue;
559
- }, []);
560
- useGridRegisterPipeProcessor(apiRef, 'canStartEditing', checkIfCanStartEditing);
561
- useGridApiEventHandler(apiRef, 'columnHeaderKeyDown', handleColumnHeaderKeyDown);
562
- useGridApiEventHandler(apiRef, 'headerFilterKeyDown', handleHeaderFilterKeyDown);
563
- useGridApiEventHandler(apiRef, 'columnGroupHeaderKeyDown', handleColumnGroupHeaderKeyDown);
564
- useGridApiEventHandler(apiRef, 'cellKeyDown', handleCellKeyDown);
565
- };
@@ -1,115 +0,0 @@
1
- import { createSelector, createSelectorMemoized } from '../../../utils/createSelector';
2
- import { gridFilteredTopLevelRowCountSelector, gridExpandedSortedRowEntriesSelector, gridExpandedSortedRowIdsSelector, gridFilteredSortedTopLevelRowEntriesSelector } from '../filter/gridFilterSelector';
3
- import { gridRowMaximumTreeDepthSelector, gridRowTreeSelector } from '../rows/gridRowsSelector';
4
- import { getPageCount } from './gridPaginationUtils';
5
-
6
- /**
7
- * @category Pagination
8
- * @ignore - do not document.
9
- */
10
- export var gridPaginationSelector = function gridPaginationSelector(state) {
11
- return state.pagination;
12
- };
13
-
14
- /**
15
- * Get the pagination model
16
- * @category Pagination
17
- */
18
- export var gridPaginationModelSelector = createSelector(gridPaginationSelector, function (pagination) {
19
- return pagination.paginationModel;
20
- });
21
-
22
- /**
23
- * Get the index of the page to render if the pagination is enabled
24
- * @category Pagination
25
- */
26
- export var gridPageSelector = createSelector(gridPaginationModelSelector, function (paginationModel) {
27
- return paginationModel.page;
28
- });
29
-
30
- /**
31
- * Get the maximum amount of rows to display on a single page if the pagination is enabled
32
- * @category Pagination
33
- */
34
- export var gridPageSizeSelector = createSelector(gridPaginationModelSelector, function (paginationModel) {
35
- return paginationModel.pageSize;
36
- });
37
-
38
- /**
39
- * Get the amount of pages needed to display all the rows if the pagination is enabled
40
- * @category Pagination
41
- */
42
- export var gridPageCountSelector = createSelector(gridPaginationModelSelector, gridFilteredTopLevelRowCountSelector, function (paginationModel, visibleTopLevelRowCount) {
43
- return getPageCount(visibleTopLevelRowCount, paginationModel.pageSize);
44
- });
45
-
46
- /**
47
- * Get the index of the first and the last row to include in the current page if the pagination is enabled.
48
- * @category Pagination
49
- */
50
- export var gridPaginationRowRangeSelector = createSelectorMemoized(gridPaginationModelSelector, gridRowTreeSelector, gridRowMaximumTreeDepthSelector, gridExpandedSortedRowEntriesSelector, gridFilteredSortedTopLevelRowEntriesSelector, function (paginationModel, rowTree, rowTreeDepth, visibleSortedRowEntries, visibleSortedTopLevelRowEntries) {
51
- var visibleTopLevelRowCount = visibleSortedTopLevelRowEntries.length;
52
- var topLevelFirstRowIndex = Math.min(paginationModel.pageSize * paginationModel.page, visibleTopLevelRowCount - 1);
53
- var topLevelLastRowIndex = Math.min(topLevelFirstRowIndex + paginationModel.pageSize - 1, visibleTopLevelRowCount - 1);
54
-
55
- // The range contains no element
56
- if (topLevelFirstRowIndex === -1 || topLevelLastRowIndex === -1) {
57
- return null;
58
- }
59
-
60
- // The tree is flat, there is no need to look for children
61
- if (rowTreeDepth < 2) {
62
- return {
63
- firstRowIndex: topLevelFirstRowIndex,
64
- lastRowIndex: topLevelLastRowIndex
65
- };
66
- }
67
- var topLevelFirstRow = visibleSortedTopLevelRowEntries[topLevelFirstRowIndex];
68
- var topLevelRowsInCurrentPageCount = topLevelLastRowIndex - topLevelFirstRowIndex + 1;
69
- var firstRowIndex = visibleSortedRowEntries.findIndex(function (row) {
70
- return row.id === topLevelFirstRow.id;
71
- });
72
- var lastRowIndex = firstRowIndex;
73
- var topLevelRowAdded = 0;
74
- while (lastRowIndex < visibleSortedRowEntries.length && topLevelRowAdded <= topLevelRowsInCurrentPageCount) {
75
- var _rowTree$row$id;
76
- var row = visibleSortedRowEntries[lastRowIndex];
77
- var depth = (_rowTree$row$id = rowTree[row.id]) == null ? void 0 : _rowTree$row$id.depth;
78
- if (depth === undefined) {
79
- lastRowIndex += 1;
80
- } else {
81
- if (topLevelRowAdded < topLevelRowsInCurrentPageCount || depth > 0) {
82
- lastRowIndex += 1;
83
- }
84
- if (depth === 0) {
85
- topLevelRowAdded += 1;
86
- }
87
- }
88
- }
89
- return {
90
- firstRowIndex: firstRowIndex,
91
- lastRowIndex: lastRowIndex - 1
92
- };
93
- });
94
-
95
- /**
96
- * Get the id and the model of each row to include in the current page if the pagination is enabled.
97
- * @category Pagination
98
- */
99
- export var gridPaginatedVisibleSortedGridRowEntriesSelector = createSelectorMemoized(gridExpandedSortedRowEntriesSelector, gridPaginationRowRangeSelector, function (visibleSortedRowEntries, paginationRange) {
100
- if (!paginationRange) {
101
- return [];
102
- }
103
- return visibleSortedRowEntries.slice(paginationRange.firstRowIndex, paginationRange.lastRowIndex + 1);
104
- });
105
-
106
- /**
107
- * Get the id of each row to include in the current page if the pagination is enabled.
108
- * @category Pagination
109
- */
110
- export var gridPaginatedVisibleSortedGridRowIdsSelector = createSelectorMemoized(gridExpandedSortedRowIdsSelector, gridPaginationRowRangeSelector, function (visibleSortedRowIds, paginationRange) {
111
- if (!paginationRange) {
112
- return [];
113
- }
114
- return visibleSortedRowIds.slice(paginationRange.firstRowIndex, paginationRange.lastRowIndex + 1);
115
- });