@mui/x-data-grid 8.4.0 → 8.5.1

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 (214) hide show
  1. package/CHANGELOG.md +215 -0
  2. package/DataGrid/DataGrid.js +4 -3
  3. package/components/GridColumnHeaders.js +1 -0
  4. package/components/GridFooter.js +1 -0
  5. package/components/GridLoadingOverlay.js +1 -0
  6. package/components/GridNoColumnsOverlay.js +1 -0
  7. package/components/GridNoResultsOverlay.js +2 -1
  8. package/components/GridNoRowsOverlay.js +1 -0
  9. package/components/GridRow.js +3 -2
  10. package/components/GridRowCount.js +1 -0
  11. package/components/GridSelectedRowCount.js +1 -0
  12. package/components/GridShadowScrollArea.js +1 -0
  13. package/components/GridSkeletonLoadingOverlay.js +3 -1
  14. package/components/cell/GridActionsCell.js +3 -3
  15. package/components/cell/GridActionsCellItem.js +1 -0
  16. package/components/cell/GridCell.js +11 -7
  17. package/components/cell/GridEditBooleanCell.js +6 -4
  18. package/components/cell/GridEditDateCell.js +4 -3
  19. package/components/cell/GridEditInputCell.js +5 -3
  20. package/components/cell/GridEditSingleSelectCell.js +2 -2
  21. package/components/cell/GridSkeletonCell.js +6 -5
  22. package/components/columnHeaders/GridBaseColumnHeaders.js +2 -1
  23. package/components/columnHeaders/GridColumnGroupHeader.js +6 -5
  24. package/components/columnHeaders/GridColumnHeaderFilterIconButton.js +5 -4
  25. package/components/columnHeaders/GridColumnHeaderItem.js +7 -6
  26. package/components/columnHeaders/GridColumnHeaderSeparator.js +4 -3
  27. package/components/columnHeaders/GridColumnHeaderTitle.js +1 -0
  28. package/components/columnHeaders/GridGenericColumnHeaderItem.js +4 -3
  29. package/components/columnHeaders/GridIconButtonContainer.js +2 -1
  30. package/components/columnSelection/GridCellCheckboxRenderer.js +5 -4
  31. package/components/columnSelection/GridHeaderCheckbox.js +1 -0
  32. package/components/columnsManagement/GridColumnsManagement.js +2 -2
  33. package/components/columnsPanel/ColumnsPanelTrigger.d.ts +1 -1
  34. package/components/columnsPanel/ColumnsPanelTrigger.js +3 -2
  35. package/components/containers/GridFooterContainer.js +1 -0
  36. package/components/containers/GridOverlay.js +1 -0
  37. package/components/containers/GridRoot.js +7 -4
  38. package/components/containers/GridRootStyles.d.ts +1 -1
  39. package/components/containers/GridRootStyles.js +7 -1
  40. package/components/containers/GridToolbarContainer.js +1 -0
  41. package/components/export/ExportCsv.d.ts +1 -1
  42. package/components/export/ExportCsv.js +3 -2
  43. package/components/export/ExportPrint.d.ts +1 -1
  44. package/components/export/ExportPrint.js +3 -2
  45. package/components/filterPanel/FilterPanelTrigger.d.ts +1 -1
  46. package/components/filterPanel/FilterPanelTrigger.js +3 -2
  47. package/components/menu/GridMenu.js +6 -4
  48. package/components/menu/columnMenu/GridColumnMenu.js +2 -0
  49. package/components/menu/columnMenu/GridColumnMenuContainer.js +1 -0
  50. package/components/panel/GridPanel.js +3 -2
  51. package/components/panel/GridPanelWrapper.js +2 -1
  52. package/components/panel/filterPanel/GridFilterForm.js +10 -7
  53. package/components/panel/filterPanel/GridFilterInputBoolean.js +5 -4
  54. package/components/panel/filterPanel/GridFilterInputDate.js +2 -2
  55. package/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +2 -2
  56. package/components/panel/filterPanel/GridFilterInputMultipleValue.js +2 -2
  57. package/components/panel/filterPanel/GridFilterInputSingleSelect.js +3 -3
  58. package/components/panel/filterPanel/GridFilterInputValue.js +2 -2
  59. package/components/panel/filterPanel/GridFilterPanel.js +1 -0
  60. package/components/quickFilter/QuickFilter.d.ts +1 -1
  61. package/components/quickFilter/QuickFilter.js +4 -4
  62. package/components/quickFilter/QuickFilterClear.d.ts +1 -1
  63. package/components/quickFilter/QuickFilterClear.js +3 -2
  64. package/components/quickFilter/QuickFilterControl.d.ts +1 -1
  65. package/components/quickFilter/QuickFilterControl.js +5 -4
  66. package/components/quickFilter/QuickFilterTrigger.d.ts +1 -1
  67. package/components/quickFilter/QuickFilterTrigger.js +5 -4
  68. package/components/toolbar/GridToolbar.js +3 -2
  69. package/components/toolbar/GridToolbarColumnsButton.js +1 -0
  70. package/components/toolbar/GridToolbarDensitySelector.js +6 -4
  71. package/components/toolbar/GridToolbarExport.js +1 -0
  72. package/components/toolbar/GridToolbarExportContainer.js +6 -4
  73. package/components/toolbar/GridToolbarFilterButton.js +8 -5
  74. package/components/toolbarV8/Toolbar.d.ts +1 -1
  75. package/components/toolbarV8/Toolbar.js +3 -2
  76. package/components/toolbarV8/ToolbarButton.d.ts +1 -1
  77. package/components/toolbarV8/ToolbarButton.js +5 -4
  78. package/components/virtualization/GridMainContainer.js +2 -1
  79. package/components/virtualization/GridVirtualScrollbar.js +2 -1
  80. package/components/virtualization/GridVirtualScrollerContent.js +2 -1
  81. package/components/virtualization/GridVirtualScrollerRenderZone.js +2 -1
  82. package/constants/gridClasses.d.ts +4 -0
  83. package/constants/gridClasses.js +5 -3
  84. package/esm/DataGrid/DataGrid.js +4 -3
  85. package/esm/components/GridColumnHeaders.js +1 -0
  86. package/esm/components/GridFooter.js +1 -0
  87. package/esm/components/GridLoadingOverlay.js +1 -0
  88. package/esm/components/GridNoColumnsOverlay.js +1 -0
  89. package/esm/components/GridNoResultsOverlay.js +2 -1
  90. package/esm/components/GridNoRowsOverlay.js +1 -0
  91. package/esm/components/GridRow.js +2 -1
  92. package/esm/components/GridRowCount.js +1 -0
  93. package/esm/components/GridSelectedRowCount.js +1 -0
  94. package/esm/components/GridShadowScrollArea.js +1 -0
  95. package/esm/components/GridSkeletonLoadingOverlay.js +3 -1
  96. package/esm/components/cell/GridActionsCell.js +1 -1
  97. package/esm/components/cell/GridActionsCellItem.js +1 -0
  98. package/esm/components/cell/GridCell.js +5 -1
  99. package/esm/components/cell/GridEditBooleanCell.js +3 -1
  100. package/esm/components/cell/GridEditDateCell.js +2 -1
  101. package/esm/components/cell/GridEditInputCell.js +3 -1
  102. package/esm/components/cell/GridEditSingleSelectCell.js +1 -1
  103. package/esm/components/cell/GridSkeletonCell.js +2 -1
  104. package/esm/components/columnHeaders/GridBaseColumnHeaders.js +2 -1
  105. package/esm/components/columnHeaders/GridColumnGroupHeader.js +2 -1
  106. package/esm/components/columnHeaders/GridColumnHeaderFilterIconButton.js +2 -1
  107. package/esm/components/columnHeaders/GridColumnHeaderItem.js +2 -1
  108. package/esm/components/columnHeaders/GridColumnHeaderSeparator.js +2 -1
  109. package/esm/components/columnHeaders/GridColumnHeaderTitle.js +1 -0
  110. package/esm/components/columnHeaders/GridGenericColumnHeaderItem.js +2 -1
  111. package/esm/components/columnHeaders/GridIconButtonContainer.js +2 -1
  112. package/esm/components/columnSelection/GridCellCheckboxRenderer.js +2 -1
  113. package/esm/components/columnSelection/GridHeaderCheckbox.js +1 -0
  114. package/esm/components/columnsManagement/GridColumnsManagement.js +2 -2
  115. package/esm/components/columnsPanel/ColumnsPanelTrigger.d.ts +1 -1
  116. package/esm/components/columnsPanel/ColumnsPanelTrigger.js +3 -2
  117. package/esm/components/containers/GridFooterContainer.js +1 -0
  118. package/esm/components/containers/GridOverlay.js +1 -0
  119. package/esm/components/containers/GridRoot.js +4 -1
  120. package/esm/components/containers/GridRootStyles.d.ts +1 -1
  121. package/esm/components/containers/GridRootStyles.js +7 -1
  122. package/esm/components/containers/GridToolbarContainer.js +1 -0
  123. package/esm/components/export/ExportCsv.d.ts +1 -1
  124. package/esm/components/export/ExportCsv.js +3 -2
  125. package/esm/components/export/ExportPrint.d.ts +1 -1
  126. package/esm/components/export/ExportPrint.js +3 -2
  127. package/esm/components/filterPanel/FilterPanelTrigger.d.ts +1 -1
  128. package/esm/components/filterPanel/FilterPanelTrigger.js +3 -2
  129. package/esm/components/menu/GridMenu.js +3 -1
  130. package/esm/components/menu/columnMenu/GridColumnMenu.js +2 -0
  131. package/esm/components/menu/columnMenu/GridColumnMenuContainer.js +1 -0
  132. package/esm/components/panel/GridPanel.js +2 -1
  133. package/esm/components/panel/GridPanelWrapper.js +1 -0
  134. package/esm/components/panel/filterPanel/GridFilterForm.js +4 -1
  135. package/esm/components/panel/filterPanel/GridFilterInputBoolean.js +2 -1
  136. package/esm/components/panel/filterPanel/GridFilterInputDate.js +1 -1
  137. package/esm/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +1 -1
  138. package/esm/components/panel/filterPanel/GridFilterInputMultipleValue.js +1 -1
  139. package/esm/components/panel/filterPanel/GridFilterInputSingleSelect.js +1 -1
  140. package/esm/components/panel/filterPanel/GridFilterInputValue.js +1 -1
  141. package/esm/components/panel/filterPanel/GridFilterPanel.js +1 -0
  142. package/esm/components/quickFilter/QuickFilter.d.ts +1 -1
  143. package/esm/components/quickFilter/QuickFilter.js +3 -3
  144. package/esm/components/quickFilter/QuickFilterClear.d.ts +1 -1
  145. package/esm/components/quickFilter/QuickFilterClear.js +3 -2
  146. package/esm/components/quickFilter/QuickFilterControl.d.ts +1 -1
  147. package/esm/components/quickFilter/QuickFilterControl.js +4 -3
  148. package/esm/components/quickFilter/QuickFilterTrigger.d.ts +1 -1
  149. package/esm/components/quickFilter/QuickFilterTrigger.js +4 -3
  150. package/esm/components/toolbar/GridToolbar.js +1 -0
  151. package/esm/components/toolbar/GridToolbarColumnsButton.js +1 -0
  152. package/esm/components/toolbar/GridToolbarDensitySelector.js +3 -1
  153. package/esm/components/toolbar/GridToolbarExport.js +1 -0
  154. package/esm/components/toolbar/GridToolbarExportContainer.js +3 -1
  155. package/esm/components/toolbar/GridToolbarFilterButton.js +4 -1
  156. package/esm/components/toolbarV8/Toolbar.d.ts +1 -1
  157. package/esm/components/toolbarV8/Toolbar.js +3 -2
  158. package/esm/components/toolbarV8/ToolbarButton.d.ts +1 -1
  159. package/esm/components/toolbarV8/ToolbarButton.js +4 -3
  160. package/esm/components/virtualization/GridMainContainer.js +2 -1
  161. package/esm/components/virtualization/GridVirtualScrollbar.js +1 -0
  162. package/esm/components/virtualization/GridVirtualScrollerContent.js +1 -0
  163. package/esm/components/virtualization/GridVirtualScrollerRenderZone.js +1 -0
  164. package/esm/constants/gridClasses.d.ts +4 -0
  165. package/esm/constants/gridClasses.js +3 -2
  166. package/esm/hooks/core/pipeProcessing/useGridPipeProcessing.js +3 -3
  167. package/esm/hooks/features/columnHeaders/useGridColumnHeaders.d.ts +1 -1
  168. package/esm/hooks/features/columns/gridColumnsSelector.d.ts +9 -0
  169. package/esm/hooks/features/columns/gridColumnsSelector.js +9 -2
  170. package/esm/hooks/features/dataSource/useGridDataSourceBase.js +1 -1
  171. package/esm/hooks/features/export/useGridPrintExport.js +1 -1
  172. package/esm/hooks/features/filter/useGridFilter.js +1 -1
  173. package/esm/hooks/features/rowSelection/useGridRowSelectionPreProcessors.js +9 -5
  174. package/esm/hooks/features/rows/useGridRowsMeta.js +5 -2
  175. package/esm/hooks/features/sorting/useGridSorting.d.ts +1 -1
  176. package/esm/hooks/features/sorting/useGridSorting.js +5 -5
  177. package/esm/hooks/utils/index.d.ts +1 -1
  178. package/esm/hooks/utils/useRunOnce.js +1 -1
  179. package/esm/index.js +1 -1
  180. package/esm/internals/index.d.ts +0 -1
  181. package/esm/internals/index.js +0 -1
  182. package/esm/locales/arSD.js +5 -6
  183. package/esm/locales/ptPT.js +4 -4
  184. package/esm/material/index.js +14 -0
  185. package/esm/models/props/DataGridProps.d.ts +7 -0
  186. package/esm/utils/composeGridClasses.d.ts +1 -1
  187. package/esm/utils/composeGridClasses.js +1 -1
  188. package/hooks/core/pipeProcessing/useGridPipeProcessing.js +3 -3
  189. package/hooks/features/columnHeaders/useGridColumnHeaders.d.ts +1 -1
  190. package/hooks/features/columns/gridColumnsSelector.d.ts +9 -0
  191. package/hooks/features/columns/gridColumnsSelector.js +10 -3
  192. package/hooks/features/dataSource/useGridDataSourceBase.js +12 -12
  193. package/hooks/features/export/useGridPrintExport.js +5 -5
  194. package/hooks/features/filter/useGridFilter.js +2 -2
  195. package/hooks/features/rowSelection/useGridRowSelectionPreProcessors.js +9 -5
  196. package/hooks/features/rows/useGridRowsMeta.js +8 -5
  197. package/hooks/features/sorting/useGridSorting.d.ts +1 -1
  198. package/hooks/features/sorting/useGridSorting.js +6 -6
  199. package/hooks/utils/index.d.ts +1 -1
  200. package/hooks/utils/useRunOnce.js +3 -2
  201. package/index.js +1 -1
  202. package/internals/index.d.ts +0 -1
  203. package/internals/index.js +0 -8
  204. package/locales/arSD.js +5 -6
  205. package/locales/ptPT.js +4 -4
  206. package/material/index.js +14 -0
  207. package/models/props/DataGridProps.d.ts +7 -0
  208. package/package.json +4 -4
  209. package/utils/composeGridClasses.d.ts +1 -1
  210. package/utils/composeGridClasses.js +3 -2
  211. package/esm/hooks/utils/useGridComponentRenderer.d.ts +0 -12
  212. package/esm/hooks/utils/useGridComponentRenderer.js +0 -36
  213. package/hooks/utils/useGridComponentRenderer.d.ts +0 -12
  214. package/hooks/utils/useGridComponentRenderer.js +0 -44
