@mui/x-data-grid 7.0.0-beta.6 → 7.0.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 (329) hide show
  1. package/CHANGELOG.md +311 -12
  2. package/DataGrid/DataGrid.js +57 -17
  3. package/DataGrid/useDataGridComponent.js +3 -0
  4. package/DataGrid/useDataGridProps.js +6 -7
  5. package/README.md +1 -1
  6. package/components/GridColumnHeaders.d.ts +1 -2
  7. package/components/GridColumnHeaders.js +6 -17
  8. package/components/GridFooter.js +2 -3
  9. package/components/GridHeader.js +1 -2
  10. package/components/GridHeaders.js +1 -4
  11. package/components/GridPagination.d.ts +6 -5
  12. package/components/GridPagination.js +14 -11
  13. package/components/GridRow.d.ts +1 -1
  14. package/components/GridRow.js +17 -36
  15. package/components/GridScrollArea.d.ts +10 -0
  16. package/components/GridScrollArea.js +150 -0
  17. package/components/base/GridFooterPlaceholder.js +1 -2
  18. package/components/base/GridOverlays.js +3 -6
  19. package/components/cell/GridActionsCell.js +4 -6
  20. package/components/cell/GridActionsCellItem.d.ts +8 -25
  21. package/components/cell/GridActionsCellItem.js +8 -5
  22. package/components/cell/GridBooleanCell.d.ts +1 -0
  23. package/components/cell/GridBooleanCell.js +3 -2
  24. package/components/cell/GridCell.d.ts +7 -0
  25. package/components/cell/GridCell.js +18 -11
  26. package/components/cell/GridEditBooleanCell.js +1 -2
  27. package/components/cell/GridEditDateCell.js +2 -3
  28. package/components/cell/GridEditInputCell.js +2 -2
  29. package/components/cell/GridEditSingleSelectCell.js +5 -8
  30. package/components/columnHeaders/ColumnHeaderMenuIcon.js +2 -3
  31. package/components/columnHeaders/GridBaseColumnHeaders.js +1 -0
  32. package/components/columnHeaders/GridColumnGroupHeader.d.ts +5 -0
  33. package/components/columnHeaders/GridColumnGroupHeader.js +22 -13
  34. package/components/columnHeaders/GridColumnHeaderFilterIconButton.js +2 -3
  35. package/components/columnHeaders/GridColumnHeaderItem.d.ts +5 -0
  36. package/components/columnHeaders/GridColumnHeaderItem.js +26 -12
  37. package/components/columnHeaders/GridColumnHeaderSortIcon.js +1 -2
  38. package/components/columnHeaders/GridColumnHeaderTitle.js +2 -3
  39. package/components/columnHeaders/GridGenericColumnHeaderItem.d.ts +1 -0
  40. package/components/columnHeaders/GridGenericColumnHeaderItem.js +7 -6
  41. package/components/columnSelection/GridCellCheckboxRenderer.js +3 -5
  42. package/components/columnSelection/GridHeaderCheckbox.js +1 -2
  43. package/components/columnsManagement/GridColumnsManagement.js +17 -21
  44. package/components/containers/GridRoot.js +3 -3
  45. package/components/containers/GridRootStyles.js +12 -20
  46. package/components/menu/GridMenu.js +4 -6
  47. package/components/menu/columnMenu/GridColumnHeaderMenu.js +1 -1
  48. package/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +2 -3
  49. package/components/panel/GridColumnsPanel.js +1 -2
  50. package/components/panel/GridPanel.d.ts +1 -10
  51. package/components/panel/GridPanel.js +1 -2
  52. package/components/panel/GridPreferencesPanel.js +2 -3
  53. package/components/panel/filterPanel/GridFilterForm.js +24 -27
  54. package/components/panel/filterPanel/GridFilterInputBoolean.d.ts +1 -1
  55. package/components/panel/filterPanel/GridFilterInputBoolean.js +6 -7
  56. package/components/panel/filterPanel/GridFilterInputDate.d.ts +1 -1
  57. package/components/panel/filterPanel/GridFilterInputDate.js +3 -4
  58. package/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +11 -15
  59. package/components/panel/filterPanel/GridFilterInputMultipleValue.js +10 -14
  60. package/components/panel/filterPanel/GridFilterInputSingleSelect.d.ts +1 -1
  61. package/components/panel/filterPanel/GridFilterInputSingleSelect.js +10 -11
  62. package/components/panel/filterPanel/GridFilterInputValue.d.ts +1 -1
  63. package/components/panel/filterPanel/GridFilterInputValue.js +5 -7
  64. package/components/panel/filterPanel/GridFilterPanel.js +5 -9
  65. package/components/panel/filterPanel/filterPanelUtils.js +1 -1
  66. package/components/toolbar/GridToolbarColumnsButton.js +3 -5
  67. package/components/toolbar/GridToolbarDensitySelector.js +8 -10
  68. package/components/toolbar/GridToolbarExport.js +2 -2
  69. package/components/toolbar/GridToolbarExportContainer.js +3 -5
  70. package/components/toolbar/GridToolbarFilterButton.js +3 -5
  71. package/components/toolbar/GridToolbarQuickFilter.js +4 -5
  72. package/components/virtualization/GridVirtualScrollbar.js +4 -0
  73. package/components/virtualization/GridVirtualScroller.js +6 -1
  74. package/components/virtualization/GridVirtualScrollerContent.js +1 -2
  75. package/components/virtualization/GridVirtualScrollerFiller.js +2 -1
  76. package/components/virtualization/GridVirtualScrollerRenderZone.js +1 -2
  77. package/constants/gridClasses.d.ts +6 -32
  78. package/constants/gridClasses.js +1 -1
  79. package/hooks/core/pipeProcessing/gridPipeProcessingApi.d.ts +5 -1
  80. package/hooks/core/strategyProcessing/useGridStrategyProcessing.js +1 -2
  81. package/hooks/core/useGridApiInitialization.js +4 -6
  82. package/hooks/features/clipboard/useGridClipboard.js +6 -5
  83. package/hooks/features/columnGrouping/gridColumnGroupsSelector.js +4 -16
  84. package/hooks/features/columnGrouping/gridColumnGroupsUtils.js +4 -8
  85. package/hooks/features/columnGrouping/useGridColumnGrouping.js +12 -23
  86. package/hooks/features/columnHeaders/useGridColumnHeaders.d.ts +23 -7
  87. package/hooks/features/columnHeaders/useGridColumnHeaders.js +186 -101
  88. package/hooks/features/columnMenu/useGridColumnMenuSlots.js +2 -2
  89. package/hooks/features/columnResize/columnResizeSelector.d.ts +3 -0
  90. package/hooks/features/columnResize/columnResizeSelector.js +3 -0
  91. package/hooks/features/columnResize/columnResizeState.d.ts +3 -0
  92. package/hooks/features/columnResize/columnResizeState.js +1 -0
  93. package/hooks/features/columnResize/gridColumnResizeApi.d.ts +44 -0
  94. package/hooks/features/columnResize/gridColumnResizeApi.js +10 -0
  95. package/hooks/features/columnResize/index.d.ts +3 -0
  96. package/hooks/features/columnResize/index.js +3 -0
  97. package/hooks/features/columnResize/useGridColumnResize.d.ts +10 -0
  98. package/hooks/features/columnResize/useGridColumnResize.js +553 -0
  99. package/hooks/features/columns/gridColumnsSelector.js +1 -2
  100. package/hooks/features/columns/gridColumnsUtils.d.ts +0 -9
  101. package/hooks/features/columns/gridColumnsUtils.js +5 -22
  102. package/hooks/features/columns/useGridColumnSpanning.js +1 -2
  103. package/hooks/features/columns/useGridColumns.js +11 -19
  104. package/hooks/features/density/densitySelector.d.ts +4 -2
  105. package/hooks/features/density/densitySelector.js +8 -2
  106. package/hooks/features/density/densityState.d.ts +1 -4
  107. package/hooks/features/density/useGridDensity.d.ts +2 -4
  108. package/hooks/features/density/useGridDensity.js +21 -29
  109. package/hooks/features/dimensions/useGridDimensions.js +7 -10
  110. package/hooks/features/editing/useGridCellEditing.js +25 -8
  111. package/hooks/features/editing/useGridEditing.js +1 -2
  112. package/hooks/features/editing/useGridRowEditing.js +4 -6
  113. package/hooks/features/export/serializers/csvSerializer.d.ts +2 -0
  114. package/hooks/features/export/serializers/csvSerializer.js +25 -16
  115. package/hooks/features/export/useGridCsvExport.js +9 -10
  116. package/hooks/features/export/useGridPrintExport.js +17 -22
  117. package/hooks/features/export/utils.js +2 -3
  118. package/hooks/features/filter/gridFilterSelector.js +15 -22
  119. package/hooks/features/filter/gridFilterUtils.js +10 -16
  120. package/hooks/features/filter/useGridFilter.js +9 -15
  121. package/hooks/features/focus/useGridFocus.js +5 -6
  122. package/hooks/features/headerFiltering/gridHeaderFilteringSelectors.d.ts +1 -0
  123. package/hooks/features/headerFiltering/gridHeaderFilteringSelectors.js +3 -0
  124. package/hooks/features/headerFiltering/useGridHeaderFiltering.js +23 -5
  125. package/hooks/features/index.d.ts +1 -0
  126. package/hooks/features/index.js +1 -0
  127. package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +1 -2
  128. package/hooks/features/pagination/gridPaginationInterfaces.d.ts +19 -2
  129. package/hooks/features/pagination/gridPaginationSelector.d.ts +5 -0
  130. package/hooks/features/pagination/gridPaginationSelector.js +9 -4
  131. package/hooks/features/pagination/useGridPagination.d.ts +1 -6
  132. package/hooks/features/pagination/useGridPagination.js +9 -158
  133. package/hooks/features/pagination/useGridPaginationModel.d.ts +11 -0
  134. package/hooks/features/pagination/useGridPaginationModel.js +165 -0
  135. package/hooks/features/pagination/useGridRowCount.d.ts +8 -0
  136. package/hooks/features/pagination/useGridRowCount.js +94 -0
  137. package/hooks/features/preferencesPanel/useGridPreferencesPanel.js +7 -12
  138. package/hooks/features/rowSelection/useGridRowSelection.js +11 -16
  139. package/hooks/features/rows/gridRowsSelector.js +11 -19
  140. package/hooks/features/rows/gridRowsUtils.js +7 -9
  141. package/hooks/features/rows/useGridParamsApi.js +1 -1
  142. package/hooks/features/rows/useGridRows.js +4 -13
  143. package/hooks/features/rows/useGridRowsMeta.js +7 -13
  144. package/hooks/features/scroll/useGridScroll.js +3 -4
  145. package/hooks/features/sorting/gridSortingSelector.js +4 -7
  146. package/hooks/features/sorting/useGridSorting.js +8 -14
  147. package/hooks/features/virtualization/gridVirtualizationSelectors.d.ts +4 -4
  148. package/hooks/features/virtualization/gridVirtualizationSelectors.js +0 -2
  149. package/hooks/features/virtualization/useGridVirtualScroller.d.ts +3 -3
  150. package/hooks/features/virtualization/useGridVirtualScroller.js +220 -71
  151. package/hooks/utils/useGridApiEventHandler.js +5 -10
  152. package/hooks/utils/useGridNativeEventListener.js +1 -2
  153. package/hooks/utils/useLazyRef.d.ts +1 -2
  154. package/hooks/utils/useLazyRef.js +1 -11
  155. package/hooks/utils/useOnMount.d.ts +1 -2
  156. package/hooks/utils/useOnMount.js +1 -7
  157. package/hooks/utils/useTimeout.d.ts +1 -11
  158. package/hooks/utils/useTimeout.js +1 -36
  159. package/index.js +1 -1
  160. package/internals/index.d.ts +3 -1
  161. package/internals/index.js +2 -1
  162. package/internals/utils/getPinnedCellOffset.d.ts +3 -0
  163. package/internals/utils/getPinnedCellOffset.js +17 -0
  164. package/internals/utils/useProps.js +1 -2
  165. package/joy/joySlots.js +18 -63
  166. package/locales/jaJP.js +3 -4
  167. package/material/index.js +0 -2
  168. package/models/api/gridApiCommon.d.ts +3 -3
  169. package/models/api/gridCoreApi.d.ts +1 -5
  170. package/models/api/gridRowsMetaApi.d.ts +1 -1
  171. package/models/api/index.d.ts +1 -1
  172. package/models/api/index.js +0 -1
  173. package/models/events/gridEventLookup.d.ts +13 -0
  174. package/models/gridExport.d.ts +6 -0
  175. package/models/gridHeaderFilteringModel.d.ts +1 -0
  176. package/models/gridSlotsComponent.d.ts +0 -5
  177. package/models/gridStateCommunity.d.ts +3 -0
  178. package/models/params/gridScrollParams.d.ts +5 -3
  179. package/models/props/DataGridProps.d.ts +58 -28
  180. package/modern/DataGrid/DataGrid.js +57 -17
  181. package/modern/DataGrid/useDataGridComponent.js +3 -0
  182. package/modern/DataGrid/useDataGridProps.js +6 -7
  183. package/modern/components/GridColumnHeaders.js +6 -17
  184. package/modern/components/GridHeaders.js +1 -4
  185. package/modern/components/GridPagination.js +13 -6
  186. package/modern/components/GridRow.js +4 -19
  187. package/modern/components/GridScrollArea.js +150 -0
  188. package/modern/components/cell/GridActionsCell.js +1 -1
  189. package/modern/components/cell/GridActionsCellItem.js +4 -0
  190. package/modern/components/cell/GridBooleanCell.js +3 -2
  191. package/modern/components/cell/GridCell.js +11 -3
  192. package/modern/components/columnHeaders/GridBaseColumnHeaders.js +1 -0
  193. package/modern/components/columnHeaders/GridColumnGroupHeader.js +18 -8
  194. package/modern/components/columnHeaders/GridColumnHeaderItem.js +21 -6
  195. package/modern/components/columnHeaders/GridGenericColumnHeaderItem.js +6 -5
  196. package/modern/components/containers/GridRoot.js +3 -3
  197. package/modern/components/containers/GridRootStyles.js +12 -20
  198. package/modern/components/panel/filterPanel/GridFilterInputBoolean.js +1 -1
  199. package/modern/components/panel/filterPanel/GridFilterInputDate.js +1 -1
  200. package/modern/components/panel/filterPanel/GridFilterInputSingleSelect.js +1 -1
  201. package/modern/components/panel/filterPanel/GridFilterInputValue.js +1 -1
  202. package/modern/components/toolbar/GridToolbarDensitySelector.js +5 -5
  203. package/modern/components/virtualization/GridVirtualScrollbar.js +4 -0
  204. package/modern/components/virtualization/GridVirtualScroller.js +6 -1
  205. package/modern/components/virtualization/GridVirtualScrollerFiller.js +2 -1
  206. package/modern/constants/gridClasses.js +1 -1
  207. package/modern/hooks/features/clipboard/useGridClipboard.js +4 -2
  208. package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +184 -97
  209. package/modern/hooks/features/columnResize/columnResizeSelector.js +3 -0
  210. package/modern/hooks/features/columnResize/columnResizeState.js +1 -0
  211. package/modern/hooks/features/columnResize/gridColumnResizeApi.js +10 -0
  212. package/modern/hooks/features/columnResize/index.js +3 -0
  213. package/modern/hooks/features/columnResize/useGridColumnResize.js +553 -0
  214. package/modern/hooks/features/columns/gridColumnsUtils.js +4 -20
  215. package/modern/hooks/features/density/densitySelector.js +8 -2
  216. package/modern/hooks/features/density/useGridDensity.js +21 -29
  217. package/modern/hooks/features/dimensions/useGridDimensions.js +4 -5
  218. package/modern/hooks/features/editing/useGridCellEditing.js +22 -3
  219. package/modern/hooks/features/editing/useGridRowEditing.js +1 -1
  220. package/modern/hooks/features/export/serializers/csvSerializer.js +23 -12
  221. package/modern/hooks/features/export/useGridCsvExport.js +2 -1
  222. package/modern/hooks/features/export/useGridPrintExport.js +8 -7
  223. package/modern/hooks/features/filter/gridFilterUtils.js +1 -1
  224. package/modern/hooks/features/headerFiltering/gridHeaderFilteringSelectors.js +3 -0
  225. package/modern/hooks/features/headerFiltering/useGridHeaderFiltering.js +21 -2
  226. package/modern/hooks/features/index.js +1 -0
  227. package/modern/hooks/features/pagination/gridPaginationSelector.js +8 -2
  228. package/modern/hooks/features/pagination/useGridPagination.js +8 -149
  229. package/modern/hooks/features/pagination/useGridPaginationModel.js +165 -0
  230. package/modern/hooks/features/pagination/useGridRowCount.js +94 -0
  231. package/modern/hooks/features/rowSelection/useGridRowSelection.js +3 -2
  232. package/modern/hooks/features/scroll/useGridScroll.js +1 -1
  233. package/modern/hooks/features/virtualization/gridVirtualizationSelectors.js +0 -2
  234. package/modern/hooks/features/virtualization/useGridVirtualScroller.js +211 -57
  235. package/modern/hooks/utils/useLazyRef.js +1 -11
  236. package/modern/hooks/utils/useOnMount.js +1 -7
  237. package/modern/hooks/utils/useTimeout.js +1 -36
  238. package/modern/index.js +1 -1
  239. package/modern/internals/index.js +2 -1
  240. package/modern/internals/utils/getPinnedCellOffset.js +17 -0
  241. package/modern/joy/joySlots.js +11 -50
  242. package/modern/locales/jaJP.js +3 -4
  243. package/modern/material/index.js +0 -2
  244. package/modern/models/api/index.js +0 -1
  245. package/modern/utils/cellBorderUtils.js +8 -0
  246. package/modern/utils/createSelector.js +1 -1
  247. package/modern/utils/domUtils.js +144 -0
  248. package/modern/utils/keyboardUtils.js +1 -1
  249. package/node/DataGrid/DataGrid.js +57 -17
  250. package/node/DataGrid/useDataGridComponent.js +3 -0
  251. package/node/DataGrid/useDataGridProps.js +6 -7
  252. package/node/components/GridColumnHeaders.js +6 -16
  253. package/node/components/GridHeaders.js +1 -4
  254. package/node/components/GridPagination.js +10 -4
  255. package/node/components/GridRow.js +3 -18
  256. package/node/components/GridScrollArea.js +158 -0
  257. package/node/components/cell/GridActionsCell.js +1 -1
  258. package/node/components/cell/GridActionsCellItem.js +4 -0
  259. package/node/components/cell/GridBooleanCell.js +3 -2
  260. package/node/components/cell/GridCell.js +12 -4
  261. package/node/components/columnHeaders/GridBaseColumnHeaders.js +1 -0
  262. package/node/components/columnHeaders/GridColumnGroupHeader.js +18 -8
  263. package/node/components/columnHeaders/GridColumnHeaderItem.js +21 -6
  264. package/node/components/columnHeaders/GridGenericColumnHeaderItem.js +6 -5
  265. package/node/components/containers/GridRoot.js +2 -2
  266. package/node/components/containers/GridRootStyles.js +12 -20
  267. package/node/components/panel/filterPanel/GridFilterInputBoolean.js +1 -1
  268. package/node/components/panel/filterPanel/GridFilterInputDate.js +1 -1
  269. package/node/components/panel/filterPanel/GridFilterInputSingleSelect.js +1 -1
  270. package/node/components/panel/filterPanel/GridFilterInputValue.js +1 -1
  271. package/node/components/toolbar/GridToolbarDensitySelector.js +4 -4
  272. package/node/components/virtualization/GridVirtualScrollbar.js +4 -0
  273. package/node/components/virtualization/GridVirtualScroller.js +6 -1
  274. package/node/components/virtualization/GridVirtualScrollerFiller.js +2 -1
  275. package/node/constants/gridClasses.js +1 -1
  276. package/node/hooks/features/clipboard/useGridClipboard.js +4 -2
  277. package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +190 -103
  278. package/node/hooks/features/columnResize/columnResizeSelector.js +10 -0
  279. package/node/hooks/features/columnResize/columnResizeState.js +5 -0
  280. package/node/hooks/features/columnResize/gridColumnResizeApi.js +16 -0
  281. package/node/hooks/features/columnResize/index.js +38 -0
  282. package/node/hooks/features/columnResize/useGridColumnResize.js +564 -0
  283. package/node/hooks/features/columns/gridColumnsUtils.js +4 -21
  284. package/node/hooks/features/density/densitySelector.js +9 -3
  285. package/node/hooks/features/density/useGridDensity.js +22 -30
  286. package/node/hooks/features/dimensions/useGridDimensions.js +4 -5
  287. package/node/hooks/features/editing/useGridCellEditing.js +22 -3
  288. package/node/hooks/features/editing/useGridRowEditing.js +1 -1
  289. package/node/hooks/features/export/serializers/csvSerializer.js +23 -12
  290. package/node/hooks/features/export/useGridCsvExport.js +2 -1
  291. package/node/hooks/features/export/useGridPrintExport.js +8 -7
  292. package/node/hooks/features/filter/gridFilterUtils.js +1 -1
  293. package/node/hooks/features/headerFiltering/gridHeaderFilteringSelectors.js +4 -1
  294. package/node/hooks/features/headerFiltering/useGridHeaderFiltering.js +21 -2
  295. package/node/hooks/features/index.js +11 -0
  296. package/node/hooks/features/pagination/gridPaginationSelector.js +8 -2
  297. package/node/hooks/features/pagination/useGridPagination.js +9 -153
  298. package/node/hooks/features/pagination/useGridPaginationModel.js +176 -0
  299. package/node/hooks/features/pagination/useGridRowCount.js +103 -0
  300. package/node/hooks/features/rowSelection/useGridRowSelection.js +2 -1
  301. package/node/hooks/features/scroll/useGridScroll.js +1 -1
  302. package/node/hooks/features/virtualization/gridVirtualizationSelectors.js +0 -2
  303. package/node/hooks/features/virtualization/useGridVirtualScroller.js +211 -57
  304. package/node/hooks/utils/useLazyRef.js +7 -13
  305. package/node/hooks/utils/useOnMount.js +8 -10
  306. package/node/hooks/utils/useTimeout.js +7 -37
  307. package/node/index.js +1 -1
  308. package/node/internals/index.js +27 -8
  309. package/node/internals/utils/getPinnedCellOffset.js +24 -0
  310. package/node/joy/joySlots.js +11 -50
  311. package/node/locales/jaJP.js +3 -4
  312. package/node/material/index.js +0 -2
  313. package/node/models/api/index.js +0 -11
  314. package/node/utils/cellBorderUtils.js +16 -0
  315. package/node/utils/createSelector.js +1 -1
  316. package/node/utils/domUtils.js +155 -0
  317. package/node/utils/keyboardUtils.js +1 -1
  318. package/package.json +4 -4
  319. package/utils/cellBorderUtils.d.ts +3 -0
  320. package/utils/cellBorderUtils.js +8 -0
  321. package/utils/createSelector.js +9 -9
  322. package/utils/domUtils.d.ts +14 -1
  323. package/utils/domUtils.js +144 -0
  324. package/utils/getGridLocalization.js +9 -12
  325. package/utils/keyboardUtils.js +1 -1
  326. package/components/columnHeaders/GridColumnHeadersInner.d.ts +0 -8
  327. package/components/columnHeaders/GridColumnHeadersInner.js +0 -58
  328. package/modern/components/columnHeaders/GridColumnHeadersInner.js +0 -58
  329. package/node/components/columnHeaders/GridColumnHeadersInner.js +0 -67
