@mui/x-data-grid 7.20.0 → 7.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (124) hide show
  1. package/CHANGELOG.md +120 -31
  2. package/DataGrid/DataGrid.js +1 -0
  3. package/DataGrid/index.d.ts +0 -1
  4. package/DataGrid/index.js +1 -2
  5. package/DataGrid/useDataGridComponent.js +4 -1
  6. package/DataGrid/useDataGridProps.d.ts +1 -5
  7. package/DataGrid/useDataGridProps.js +3 -62
  8. package/components/GridPagination.js +1 -0
  9. package/components/GridRow.js +25 -36
  10. package/components/base/GridOverlays.js +8 -0
  11. package/components/containers/GridRootStyles.js +1 -0
  12. package/components/menu/columnMenu/GridColumnMenu.js +32 -0
  13. package/components/toolbar/GridToolbarExport.d.ts +9 -3
  14. package/components/toolbar/GridToolbarExport.js +55 -3
  15. package/components/virtualization/GridVirtualScrollbar.js +4 -0
  16. package/components/virtualization/GridVirtualScroller.js +2 -2
  17. package/constants/dataGridPropsDefaultValues.d.ts +5 -0
  18. package/constants/dataGridPropsDefaultValues.js +60 -0
  19. package/hooks/core/pipeProcessing/gridPipeProcessingApi.d.ts +2 -1
  20. package/hooks/features/clipboard/useGridClipboard.js +2 -1
  21. package/hooks/features/columnHeaders/useGridColumnHeaders.js +3 -1
  22. package/hooks/features/columns/gridColumnsUtils.d.ts +1 -1
  23. package/hooks/features/columns/gridColumnsUtils.js +3 -0
  24. package/hooks/features/dimensions/useGridDimensions.js +4 -2
  25. package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.d.ts +1 -1
  26. package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +9 -5
  27. package/hooks/features/listView/gridListViewSelectors.d.ts +5 -0
  28. package/hooks/features/listView/gridListViewSelectors.js +4 -0
  29. package/hooks/features/listView/useGridListView.d.ts +10 -0
  30. package/hooks/features/listView/useGridListView.js +54 -0
  31. package/hooks/features/rowSelection/useGridRowSelection.js +11 -2
  32. package/hooks/features/rowSelection/utils.js +1 -1
  33. package/hooks/features/rows/gridRowsMetaInterfaces.d.ts +16 -0
  34. package/hooks/features/rows/gridRowsMetaInterfaces.js +1 -0
  35. package/hooks/features/rows/gridRowsUtils.d.ts +3 -0
  36. package/hooks/features/rows/gridRowsUtils.js +14 -1
  37. package/hooks/features/rows/useGridParamsApi.d.ts +2 -1
  38. package/hooks/features/rows/useGridParamsApi.js +4 -3
  39. package/hooks/features/rows/useGridRowsMeta.js +135 -154
  40. package/hooks/features/scroll/useGridScroll.d.ts +1 -1
  41. package/hooks/features/scroll/useGridScroll.js +3 -2
  42. package/hooks/features/virtualization/useGridVirtualScroller.js +23 -9
  43. package/hooks/utils/useGridApiMethod.js +2 -1
  44. package/index.d.ts +1 -0
  45. package/index.js +2 -1
  46. package/internals/index.d.ts +2 -1
  47. package/internals/index.js +2 -1
  48. package/models/api/gridRowsMetaApi.d.ts +15 -14
  49. package/models/colDef/gridColDef.d.ts +6 -0
  50. package/models/colDef/index.d.ts +1 -1
  51. package/models/gridApiCaches.d.ts +2 -0
  52. package/models/gridStateCommunity.d.ts +2 -0
  53. package/models/props/DataGridProps.d.ts +14 -3
  54. package/modern/DataGrid/DataGrid.js +1 -0
  55. package/modern/DataGrid/index.js +1 -2
  56. package/modern/DataGrid/useDataGridComponent.js +4 -1
  57. package/modern/DataGrid/useDataGridProps.js +3 -62
  58. package/modern/components/GridPagination.js +1 -0
  59. package/modern/components/GridRow.js +25 -36
  60. package/modern/components/base/GridOverlays.js +8 -0
  61. package/modern/components/containers/GridRootStyles.js +1 -0
  62. package/modern/components/menu/columnMenu/GridColumnMenu.js +32 -0
  63. package/modern/components/toolbar/GridToolbarExport.js +55 -3
  64. package/modern/components/virtualization/GridVirtualScrollbar.js +4 -0
  65. package/modern/components/virtualization/GridVirtualScroller.js +2 -2
  66. package/modern/constants/dataGridPropsDefaultValues.js +60 -0
  67. package/modern/hooks/features/clipboard/useGridClipboard.js +2 -1
  68. package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +3 -1
  69. package/modern/hooks/features/columns/gridColumnsUtils.js +3 -0
  70. package/modern/hooks/features/dimensions/useGridDimensions.js +4 -2
  71. package/modern/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +9 -5
  72. package/modern/hooks/features/listView/gridListViewSelectors.js +4 -0
  73. package/modern/hooks/features/listView/useGridListView.js +54 -0
  74. package/modern/hooks/features/rowSelection/useGridRowSelection.js +11 -2
  75. package/modern/hooks/features/rowSelection/utils.js +1 -1
  76. package/modern/hooks/features/rows/gridRowsMetaInterfaces.js +1 -0
  77. package/modern/hooks/features/rows/gridRowsUtils.js +14 -1
  78. package/modern/hooks/features/rows/useGridParamsApi.js +4 -3
  79. package/modern/hooks/features/rows/useGridRowsMeta.js +135 -154
  80. package/modern/hooks/features/scroll/useGridScroll.js +3 -2
  81. package/modern/hooks/features/virtualization/useGridVirtualScroller.js +23 -9
  82. package/modern/hooks/utils/useGridApiMethod.js +2 -1
  83. package/modern/index.js +2 -1
  84. package/modern/internals/index.js +2 -1
  85. package/modern/utils/ResizeObserver.js +10 -0
  86. package/modern/utils/keyboardUtils.js +12 -4
  87. package/node/DataGrid/DataGrid.js +1 -0
  88. package/node/DataGrid/index.js +1 -12
  89. package/node/DataGrid/useDataGridComponent.js +4 -1
  90. package/node/DataGrid/useDataGridProps.js +6 -65
  91. package/node/components/GridPagination.js +1 -0
  92. package/node/components/GridRow.js +25 -36
  93. package/node/components/base/GridOverlays.js +8 -0
  94. package/node/components/containers/GridRootStyles.js +1 -0
  95. package/node/components/menu/columnMenu/GridColumnMenu.js +32 -0
  96. package/node/components/toolbar/GridToolbarExport.js +52 -0
  97. package/node/components/virtualization/GridVirtualScrollbar.js +4 -0
  98. package/node/components/virtualization/GridVirtualScroller.js +2 -2
  99. package/node/constants/dataGridPropsDefaultValues.js +66 -0
  100. package/node/hooks/features/clipboard/useGridClipboard.js +2 -1
  101. package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +3 -1
  102. package/node/hooks/features/columns/gridColumnsUtils.js +3 -0
  103. package/node/hooks/features/dimensions/useGridDimensions.js +3 -1
  104. package/node/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +9 -5
  105. package/node/hooks/features/listView/gridListViewSelectors.js +11 -0
  106. package/node/hooks/features/listView/useGridListView.js +64 -0
  107. package/node/hooks/features/rowSelection/useGridRowSelection.js +11 -2
  108. package/node/hooks/features/rowSelection/utils.js +1 -1
  109. package/node/hooks/features/rows/gridRowsMetaInterfaces.js +5 -0
  110. package/node/hooks/features/rows/gridRowsUtils.js +16 -2
  111. package/node/hooks/features/rows/useGridParamsApi.js +4 -3
  112. package/node/hooks/features/rows/useGridRowsMeta.js +136 -154
  113. package/node/hooks/features/scroll/useGridScroll.js +3 -2
  114. package/node/hooks/features/virtualization/useGridVirtualScroller.js +23 -9
  115. package/node/hooks/utils/useGridApiMethod.js +3 -1
  116. package/node/index.js +13 -1
  117. package/node/internals/index.js +22 -0
  118. package/node/utils/ResizeObserver.js +16 -0
  119. package/node/utils/keyboardUtils.js +15 -5
  120. package/package.json +2 -2
  121. package/utils/ResizeObserver.d.ts +4 -0
  122. package/utils/ResizeObserver.js +10 -0
  123. package/utils/keyboardUtils.d.ts +1 -0
  124. package/utils/keyboardUtils.js +12 -4
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mui/x-data-grid",
3
- "version": "7.20.0",
3
+ "version": "7.21.0",
4
4
  "description": "The Community plan edition of the Data Grid components (MUI X).",
