@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,567 +0,0 @@
1
- import _toPropertyKey from "@babel/runtime/helpers/esm/toPropertyKey";
2
- import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
- import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
4
- import _extends from "@babel/runtime/helpers/esm/extends";
5
- import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
6
- var _excluded = ["id"],
7
- _excluded2 = ["id"];
8
- import * as React from 'react';
9
- import { unstable_useEventCallback as useEventCallback, unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/utils';
10
- import { useGridApiEventHandler, useGridApiOptionHandler } from '../../utils/useGridApiEventHandler';
11
- import { GridEditModes, GridRowModes } from '../../../models/gridEditRowModel';
12
- import { useGridApiMethod } from '../../utils/useGridApiMethod';
13
- import { gridEditRowsStateSelector } from './gridEditingSelectors';
14
- import { isPrintableKey } from '../../../utils/keyboardUtils';
15
- import { gridColumnFieldsSelector, gridVisibleColumnFieldsSelector } from '../columns/gridColumnsSelector';
16
- import { buildWarning } from '../../../utils/warning';
17
- import { gridRowsDataRowIdToIdLookupSelector } from '../rows/gridRowsSelector';
18
- import { deepClone } from '../../../utils/utils';
19
- import { GridRowEditStopReasons, GridRowEditStartReasons } from '../../../models/params/gridRowParams';
20
- import { GRID_ACTIONS_COLUMN_TYPE } from '../../../colDef';
21
- var missingOnProcessRowUpdateErrorWarning = buildWarning(['MUI X: A call to `processRowUpdate` threw an error which was not handled because `onProcessRowUpdateError` is missing.', 'To handle the error pass a callback to the `onProcessRowUpdateError` prop, e.g. `<DataGrid onProcessRowUpdateError={(error) => ...} />`.', 'For more detail, see https://mui.com/x/react-data-grid/editing/#server-side-persistence.'], 'error');
22
- export var useGridRowEditing = function useGridRowEditing(apiRef, props) {
23
- var _React$useState = React.useState({}),
24
- _React$useState2 = _slicedToArray(_React$useState, 2),
25
- rowModesModel = _React$useState2[0],
26
- setRowModesModel = _React$useState2[1];
27
- var rowModesModelRef = React.useRef(rowModesModel);
28
- var prevRowModesModel = React.useRef({});
29
- var focusTimeout = React.useRef(null);
30
- var nextFocusedCell = React.useRef(null);
31
- var processRowUpdate = props.processRowUpdate,
32
- onProcessRowUpdateError = props.onProcessRowUpdateError,
33
- rowModesModelProp = props.rowModesModel,
34
- onRowModesModelChange = props.onRowModesModelChange;
35
- var runIfEditModeIsRow = function runIfEditModeIsRow(callback) {
36
- return function () {
37
- if (props.editMode === GridEditModes.Row) {
38
- callback.apply(void 0, arguments);
39
- }
40
- };
41
- };
42
- var throwIfNotEditable = React.useCallback(function (id, field) {
43
- var params = apiRef.current.getCellParams(id, field);
44
- if (!apiRef.current.isCellEditable(params)) {
45
- throw new Error("MUI X: The cell with id=".concat(id, " and field=").concat(field, " is not editable."));
46
- }
47
- }, [apiRef]);
48
- var throwIfNotInMode = React.useCallback(function (id, mode) {
49
- if (apiRef.current.getRowMode(id) !== mode) {
50
- throw new Error("MUI X: The row with id=".concat(id, " is not in ").concat(mode, " mode."));
51
- }
52
- }, [apiRef]);
53
- var handleCellDoubleClick = React.useCallback(function (params, event) {
54
- if (!params.isEditable) {
55
- return;
56
- }
57
- if (apiRef.current.getRowMode(params.id) === GridRowModes.Edit) {
58
- return;
59
- }
60
- var rowParams = apiRef.current.getRowParams(params.id);
61
- var newParams = _extends({}, rowParams, {
62
- field: params.field,
63
- reason: GridRowEditStartReasons.cellDoubleClick
64
- });
65
- apiRef.current.publishEvent('rowEditStart', newParams, event);
66
- }, [apiRef]);
67
- var handleCellFocusIn = React.useCallback(function (params) {
68
- nextFocusedCell.current = params;
69
- }, []);
70
- var handleCellFocusOut = React.useCallback(function (params, event) {
71
- if (!params.isEditable) {
72
- return;
73
- }
74
- if (apiRef.current.getRowMode(params.id) === GridRowModes.View) {
75
- return;
76
- }
77
- // The mechanism to detect if we can stop editing a row is different from
78
- // the cell editing. Instead of triggering it when clicking outside a cell,
79
- // we must check if another cell in the same row was not clicked. To achieve
80
- // that, first we keep track of all cells that gained focus. When a cell loses
81
- // focus we check if the next cell that received focus is from a different row.
82
- nextFocusedCell.current = null;
83
- focusTimeout.current = setTimeout(function () {
84
- var _nextFocusedCell$curr;
85
- focusTimeout.current = null;
86
- if (((_nextFocusedCell$curr = nextFocusedCell.current) == null ? void 0 : _nextFocusedCell$curr.id) !== params.id) {
87
- // The row might have been deleted during the click
88
- if (!apiRef.current.getRow(params.id)) {
89
- return;
90
- }
91
-
92
- // The row may already changed its mode
93
- if (apiRef.current.getRowMode(params.id) === GridRowModes.View) {
94
- return;
95
- }
96
- var rowParams = apiRef.current.getRowParams(params.id);
97
- var newParams = _extends({}, rowParams, {
98
- field: params.field,
99
- reason: GridRowEditStopReasons.rowFocusOut
100
- });
101
- apiRef.current.publishEvent('rowEditStop', newParams, event);
102
- }
103
- });
104
- }, [apiRef]);
105
- React.useEffect(function () {
106
- return function () {
107
- clearTimeout(focusTimeout.current);
108
- };
109
- }, []);
110
- var handleCellKeyDown = React.useCallback(function (params, event) {
111
- if (params.cellMode === GridRowModes.Edit) {
112
- // Wait until IME is settled for Asian languages like Japanese and Chinese
113
- // TODO: `event.which` is deprecated but this is a temporary workaround
114
- if (event.which === 229) {
115
- return;
116
- }
117
- var reason;
118
- if (event.key === 'Escape') {
119
- reason = GridRowEditStopReasons.escapeKeyDown;
120
- } else if (event.key === 'Enter') {
121
- reason = GridRowEditStopReasons.enterKeyDown;
122
- } else if (event.key === 'Tab') {
123
- var columnFields = gridVisibleColumnFieldsSelector(apiRef).filter(function (field) {
124
- var column = apiRef.current.getColumn(field);
125
- if (column.type === GRID_ACTIONS_COLUMN_TYPE) {
126
- return true;
127
- }
128
- return apiRef.current.isCellEditable(apiRef.current.getCellParams(params.id, field));
129
- });
130
- if (event.shiftKey) {
131
- if (params.field === columnFields[0]) {
132
- // Exit if user pressed Shift+Tab on the first field
133
- reason = GridRowEditStopReasons.shiftTabKeyDown;
134
- }
135
- } else if (params.field === columnFields[columnFields.length - 1]) {
136
- // Exit if user pressed Tab on the last field
137
- reason = GridRowEditStopReasons.tabKeyDown;
138
- }
139
-
140
- // Always prevent going to the next element in the tab sequence because the focus is
141
- // handled manually to support edit components rendered inside Portals
142
- event.preventDefault();
143
- if (!reason) {
144
- var index = columnFields.findIndex(function (field) {
145
- return field === params.field;
146
- });
147
- var nextFieldToFocus = columnFields[event.shiftKey ? index - 1 : index + 1];
148
- apiRef.current.setCellFocus(params.id, nextFieldToFocus);
149
- }
150
- }
151
- if (reason) {
152
- var newParams = _extends({}, apiRef.current.getRowParams(params.id), {
153
- reason: reason,
154
- field: params.field
155
- });
156
- apiRef.current.publishEvent('rowEditStop', newParams, event);
157
- }
158
- } else if (params.isEditable) {
159
- var _reason;
160
- var canStartEditing = apiRef.current.unstable_applyPipeProcessors('canStartEditing', true, {
161
- event: event,
162
- cellParams: params,
163
- editMode: 'row'
164
- });
165
- if (!canStartEditing) {
166
- return;
167
- }
168
- if (isPrintableKey(event)) {
169
- _reason = GridRowEditStartReasons.printableKeyDown;
170
- } else if ((event.ctrlKey || event.metaKey) && event.key === 'v') {
171
- _reason = GridRowEditStartReasons.printableKeyDown;
172
- } else if (event.key === 'Enter') {
173
- _reason = GridRowEditStartReasons.enterKeyDown;
174
- } else if (event.key === 'Delete' || event.key === 'Backspace') {
175
- // Delete on Windows, Backspace on macOS
176
- _reason = GridRowEditStartReasons.deleteKeyDown;
177
- }
178
- if (_reason) {
179
- var rowParams = apiRef.current.getRowParams(params.id);
180
- var _newParams = _extends({}, rowParams, {
181
- field: params.field,
182
- reason: _reason
183
- });
184
- apiRef.current.publishEvent('rowEditStart', _newParams, event);
185
- }
186
- }
187
- }, [apiRef]);
188
- var handleRowEditStart = React.useCallback(function (params) {
189
- var id = params.id,
190
- field = params.field,
191
- reason = params.reason;
192
- var startRowEditModeParams = {
193
- id: id,
194
- fieldToFocus: field
195
- };
196
- if (reason === GridRowEditStartReasons.printableKeyDown || reason === GridRowEditStartReasons.deleteKeyDown) {
197
- startRowEditModeParams.deleteValue = !!field;
198
- }
199
- apiRef.current.startRowEditMode(startRowEditModeParams);
200
- }, [apiRef]);
201
- var handleRowEditStop = React.useCallback(function (params) {
202
- var id = params.id,
203
- reason = params.reason,
204
- field = params.field;
205
- apiRef.current.runPendingEditCellValueMutation(id);
206
- var cellToFocusAfter;
207
- if (reason === GridRowEditStopReasons.enterKeyDown) {
208
- cellToFocusAfter = 'below';
209
- } else if (reason === GridRowEditStopReasons.tabKeyDown) {
210
- cellToFocusAfter = 'right';
211
- } else if (reason === GridRowEditStopReasons.shiftTabKeyDown) {
212
- cellToFocusAfter = 'left';
213
- }
214
- var ignoreModifications = reason === 'escapeKeyDown';
215
- apiRef.current.stopRowEditMode({
216
- id: id,
217
- ignoreModifications: ignoreModifications,
218
- field: field,
219
- cellToFocusAfter: cellToFocusAfter
220
- });
221
- }, [apiRef]);
222
- useGridApiEventHandler(apiRef, 'cellDoubleClick', runIfEditModeIsRow(handleCellDoubleClick));
223
- useGridApiEventHandler(apiRef, 'cellFocusIn', runIfEditModeIsRow(handleCellFocusIn));
224
- useGridApiEventHandler(apiRef, 'cellFocusOut', runIfEditModeIsRow(handleCellFocusOut));
225
- useGridApiEventHandler(apiRef, 'cellKeyDown', runIfEditModeIsRow(handleCellKeyDown));
226
- useGridApiEventHandler(apiRef, 'rowEditStart', runIfEditModeIsRow(handleRowEditStart));
227
- useGridApiEventHandler(apiRef, 'rowEditStop', runIfEditModeIsRow(handleRowEditStop));
228
- useGridApiOptionHandler(apiRef, 'rowEditStart', props.onRowEditStart);
229
- useGridApiOptionHandler(apiRef, 'rowEditStop', props.onRowEditStop);
230
- var getRowMode = React.useCallback(function (id) {
231
- if (props.editMode === GridEditModes.Cell) {
232
- return GridRowModes.View;
233
- }
234
- var editingState = gridEditRowsStateSelector(apiRef.current.state);
235
- var isEditing = editingState[id] && Object.keys(editingState[id]).length > 0;
236
- return isEditing ? GridRowModes.Edit : GridRowModes.View;
237
- }, [apiRef, props.editMode]);
238
- var updateRowModesModel = useEventCallback(function (newModel) {
239
- var isNewModelDifferentFromProp = newModel !== props.rowModesModel;
240
- if (onRowModesModelChange && isNewModelDifferentFromProp) {
241
- onRowModesModelChange(newModel, {});
242
- }
243
- if (props.rowModesModel && isNewModelDifferentFromProp) {
244
- return; // The prop always win
245
- }
246
- setRowModesModel(newModel);
247
- rowModesModelRef.current = newModel;
248
- apiRef.current.publishEvent('rowModesModelChange', newModel);
249
- });
250
- var updateRowInRowModesModel = React.useCallback(function (id, newProps) {
251
- var newModel = _extends({}, rowModesModelRef.current);
252
- if (newProps !== null) {
253
- newModel[id] = _extends({}, newProps);
254
- } else {
255
- delete newModel[id];
256
- }
257
- updateRowModesModel(newModel);
258
- }, [updateRowModesModel]);
259
- var updateOrDeleteRowState = React.useCallback(function (id, newProps) {
260
- apiRef.current.setState(function (state) {
261
- var newEditingState = _extends({}, state.editRows);
262
- if (newProps !== null) {
263
- newEditingState[id] = newProps;
264
- } else {
265
- delete newEditingState[id];
266
- }
267
- return _extends({}, state, {
268
- editRows: newEditingState
269
- });
270
- });
271
- apiRef.current.forceUpdate();
272
- }, [apiRef]);
273
- var updateOrDeleteFieldState = React.useCallback(function (id, field, newProps) {
274
- apiRef.current.setState(function (state) {
275
- var newEditingState = _extends({}, state.editRows);
276
- if (newProps !== null) {
277
- newEditingState[id] = _extends({}, newEditingState[id], _defineProperty({}, field, _extends({}, newProps)));
278
- } else {
279
- delete newEditingState[id][field];
280
- if (Object.keys(newEditingState[id]).length === 0) {
281
- delete newEditingState[id];
282
- }
283
- }
284
- return _extends({}, state, {
285
- editRows: newEditingState
286
- });
287
- });
288
- apiRef.current.forceUpdate();
289
- }, [apiRef]);
290
- var startRowEditMode = React.useCallback(function (params) {
291
- var id = params.id,
292
- other = _objectWithoutProperties(params, _excluded);
293
- throwIfNotInMode(id, GridRowModes.View);
294
- updateRowInRowModesModel(id, _extends({
295
- mode: GridRowModes.Edit
296
- }, other));
297
- }, [throwIfNotInMode, updateRowInRowModesModel]);
298
- var updateStateToStartRowEditMode = useEventCallback(function (params) {
299
- var id = params.id,
300
- fieldToFocus = params.fieldToFocus,
301
- deleteValue = params.deleteValue,
302
- initialValue = params.initialValue;
303
- var columnFields = gridColumnFieldsSelector(apiRef);
304
- var newProps = columnFields.reduce(function (acc, field) {
305
- var cellParams = apiRef.current.getCellParams(id, field);
306
- if (!cellParams.isEditable) {
307
- return acc;
308
- }
309
- var newValue = apiRef.current.getCellValue(id, field);
310
- if (fieldToFocus === field && (deleteValue || initialValue)) {
311
- newValue = deleteValue ? '' : initialValue;
312
- }
313
- acc[field] = {
314
- value: newValue,
315
- error: false,
316
- isProcessingProps: false
317
- };
318
- return acc;
319
- }, {});
320
- updateOrDeleteRowState(id, newProps);
321
- if (fieldToFocus) {
322
- apiRef.current.setCellFocus(id, fieldToFocus);
323
- }
324
- });
325
- var stopRowEditMode = React.useCallback(function (params) {
326
- var id = params.id,
327
- other = _objectWithoutProperties(params, _excluded2);
328
- throwIfNotInMode(id, GridRowModes.Edit);
329
- updateRowInRowModesModel(id, _extends({
330
- mode: GridRowModes.View
331
- }, other));
332
- }, [throwIfNotInMode, updateRowInRowModesModel]);
333
- var updateStateToStopRowEditMode = useEventCallback(function (params) {
334
- var id = params.id,
335
- ignoreModifications = params.ignoreModifications,
336
- focusedField = params.field,
337
- _params$cellToFocusAf = params.cellToFocusAfter,
338
- cellToFocusAfter = _params$cellToFocusAf === void 0 ? 'none' : _params$cellToFocusAf;
339
- apiRef.current.runPendingEditCellValueMutation(id);
340
- var finishRowEditMode = function finishRowEditMode() {
341
- if (cellToFocusAfter !== 'none' && focusedField) {
342
- apiRef.current.moveFocusToRelativeCell(id, focusedField, cellToFocusAfter);
343
- }
344
- updateOrDeleteRowState(id, null);
345
- updateRowInRowModesModel(id, null);
346
- };
347
- if (ignoreModifications) {
348
- finishRowEditMode();
349
- return;
350
- }
351
- var editingState = gridEditRowsStateSelector(apiRef.current.state);
352
- var row = apiRef.current.getRow(id);
353
- var isSomeFieldProcessingProps = Object.values(editingState[id]).some(function (fieldProps) {
354
- return fieldProps.isProcessingProps;
355
- });
356
- if (isSomeFieldProcessingProps) {
357
- prevRowModesModel.current[id].mode = GridRowModes.Edit;
358
- return;
359
- }
360
- var hasSomeFieldWithError = Object.values(editingState[id]).some(function (fieldProps) {
361
- return fieldProps.error;
362
- });
363
- if (hasSomeFieldWithError) {
364
- prevRowModesModel.current[id].mode = GridRowModes.Edit;
365
- // Revert the mode in the rowModesModel prop back to "edit"
366
- updateRowInRowModesModel(id, {
367
- mode: GridRowModes.Edit
368
- });
369
- return;
370
- }
371
- var rowUpdate = apiRef.current.getRowWithUpdatedValuesFromRowEditing(id);
372
- if (processRowUpdate) {
373
- var handleError = function handleError(errorThrown) {
374
- prevRowModesModel.current[id].mode = GridRowModes.Edit;
375
- // Revert the mode in the rowModesModel prop back to "edit"
376
- updateRowInRowModesModel(id, {
377
- mode: GridRowModes.Edit
378
- });
379
- if (onProcessRowUpdateError) {
380
- onProcessRowUpdateError(errorThrown);
381
- } else if (process.env.NODE_ENV !== 'production') {
382
- missingOnProcessRowUpdateErrorWarning();
383
- }
384
- };
385
- try {
386
- Promise.resolve(processRowUpdate(rowUpdate, row)).then(function (finalRowUpdate) {
387
- apiRef.current.updateRows([finalRowUpdate]);
388
- finishRowEditMode();
389
- }).catch(handleError);
390
- } catch (errorThrown) {
391
- handleError(errorThrown);
392
- }
393
- } else {
394
- apiRef.current.updateRows([rowUpdate]);
395
- finishRowEditMode();
396
- }
397
- });
398
- var setRowEditingEditCellValue = React.useCallback(function (params) {
399
- var id = params.id,
400
- field = params.field,
401
- value = params.value,
402
- debounceMs = params.debounceMs,
403
- skipValueParser = params.unstable_skipValueParser;
404
- throwIfNotEditable(id, field);
405
- var column = apiRef.current.getColumn(field);
406
- var row = apiRef.current.getRow(id);
407
- var parsedValue = value;
408
- if (column.valueParser && !skipValueParser) {
409
- parsedValue = column.valueParser(value, row, column, apiRef);
410
- }
411
- var editingState = gridEditRowsStateSelector(apiRef.current.state);
412
- var newProps = _extends({}, editingState[id][field], {
413
- value: parsedValue,
414
- changeReason: debounceMs ? 'debouncedSetEditCellValue' : 'setEditCellValue'
415
- });
416
- if (!column.preProcessEditCellProps) {
417
- updateOrDeleteFieldState(id, field, newProps);
418
- }
419
- return new Promise(function (resolve) {
420
- var promises = [];
421
- if (column.preProcessEditCellProps) {
422
- var hasChanged = newProps.value !== editingState[id][field].value;
423
- newProps = _extends({}, newProps, {
424
- isProcessingProps: true
425
- });
426
- updateOrDeleteFieldState(id, field, newProps);
427
- var _editingState$id = editingState[id],
428
- ignoredField = _editingState$id[field],
429
- otherFieldsProps = _objectWithoutProperties(_editingState$id, [field].map(_toPropertyKey));
430
- var promise = Promise.resolve(column.preProcessEditCellProps({
431
- id: id,
432
- row: row,
433
- props: newProps,
434
- hasChanged: hasChanged,
435
- otherFieldsProps: otherFieldsProps
436
- })).then(function (processedProps) {
437
- // Check again if the row is in edit mode because the user may have
438
- // discarded the changes while the props were being processed.
439
- if (apiRef.current.getRowMode(id) === GridRowModes.View) {
440
- resolve(false);
441
- return;
442
- }
443
- editingState = gridEditRowsStateSelector(apiRef.current.state);
444
- processedProps = _extends({}, processedProps, {
445
- isProcessingProps: false
446
- });
447
- // We don't reuse the value from the props pre-processing because when the
448
- // promise resolves it may be already outdated. The only exception to this rule
449
- // is when there's no pre-processing.
450
- processedProps.value = column.preProcessEditCellProps ? editingState[id][field].value : parsedValue;
451
- updateOrDeleteFieldState(id, field, processedProps);
452
- });
453
- promises.push(promise);
454
- }
455
- Object.entries(editingState[id]).forEach(function (_ref) {
456
- var _ref2 = _slicedToArray(_ref, 2),
457
- thisField = _ref2[0],
458
- fieldProps = _ref2[1];
459
- if (thisField === field) {
460
- return;
461
- }
462
- var fieldColumn = apiRef.current.getColumn(thisField);
463
- if (!fieldColumn.preProcessEditCellProps) {
464
- return;
465
- }
466
- fieldProps = _extends({}, fieldProps, {
467
- isProcessingProps: true
468
- });
469
- updateOrDeleteFieldState(id, thisField, fieldProps);
470
- editingState = gridEditRowsStateSelector(apiRef.current.state);
471
- var _editingState$id2 = editingState[id],
472
- ignoredField = _editingState$id2[thisField],
473
- otherFieldsProps = _objectWithoutProperties(_editingState$id2, [thisField].map(_toPropertyKey));
474
- var promise = Promise.resolve(fieldColumn.preProcessEditCellProps({
475
- id: id,
476
- row: row,
477
- props: fieldProps,
478
- hasChanged: false,
479
- otherFieldsProps: otherFieldsProps
480
- })).then(function (processedProps) {
481
- // Check again if the row is in edit mode because the user may have
482
- // discarded the changes while the props were being processed.
483
- if (apiRef.current.getRowMode(id) === GridRowModes.View) {
484
- resolve(false);
485
- return;
486
- }
487
- processedProps = _extends({}, processedProps, {
488
- isProcessingProps: false
489
- });
490
- updateOrDeleteFieldState(id, thisField, processedProps);
491
- });
492
- promises.push(promise);
493
- });
494
- Promise.all(promises).then(function () {
495
- if (apiRef.current.getRowMode(id) === GridRowModes.Edit) {
496
- editingState = gridEditRowsStateSelector(apiRef.current.state);
497
- resolve(!editingState[id][field].error);
498
- } else {
499
- resolve(false);
500
- }
501
- });
502
- });
503
- }, [apiRef, throwIfNotEditable, updateOrDeleteFieldState]);
504
- var getRowWithUpdatedValuesFromRowEditing = React.useCallback(function (id) {
505
- var editingState = gridEditRowsStateSelector(apiRef.current.state);
506
- var row = apiRef.current.getRow(id);
507
- if (!editingState[id]) {
508
- return apiRef.current.getRow(id);
509
- }
510
- var rowUpdate = _extends({}, row);
511
- Object.entries(editingState[id]).forEach(function (_ref3) {
512
- var _ref4 = _slicedToArray(_ref3, 2),
513
- field = _ref4[0],
514
- fieldProps = _ref4[1];
515
- var column = apiRef.current.getColumn(field);
516
- if (column.valueSetter) {
517
- rowUpdate = column.valueSetter(fieldProps.value, rowUpdate, column, apiRef);
518
- } else {
519
- rowUpdate[field] = fieldProps.value;
520
- }
521
- });
522
- return rowUpdate;
523
- }, [apiRef]);
524
- var editingApi = {
525
- getRowMode: getRowMode,
526
- startRowEditMode: startRowEditMode,
527
- stopRowEditMode: stopRowEditMode
528
- };
529
- var editingPrivateApi = {
530
- setRowEditingEditCellValue: setRowEditingEditCellValue,
531
- getRowWithUpdatedValuesFromRowEditing: getRowWithUpdatedValuesFromRowEditing
532
- };
533
- useGridApiMethod(apiRef, editingApi, 'public');
534
- useGridApiMethod(apiRef, editingPrivateApi, 'private');
535
- React.useEffect(function () {
536
- if (rowModesModelProp) {
537
- updateRowModesModel(rowModesModelProp);
538
- }
539
- }, [rowModesModelProp, updateRowModesModel]);
540
-
541
- // Run this effect synchronously so that the keyboard event can impact the yet-to-be-rendered input.
542
- useEnhancedEffect(function () {
543
- var idToIdLookup = gridRowsDataRowIdToIdLookupSelector(apiRef);
544
-
545
- // Update the ref here because updateStateToStopRowEditMode may change it later
546
- var copyOfPrevRowModesModel = prevRowModesModel.current;
547
- prevRowModesModel.current = deepClone(rowModesModel); // Do a deep-clone because the attributes might be changed later
548
-
549
- Object.entries(rowModesModel).forEach(function (_ref5) {
550
- var _copyOfPrevRowModesMo, _idToIdLookup$id;
551
- var _ref6 = _slicedToArray(_ref5, 2),
552
- id = _ref6[0],
553
- params = _ref6[1];
554
- var prevMode = ((_copyOfPrevRowModesMo = copyOfPrevRowModesModel[id]) == null ? void 0 : _copyOfPrevRowModesMo.mode) || GridRowModes.View;
555
- var originalId = (_idToIdLookup$id = idToIdLookup[id]) != null ? _idToIdLookup$id : id;
556
- if (params.mode === GridRowModes.Edit && prevMode === GridRowModes.View) {
557
- updateStateToStartRowEditMode(_extends({
558
- id: originalId
559
- }, params));
560
- } else if (params.mode === GridRowModes.View && prevMode === GridRowModes.Edit) {
561
- updateStateToStopRowEditMode(_extends({
562
- id: originalId
563
- }, params));
564
- }
565
- });
566
- }, [apiRef, rowModesModel, updateStateToStartRowEditMode, updateStateToStopRowEditMode]);
567
- };
@@ -1,23 +0,0 @@
1
- import { useGridApiOptionHandler } from '../../utils/useGridApiEventHandler';
2
- /**
3
- * @requires useGridFocus (event) - can be after, async only
4
- * @requires useGridColumns (event) - can be after, async only
5
- */
6
- export function useGridEvents(apiRef, props) {
7
- useGridApiOptionHandler(apiRef, 'columnHeaderClick', props.onColumnHeaderClick);
8
- useGridApiOptionHandler(apiRef, 'columnHeaderDoubleClick', props.onColumnHeaderDoubleClick);
9
- useGridApiOptionHandler(apiRef, 'columnHeaderOver', props.onColumnHeaderOver);
10
- useGridApiOptionHandler(apiRef, 'columnHeaderOut', props.onColumnHeaderOut);
11
- useGridApiOptionHandler(apiRef, 'columnHeaderEnter', props.onColumnHeaderEnter);
12
- useGridApiOptionHandler(apiRef, 'columnHeaderLeave', props.onColumnHeaderLeave);
13
- useGridApiOptionHandler(apiRef, 'cellClick', props.onCellClick);
14
- useGridApiOptionHandler(apiRef, 'cellDoubleClick', props.onCellDoubleClick);
15
- useGridApiOptionHandler(apiRef, 'cellKeyDown', props.onCellKeyDown);
16
- useGridApiOptionHandler(apiRef, 'preferencePanelClose', props.onPreferencePanelClose);
17
- useGridApiOptionHandler(apiRef, 'preferencePanelOpen', props.onPreferencePanelOpen);
18
- useGridApiOptionHandler(apiRef, 'menuOpen', props.onMenuOpen);
19
- useGridApiOptionHandler(apiRef, 'menuClose', props.onMenuClose);
20
- useGridApiOptionHandler(apiRef, 'rowDoubleClick', props.onRowDoubleClick);
21
- useGridApiOptionHandler(apiRef, 'rowClick', props.onRowClick);
22
- useGridApiOptionHandler(apiRef, 'stateChange', props.onStateChange);
23
- }