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