@mui/x-data-grid 6.0.3 → 6.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/CHANGELOG.md +61 -0
  2. package/components/GridPagination.d.ts +2 -2
  3. package/components/GridRow.js +1 -1
  4. package/components/columnHeaders/GridColumnHeaderTitle.js +5 -5
  5. package/components/menu/columnMenu/GridColumnHeaderMenu.js +4 -2
  6. package/components/menu/columnMenu/GridColumnMenu.d.ts +5 -5
  7. package/components/menu/columnMenu/GridColumnMenu.js +30 -30
  8. package/components/menu/columnMenu/GridColumnMenuProps.d.ts +1 -1
  9. package/components/panel/GridPanel.d.ts +1 -1
  10. package/components/panel/filterPanel/GridFilterPanel.js +1 -1
  11. package/components/reexportable.d.ts +1 -1
  12. package/components/reexportable.js +1 -1
  13. package/hooks/features/columnMenu/columnMenuInterfaces.d.ts +11 -11
  14. package/hooks/features/columnMenu/{useGridColumnMenuComponents.d.ts → useGridColumnMenuSlots.d.ts} +4 -4
  15. package/hooks/features/columnMenu/{useGridColumnMenuComponents.js → useGridColumnMenuSlots.js} +21 -26
  16. package/hooks/features/columns/useGridColumns.js +1 -1
  17. package/hooks/features/filter/useGridFilter.js +1 -1
  18. package/hooks/features/sorting/useGridSorting.js +1 -1
  19. package/hooks/features/virtualization/useGridVirtualScroller.js +1 -1
  20. package/index.d.ts +1 -1
  21. package/index.js +2 -2
  22. package/legacy/components/GridRow.js +1 -1
  23. package/legacy/components/columnHeaders/GridColumnHeaderTitle.js +5 -5
  24. package/legacy/components/menu/columnMenu/GridColumnHeaderMenu.js +4 -2
  25. package/legacy/components/menu/columnMenu/GridColumnMenu.js +32 -32
  26. package/legacy/components/panel/filterPanel/GridFilterPanel.js +1 -1
  27. package/legacy/components/reexportable.js +1 -1
  28. package/legacy/hooks/features/columnMenu/{useGridColumnMenuComponents.js → useGridColumnMenuSlots.js} +25 -30
  29. package/legacy/hooks/features/columns/useGridColumns.js +1 -1
  30. package/legacy/hooks/features/filter/useGridFilter.js +1 -1
  31. package/legacy/hooks/features/sorting/useGridSorting.js +1 -1
  32. package/legacy/hooks/features/virtualization/useGridVirtualScroller.js +1 -1
  33. package/legacy/index.js +2 -2
  34. package/legacy/locales/daDK.js +16 -21
  35. package/legacy/locales/esES.js +1 -1
  36. package/legacy/locales/nbNO.js +10 -12
  37. package/legacy/locales/svSE.js +2 -2
  38. package/locales/daDK.js +16 -21
  39. package/locales/esES.js +1 -1
  40. package/locales/nbNO.js +10 -12
  41. package/locales/svSE.js +2 -2
  42. package/modern/components/GridRow.js +1 -1
  43. package/modern/components/columnHeaders/GridColumnHeaderTitle.js +5 -5
  44. package/modern/components/menu/columnMenu/GridColumnHeaderMenu.js +4 -2
  45. package/modern/components/menu/columnMenu/GridColumnMenu.js +30 -30
  46. package/modern/components/panel/filterPanel/GridFilterPanel.js +1 -1
  47. package/modern/components/reexportable.js +1 -1
  48. package/modern/hooks/features/columnMenu/{useGridColumnMenuComponents.js → useGridColumnMenuSlots.js} +21 -26
  49. package/modern/hooks/features/columns/useGridColumns.js +1 -1
  50. package/modern/hooks/features/filter/useGridFilter.js +1 -1
  51. package/modern/hooks/features/sorting/useGridSorting.js +1 -1
  52. package/modern/hooks/features/virtualization/useGridVirtualScroller.js +1 -1
  53. package/modern/index.js +2 -2
  54. package/modern/locales/daDK.js +16 -21
  55. package/modern/locales/esES.js +1 -1
  56. package/modern/locales/nbNO.js +10 -12
  57. package/modern/locales/svSE.js +2 -2
  58. package/node/components/GridRow.js +1 -1
  59. package/node/components/columnHeaders/GridColumnHeaderTitle.js +5 -5
  60. package/node/components/menu/columnMenu/GridColumnHeaderMenu.js +4 -2
  61. package/node/components/menu/columnMenu/GridColumnMenu.js +33 -33
  62. package/node/components/panel/filterPanel/GridFilterPanel.js +1 -1
  63. package/node/components/reexportable.js +4 -4
  64. package/node/hooks/features/columnMenu/{useGridColumnMenuComponents.js → useGridColumnMenuSlots.js} +22 -27
  65. package/node/hooks/features/columns/useGridColumns.js +1 -1
  66. package/node/hooks/features/filter/useGridFilter.js +1 -1
  67. package/node/hooks/features/sorting/useGridSorting.js +1 -1
  68. package/node/hooks/features/virtualization/useGridVirtualScroller.js +1 -1
  69. package/node/index.js +7 -7
  70. package/node/locales/daDK.js +16 -21
  71. package/node/locales/esES.js +1 -1
  72. package/node/locales/nbNO.js +10 -12
  73. package/node/locales/svSE.js +2 -2
  74. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -3,6 +3,67 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## 6.0.4
