@mui/x-data-grid 5.7.0 → 5.10.0

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 (524) hide show
  1. package/CHANGELOG.md +241 -53
  2. package/DataGrid/DataGrid.d.ts +8 -3
  3. package/DataGrid/DataGrid.js +28 -5
  4. package/DataGrid/useDataGridComponent.js +5 -5
  5. package/DataGrid/useDataGridProps.d.ts +2 -1
  6. package/LICENSE +21 -0
  7. package/README.md +6 -4
  8. package/colDef/gridBooleanColDef.d.ts +1 -1
  9. package/colDef/gridBooleanOperators.d.ts +1 -1
  10. package/colDef/gridDateColDef.d.ts +5 -9
  11. package/colDef/gridDateColDef.js +2 -2
  12. package/colDef/gridDateOperators.d.ts +1 -1
  13. package/{models/colDef → colDef}/gridDefaultColumnTypes.d.ts +1 -1
  14. package/{models/colDef → colDef}/gridDefaultColumnTypes.js +6 -6
  15. package/colDef/gridNumericColDef.d.ts +1 -1
  16. package/colDef/gridNumericOperators.d.ts +2 -2
  17. package/colDef/gridStringColDef.d.ts +1 -1
  18. package/colDef/gridStringOperators.d.ts +1 -1
  19. package/colDef/index.d.ts +1 -0
  20. package/colDef/index.js +2 -1
  21. package/components/GridRow.d.ts +4 -0
  22. package/components/GridRow.js +55 -24
  23. package/components/base/GridOverlays.js +4 -3
  24. package/components/cell/GridActionsCell.d.ts +5 -1
  25. package/components/cell/GridActionsCell.js +170 -21
  26. package/components/cell/GridActionsCellItem.d.ts +66 -4
  27. package/components/cell/GridActionsCellItem.js +7 -5
  28. package/components/cell/GridCell.d.ts +5 -4
  29. package/components/cell/GridCell.js +30 -9
  30. package/components/cell/GridEditInputCell.js +3 -3
  31. package/components/cell/GridEditSingleSelectCell.js +24 -15
  32. package/components/columnHeaders/GridColumnHeaderFilterIconButton.d.ts +12 -0
  33. package/components/columnHeaders/{ColumnHeaderFilterIcon.js → GridColumnHeaderFilterIconButton.js} +22 -4
  34. package/components/columnHeaders/GridColumnHeaderItem.js +9 -12
  35. package/components/columnHeaders/GridColumnHeaders.d.ts +0 -1
  36. package/components/columnHeaders/GridColumnHeaders.js +1 -1
  37. package/components/columnHeaders/index.d.ts +1 -0
  38. package/components/columnHeaders/index.js +1 -0
  39. package/components/columnSelection/GridCellCheckboxRenderer.d.ts +3 -3
  40. package/components/columnSelection/GridCellCheckboxRenderer.js +22 -5
  41. package/components/columnSelection/GridHeaderCheckbox.d.ts +1 -1
  42. package/components/containers/GridRoot.js +29 -17
  43. package/components/containers/GridRootStyles.js +36 -1
  44. package/components/menu/GridMenu.js +1 -0
  45. package/components/menu/columnMenu/GridColumnMenu.js +1 -1
  46. package/components/panel/GridPanel.d.ts +2 -2
  47. package/components/panel/GridPanel.js +1 -0
  48. package/components/panel/GridPreferencesPanel.js +1 -1
  49. package/components/panel/filterPanel/GridFilterForm.js +14 -10
  50. package/components/panel/filterPanel/GridFilterInputBoolean.js +13 -8
  51. package/components/panel/filterPanel/GridFilterInputSingleSelect.js +22 -15
  52. package/components/panel/filterPanel/GridFilterInputValue.js +22 -15
  53. package/components/toolbar/GridToolbarDensitySelector.js +1 -1
  54. package/components/toolbar/GridToolbarFilterButton.d.ts +1 -1
  55. package/components/virtualization/GridVirtualScroller.js +2 -0
  56. package/components/virtualization/GridVirtualScrollerContent.js +1 -3
  57. package/constants/defaultGridSlotsComponents.js +4 -2
  58. package/constants/gridClasses.d.ts +35 -3
  59. package/constants/gridClasses.js +1 -1
  60. package/constants/gridDetailPanelToggleField.d.ts +1 -0
  61. package/constants/gridDetailPanelToggleField.js +2 -0
  62. package/constants/localeTextConstants.js +3 -1
  63. package/hooks/core/index.d.ts +1 -1
  64. package/hooks/core/pipeProcessing/gridPipeProcessingApi.d.ts +85 -0
  65. package/hooks/core/{preProcessing/gridPreProcessingApi.js → pipeProcessing/gridPipeProcessingApi.js} +0 -0
  66. package/hooks/core/pipeProcessing/index.d.ts +4 -0
  67. package/hooks/core/pipeProcessing/index.js +4 -0
  68. package/hooks/core/pipeProcessing/useGridPipeProcessing.d.ts +32 -0
  69. package/hooks/core/pipeProcessing/useGridPipeProcessing.js +108 -0
  70. package/hooks/core/pipeProcessing/useGridRegisterPipeApplier.d.ts +3 -0
  71. package/{modern/hooks/core/preProcessing/useGridRegisterPreProcessor.js → hooks/core/pipeProcessing/useGridRegisterPipeApplier.js} +2 -6
  72. package/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.d.ts +4 -0
  73. package/hooks/core/{preProcessing/useGridRegisterPreProcessor.js → pipeProcessing/useGridRegisterPipeProcessor.js} +2 -6
  74. package/hooks/core/strategyProcessing/useGridStrategyProcessing.d.ts +27 -16
  75. package/hooks/core/strategyProcessing/useGridStrategyProcessing.js +26 -15
  76. package/hooks/core/useGridInitialization.js +2 -2
  77. package/hooks/features/columnHeaders/useGridColumnHeaders.d.ts +0 -1
  78. package/hooks/features/columnHeaders/useGridColumnHeaders.js +77 -11
  79. package/hooks/features/columnMenu/useGridColumnMenu.js +2 -1
  80. package/hooks/features/columns/gridColumnsInterfaces.d.ts +3 -1
  81. package/hooks/features/columns/gridColumnsSelector.d.ts +6 -6
  82. package/hooks/features/columns/gridColumnsUtils.d.ts +22 -4
  83. package/hooks/features/columns/gridColumnsUtils.js +105 -20
  84. package/hooks/features/columns/useGridColumnSpanning.d.ts +7 -0
  85. package/hooks/features/columns/useGridColumnSpanning.js +109 -0
  86. package/hooks/features/columns/useGridColumns.d.ts +1 -1
  87. package/hooks/features/columns/useGridColumns.js +55 -40
  88. package/hooks/features/dimensions/gridDimensionsApi.d.ts +5 -0
  89. package/hooks/features/dimensions/useGridDimensions.js +5 -4
  90. package/hooks/features/editRows/useGridCellEditing.new.d.ts +1 -1
  91. package/hooks/features/editRows/useGridCellEditing.new.js +40 -17
  92. package/hooks/features/editRows/useGridEditing.new.js +7 -3
  93. package/hooks/features/editRows/useGridRowEditing.new.d.ts +1 -1
  94. package/hooks/features/editRows/useGridRowEditing.new.js +44 -21
  95. package/hooks/features/events/useGridEvents.d.ts +1 -1
  96. package/hooks/features/events/useGridEvents.js +2 -0
  97. package/hooks/features/filter/gridFilterSelector.d.ts +3 -9
  98. package/hooks/features/filter/useGridFilter.js +18 -13
  99. package/hooks/features/focus/useGridFocus.js +19 -9
  100. package/hooks/features/{keyboard → keyboardNavigation}/useGridKeyboardNavigation.d.ts +3 -5
  101. package/hooks/features/{keyboard → keyboardNavigation}/useGridKeyboardNavigation.js +66 -13
  102. package/hooks/features/pagination/gridPaginationSelector.d.ts +1 -3
  103. package/hooks/features/pagination/useGridPage.js +9 -4
  104. package/hooks/features/pagination/useGridPageSize.js +3 -3
  105. package/hooks/features/preferencesPanel/useGridPreferencesPanel.js +18 -5
  106. package/hooks/features/rows/gridRowsSelector.d.ts +2 -1
  107. package/hooks/features/rows/gridRowsSelector.js +1 -0
  108. package/hooks/features/rows/gridRowsState.d.ts +4 -0
  109. package/hooks/features/rows/gridRowsUtils.d.ts +8 -0
  110. package/hooks/features/rows/gridRowsUtils.js +11 -0
  111. package/hooks/features/rows/index.d.ts +1 -0
  112. package/hooks/features/rows/index.js +1 -1
  113. package/hooks/features/rows/useGridRows.d.ts +2 -2
  114. package/hooks/features/rows/useGridRows.js +27 -7
  115. package/hooks/features/rows/useGridRowsMeta.js +7 -14
  116. package/hooks/features/scroll/useGridScroll.d.ts +2 -0
  117. package/hooks/features/scroll/useGridScroll.js +27 -14
  118. package/hooks/features/selection/gridSelectionSelector.d.ts +1 -3
  119. package/hooks/features/selection/useGridSelection.d.ts +4 -2
  120. package/hooks/features/selection/useGridSelection.js +75 -27
  121. package/hooks/features/selection/useGridSelectionPreProcessors.js +2 -2
  122. package/hooks/features/sorting/gridSortingSelector.d.ts +1 -3
  123. package/hooks/features/sorting/gridSortingUtils.d.ts +1 -2
  124. package/hooks/features/sorting/useGridSorting.js +13 -13
  125. package/hooks/features/statePersistence/useGridStatePersistence.js +2 -2
  126. package/hooks/features/virtualization/useGridVirtualScroller.d.ts +9 -0
  127. package/hooks/features/virtualization/useGridVirtualScroller.js +64 -27
  128. package/hooks/utils/useGridRootProps.d.ts +1 -1
  129. package/hooks/utils/useGridVisibleRows.d.ts +2 -2
  130. package/index.js +1 -1
  131. package/internals/index.d.ts +4 -6
  132. package/internals/index.js +3 -3
  133. package/legacy/DataGrid/DataGrid.js +28 -5
  134. package/legacy/DataGrid/useDataGridComponent.js +5 -5
  135. package/legacy/colDef/gridDateColDef.js +2 -2
  136. package/legacy/{models/colDef → colDef}/gridDefaultColumnTypes.js +6 -6
  137. package/legacy/colDef/index.js +2 -1
  138. package/legacy/components/GridRow.js +53 -24
  139. package/legacy/components/base/GridOverlays.js +4 -3
  140. package/legacy/components/cell/GridActionsCell.js +188 -27
  141. package/legacy/components/cell/GridActionsCellItem.js +7 -5
  142. package/legacy/components/cell/GridCell.js +31 -9
  143. package/legacy/components/cell/GridEditInputCell.js +3 -3
  144. package/legacy/components/cell/GridEditSingleSelectCell.js +35 -26
  145. package/legacy/components/columnHeaders/{ColumnHeaderFilterIcon.js → GridColumnHeaderFilterIconButton.js} +22 -4
  146. package/legacy/components/columnHeaders/GridColumnHeaderItem.js +9 -12
  147. package/legacy/components/columnHeaders/GridColumnHeaders.js +2 -3
  148. package/legacy/components/columnHeaders/index.js +1 -0
  149. package/legacy/components/columnSelection/GridCellCheckboxRenderer.js +23 -5
  150. package/legacy/components/containers/GridRoot.js +34 -17
  151. package/legacy/components/containers/GridRootStyles.js +26 -5
  152. package/legacy/components/menu/GridMenu.js +1 -0
  153. package/legacy/components/menu/columnMenu/GridColumnMenu.js +1 -1
  154. package/legacy/components/panel/GridPanel.js +1 -0
  155. package/legacy/components/panel/GridPreferencesPanel.js +1 -1
  156. package/legacy/components/panel/filterPanel/GridFilterForm.js +14 -10
  157. package/legacy/components/panel/filterPanel/GridFilterInputBoolean.js +13 -8
  158. package/legacy/components/panel/filterPanel/GridFilterInputSingleSelect.js +22 -17
  159. package/legacy/components/panel/filterPanel/GridFilterInputValue.js +22 -17
  160. package/legacy/components/toolbar/GridToolbarDensitySelector.js +1 -1
  161. package/legacy/components/virtualization/GridVirtualScroller.js +2 -0
  162. package/legacy/components/virtualization/GridVirtualScrollerContent.js +1 -3
  163. package/legacy/constants/defaultGridSlotsComponents.js +4 -2
  164. package/legacy/constants/gridClasses.js +1 -1
  165. package/legacy/constants/gridDetailPanelToggleField.js +2 -0
  166. package/legacy/constants/localeTextConstants.js +3 -1
  167. package/legacy/hooks/core/{preProcessing/gridPreProcessingApi.js → pipeProcessing/gridPipeProcessingApi.js} +0 -0
  168. package/legacy/hooks/core/pipeProcessing/index.js +4 -0
  169. package/legacy/hooks/core/pipeProcessing/useGridPipeProcessing.js +119 -0
  170. package/legacy/hooks/core/{preProcessing/useGridRegisterPreProcessor.js → pipeProcessing/useGridRegisterPipeApplier.js} +2 -6
  171. package/legacy/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.js +27 -0
  172. package/legacy/hooks/core/strategyProcessing/useGridStrategyProcessing.js +26 -15
  173. package/legacy/hooks/core/useGridInitialization.js +2 -2
  174. package/legacy/hooks/features/columnHeaders/useGridColumnHeaders.js +90 -11
  175. package/legacy/hooks/features/columnMenu/useGridColumnMenu.js +2 -1
  176. package/legacy/hooks/features/columns/gridColumnsUtils.js +120 -32
  177. package/legacy/hooks/features/columns/useGridColumnSpanning.js +107 -0
  178. package/legacy/hooks/features/columns/useGridColumns.js +55 -40
  179. package/legacy/hooks/features/dimensions/useGridDimensions.js +5 -4
  180. package/legacy/hooks/features/editRows/useGridCellEditing.new.js +36 -15
  181. package/legacy/hooks/features/editRows/useGridEditing.new.js +7 -3
  182. package/legacy/hooks/features/editRows/useGridRowEditing.new.js +53 -30
  183. package/legacy/hooks/features/events/useGridEvents.js +2 -0
  184. package/legacy/hooks/features/filter/useGridFilter.js +18 -13
  185. package/legacy/hooks/features/focus/useGridFocus.js +19 -9
  186. package/legacy/hooks/features/{keyboard → keyboardNavigation}/useGridKeyboardNavigation.js +66 -12
  187. package/legacy/hooks/features/pagination/useGridPage.js +11 -4
  188. package/legacy/hooks/features/pagination/useGridPageSize.js +3 -3
  189. package/legacy/hooks/features/preferencesPanel/useGridPreferencesPanel.js +18 -5
  190. package/legacy/hooks/features/rows/gridRowsSelector.js +3 -0
  191. package/legacy/hooks/features/rows/gridRowsUtils.js +13 -0
  192. package/legacy/hooks/features/rows/index.js +1 -1
  193. package/legacy/hooks/features/rows/useGridRows.js +35 -9
  194. package/legacy/hooks/features/rows/useGridRowsMeta.js +7 -14
  195. package/legacy/hooks/features/scroll/useGridScroll.js +27 -14
  196. package/legacy/hooks/features/selection/useGridSelection.js +77 -27
  197. package/legacy/hooks/features/selection/useGridSelectionPreProcessors.js +2 -2
  198. package/legacy/hooks/features/sorting/useGridSorting.js +8 -10
  199. package/legacy/hooks/features/statePersistence/useGridStatePersistence.js +2 -2
  200. package/legacy/hooks/features/virtualization/useGridVirtualScroller.js +75 -37
  201. package/legacy/index.js +1 -1
  202. package/legacy/internals/index.js +3 -3
  203. package/legacy/locales/arSD.js +3 -1
  204. package/legacy/locales/bgBG.js +3 -1
  205. package/legacy/locales/csCZ.js +2 -0
  206. package/legacy/locales/daDK.js +37 -31
  207. package/legacy/locales/deDE.js +3 -1
  208. package/legacy/locales/elGR.js +2 -0
  209. package/legacy/locales/esES.js +2 -0
  210. package/legacy/locales/faIR.js +3 -1
  211. package/legacy/locales/fiFI.js +2 -0
  212. package/legacy/locales/frFR.js +2 -0
  213. package/legacy/locales/heIL.js +3 -1
  214. package/legacy/locales/huHU.js +122 -0
  215. package/legacy/locales/index.js +1 -0
  216. package/legacy/locales/itIT.js +2 -0
  217. package/legacy/locales/jaJP.js +2 -0
  218. package/legacy/locales/koKR.js +2 -0
  219. package/legacy/locales/nlNL.js +2 -0
  220. package/legacy/locales/plPL.js +3 -1
  221. package/legacy/locales/ptBR.js +3 -1
  222. package/legacy/locales/ruRU.js +2 -0
  223. package/legacy/locales/skSK.js +2 -0
  224. package/legacy/locales/trTR.js +3 -1
  225. package/legacy/locales/ukUA.js +2 -0
  226. package/legacy/locales/viVN.js +2 -0
  227. package/legacy/locales/zhCN.js +2 -0
  228. package/{modern/hooks/core/preProcessing/gridPreProcessingApi.js → legacy/models/api/gridColumnSpanning.js} +0 -0
  229. package/legacy/models/colDef/index.js +1 -2
  230. package/legacy/models/events/gridEvents.js +10 -3
  231. package/legacy/models/gridColumnSpanning.js +1 -0
  232. package/legacy/models/gridRows.js +1 -33
  233. package/legacy/models/index.js +2 -2
  234. package/legacy/models/params/gridPreferencePanelParams.js +1 -0
  235. package/legacy/models/params/index.js +2 -1
  236. package/locales/arSD.js +3 -1
  237. package/locales/bgBG.js +3 -1
  238. package/locales/csCZ.js +2 -0
  239. package/locales/daDK.js +33 -31
  240. package/locales/deDE.js +3 -1
  241. package/locales/elGR.js +2 -0
  242. package/locales/esES.js +2 -0
  243. package/locales/faIR.js +3 -1
  244. package/locales/fiFI.js +2 -0
  245. package/locales/frFR.js +2 -0
  246. package/locales/heIL.js +3 -1
  247. package/locales/huHU.d.ts +2 -0
  248. package/locales/huHU.js +110 -0
  249. package/locales/index.d.ts +1 -0
  250. package/locales/index.js +1 -0
  251. package/locales/itIT.js +2 -0
  252. package/locales/jaJP.js +2 -0
  253. package/locales/koKR.js +2 -0
  254. package/locales/nlNL.js +2 -0
  255. package/locales/plPL.js +3 -1
  256. package/locales/ptBR.js +3 -1
  257. package/locales/ruRU.js +2 -0
  258. package/locales/skSK.js +2 -0
  259. package/locales/trTR.js +3 -1
  260. package/locales/ukUA.js +2 -0
  261. package/locales/viVN.js +2 -0
  262. package/locales/zhCN.js +2 -0
  263. package/models/api/gridApiCommon.d.ts +3 -2
  264. package/models/api/gridColumnSpanning.d.ts +28 -0
  265. package/models/api/gridColumnSpanning.js +1 -0
  266. package/models/api/gridEditingApi.d.ts +51 -5
  267. package/models/api/gridLocaleTextApi.d.ts +1 -0
  268. package/models/api/gridParamsApi.d.ts +5 -5
  269. package/models/api/gridRowApi.d.ts +8 -2
  270. package/models/colDef/gridColDef.d.ts +38 -28
  271. package/models/colDef/index.d.ts +0 -1
  272. package/models/colDef/index.js +1 -2
  273. package/models/events/gridEventLookup.d.ts +30 -9
  274. package/models/events/gridEvents.d.ts +50 -17
  275. package/models/events/gridEvents.js +10 -3
  276. package/models/gridCell.d.ts +1 -0
  277. package/models/gridColumnSpanning.d.ts +12 -0
  278. package/models/gridColumnSpanning.js +1 -0
  279. package/models/gridEditRowModel.d.ts +1 -1
  280. package/models/gridFilterOperator.d.ts +3 -2
  281. package/models/gridIconSlotsComponent.d.ts +5 -0
  282. package/models/gridRows.d.ts +10 -18
  283. package/models/gridRows.js +1 -31
  284. package/models/gridSlotsComponent.d.ts +5 -0
  285. package/models/gridSlotsComponentsProps.d.ts +1 -0
  286. package/models/gridSortModel.d.ts +3 -4
  287. package/models/index.d.ts +1 -1
  288. package/models/index.js +2 -2
  289. package/models/params/gridCellParams.d.ts +25 -15
  290. package/models/params/gridColumnHeaderParams.d.ts +3 -2
  291. package/models/params/gridEditCellParams.d.ts +2 -3
  292. package/models/params/gridPreferencePanelParams.d.ts +3 -0
  293. package/models/params/gridPreferencePanelParams.js +1 -0
  294. package/models/params/gridRowParams.d.ts +12 -8
  295. package/models/params/gridValueOptionsParams.d.ts +3 -3
  296. package/models/params/index.d.ts +1 -0
  297. package/models/params/index.js +2 -1
  298. package/models/props/DataGridProps.d.ts +37 -17
  299. package/modern/DataGrid/DataGrid.js +28 -5
  300. package/modern/DataGrid/useDataGridComponent.js +5 -5
  301. package/modern/colDef/gridDateColDef.js +2 -2
  302. package/modern/{models/colDef → colDef}/gridDefaultColumnTypes.js +6 -6
  303. package/modern/colDef/index.js +2 -1
  304. package/modern/components/GridRow.js +53 -22
  305. package/modern/components/base/GridOverlays.js +4 -3
  306. package/modern/components/cell/GridActionsCell.js +168 -21
  307. package/modern/components/cell/GridActionsCellItem.js +7 -5
  308. package/modern/components/cell/GridCell.js +30 -9
  309. package/modern/components/cell/GridEditInputCell.js +3 -3
  310. package/modern/components/cell/GridEditSingleSelectCell.js +22 -13
  311. package/modern/components/columnHeaders/{ColumnHeaderFilterIcon.js → GridColumnHeaderFilterIconButton.js} +22 -4
  312. package/modern/components/columnHeaders/GridColumnHeaderItem.js +7 -10
  313. package/modern/components/columnHeaders/GridColumnHeaders.js +1 -1
  314. package/modern/components/columnHeaders/index.js +1 -0
  315. package/modern/components/columnSelection/GridCellCheckboxRenderer.js +22 -5
  316. package/modern/components/containers/GridRoot.js +29 -17
  317. package/modern/components/containers/GridRootStyles.js +36 -1
  318. package/modern/components/menu/GridMenu.js +1 -0
  319. package/modern/components/menu/columnMenu/GridColumnMenu.js +1 -1
  320. package/modern/components/panel/GridPanel.js +1 -0
  321. package/modern/components/panel/GridPreferencesPanel.js +1 -1
  322. package/modern/components/panel/filterPanel/GridFilterForm.js +10 -6
  323. package/modern/components/panel/filterPanel/GridFilterInputBoolean.js +11 -6
  324. package/modern/components/panel/filterPanel/GridFilterInputSingleSelect.js +20 -13
  325. package/modern/components/panel/filterPanel/GridFilterInputValue.js +20 -13
  326. package/modern/components/toolbar/GridToolbarDensitySelector.js +1 -1
  327. package/modern/components/virtualization/GridVirtualScroller.js +2 -0
  328. package/modern/components/virtualization/GridVirtualScrollerContent.js +1 -3
  329. package/modern/constants/defaultGridSlotsComponents.js +4 -2
  330. package/modern/constants/gridClasses.js +1 -1
  331. package/modern/constants/gridDetailPanelToggleField.js +2 -0
  332. package/modern/constants/localeTextConstants.js +3 -1
  333. package/modern/hooks/core/pipeProcessing/gridPipeProcessingApi.js +1 -0
  334. package/modern/hooks/core/pipeProcessing/index.js +4 -0
  335. package/modern/hooks/core/pipeProcessing/useGridPipeProcessing.js +108 -0
  336. package/modern/hooks/core/pipeProcessing/useGridRegisterPipeApplier.js +27 -0
  337. package/modern/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.js +27 -0
  338. package/modern/hooks/core/strategyProcessing/useGridStrategyProcessing.js +26 -15
  339. package/modern/hooks/core/useGridInitialization.js +2 -2
  340. package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +77 -11
  341. package/modern/hooks/features/columnMenu/useGridColumnMenu.js +2 -1
  342. package/modern/hooks/features/columns/gridColumnsUtils.js +105 -20
  343. package/modern/hooks/features/columns/useGridColumnSpanning.js +107 -0
  344. package/modern/hooks/features/columns/useGridColumns.js +55 -40
  345. package/modern/hooks/features/dimensions/useGridDimensions.js +5 -4
  346. package/modern/hooks/features/editRows/useGridCellEditing.new.js +40 -17
  347. package/modern/hooks/features/editRows/useGridEditing.new.js +7 -3
  348. package/modern/hooks/features/editRows/useGridRowEditing.new.js +44 -21
  349. package/modern/hooks/features/events/useGridEvents.js +2 -0
  350. package/modern/hooks/features/filter/useGridFilter.js +18 -13
  351. package/modern/hooks/features/focus/useGridFocus.js +19 -9
  352. package/modern/hooks/features/{keyboard → keyboardNavigation}/useGridKeyboardNavigation.js +64 -13
  353. package/modern/hooks/features/pagination/useGridPage.js +9 -4
  354. package/modern/hooks/features/pagination/useGridPageSize.js +3 -3
  355. package/modern/hooks/features/preferencesPanel/useGridPreferencesPanel.js +18 -5
  356. package/modern/hooks/features/rows/gridRowsSelector.js +1 -0
  357. package/modern/hooks/features/rows/gridRowsUtils.js +11 -0
  358. package/modern/hooks/features/rows/index.js +1 -1
  359. package/modern/hooks/features/rows/useGridRows.js +25 -5
  360. package/modern/hooks/features/rows/useGridRowsMeta.js +7 -14
  361. package/modern/hooks/features/scroll/useGridScroll.js +25 -10
  362. package/modern/hooks/features/selection/useGridSelection.js +75 -27
  363. package/modern/hooks/features/selection/useGridSelectionPreProcessors.js +2 -2
  364. package/modern/hooks/features/sorting/useGridSorting.js +13 -13
  365. package/modern/hooks/features/statePersistence/useGridStatePersistence.js +2 -2
  366. package/modern/hooks/features/virtualization/useGridVirtualScroller.js +64 -23
  367. package/modern/index.js +1 -1
  368. package/modern/internals/index.js +3 -3
  369. package/modern/locales/arSD.js +3 -1
  370. package/modern/locales/bgBG.js +3 -1
  371. package/modern/locales/csCZ.js +2 -0
  372. package/modern/locales/daDK.js +33 -31
  373. package/modern/locales/deDE.js +3 -1
  374. package/modern/locales/elGR.js +2 -0
  375. package/modern/locales/esES.js +2 -0
  376. package/modern/locales/faIR.js +3 -1
  377. package/modern/locales/fiFI.js +2 -0
  378. package/modern/locales/frFR.js +2 -0
  379. package/modern/locales/heIL.js +3 -1
  380. package/modern/locales/huHU.js +110 -0
  381. package/modern/locales/index.js +1 -0
  382. package/modern/locales/itIT.js +2 -0
  383. package/modern/locales/jaJP.js +2 -0
  384. package/modern/locales/koKR.js +2 -0
  385. package/modern/locales/nlNL.js +2 -0
  386. package/modern/locales/plPL.js +3 -1
  387. package/modern/locales/ptBR.js +3 -1
  388. package/modern/locales/ruRU.js +2 -0
  389. package/modern/locales/skSK.js +2 -0
  390. package/modern/locales/trTR.js +3 -1
  391. package/modern/locales/ukUA.js +2 -0
  392. package/modern/locales/viVN.js +2 -0
  393. package/modern/locales/zhCN.js +2 -0
  394. package/modern/models/api/gridColumnSpanning.js +1 -0
  395. package/modern/models/colDef/index.js +1 -2
  396. package/modern/models/events/gridEvents.js +10 -3
  397. package/modern/models/gridColumnSpanning.js +1 -0
  398. package/modern/models/gridRows.js +1 -31
  399. package/modern/models/index.js +2 -2
  400. package/modern/models/params/gridPreferencePanelParams.js +1 -0
  401. package/modern/models/params/index.js +2 -1
  402. package/node/DataGrid/DataGrid.js +28 -5
  403. package/node/DataGrid/useDataGridComponent.js +6 -6
  404. package/node/colDef/gridDateColDef.js +2 -2
  405. package/node/{models/colDef → colDef}/gridDefaultColumnTypes.js +6 -6
  406. package/node/colDef/index.js +13 -0
  407. package/node/components/GridRow.js +56 -24
  408. package/node/components/base/GridOverlays.js +3 -2
  409. package/node/components/cell/GridActionsCell.js +172 -21
  410. package/node/components/cell/GridActionsCellItem.js +7 -4
  411. package/node/components/cell/GridCell.js +30 -9
  412. package/node/components/cell/GridEditInputCell.js +3 -3
  413. package/node/components/cell/GridEditSingleSelectCell.js +25 -15
  414. package/node/components/columnHeaders/{ColumnHeaderFilterIcon.js → GridColumnHeaderFilterIconButton.js} +23 -5
  415. package/node/components/columnHeaders/GridColumnHeaderItem.js +9 -13
  416. package/node/components/columnHeaders/GridColumnHeaders.js +1 -1
  417. package/node/components/columnHeaders/index.js +13 -0
  418. package/node/components/columnSelection/GridCellCheckboxRenderer.js +22 -5
  419. package/node/components/containers/GridRoot.js +28 -17
  420. package/node/components/containers/GridRootStyles.js +36 -1
  421. package/node/components/menu/GridMenu.js +1 -0
  422. package/node/components/menu/columnMenu/GridColumnMenu.js +1 -1
  423. package/node/components/panel/GridPanel.js +1 -0
  424. package/node/components/panel/GridPreferencesPanel.js +1 -1
  425. package/node/components/panel/filterPanel/GridFilterForm.js +15 -10
  426. package/node/components/panel/filterPanel/GridFilterInputBoolean.js +14 -8
  427. package/node/components/panel/filterPanel/GridFilterInputSingleSelect.js +23 -15
  428. package/node/components/panel/filterPanel/GridFilterInputValue.js +23 -15
  429. package/node/components/toolbar/GridToolbarDensitySelector.js +1 -1
  430. package/node/components/virtualization/GridVirtualScroller.js +2 -0
  431. package/node/components/virtualization/GridVirtualScrollerContent.js +1 -3
  432. package/node/constants/defaultGridSlotsComponents.js +3 -1
  433. package/node/constants/gridClasses.js +1 -1
  434. package/node/constants/gridDetailPanelToggleField.js +9 -0
  435. package/node/constants/localeTextConstants.js +3 -1
  436. package/node/hooks/core/{preProcessing/gridPreProcessingApi.js → pipeProcessing/gridPipeProcessingApi.js} +0 -0
  437. package/node/hooks/core/pipeProcessing/index.js +57 -0
  438. package/node/hooks/core/pipeProcessing/useGridPipeProcessing.js +124 -0
  439. package/node/hooks/core/{preProcessing/useGridRegisterPreProcessor.js → pipeProcessing/useGridRegisterPipeApplier.js} +4 -7
  440. package/node/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.js +42 -0
  441. package/node/hooks/core/strategyProcessing/useGridStrategyProcessing.js +26 -15
  442. package/node/hooks/core/useGridInitialization.js +2 -2
  443. package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +81 -11
  444. package/node/hooks/features/columnMenu/useGridColumnMenu.js +2 -1
  445. package/node/hooks/features/columns/gridColumnsUtils.js +114 -25
  446. package/node/hooks/features/columns/useGridColumnSpanning.js +130 -0
  447. package/node/hooks/features/columns/useGridColumns.js +55 -40
  448. package/node/hooks/features/dimensions/useGridDimensions.js +5 -4
  449. package/node/hooks/features/editRows/useGridCellEditing.new.js +42 -17
  450. package/node/hooks/features/editRows/useGridEditing.new.js +6 -2
  451. package/node/hooks/features/editRows/useGridRowEditing.new.js +45 -21
  452. package/node/hooks/features/events/useGridEvents.js +2 -0
  453. package/node/hooks/features/filter/useGridFilter.js +18 -13
  454. package/node/hooks/features/focus/useGridFocus.js +19 -9
  455. package/node/hooks/features/{keyboard → keyboardNavigation}/useGridKeyboardNavigation.js +69 -13
  456. package/node/hooks/features/pagination/useGridPage.js +8 -3
  457. package/node/hooks/features/pagination/useGridPageSize.js +3 -3
  458. package/node/hooks/features/preferencesPanel/useGridPreferencesPanel.js +20 -5
  459. package/node/hooks/features/rows/gridRowsSelector.js +3 -1
  460. package/node/hooks/features/rows/gridRowsUtils.js +18 -0
  461. package/node/hooks/features/rows/index.js +15 -1
  462. package/node/hooks/features/rows/useGridRows.js +29 -9
  463. package/node/hooks/features/rows/useGridRowsMeta.js +7 -15
  464. package/node/hooks/features/scroll/useGridScroll.js +28 -14
  465. package/node/hooks/features/selection/useGridSelection.js +75 -26
  466. package/node/hooks/features/selection/useGridSelectionPreProcessors.js +2 -2
  467. package/node/hooks/features/sorting/useGridSorting.js +13 -13
  468. package/node/hooks/features/statePersistence/useGridStatePersistence.js +2 -2
  469. package/node/hooks/features/virtualization/useGridVirtualScroller.js +69 -27
  470. package/node/index.js +1 -1
  471. package/node/internals/index.js +12 -12
  472. package/node/locales/arSD.js +3 -1
  473. package/node/locales/bgBG.js +3 -1
  474. package/node/locales/csCZ.js +2 -0
  475. package/node/locales/daDK.js +33 -31
  476. package/node/locales/deDE.js +3 -1
  477. package/node/locales/elGR.js +2 -0
  478. package/node/locales/esES.js +2 -0
  479. package/node/locales/faIR.js +3 -1
  480. package/node/locales/fiFI.js +2 -0
  481. package/node/locales/frFR.js +2 -0
  482. package/node/locales/heIL.js +3 -1
  483. package/node/locales/huHU.js +120 -0
  484. package/node/locales/index.js +13 -0
  485. package/node/locales/itIT.js +2 -0
  486. package/node/locales/jaJP.js +2 -0
  487. package/node/locales/koKR.js +2 -0
  488. package/node/locales/nlNL.js +2 -0
  489. package/node/locales/plPL.js +3 -1
  490. package/node/locales/ptBR.js +3 -1
  491. package/node/locales/ruRU.js +2 -0
  492. package/node/locales/skSK.js +2 -0
  493. package/node/locales/trTR.js +3 -1
  494. package/node/locales/ukUA.js +2 -0
  495. package/node/locales/viVN.js +2 -0
  496. package/node/locales/zhCN.js +2 -0
  497. package/node/models/api/gridColumnSpanning.js +5 -0
  498. package/node/models/colDef/index.js +0 -13
  499. package/node/models/events/gridEvents.js +10 -3
  500. package/node/models/gridColumnSpanning.js +5 -0
  501. package/node/models/gridRows.js +1 -34
  502. package/node/models/index.js +13 -13
  503. package/node/models/params/gridPreferencePanelParams.js +5 -0
  504. package/node/models/params/index.js +13 -0
  505. package/package.json +4 -4
  506. package/utils/domUtils.d.ts +2 -2
  507. package/components/columnHeaders/ColumnHeaderFilterIcon.d.ts +0 -5
  508. package/hooks/core/preProcessing/gridPreProcessingApi.d.ts +0 -67
  509. package/hooks/core/preProcessing/index.d.ts +0 -3
  510. package/hooks/core/preProcessing/index.js +0 -3
  511. package/hooks/core/preProcessing/useGridPreProcessing.d.ts +0 -6
  512. package/hooks/core/preProcessing/useGridPreProcessing.js +0 -53
  513. package/hooks/core/preProcessing/useGridRegisterPreProcessor.d.ts +0 -7
  514. package/hooks/features/keyboard/useGridKeyboard.d.ts +0 -10
  515. package/hooks/features/keyboard/useGridKeyboard.js +0 -70
  516. package/legacy/hooks/core/preProcessing/index.js +0 -3
  517. package/legacy/hooks/core/preProcessing/useGridPreProcessing.js +0 -62
  518. package/legacy/hooks/features/keyboard/useGridKeyboard.js +0 -70
  519. package/modern/hooks/core/preProcessing/index.js +0 -3
  520. package/modern/hooks/core/preProcessing/useGridPreProcessing.js +0 -53
  521. package/modern/hooks/features/keyboard/useGridKeyboard.js +0 -70
  522. package/node/hooks/core/preProcessing/index.js +0 -44
  523. package/node/hooks/core/preProcessing/useGridPreProcessing.js +0 -72
  524. package/node/hooks/features/keyboard/useGridKeyboard.js +0 -91