@@ -1,5 +1,6 @@
1
- import { unstable_generateUtilityClasses as generateUtilityClasses, unstable_generateUtilityClass as generateUtilityClass } from '@mui/utils';
1
+ import generateUtilityClass from '@mui/utils/generateUtilityClass';
2
+ import generateUtilityClasses from '@mui/utils/generateUtilityClasses';
2
3
  export function getDataGridUtilityClass(slot) {
3
4
  return generateUtilityClass('MuiDataGrid', slot);
4
5
  }
5
- export const gridClasses = generateUtilityClasses('MuiDataGrid', ['aiAssistantPanel', 'aiAssistantPanelHeader', 'aiAssistantPanelTitleContainer', 'aiAssistantPanelTitle', 'aiAssistantPanelBody', 'aiAssistantPanelEmptyText', 'aiAssistantPanelFooter', 'aiAssistantPanelConversation', 'aiAssistantPanelConversationList', 'aiAssistantPanelConversationTitle', 'aiAssistantPanelSuggestions', 'aiAssistantPanelSuggestionsList', 'aiAssistantPanelSuggestionsItem', 'aiAssistantPanelSuggestionsLabel', 'actionsCell', 'aggregationColumnHeader', 'aggregationColumnHeader--alignLeft', 'aggregationColumnHeader--alignCenter', 'aggregationColumnHeader--alignRight', 'aggregationColumnHeaderLabel', 'aggregationRowOverlayWrapper', 'autoHeight', 'autosizing', 'mainContent', 'withSidePanel', 'booleanCell', 'cell--editable', 'cell--editing', 'cell--flex', 'cell--textCenter', 'cell--textLeft', 'cell--textRight', 'cell--rangeTop', 'cell--rangeBottom', 'cell--rangeLeft', 'cell--rangeRight', 'cell--pinnedLeft', 'cell--pinnedRight', 'cell--selectionMode', 'cell', 'cellCheckbox', 'cellEmpty', 'cellSkeleton', 'cellOffsetLeft', 'checkboxInput', 'collapsible', 'collapsibleTrigger', 'collapsibleIcon', 'collapsiblePanel', 'columnHeader', 'columnHeader--alignCenter', 'columnHeader--alignLeft', 'columnHeader--alignRight', 'columnHeader--dragging', 'columnHeader--moving', 'columnHeader--numeric', 'columnHeader--sortable', 'columnHeader--sorted', 'columnHeader--filtered', 'columnHeader--pinnedLeft', 'columnHeader--pinnedRight', 'columnHeader--last', 'columnHeader--lastUnpinned', 'columnHeader--siblingFocused', 'columnHeader--filter', 'columnHeaderFilterInput', 'columnHeaderFilterOperatorLabel', 'columnHeaderCheckbox', 'columnHeaderDraggableContainer', 'columnHeaderTitle', 'columnHeaderTitleContainer', 'columnHeaderTitleContainerContent', 'columnHeader--filledGroup', 'columnHeader--emptyGroup', 'columnHeaders', 'columnSeparator--resizable', 'columnSeparator--resizing', 'columnSeparator--sideLeft', 'columnSeparator--sideRight', 'columnSeparator', 'columnsManagement', 'columnsManagementRow', 'columnsManagementHeader', 'columnsManagementSearchInput', 'columnsManagementFooter', 'columnsManagementScrollArea', 'columnsManagementEmptyText', 'container--top', 'container--bottom', 'detailPanel', 'detailPanelToggleCell', 'detailPanelToggleCell--expanded', 'footerCell', 'panel', 'panelHeader', 'panelWrapper', 'panelContent', 'panelFooter', 'paper', 'editBooleanCell', 'editInputCell', 'filler', 'filler--borderBottom', 'filler--pinnedLeft', 'filler--pinnedRight', 'filterForm', 'filterFormDeleteIcon', 'filterFormLogicOperatorInput', 'filterFormColumnInput', 'filterFormOperatorInput', 'filterFormValueInput', 'filterIcon', 'footerContainer', 'headerFilterRow', 'iconButtonContainer', 'iconSeparator', 'main', 'main--hasPinnedRight', 'main--hiddenContent', 'menu', 'menuIcon', 'menuIconButton', 'menuOpen', 'menuList', 'overlay', 'overlayWrapper', 'overlayWrapperInner', 'root', 'root--densityStandard', 'root--densityComfortable', 'root--densityCompact', 'root--disableUserSelection', 'root--noToolbar', 'row', 'row--editable', 'row--editing', 'row--firstVisible', 'row--lastVisible', 'row--dragging', 'row--dynamicHeight', 'row--detailPanelExpanded', 'row--borderBottom', 'rowReorderCellPlaceholder', 'rowCount', 'rowReorderCellContainer', 'rowReorderCell', 'rowReorderCell--draggable', 'rowSkeleton', 'scrollArea--left', 'scrollArea--right', 'scrollArea', 'scrollbar', 'scrollbar--vertical', 'scrollbar--horizontal', 'scrollbarFiller', 'scrollbarFiller--header', 'scrollbarFiller--borderTop', 'scrollbarFiller--borderBottom', 'scrollbarFiller--pinnedRight', 'selectedRowCount', 'sortButton', 'sortIcon', 'shadowScrollArea', 'sidebar', 'sidebarHeader', 'toolbarContainer', 'toolbar', 'toolbarLabel', 'toolbarDivider', 'toolbarFilterList', 'toolbarQuickFilter', 'toolbarQuickFilterTrigger', 'toolbarQuickFilterControl', 'virtualScroller', 'virtualScroller--hasScrollX', 'virtualScrollerContent', 'virtualScrollerContent--overflowed', 'virtualScrollerRenderZone', 'withVerticalBorder', 'withBorderColor', 'cell--withRightBorder', 'cell--withLeftBorder', 'columnHeader--withRightBorder', 'columnHeader--withLeftBorder', 'treeDataGroupingCell', 'treeDataGroupingCellToggle', 'treeDataGroupingCellLoadingContainer', 'groupingCriteriaCell', 'groupingCriteriaCellToggle', 'groupingCriteriaCellLoadingContainer', 'pinnedRows', 'pinnedRows--top', 'pinnedRows--bottom', 'pivotPanelAvailableFields', 'pivotPanelField', 'pivotPanelField--sorted', 'pivotPanelFieldActionContainer', 'pivotPanelFieldCheckbox', 'pivotPanelFieldDragIcon', 'pivotPanelFieldList', 'pivotPanelFieldName', 'pivotPanelHeader', 'pivotPanelPlaceholder', 'pivotPanelScrollArea', 'pivotPanelSearchContainer', 'pivotPanelSection', 'pivotPanelSectionTitle', 'pivotPanelSections', 'pivotPanelSwitch', 'pivotPanelSwitchLabel', 'prompt', 'promptContent', 'promptText', 'promptFeedback', 'promptChangeList', 'promptChangesToggle', 'promptChangesToggleIcon', 'promptIcon', 'promptIconContainer', 'promptError', 'promptAction']);
6
+ export const gridClasses = generateUtilityClasses('MuiDataGrid', ['aiAssistantPanel', 'aiAssistantPanelHeader', 'aiAssistantPanelTitleContainer', 'aiAssistantPanelTitle', 'aiAssistantPanelBody', 'aiAssistantPanelEmptyText', 'aiAssistantPanelFooter', 'aiAssistantPanelConversation', 'aiAssistantPanelConversationList', 'aiAssistantPanelConversationTitle', 'aiAssistantPanelSuggestions', 'aiAssistantPanelSuggestionsList', 'aiAssistantPanelSuggestionsItem', 'aiAssistantPanelSuggestionsLabel', 'actionsCell', 'aggregationColumnHeader', 'aggregationColumnHeader--alignLeft', 'aggregationColumnHeader--alignCenter', 'aggregationColumnHeader--alignRight', 'aggregationColumnHeaderLabel', 'aggregationRowOverlayWrapper', 'autoHeight', 'autosizing', 'mainContent', 'withSidePanel', 'booleanCell', 'cell--editable', 'cell--editing', 'cell--flex', 'cell--textCenter', 'cell--textLeft', 'cell--textRight', 'cell--rangeTop', 'cell--rangeBottom', 'cell--rangeLeft', 'cell--rangeRight', 'cell--pinnedLeft', 'cell--pinnedRight', 'cell--selectionMode', 'cell', 'cellCheckbox', 'cellEmpty', 'cellSkeleton', 'cellOffsetLeft', 'checkboxInput', 'collapsible', 'collapsibleTrigger', 'collapsibleIcon', 'collapsiblePanel', 'columnHeader', 'columnHeader--alignCenter', 'columnHeader--alignLeft', 'columnHeader--alignRight', 'columnHeader--dragging', 'columnHeader--moving', 'columnHeader--numeric', 'columnHeader--sortable', 'columnHeader--sorted', 'columnHeader--filtered', 'columnHeader--pinnedLeft', 'columnHeader--pinnedRight', 'columnHeader--last', 'columnHeader--lastUnpinned', 'columnHeader--siblingFocused', 'columnHeader--filter', 'columnHeaderFilterInput', 'columnHeaderFilterOperatorLabel', 'columnHeaderCheckbox', 'columnHeaderDraggableContainer', 'columnHeaderTitle', 'columnHeaderTitleContainer', 'columnHeaderTitleContainerContent', 'columnHeader--filledGroup', 'columnHeader--emptyGroup', 'columnHeaders', 'columnSeparator--resizable', 'columnSeparator--resizing', 'columnSeparator--sideLeft', 'columnSeparator--sideRight', 'columnSeparator', 'columnsManagement', 'columnsManagementRow', 'columnsManagementHeader', 'columnsManagementSearchInput', 'columnsManagementFooter', 'columnsManagementScrollArea', 'columnsManagementEmptyText', 'container--top', 'container--bottom', 'detailPanel', 'detailPanelToggleCell', 'detailPanelToggleCell--expanded', 'footerCell', 'panel', 'panelHeader', 'panelWrapper', 'panelContent', 'panelFooter', 'paper', 'editBooleanCell', 'editInputCell', 'filler', 'filler--borderBottom', 'filler--pinnedLeft', 'filler--pinnedRight', 'filterForm', 'filterFormDeleteIcon', 'filterFormLogicOperatorInput', 'filterFormColumnInput', 'filterFormOperatorInput', 'filterFormValueInput', 'filterIcon', 'footerContainer', 'headerFilterRow', 'iconButtonContainer', 'iconSeparator', 'main', 'main--hasPinnedRight', 'main--hiddenContent', 'menu', 'menuIcon', 'menuIconButton', 'menuOpen', 'menuList', 'overlay', 'overlayWrapper', 'overlayWrapperInner', 'root', 'root--densityStandard', 'root--densityComfortable', 'root--densityCompact', 'root--disableUserSelection', 'root--noToolbar', 'row', 'row--editable', 'row--editing', 'row--firstVisible', 'row--lastVisible', 'row--dragging', 'row--dynamicHeight', 'row--detailPanelExpanded', 'row--borderBottom', 'rowReorderCellPlaceholder', 'rowCount', 'rowReorderCellContainer', 'rowReorderCell', 'rowReorderCell--draggable', 'rowReorderIcon', 'rowSkeleton', 'scrollArea--left', 'scrollArea--right', 'scrollArea', 'scrollbar', 'scrollbar--vertical', 'scrollbar--horizontal', 'scrollbarFiller', 'scrollbarFiller--header', 'scrollbarFiller--borderTop', 'scrollbarFiller--borderBottom', 'scrollbarFiller--pinnedRight', 'selectedRowCount', 'sortButton', 'sortIcon', 'shadowScrollArea', 'sidebar', 'sidebarHeader', 'toolbarContainer', 'toolbar', 'toolbarLabel', 'toolbarDivider', 'toolbarFilterList', 'toolbarQuickFilter', 'toolbarQuickFilterTrigger', 'toolbarQuickFilterControl', 'virtualScroller', 'virtualScroller--hasScrollX', 'virtualScrollerContent', 'virtualScrollerContent--overflowed', 'virtualScrollerRenderZone', 'withVerticalBorder', 'withBorderColor', 'cell--withRightBorder', 'cell--withLeftBorder', 'columnHeader--withRightBorder', 'columnHeader--withLeftBorder', 'treeDataGroupingCell', 'treeDataGroupingCellToggle', 'treeDataGroupingCellLoadingContainer', 'groupingCriteriaCell', 'groupingCriteriaCellToggle', 'groupingCriteriaCellLoadingContainer', 'pinnedRows', 'pinnedRows--top', 'pinnedRows--bottom', 'pivotPanelAvailableFields', 'pivotPanelField', 'pivotPanelField--sorted', 'pivotPanelFieldActionContainer', 'pivotPanelFieldCheckbox', 'pivotPanelFieldDragIcon', 'pivotPanelFieldList', 'pivotPanelFieldName', 'pivotPanelHeader', 'pivotPanelPlaceholder', 'pivotPanelScrollArea', 'pivotPanelSearchContainer', 'pivotPanelSection', 'pivotPanelSectionTitle', 'pivotPanelSections', 'pivotPanelSwitch', 'pivotPanelSwitchLabel', 'prompt', 'promptContent', 'promptText', 'promptFeedback', 'promptChangeList', 'promptChangesToggle', 'promptChangesToggleIcon', 'promptIcon', 'promptIconContainer', 'promptError', 'promptAction']);
@@ -56,12 +56,12 @@ export const useGridPipeProcessing = apiRef => {
56
56
  const oldProcessor = groupCache.processors.get(id);
57
57
  if (oldProcessor !== processor) {
58
58
  groupCache.processors.set(id, processor);
59
- groupCache.processorsAsArray = Array.from(cache.current[group].processors.values());
59
+ groupCache.processorsAsArray = Array.from(cache.current[group].processors.values()).filter(processorValue => processorValue !== null);
60
60
  runAppliers(groupCache);
61
61
  }
62
62
  return () => {
63
- cache.current[group].processors.delete(id);
64
- cache.current[group].processorsAsArray = Array.from(cache.current[group].processors.values());
63
+ cache.current[group].processors.set(id, null);
64
+ cache.current[group].processorsAsArray = Array.from(cache.current[group].processors.values()).filter(processorValue => processorValue !== null);
65
65
  };
66
66
  }, [runAppliers]);