5
5
  "author": "MUI Team",
6
6
  "main": "./node/index.js",
@@ -42,7 +42,7 @@
42
42
  "clsx": "^2.1.1",
43
43
  "prop-types": "^15.8.1",
44
44
  "reselect": "^5.1.1",
45
- "@mui/x-internals": "7.20.0"
45
+ "@mui/x-internals": "7.21.0"
46
46
  },
47
47
  "peerDependencies": {
48
48
  "@emotion/react": "^11.9.0",
@@ -0,0 +1,4 @@
1
+ /**
2
+ * HACK: Minimal shim to get jsdom to work.
3
+ */
4
+ export declare const ResizeObserver: typeof globalThis.ResizeObserver;
@@ -0,0 +1,10 @@
1
+ /* eslint-disable */
2
+
3
+ /**
4
+ * HACK: Minimal shim to get jsdom to work.
5
+ */
6
+ export const ResizeObserver = typeof globalThis.ResizeObserver !== 'undefined' ? globalThis.ResizeObserver : class ResizeObserver {
7
+ observe() {}
8
+ unobserve() {}
9
+ disconnect() {}
10
+ };
@@ -11,3 +11,4 @@ export declare const isNavigationKey: (key: string) => boolean;
11
11
  export declare const isKeyboardEvent: (event: any) => event is React.KeyboardEvent<HTMLElement>;
12
12
  export declare const isHideMenuKey: (key: React.KeyboardEvent["key"]) => key is "Tab" | "Escape";
13
13
  export declare function isPasteShortcut(event: React.KeyboardEvent): boolean;
14
+ export declare function isCopyShortcut(event: KeyboardEvent): boolean;
@@ -22,8 +22,16 @@ export const isHideMenuKey = key => key === 'Tab' || key === 'Escape';
22
22
  // In theory, on macOS, ctrl + v doesn't trigger a paste, so the function should return false.
23
23
  // However, maybe it's overkill to fix, so let's be lazy.
24
24
  export function isPasteShortcut(event) {
25
- if ((event.ctrlKey || event.metaKey) && event.key.toLowerCase() === 'v' && !event.shiftKey && !event.altKey) {
26
- return true;
27
- }
28
- return false;
25
+ return (event.ctrlKey || event.metaKey) &&
26
+ // We can't use event.code === 'KeyV' as event.code assumes a QWERTY keyboard layout,
27
+ // for example, it would be another letter on a Dvorak physical keyboard.
28
+ // We can't use event.key === 'v' as event.key is not stable with key modifiers and keyboard layouts,
29
+ // for example, it would be ה on a Hebrew keyboard layout.
30
+ // https://github.com/w3c/uievents/issues/377 could be a long-term solution
31
+ String.fromCharCode(event.keyCode) === 'V' && !event.shiftKey && !event.altKey;
32
+ }
33
+
34
+ // Checks if the keyboard event corresponds to the copy shortcut (CTRL+C or CMD+C) across different localization keyboards.
35
+ export function isCopyShortcut(event) {
36
+ return (event.ctrlKey || event.metaKey) && String.fromCharCode(event.keyCode) === 'C' && !event.shiftKey && !event.altKey;
29
37
  }