@@ -5,14 +5,15 @@ import { useGridApiEventHandler } from '../../utils/useGridApiEventHandler';
5
5
  import { useGridApiMethod } from '../../utils/useGridApiMethod';
6
6
  import { useGridLogger } from '../../utils/useGridLogger';
7
7
  import { gridRowsLookupSelector } from '../rows/gridRowsSelector';
8
- import { isGridCellRoot } from '../../../utils/domUtils';
9
8
  import { gridSelectionStateSelector, selectedGridRowsSelector, selectedIdsLookupSelector } from './gridSelectionSelector';
10
9
  import { gridPaginatedVisibleSortedGridRowIdsSelector } from '../pagination';
10
+ import { gridFocusCellSelector } from '../focus/gridFocusStateSelector';
11
11
  import { gridVisibleSortedRowIdsSelector } from '../filter/gridFilterSelector';
12
12
  import { GRID_CHECKBOX_SELECTION_COL_DEF, GRID_ACTIONS_COLUMN_TYPE } from '../../../colDef';
13
13
  import { GridCellModes } from '../../../models/gridEditRowModel';
14
- import { isKeyboardEvent } from '../../../utils/keyboardUtils';
15
- import { getVisibleRows } from '../../utils/useGridVisibleRows';
14
+ import { isKeyboardEvent, isNavigationKey } from '../../../utils/keyboardUtils';
15
+ import { getVisibleRows, useGridVisibleRows } from '../../utils/useGridVisibleRows';
16
+ import { GRID_DETAIL_PANEL_TOGGLE_FIELD } from '../../../constants/gridDetailPanelToggleField';
16
17
 