67
67
  const registerPipeApplier = React.useCallback((group, id, applier) => {
@@ -29,7 +29,7 @@ export interface GetHeadersParams {
29
29
  maxLastColumn?: number;
30
30
  }
31
31
  type OwnerState = DataGridProcessedProps;
32
- export declare const GridColumnHeaderRow: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme> & {
32
+ export declare const GridColumnHeaderRow: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material/styles").Theme> & {
33
33
  ownerState: OwnerState;
34
34
  }, Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof React.ClassAttributes<HTMLDivElement> | keyof React.HTMLAttributes<HTMLDivElement>>, {}>;
35
35
  export declare const useGridColumnHeaders: (props: UseGridColumnHeadersProps) => {
@@ -48,6 +48,15 @@ export declare const gridVisibleColumnFieldsSelector: import("@mui/x-data-grid")
48
48
  * @category Visible Columns
49
49
  */
50
50
  export declare const gridPinnedColumnsSelector: import("@mui/x-data-grid").OutputSelector<GridStateCommunity, unknown, GridPinnedColumnFields>;
51
+ /**
52
+ * Get all existing pinned columns. Place the columns on the side that depends on the rtl state.
53
+ * @category Pinned Columns
54
+ * @ignore - Do not document
55
+ */
56
+ export declare const gridExistingPinnedColumnSelector: import("@mui/x-data-grid").OutputSelector<GridStateCommunity, boolean, {
57
+ left: string[];
58
+ right: string[];
59
+ }>;
51
60
  /**
52
61
  * Get the visible pinned columns.
53
62
  * @category Visible Columns
@@ -59,19 +59,26 @@ export const gridVisibleColumnFieldsSelector = createSelectorMemoized(gridVisibl
59
59
  */
60
60
  export const gridPinnedColumnsSelector = createRootSelector(state => state.pinnedColumns);
61
61
 
62
+ /**
63
+ * Get all existing pinned columns. Place the columns on the side that depends on the rtl state.
64
+ * @category Pinned Columns
65
+ * @ignore - Do not document
66
+ */
67
+ export const gridExistingPinnedColumnSelector = createSelectorMemoized(gridPinnedColumnsSelector, gridColumnFieldsSelector, gridIsRtlSelector, (model, orderedFields, isRtl) => filterMissingColumns(model, orderedFields, isRtl));
68
+
62
69
  /**
63
70
  * Get the visible pinned columns.
64
71
  * @category Visible Columns
65
72
  */
66
73
  export const gridVisiblePinnedColumnDefinitionsSelector = createSelectorMemoized(gridColumnsStateSelector, gridPinnedColumnsSelector, gridVisibleColumnFieldsSelector, gridIsRtlSelector, (columnsState, model, visibleColumnFields, isRtl) => {
67
- const visiblePinnedFields = filterVisibleColumns(model, visibleColumnFields, isRtl);
74
+ const visiblePinnedFields = filterMissingColumns(model, visibleColumnFields, isRtl);
68
75
  const visiblePinnedColumns = {
69
76
  left: visiblePinnedFields.left.map(field => columnsState.lookup[field]),
70
77
  right: visiblePinnedFields.right.map(field => columnsState.lookup[field])
71
78
  };
72
79
  return visiblePinnedColumns;
73
80
  });
74
- function filterVisibleColumns(pinnedColumns, columns, invert) {
81
+ function filterMissingColumns(pinnedColumns, columns, invert) {
75
82
  if (!Array.isArray(pinnedColumns.left) && !Array.isArray(pinnedColumns.right)) {
76
83
  return EMPTY_PINNED_COLUMN_FIELDS;
77
84
  }
@@ -1,7 +1,7 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import * as React from 'react';
3
3
  import useLazyRef from '@mui/utils/useLazyRef';
4
- import { unstable_debounce as debounce } from '@mui/utils';
4
+ import debounce from '@mui/utils/debounce';
5
5
  import { warnOnce } from '@mui/x-internals/warning';
6
6
  import { isDeepEqual } from '@mui/x-internals/isDeepEqual';
7
7
  import { GRID_ROOT_GROUP_ID } from "../rows/gridRowsUtils.js";
@@ -1,6 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import * as React from 'react';
3
- import { unstable_ownerDocument as ownerDocument } from '@mui/utils';
3
+ import ownerDocument from '@mui/utils/ownerDocument';
4
4
  import { loadStyleSheets } from '@mui/x-internals/export';
5
5
  import { useGridLogger } from "../../utils/useGridLogger.js";
6
6
  import { gridExpandedRowCountSelector } from "../filter/gridFilterSelector.js";
@@ -1,7 +1,7 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import * as React from 'react';
3
3
  import { lruMemoize } from 'reselect';
4
- import { unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/utils';
4
+ import useEnhancedEffect from '@mui/utils/useEnhancedEffect';
5
5
  import { isDeepEqual } from '@mui/x-internals/isDeepEqual';
6
6
  import { useLazyRef } from "../../utils/useLazyRef.js";
7
7
  import { useGridEvent } from "../../utils/useGridEvent.js";
@@ -28,17 +28,21 @@ export const useGridRowSelectionPreProcessors = (apiRef, props) => {
28
28
  headerName: apiRef.current.getLocaleText('checkboxSelectionHeaderName')
29
29
  });
30
30
  const shouldHaveSelectionColumn = props.checkboxSelection;
31
- const haveSelectionColumn = columnsState.lookup[GRID_CHECKBOX_SELECTION_FIELD] != null;
32
- if (shouldHaveSelectionColumn && !haveSelectionColumn) {
31
+ const hasSelectionColumn = columnsState.lookup[GRID_CHECKBOX_SELECTION_FIELD] != null;
32
+ if (shouldHaveSelectionColumn && !hasSelectionColumn) {
33
33
  columnsState.lookup[GRID_CHECKBOX_SELECTION_FIELD] = selectionColumn;
34
34
  columnsState.orderedFields = [GRID_CHECKBOX_SELECTION_FIELD, ...columnsState.orderedFields];
35
- } else if (!shouldHaveSelectionColumn && haveSelectionColumn) {
35
+ } else if (!shouldHaveSelectionColumn && hasSelectionColumn) {
36
36
  delete columnsState.lookup[GRID_CHECKBOX_SELECTION_FIELD];
37
37
  columnsState.orderedFields = columnsState.orderedFields.filter(field => field !== GRID_CHECKBOX_SELECTION_FIELD);
38
- } else if (shouldHaveSelectionColumn && haveSelectionColumn) {
38
+ } else if (shouldHaveSelectionColumn && hasSelectionColumn) {
39
39
  columnsState.lookup[GRID_CHECKBOX_SELECTION_FIELD] = _extends({}, selectionColumn, columnsState.lookup[GRID_CHECKBOX_SELECTION_FIELD]);
40
+ // If the column is not in the columns array (not a custom selection column), move it to the beginning of the column order
41
+ if (!props.columns.some(col => col.field === GRID_CHECKBOX_SELECTION_FIELD)) {
42
+ columnsState.orderedFields = [GRID_CHECKBOX_SELECTION_FIELD, ...columnsState.orderedFields.filter(field => field !== GRID_CHECKBOX_SELECTION_FIELD)];
43
+ }
40
44
  }
41
45
  return columnsState;
42
- }, [apiRef, classes, props.checkboxSelection]);
46
+ }, [apiRef, classes, props.columns, props.checkboxSelection]);
43
47
  useGridRegisterPipeProcessor(apiRef, 'hydrateColumns', updateSelectionColumn);
44
48
  };
@@ -1,7 +1,7 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import * as React from 'react';
3
3
  import useLazyRef from '@mui/utils/useLazyRef';
4
- import { unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/utils';
4
+ import useEnhancedEffect from '@mui/utils/useEnhancedEffect';
5
5
  import { ResizeObserver } from "../../../utils/ResizeObserver.js";
6
6
  import { useGridVisibleRows } from "../../utils/useGridVisibleRows.js";
7
7
  import { eslintUseValue } from "../../../utils/utils.js";
@@ -194,7 +194,10 @@ export const useGridRowsMeta = (apiRef, props) => {
194
194
  apiRef.current.unstable_storeRowHeightMeasurement(rowId, height);
195
195
  }
196
196
  if (!isHeightMetaValid.current) {
197
- apiRef.current.requestPipeProcessorsApplication('rowHeight');
197
+ // Avoids "ResizeObserver loop completed with undelivered notifications" error
198
+ requestAnimationFrame(() => {
199
+ apiRef.current.requestPipeProcessorsApplication('rowHeight');
200
+ });
198
201
  }
199
202
  })).current;
