@mui/x-data-grid 7.0.0-beta.2 → 7.0.0-beta.4

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 (496) hide show
  1. package/CHANGELOG.md +298 -23
  2. package/DataGrid/DataGrid.js +0 -6
  3. package/colDef/gridActionsColDef.js +1 -0
  4. package/colDef/gridBooleanColDef.js +1 -0
  5. package/colDef/gridCheckboxSelectionColDef.js +1 -0
  6. package/components/GridRow.d.ts +3 -1
  7. package/components/GridRow.js +10 -2
  8. package/components/GridScrollbarFillerCell.js +6 -21
  9. package/components/cell/GridCell.js +10 -12
  10. package/components/columnSelection/GridCellCheckboxRenderer.js +1 -2
  11. package/components/containers/GridRootStyles.js +51 -23
  12. package/components/panel/GridPanel.d.ts +1 -1
  13. package/components/panel/filterPanel/GridFilterInputBoolean.js +6 -4
  14. package/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +8 -2
  15. package/components/panel/filterPanel/GridFilterInputSingleSelect.js +6 -4
  16. package/components/panel/filterPanel/GridFilterInputValue.js +4 -3
  17. package/components/virtualization/GridVirtualScrollerRenderZone.js +10 -3
  18. package/constants/gridClasses.d.ts +24 -8
  19. package/constants/gridClasses.js +1 -1
  20. package/hooks/features/clipboard/useGridClipboard.js +1 -1
  21. package/hooks/features/columnHeaders/useGridColumnHeaders.d.ts +5 -5
  22. package/hooks/features/columnHeaders/useGridColumnHeaders.js +46 -48
  23. package/hooks/features/editing/useGridCellEditing.js +3 -4
  24. package/hooks/features/editing/useGridRowEditing.js +3 -4
  25. package/hooks/features/sorting/useGridSorting.js +1 -2
  26. package/hooks/features/virtualization/gridVirtualizationSelectors.d.ts +9 -0
  27. package/hooks/features/virtualization/gridVirtualizationSelectors.js +7 -0
  28. package/hooks/features/virtualization/useGridVirtualScroller.js +19 -16
  29. package/hooks/features/virtualization/useGridVirtualization.d.ts +8 -0
  30. package/hooks/features/virtualization/useGridVirtualization.js +6 -1
  31. package/index.js +1 -1
  32. package/internals/index.d.ts +1 -1
  33. package/internals/index.js +1 -1
  34. package/models/colDef/gridColDef.d.ts +6 -0
  35. package/models/events/gridEventLookup.d.ts +1 -8
  36. package/models/props/DataGridProps.d.ts +0 -6
  37. package/modern/DataGrid/DataGrid.js +0 -6
  38. package/modern/colDef/gridActionsColDef.js +1 -0
  39. package/modern/colDef/gridBooleanColDef.js +1 -0
  40. package/modern/colDef/gridCheckboxSelectionColDef.js +1 -0
  41. package/modern/components/GridRow.js +10 -2
  42. package/modern/components/GridScrollbarFillerCell.js +6 -21
  43. package/modern/components/cell/GridCell.js +10 -12
  44. package/modern/components/columnSelection/GridCellCheckboxRenderer.js +1 -2
  45. package/modern/components/containers/GridRootStyles.js +51 -23
  46. package/modern/components/panel/filterPanel/GridFilterInputBoolean.js +6 -4
  47. package/modern/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +8 -2
  48. package/modern/components/panel/filterPanel/GridFilterInputSingleSelect.js +6 -4
  49. package/modern/components/panel/filterPanel/GridFilterInputValue.js +4 -3
  50. package/modern/components/virtualization/GridVirtualScrollerRenderZone.js +10 -3
  51. package/modern/constants/gridClasses.js +1 -1
  52. package/modern/hooks/features/clipboard/useGridClipboard.js +1 -1
  53. package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +46 -48
  54. package/modern/hooks/features/editing/useGridCellEditing.js +3 -4
  55. package/modern/hooks/features/editing/useGridRowEditing.js +3 -4
  56. package/modern/hooks/features/sorting/useGridSorting.js +1 -2
  57. package/modern/hooks/features/virtualization/gridVirtualizationSelectors.js +7 -0
  58. package/modern/hooks/features/virtualization/useGridVirtualScroller.js +18 -14
  59. package/modern/hooks/features/virtualization/useGridVirtualization.js +6 -1
  60. package/modern/index.js +1 -1
  61. package/modern/internals/index.js +1 -1
  62. package/modern/utils/keyboardUtils.js +20 -11
  63. package/node/DataGrid/DataGrid.js +0 -6
  64. package/node/colDef/gridActionsColDef.js +1 -0
  65. package/node/colDef/gridBooleanColDef.js +1 -0
  66. package/node/colDef/gridCheckboxSelectionColDef.js +1 -0
  67. package/node/components/GridRow.js +10 -2
  68. package/node/components/GridScrollbarFillerCell.js +5 -20
  69. package/node/components/cell/GridCell.js +10 -12
  70. package/node/components/columnSelection/GridCellCheckboxRenderer.js +1 -2
  71. package/node/components/containers/GridRootStyles.js +51 -23
  72. package/node/components/panel/filterPanel/GridFilterInputBoolean.js +6 -4
  73. package/node/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +8 -2
  74. package/node/components/panel/filterPanel/GridFilterInputSingleSelect.js +6 -4
  75. package/node/components/panel/filterPanel/GridFilterInputValue.js +4 -3
  76. package/node/components/virtualization/GridVirtualScrollerRenderZone.js +10 -3
  77. package/node/constants/gridClasses.js +1 -1
  78. package/node/hooks/features/clipboard/useGridClipboard.js +1 -1
  79. package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +45 -47
  80. package/node/hooks/features/editing/useGridCellEditing.js +2 -3
  81. package/node/hooks/features/editing/useGridRowEditing.js +2 -3
  82. package/node/hooks/features/sorting/useGridSorting.js +1 -2
  83. package/node/hooks/features/virtualization/gridVirtualizationSelectors.js +8 -1
  84. package/node/hooks/features/virtualization/useGridVirtualScroller.js +17 -13
  85. package/node/hooks/features/virtualization/useGridVirtualization.js +7 -2
  86. package/node/index.js +1 -1
  87. package/node/internals/index.js +7 -0
  88. package/node/utils/keyboardUtils.js +25 -20
  89. package/package.json +3 -3
  90. package/utils/keyboardUtils.d.ts +7 -6
  91. package/utils/keyboardUtils.js +20 -11
  92. package/legacy/DataGrid/DataGrid.js +0 -670
  93. package/legacy/DataGrid/index.js +0 -2
  94. package/legacy/DataGrid/useDataGridComponent.js +0 -81
  95. package/legacy/DataGrid/useDataGridProps.js +0 -98
  96. package/legacy/colDef/gridActionsColDef.js +0 -18
  97. package/legacy/colDef/gridBooleanColDef.js +0 -42
  98. package/legacy/colDef/gridBooleanOperators.js +0 -16
  99. package/legacy/colDef/gridCheckboxSelectionColDef.js +0 -33
  100. package/legacy/colDef/gridDateColDef.js +0 -62
  101. package/legacy/colDef/gridDateOperators.js +0 -115
  102. package/legacy/colDef/gridDefaultColumnTypes.js +0 -19
  103. package/legacy/colDef/gridNumericColDef.js +0 -19
  104. package/legacy/colDef/gridNumericOperators.js +0 -145
  105. package/legacy/colDef/gridSingleSelectColDef.js +0 -64
  106. package/legacy/colDef/gridSingleSelectOperators.js +0 -46
  107. package/legacy/colDef/gridStringColDef.js +0 -27
  108. package/legacy/colDef/gridStringOperators.js +0 -112
  109. package/legacy/colDef/index.js +0 -13
  110. package/legacy/components/GridApiContext.js +0 -5
  111. package/legacy/components/GridColumnHeaders.js +0 -94
  112. package/legacy/components/GridDetailPanels.js +0 -4
  113. package/legacy/components/GridFooter.js +0 -42
  114. package/legacy/components/GridHeader.js +0 -13
  115. package/legacy/components/GridHeaders.js +0 -53
  116. package/legacy/components/GridLoadingOverlay.js +0 -21
  117. package/legacy/components/GridNoResultsOverlay.js +0 -14
  118. package/legacy/components/GridNoRowsOverlay.js +0 -23
  119. package/legacy/components/GridPagination.js +0 -85
  120. package/legacy/components/GridPinnedRows.js +0 -4
  121. package/legacy/components/GridRow.js +0 -457
  122. package/legacy/components/GridRowCount.js +0 -63
  123. package/legacy/components/GridScrollbarFillerCell.js +0 -34
  124. package/legacy/components/GridSelectedRowCount.js +0 -66
  125. package/legacy/components/base/GridBody.js +0 -2
  126. package/legacy/components/base/GridFooterPlaceholder.js +0 -12
  127. package/legacy/components/base/GridOverlays.js +0 -122
  128. package/legacy/components/base/index.js +0 -3
  129. package/legacy/components/cell/GridActionsCell.js +0 -294
  130. package/legacy/components/cell/GridActionsCellItem.js +0 -69
  131. package/legacy/components/cell/GridBooleanCell.js +0 -121
  132. package/legacy/components/cell/GridCell.js +0 -350
  133. package/legacy/components/cell/GridEditBooleanCell.js +0 -174
  134. package/legacy/components/cell/GridEditDateCell.js +0 -230
  135. package/legacy/components/cell/GridEditInputCell.js +0 -198
  136. package/legacy/components/cell/GridEditSingleSelectCell.js +0 -231
  137. package/legacy/components/cell/GridSkeletonCell.js +0 -52
  138. package/legacy/components/cell/index.js +0 -9
  139. package/legacy/components/columnHeaders/ColumnHeaderMenuIcon.js +0 -59
  140. package/legacy/components/columnHeaders/GridBaseColumnHeaders.js +0 -41
  141. package/legacy/components/columnHeaders/GridColumnGroupHeader.js +0 -132
  142. package/legacy/components/columnHeaders/GridColumnHeaderFilterIconButton.js +0 -93
  143. package/legacy/components/columnHeaders/GridColumnHeaderItem.js +0 -212
  144. package/legacy/components/columnHeaders/GridColumnHeaderSeparator.js +0 -71
  145. package/legacy/components/columnHeaders/GridColumnHeaderSortIcon.js +0 -79
  146. package/legacy/components/columnHeaders/GridColumnHeaderTitle.js +0 -84
  147. package/legacy/components/columnHeaders/GridColumnHeadersInner.js +0 -55
  148. package/legacy/components/columnHeaders/GridGenericColumnHeaderItem.js +0 -107
  149. package/legacy/components/columnHeaders/GridIconButtonContainer.js +0 -41
  150. package/legacy/components/columnHeaders/index.js +0 -5
  151. package/legacy/components/columnSelection/GridCellCheckboxRenderer.js +0 -160
  152. package/legacy/components/columnSelection/GridHeaderCheckbox.js +0 -134
  153. package/legacy/components/columnSelection/index.js +0 -2
  154. package/legacy/components/columnsManagement/GridColumnsManagement.js +0 -307
  155. package/legacy/components/columnsManagement/index.js +0 -1
  156. package/legacy/components/columnsManagement/utils.js +0 -22
  157. package/legacy/components/containers/GridFooterContainer.js +0 -50
  158. package/legacy/components/containers/GridOverlay.js +0 -52
  159. package/legacy/components/containers/GridRoot.js +0 -79
  160. package/legacy/components/containers/GridRootStyles.js +0 -398
  161. package/legacy/components/containers/GridToolbarContainer.js +0 -59
  162. package/legacy/components/containers/index.js +0 -4
  163. package/legacy/components/index.js +0 -19
  164. package/legacy/components/menu/GridMenu.js +0 -132
  165. package/legacy/components/menu/columnMenu/GridColumnHeaderMenu.js +0 -61
  166. package/legacy/components/menu/columnMenu/GridColumnMenu.js +0 -81
  167. package/legacy/components/menu/columnMenu/GridColumnMenuContainer.js +0 -56
  168. package/legacy/components/menu/columnMenu/GridColumnMenuItemProps.js +0 -1
  169. package/legacy/components/menu/columnMenu/GridColumnMenuProps.js +0 -1
  170. package/legacy/components/menu/columnMenu/index.js +0 -9
  171. package/legacy/components/menu/columnMenu/menuItems/GridColumnMenuColumnsItem.js +0 -21
  172. package/legacy/components/menu/columnMenu/menuItems/GridColumnMenuFilterItem.js +0 -41
  173. package/legacy/components/menu/columnMenu/menuItems/GridColumnMenuHideItem.js +0 -60
  174. package/legacy/components/menu/columnMenu/menuItems/GridColumnMenuManageItem.js +0 -41
  175. package/legacy/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +0 -80
  176. package/legacy/components/menu/columnMenu/menuItems/index.js +0 -5
  177. package/legacy/components/menu/index.js +0 -2
  178. package/legacy/components/panel/GridColumnsPanel.js +0 -22
  179. package/legacy/components/panel/GridPanel.js +0 -137
  180. package/legacy/components/panel/GridPanelContent.js +0 -49
  181. package/legacy/components/panel/GridPanelFooter.js +0 -50
  182. package/legacy/components/panel/GridPanelHeader.js +0 -48
  183. package/legacy/components/panel/GridPanelWrapper.js +0 -64
  184. package/legacy/components/panel/GridPreferencesPanel.js +0 -26
  185. package/legacy/components/panel/filterPanel/GridFilterForm.js +0 -528
  186. package/legacy/components/panel/filterPanel/GridFilterInputBoolean.js +0 -115
  187. package/legacy/components/panel/filterPanel/GridFilterInputDate.js +0 -121
  188. package/legacy/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +0 -116
  189. package/legacy/components/panel/filterPanel/GridFilterInputMultipleValue.js +0 -102
  190. package/legacy/components/panel/filterPanel/GridFilterInputSingleSelect.js +0 -146
  191. package/legacy/components/panel/filterPanel/GridFilterInputValue.js +0 -104
  192. package/legacy/components/panel/filterPanel/GridFilterInputValueProps.js +0 -1
  193. package/legacy/components/panel/filterPanel/GridFilterPanel.js +0 -264
  194. package/legacy/components/panel/filterPanel/filterPanelUtils.js +0 -22
  195. package/legacy/components/panel/filterPanel/index.js +0 -9
  196. package/legacy/components/panel/index.js +0 -7
  197. package/legacy/components/reexportable.js +0 -1
  198. package/legacy/components/toolbar/GridToolbar.js +0 -64
  199. package/legacy/components/toolbar/GridToolbarColumnsButton.js +0 -68
  200. package/legacy/components/toolbar/GridToolbarDensitySelector.js +0 -142
  201. package/legacy/components/toolbar/GridToolbarExport.js +0 -80
  202. package/legacy/components/toolbar/GridToolbarExportContainer.js +0 -105
  203. package/legacy/components/toolbar/GridToolbarFilterButton.js +0 -136
  204. package/legacy/components/toolbar/GridToolbarQuickFilter.js +0 -164
  205. package/legacy/components/toolbar/index.js +0 -7
  206. package/legacy/components/virtualization/GridBottomContainer.js +0 -25
  207. package/legacy/components/virtualization/GridMainContainer.js +0 -20
  208. package/legacy/components/virtualization/GridTopContainer.js +0 -35
  209. package/legacy/components/virtualization/GridVirtualScrollbar.js +0 -129
  210. package/legacy/components/virtualization/GridVirtualScroller.js +0 -93
  211. package/legacy/components/virtualization/GridVirtualScrollerContent.js +0 -35
  212. package/legacy/components/virtualization/GridVirtualScrollerFiller.js +0 -70
  213. package/legacy/components/virtualization/GridVirtualScrollerRenderZone.js +0 -42
  214. package/legacy/constants/defaultGridSlotsComponents.js +0 -33
  215. package/legacy/constants/envConstants.js +0 -19
  216. package/legacy/constants/gridClasses.js +0 -5
  217. package/legacy/constants/gridDetailPanelToggleField.js +0 -2
  218. package/legacy/constants/index.js +0 -3
  219. package/legacy/constants/localeTextConstants.js +0 -158
  220. package/legacy/context/GridContextProvider.js +0 -21
  221. package/legacy/context/GridRootPropsContext.js +0 -6
  222. package/legacy/context/index.js +0 -1
  223. package/legacy/hooks/core/gridCoreSelector.js +0 -7
  224. package/legacy/hooks/core/index.js +0 -1
  225. package/legacy/hooks/core/pipeProcessing/gridPipeProcessingApi.js +0 -1
  226. package/legacy/hooks/core/pipeProcessing/index.js +0 -4
  227. package/legacy/hooks/core/pipeProcessing/useGridPipeProcessing.js +0 -114
  228. package/legacy/hooks/core/pipeProcessing/useGridRegisterPipeApplier.js +0 -26
  229. package/legacy/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.js +0 -26
  230. package/legacy/hooks/core/strategyProcessing/gridStrategyProcessingApi.js +0 -1
  231. package/legacy/hooks/core/strategyProcessing/index.js +0 -3
  232. package/legacy/hooks/core/strategyProcessing/useGridRegisterStrategyProcessor.js +0 -18
  233. package/legacy/hooks/core/strategyProcessing/useGridStrategyProcessing.js +0 -116
  234. package/legacy/hooks/core/useGridApiInitialization.js +0 -124
  235. package/legacy/hooks/core/useGridInitialization.js +0 -26
  236. package/legacy/hooks/core/useGridLocaleText.js +0 -12
  237. package/legacy/hooks/core/useGridLoggerFactory.js +0 -51
  238. package/legacy/hooks/core/useGridRefs.js +0 -13
  239. package/legacy/hooks/core/useGridStateInitialization.js +0 -106
  240. package/legacy/hooks/core/useGridTheme.js +0 -21
  241. package/legacy/hooks/features/clipboard/useGridClipboard.js +0 -92
  242. package/legacy/hooks/features/columnGrouping/gridColumnGroupsInterfaces.js +0 -1
  243. package/legacy/hooks/features/columnGrouping/gridColumnGroupsSelector.js +0 -24
  244. package/legacy/hooks/features/columnGrouping/gridColumnGroupsUtils.js +0 -92
  245. package/legacy/hooks/features/columnGrouping/index.js +0 -2
  246. package/legacy/hooks/features/columnGrouping/useGridColumnGrouping.js +0 -140
  247. package/legacy/hooks/features/columnHeaders/useGridColumnHeaders.js +0 -275
  248. package/legacy/hooks/features/columnMenu/columnMenuInterfaces.js +0 -1
  249. package/legacy/hooks/features/columnMenu/columnMenuSelector.js +0 -3
  250. package/legacy/hooks/features/columnMenu/index.js +0 -2
  251. package/legacy/hooks/features/columnMenu/useGridColumnMenu.js +0 -108
  252. package/legacy/hooks/features/columnMenu/useGridColumnMenuSlots.js +0 -71
  253. package/legacy/hooks/features/columns/gridColumnsInterfaces.js +0 -9
  254. package/legacy/hooks/features/columns/gridColumnsSelector.js +0 -174
  255. package/legacy/hooks/features/columns/gridColumnsUtils.js +0 -338
  256. package/legacy/hooks/features/columns/index.js +0 -2
  257. package/legacy/hooks/features/columns/useGridColumnSpanning.js +0 -105
  258. package/legacy/hooks/features/columns/useGridColumns.js +0 -319
  259. package/legacy/hooks/features/density/densitySelector.js +0 -10
  260. package/legacy/hooks/features/density/densityState.js +0 -1
  261. package/legacy/hooks/features/density/index.js +0 -2
  262. package/legacy/hooks/features/density/useGridDensity.js +0 -48
  263. package/legacy/hooks/features/dimensions/gridDimensionsApi.js +0 -1
  264. package/legacy/hooks/features/dimensions/gridDimensionsSelectors.js +0 -3
  265. package/legacy/hooks/features/dimensions/index.js +0 -2
  266. package/legacy/hooks/features/dimensions/useGridDimensions.js +0 -302
  267. package/legacy/hooks/features/editing/gridEditingSelectors.js +0 -4
  268. package/legacy/hooks/features/editing/useGridCellEditing.js +0 -456
  269. package/legacy/hooks/features/editing/useGridEditing.js +0 -145
  270. package/legacy/hooks/features/editing/useGridRowEditing.js +0 -567
  271. package/legacy/hooks/features/events/useGridEvents.js +0 -23
  272. package/legacy/hooks/features/export/serializers/csvSerializer.js +0 -155
  273. package/legacy/hooks/features/export/useGridCsvExport.js +0 -75
  274. package/legacy/hooks/features/export/useGridPrintExport.js +0 -313
  275. package/legacy/hooks/features/export/utils.js +0 -49
  276. package/legacy/hooks/features/filter/gridFilterSelector.js +0 -165
  277. package/legacy/hooks/features/filter/gridFilterState.js +0 -20
  278. package/legacy/hooks/features/filter/gridFilterUtils.js +0 -330
  279. package/legacy/hooks/features/filter/index.js +0 -2
  280. package/legacy/hooks/features/filter/useGridFilter.js +0 -378
  281. package/legacy/hooks/features/focus/gridFocusState.js +0 -1
  282. package/legacy/hooks/features/focus/gridFocusStateSelector.js +0 -31
  283. package/legacy/hooks/features/focus/index.js +0 -2
  284. package/legacy/hooks/features/focus/useGridFocus.js +0 -408
  285. package/legacy/hooks/features/headerFiltering/gridHeaderFilteringSelectors.js +0 -10
  286. package/legacy/hooks/features/headerFiltering/index.js +0 -1
  287. package/legacy/hooks/features/headerFiltering/useGridHeaderFiltering.js +0 -93
  288. package/legacy/hooks/features/index.js +0 -16
  289. package/legacy/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +0 -565
  290. package/legacy/hooks/features/pagination/gridPaginationInterfaces.js +0 -1
  291. package/legacy/hooks/features/pagination/gridPaginationSelector.js +0 -115
  292. package/legacy/hooks/features/pagination/gridPaginationUtils.js +0 -31
  293. package/legacy/hooks/features/pagination/index.js +0 -2
  294. package/legacy/hooks/features/pagination/useGridPagination.js +0 -175
  295. package/legacy/hooks/features/preferencesPanel/gridPreferencePanelSelector.js +0 -3
  296. package/legacy/hooks/features/preferencesPanel/gridPreferencePanelState.js +0 -1
  297. package/legacy/hooks/features/preferencesPanel/gridPreferencePanelsValue.js +0 -6
  298. package/legacy/hooks/features/preferencesPanel/index.js +0 -3
  299. package/legacy/hooks/features/preferencesPanel/useGridPreferencesPanel.js +0 -125
  300. package/legacy/hooks/features/rowSelection/gridRowSelectionSelector.js +0 -19
  301. package/legacy/hooks/features/rowSelection/index.js +0 -1
  302. package/legacy/hooks/features/rowSelection/useGridRowSelection.js +0 -419
  303. package/legacy/hooks/features/rowSelection/useGridRowSelectionPreProcessors.js +0 -45
  304. package/legacy/hooks/features/rowSelection/utils.js +0 -8
  305. package/legacy/hooks/features/rows/gridRowsInterfaces.js +0 -1
  306. package/legacy/hooks/features/rows/gridRowsMetaSelector.js +0 -3
  307. package/legacy/hooks/features/rows/gridRowsMetaState.js +0 -1
  308. package/legacy/hooks/features/rows/gridRowsSelector.js +0 -90
  309. package/legacy/hooks/features/rows/gridRowsUtils.js +0 -294
  310. package/legacy/hooks/features/rows/index.js +0 -4
  311. package/legacy/hooks/features/rows/useGridParamsApi.js +0 -142
  312. package/legacy/hooks/features/rows/useGridRows.js +0 -466
  313. package/legacy/hooks/features/rows/useGridRowsMeta.js +0 -236
  314. package/legacy/hooks/features/rows/useGridRowsPreProcessors.js +0 -82
  315. package/legacy/hooks/features/scroll/useGridScroll.js +0 -133
  316. package/legacy/hooks/features/sorting/gridSortingSelector.js +0 -56
  317. package/legacy/hooks/features/sorting/gridSortingState.js +0 -1
  318. package/legacy/hooks/features/sorting/gridSortingUtils.js +0 -154
  319. package/legacy/hooks/features/sorting/index.js +0 -2
  320. package/legacy/hooks/features/sorting/useGridSorting.js +0 -276
  321. package/legacy/hooks/features/statePersistence/gridStatePersistenceInterface.js +0 -1
  322. package/legacy/hooks/features/statePersistence/index.js +0 -1
  323. package/legacy/hooks/features/statePersistence/useGridStatePersistence.js +0 -25
  324. package/legacy/hooks/features/virtualization/gridVirtualizationSelectors.js +0 -52
  325. package/legacy/hooks/features/virtualization/index.js +0 -2
  326. package/legacy/hooks/features/virtualization/useGridVirtualScroller.js +0 -643
  327. package/legacy/hooks/features/virtualization/useGridVirtualization.js +0 -58
  328. package/legacy/hooks/index.js +0 -3
  329. package/legacy/hooks/utils/index.js +0 -9
  330. package/legacy/hooks/utils/useFirstRender.js +0 -8
  331. package/legacy/hooks/utils/useGridApiContext.js +0 -9
  332. package/legacy/hooks/utils/useGridApiEventHandler.js +0 -105
  333. package/legacy/hooks/utils/useGridApiMethod.js +0 -11
  334. package/legacy/hooks/utils/useGridApiRef.js +0 -7
  335. package/legacy/hooks/utils/useGridAriaAttributes.js +0 -25
  336. package/legacy/hooks/utils/useGridInitializeState.js +0 -8
  337. package/legacy/hooks/utils/useGridLogger.js +0 -10
  338. package/legacy/hooks/utils/useGridNativeEventListener.js +0 -32
  339. package/legacy/hooks/utils/useGridPrivateApiContext.js +0 -12
  340. package/legacy/hooks/utils/useGridRootProps.js +0 -9
  341. package/legacy/hooks/utils/useGridSelector.js +0 -54
  342. package/legacy/hooks/utils/useGridVisibleRows.js +0 -42
  343. package/legacy/hooks/utils/useLazyRef.js +0 -11
  344. package/legacy/hooks/utils/useOnMount.js +0 -7
  345. package/legacy/hooks/utils/useResizeObserver.js +0 -36
  346. package/legacy/hooks/utils/useRunOnce.js +0 -18
  347. package/legacy/hooks/utils/useTimeout.js +0 -38
  348. package/legacy/index.js +0 -38
  349. package/legacy/internals/index.js +0 -68
  350. package/legacy/internals/utils/computeSlots.js +0 -17
  351. package/legacy/internals/utils/index.js +0 -3
  352. package/legacy/internals/utils/propValidation.js +0 -21
  353. package/legacy/internals/utils/useProps.js +0 -32
  354. package/legacy/joy/icons.js +0 -432
  355. package/legacy/joy/index.js +0 -2
  356. package/legacy/joy/joySlots.js +0 -420
  357. package/legacy/locales/arSD.js +0 -160
  358. package/legacy/locales/beBY.js +0 -184
  359. package/legacy/locales/bgBG.js +0 -160
  360. package/legacy/locales/coreLocales.js +0 -62
  361. package/legacy/locales/csCZ.js +0 -181
  362. package/legacy/locales/daDK.js +0 -160
  363. package/legacy/locales/deDE.js +0 -160
  364. package/legacy/locales/elGR.js +0 -160
  365. package/legacy/locales/enUS.js +0 -4
  366. package/legacy/locales/esES.js +0 -160
  367. package/legacy/locales/faIR.js +0 -160
  368. package/legacy/locales/fiFI.js +0 -160
  369. package/legacy/locales/frFR.js +0 -160
  370. package/legacy/locales/heIL.js +0 -160
  371. package/legacy/locales/hrHR.js +0 -160
  372. package/legacy/locales/huHU.js +0 -160
  373. package/legacy/locales/index.js +0 -35
  374. package/legacy/locales/itIT.js +0 -160
  375. package/legacy/locales/jaJP.js +0 -160
  376. package/legacy/locales/koKR.js +0 -162
  377. package/legacy/locales/nbNO.js +0 -162
  378. package/legacy/locales/nlNL.js +0 -160
  379. package/legacy/locales/plPL.js +0 -163
  380. package/legacy/locales/ptBR.js +0 -160
  381. package/legacy/locales/ptPT.js +0 -160
  382. package/legacy/locales/roRO.js +0 -160
  383. package/legacy/locales/ruRU.js +0 -181
  384. package/legacy/locales/skSK.js +0 -181
  385. package/legacy/locales/svSE.js +0 -160
  386. package/legacy/locales/trTR.js +0 -161
  387. package/legacy/locales/ukUA.js +0 -182
  388. package/legacy/locales/urPK.js +0 -160
  389. package/legacy/locales/viVN.js +0 -160
  390. package/legacy/locales/zhCN.js +0 -160
  391. package/legacy/locales/zhHK.js +0 -160
  392. package/legacy/locales/zhTW.js +0 -160
  393. package/legacy/material/components/MUISelectOption.js +0 -14
  394. package/legacy/material/icons/GridColumnUnsortedIcon.js +0 -16
  395. package/legacy/material/icons/index.js +0 -89
  396. package/legacy/material/index.js +0 -69
  397. package/legacy/models/api/gridApiCommon.js +0 -1
  398. package/legacy/models/api/gridApiCommunity.js +0 -1
  399. package/legacy/models/api/gridCallbackDetails.js +0 -1
  400. package/legacy/models/api/gridColumnApi.js +0 -1
  401. package/legacy/models/api/gridColumnGroupingApi.js +0 -1
  402. package/legacy/models/api/gridColumnMenuApi.js +0 -1
  403. package/legacy/models/api/gridColumnSpanning.js +0 -1
  404. package/legacy/models/api/gridCoreApi.js +0 -1
  405. package/legacy/models/api/gridCsvExportApi.js +0 -1
  406. package/legacy/models/api/gridDensityApi.js +0 -1
  407. package/legacy/models/api/gridEditingApi.js +0 -1
  408. package/legacy/models/api/gridFilterApi.js +0 -1
  409. package/legacy/models/api/gridFocusApi.js +0 -1
  410. package/legacy/models/api/gridHeaderFilteringApi.js +0 -1
  411. package/legacy/models/api/gridLocaleTextApi.js +0 -1
  412. package/legacy/models/api/gridLoggerApi.js +0 -1
  413. package/legacy/models/api/gridParamsApi.js +0 -1
  414. package/legacy/models/api/gridPreferencesPanelApi.js +0 -1
  415. package/legacy/models/api/gridPrintExportApi.js +0 -1
  416. package/legacy/models/api/gridRowApi.js +0 -1
  417. package/legacy/models/api/gridRowSelectionApi.js +0 -1
  418. package/legacy/models/api/gridRowsMetaApi.js +0 -1
  419. package/legacy/models/api/gridScrollApi.js +0 -1
  420. package/legacy/models/api/gridSortApi.js +0 -1
  421. package/legacy/models/api/gridStateApi.js +0 -1
  422. package/legacy/models/api/gridVirtualizationApi.js +0 -1
  423. package/legacy/models/api/index.js +0 -16
  424. package/legacy/models/colDef/gridColDef.js +0 -1
  425. package/legacy/models/colDef/gridColType.js +0 -1
  426. package/legacy/models/colDef/gridColumnTypesRecord.js +0 -1
  427. package/legacy/models/colDef/index.js +0 -6
  428. package/legacy/models/controlStateItem.js +0 -1
  429. package/legacy/models/cursorCoordinates.js +0 -1
  430. package/legacy/models/elementSize.js +0 -1
  431. package/legacy/models/events/gridEventListener.js +0 -1
  432. package/legacy/models/events/gridEventLookup.js +0 -1
  433. package/legacy/models/events/gridEventPublisher.js +0 -1
  434. package/legacy/models/events/index.js +0 -3
  435. package/legacy/models/gridApiCaches.js +0 -1
  436. package/legacy/models/gridCell.js +0 -1
  437. package/legacy/models/gridCellClass.js +0 -1
  438. package/legacy/models/gridColumnGrouping.js +0 -11
  439. package/legacy/models/gridColumnHeaderClass.js +0 -1
  440. package/legacy/models/gridColumnSpanning.js +0 -1
  441. package/legacy/models/gridDensity.js +0 -1
  442. package/legacy/models/gridEditRowModel.js +0 -16
  443. package/legacy/models/gridExport.js +0 -1
  444. package/legacy/models/gridFeatureMode.js +0 -1
  445. package/legacy/models/gridFilterItem.js +0 -11
  446. package/legacy/models/gridFilterModel.js +0 -1
  447. package/legacy/models/gridFilterOperator.js +0 -1
  448. package/legacy/models/gridHeaderFilteringModel.js +0 -1
  449. package/legacy/models/gridIconSlotsComponent.js +0 -1
  450. package/legacy/models/gridPaginationProps.js +0 -1
  451. package/legacy/models/gridRenderContextProps.js +0 -1
  452. package/legacy/models/gridRowSelectionModel.js +0 -1
  453. package/legacy/models/gridRows.js +0 -1
  454. package/legacy/models/gridSlotsComponent.js +0 -1
  455. package/legacy/models/gridSlotsComponentsProps.js +0 -1
  456. package/legacy/models/gridSortModel.js +0 -1
  457. package/legacy/models/gridStateCommunity.js +0 -1
  458. package/legacy/models/index.js +0 -29
  459. package/legacy/models/logger.js +0 -1
  460. package/legacy/models/muiEvent.js +0 -1
  461. package/legacy/models/params/gridCellParams.js +0 -1
  462. package/legacy/models/params/gridColumnGroupHeaderParams.js +0 -1
  463. package/legacy/models/params/gridColumnHeaderParams.js +0 -1
  464. package/legacy/models/params/gridColumnOrderChangeParams.js +0 -1
  465. package/legacy/models/params/gridColumnResizeParams.js +0 -1
  466. package/legacy/models/params/gridEditCellParams.js +0 -27
  467. package/legacy/models/params/gridHeaderSelectionCheckboxParams.js +0 -1
  468. package/legacy/models/params/gridMenuParams.js +0 -1
  469. package/legacy/models/params/gridPreferencePanelParams.js +0 -1
  470. package/legacy/models/params/gridRowParams.js +0 -44
  471. package/legacy/models/params/gridRowSelectionCheckboxParams.js +0 -1
  472. package/legacy/models/params/gridScrollParams.js +0 -1
  473. package/legacy/models/params/gridValueOptionsParams.js +0 -1
  474. package/legacy/models/params/index.js +0 -13
  475. package/legacy/models/props/DataGridProps.js +0 -1
  476. package/legacy/themeAugmentation/index.js +0 -4
  477. package/legacy/themeAugmentation/overrides.js +0 -1
  478. package/legacy/themeAugmentation/props.js +0 -1
  479. package/legacy/utils/EventManager.js +0 -91
  480. package/legacy/utils/Store.js +0 -34
  481. package/legacy/utils/cleanupTracking/CleanupTracking.js +0 -1
  482. package/legacy/utils/cleanupTracking/FinalizationRegistryBasedCleanupTracking.js +0 -29
  483. package/legacy/utils/cleanupTracking/TimerBasedCleanupTracking.js +0 -52
  484. package/legacy/utils/createControllablePromise.js +0 -11
  485. package/legacy/utils/createSelector.js +0 -120
  486. package/legacy/utils/doesSupportPreventScroll.js +0 -13
  487. package/legacy/utils/domUtils.js +0 -49
  488. package/legacy/utils/exportAs.js +0 -40
  489. package/legacy/utils/fastMemo.js +0 -5
  490. package/legacy/utils/fastObjectShallowCompare.js +0 -32
  491. package/legacy/utils/getGridLocalization.js +0 -15
  492. package/legacy/utils/getPublicApiRef.js +0 -5
  493. package/legacy/utils/index.js +0 -1
  494. package/legacy/utils/keyboardUtils.js +0 -60
  495. package/legacy/utils/utils.js +0 -189
  496. 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
- });