17
18
  const getSelectionModelPropValue = (selectionModelProp, prevSelectionModel) => {
18
19
  if (selectionModelProp == null) {
@@ -34,8 +35,10 @@ export const selectionStateInitializer = (state, props) => _extends({}, state, {
34
35
  selection: getSelectionModelPropValue(props.selectionModel) ?? []
35
36
  });
36
37
  /**
37
- * @requires useGridRows (state, method)
38
- * @requires useGridParamsApi (method)
38
+ * @requires useGridRows (state, method) - can be after
39
+ * @requires useGridParamsApi (method) - can be after
40
+ * @requires useGridFocus (state) - can be after
41
+ * @requires useGridKeyboardNavigation (`cellKeyDown` event must first be consumed by it)
39
42
  */
40
43
 
41
44
  export const useGridSelection = (apiRef, props) => {
@@ -60,7 +63,8 @@ export const useGridSelection = (apiRef, props) => {
60
63
  paginationMode
61
64
  } = props;
62
65
  const canHaveMultipleSelection = !disableMultipleSelection || checkboxSelection;
63
- const expandRowRangeSelection = React.useCallback(id => {
66
+ const visibleRows = useGridVisibleRows(apiRef, props);
67
+ const expandMouseRowRangeSelection = React.useCallback(id => {
64
68
  let endId = id;
65
69
  const startId = lastRowToggled.current ?? id;
66
70
  const isSelected = apiRef.current.isRowSelected(id);
@@ -165,12 +169,13 @@ export const useGridSelection = (apiRef, props) => {
165
169
  return;
166
170
  }
167
171
 
168
- logger.debug(`Expanding selection from row ${startId} to row ${endId}`);
169
- const visibleRowIds = gridVisibleSortedRowIdsSelector(apiRef);
170
- const startIndex = visibleRowIds.indexOf(startId);
171
- const endIndex = visibleRowIds.indexOf(endId);
172
+ logger.debug(`Expanding selection from row ${startId} to row ${endId}`); // Using rows from all pages allow to select a range across several pages
173
+
174
+ const allPagesRowIds = gridVisibleSortedRowIdsSelector(apiRef);
175
+ const startIndex = allPagesRowIds.indexOf(startId);
176
+ const endIndex = allPagesRowIds.indexOf(endId);
172
177
  const [start, end] = startIndex > endIndex ? [endIndex, startIndex] : [startIndex, endIndex];
173
- const rowsBetweenStartAndEnd = visibleRowIds.slice(start, end + 1);
178
+ const rowsBetweenStartAndEnd = allPagesRowIds.slice(start, end + 1);
174
179
  apiRef.current.selectRows(rowsBetweenStartAndEnd, isSelected, resetSelection);
175
180
  }, [apiRef, logger]);
176
181
  const selectionApi = {
@@ -230,7 +235,7 @@ export const useGridSelection = (apiRef, props) => {
230
235
  return;
231
236
  }
232
237
 
233
- if (params.field === '__detail_panel_toggle__') {
238
+ if (params.field === GRID_DETAIL_PANEL_TOGGLE_FIELD) {
234
239
  // click to open the detail panel should not select the row
235
240
  return;
236
241
  }
@@ -244,11 +249,11 @@ export const useGridSelection = (apiRef, props) => {
244
249
  }
245
250
 
246
251
  if (event.shiftKey && (canHaveMultipleSelection || checkboxSelection)) {
247
- expandRowRangeSelection(params.id);
252
+ expandMouseRowRangeSelection(params.id);
248
253
  } else {
249
254
  handleSingleRowSelection(params.id, event);
250
255
  }
251
- }, [disableSelectionOnClick, canHaveMultipleSelection, checkboxSelection, apiRef, expandRowRangeSelection, handleSingleRowSelection]);
256
+ }, [disableSelectionOnClick, canHaveMultipleSelection, checkboxSelection, apiRef, expandMouseRowRangeSelection, handleSingleRowSelection]);
252
257
  const preventSelectionOnShift = React.useCallback((params, event) => {
253
258
  if (canHaveMultipleSelection && event.shiftKey) {
254
259
  window.getSelection()?.removeAllRanges();
@@ -256,35 +261,78 @@ export const useGridSelection = (apiRef, props) => {
256
261
  }, [canHaveMultipleSelection]);
257
262
  const handleRowSelectionCheckboxChange = React.useCallback((params, event) => {
258
263
  if (event.nativeEvent.shiftKey) {
259
- expandRowRangeSelection(params.id);
264
+ expandMouseRowRangeSelection(params.id);
260
265
  } else {
261
266
  apiRef.current.selectRow(params.id, params.value);
262
267
  }
263
- }, [apiRef, expandRowRangeSelection]);
268
+ }, [apiRef, expandMouseRowRangeSelection]);
264
269
  const handleHeaderSelectionCheckboxChange = React.useCallback(params => {
265
270
  const shouldLimitSelectionToCurrentPage = props.checkboxSelectionVisibleOnly && props.pagination;
266
271
  const rowsToBeSelected = shouldLimitSelectionToCurrentPage ? gridPaginatedVisibleSortedGridRowIdsSelector(apiRef) : gridVisibleSortedRowIdsSelector(apiRef);
267
272
  apiRef.current.selectRows(rowsToBeSelected, params.value);
268
273
  }, [apiRef, props.checkboxSelectionVisibleOnly, props.pagination]);
269
274
  const handleCellKeyDown = React.useCallback((params, event) => {
270
- // Ignore portal
275
+ // Get the most recent cell mode because it may have been changed by another listener
276
+ if (apiRef.current.getCellMode(params.id, params.field) === GridCellModes.Edit) {
277
+ return;
278
+ } // Ignore portal
271
279
  // Do not apply shortcuts if the focus is not on the cell root component
272
- // TODO replace with !event.currentTarget.contains(event.target as Element)
273
- if (!isGridCellRoot(event.target)) {
280
+
281
+
282
+ if (!event.currentTarget.contains(event.target)) {
274
283
  return;
275
- } // Get the most recent params because the cell mode may have changed by another listener
284
+ }
276
285
 
286
+ if (isNavigationKey(event.key) && event.shiftKey) {
287
+ // The cell that has focus after the keyboard navigation
288
+ const focusCell = gridFocusCellSelector(apiRef);
277
289
 
278
- const cellParams = apiRef.current.getCellParams(params.id, params.field);
279
- const isEditMode = cellParams.cellMode === GridCellModes.Edit;
290
+ if (focusCell && focusCell.id !== params.id) {
291
+ event.preventDefault();
292
+ const isNextRowSelected = apiRef.current.isRowSelected(focusCell.id);
280
293
 
281
- if (isEditMode) {
282
- return;
294
+ if (!canHaveMultipleSelection) {
295
+ apiRef.current.selectRow(focusCell.id, !isNextRowSelected, true);
296
+ return;
297
+ }
298
+
299
+ const newRowIndex = apiRef.current.getRowIndexRelativeToVisibleRows(focusCell.id);
300
+ const previousRowIndex = apiRef.current.getRowIndexRelativeToVisibleRows(params.id);
301
+ let start;
302
+ let end;
303
+
304
+ if (newRowIndex > previousRowIndex) {
305
+ if (isNextRowSelected) {
306
+ // We are navigating to the bottom of the page and adding selected rows
307
+ start = previousRowIndex;
308
+ end = newRowIndex - 1;
309
+ } else {
310
+ // We are navigating to the bottom of the page and removing selected rows
311
+ start = previousRowIndex;
312
+ end = newRowIndex;
313
+ }
314
+ } else {
315
+ // eslint-disable-next-line no-lonely-if
316
+ if (isNextRowSelected) {
317
+ // We are navigating to the top of the page and removing selected rows
318
+ start = newRowIndex + 1;
319
+ end = previousRowIndex;
320
+ } else {
321
+ // We are navigating to the top of the page and adding selected rows
322
+ start = newRowIndex;
323
+ end = previousRowIndex;
324
+ }
325
+ }
326
+
327
+ const rowsBetweenStartAndEnd = visibleRows.rows.slice(start, end + 1).map(row => row.id);
328
+ apiRef.current.selectRows(rowsBetweenStartAndEnd, !isNextRowSelected);
329
+ return;
330
+ }
283
331
  }
284
332
 
285
333
  if (event.key === ' ' && event.shiftKey) {
286
334
  event.preventDefault();
287
- handleSingleRowSelection(cellParams.id, event);
335
+ handleSingleRowSelection(params.id, event);
288
336
  return;
289
337
  }
290
338
 
@@ -292,8 +340,8 @@ export const useGridSelection = (apiRef, props) => {
292
340
  event.preventDefault();
293
341
  selectRows(apiRef.current.getAllRowIds(), true);
294
342
  }
295
- }, [apiRef, handleSingleRowSelection, selectRows]);
296
- useGridApiEventHandler(apiRef, GridEvents.visibleRowsSet, removeOutdatedSelection);
343
+ }, [apiRef, handleSingleRowSelection, selectRows, visibleRows.rows, canHaveMultipleSelection]);
344
+ useGridApiEventHandler(apiRef, GridEvents.sortedRowsSet, removeOutdatedSelection);
297
345
  useGridApiEventHandler(apiRef, GridEvents.cellClick, handleCellClick);
298
346
  useGridApiEventHandler(apiRef, GridEvents.rowSelectionCheckboxChange, handleRowSelectionCheckboxChange);
299
347
  useGridApiEventHandler(apiRef, GridEvents.headerSelectionCheckboxChange, handleHeaderSelectionCheckboxChange);
@@ -1,7 +1,7 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import * as React from 'react';
3
3
  import { unstable_composeClasses as composeClasses } from '@mui/material';
4
- import { useGridRegisterPreProcessor } from '../../core/preProcessing';
4
+ import { useGridRegisterPipeProcessor } from '../../core/pipeProcessing';
5
5
  import { getDataGridUtilityClass } from '../../../constants';
6
6
  import { GRID_CHECKBOX_SELECTION_COL_DEF } from '../../../colDef';
7
7
 
@@ -43,5 +43,5 @@ export const useGridSelectionPreProcessors = (apiRef, props) => {
43
43
 
44
44
  return columnsState;
45
45
  }, [apiRef, classes, props.checkboxSelection]);
46
- useGridRegisterPreProcessor(apiRef, 'hydrateColumns', updateSelectionColumn);
46
+ useGridRegisterPipeProcessor(apiRef, 'hydrateColumns', updateSelectionColumn);
47
47
  };