200
203
  const observeRowHeight = (element, rowId) => {
@@ -7,4 +7,4 @@ export declare const sortingStateInitializer: GridStateInitializer<Pick<DataGrid
7
7
  * @requires useGridRows (event)
8
8
  * @requires useGridColumns (event)
9
9
  */
10
- export declare const useGridSorting: (apiRef: RefObject<GridPrivateApiCommunity>, props: Pick<DataGridProcessedProps, "initialState" | "sortModel" | "onSortModelChange" | "sortingOrder" | "sortingMode" | "disableColumnSorting" | "disableMultipleColumnsSorting">) => void;
10
+ export declare const useGridSorting: (apiRef: RefObject<GridPrivateApiCommunity>, props: Pick<DataGridProcessedProps, "initialState" | "sortModel" | "onSortModelChange" | "sortingOrder" | "sortingMode" | "disableColumnSorting" | "disableMultipleColumnsSorting" | "multipleColumnsSortingMode">) => void;
@@ -1,6 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import * as React from 'react';
3
- import { unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/utils';
3
+ import useEnhancedEffect from '@mui/utils/useEnhancedEffect';
4
4
  import { useGridEvent } from "../../utils/useGridEvent.js";
5
5
  import { useGridApiMethod } from "../../utils/useGridApiMethod.js";
6
6
  import { useGridLogger } from "../../utils/useGridLogger.js";
@@ -194,9 +194,9 @@ export const useGridSorting = (apiRef, props) => {
194
194
  if (!colDef.sortable || props.disableColumnSorting) {
195
195
  return;
196
196
  }
197
- const allowMultipleSorting = event.shiftKey || event.metaKey || event.ctrlKey;
197
+ const allowMultipleSorting = props.multipleColumnsSortingMode === 'always' || event.shiftKey || event.metaKey || event.ctrlKey;
198
198
  sortColumn(field, undefined, allowMultipleSorting);
199
- }, [sortColumn, props.disableColumnSorting]);
199
+ }, [sortColumn, props.disableColumnSorting, props.multipleColumnsSortingMode]);
200
200
  const handleColumnHeaderKeyDown = React.useCallback(({
201
201
  field,
202
202
  colDef
@@ -206,9 +206,9 @@ export const useGridSorting = (apiRef, props) => {
206
206
  }
207
207
  // Ctrl + Enter opens the column menu
208
208
  if (event.key === 'Enter' && !event.ctrlKey && !event.metaKey) {
209
- sortColumn(field, undefined, event.shiftKey);
209
+ sortColumn(field, undefined, props.multipleColumnsSortingMode === 'always' || event.shiftKey);
210
210
  }
211
- }, [sortColumn, props.disableColumnSorting]);
211
+ }, [sortColumn, props.disableColumnSorting, props.multipleColumnsSortingMode]);
212
212
  const handleColumnsChange = React.useCallback(() => {
213
213
  // When the columns change we check that the sorted columns are still part of the dataset
214
214
  const sortModel = gridSortModelSelector(apiRef);
@@ -6,4 +6,4 @@ export * from "./useGridNativeEventListener.js";
6
6
  export * from "./useFirstRender.js";
7
7
  export * from "./useOnMount.js";
8
8
  export * from "./useRunOnce.js";
9
- export type { RenderProp } from "./useGridComponentRenderer.js";
9
+ export type { RenderProp } from '@mui/x-internals/useComponentRenderer';
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import { unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/utils';
2
+ import useEnhancedEffect from '@mui/utils/useEnhancedEffect';
3
3
  const noop = () => {};
4
4
 
5
5
  /**
package/esm/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-data-grid v8.4.0
2
+ * @mui/x-data-grid v8.5.1
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -77,7 +77,6 @@ export * from "../hooks/features/virtualization/index.js";
77
77
  export { useGridColumnResize, columnResizeStateInitializer } from "../hooks/features/columnResize/useGridColumnResize.js";
78
78
  export { ROW_SELECTION_PROPAGATION_DEFAULT } from "../hooks/features/rowSelection/utils.js";
79
79
  export { useGridListView, listViewStateInitializer } from "../hooks/features/listView/useGridListView.js";
80
- export { useGridComponentRenderer } from "../hooks/utils/useGridComponentRenderer.js";
81
80
  export { useTimeout } from "../hooks/utils/useTimeout.js";
82
81
  export { useGridVisibleRows, getVisibleRows } from "../hooks/utils/useGridVisibleRows.js";
83
82
  export { useGridInitializeState } from "../hooks/utils/useGridInitializeState.js";
@@ -63,7 +63,6 @@ export * from "../hooks/features/virtualization/index.js";
63
63
  export { useGridColumnResize, columnResizeStateInitializer } from "../hooks/features/columnResize/useGridColumnResize.js";
64
64
  export { ROW_SELECTION_PROPAGATION_DEFAULT } from "../hooks/features/rowSelection/utils.js";
65
65
  export { useGridListView, listViewStateInitializer } from "../hooks/features/listView/useGridListView.js";
66
- export { useGridComponentRenderer } from "../hooks/utils/useGridComponentRenderer.js";
67
66
  export { useTimeout } from "../hooks/utils/useTimeout.js";
68
67
  export { useGridVisibleRows, getVisibleRows } from "../hooks/utils/useGridVisibleRows.js";
69
68
  export { useGridInitializeState } from "../hooks/utils/useGridInitializeState.js";
@@ -39,12 +39,11 @@ const arSDGrid = {
39
39
  // toolbarAssistant: 'AI Assistant',
40
40
 
41
41
  // Columns management text
42
- // columnsManagementSearchTitle: 'Search',
43
- // columnsManagementNoColumns: 'No columns',
44
- // columnsManagementShowHideAllText: 'Show/Hide All',
45
- // columnsManagementReset: 'Reset',
46
- // columnsManagementDeleteIconLabel: 'Clear',
47
-
42
+ columnsManagementSearchTitle: 'بحث',
43
+ columnsManagementNoColumns: 'لا يوجد أعمدة',
44
+ columnsManagementShowHideAllText: 'عرض/إخفاء الكل',
45
+ columnsManagementReset: 'إعادة ضبط',
46
+ columnsManagementDeleteIconLabel: 'مسح',
48
47
  // Filter panel text
49
48
  filterPanelAddFilter: 'إضافة مرشِح',
50
49
  filterPanelRemoveAll: 'حذف الكل',
@@ -10,7 +10,7 @@ const ptPTGrid = {
10
10
  // Density selector toolbar button text
11
11
  toolbarDensity: 'Densidade',
12
12
  toolbarDensityLabel: 'Densidade',
13
- toolbarDensityCompact: 'Compactar',
13
+ toolbarDensityCompact: 'Compacto',
14
14
  toolbarDensityStandard: 'Padrão',
15
15
  toolbarDensityComfortable: 'Confortável',
16
16
  // Columns selector toolbar button text
@@ -25,7 +25,7 @@ const ptPTGrid = {
25
25
  // Quick filter toolbar field
26
26
  toolbarQuickFilterPlaceholder: 'Procurar…',
27
27
  toolbarQuickFilterLabel: 'Procurar',
28
- toolbarQuickFilterDeleteIconLabel: 'Claro',
28
+ toolbarQuickFilterDeleteIconLabel: 'Limpar',
29
29
  // Export selector toolbar button text
30
30
  toolbarExport: 'Exportar',
31
31
  toolbarExportLabel: 'Exportar',
@@ -144,8 +144,8 @@ const ptPTGrid = {
144
144
  unpin: 'Desafixar',
145
145
  // Tree Data
146
146
  treeDataGroupingHeaderName: 'Grupo',
147
- treeDataExpand: 'ver crianças',
148
- treeDataCollapse: 'esconder crianças',
147
+ treeDataExpand: 'expandir',
148
+ treeDataCollapse: 'colapsar',
149
149
  // Grouping columns
150
150
  groupingColumnHeaderName: 'Grupo',
151
151
  groupColumn: name => `Agrupar por ${name}`,
@@ -170,6 +170,7 @@ const BaseSelect = forwardRef(function BaseSelect(props, ref) {
170
170
  }, material))]
171
171
  });
172
172
  });
173
+ if (process.env.NODE_ENV !== "production") BaseSelect.displayName = "BaseSelect";
173
174
  const StyledPagination = styled(MUIPagination)(({
174
175
  theme
175
176
  }) => ({
@@ -225,6 +226,7 @@ const BasePagination = forwardRef(function BasePagination(props, ref) {
225
226
  ref: ref
226
227
  }));
227
228
  });
229
+ if (process.env.NODE_ENV !== "production") BasePagination.displayName = "BasePagination";
228
230
  const BaseBadge = forwardRef(function BaseBadge(props, ref) {
229
231
  const {
230
232
  material
@@ -234,6 +236,7 @@ const BaseBadge = forwardRef(function BaseBadge(props, ref) {
234
236
  ref: ref
235
237
  }));
236
238
  });
239
+ if (process.env.NODE_ENV !== "production") BaseBadge.displayName = "BaseBadge";
237
240
  const BaseCheckbox = forwardRef(function BaseCheckbox(props, ref) {
238
241
  const {
239
242
  autoFocus,
@@ -278,6 +281,7 @@ const BaseCheckbox = forwardRef(function BaseCheckbox(props, ref) {
278
281
  fullWidth: fullWidth
279
282
  });
280
283
  });
284
+ if (process.env.NODE_ENV !== "production") BaseCheckbox.displayName = "BaseCheckbox";
281
285
  const BaseCircularProgress = forwardRef(function BaseCircularProgress(props, ref) {
282
286
  const {
283
287
  material
@@ -287,6 +291,7 @@ const BaseCircularProgress = forwardRef(function BaseCircularProgress(props, ref
287
291
  ref: ref
288
292
  }));
289
293
  });
294
+ if (process.env.NODE_ENV !== "production") BaseCircularProgress.displayName = "BaseCircularProgress";
290
295
  const BaseDivider = forwardRef(function BaseDivider(props, ref) {
291
296
  const {
292
297
  material
@@ -296,6 +301,7 @@ const BaseDivider = forwardRef(function BaseDivider(props, ref) {
296
301
  ref: ref
297
302
  }));
298
303
  });
304
+ if (process.env.NODE_ENV !== "production") BaseDivider.displayName = "BaseDivider";
299
305
  const BaseLinearProgress = forwardRef(function BaseLinearProgress(props, ref) {
300
306
  const {
301
307
  material
@@ -305,6 +311,7 @@ const BaseLinearProgress = forwardRef(function BaseLinearProgress(props, ref) {
305
311
  ref: ref
306
312
  }));
307
313
  });
314
+ if (process.env.NODE_ENV !== "production") BaseLinearProgress.displayName = "BaseLinearProgress";
308
315
  const BaseButton = forwardRef(function BaseButton(props, ref) {
309
316
  const {
310
317
  material
@@ -314,6 +321,7 @@ const BaseButton = forwardRef(function BaseButton(props, ref) {
314
321
  ref: ref
315
322
  }));
316
323
  });
324
+ if (process.env.NODE_ENV !== "production") BaseButton.displayName = "BaseButton";
317
325
  const BaseChip = forwardRef(function BaseChip(props, ref) {
318
326
  const {
319
327
  material
@@ -323,6 +331,7 @@ const BaseChip = forwardRef(function BaseChip(props, ref) {
323
331
  ref: ref
324
332
  }));
325
333
  });
334
+ if (process.env.NODE_ENV !== "production") BaseChip.displayName = "BaseChip";
326
335
  const BaseIconButton = forwardRef(function BaseIconButton(props, ref) {
327
336
  const {
328
337
  material
@@ -332,6 +341,7 @@ const BaseIconButton = forwardRef(function BaseIconButton(props, ref) {
332
341
  ref: ref
333
342
  }));
334
343
  });
344
+ if (process.env.NODE_ENV !== "production") BaseIconButton.displayName = "BaseIconButton";
335
345
  const BaseTooltip = forwardRef(function BaseTooltip(props, ref) {
336
346
  const {
337
347
  material
@@ -341,6 +351,7 @@ const BaseTooltip = forwardRef(function BaseTooltip(props, ref) {
341
351
  ref: ref
342
352
  }));
343
353
  });
354
+ if (process.env.NODE_ENV !== "production") BaseTooltip.displayName = "BaseTooltip";
344
355
  const BaseSkeleton = forwardRef(function BaseSkeleton(props, ref) {
345
356
  const {
346
357
  material
@@ -350,6 +361,7 @@ const BaseSkeleton = forwardRef(function BaseSkeleton(props, ref) {
350
361
  ref: ref
351
362
  }));
352
363
  });
364
+ if (process.env.NODE_ENV !== "production") BaseSkeleton.displayName = "BaseSkeleton";
353
365
  const BaseSwitch = forwardRef(function BaseSwitch(props, ref) {
354
366
  const {
355
367
  material,
@@ -371,6 +383,7 @@ const BaseSwitch = forwardRef(function BaseSwitch(props, ref) {
371
383
  label: label
372
384
  });
373
385
  });
386
+ if (process.env.NODE_ENV !== "production") BaseSwitch.displayName = "BaseSwitch";
374
387
  const BaseMenuList = forwardRef(function BaseMenuList(props, ref) {
375
388
  const {
376
389
  material
@@ -380,6 +393,7 @@ const BaseMenuList = forwardRef(function BaseMenuList(props, ref) {
380
393
  ref: ref
381
394
  }));
382
395
  });
396
+ if (process.env.NODE_ENV !== "production") BaseMenuList.displayName = "BaseMenuList";
383
397
  function BaseMenuItem(props) {
384
398
  const {
385
399
  inert,
@@ -841,6 +841,13 @@ export interface DataGridProSharedPropsWithDefaultValue {
841
841
  * @default false
842
842
  */
843
843
  listView: boolean;
844
+ /**
845
+ * If set to "always", the multi-sorting is applied without modifier key.
846
+ * Otherwise, the modifier key is required for multi-sorting to be applied.
847
+ * @see See https://mui.com/x/react-data-grid/sorting/#multi-sorting
848
+ * @default "withModifierKey"
849
+ */
850
+ multipleColumnsSortingMode: 'withModifierKey' | 'always';
844
851
  }
845
852
  export interface DataGridProSharedPropsWithoutDefaultValue<R extends GridValidRowModel = any> {
846
853
  /**
@@ -1,3 +1,3 @@
1
- import { unstable_composeClasses as composeClasses } from '@mui/utils';
1
+ import composeClasses from '@mui/utils/composeClasses';
2
2
  import type { DataGridProcessedProps } from "../models/props/DataGridProps.js";
3
3
  export declare function composeGridClasses(classes: DataGridProcessedProps['classes'], slots: Parameters<typeof composeClasses>[0]): Record<string, string>;
@@ -1,4 +1,4 @@
1
- import { unstable_composeClasses as composeClasses } from '@mui/utils';
1
+ import composeClasses from '@mui/utils/composeClasses';
2
2
  import { getDataGridUtilityClass } from "../constants/gridClasses.js";
3
3
  export function composeGridClasses(classes, slots) {
4
4
  return composeClasses(slots, getDataGridUtilityClass, classes);
@@ -64,12 +64,12 @@ const useGridPipeProcessing = apiRef => {
64
64
  const oldProcessor = groupCache.processors.get(id);
65
65
  if (oldProcessor !== processor) {
66
66
  groupCache.processors.set(id, processor);
67
- groupCache.processorsAsArray = Array.from(cache.current[group].processors.values());
67
+ groupCache.processorsAsArray = Array.from(cache.current[group].processors.values()).filter(processorValue => processorValue !== null);
68
68
  runAppliers(groupCache);
69
69
  }
70
70
  return () => {
71
- cache.current[group].processors.delete(id);
72
- cache.current[group].processorsAsArray = Array.from(cache.current[group].processors.values());
71
+ cache.current[group].processors.set(id, null);
72
+ cache.current[group].processorsAsArray = Array.from(cache.current[group].processors.values()).filter(processorValue => processorValue !== null);
73
73
  };
74
74
  }, [runAppliers]);
75
75
  const registerPipeApplier = React.useCallback((group, id, applier) => {
@@ -29,7 +29,7 @@ export interface GetHeadersParams {
29
29
  maxLastColumn?: number;
30
30
  }
31
31
  type OwnerState = DataGridProcessedProps;
32
- export declare const GridColumnHeaderRow: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme> & {
32
+ export declare const GridColumnHeaderRow: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material/styles").Theme> & {
33
33
  ownerState: OwnerState;
34
34
  }, Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof React.ClassAttributes<HTMLDivElement> | keyof React.HTMLAttributes<HTMLDivElement>>, {}>;
35
35
  export declare const useGridColumnHeaders: (props: UseGridColumnHeadersProps) => {
@@ -48,6 +48,15 @@ export declare const gridVisibleColumnFieldsSelector: import("@mui/x-data-grid")
48
48
  * @category Visible Columns
49
49
  */
50
50
  export declare const gridPinnedColumnsSelector: import("@mui/x-data-grid").OutputSelector<GridStateCommunity, unknown, GridPinnedColumnFields>;
51
+ /**
52
+ * Get all existing pinned columns. Place the columns on the side that depends on the rtl state.
53
+ * @category Pinned Columns
54
+ * @ignore - Do not document
55
+ */
56
+ export declare const gridExistingPinnedColumnSelector: import("@mui/x-data-grid").OutputSelector<GridStateCommunity, boolean, {
57
+ left: string[];
58
+ right: string[];
59
+ }>;
51
60
  /**
52
61
  * Get the visible pinned columns.
53
62
  * @category Visible Columns
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.gridVisiblePinnedColumnDefinitionsSelector = exports.gridVisibleColumnFieldsSelector = exports.gridVisibleColumnDefinitionsSelector = exports.gridPinnedColumnsSelector = exports.gridInitialColumnVisibilityModelSelector = exports.gridHasColSpanSelector = exports.gridFilterableColumnLookupSelector = exports.gridFilterableColumnDefinitionsSelector = exports.gridColumnsStateSelector = exports.gridColumnVisibilityModelSelector = exports.gridColumnPositionsSelector = exports.gridColumnLookupSelector = exports.gridColumnFieldsSelector = exports.gridColumnDefinitionsSelector = void 0;
6
+ exports.gridVisiblePinnedColumnDefinitionsSelector = exports.gridVisibleColumnFieldsSelector = exports.gridVisibleColumnDefinitionsSelector = exports.gridPinnedColumnsSelector = exports.gridInitialColumnVisibilityModelSelector = exports.gridHasColSpanSelector = exports.gridFilterableColumnLookupSelector = exports.gridFilterableColumnDefinitionsSelector = exports.gridExistingPinnedColumnSelector = exports.gridColumnsStateSelector = exports.gridColumnVisibilityModelSelector = exports.gridColumnPositionsSelector = exports.gridColumnLookupSelector = exports.gridColumnFieldsSelector = exports.gridColumnDefinitionsSelector = void 0;
7
7
  var _createSelector = require("../../../utils/createSelector");
8
8
  var _gridColumnsInterfaces = require("./gridColumnsInterfaces");
9
9
  var _gridCoreSelector = require("../../core/gridCoreSelector");
@@ -64,19 +64,26 @@ const gridVisibleColumnFieldsSelector = exports.gridVisibleColumnFieldsSelector
64
64
  */
65
65
  const gridPinnedColumnsSelector = exports.gridPinnedColumnsSelector = (0, _createSelector.createRootSelector)(state => state.pinnedColumns);
66
66
 
67
+ /**
68
+ * Get all existing pinned columns. Place the columns on the side that depends on the rtl state.
69
+ * @category Pinned Columns
70
+ * @ignore - Do not document
71
+ */
72
+ const gridExistingPinnedColumnSelector = exports.gridExistingPinnedColumnSelector = (0, _createSelector.createSelectorMemoized)(gridPinnedColumnsSelector, gridColumnFieldsSelector, _gridCoreSelector.gridIsRtlSelector, (model, orderedFields, isRtl) => filterMissingColumns(model, orderedFields, isRtl));
73
+
67
74
  /**
68
75
  * Get the visible pinned columns.
69
76
  * @category Visible Columns
70
77
  */
71
78
  const gridVisiblePinnedColumnDefinitionsSelector = exports.gridVisiblePinnedColumnDefinitionsSelector = (0, _createSelector.createSelectorMemoized)(gridColumnsStateSelector, gridPinnedColumnsSelector, gridVisibleColumnFieldsSelector, _gridCoreSelector.gridIsRtlSelector, (columnsState, model, visibleColumnFields, isRtl) => {
72
- const visiblePinnedFields = filterVisibleColumns(model, visibleColumnFields, isRtl);
79
+ const visiblePinnedFields = filterMissingColumns(model, visibleColumnFields, isRtl);
73
80
  const visiblePinnedColumns = {
74
81
  left: visiblePinnedFields.left.map(field => columnsState.lookup[field]),
75
82
  right: visiblePinnedFields.right.map(field => columnsState.lookup[field])
76
83
  };
77
84
  return visiblePinnedColumns;
78
85
  });
79
- function filterVisibleColumns(pinnedColumns, columns, invert) {
86
+ function filterMissingColumns(pinnedColumns, columns, invert) {
80
87
  if (!Array.isArray(pinnedColumns.left) && !Array.isArray(pinnedColumns.right)) {
81
88
  return _gridColumnsInterfaces.EMPTY_PINNED_COLUMN_FIELDS;
82
89
  }