7
+
8
+ _Mar 30, 2023_
9
+
10
+ We'd like to offer a big thanks to the 9 contributors who made this release possible. Here are some highlights ✨:
11
+
12
+ - 🌍 Add Danish (da-DK), and improve Norwegian (nb-NO), Spanish (es-ES), and Swedish (sv-SE) locales
13
+ - 🐞 Bugfixes
14
+ - 📚 Documentation improvements
15
+
16
+ ### `@mui/x-data-grid@v6.0.4` / `@mui/x-data-grid-pro@v6.0.4` / `@mui/x-data-grid-premium@v6.0.4`
17
+
18
+ #### Changes
19
+
20
+ - [DataGrid] Fix column header tooltip not showing when the title is truncated (#8433) @rohitnatesh
21
+ - [DataGrid] Fix filter model buttons' display condition (#8415) @MBilalShafi
22
+ - [DataGrid] Fix infinite rerender in a flex parent (#8436) @cherniavskii
23
+ - [DataGrid] Prevent reopening column menu when clicking in the button while it is open (#8286) @tanuj-22
24
+ - [DataGrid] Rename `components` by `slots` in column menu API (#7999) @MBilalShafi
25
+ - [DataGrid] Remove hardcoded CSS classes' usages (#8444) @MBilalShafi
26
+ - [DataGridPremium] Fix aggregation initial state causing issue with quick filter (#8441) @MBilalShafi
27
+ - [l10n] Improve Danish (da-DK) locale (#8368) @BossElijah
28
+ - [l10n] Improve Danish (da-DK) locale (#8378) @BossElijah
29
+ - [l10n] Improve Norwegian (nb-NO) locale (#8367) @BossElijah
30
+ - [l10n] Improve Norwegian (nb-NO) locale (#8409) @BossElijah
31
+ - [l10n] Improve Spanish (es-ES) locale (#8420) @martjanz
32
+ - [l10n] Improve Swedish (sv-SE) locale (#8381) @BossElijah
33
+
34
+ ### `@mui/x-date-pickers@v6.0.4` / `@mui/x-date-pickers-pro@v6.0.4`
35
+
36
+ #### Changes
37
+
38
+ - [fields] Add missing tokens to `AdapterDateFnsJalali` (#8402) @flaviendelangle
39
+ - [fields] Clean the active date manager (#8370) @flaviendelangle
40
+ - [fields] Cleanup `useFieldState` (#8292) @flaviendelangle
41
+ - [fields] Only add RTL characters when needed (#8325) @flaviendelangle
42
+ - [pickers] Add support for single input fields in range pickers (#7927) @flaviendelangle
43
+ - [pickers] Allows non token characters in format (#8256) @alexfauquette
44
+ - [pickers] Avoid root imports and move public models to the models folder (#8337) @flaviendelangle
45
+ - [pickers] Update `view` when `views` or `openTo` changes (#8361) @LukasTy
46
+ - [l10n] Improve Norwegian (nb-NO) locale (#8382) @BossElijah
47
+ - [l10n] Add Danish (da-DK) locale (#8379) @BossElijah
48
+ - [l10n] Improve Swedish (sv-SE) locale (#8381) @BossElijah
49
+
50
+ ### `@mui/x-codemod@v6.0.4`
51
+
52
+ #### Changes
53
+
54
+ - [codemod] Fix `remove-stabilized-experimentalFeatures` codemod (#8289) @alexfauquette
55
+
56
+ ### Docs
57
+
58
+ - [docs] Fix `GridCellParams` signature in migration guide (#8427) @cherniavskii
59
+ - [docs] Fix "Custom field" demos responsive styles (#8408) @LukasTy
60
+ - [docs] Remove `label` from demos where it reduces clarity (#8416) @LukasTy
61
+ - [docs] Update slots' references in Data Grid migration guide (#8159) @MBilalShafi
62
+
63
+ ### Core
64
+
65
+ - [charts] Work on typing (#8421) @flaviendelangle
66
+
6
67
  ## 6.0.3
7
68
 
8
69
  _Mar 23, 2023_
@@ -20,7 +20,7 @@ export declare const GridPagination: React.ForwardRefExoticComponent<(Omit<Parti
20
20
  showFirstButton?: boolean | undefined;
21
21
  showLastButton?: boolean | undefined;
22
22
  sx?: import("@mui/material/styles").SxProps<import("@mui/material/styles").Theme> | undefined;
23
- } & import("@mui/material/OverridableComponent").CommonProps & Omit<import("@mui/material/TablePagination").TablePaginationBaseProps, "hidden" | "color" | "page" | "size" | "height" | "translate" | "width" | "padding" | "abbr" | "slot" | "title" | "ref" | "colSpan" | "headers" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "id" | "lang" | "nonce" | "placeholder" | "spellCheck" | "tabIndex" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "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-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "rowSpan" | "scope" | "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" | "align" | "valign" | "sx" | keyof import("@mui/material/OverridableComponent").CommonProps | "variant" | "count" | "getItemAriaLabel" | "labelDisplayedRows" | "labelRowsPerPage" | "onPageChange" | "onRowsPerPageChange" | "rowsPerPage" | "rowsPerPageOptions" | "showFirstButton" | "showLastButton" | "backIconButtonProps" | "nextIconButtonProps" | "sortDirection" | "ActionsComponent" | "SelectProps">>, "ref"> | Omit<Partial<import("@mui/material/TablePagination").TablePaginationBaseProps & {
23
+ } & import("@mui/material/OverridableComponent").CommonProps & Omit<import("@mui/material/TablePagination").TablePaginationBaseProps, "hidden" | "color" | "page" | "size" | "height" | "translate" | "width" | "padding" | "abbr" | "slot" | "title" | "ref" | "colSpan" | "headers" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "autoFocus" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "id" | "lang" | "nonce" | "placeholder" | "spellCheck" | "tabIndex" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "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-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "rowSpan" | "scope" | "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" | "align" | "valign" | "sx" | keyof import("@mui/material/OverridableComponent").CommonProps | "variant" | "count" | "getItemAriaLabel" | "labelDisplayedRows" | "labelRowsPerPage" | "onPageChange" | "onRowsPerPageChange" | "rowsPerPage" | "rowsPerPageOptions" | "showFirstButton" | "showLastButton" | "backIconButtonProps" | "nextIconButtonProps" | "sortDirection" | "ActionsComponent" | "SelectProps">>, "ref"> | Omit<Partial<import("@mui/material/TablePagination").TablePaginationBaseProps & {
24
24
  ActionsComponent?: React.ElementType<import("@mui/material/TablePagination/TablePaginationActions").TablePaginationActionsProps> | undefined;
25
25
  backIconButtonProps?: Partial<import("@mui/material").IconButtonProps<"button", {}>> | undefined;
26
26
  classes?: Partial<import("@mui/material/TablePagination").TablePaginationClasses> | undefined;
@@ -41,4 +41,4 @@ export declare const GridPagination: React.ForwardRefExoticComponent<(Omit<Parti
41
41
  showFirstButton?: boolean | undefined;
42
42
  showLastButton?: boolean | undefined;
43
43
  sx?: import("@mui/material/styles").SxProps<import("@mui/material/styles").Theme> | undefined;
44
- } & import("@mui/material/OverridableComponent").CommonProps & Omit<Omit<import("@mui/material/TablePagination").TablePaginationBaseProps, "ref"> & React.RefAttributes<React.Component<any, any, any>>, "hidden" | "color" | "page" | "size" | "height" | "translate" | "width" | "padding" | "abbr" | "slot" | "title" | "ref" | "colSpan" | "headers" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "id" | "lang" | "nonce" | "placeholder" | "spellCheck" | "tabIndex" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "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-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "rowSpan" | "scope" | "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" | "align" | "valign" | "sx" | keyof import("@mui/material/OverridableComponent").CommonProps | "variant" | "count" | "getItemAriaLabel" | "labelDisplayedRows" | "labelRowsPerPage" | "onPageChange" | "onRowsPerPageChange" | "rowsPerPage" | "rowsPerPageOptions" | "showFirstButton" | "showLastButton" | "backIconButtonProps" | "nextIconButtonProps" | "sortDirection" | "ActionsComponent" | "SelectProps">>, "ref">) & React.RefAttributes<HTMLDivElement>>;
44
+ } & import("@mui/material/OverridableComponent").CommonProps & Omit<Omit<import("@mui/material/TablePagination").TablePaginationBaseProps, "ref"> & React.RefAttributes<React.Component<any, any, any>>, "hidden" | "color" | "page" | "size" | "height" | "translate" | "width" | "padding" | "abbr" | "slot" | "title" | "ref" | "colSpan" | "headers" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "autoFocus" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "id" | "lang" | "nonce" | "placeholder" | "spellCheck" | "tabIndex" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "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-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "rowSpan" | "scope" | "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" | "align" | "valign" | "sx" | keyof import("@mui/material/OverridableComponent").CommonProps | "variant" | "count" | "getItemAriaLabel" | "labelDisplayedRows" | "labelRowsPerPage" | "onPageChange" | "onRowsPerPageChange" | "rowsPerPage" | "rowsPerPageOptions" | "showFirstButton" | "showLastButton" | "backIconButtonProps" | "nextIconButtonProps" | "sortDirection" | "ActionsComponent" | "SelectProps">>, "ref">) & React.RefAttributes<HTMLDivElement>>;
@@ -48,7 +48,7 @@ function EmptyCell({
48
48
  width
49
49
  };
50
50
  return /*#__PURE__*/_jsx("div", {
51
- className: "MuiDataGrid-cell MuiDataGrid-withBorderColor",
51
+ className: `${gridClasses.cell} ${gridClasses.withBorderColor}`,
52
52
  style: style
53
53
  }); // TODO change to .MuiDataGrid-emptyCell or .MuiDataGrid-rowFiller
54
54
  }
@@ -47,14 +47,13 @@ function GridColumnHeaderTitle(props) {
47
47
  var _rootProps$slotProps;
48
48
  const {
49
49
  label,
50
- description,
51
- columnWidth
50
+ description
52
51
  } = props;
53
52
  const rootProps = useGridRootProps();
54
53
  const titleRef = React.useRef(null);
55
54
  const [tooltip, setTooltip] = React.useState('');
56
- React.useEffect(() => {
57
- if (!description && titleRef && titleRef.current) {
55
+ const handleMouseOver = React.useCallback(() => {
56
+ if (!description && titleRef != null && titleRef.current) {
58
57
  const isOver = isOverflown(titleRef.current);
59
58
  if (isOver) {
60
59
  setTooltip(label);
@@ -62,11 +61,12 @@ function GridColumnHeaderTitle(props) {
62
61
  setTooltip('');
63
62
  }
64
63
  }
65
- }, [titleRef, columnWidth, description, label]);
64
+ }, [description, label]);
66
65
  return /*#__PURE__*/_jsx(rootProps.slots.baseTooltip, _extends({
67
66
  title: description || tooltip
68
67
  }, (_rootProps$slotProps = rootProps.slotProps) == null ? void 0 : _rootProps$slotProps.baseTooltip, {
69
68
  children: /*#__PURE__*/_jsx(ColumnHeaderInnerTitle, {
69
+ onMouseOver: handleMouseOver,
70
70
  ref: titleRef,
71
71
  children: label
72
72
  })
@@ -20,8 +20,10 @@ function GridColumnHeaderMenu({
20
20
  const hideMenu = React.useCallback(event => {
21
21
  // Prevent triggering the sorting
22
22
  event.stopPropagation();
23
- apiRef.current.hideColumnMenu();
24
- }, [apiRef]);
23
+ if (!(target != null && target.contains(event.target))) {
24
+ apiRef.current.hideColumnMenu();
25
+ }
26
+ }, [apiRef, target]);
25
27
  if (!target) {
26
28
  return null;
27
29
  }
@@ -3,12 +3,12 @@ import { GridColumnMenuColumnsItem } from './menuItems/GridColumnMenuColumnsItem
3
3
  import { GridColumnMenuFilterItem } from './menuItems/GridColumnMenuFilterItem';
4
4
  import { GridColumnMenuSortItem } from './menuItems/GridColumnMenuSortItem';
5
5
  import { GridColumnMenuProps, GridGenericColumnMenuProps } from './GridColumnMenuProps';
6
- export declare const GRID_COLUMN_MENU_COMPONENTS: {
7
- ColumnMenuSortItem: typeof GridColumnMenuSortItem;
8
- ColumnMenuFilterItem: typeof GridColumnMenuFilterItem;
9
- ColumnMenuColumnsItem: typeof GridColumnMenuColumnsItem;
6
+ export declare const GRID_COLUMN_MENU_SLOTS: {
7
+ columnMenuSortItem: typeof GridColumnMenuSortItem;
8
+ columnMenuFilterItem: typeof GridColumnMenuFilterItem;
9
+ columnMenuColumnsItem: typeof GridColumnMenuColumnsItem;
10
10
  };
11
- export declare const GRID_COLUMN_MENU_COMPONENTS_PROPS: {
11
+ export declare const GRID_COLUMN_MENU_SLOT_PROPS: {
12
12
  columnMenuSortItem: {
13
13
  displayOrder: number;
14
14
  };
@@ -1,20 +1,20 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
- const _excluded = ["defaultComponents", "defaultComponentsProps", "components", "componentsProps"];
3
+ const _excluded = ["defaultSlots", "defaultSlotProps", "slots", "slotProps"];
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
- import { useGridColumnMenuComponents } from '../../../hooks/features/columnMenu/useGridColumnMenuComponents';
6
+ import { useGridColumnMenuSlots } from '../../../hooks/features/columnMenu/useGridColumnMenuSlots';
7
7
  import { GridColumnMenuContainer } from './GridColumnMenuContainer';
8
8
  import { GridColumnMenuColumnsItem } from './menuItems/GridColumnMenuColumnsItem';
9
9
  import { GridColumnMenuFilterItem } from './menuItems/GridColumnMenuFilterItem';
10
10
  import { GridColumnMenuSortItem } from './menuItems/GridColumnMenuSortItem';
11
11
  import { jsx as _jsx } from "react/jsx-runtime";
12
- export const GRID_COLUMN_MENU_COMPONENTS = {
13
- ColumnMenuSortItem: GridColumnMenuSortItem,
14
- ColumnMenuFilterItem: GridColumnMenuFilterItem,
15
- ColumnMenuColumnsItem: GridColumnMenuColumnsItem
12
+ export const GRID_COLUMN_MENU_SLOTS = {
13
+ columnMenuSortItem: GridColumnMenuSortItem,
14
+ columnMenuFilterItem: GridColumnMenuFilterItem,
15
+ columnMenuColumnsItem: GridColumnMenuColumnsItem
16
16
  };
17
- export const GRID_COLUMN_MENU_COMPONENTS_PROPS = {
17
+ export const GRID_COLUMN_MENU_SLOT_PROPS = {
18
18
  columnMenuSortItem: {
19
19
  displayOrder: 10
20
20
  },
@@ -27,29 +27,29 @@ export const GRID_COLUMN_MENU_COMPONENTS_PROPS = {
27
27
  };
28
28
  const GridGenericColumnMenu = /*#__PURE__*/React.forwardRef(function GridGenericColumnMenu(props, ref) {
29
29
  const {
30
- defaultComponents,
31
- defaultComponentsProps,
32
- components,
33
- componentsProps
30
+ defaultSlots,
31
+ defaultSlotProps,
32
+ slots,
33
+ slotProps
34
34
  } = props,
35
35
  other = _objectWithoutPropertiesLoose(props, _excluded);
36
- const orderedComponents = useGridColumnMenuComponents(_extends({}, other, {
37
- defaultComponents,
38
- defaultComponentsProps,
39
- components,
40
- componentsProps
36
+ const orderedSlots = useGridColumnMenuSlots(_extends({}, other, {
37
+ defaultSlots,
38
+ defaultSlotProps,
39
+ slots,
40
+ slotProps
41
41
  }));
42
42
  return /*#__PURE__*/_jsx(GridColumnMenuContainer, _extends({
43
43
  ref: ref
44
44
  }, other, {
45
- children: orderedComponents.map(([Component, componentProps], index) => /*#__PURE__*/_jsx(Component, _extends({}, componentProps), index))
45
+ children: orderedSlots.map(([Component, otherProps], index) => /*#__PURE__*/_jsx(Component, _extends({}, otherProps), index))
46
46
  }));
47
47
  });
48
48
  const GridColumnMenu = /*#__PURE__*/React.forwardRef(function GridColumnMenu(props, ref) {
49
49
  return /*#__PURE__*/_jsx(GridGenericColumnMenu, _extends({}, props, {
50
50
  ref: ref,
51
- defaultComponents: GRID_COLUMN_MENU_COMPONENTS,
52
- defaultComponentsProps: GRID_COLUMN_MENU_COMPONENTS_PROPS
51
+ defaultSlots: GRID_COLUMN_MENU_SLOTS,
52
+ defaultSlotProps: GRID_COLUMN_MENU_SLOT_PROPS
53
53
  }));
54
54
  });
55
55
  process.env.NODE_ENV !== "production" ? GridColumnMenu.propTypes = {
@@ -58,20 +58,20 @@ process.env.NODE_ENV !== "production" ? GridColumnMenu.propTypes = {
58
58
  // | To update them edit the TypeScript types and run "yarn proptypes" |
59
59
  // ----------------------------------------------------------------------
60
60
  colDef: PropTypes.object.isRequired,
61
- /**
62
- * `components` could be used to add new and (or) override default column menu items
63
- * If you register a nee component you must pass it's `displayOrder` in `componentsProps`
64
- * or it will be placed in the end of the list
65
- */
66
- components: PropTypes.object,
61
+ hideMenu: PropTypes.func.isRequired,
62
+ id: PropTypes.string,
63
+ labelledby: PropTypes.string,
64
+ open: PropTypes.bool.isRequired,
67
65
  /**
68
66
  * Could be used to pass new props or override props specific to a column menu component
69
67
  * e.g. `displayOrder`
70
68
  */
71
- componentsProps: PropTypes.object,
72
- hideMenu: PropTypes.func.isRequired,
73
- id: PropTypes.string,
74
- labelledby: PropTypes.string,
75
- open: PropTypes.bool.isRequired
69
+ slotProps: PropTypes.object,
70
+ /**
71
+ * `slots` could be used to add new and (or) override default column menu items
72
+ * If you register a nee component you must pass it's `displayOrder` in `slotProps`
73
+ * or it will be placed in the end of the list
74
+ */
75
+ slots: PropTypes.object
76
76
  } : void 0;
77
77
  export { GridColumnMenu, GridGenericColumnMenu };
@@ -10,5 +10,5 @@ export interface GridColumnMenuContainerProps extends React.HTMLAttributes<HTMLU
10
10
  }
11
11
  export interface GridGenericColumnMenuProps extends GridColumnMenuRootProps, GridColumnMenuContainerProps {
12
12
  }
13
- export interface GridColumnMenuProps extends Omit<GridGenericColumnMenuProps, 'defaultComponents' | 'defaultComponentsProps'> {
13
+ export interface GridColumnMenuProps extends Omit<GridGenericColumnMenuProps, 'defaultSlots' | 'defaultSlotProps'> {
14
14
  }
@@ -24,7 +24,7 @@ declare const GridPanelRoot: import("@emotion/styled").StyledComponent<Pick<Omit
24
24
  root?: import("@mui/base").SlotComponentProps<"div", import("@mui/base").PopperUnstyledRootSlotPropsOverrides, import("@mui/base").PopperUnstyledOwnerState> | undefined;
25
25
  } | undefined;
26
26
  sx?: import("@mui/material/styles").SxProps<import("@mui/material/styles").Theme> | undefined;
27
- } & React.RefAttributes<HTMLDivElement>, "hidden" | "color" | "style" | "open" | "translate" | "transition" | "slot" | "title" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "className" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "id" | "lang" | "nonce" | "placeholder" | "spellCheck" | "tabIndex" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "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-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" | "ownerState" | "components" | "container" | "placement" | "disablePortal" | "modifiers" | "anchorEl" | "keepMounted" | "popperOptions" | "popperRef" | "slotProps" | "slots" | "componentsProps" | keyof React.RefAttributes<HTMLDivElement>> & import("@mui/system").MUIStyledCommonProps<import("@mui/material/styles").Theme> & {
27
+ } & React.RefAttributes<HTMLDivElement>, "hidden" | "color" | "style" | "open" | "translate" | "transition" | "slot" | "title" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "autoFocus" | "className" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "id" | "lang" | "nonce" | "placeholder" | "spellCheck" | "tabIndex" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "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-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" | "ownerState" | "components" | "container" | "placement" | "disablePortal" | "modifiers" | "anchorEl" | "keepMounted" | "popperOptions" | "popperRef" | "slotProps" | "slots" | "componentsProps" | keyof React.RefAttributes<HTMLDivElement>> & import("@mui/system").MUIStyledCommonProps<import("@mui/material/styles").Theme> & {
28
28
  ownerState: OwnerState;
29
29
  }, {}, {}>;
30
30
  declare const GridPanel: React.ForwardRefExoticComponent<Omit<GridPanelProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
@@ -147,7 +147,7 @@ const GridFilterPanel = /*#__PURE__*/React.forwardRef(function GridFilterPanel(p
147
147
  logicOperators: logicOperators,
148
148
  columnsSort: columnsSort
149
149
  }, filterFormProps), item.id == null ? index : item.id))
150
- }), !rootProps.disableMultipleColumnsFiltering && !disableAddFilterButton && !disableRemoveAllButton ? /*#__PURE__*/_jsxs(GridPanelFooter, {
150
+ }), !rootProps.disableMultipleColumnsFiltering && !(disableAddFilterButton && disableRemoveAllButton) ? /*#__PURE__*/_jsxs(GridPanelFooter, {
151
151
  children: [!disableAddFilterButton ? /*#__PURE__*/_jsx(rootProps.slots.baseButton, _extends({
152
152
  onClick: addNewFilter,
153
153
  startIcon: /*#__PURE__*/_jsx(rootProps.slots.filterPanelAddIcon, {})
@@ -1 +1 @@
1
- export { GridColumnMenu, GRID_COLUMN_MENU_COMPONENTS, GRID_COLUMN_MENU_COMPONENTS_PROPS, } from './menu/columnMenu/GridColumnMenu';
1
+ export { GridColumnMenu, GRID_COLUMN_MENU_SLOTS, GRID_COLUMN_MENU_SLOT_PROPS, } from './menu/columnMenu/GridColumnMenu';
@@ -1 +1 @@
1
- export { GridColumnMenu, GRID_COLUMN_MENU_COMPONENTS, GRID_COLUMN_MENU_COMPONENTS_PROPS } from './menu/columnMenu/GridColumnMenu';
1
+ export { GridColumnMenu, GRID_COLUMN_MENU_SLOTS, GRID_COLUMN_MENU_SLOT_PROPS } from './menu/columnMenu/GridColumnMenu';
@@ -3,7 +3,7 @@ export interface GridColumnMenuState {
3
3
  open: boolean;
4
4
  field?: string;
5
5
  }
6
- export interface GridColumnMenuComponentProps {
6
+ export interface GridColumnMenuSlotProps {
7
7
  /**
8
8
  * Every item has a `displayOrder` based which it will be placed before or after other
9
9
  * items in the column menu, `array.prototype.sort` is applied to sort the items.
@@ -16,32 +16,32 @@ export interface GridColumnMenuComponentProps {
16
16
  }
17
17
  export interface GridColumnMenuRootProps {
18
18
  /**
19
- * Initial `components` - it is internal, to be overridden by Pro or Premium packages
19
+ * Initial `slots` - it is internal, to be overrriden by Pro or Premium packages
20
20
  * @ignore - do not document.
21
21
  */
22
- defaultComponents: {
22
+ defaultSlots: {
23
23
  [key: string]: React.JSXElementConstructor<any>;
24
24
  };
25
25
  /**
26
- * Initial `componentsProps` - it is internal, to be overridden by Pro or Premium packages
26
+ * Initial `slotProps` - it is internal, to be overrriden by Pro or Premium packages
27
27
  * @ignore - do not document.
28
28
  */
29
- defaultComponentsProps: {
30
- [key: string]: GridColumnMenuComponentProps;
29
+ defaultSlotProps: {
30
+ [key: string]: GridColumnMenuSlotProps;
31
31
  };
32
32
  /**
33
- * `components` could be used to add new and (or) override default column menu items
34
- * If you register a nee component you must pass it's `displayOrder` in `componentsProps`
33
+ * `slots` could be used to add new and (or) override default column menu items
34
+ * If you register a nee component you must pass it's `displayOrder` in `slotProps`
35
35
  * or it will be placed in the end of the list
36
36
  */
37
- components?: {
37
+ slots?: {
38
38
  [key: string]: React.JSXElementConstructor<any> | null;
39
39
  };
40
40
  /**
41
41
  * Could be used to pass new props or override props specific to a column menu component
42
42
  * e.g. `displayOrder`
43
43
  */
44
- componentsProps?: {
45
- [key: string]: GridColumnMenuComponentProps;
44
+ slotProps?: {
45
+ [key: string]: GridColumnMenuSlotProps;
46
46
  };
47
47
  }
@@ -1,16 +1,16 @@
1
1
  import * as React from 'react';
2
2
  import { GridColumnMenuRootProps } from './columnMenuInterfaces';
3
3
  import { GridColDef } from '../../../models/colDef/gridColDef';
4
- interface UseGridColumnMenuComponentsProps extends GridColumnMenuRootProps {
4
+ interface UseGridColumnMenuSlotsProps extends GridColumnMenuRootProps {
5
5
  colDef: GridColDef;
6
6
  hideMenu: (event: React.SyntheticEvent) => void;
7
7
  addDividers?: boolean;
8
8
  }
9
- type UseGridColumnMenuComponentsResponse = Array<[
9
+ type UseGridColumnMenuSlotsResponse = Array<[
10
10
  React.JSXElementConstructor<any>,
11
11
  {
12
12
  [key: string]: any;
13
13
  }
14
14
  ]>;
15
- declare const useGridColumnMenuComponents: (props: UseGridColumnMenuComponentsProps) => UseGridColumnMenuComponentsResponse;
16
- export { useGridColumnMenuComponents };
15
+ declare const useGridColumnMenuSlots: (props: UseGridColumnMenuSlotsProps) => UseGridColumnMenuSlotsResponse;
16
+ export { useGridColumnMenuSlots };
@@ -4,44 +4,39 @@ const _excluded = ["displayOrder"];
4
4
  import * as React from 'react';
5
5
  import Divider from '@mui/material/Divider';
6
6
  import { useGridPrivateApiContext } from '../../utils/useGridPrivateApiContext';
7
- const camelize = pascalCase => {
8
- const camelCase = pascalCase.split('');
9
- camelCase[0] = camelCase[0].toLowerCase();
10
- return camelCase.join('');
11
- };
12
- const useGridColumnMenuComponents = props => {
7
+ const useGridColumnMenuSlots = props => {
13
8
  const apiRef = useGridPrivateApiContext();
14
9
  const {
15
- defaultComponents,
16
- defaultComponentsProps,
17
- components = {},
18
- componentsProps = {},
10
+ defaultSlots,
11
+ defaultSlotProps,
12
+ slots = {},
13
+ slotProps = {},
19
14
  hideMenu,
20
15
  colDef,
21
16
  addDividers = true
22
17
  } = props;
23
- const processedComponents = React.useMemo(() => _extends({}, defaultComponents, components), [defaultComponents, components]);
24
- const processedComponentsProps = React.useMemo(() => {
25
- if (!componentsProps || Object.keys(componentsProps).length === 0) {
26
- return defaultComponentsProps;
18
+ const processedComponents = React.useMemo(() => _extends({}, defaultSlots, slots), [defaultSlots, slots]);
19
+ const processedSlotProps = React.useMemo(() => {
20
+ if (!slotProps || Object.keys(slotProps).length === 0) {
21
+ return defaultSlotProps;
27
22
  }
28
- const mergedProps = _extends({}, componentsProps);
29
- Object.entries(defaultComponentsProps).forEach(([key, currentComponentProps]) => {
30
- mergedProps[key] = _extends({}, currentComponentProps, componentsProps[key] || {});
23
+ const mergedProps = _extends({}, slotProps);
24
+ Object.entries(defaultSlotProps).forEach(([key, currentSlotProps]) => {
25
+ mergedProps[key] = _extends({}, currentSlotProps, slotProps[key] || {});
31
26
  });
32
27
  return mergedProps;
33
- }, [defaultComponentsProps, componentsProps]);
28
+ }, [defaultSlotProps, slotProps]);
34
29
  const defaultItems = apiRef.current.unstable_applyPipeProcessors('columnMenu', [], props.colDef);
35
30
  const userItems = React.useMemo(() => {
36
- const defaultComponentKeys = Object.keys(defaultComponents);
37
- return Object.keys(components).filter(key => !defaultComponentKeys.includes(key));
38
- }, [components, defaultComponents]);
31
+ const defaultComponentKeys = Object.keys(defaultSlots);
32
+ return Object.keys(slots).filter(key => !defaultComponentKeys.includes(key));
33
+ }, [slots, defaultSlots]);
39
34
  return React.useMemo(() => {
40
35
  const uniqueItems = Array.from(new Set([...defaultItems, ...userItems]));
41
36
  const cleansedItems = uniqueItems.filter(key => processedComponents[key] != null);
42
37
  const sorted = cleansedItems.sort((a, b) => {
43
- const leftItemProps = processedComponentsProps[camelize(a)];
44
- const rightItemProps = processedComponentsProps[camelize(b)];
38
+ const leftItemProps = processedSlotProps[a];
39
+ const rightItemProps = processedSlotProps[b];
45
40
  const leftDisplayOrder = Number.isFinite(leftItemProps == null ? void 0 : leftItemProps.displayOrder) ? leftItemProps.displayOrder : 100;
46
41
  const rightDisplayOrder = Number.isFinite(rightItemProps == null ? void 0 : rightItemProps.displayOrder) ? rightItemProps.displayOrder : 100;
47
42
  return leftDisplayOrder - rightDisplayOrder;
@@ -51,13 +46,13 @@ const useGridColumnMenuComponents = props => {
51
46
  colDef,
52
47
  onClick: hideMenu
53
48
  };
54
- const processedComponentProps = processedComponentsProps[camelize(key)];
49
+ const processedComponentProps = processedSlotProps[key];
55
50
  if (processedComponentProps) {
56
51
  const customProps = _objectWithoutPropertiesLoose(processedComponentProps, _excluded);
57
52
  itemProps = _extends({}, itemProps, customProps);
58
53
  }
59
54
  return addDividers && index !== sorted.length - 1 ? [...acc, [processedComponents[key], itemProps], [Divider, {}]] : [...acc, [processedComponents[key], itemProps]];
60
55
  }, []);
61
- }, [addDividers, colDef, defaultItems, hideMenu, processedComponents, processedComponentsProps, userItems]);
56
+ }, [addDividers, colDef, defaultItems, hideMenu, processedComponents, processedSlotProps, userItems]);
62
57
  };
63
- export { useGridColumnMenuComponents };
58
+ export { useGridColumnMenuSlots };
@@ -232,7 +232,7 @@ export function useGridColumns(apiRef, props) {
232
232
  if (props.disableColumnSelector) {
233
233
  return columnMenuItems;
234
234
  }
235
- return [...columnMenuItems, 'ColumnMenuColumnsItem'];
235
+ return [...columnMenuItems, 'columnMenuColumnsItem'];
236
236
  }, [props.disableColumnSelector]);
237
237
  useGridRegisterPipeProcessor(apiRef, 'columnMenu', addColumnMenuItems);
238
238
  useGridRegisterPipeProcessor(apiRef, 'exportState', stateExportPreProcessing);
@@ -59,7 +59,7 @@ export const useGridFilter = (apiRef, props) => {
59
59
  if (colDef == null || colDef.filterable === false || props.disableColumnFilter) {
60
60
  return columnMenuItems;
61
61
  }
62
- return [...columnMenuItems, 'ColumnMenuFilterItem'];
62
+ return [...columnMenuItems, 'columnMenuFilterItem'];
63
63
  }, [props.disableColumnFilter]);
64
64
 
65
65
  /**
@@ -74,7 +74,7 @@ export const useGridSorting = (apiRef, props) => {
74
74
  }
75
75
  const sortingOrder = colDef.sortingOrder || props.sortingOrder;
76
76
  if (sortingOrder.some(item => !!item)) {
77
- return [...columnMenuItems, 'ColumnMenuSortItem'];
77
+ return [...columnMenuItems, 'columnMenuSortItem'];
78
78
  }
79
79
  return columnMenuItems;
80
80
  }, [props.sortingOrder]);
@@ -429,7 +429,7 @@ export const useGridVirtualScroller = props => {
429
429
  prevRootRowStyle.current = rootRowStyle;
430
430
  return rows;
431
431
  };
432
- const needsHorizontalScrollbar = containerDimensions.width && columnsTotalWidth > containerDimensions.width;
432
+ const needsHorizontalScrollbar = containerDimensions.width && columnsTotalWidth >= containerDimensions.width;
433
433
  const contentSize = React.useMemo(() => {
434
434
  // In cases where the columns exceed the available width,
435
435
  // the horizontal scrollbar should be shown even when there're no rows.
package/index.d.ts CHANGED
@@ -19,7 +19,7 @@ export { GridColumnHeaders } from './components/GridColumnHeaders';
19
19
  /**
20
20
  * Reexportable components.
21
21
  */
22
- export { GridColumnMenu, GRID_COLUMN_MENU_COMPONENTS, GRID_COLUMN_MENU_COMPONENTS_PROPS, } from './components/reexportable';
22
+ export { GridColumnMenu, GRID_COLUMN_MENU_SLOTS, GRID_COLUMN_MENU_SLOT_PROPS, } from './components/reexportable';
23
23
  /**
24
24
  * The full grid API.
25
25
  * @demos