@@ -12,7 +12,7 @@ import { gridRowIdsSelector, gridRowTreeSelector } from '../rows';
12
12
  import { useFirstRender } from '../../utils/useFirstRender';
13
13
  import { useGridRegisterStrategyProcessor, GRID_DEFAULT_STRATEGY } from '../../core/strategyProcessing';
14
14
  import { buildAggregatedSortingApplier, mergeStateWithSortModel, getNextGridSortDirection, sanitizeSortModel } from './gridSortingUtils';
15
- import { useGridRegisterPreProcessor } from '../../core/preProcessing';
15
+ import { useGridRegisterPipeProcessor } from '../../core/pipeProcessing';
16
16
  export const sortingStateInitializer = (state, props) => {
17
17
  const sortModel = props.sortModel ?? props.initialState?.sorting?.sortModel ?? [];
18
18
  return _extends({}, state, {
@@ -74,17 +74,16 @@ export const useGridSorting = (apiRef, props) => {
74
74
  */
75
75
 
76
76
  const applySorting = React.useCallback(() => {
77
- if (props.sortingMode === GridFeatureModeConstant.server) {
78
- logger.debug('Skipping sorting rows as sortingMode = server');
79
- apiRef.current.setState(state => _extends({}, state, {
80
- sorting: _extends({}, state.sorting, {
81
- sortedRows: gridRowIdsSelector(state, apiRef.current.instanceId)
82
- })
83
- }));
84
- return;
85
- }
86
-
87
77
  apiRef.current.setState(state => {
78
+ if (props.sortingMode === GridFeatureModeConstant.server) {
79
+ logger.debug('Skipping sorting rows as sortingMode = server');
80
+ return _extends({}, state, {
81
+ sorting: _extends({}, state.sorting, {
82
+ sortedRows: gridRowIdsSelector(state, apiRef.current.instanceId)
83
+ })
84
+ });
85
+ }
86
+
88
87
  const sortModel = gridSortModelSelector(state, apiRef.current.instanceId);
89
88
  const sortRowList = buildAggregatedSortingApplier(sortModel, apiRef);
90
89
  const sortedRows = apiRef.current.unstable_applyStrategyProcessor('sorting', {
@@ -96,6 +95,7 @@ export const useGridSorting = (apiRef, props) => {
96
95
  })
97
96
  });
98
97
  });
98
+ apiRef.current.publishEvent(GridEvents.sortedRowsSet);
99
99
  apiRef.current.forceUpdate();
100
100
  }, [apiRef, logger, props.sortingMode]);
101
101
  const setSortModel = React.useCallback(model => {
@@ -180,8 +180,8 @@ export const useGridSorting = (apiRef, props) => {
180
180
  const rowTree = gridRowTreeSelector(apiRef);
181
181
  return params.sortRowList(Object.values(rowTree));
182
182
  }, [apiRef]);
183
- useGridRegisterPreProcessor(apiRef, 'exportState', stateExportPreProcessing);
184
- useGridRegisterPreProcessor(apiRef, 'restoreState', stateRestorePreProcessing);
183
+ useGridRegisterPipeProcessor(apiRef, 'exportState', stateExportPreProcessing);
184
+ useGridRegisterPipeProcessor(apiRef, 'restoreState', stateRestorePreProcessing);
185
185
  useGridRegisterStrategyProcessor(apiRef, GRID_DEFAULT_STRATEGY, 'sorting', flatSortingMethod);
186
186
  /**
187
187
  * EVENTS
@@ -2,11 +2,11 @@ import * as React from 'react';
2
2
  import { useGridApiMethod } from '../../utils';
3
3
  export const useGridStatePersistence = apiRef => {
4
4
  const exportState = React.useCallback(() => {
5
- const stateToExport = apiRef.current.unstable_applyPreProcessors('exportState', {});
5
+ const stateToExport = apiRef.current.unstable_applyPipeProcessors('exportState', {});
6
6
  return stateToExport;
7
7
  }, [apiRef]);
8
8
  const restoreState = React.useCallback(stateToRestore => {
9
- const response = apiRef.current.unstable_applyPreProcessors('restoreState', {
9
+ const response = apiRef.current.unstable_applyPipeProcessors('restoreState', {
10
10
  callbacks: []
11
11
  }, {
12
12
  stateToRestore
@@ -2,6 +2,7 @@ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWith
2
2
  import _extends from "@babel/runtime/helpers/esm/extends";
3
3
  const _excluded = ["style"];
4
4
  import * as React from 'react';
5
+ import * as ReactDOM from 'react-dom';
5
6
  import { useForkRef } from '@mui/material/utils';
6
7
  import { useGridApiContext } from '../../utils/useGridApiContext';
7
8
  import { useGridRootProps } from '../../utils/useGridRootProps';
@@ -16,8 +17,9 @@ import { useGridApiEventHandler } from '../../utils/useGridApiEventHandler';
16
17
  import { clamp } from '../../../utils/utils';
17
18
  import { selectedIdsLookupSelector } from '../selection/gridSelectionSelector';
18
19
  import { gridRowsMetaSelector } from '../rows/gridRowsMetaSelector';
20
+ import { getFirstNonSpannedColumnToRender } from '../columns/gridColumnsUtils'; // Uses binary search to avoid looping through all possible positions
21
+
19
22
  import { jsx as _jsx } from "react/jsx-runtime";
20
- // Uses binary search to avoid looping through all possible positions
21
23
  export function getIndexFromScroll(offset, positions, sliceStart = 0, sliceEnd = positions.length) {
22
24
  if (positions.length <= 0) {
23
25
  return -1;
@@ -31,6 +33,15 @@ export function getIndexFromScroll(offset, positions, sliceStart = 0, sliceEnd =
31
33
  const itemOffset = positions[pivot];
32
34
  return offset <= itemOffset ? getIndexFromScroll(offset, positions, sliceStart, pivot) : getIndexFromScroll(offset, positions, pivot + 1, sliceEnd);
33
35
  }
36
+ export const getRenderableIndexes = ({
37
+ firstIndex,
38
+ lastIndex,
39
+ buffer,
40
+ minFirstIndex,
41
+ maxLastIndex
42
+ }) => {
43
+ return [clamp(firstIndex - buffer, minFirstIndex, maxLastIndex), clamp(lastIndex + buffer, minFirstIndex, maxLastIndex)];
44
+ };
34
45
  export const useGridVirtualScroller = props => {
35
46
  const apiRef = useGridApiContext();
36
47
  const rootProps = useGridRootProps();
@@ -106,32 +117,28 @@ export const useGridVirtualScroller = props => {
106
117
  }
107
118
  }, []);
108
119
  useGridApiEventHandler(apiRef, GridEvents.resize, handleResize);
109
-
110
- const getRenderableIndexes = ({
111
- firstIndex,
112
- lastIndex,
113
- buffer,
114
- minFirstIndex,
115
- maxLastIndex
116
- }) => {
117
- return [clamp(firstIndex - buffer, minFirstIndex, maxLastIndex), clamp(lastIndex + buffer, minFirstIndex, maxLastIndex)];
118
- };
119
-
120
120
  const updateRenderZonePosition = React.useCallback(nextRenderContext => {
121
- const [firstRowToRender] = getRenderableIndexes({
121
+ const [firstRowToRender, lastRowToRender] = getRenderableIndexes({
122
122
  firstIndex: nextRenderContext.firstRowIndex,
123
123
  lastIndex: nextRenderContext.lastRowIndex,
124
124
  minFirstIndex: 0,
125
- maxLastIndex: currentPage.range?.lastRowIndex || 0,
125
+ maxLastIndex: currentPage.rows.length,
126
126
  buffer: rootProps.rowBuffer
127
127
  });
128
- const [firstColumnToRender] = getRenderableIndexes({
128
+ const [initialFirstColumnToRender] = getRenderableIndexes({
129
129
  firstIndex: nextRenderContext.firstColumnIndex,
130
130
  lastIndex: nextRenderContext.lastColumnIndex,
131
131
  minFirstIndex: renderZoneMinColumnIndex,
132
132
  maxLastIndex: renderZoneMaxColumnIndex,
133
133
  buffer: rootProps.columnBuffer
134
134
  });
135
+ const firstColumnToRender = getFirstNonSpannedColumnToRender({
136
+ firstColumnToRender: initialFirstColumnToRender,
137
+ apiRef,
138
+ firstRowToRender,
139
+ lastRowToRender,
140
+ visibleRows: currentPage.rows
141
+ });
135
142
  const top = gridRowsMetaSelector(apiRef.current.state).positions[firstRowToRender];
136
143
  const left = gridColumnPositionsSelector(apiRef)[firstColumnToRender]; // Call directly the selector because it might be outdated when this method is called
137
144
 
@@ -143,19 +150,22 @@ export const useGridVirtualScroller = props => {
143
150
  left
144
151
  });
145
152
  }
146
- }, [apiRef, currentPage.range?.lastRowIndex, onRenderZonePositioning, renderZoneMaxColumnIndex, renderZoneMinColumnIndex, rootProps.columnBuffer, rootProps.rowBuffer]);
153
+ }, [apiRef, currentPage.rows, onRenderZonePositioning, renderZoneMinColumnIndex, renderZoneMaxColumnIndex, rootProps.columnBuffer, rootProps.rowBuffer]);
154
+ React.useLayoutEffect(() => {
155
+ if (renderContext) {
156
+ updateRenderZonePosition(renderContext);
157
+ }
158
+ }, [renderContext, updateRenderZonePosition]);
147
159
  const updateRenderContext = React.useCallback(nextRenderContext => {
148
160
  setRenderContext(nextRenderContext);
149
- updateRenderZonePosition(nextRenderContext);
150
161
  prevRenderContext.current = nextRenderContext;
151
- }, [setRenderContext, prevRenderContext, updateRenderZonePosition]);
162
+ }, [setRenderContext, prevRenderContext]);
152
163
  React.useEffect(() => {
153
164
  if (containerWidth == null) {
154
165
  return;
155
166
  }
156
167
 
157
168
  const initialRenderContext = computeRenderContext();
158
- prevRenderContext.current = initialRenderContext;
159
169
  updateRenderContext(initialRenderContext);
160
170
  const {
161
171
  top,
@@ -193,14 +203,25 @@ export const useGridVirtualScroller = props => {
193
203
  top: scrollTop,
194
204
  left: scrollLeft,
195
205
  renderContext: shouldSetState ? nextRenderContext : prevRenderContext.current
196
- });
206
+ }, event);
197
207
 
198
208
  if (shouldSetState) {
199
- updateRenderContext(nextRenderContext);
209
+ // Prevents batching render context changes
210
+ ReactDOM.flushSync(() => {
211
+ updateRenderContext(nextRenderContext);
212
+ });
200
213
  prevTotalWidth.current = columnsTotalWidth;
201
214
  }
202
215
  };
203
216
 
217
+ const handleWheel = event => {
218
+ apiRef.current.publishEvent(GridEvents.virtualScrollerWheel, {}, event);
219
+ };
220
+
221
+ const handleTouchMove = event => {
222
+ apiRef.current.publishEvent(GridEvents.virtualScrollerTouchMove, {}, event);
223
+ };
224
+
204
225
  const getRows = (params = {
205
226
  renderContext
206
227
  }) => {
@@ -224,14 +245,32 @@ export const useGridVirtualScroller = props => {
224
245
  maxLastIndex: currentPage.rows.length,
225
246
  buffer: rowBuffer
226
247
  });
227
- const [firstColumnToRender, lastColumnToRender] = getRenderableIndexes({
248
+ const renderedRows = [];
249
+
250
+ for (let i = firstRowToRender; i < lastRowToRender; i += 1) {
251
+ const row = currentPage.rows[i];
252
+ renderedRows.push(row);
253
+ apiRef.current.unstable_calculateColSpan({
254
+ rowId: row.id,
255
+ minFirstColumn,
256
+ maxLastColumn
257
+ });
258
+ }
259
+
260
+ const [initialFirstColumnToRender, lastColumnToRender] = getRenderableIndexes({
228
261
  firstIndex: nextRenderContext.firstColumnIndex,
229
262
  lastIndex: nextRenderContext.lastColumnIndex,
230
263
  minFirstIndex: minFirstColumn,
231
264
  maxLastIndex: maxLastColumn,
232
265
  buffer: columnBuffer
233
266
  });
234
- const renderedRows = currentPage.rows.slice(firstRowToRender, lastRowToRender);
267
+ const firstColumnToRender = getFirstNonSpannedColumnToRender({
268
+ firstColumnToRender: initialFirstColumnToRender,
269
+ apiRef,
270
+ firstRowToRender,
271
+ lastRowToRender,
272
+ visibleRows: currentPage.rows
273
+ });
235
274
  const renderedColumns = visibleColumns.slice(firstColumnToRender, lastColumnToRender);
236
275
  const rows = [];
237
276
 
@@ -331,6 +370,8 @@ export const useGridVirtualScroller = props => {
331
370
  return _extends({
332
371
  ref: handleRef,
333
372
  onScroll: handleScroll,
373
+ onWheel: handleWheel,
374
+ onTouchMove: handleTouchMove,
334
375
  style: _extends({}, style, rootStyle)
335
376
  }, other);
336
377
  },
package/modern/index.js CHANGED
@@ -1,4 +1,4 @@
1
- /** @license MUI v5.7.0
1
+ /** @license MUI v5.10.0
2
2
  *
3
3
  * This source code is licensed under the MIT license found in the
4
4
  * LICENSE file in the root directory of this source tree.
@@ -3,20 +3,20 @@ export { GridVirtualScrollerContent } from '../components/virtualization/GridVir
3
3
  export { GridVirtualScrollerRenderZone } from '../components/virtualization/GridVirtualScrollerRenderZone';
4
4
  export { GridColumnHeaders } from '../components/columnHeaders/GridColumnHeaders';
5
5
  export { GridColumnHeadersInner } from '../components/columnHeaders/GridColumnHeadersInner';
6
- export { useGridRegisterPreProcessor } from '../hooks/core/preProcessing';
6
+ export { useGridRegisterPipeProcessor } from '../hooks/core/pipeProcessing';
7
7
  export { useGridRegisterStrategyProcessor } from '../hooks/core/strategyProcessing';
8
8
  export { useGridInitialization } from '../hooks/core/useGridInitialization';
9
9
  export { useGridClipboard } from '../hooks/features/clipboard/useGridClipboard';
10
10
  export { useGridColumnHeaders } from '../hooks/features/columnHeaders/useGridColumnHeaders';
11
11
  export { useGridColumnMenu, columnMenuStateInitializer } from '../hooks/features/columnMenu/useGridColumnMenu';
12
12
  export { useGridColumns, columnsStateInitializer } from '../hooks/features/columns/useGridColumns';
13
+ export { useGridColumnSpanning } from '../hooks/features/columns/useGridColumnSpanning';
13
14
  export { useGridDensity, densityStateInitializer } from '../hooks/features/density/useGridDensity';
14
15
  export { useGridCsvExport } from '../hooks/features/export/useGridCsvExport';
15
16
  export { useGridPrintExport } from '../hooks/features/export/useGridPrintExport';
16
17
  export { useGridFilter, filterStateInitializer } from '../hooks/features/filter/useGridFilter';
17
18
  export { useGridFocus, focusStateInitializer } from '../hooks/features/focus/useGridFocus';
18
- export { useGridKeyboard } from '../hooks/features/keyboard/useGridKeyboard';
19
- export { useGridKeyboardNavigation } from '../hooks/features/keyboard/useGridKeyboardNavigation';
19
+ export { useGridKeyboardNavigation } from '../hooks/features/keyboardNavigation/useGridKeyboardNavigation';
20
20
  export { useGridPagination, paginationStateInitializer } from '../hooks/features/pagination/useGridPagination';
21
21
  export { useGridPreferencesPanel, preferencePanelStateInitializer } from '../hooks/features/preferencesPanel/useGridPreferencesPanel';
22
22
  export { useGridEditing as useGridEditing_new, editingStateInitializer as editingStateInitializer_new } from '../hooks/features/editRows/useGridEditing.new';
@@ -103,6 +103,8 @@ const arSDGrid = {
103
103
  unGroupColumn: name => `إيقاف التجميع حسب ${name}`,
104
104
  // Master/detail
105
105
  expandDetailPanel: 'توسيع',
106
- collapseDetailPanel: 'طوي'
106
+ collapseDetailPanel: 'طوي' // Row reordering text
107
+ // rowReorderingHeaderName: 'Row reordering',
108
+
107
109
  };
108
110
  export const arSD = getGridLocalization(arSDGrid, arSDCore);
@@ -103,6 +103,8 @@ const bgBGGrid = {
103
103
  unGroupColumn: name => `Спри групиране по ${name}`,
104
104
  // Master/detail
105
105
  expandDetailPanel: 'Разгъване',
106
- collapseDetailPanel: 'Свиване'
106
+ collapseDetailPanel: 'Свиване' // Row reordering text
107
+ // rowReorderingHeaderName: 'Row reordering',
108
+
107
109
  };
108
110
  export const bgBG = getGridLocalization(bgBGGrid, bgBGCore);
@@ -138,6 +138,8 @@ const csCZGrid = {
138
138
  unGroupColumn: name => `Přestat zoskupovat podle ${name}` // Master/detail
139
139
  // expandDetailPanel: 'Expand',
140
140
  // collapseDetailPanel: 'Collapse',
141
+ // Row reordering text
142
+ // rowReorderingHeaderName: 'Row reordering',
141
143
 
142
144
  };
143
145
  export const csCZ = getGridLocalization(csCZGrid, csCZCore);
@@ -6,7 +6,7 @@ const daDKGrid = {
6
6
  noResultsOverlayLabel: 'Ingen resultater',
7
7
  errorOverlayDefaultLabel: 'Der skete en fejl.',
8
8
  // Density selector toolbar button text
9
- // toolbarDensity: 'Density',
9
+ toolbarDensity: 'Tæthed',
10
10
  toolbarDensityLabel: 'Tæthed',
11
11
  toolbarDensityCompact: 'Kompakt',
12
12
  toolbarDensityStandard: 'Standard',
@@ -15,7 +15,7 @@ const daDKGrid = {
15
15
  toolbarColumns: 'Kolonne',
16
16
  toolbarColumnsLabel: 'Vælg kolonne',
17
17
  // Filters toolbar button text
18
- // toolbarFilters: 'Filters',
18
+ toolbarFilters: 'Filtre',
19
19
  toolbarFiltersLabel: 'Vis filtre',
20
20
  toolbarFiltersTooltipHide: 'Skjul filtre',
21
21
  toolbarFiltersTooltipShow: 'Vis filtre',
@@ -24,7 +24,7 @@ const daDKGrid = {
24
24
  // toolbarExport: 'Export',
25
25
  toolbarExportLabel: 'Eksporter',
26
26
  toolbarExportCSV: 'Download som CSV',
27
- // toolbarExportPrint: 'Print',
27
+ toolbarExportPrint: 'Print',
28
28
  // Columns panel text
29
29
  columnsPanelTextFieldLabel: 'Find kolonne',
30
30
  columnsPanelTextFieldPlaceholder: 'Kolonne titel',
@@ -34,11 +34,11 @@ const daDKGrid = {
34
34
  // Filter panel text
35
35
  filterPanelAddFilter: 'Tilføj filter',
36
36
  filterPanelDeleteIconLabel: 'Slet',
37
- // filterPanelLinkOperator: 'Logic operator',
37
+ filterPanelLinkOperator: 'Logisk operator',
38
38
  filterPanelOperators: 'Operatorer',
39
39
  // TODO v6: rename to filterPanelOperator
40
- // filterPanelOperatorAnd: 'And',
41
- // filterPanelOperatorOr: 'Or',
40
+ filterPanelOperatorAnd: 'Og',
41
+ filterPanelOperatorOr: 'Eller',
42
42
  filterPanelColumns: 'Kolonne',
43
43
  filterPanelInputLabel: 'Værdi',
44
44
  filterPanelInputPlaceholder: 'Filter værdi',
@@ -47,46 +47,46 @@ const daDKGrid = {
47
47
  filterOperatorEquals: 'Lig med',
48
48
  filterOperatorStartsWith: 'Begynder med',
49
49
  filterOperatorEndsWith: 'Ender med',
50
- filterOperatorIs: '',
51
- filterOperatorNot: 'Ikke ',
50
+ filterOperatorIs: 'Er lig med',
51
+ filterOperatorNot: 'Er ikke lig med',
52
52
  filterOperatorAfter: 'Efter',
53
53
  filterOperatorOnOrAfter: 'På eller efter',
54
54
  filterOperatorBefore: 'Før',
55
55
  filterOperatorOnOrBefore: 'På eller før',
56
- filterOperatorIsEmpty: 'Indeholder data',
57
- filterOperatorIsNotEmpty: 'Indeholder ikke data',
58
- // filterOperatorIsAnyOf: 'is any of',
56
+ filterOperatorIsEmpty: 'Indeholder ikke data',
57
+ filterOperatorIsNotEmpty: 'Indeholder data',
58
+ filterOperatorIsAnyOf: 'indeholder en af',
59
59
  // Filter values text
60
- // filterValueAny: 'any',
61
- // filterValueTrue: 'true',
62
- // filterValueFalse: 'false',
60
+ filterValueAny: 'hvilken som helst',
61
+ filterValueTrue: 'positiv',
62
+ filterValueFalse: 'negativ',
63
63
  // Column menu text
64
- // columnMenuLabel: 'Menu',
64
+ columnMenuLabel: 'Menu',
65
65
  columnMenuShowColumns: 'Vis Kolonner',
66
- // columnMenuFilter: 'Filter',
66
+ columnMenuFilter: 'Filtre',
67
67
  columnMenuHideColumn: 'Skjul',
68
68
  columnMenuUnsort: 'Fjern sortering',
69
69
  columnMenuSortAsc: 'Sorter stigende',
70
70
  columnMenuSortDesc: 'Sorter faldende',
71
71
  // Column header text
72
- columnHeaderFiltersTooltipActive: count => count !== 1 ? `${count} aktive filtre` : `${count} aktivt filter`,
72
+ columnHeaderFiltersTooltipActive: count => count !== 1 ? `${count} aktive filtre` : `Ét aktivt filter`,
73
73
  columnHeaderFiltersLabel: 'Vis filtre',
74
74
  columnHeaderSortIconLabel: 'Sorter',
75
75
  // Rows selected footer text
76
- footerRowSelected: count => count !== 1 ? `${count.toLocaleString()} rækker valgt` : `${count.toLocaleString()} række valgt`,
76
+ footerRowSelected: count => count !== 1 ? `${count.toLocaleString()} rækker valgt` : `Én række valgt`,
77
77
  // Total row amount footer text
78
- footerTotalRows: 'Totale rækker:',
78
+ footerTotalRows: 'Antal rækker i alt:',
79
79
  // Total visible row amount footer text
80
80
  footerTotalVisibleRows: (visibleCount, totalCount) => `${visibleCount.toLocaleString()} af ${totalCount.toLocaleString()}`,
81
81
  // Checkbox selection text
82
82
  checkboxSelectionHeaderName: 'Afkrydsningsvalg',
83
- // checkboxSelectionSelectAllRows: 'Select all rows',
84
- // checkboxSelectionUnselectAllRows: 'Unselect all rows',
85
- // checkboxSelectionSelectRow: 'Select row',
86
- // checkboxSelectionUnselectRow: 'Unselect row',
83
+ checkboxSelectionSelectAllRows: 'Vælg alle rækker',
84
+ checkboxSelectionUnselectAllRows: 'Fravælg alle rækker',
85
+ checkboxSelectionSelectRow: 'Vælg række',
86
+ checkboxSelectionUnselectRow: 'Fravælg række',
87
87
  // Boolean cell text
88
- // booleanCellTrueLabel: 'yes',
89
- // booleanCellFalseLabel: 'no',
88
+ booleanCellTrueLabel: 'ja',
89
+ booleanCellFalseLabel: 'nej',
90
90
  // Actions cell more text
91
91
  actionsCellMore: 'mere',
92
92
  // Column pinning text
@@ -96,13 +96,15 @@ const daDKGrid = {
96
96
  // Tree Data
97
97
  treeDataGroupingHeaderName: 'Gruppering',
98
98
  treeDataExpand: 'Vis underelementer',
99
- treeDataCollapse: 'Skjul underelementer' // Grouping columns
100
- // groupingColumnHeaderName: 'Group',
101
- // groupColumn: name => `Group by ${name}`,
102
- // unGroupColumn: name => `Stop grouping by ${name}`,
99
+ treeDataCollapse: 'Skjul underelementer',
100
+ // Grouping columns
101
+ groupingColumnHeaderName: 'Gruppér',
102
+ groupColumn: name => `Gruppér efter ${name}`,
103
+ unGroupColumn: name => `Fjern gruppéring efter ${name}`,
103
104
  // Master/detail
104
- // expandDetailPanel: 'Expand',
105
- // collapseDetailPanel: 'Collapse',
105
+ expandDetailPanel: 'Udvid',
106
+ collapseDetailPanel: 'Kollaps' // Row reordering text
107
+ // rowReorderingHeaderName: 'Row reordering',
106
108
 
107
109
  };
108
110
  export const daDK = getGridLocalization(daDKGrid, daDKCore);
@@ -103,6 +103,8 @@ const deDEGrid = {
103
103
  unGroupColumn: name => `Gruppierung nach ${name} aufheben`,
104
104
  // Master/detail
105
105
  expandDetailPanel: 'Aufklappen',
106
- collapseDetailPanel: 'Zuklappen'
106
+ collapseDetailPanel: 'Zuklappen' // Row reordering text
107
+ // rowReorderingHeaderName: 'Row reordering',
108
+
107
109
  };
108
110
  export const deDE = getGridLocalization(deDEGrid, deDECore);