@@ -11,6 +11,7 @@ import { getDataGridUtilityClass } from '../../constants/gridClasses';
11
11
  import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
12
12
  import { GridGenericColumnHeaderItem } from './GridGenericColumnHeaderItem';
13
13
  import { isEventTargetInPortal } from '../../utils/domUtils';
14
+ import { shouldCellShowLeftBorder, shouldCellShowRightBorder } from '../../utils/cellBorderUtils';
14
15
  import { jsx as _jsx } from "react/jsx-runtime";
15
16
  import { jsxs as _jsxs } from "react/jsx-runtime";
16
17
  const useUtilityClasses = ownerState => {
@@ -20,14 +21,16 @@ const useUtilityClasses = ownerState => {
20
21
  isDragging,
21
22
  sortDirection,
22
23
  showRightBorder,
23
- filterItemsCounter
24
+ showLeftBorder,
25
+ filterItemsCounter,
26
+ pinnedPosition
24
27
  } = ownerState;
25
28
  const isColumnSorted = sortDirection != null;
26
29
  const isColumnFiltered = filterItemsCounter != null && filterItemsCounter > 0;
27
30
  // todo refactor to a prop on col isNumeric or ?? ie: coltype===price wont work
28
31
  const isColumnNumeric = colDef.type === 'number';
29
32
  const slots = {
30
- root: ['columnHeader', colDef.headerAlign === 'left' && 'columnHeader--alignLeft', colDef.headerAlign === 'center' && 'columnHeader--alignCenter', colDef.headerAlign === 'right' && 'columnHeader--alignRight', colDef.sortable && 'columnHeader--sortable', isDragging && 'columnHeader--moving', isColumnSorted && 'columnHeader--sorted', isColumnFiltered && 'columnHeader--filtered', isColumnNumeric && 'columnHeader--numeric', 'withBorderColor', showRightBorder && 'columnHeader--withRightBorder'],
33
+ root: ['columnHeader', colDef.headerAlign === 'left' && 'columnHeader--alignLeft', colDef.headerAlign === 'center' && 'columnHeader--alignCenter', colDef.headerAlign === 'right' && 'columnHeader--alignRight', colDef.sortable && 'columnHeader--sortable', isDragging && 'columnHeader--moving', isColumnSorted && 'columnHeader--sorted', isColumnFiltered && 'columnHeader--filtered', isColumnNumeric && 'columnHeader--numeric', 'withBorderColor', showRightBorder && 'columnHeader--withRightBorder', showLeftBorder && 'columnHeader--withLeftBorder', pinnedPosition === 'left' && 'columnHeader--pinnedLeft', pinnedPosition === 'right' && 'columnHeader--pinnedRight'],
31
34
  draggableContainer: ['columnHeaderDraggableContainer'],
32
35
  titleContainer: ['columnHeaderTitleContainer'],
33
36
  titleContainerContent: ['columnHeaderTitleContainerContent']
@@ -35,7 +38,6 @@ const useUtilityClasses = ownerState => {
35
38
  return composeClasses(slots, getDataGridUtilityClass, classes);
36
39
  };
37
40
  function GridColumnHeaderItem(props) {
38
- var _rootProps$slotProps, _colDef$sortingOrder, _rootProps$slotProps2, _colDef$headerName;
39
41
  const {
40
42
  colDef,
41
43
  columnMenuOpen,
@@ -48,7 +50,11 @@ function GridColumnHeaderItem(props) {
48
50
  hasFocus,
49
51
  tabIndex,
50
52
  disableReorder,
51
- separatorSide
53
+ separatorSide,
54
+ style,
55
+ pinnedPosition,
56
+ indexInSection,
57
+ sectionLength
52
58
  } = props;
53
59
  const apiRef = useGridPrivateApiContext();
54
60
  const rootProps = useGridRootProps();
@@ -62,9 +68,12 @@ function GridColumnHeaderItem(props) {
62
68
  if (colDef.renderHeader) {
63
69
  headerComponent = colDef.renderHeader(apiRef.current.getColumnHeaderParams(colDef.field));
64
70
  }
71
+ const showLeftBorder = shouldCellShowLeftBorder(pinnedPosition, indexInSection);
72
+ const showRightBorder = shouldCellShowRightBorder(pinnedPosition, indexInSection, sectionLength, rootProps.showCellVerticalBorder);
65
73
  const ownerState = _extends({}, props, {
66
74
  classes: rootProps.classes,
67
- showRightBorder: rootProps.showColumnVerticalBorder
75
+ showRightBorder,
76
+ showLeftBorder
68
77
  });
69
78
  const classes = useUtilityClasses(ownerState);
70
79
  const publish = React.useCallback(eventName => event => {
@@ -122,16 +131,16 @@ function GridColumnHeaderItem(props) {
122
131
  open: columnMenuOpen,
123
132
  target: iconButtonRef.current,
124
133
  ContentComponent: rootProps.slots.columnMenu,
125
- contentComponentProps: (_rootProps$slotProps = rootProps.slotProps) == null ? void 0 : _rootProps$slotProps.columnMenu,
134
+ contentComponentProps: rootProps.slotProps?.columnMenu,
126
135
  onExited: handleExited
127
136
  });
128
- const sortingOrder = (_colDef$sortingOrder = colDef.sortingOrder) != null ? _colDef$sortingOrder : rootProps.sortingOrder;
137
+ const sortingOrder = colDef.sortingOrder ?? rootProps.sortingOrder;
129
138
  const showSortIcon = (colDef.sortable || sortDirection != null) && !colDef.hideSortIcons && !rootProps.disableColumnSorting;
130
139
  const columnTitleIconButtons = /*#__PURE__*/_jsxs(React.Fragment, {
131
140
  children: [!rootProps.disableColumnFilter && /*#__PURE__*/_jsx(rootProps.slots.columnHeaderFilterIconButton, _extends({
132
141
  field: colDef.field,
133
142
  counter: filterItemsCounter
134
- }, (_rootProps$slotProps2 = rootProps.slotProps) == null ? void 0 : _rootProps$slotProps2.columnHeaderFilterIconButton)), showSortIcon && /*#__PURE__*/_jsx(GridColumnHeaderSortIcon, {
143
+ }, rootProps.slotProps?.columnHeaderFilterIconButton)), showSortIcon && /*#__PURE__*/_jsx(GridColumnHeaderSortIcon, {
135
144
  direction: sortDirection,
136
145
  index: sortIndex,
137
146
  sortingOrder: sortingOrder,
@@ -143,15 +152,15 @@ function GridColumnHeaderItem(props) {
143
152
  if (hasFocus && !columnMenuState.open) {
144
153
  const focusableElement = headerCellRef.current.querySelector('[tabindex="0"]');
145
154
  const elementToFocus = focusableElement || headerCellRef.current;
146
- elementToFocus == null || elementToFocus.focus();
147
- apiRef.current.columnHeadersContainerElementRef.current.scrollLeft = 0;
155
+ elementToFocus?.focus();
156
+ apiRef.current.columnHeadersContainerRef.current.scrollLeft = 0;
148
157
  }
149
158
  }, [apiRef, hasFocus]);
150
159
  const headerClassName = typeof colDef.headerClassName === 'function' ? colDef.headerClassName({
151
160
  field: colDef.field,
152
161
  colDef
153
162
  }) : colDef.headerClassName;
154
- const label = (_colDef$headerName = colDef.headerName) != null ? _colDef$headerName : colDef.field;
163
+ const label = colDef.headerName ?? colDef.field;
155
164
  return /*#__PURE__*/_jsx(GridGenericColumnHeaderItem, _extends({
156
165
  ref: headerCellRef,
157
166
  classes: classes,
@@ -176,7 +185,8 @@ function GridColumnHeaderItem(props) {
176
185
  "data-field": colDef.field,
177
186
  columnMenu: columnMenu,
178
187
  draggableContainerProps: draggableEventHandlers,
179
- columnHeaderSeparatorProps: columnHeaderSeparatorProps
188
+ columnHeaderSeparatorProps: columnHeaderSeparatorProps,
189
+ style: style
180
190
  }, mouseEventsHandlers));
181
191
  }
182
192
  process.env.NODE_ENV !== "production" ? GridColumnHeaderItem.propTypes = {
@@ -191,11 +201,15 @@ process.env.NODE_ENV !== "production" ? GridColumnHeaderItem.propTypes = {
191
201
  filterItemsCounter: PropTypes.number,
192
202
  hasFocus: PropTypes.bool,
193
203
  headerHeight: PropTypes.number.isRequired,
204
+ indexInSection: PropTypes.number.isRequired,
194
205
  isDragging: PropTypes.bool.isRequired,
195
206
  isResizing: PropTypes.bool.isRequired,
207
+ pinnedPosition: PropTypes.oneOf(['left', 'right']),
208
+ sectionLength: PropTypes.number.isRequired,
196
209
  separatorSide: PropTypes.oneOf(['left', 'right']),
197
210
  sortDirection: PropTypes.oneOf(['asc', 'desc']),
198
211
  sortIndex: PropTypes.number,
212
+ style: PropTypes.object,
199
213
  tabIndex: PropTypes.oneOf([-1, 0]).isRequired
200
214
  } : void 0;
201
215
  const Memoized = fastMemo(GridColumnHeaderItem);
@@ -35,7 +35,6 @@ function getIcon(icons, direction, className, sortingOrder) {
35
35
  }, iconProps)) : null;
36
36
  }
37
37
  function GridColumnHeaderSortIconRaw(props) {
38
- var _rootProps$slotProps;
39
38
  const {
40
39
  direction,
41
40
  index,
@@ -58,7 +57,7 @@ function GridColumnHeaderSortIconRaw(props) {
58
57
  title: apiRef.current.getLocaleText('columnHeaderSortIconLabel'),
59
58
  size: "small",
60
59
  disabled: disabled
61
- }, (_rootProps$slotProps = rootProps.slotProps) == null ? void 0 : _rootProps$slotProps.baseIconButton, {
60
+ }, rootProps.slotProps?.baseIconButton, {
62
61
  children: iconElement
63
62
  }));
64
63
  return /*#__PURE__*/_jsxs(GridIconButtonContainer, {
@@ -44,7 +44,6 @@ const ColumnHeaderInnerTitle = /*#__PURE__*/React.forwardRef(function ColumnHead
44
44
  });
45
45
  // No React.memo here as if we display the sort icon, we need to recalculate the isOver
46
46
  function GridColumnHeaderTitle(props) {
47
- var _rootProps$slotProps;
48
47
  const {
49
48
  label,
50
49
  description
@@ -53,7 +52,7 @@ function GridColumnHeaderTitle(props) {
53
52
  const titleRef = React.useRef(null);
54
53
  const [tooltip, setTooltip] = React.useState('');
55
54
  const handleMouseOver = React.useCallback(() => {
56
- if (!description && titleRef != null && titleRef.current) {
55
+ if (!description && titleRef?.current) {
57
56
  const isOver = isOverflown(titleRef.current);
58
57
  if (isOver) {
59
58
  setTooltip(label);
@@ -64,7 +63,7 @@ function GridColumnHeaderTitle(props) {
64
63
  }, [description, label]);
65
64
  return /*#__PURE__*/_jsx(rootProps.slots.baseTooltip, _extends({
66
65
  title: description || tooltip
67
- }, (_rootProps$slotProps = rootProps.slotProps) == null ? void 0 : _rootProps$slotProps.baseTooltip, {
66
+ }, rootProps.slotProps?.baseTooltip, {
68
67
  children: /*#__PURE__*/_jsx(ColumnHeaderInnerTitle, {
69
68
  onMouseOver: handleMouseOver,
70
69
  ref: titleRef,
@@ -26,6 +26,7 @@ interface GridGenericColumnHeaderItemProps extends Pick<GridStateColDef, 'header
26
26
  label: string;
27
27
  draggableContainerProps?: Partial<React.HTMLProps<HTMLDivElement>>;
28
28
  columnHeaderSeparatorProps?: Partial<GridColumnHeaderSeparatorProps>;
29
+ style?: React.CSSProperties;
29
30
  }
30
31
  declare const GridGenericColumnHeaderItem: React.ForwardRefExoticComponent<GridGenericColumnHeaderItemProps & React.RefAttributes<unknown>>;
31
32
  export { GridGenericColumnHeaderItem };
@@ -1,6 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
- const _excluded = ["classes", "columnMenuOpen", "colIndex", "height", "isResizing", "sortDirection", "hasFocus", "tabIndex", "separatorSide", "isDraggable", "headerComponent", "description", "elementId", "width", "columnMenuIconButton", "columnMenu", "columnTitleIconButtons", "headerClassName", "label", "resizable", "draggableContainerProps", "columnHeaderSeparatorProps"];
3
+ const _excluded = ["classes", "columnMenuOpen", "colIndex", "height", "isResizing", "sortDirection", "hasFocus", "tabIndex", "separatorSide", "isDraggable", "headerComponent", "description", "elementId", "width", "columnMenuIconButton", "columnMenu", "columnTitleIconButtons", "headerClassName", "label", "resizable", "draggableContainerProps", "columnHeaderSeparatorProps", "style"];
4
4
  import * as React from 'react';
5
5
  import clsx from 'clsx';
6
6
  import { unstable_useForkRef as useForkRef } from '@mui/utils';
@@ -32,7 +32,8 @@ const GridGenericColumnHeaderItem = /*#__PURE__*/React.forwardRef(function GridG
32
32
  label,
33
33
  resizable,
34
34
  draggableContainerProps,
35
- columnHeaderSeparatorProps
35
+ columnHeaderSeparatorProps,
36
+ style
36
37
  } = props,
37
38
  other = _objectWithoutPropertiesLoose(props, _excluded);
38
39
  const apiRef = useGridPrivateApiContext();
@@ -54,19 +55,19 @@ const GridGenericColumnHeaderItem = /*#__PURE__*/React.forwardRef(function GridG
54
55
  if (hasFocus && !columnMenuState.open) {
55
56
  const focusableElement = headerCellRef.current.querySelector('[tabindex="0"]');
56
57
  const elementToFocus = focusableElement || headerCellRef.current;
57
- elementToFocus == null || elementToFocus.focus();
58
- apiRef.current.columnHeadersContainerElementRef.current.scrollLeft = 0;
58
+ elementToFocus?.focus();
59
+ apiRef.current.columnHeadersContainerRef.current.scrollLeft = 0;
59
60
  }
60
61
  }, [apiRef, hasFocus]);
61
62
  return /*#__PURE__*/_jsxs("div", _extends({
62
63
  ref: handleRef,
63
64
  className: clsx(classes.root, headerClassName),
64
- style: {
65
+ style: _extends({}, style, {
65
66
  height,
66
67
  width,
67
68
  minWidth: width,
68
69
  maxWidth: width
69
- },
70
+ }),
70
71
  role: "columnheader",
71
72
  tabIndex: tabIndex,
72
73
  "aria-colindex": colIndex + 1,
@@ -18,7 +18,6 @@ const useUtilityClasses = ownerState => {
18
18
  return composeClasses(slots, getDataGridUtilityClass, classes);
19
19
  };
20
20
  const GridCellCheckboxForwardRef = /*#__PURE__*/React.forwardRef(function GridCellCheckboxRenderer(props, ref) {
21
- var _rootProps$slotProps;
22
21
  const {
23
22
  field,
24
23
  id,
@@ -54,9 +53,8 @@ const GridCellCheckboxForwardRef = /*#__PURE__*/React.forwardRef(function GridCe
54
53
  }, [apiRef, tabIndex, id, field]);
55
54
  React.useEffect(() => {
56
55
  if (hasFocus) {
57
- var _checkboxElement$curr;
58
- const input = (_checkboxElement$curr = checkboxElement.current) == null ? void 0 : _checkboxElement$curr.querySelector('input');
59
- input == null || input.focus({
56
+ const input = checkboxElement.current?.querySelector('input');
57
+ input?.focus({
60
58
  preventScroll: true
61
59
  });
62
60
  } else if (rippleRef.current) {
@@ -88,7 +86,7 @@ const GridCellCheckboxForwardRef = /*#__PURE__*/React.forwardRef(function GridCe
88
86
  onKeyDown: handleKeyDown,
89
87
  disabled: !isSelectable,
90
88
  touchRippleRef: rippleRef /* FIXME: typing error */
91
- }, (_rootProps$slotProps = rootProps.slotProps) == null ? void 0 : _rootProps$slotProps.baseCheckbox, other));
89
+ }, rootProps.slotProps?.baseCheckbox, other));
92
90
  });
93
91
  process.env.NODE_ENV !== "production" ? GridCellCheckboxForwardRef.propTypes = {
94
92
  // ----------------------------- Warning --------------------------------
@@ -24,7 +24,6 @@ const useUtilityClasses = ownerState => {
24
24
  return composeClasses(slots, getDataGridUtilityClass, classes);
25
25
  };
26
26
  const GridHeaderCheckbox = /*#__PURE__*/React.forwardRef(function GridHeaderCheckbox(props, ref) {
27
- var _rootProps$slotProps;
28
27
  const other = _objectWithoutPropertiesLoose(props, _excluded);
29
28
  const [, forceUpdate] = React.useState(false);
30
29
  const apiRef = useGridApiContext();
@@ -106,7 +105,7 @@ const GridHeaderCheckbox = /*#__PURE__*/React.forwardRef(function GridHeaderChec
106
105
  tabIndex: tabIndex,
107
106
  onKeyDown: handleKeyDown,
108
107
  disabled: !isMultipleRowSelectionEnabled(rootProps)
109
- }, (_rootProps$slotProps = rootProps.slotProps) == null ? void 0 : _rootProps$slotProps.baseCheckbox, other));
108
+ }, rootProps.slotProps?.baseCheckbox, other));
110
109
  });
111
110
  process.env.NODE_ENV !== "production" ? GridHeaderCheckbox.propTypes = {
112
111
  // ----------------------------- Warning --------------------------------
@@ -28,7 +28,6 @@ const useUtilityClasses = ownerState => {
28
28
  };
29
29
  const collator = new Intl.Collator();
30
30
  function GridColumnsManagement(props) {
31
- var _rootProps$slotProps, _rootProps$slotProps3, _rootProps$slotProps4;
32
31
  const apiRef = useGridApiContext();
33
32
  const searchInputRef = React.useRef(null);
34
33
  const columns = useGridSelector(apiRef, gridColumnDefinitionsSelector);
@@ -132,27 +131,24 @@ function GridColumnsManagement(props) {
132
131
  }
133
132
  },
134
133
  fullWidth: true
135
- }, (_rootProps$slotProps = rootProps.slotProps) == null ? void 0 : _rootProps$slotProps.baseTextField))
134
+ }, rootProps.slotProps?.baseTextField))
136
135
  }), /*#__PURE__*/_jsxs(GridColumnsManagementBody, {
137
136
  className: classes.root,
138
137
  ownerState: rootProps,
139
- children: [currentColumns.map(column => {
140
- var _rootProps$slotProps2;
141
- return /*#__PURE__*/_jsx(FormControlLabel, {
142
- className: classes.row,
143
- control: /*#__PURE__*/_jsx(rootProps.slots.baseCheckbox, _extends({
144
- disabled: column.hideable === false,
145
- checked: columnVisibilityModel[column.field] !== false,
146
- onClick: toggleColumn,
147
- name: column.field,
148
- sx: {
149
- p: 0.5
150
- },
151
- inputRef: isFirstHideableColumn(column) ? firstSwitchRef : undefined
152
- }, (_rootProps$slotProps2 = rootProps.slotProps) == null ? void 0 : _rootProps$slotProps2.baseCheckbox)),
153
- label: column.headerName || column.field
154
- }, column.field);
155
- }), currentColumns.length === 0 && /*#__PURE__*/_jsx(GridColumnsManagementEmptyText, {
138
+ children: [currentColumns.map(column => /*#__PURE__*/_jsx(FormControlLabel, {
139
+ className: classes.row,
140
+ control: /*#__PURE__*/_jsx(rootProps.slots.baseCheckbox, _extends({
141
+ disabled: column.hideable === false,
142
+ checked: columnVisibilityModel[column.field] !== false,
143
+ onClick: toggleColumn,
144
+ name: column.field,
145
+ sx: {
146
+ p: 0.5
147
+ },
148
+ inputRef: isFirstHideableColumn(column) ? firstSwitchRef : undefined
149
+ }, rootProps.slotProps?.baseCheckbox)),
150
+ label: column.headerName || column.field
151
+ }, column.field)), currentColumns.length === 0 && /*#__PURE__*/_jsx(GridColumnsManagementEmptyText, {
156
152
  ownerState: rootProps,
157
153
  children: apiRef.current.getLocaleText('columnsManagementNoColumns')
158
154
  })]
@@ -169,12 +165,12 @@ function GridColumnsManagement(props) {
169
165
  sx: {
170
166
  p: 0.5
171
167
  }
172
- }, (_rootProps$slotProps3 = rootProps.slotProps) == null ? void 0 : _rootProps$slotProps3.baseCheckbox)),
168
+ }, rootProps.slotProps?.baseCheckbox)),
173
169
  label: apiRef.current.getLocaleText('columnsManagementShowHideAllText')
174
170
  }) : /*#__PURE__*/_jsx("span", {}), !disableResetButton ? /*#__PURE__*/_jsx(rootProps.slots.baseButton, _extends({
175
171
  onClick: () => apiRef.current.setColumnVisibilityModel(initialColumnVisibilityModel),
176
172
  disabled: isResetDisabled
177
- }, (_rootProps$slotProps4 = rootProps.slotProps) == null ? void 0 : _rootProps$slotProps4.baseButton, {
173
+ }, rootProps.slotProps?.baseButton, {
178
174
  children: "Reset"
179
175
  })) : null]
180
176
  }) : null]
@@ -11,7 +11,7 @@ import { useGridSelector } from '../../hooks/utils/useGridSelector';
11
11
  import { useGridPrivateApiContext } from '../../hooks/utils/useGridPrivateApiContext';
12
12
  import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
13
13
  import { getDataGridUtilityClass } from '../../constants/gridClasses';
14
- import { gridDensityValueSelector } from '../../hooks/features/density/densitySelector';
14
+ import { gridDensitySelector } from '../../hooks/features/density/densitySelector';
15
15
  import { jsx as _jsx } from "react/jsx-runtime";
16
16
  import { jsxs as _jsxs } from "react/jsx-runtime";
17
17
  const useUtilityClasses = ownerState => {
@@ -39,11 +39,11 @@ const GridRoot = /*#__PURE__*/React.forwardRef(function GridRoot(props, ref) {
39
39
  } = props,
40
40
  other = _objectWithoutPropertiesLoose(props, _excluded);
41
41
  const apiRef = useGridPrivateApiContext();
42
- const densityValue = useGridSelector(apiRef, gridDensityValueSelector);
42
+ const density = useGridSelector(apiRef, gridDensitySelector);
43
43
  const rootElementRef = apiRef.current.rootElementRef;
44
44
  const handleRef = useForkRef(rootElementRef, ref);
45
45
  const ownerState = _extends({}, rootProps, {
46
- density: densityValue
46
+ density
47
47
  });
48
48
  const classes = useUtilityClasses(ownerState);
49
49
 
@@ -307,14 +307,6 @@ export const GridRootStyles = styled('div', {
307
307
  borderBottomStyle: 'solid',
308
308
  boxSizing: 'border-box'
309
309
  },
310
- [`& .${c['columnHeader--filledGroup']}.${c['columnHeader--showColumnBorder']} .${c.columnHeaderTitleContainer}`]: {
311
- borderBottom: `none`
312
- },
313
- [`& .${c['columnHeader--filledGroup']}.${c['columnHeader--showColumnBorder']}`]: {
314
- borderBottomWidth: '1px',
315
- borderBottomStyle: 'solid',
316
- boxSizing: 'border-box'
317
- },
318
310
  [`& .${c.sortIcon}, & .${c.filterIcon}`]: {
319
311
  fontSize: 'inherit'
320
312
  },
@@ -338,6 +330,12 @@ export const GridRootStyles = styled('div', {
338
330
  [`& .${c['columnHeader--moving']}`]: {
339
331
  backgroundColor: (t.vars || t).palette.action.hover
340
332
  },
333
+ [`& .${c['columnHeader--pinnedLeft']}, & .${c['columnHeader--pinnedRight']}`]: {
334
+ position: 'sticky',
335
+ zIndex: 4,
336
+ // Should be above the column separator
337
+ background: 'var(--DataGrid-pinnedBackground)'
338
+ },
341
339
  [`& .${c.columnSeparator}`]: {
342
340
  visibility: 'hidden',
343
341
  position: 'absolute',
@@ -428,9 +426,6 @@ export const GridRootStyles = styled('div', {
428
426
  [`& .${c['container--top']}, & .${c['container--bottom']}`]: {
429
427
  '[role=row]': {
430
428
  background: 'var(--DataGrid-containerBackground)'
431
- },
432
- [`.${c.pinnedColumnHeaders} [role=row]`]: {
433
- background: 'var(--DataGrid-pinnedBackground)'
434
429
  }
435
430
  },
436
431
  /* Cell styles */
@@ -520,20 +515,16 @@ export const GridRootStyles = styled('div', {
520
515
  [`.${c.withBorderColor}`]: {
521
516
  borderColor
522
517
  },
523
- [`& .${c['cell--withLeftBorder']}`]: {
518
+ [`& .${c['cell--withLeftBorder']}, & .${c['columnHeader--withLeftBorder']}`]: {
524
519
  borderLeftColor: 'var(--DataGrid-rowBorderColor)',
525
520
  borderLeftWidth: '1px',
526
521
  borderLeftStyle: 'solid'
527
522
  },
528
- [`& .${c['cell--withRightBorder']}`]: {
523
+ [`& .${c['cell--withRightBorder']}, & .${c['columnHeader--withRightBorder']}`]: {
529
524
  borderRightColor: 'var(--DataGrid-rowBorderColor)',
530
525
  borderRightWidth: '1px',
531
526
  borderRightStyle: 'solid'
532
527
  },
533
- [`& .${c['columnHeader--withRightBorder']}`]: {
534
- borderRightWidth: '1px',
535
- borderRightStyle: 'solid'
536
- },
537
528
  [`& .${c['cell--flex']}`]: {
538
529
  display: 'flex',
539
530
  alignItems: 'center',
@@ -634,12 +625,13 @@ export const GridRootStyles = styled('div', {
634
625
  borderTop: '1px solid var(--DataGrid-rowBorderColor)'
635
626
  },
636
627
  [`&.${c['scrollbarFiller--pinnedRight']}`]: {
637
- backgroundColor: 'var(--DataGrid-pinnedBackground)'
638
- },
639
- [`&.${c['scrollbarFiller--pinnedRight']}:not(.${c['scrollbarFiller--header']})`]: {
628
+ backgroundColor: 'var(--DataGrid-pinnedBackground)',
640
629
  position: 'sticky',
641
630
  right: 0
642
631
  }
632
+ },
633
+ [`& .${c.filler}`]: {
634
+ flex: 1
643
635
  }
644
636
  });
645
637
  return gridStyle;
@@ -40,7 +40,6 @@ const transformOrigin = {
40
40
  'bottom-end': 'top right'
41
41
  };
42
42
  function GridMenu(props) {
43
- var _rootProps$slotProps;
44
43
  const {
45
44
  open,
46
45
  target,
@@ -59,8 +58,7 @@ function GridMenu(props) {
59
58
  if (open) {
60
59
  savedFocusRef.current = document.activeElement instanceof HTMLElement ? document.activeElement : null;
61
60
  } else {
62
- var _savedFocusRef$curren, _savedFocusRef$curren2;
63
- (_savedFocusRef$curren = savedFocusRef.current) == null || (_savedFocusRef$curren2 = _savedFocusRef$curren.focus) == null || _savedFocusRef$curren2.call(_savedFocusRef$curren);
61
+ savedFocusRef.current?.focus?.();
64
62
  savedFocusRef.current = null;
65
63
  }
66
64
  }, [open]);
@@ -80,7 +78,7 @@ function GridMenu(props) {
80
78
  }
81
79
  };
82
80
  const handleClickAway = event => {
83
- if (event.target && (target === event.target || target != null && target.contains(event.target))) {
81
+ if (event.target && (target === event.target || target?.contains(event.target))) {
84
82
  return;
85
83
  }
86
84
  onClose(event);
@@ -93,7 +91,7 @@ function GridMenu(props) {
93
91
  anchorEl: target,
94
92
  transition: true,
95
93
  placement: position
96
- }, other, (_rootProps$slotProps = rootProps.slotProps) == null ? void 0 : _rootProps$slotProps.basePopper, {
94
+ }, other, rootProps.slotProps?.basePopper, {
97
95
  children: ({
98
96
  TransitionProps,
99
97
  placement
@@ -104,7 +102,7 @@ function GridMenu(props) {
104
102
  style: {
105
103
  transformOrigin: transformOrigin[placement]
106
104
  },
107
- onExited: handleExited(TransitionProps == null ? void 0 : TransitionProps.onExited),
105
+ onExited: handleExited(TransitionProps?.onExited),
108
106
  children: /*#__PURE__*/_jsx(Paper, {
109
107
  children: children
110
108
  })
@@ -21,7 +21,7 @@ function GridColumnHeaderMenu({
21
21
  if (event) {
22
22
  // Prevent triggering the sorting
23
23
  event.stopPropagation();
24
- if (target != null && target.contains(event.target)) {
24
+ if (target?.contains(event.target)) {
25
25
  return;
26
26
  }
27
27
  }
@@ -10,7 +10,6 @@ import { useGridRootProps } from '../../../../hooks/utils/useGridRootProps';
10
10
  import { jsx as _jsx } from "react/jsx-runtime";
11
11
  import { jsxs as _jsxs } from "react/jsx-runtime";
12
12
  function GridColumnMenuSortItem(props) {
13
- var _colDef$sortingOrder;
14
13
  const {
15
14
  colDef,
16
15
  onClick
@@ -23,9 +22,9 @@ function GridColumnMenuSortItem(props) {
23
22
  return null;
24
23
  }
25
24
  const sortItem = sortModel.find(item => item.field === colDef.field);
26
- return sortItem == null ? void 0 : sortItem.sort;
25
+ return sortItem?.sort;
27
26
  }, [colDef, sortModel]);
28
- const sortingOrder = (_colDef$sortingOrder = colDef.sortingOrder) != null ? _colDef$sortingOrder : rootProps.sortingOrder;
27
+ const sortingOrder = colDef.sortingOrder ?? rootProps.sortingOrder;
29
28
  const onSortMenuItemClick = React.useCallback(event => {
30
29
  onClick(event);
31
30
  const direction = event.currentTarget.getAttribute('data-value') || null;
@@ -6,10 +6,9 @@ import { GridColumnsManagement } from '../columnsManagement';
6
6
  import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
7
7
  import { jsx as _jsx } from "react/jsx-runtime";
8
8
  function GridColumnsPanel(props) {
9
- var _rootProps$slotProps;
10
9
  const rootProps = useGridRootProps();
11
10
  return /*#__PURE__*/_jsx(GridPanelWrapper, _extends({}, props, {
12
- children: /*#__PURE__*/_jsx(GridColumnsManagement, _extends({}, (_rootProps$slotProps = rootProps.slotProps) == null ? void 0 : _rootProps$slotProps.columnsManagement))
11
+ children: /*#__PURE__*/_jsx(GridColumnsManagement, _extends({}, rootProps.slotProps?.columnsManagement))
13
12
  }));
14
13
  }
15
14
  process.env.NODE_ENV !== "production" ? GridColumnsPanel.propTypes = {
@@ -16,16 +16,7 @@ export interface GridPanelProps extends Partial<React.ComponentProps<typeof Grid
16
16
  open: boolean;
17
17
  }
18
18
  export declare const gridPanelClasses: Record<keyof GridPanelClasses, string>;
19
- declare const GridPanelRoot: import("@emotion/styled").StyledComponent<Pick<Omit<import("@mui/base").PopperProps, "direction"> & {
20
- component?: React.ElementType<any, keyof React.JSX.IntrinsicElements> | undefined;
21
- components?: {
22
- Root?: React.ElementType<any, keyof React.JSX.IntrinsicElements> | undefined;
23
- } | undefined;
24
- componentsProps?: {
25
- root?: import("@mui/base").SlotComponentProps<"div", import("@mui/base").PopperRootSlotPropsOverrides, import("@mui/base").PopperOwnProps> | undefined;
26
- } | undefined;
27
- sx?: import("@mui/material/styles").SxProps<import("@mui/material/styles").Theme> | undefined;
28
- } & React.RefAttributes<HTMLDivElement>, "hidden" | "color" | "content" | "style" | "open" | "translate" | "container" | "transition" | "slot" | "title" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "autoFocus" | "className" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "id" | "lang" | "nonce" | "spellCheck" | "tabIndex" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "rel" | "resource" | "rev" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-braillelabel" | "aria-brailleroledescription" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colindextext" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-description" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowindextext" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "children" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onResize" | "onResizeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "component" | "sx" | "components" | "slotProps" | "slots" | "placement" | "disablePortal" | "keepMounted" | "modifiers" | "anchorEl" | "popperOptions" | "popperRef" | "componentsProps" | keyof React.RefAttributes<HTMLDivElement>> & import("@mui/system").MUIStyledCommonProps<import("@mui/material/styles").Theme> & {
19
+ declare const GridPanelRoot: import("@emotion/styled").StyledComponent<Pick<import("@mui/material/Popper").PopperProps & React.RefAttributes<HTMLDivElement>, "hidden" | "color" | "content" | "style" | "open" | "translate" | "container" | "transition" | "slot" | "title" | "ref" | "key" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "autoFocus" | "className" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "id" | "lang" | "nonce" | "spellCheck" | "tabIndex" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "rel" | "resource" | "rev" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-braillelabel" | "aria-brailleroledescription" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colindextext" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-description" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowindextext" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "children" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onResize" | "onResizeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "component" | "sx" | "components" | "slotProps" | "slots" | "placement" | "disablePortal" | "keepMounted" | "modifiers" | "anchorEl" | "popperOptions" | "popperRef" | "componentsProps"> & import("@mui/system").MUIStyledCommonProps<import("@mui/material/styles").Theme> & {
29
20
  ownerState: OwnerState;
30
21
  }, {}, {}>;
31
22
  declare const GridPanel: React.ForwardRefExoticComponent<Omit<GridPanelProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
@@ -69,8 +69,7 @@ const GridPanel = /*#__PURE__*/React.forwardRef((props, ref) => {
69
69
  }], []);
70
70
  const [anchorEl, setAnchorEl] = React.useState(null);
71
71
  React.useEffect(() => {
72
- var _apiRef$current$rootE;
73
- const panelAnchor = (_apiRef$current$rootE = apiRef.current.rootElementRef) == null || (_apiRef$current$rootE = _apiRef$current$rootE.current) == null ? void 0 : _apiRef$current$rootE.querySelector('[data-id="gridPanelAnchor"]');
72
+ const panelAnchor = apiRef.current.rootElementRef?.current?.querySelector('[data-id="gridPanelAnchor"]');
74
73
  if (panelAnchor) {
75
74
  setAnchorEl(panelAnchor);
76
75
  }
@@ -8,19 +8,18 @@ import { useGridApiContext } from '../../hooks/utils/useGridApiContext';
8
8
  import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
9
9
  import { jsx as _jsx } from "react/jsx-runtime";
10
10
  export const GridPreferencesPanel = /*#__PURE__*/React.forwardRef(function GridPreferencesPanel(props, ref) {
11
- var _preferencePanelState, _rootProps$slotProps, _rootProps$slotProps2;
12
11
  const apiRef = useGridApiContext();
13
12
  const columns = useGridSelector(apiRef, gridColumnDefinitionsSelector);
14
13
  const rootProps = useGridRootProps();
15
14
  const preferencePanelState = useGridSelector(apiRef, gridPreferencePanelStateSelector);
16
- const panelContent = apiRef.current.unstable_applyPipeProcessors('preferencePanel', null, (_preferencePanelState = preferencePanelState.openedPanelValue) != null ? _preferencePanelState : GridPreferencePanelsValue.filters);
15
+ const panelContent = apiRef.current.unstable_applyPipeProcessors('preferencePanel', null, preferencePanelState.openedPanelValue ?? GridPreferencePanelsValue.filters);
17
16
  return /*#__PURE__*/_jsx(rootProps.slots.panel, _extends({
18
17
  ref: ref,
19
18
  as: rootProps.slots.basePopper,
20
19
  open: columns.length > 0 && preferencePanelState.open,
21
20
  id: preferencePanelState.panelId,
22
21
  "aria-labelledby": preferencePanelState.labelId
23
- }, (_rootProps$slotProps = rootProps.slotProps) == null ? void 0 : _rootProps$slotProps.panel, props, (_rootProps$slotProps2 = rootProps.slotProps) == null ? void 0 : _rootProps$slotProps2.basePopper, {
22
+ }, rootProps.slotProps?.panel, props, rootProps.slotProps?.basePopper, {
24
23
  children: panelContent
25
24
  }));
26
25
  });