@mui/x-data-grid 7.22.2 → 7.23.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 (232) hide show
  1. package/CHANGELOG.md +169 -0
  2. package/DataGrid/DataGrid.js +9 -1
  3. package/README.md +3 -3
  4. package/components/GridDetailPanels.js +0 -1
  5. package/components/GridPinnedRows.js +0 -1
  6. package/components/GridRow.d.ts +2 -2
  7. package/components/GridRow.js +1 -1
  8. package/components/base/GridOverlays.js +5 -6
  9. package/components/cell/GridCell.d.ts +41 -3
  10. package/components/cell/GridCell.js +11 -19
  11. package/components/cell/GridEditInputCell.js +0 -67
  12. package/components/columnsManagement/GridColumnsManagement.d.ts +2 -0
  13. package/components/columnsManagement/GridColumnsManagement.js +53 -6
  14. package/components/panel/GridPanel.d.ts +1 -1
  15. package/components/toolbar/GridToolbar.d.ts +2 -2
  16. package/components/toolbar/GridToolbar.js +12 -4
  17. package/components/toolbar/GridToolbarColumnsButton.js +3 -4
  18. package/components/toolbar/GridToolbarDensitySelector.js +3 -4
  19. package/components/toolbar/GridToolbarExport.d.ts +2 -2
  20. package/components/toolbar/GridToolbarExport.js +4 -3
  21. package/components/toolbar/GridToolbarExportContainer.js +3 -4
  22. package/components/toolbar/GridToolbarFilterButton.d.ts +2 -0
  23. package/components/toolbar/GridToolbarFilterButton.js +7 -6
  24. package/components/toolbar/GridToolbarQuickFilter.js +1 -0
  25. package/components/toolbar/index.d.ts +1 -1
  26. package/constants/dataGridPropsDefaultValues.js +2 -1
  27. package/constants/gridClasses.d.ts +4 -0
  28. package/constants/gridClasses.js +1 -1
  29. package/constants/localeTextConstants.js +1 -0
  30. package/hooks/features/columnHeaders/useGridColumnHeaders.js +2 -2
  31. package/hooks/features/dimensions/useGridDimensions.js +2 -1
  32. package/hooks/features/export/useGridCsvExport.js +1 -1
  33. package/hooks/features/export/useGridPrintExport.js +1 -1
  34. package/hooks/features/index.d.ts +1 -0
  35. package/hooks/features/index.js +1 -0
  36. package/hooks/features/listView/gridListViewSelectors.d.ts +3 -1
  37. package/hooks/features/listView/gridListViewSelectors.js +3 -1
  38. package/hooks/features/listView/index.d.ts +1 -0
  39. package/hooks/features/listView/index.js +1 -0
  40. package/hooks/features/pagination/useGridPaginationModel.js +2 -2
  41. package/hooks/features/rowSelection/useGridRowSelection.js +0 -9
  42. package/hooks/features/rows/gridRowsUtils.d.ts +1 -1
  43. package/hooks/features/rows/gridRowsUtils.js +1 -5
  44. package/hooks/features/virtualization/useGridVirtualScroller.d.ts +1 -1
  45. package/hooks/features/virtualization/useGridVirtualScroller.js +59 -19
  46. package/hooks/utils/useGridSelector.d.ts +3 -2
  47. package/hooks/utils/useGridSelector.js +27 -2
  48. package/index.d.ts +0 -1
  49. package/index.js +1 -1
  50. package/joy/joySlots.js +7 -2
  51. package/locales/arSD.js +1 -0
  52. package/locales/beBY.js +1 -0
  53. package/locales/bgBG.js +2 -0
  54. package/locales/csCZ.js +2 -0
  55. package/locales/daDK.js +2 -0
  56. package/locales/deDE.js +2 -0
  57. package/locales/elGR.js +1 -0
  58. package/locales/esES.js +5 -4
  59. package/locales/faIR.js +2 -0
  60. package/locales/fiFI.js +2 -0
  61. package/locales/frFR.js +2 -0
  62. package/locales/heIL.js +2 -0
  63. package/locales/hrHR.js +2 -0
  64. package/locales/huHU.js +2 -0
  65. package/locales/isIS.js +1 -0
  66. package/locales/itIT.js +2 -0
  67. package/locales/jaJP.js +2 -0
  68. package/locales/koKR.js +1 -0
  69. package/locales/nbNO.js +2 -0
  70. package/locales/nlNL.js +2 -0
  71. package/locales/nnNO.js +2 -0
  72. package/locales/plPL.js +1 -0
  73. package/locales/ptBR.js +1 -0
  74. package/locales/ptPT.js +1 -0
  75. package/locales/roRO.js +1 -0
  76. package/locales/ruRU.js +2 -0
  77. package/locales/skSK.js +1 -0
  78. package/locales/svSE.js +6 -5
  79. package/locales/trTR.js +4 -2
  80. package/locales/ukUA.js +1 -0
  81. package/locales/urPK.js +1 -0
  82. package/locales/viVN.js +2 -0
  83. package/locales/zhCN.js +5 -4
  84. package/locales/zhHK.js +1 -0
  85. package/locales/zhTW.js +1 -0
  86. package/models/api/gridCoreApi.d.ts +1 -1
  87. package/models/api/gridLocaleTextApi.d.ts +1 -0
  88. package/models/colDef/gridColDef.d.ts +24 -24
  89. package/models/gridDataSource.d.ts +12 -12
  90. package/models/props/DataGridProps.d.ts +9 -1
  91. package/modern/DataGrid/DataGrid.js +9 -1
  92. package/modern/components/GridDetailPanels.js +0 -1
  93. package/modern/components/GridPinnedRows.js +0 -1
  94. package/modern/components/GridRow.js +1 -1
  95. package/modern/components/base/GridOverlays.js +5 -6
  96. package/modern/components/cell/GridCell.js +11 -19
  97. package/modern/components/cell/GridEditInputCell.js +0 -67
  98. package/modern/components/columnsManagement/GridColumnsManagement.js +53 -6
  99. package/modern/components/toolbar/GridToolbar.js +12 -4
  100. package/modern/components/toolbar/GridToolbarColumnsButton.js +3 -4
  101. package/modern/components/toolbar/GridToolbarDensitySelector.js +3 -4
  102. package/modern/components/toolbar/GridToolbarExport.js +4 -3
  103. package/modern/components/toolbar/GridToolbarExportContainer.js +3 -4
  104. package/modern/components/toolbar/GridToolbarFilterButton.js +7 -6
  105. package/modern/components/toolbar/GridToolbarQuickFilter.js +1 -0
  106. package/modern/constants/dataGridPropsDefaultValues.js +2 -1
  107. package/modern/constants/gridClasses.js +1 -1
  108. package/modern/constants/localeTextConstants.js +1 -0
  109. package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +2 -2
  110. package/modern/hooks/features/dimensions/useGridDimensions.js +2 -1
  111. package/modern/hooks/features/export/useGridCsvExport.js +1 -1
  112. package/modern/hooks/features/export/useGridPrintExport.js +1 -1
  113. package/modern/hooks/features/index.js +1 -0
  114. package/modern/hooks/features/listView/gridListViewSelectors.js +3 -1
  115. package/modern/hooks/features/listView/index.js +1 -0
  116. package/modern/hooks/features/pagination/useGridPaginationModel.js +2 -2
  117. package/modern/hooks/features/rowSelection/useGridRowSelection.js +0 -9
  118. package/modern/hooks/features/rows/gridRowsUtils.js +1 -5
  119. package/modern/hooks/features/virtualization/useGridVirtualScroller.js +59 -19
  120. package/modern/hooks/utils/useGridSelector.js +27 -2
  121. package/modern/index.js +1 -1
  122. package/modern/joy/joySlots.js +7 -2
  123. package/modern/locales/arSD.js +1 -0
  124. package/modern/locales/beBY.js +1 -0
  125. package/modern/locales/bgBG.js +2 -0
  126. package/modern/locales/csCZ.js +2 -0
  127. package/modern/locales/daDK.js +2 -0
  128. package/modern/locales/deDE.js +2 -0
  129. package/modern/locales/elGR.js +1 -0
  130. package/modern/locales/esES.js +5 -4
  131. package/modern/locales/faIR.js +2 -0
  132. package/modern/locales/fiFI.js +2 -0
  133. package/modern/locales/frFR.js +2 -0
  134. package/modern/locales/heIL.js +2 -0
  135. package/modern/locales/hrHR.js +2 -0
  136. package/modern/locales/huHU.js +2 -0
  137. package/modern/locales/isIS.js +1 -0
  138. package/modern/locales/itIT.js +2 -0
  139. package/modern/locales/jaJP.js +2 -0
  140. package/modern/locales/koKR.js +1 -0
  141. package/modern/locales/nbNO.js +2 -0
  142. package/modern/locales/nlNL.js +2 -0
  143. package/modern/locales/nnNO.js +2 -0
  144. package/modern/locales/plPL.js +1 -0
  145. package/modern/locales/ptBR.js +1 -0
  146. package/modern/locales/ptPT.js +1 -0
  147. package/modern/locales/roRO.js +1 -0
  148. package/modern/locales/ruRU.js +2 -0
  149. package/modern/locales/skSK.js +1 -0
  150. package/modern/locales/svSE.js +6 -5
  151. package/modern/locales/trTR.js +4 -2
  152. package/modern/locales/ukUA.js +1 -0
  153. package/modern/locales/urPK.js +1 -0
  154. package/modern/locales/viVN.js +2 -0
  155. package/modern/locales/zhCN.js +5 -4
  156. package/modern/locales/zhHK.js +1 -0
  157. package/modern/locales/zhTW.js +1 -0
  158. package/modern/utils/createSelector.js +11 -1
  159. package/modern/utils/utils.js +1 -3
  160. package/node/DataGrid/DataGrid.js +9 -1
  161. package/node/components/GridDetailPanels.js +0 -1
  162. package/node/components/GridPinnedRows.js +0 -1
  163. package/node/components/GridRow.js +1 -1
  164. package/node/components/base/GridOverlays.js +5 -6
  165. package/node/components/cell/GridCell.js +11 -19
  166. package/node/components/cell/GridEditInputCell.js +0 -67
  167. package/node/components/columnsManagement/GridColumnsManagement.js +53 -6
  168. package/node/components/toolbar/GridToolbar.js +12 -4
  169. package/node/components/toolbar/GridToolbarColumnsButton.js +3 -4
  170. package/node/components/toolbar/GridToolbarDensitySelector.js +3 -4
  171. package/node/components/toolbar/GridToolbarExport.js +4 -3
  172. package/node/components/toolbar/GridToolbarExportContainer.js +3 -4
  173. package/node/components/toolbar/GridToolbarFilterButton.js +7 -6
  174. package/node/components/toolbar/GridToolbarQuickFilter.js +1 -0
  175. package/node/constants/dataGridPropsDefaultValues.js +2 -1
  176. package/node/constants/gridClasses.js +1 -1
  177. package/node/constants/localeTextConstants.js +1 -0
  178. package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +2 -2
  179. package/node/hooks/features/dimensions/useGridDimensions.js +2 -1
  180. package/node/hooks/features/export/useGridCsvExport.js +2 -2
  181. package/node/hooks/features/export/useGridPrintExport.js +2 -2
  182. package/node/hooks/features/index.js +11 -0
  183. package/node/hooks/features/listView/gridListViewSelectors.js +3 -1
  184. package/node/hooks/features/listView/index.js +16 -0
  185. package/node/hooks/features/pagination/useGridPaginationModel.js +2 -2
  186. package/node/hooks/features/rowSelection/useGridRowSelection.js +0 -9
  187. package/node/hooks/features/rows/gridRowsUtils.js +2 -8
  188. package/node/hooks/features/virtualization/useGridVirtualScroller.js +59 -19
  189. package/node/hooks/utils/useGridSelector.js +29 -3
  190. package/node/index.js +1 -1
  191. package/node/joy/joySlots.js +7 -2
  192. package/node/locales/arSD.js +1 -0
  193. package/node/locales/beBY.js +1 -0
  194. package/node/locales/bgBG.js +2 -0
  195. package/node/locales/csCZ.js +2 -0
  196. package/node/locales/daDK.js +2 -0
  197. package/node/locales/deDE.js +2 -0
  198. package/node/locales/elGR.js +1 -0
  199. package/node/locales/esES.js +5 -4
  200. package/node/locales/faIR.js +2 -0
  201. package/node/locales/fiFI.js +2 -0
  202. package/node/locales/frFR.js +2 -0
  203. package/node/locales/heIL.js +2 -0
  204. package/node/locales/hrHR.js +2 -0
  205. package/node/locales/huHU.js +2 -0
  206. package/node/locales/isIS.js +1 -0
  207. package/node/locales/itIT.js +2 -0
  208. package/node/locales/jaJP.js +2 -0
  209. package/node/locales/koKR.js +1 -0
  210. package/node/locales/nbNO.js +2 -0
  211. package/node/locales/nlNL.js +2 -0
  212. package/node/locales/nnNO.js +2 -0
  213. package/node/locales/plPL.js +1 -0
  214. package/node/locales/ptBR.js +1 -0
  215. package/node/locales/ptPT.js +1 -0
  216. package/node/locales/roRO.js +1 -0
  217. package/node/locales/ruRU.js +2 -0
  218. package/node/locales/skSK.js +1 -0
  219. package/node/locales/svSE.js +6 -5
  220. package/node/locales/trTR.js +4 -2
  221. package/node/locales/ukUA.js +1 -0
  222. package/node/locales/urPK.js +1 -0
  223. package/node/locales/viVN.js +2 -0
  224. package/node/locales/zhCN.js +5 -4
  225. package/node/locales/zhHK.js +1 -0
  226. package/node/locales/zhTW.js +1 -0
  227. package/node/utils/createSelector.js +11 -1
  228. package/node/utils/utils.js +1 -3
  229. package/package.json +4 -4
  230. package/utils/createSelector.d.ts +1 -1
  231. package/utils/createSelector.js +11 -1
  232. package/utils/utils.js +1 -3
@@ -4,8 +4,8 @@ import * as ReactDOM from 'react-dom';
4
4
  import { unstable_useEnhancedEffect as useEnhancedEffect, unstable_useEventCallback as useEventCallback } from '@mui/utils';
5
5
  import useLazyRef from '@mui/utils/useLazyRef';
6
6
  import useTimeout from '@mui/utils/useTimeout';
7
- import { useResizeObserver } from '@mui/x-internals/useResizeObserver';
8
7
  import { useRtl } from '@mui/system/RtlProvider';
8
+ import reactMajor from '@mui/x-internals/reactMajor';
9
9
  import { useGridPrivateApiContext } from "../../utils/useGridPrivateApiContext.js";
10
10
  import { useGridRootProps } from "../../utils/useGridRootProps.js";
11
11
  import { useGridSelector } from "../../utils/useGridSelector.js";
@@ -21,11 +21,11 @@ import { clamp, range } from "../../../utils/utils.js";
21
21
  import { selectedIdsLookupSelector } from "../rowSelection/gridRowSelectionSelector.js";
22
22
  import { gridRowsMetaSelector } from "../rows/gridRowsMetaSelector.js";
23
23
  import { getFirstNonSpannedColumnToRender } from "../columns/gridColumnsUtils.js";
24
- import { getMinimalContentHeight } from "../rows/gridRowsUtils.js";
25
24
  import { gridRenderContextSelector, gridVirtualizationRowEnabledSelector, gridVirtualizationColumnEnabledSelector } from "./gridVirtualizationSelectors.js";
26
25
  import { EMPTY_RENDER_CONTEXT } from "./useGridVirtualization.js";
27
26
  import { gridRowSpanningHiddenCellsOriginMapSelector } from "../rows/gridRowSpanningSelectors.js";
28
27
  import { gridListColumnSelector } from "../listView/gridListViewSelectors.js";
28
+ import { minimalContentHeight } from "../rows/gridRowsUtils.js";
29
29
  import { jsx as _jsx } from "react/jsx-runtime";
30
30
  const MINIMUM_COLUMN_WIDTH = 50;
31
31
  var ScrollDirection = /*#__PURE__*/function (ScrollDirection) {
@@ -48,7 +48,7 @@ const createScrollCache = (isRtl, rowBufferPx, columnBufferPx, verticalBuffer, h
48
48
  let isJSDOM = false;
49
49
  try {
50
50
  if (typeof window !== 'undefined') {
51
- isJSDOM = /jsdom/.test(window.navigator.userAgent);
51
+ isJSDOM = /jsdom|HappyDOM/.test(window.navigator.userAgent);
52
52
  }
53
53
  } catch (_) {
54
54
  /* ignore */
@@ -86,7 +86,44 @@ export const useGridVirtualScroller = () => {
86
86
  const contentHeight = dimensions.contentSize.height;
87
87
  const columnsTotalWidth = dimensions.columnsTotalWidth;
88
88
  const hasColSpan = useGridSelector(apiRef, gridHasColSpanSelector);
89
- useResizeObserver(mainRef, () => apiRef.current.resize());
89
+ const mainRefCallback = React.useCallback(node => {
90
+ mainRef.current = node;
91
+ if (!node) {
92
+ return undefined;
93
+ }
94
+ const initialRect = node.getBoundingClientRect();
95
+ let lastSize = {
96
+ width: initialRect.width,
97
+ height: initialRect.height
98
+ };
99
+ apiRef.current.publishEvent('resize', lastSize);
100
+ if (typeof ResizeObserver === 'undefined') {
101
+ return undefined;
102
+ }
103
+ const observer = new ResizeObserver(entries => {
104
+ const entry = entries[0];
105
+ if (!entry) {
106
+ return;
107
+ }
108
+ const newSize = {
109
+ width: entry.contentRect.width,
110
+ height: entry.contentRect.height
111
+ };
112
+ if (newSize.width === lastSize.width && newSize.height === lastSize.height) {
113
+ return;
114
+ }
115
+ apiRef.current.publishEvent('resize', newSize);
116
+ lastSize = newSize;
117
+ });
118
+ observer.observe(node);
119
+ if (reactMajor >= 19) {
120
+ return () => {
121
+ mainRef.current = null;
122
+ observer.disconnect();
123
+ };
124
+ }
125
+ return undefined;
126
+ }, [apiRef, mainRef]);
90
127
 
91
128
  /*
92
129
  * Scroll context logic
@@ -137,9 +174,13 @@ export const useGridVirtualScroller = () => {
137
174
  previousContextScrollPosition.current = scrollPosition.current;
138
175
  }, [apiRef, dimensions.isReady]);
139
176
  const triggerUpdateRenderContext = useEventCallback(() => {
177
+ const scroller = scrollerRef.current;
178
+ if (!scroller) {
179
+ return undefined;
180
+ }
140
181
  const newScroll = {
141
- top: scrollerRef.current.scrollTop,
142
- left: scrollerRef.current.scrollLeft
182
+ top: scroller.scrollTop,
183
+ left: scroller.scrollLeft
143
184
  };
144
185
  const dx = newScroll.left - scrollPosition.current.left;
145
186
  const dy = newScroll.top - scrollPosition.current.top;
@@ -381,18 +422,14 @@ export const useGridVirtualScroller = () => {
381
422
  flexBasis: contentHeight,
382
423
  flexShrink: 0
383
424
  };
384
- if (rootProps.autoHeight && currentPage.rows.length === 0) {
385
- size.flexBasis = getMinimalContentHeight(apiRef); // Give room to show the overlay when there no rows.
425
+ if (size.flexBasis === 0) {
426
+ size.flexBasis = minimalContentHeight; // Give room to show the overlay when there no rows.
386
427
  }
387
428
  return size;
388
- }, [apiRef, columnsTotalWidth, contentHeight, needsHorizontalScrollbar, rootProps.autoHeight, currentPage.rows.length]);
429
+ }, [columnsTotalWidth, contentHeight, needsHorizontalScrollbar]);
389
430
  React.useEffect(() => {
390
431
  apiRef.current.publishEvent('virtualScrollerContentSizeChange');
391
432
  }, [apiRef, contentSize]);
392
- useEnhancedEffect(() => {
393
- // FIXME: Is this really necessary?
394
- apiRef.current.resize();
395
- }, [apiRef, rowsMeta.currentPageTotalHeight]);
396
433
  useEnhancedEffect(() => {
397
434
  // TODO a scroll reset should not be necessary
398
435
  if (enabledForColumns) {
@@ -428,7 +465,7 @@ export const useGridVirtualScroller = () => {
428
465
  setPanels,
429
466
  getRows,
430
467
  getContainerProps: () => ({
431
- ref: mainRef
468
+ ref: mainRefCallback
432
469
  }),
433
470
  getScrollerProps: () => ({
434
471
  ref: scrollerRef,
@@ -485,7 +522,8 @@ function inputsSelector(apiRef, rootProps, enabledForRows, enabledForColumns) {
485
522
  pinnedColumns: gridVisiblePinnedColumnDefinitionsSelector(apiRef),
486
523
  visibleColumns,
487
524
  hiddenCellsOriginMap,
488
- listView: rootProps.unstable_listView ?? false
525
+ listView: rootProps.unstable_listView ?? false,
526
+ virtualizeColumnsWithAutoRowHeight: rootProps.virtualizeColumnsWithAutoRowHeight
489
527
  };
490
528
  }
491
529
  function computeRenderContext(inputs, scrollPosition, scrollCache) {
@@ -533,11 +571,13 @@ function computeRenderContext(inputs, scrollPosition, scrollCache) {
533
571
  positions: inputs.rowsMeta.positions,
534
572
  lastSize: inputs.lastRowHeight
535
573
  });
536
- for (let i = firstRowToRender; i < lastRowToRender && !hasRowWithAutoHeight; i += 1) {
537
- const row = inputs.rows[i];
538
- hasRowWithAutoHeight = inputs.apiRef.current.rowHasAutoHeight(row.id);
574
+ if (!inputs.virtualizeColumnsWithAutoRowHeight) {
575
+ for (let i = firstRowToRender; i < lastRowToRender && !hasRowWithAutoHeight; i += 1) {
576
+ const row = inputs.rows[i];
577
+ hasRowWithAutoHeight = inputs.apiRef.current.rowHasAutoHeight(row.id);
578
+ }
539
579
  }
540
- if (!hasRowWithAutoHeight) {
580
+ if (!hasRowWithAutoHeight || inputs.virtualizeColumnsWithAutoRowHeight) {
541
581
  firstColumnIndex = binarySearch(realLeft, inputs.columnPositions, {
542
582
  atStart: true,
543
583
  lastPosition: inputs.columnsTotalWidth
@@ -1,9 +1,10 @@
1
1
  import * as React from 'react';
2
2
  import { fastObjectShallowCompare } from '@mui/x-internals/fastObjectShallowCompare';
3
3
  import type { GridApiCommon } from '../../models/api/gridApiCommon';
4
- import { OutputSelector, OutputSelectorV8 } from '../../utils/createSelector';
4
+ import type { OutputSelector, OutputSelectorV8 } from '../../utils/createSelector';
5
5
  type Selector<Api extends GridApiCommon, Args, T> = ((state: Api['state']) => T) | OutputSelectorV8<Api['state'], Args, T>;
6
6
  export declare const objectShallowCompare: typeof fastObjectShallowCompare;
7
+ export declare const argsEqual: (prev: any, curr: any) => boolean;
7
8
  export declare const useGridSelector: <Api extends GridApiCommon, T>(apiRef: React.MutableRefObject<Api>, selector: ((state: Api["state"]) => T) | OutputSelector<Api["state"], T>, equals?: (a: T, b: T) => boolean) => T;
8
- export declare const useGridSelectorV8: <Api extends GridApiCommon, Args, T>(apiRef: React.MutableRefObject<Api>, selector: Selector<Api, Args, T>, args?: Args, equals?: (a: T, b: T) => boolean) => T;
9
+ export declare const useGridSelectorV8: <Api extends GridApiCommon, Args, T>(apiRef: React.MutableRefObject<Api>, selector: Selector<Api, Args, T>, args?: Args, equals?: <U = T>(a: U, b: U) => boolean) => T;
9
10
  export {};
@@ -23,10 +23,26 @@ function applySelectorV8(apiRef, selector, args, instanceId) {
23
23
  }
24
24
  const defaultCompare = Object.is;
25
25
  export const objectShallowCompare = fastObjectShallowCompare;
26
+ const arrayShallowCompare = (a, b) => {
27
+ if (a === b) {
28
+ return true;
29
+ }
30
+ return a.length === b.length && a.every((v, i) => v === b[i]);
31
+ };
32
+ export const argsEqual = (prev, curr) => {
33
+ let fn = Object.is;
34
+ if (curr instanceof Array) {
35
+ fn = arrayShallowCompare;
36
+ } else if (curr instanceof Object) {
37
+ fn = objectShallowCompare;
38
+ }
39
+ return fn(prev, curr);
40
+ };
26
41
  const createRefs = () => ({
27
42
  state: null,
28
43
  equals: null,
29
- selector: null
44
+ selector: null,
45
+ args: null
30
46
  });
31
47
 
32
48
  // TODO v8: Remove this function
@@ -71,9 +87,18 @@ export const useGridSelectorV8 = (apiRef, selector, args = undefined, equals = d
71
87
  refs.current.state = state;
72
88
  refs.current.equals = equals;
73
89
  refs.current.selector = selector;
90
+ const prevArgs = refs.current.args;
91
+ refs.current.args = args;
92
+ if (didInit && !argsEqual(prevArgs, args)) {
93
+ const newState = applySelectorV8(apiRef, refs.current.selector, refs.current.args, apiRef.current.instanceId);
94
+ if (!refs.current.equals(refs.current.state, newState)) {
95
+ refs.current.state = newState;
96
+ setState(newState);
97
+ }
98
+ }
74
99
  useOnMount(() => {
75
100
  return apiRef.current.store.subscribe(() => {
76
- const newState = applySelectorV8(apiRef, refs.current.selector, args, apiRef.current.instanceId);
101
+ const newState = applySelectorV8(apiRef, refs.current.selector, refs.current.args, apiRef.current.instanceId);
77
102
  if (!refs.current.equals(refs.current.state, newState)) {
78
103
  refs.current.state = newState;
79
104
  setState(newState);
package/index.d.ts CHANGED
@@ -13,7 +13,6 @@ export * from './context';
13
13
  export * from './colDef';
14
14
  export * from './utils';
15
15
  export type { DataGridProps, GridExperimentalFeatures } from './models/props/DataGridProps';
16
- export type { GridToolbarExportProps } from './components/toolbar/GridToolbarExport';
17
16
  export type { GridExportFormat, GridExportExtension } from './models/gridExport';
18
17
  export { GridColumnHeaders } from './components/GridColumnHeaders';
19
18
  export type { GridColumnHeadersProps } from './components/GridColumnHeaders';
package/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-data-grid v7.22.2
2
+ * @mui/x-data-grid v7.23.0
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
package/joy/joySlots.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
- const _excluded = ["slotProps", "variant", "color", "sx"],
3
+ const _excluded = ["slotProps", "variant", "color", "sx", "anchorOrigin"],
4
4
  _excluded2 = ["touchRippleRef", "inputProps", "onChange", "color", "size", "checked", "sx", "value", "inputRef"],
5
5
  _excluded3 = ["onChange", "label", "placeholder", "value", "inputRef", "type", "size", "variant"],
6
6
  _excluded4 = ["startIcon", "color", "endIcon", "size", "sx", "variant"],
@@ -64,10 +64,15 @@ function convertVariant(variant, defaultVariant = 'plain') {
64
64
  const Badge = /*#__PURE__*/React.forwardRef((_ref, ref) => {
65
65
  let {
66
66
  color,
67
- sx
67
+ sx,
68
+ anchorOrigin
68
69
  } = _ref,
69
70
  props = _objectWithoutPropertiesLoose(_ref, _excluded);
70
71
  return /*#__PURE__*/_jsx(JoyBadge, _extends({}, props, {
72
+ anchorOrigin: anchorOrigin?.horizontal && anchorOrigin?.vertical ? anchorOrigin : {
73
+ vertical: 'top',
74
+ horizontal: 'right'
75
+ },
71
76
  color: convertColor(color),
72
77
  variant: "plain",
73
78
  sx: sx,
package/locales/arSD.js CHANGED
@@ -34,6 +34,7 @@ const arSDGrid = {
34
34
  // columnsManagementNoColumns: 'No columns',
35
35
  // columnsManagementShowHideAllText: 'Show/Hide All',
36
36
  // columnsManagementReset: 'Reset',
37
+ // columnsManagementDeleteIconLabel: 'Clear',
37
38
 
38
39
  // Filter panel text
39
40
  filterPanelAddFilter: 'إضافة مرشِح',
package/locales/beBY.js CHANGED
@@ -48,6 +48,7 @@ const beBYGrid = {
48
48
  // columnsManagementNoColumns: 'No columns',
49
49
  // columnsManagementShowHideAllText: 'Show/Hide All',
50
50
  // columnsManagementReset: 'Reset',
51
+ // columnsManagementDeleteIconLabel: 'Clear',
51
52
 
52
53
  // Filter panel text
53
54
  filterPanelAddFilter: 'Дадаць фільтр',
package/locales/bgBG.js CHANGED
@@ -34,6 +34,8 @@ const bgBGGrid = {
34
34
  columnsManagementNoColumns: 'Няма колони',
35
35
  columnsManagementShowHideAllText: 'Покажи/Скрий Всичко',
36
36
  columnsManagementReset: 'Нулирай',
37
+ // columnsManagementDeleteIconLabel: 'Clear',
38
+
37
39
  // Filter panel text
38
40
  filterPanelAddFilter: 'Добави Филтър',
39
41
  filterPanelRemoveAll: 'Премахни всички',
package/locales/csCZ.js CHANGED
@@ -42,6 +42,8 @@ const csCZGrid = {
42
42
  columnsManagementNoColumns: 'Žádné sloupce',
43
43
  columnsManagementShowHideAllText: 'Zobrazit/skrýt vše',
44
44
  columnsManagementReset: 'Resetovat',
45
+ // columnsManagementDeleteIconLabel: 'Clear',
46
+
45
47
  // Filter panel text
46
48
  filterPanelAddFilter: 'Přidat filtr',
47
49
  filterPanelRemoveAll: 'Odstranit vše',
package/locales/daDK.js CHANGED
@@ -34,6 +34,8 @@ const daDKGrid = {
34
34
  columnsManagementNoColumns: 'Ingen søjler',
35
35
  columnsManagementShowHideAllText: 'Vis/Skjul Alle',
36
36
  columnsManagementReset: 'Nulstil',
37
+ // columnsManagementDeleteIconLabel: 'Clear',
38
+
37
39
  // Filter panel text
38
40
  filterPanelAddFilter: 'Tilføj filter',
39
41
  filterPanelRemoveAll: 'Fjern alle',
package/locales/deDE.js CHANGED
@@ -34,6 +34,8 @@ const deDEGrid = {
34
34
  columnsManagementNoColumns: 'Keine Spalten',
35
35
  columnsManagementShowHideAllText: 'Alle anzeigen/verbergen',
36
36
  columnsManagementReset: 'Zurücksetzen',
37
+ // columnsManagementDeleteIconLabel: 'Clear',
38
+
37
39
  // Filter panel text
38
40
  filterPanelAddFilter: 'Filter hinzufügen',
39
41
  filterPanelRemoveAll: 'Alle entfernen',
package/locales/elGR.js CHANGED
@@ -34,6 +34,7 @@ const elGRGrid = {
34
34
  // columnsManagementNoColumns: 'No columns',
35
35
  // columnsManagementShowHideAllText: 'Show/Hide All',
36
36
  // columnsManagementReset: 'Reset',
37
+ // columnsManagementDeleteIconLabel: 'Clear',
37
38
 
38
39
  // Filter panel text
39
40
  filterPanelAddFilter: 'Προσθήκη φίλτρου',
package/locales/esES.js CHANGED
@@ -34,6 +34,7 @@ const esESGrid = {
34
34
  columnsManagementNoColumns: 'Sin columnas',
35
35
  columnsManagementShowHideAllText: 'Mostrar/Ocultar todas',
36
36
  columnsManagementReset: 'Restablecer',
37
+ columnsManagementDeleteIconLabel: 'Limpiar',
37
38
  // Filter panel text
38
39
  filterPanelAddFilter: 'Agregar filtro',
39
40
  filterPanelRemoveAll: 'Remover todos',
@@ -47,9 +48,9 @@ const esESGrid = {
47
48
  filterPanelInputPlaceholder: 'Valor de filtro',
48
49
  // Filter operators text
49
50
  filterOperatorContains: 'contiene',
50
- // filterOperatorDoesNotContain: 'does not contain',
51
+ filterOperatorDoesNotContain: 'no contiene',
51
52
  filterOperatorEquals: 'es igual',
52
- // filterOperatorDoesNotEqual: 'does not equal',
53
+ filterOperatorDoesNotEqual: 'es diferente a',
53
54
  filterOperatorStartsWith: 'comienza con',
54
55
  filterOperatorEndsWith: 'termina con',
55
56
  filterOperatorIs: 'es',
@@ -69,9 +70,9 @@ const esESGrid = {
69
70
  'filterOperator<=': '<=',
70
71
  // Header filter operators text
71
72
  headerFilterOperatorContains: 'Contiene',
72
- // headerFilterOperatorDoesNotContain: 'Does not contain',
73
+ headerFilterOperatorDoesNotContain: 'No contiene',
73
74
  headerFilterOperatorEquals: 'Es igual a',
74
- // headerFilterOperatorDoesNotEqual: 'Does not equal',
75
+ headerFilterOperatorDoesNotEqual: 'Es diferente a',
75
76
  headerFilterOperatorStartsWith: 'Comienza con',
76
77
  headerFilterOperatorEndsWith: 'Termina con',
77
78
  headerFilterOperatorIs: 'Es',
package/locales/faIR.js CHANGED
@@ -34,6 +34,8 @@ const faIRGrid = {
34
34
  columnsManagementNoColumns: 'بدون سطر',
35
35
  columnsManagementShowHideAllText: 'نمایش/مخفی کردن همه',
36
36
  columnsManagementReset: 'بازنشانی',
37
+ // columnsManagementDeleteIconLabel: 'Clear',
38
+
37
39
  // Filter panel text
38
40
  filterPanelAddFilter: 'افزودن فیلتر',
39
41
  filterPanelRemoveAll: 'حذف همه',
package/locales/fiFI.js CHANGED
@@ -34,6 +34,8 @@ const fiFIGrid = {
34
34
  columnsManagementNoColumns: 'Ei sarakkeita näytettäväksi',
35
35
  columnsManagementShowHideAllText: 'Näytä/Piilota kaikki',
36
36
  columnsManagementReset: 'Palauta',
37
+ // columnsManagementDeleteIconLabel: 'Clear',
38
+
37
39
  // Filter panel text
38
40
  filterPanelAddFilter: 'Lisää suodatin',
39
41
  filterPanelRemoveAll: 'Poista kaikki',
package/locales/frFR.js CHANGED
@@ -34,6 +34,8 @@ const frFRGrid = {
34
34
  columnsManagementNoColumns: 'Pas de colonnes',
35
35
  columnsManagementShowHideAllText: 'Afficher/masquer toutes',
36
36
  columnsManagementReset: 'Réinitialiser',
37
+ // columnsManagementDeleteIconLabel: 'Clear',
38
+
37
39
  // Filter panel text
38
40
  filterPanelAddFilter: 'Ajouter un filtre',
39
41
  filterPanelRemoveAll: 'Tout supprimer',
package/locales/heIL.js CHANGED
@@ -34,6 +34,8 @@ const heILGrid = {
34
34
  columnsManagementNoColumns: 'אין עמודות',
35
35
  columnsManagementShowHideAllText: 'הצג/הסתר הכל',
36
36
  columnsManagementReset: 'אתחול',
37
+ // columnsManagementDeleteIconLabel: 'Clear',
38
+
37
39
  // Filter panel text
38
40
  filterPanelAddFilter: 'הוסף מסנן',
39
41
  filterPanelRemoveAll: 'מחק הכל',
package/locales/hrHR.js CHANGED
@@ -42,6 +42,8 @@ const hrHRGrid = {
42
42
  columnsManagementNoColumns: 'Nema stupaca',
43
43
  columnsManagementShowHideAllText: 'Prikaži/Sakrij sve',
44
44
  columnsManagementReset: 'Ponovno namjesti',
45
+ // columnsManagementDeleteIconLabel: 'Clear',
46
+
45
47
  // Filter panel text
46
48
  filterPanelAddFilter: 'Dodaj filter',
47
49
  filterPanelRemoveAll: 'Ukloni sve',
package/locales/huHU.js CHANGED
@@ -34,6 +34,8 @@ const huHUGrid = {
34
34
  columnsManagementNoColumns: 'Nincsenek oszlopok',
35
35
  columnsManagementShowHideAllText: 'Összes',
36
36
  columnsManagementReset: 'Visszavon',
37
+ // columnsManagementDeleteIconLabel: 'Clear',
38
+
37
39
  // Filter panel text
38
40
  filterPanelAddFilter: 'Szűrő hozzáadása',
39
41
  filterPanelRemoveAll: 'Összes törlése',
package/locales/isIS.js CHANGED
@@ -34,6 +34,7 @@ const isISGrid = {
34
34
  // columnsManagementNoColumns: 'No columns',
35
35
  // columnsManagementShowHideAllText: 'Show/Hide All',
36
36
  // columnsManagementReset: 'Reset',
37
+ // columnsManagementDeleteIconLabel: 'Clear',
37
38
 
38
39
  // Filter panel text
39
40
  filterPanelAddFilter: 'Bæta síu',
package/locales/itIT.js CHANGED
@@ -34,6 +34,8 @@ const itITGrid = {
34
34
  columnsManagementNoColumns: 'Nessuna colonna',
35
35
  columnsManagementShowHideAllText: 'Mostra/Nascondi Tutto',
36
36
  columnsManagementReset: 'Resetta',
37
+ // columnsManagementDeleteIconLabel: 'Clear',
38
+
37
39
  // Filter panel text
38
40
  filterPanelAddFilter: 'Aggiungi un filtro',
39
41
  filterPanelRemoveAll: 'Rimuovi filtri',
package/locales/jaJP.js CHANGED
@@ -34,6 +34,8 @@ const jaJPGrid = {
34
34
  columnsManagementNoColumns: 'カラムなし',
35
35
  columnsManagementShowHideAllText: 'すべて表示/非表示',
36
36
  columnsManagementReset: 'リセット',
37
+ // columnsManagementDeleteIconLabel: 'Clear',
38
+
37
39
  // Filter panel text
38
40
  filterPanelAddFilter: 'フィルター追加',
39
41
  filterPanelRemoveAll: 'すべて削除',
package/locales/koKR.js CHANGED
@@ -34,6 +34,7 @@ const koKRGrid = {
34
34
  // columnsManagementNoColumns: 'No columns',
35
35
  // columnsManagementShowHideAllText: 'Show/Hide All',
36
36
  // columnsManagementReset: 'Reset',
37
+ // columnsManagementDeleteIconLabel: 'Clear',
37
38
 
38
39
  // Filter panel text
39
40
  filterPanelAddFilter: '필터 추가',
package/locales/nbNO.js CHANGED
@@ -34,6 +34,8 @@ const nbNOGrid = {
34
34
  columnsManagementNoColumns: 'Ingen kolonner',
35
35
  columnsManagementShowHideAllText: 'Vis/skjul alle',
36
36
  columnsManagementReset: 'Nullstill',
37
+ // columnsManagementDeleteIconLabel: 'Clear',
38
+
37
39
  // Filter panel text
38
40
  filterPanelAddFilter: 'Legg til filter',
39
41
  filterPanelRemoveAll: 'Fjern alle',
package/locales/nlNL.js CHANGED
@@ -34,6 +34,8 @@ const nlNLGrid = {
34
34
  columnsManagementNoColumns: 'Geen kolommen',
35
35
  columnsManagementShowHideAllText: 'Toon/Verberg Alle',
36
36
  columnsManagementReset: 'Reset',
37
+ // columnsManagementDeleteIconLabel: 'Clear',
38
+
37
39
  // Filter panel text
38
40
  filterPanelAddFilter: 'Filter toevoegen',
39
41
  filterPanelRemoveAll: 'Alles verwijderen',
package/locales/nnNO.js CHANGED
@@ -34,6 +34,8 @@ const nnNOGrid = {
34
34
  columnsManagementNoColumns: 'Ingen kolonner',
35
35
  columnsManagementShowHideAllText: 'Vis/skjul alle',
36
36
  columnsManagementReset: 'Nullstill',
37
+ // columnsManagementDeleteIconLabel: 'Clear',
38
+
37
39
  // Filter panel text
38
40
  filterPanelAddFilter: 'Legg til filter',
39
41
  filterPanelRemoveAll: 'Fjern alle',
package/locales/plPL.js CHANGED
@@ -34,6 +34,7 @@ const plPLGrid = {
34
34
  // columnsManagementNoColumns: 'No columns',
35
35
  // columnsManagementShowHideAllText: 'Show/Hide All',
36
36
  // columnsManagementReset: 'Reset',
37
+ // columnsManagementDeleteIconLabel: 'Clear',
37
38
 
38
39
  // Filter panel text
39
40
  filterPanelAddFilter: 'Dodaj filtr',
package/locales/ptBR.js CHANGED
@@ -34,6 +34,7 @@ const ptBRGrid = {
34
34
  columnsManagementNoColumns: 'Nenhuma coluna',
35
35
  columnsManagementShowHideAllText: 'Mostrar/Ocultar Todas',
36
36
  columnsManagementReset: 'Redefinir',
37
+ columnsManagementDeleteIconLabel: 'Limpar',
37
38
  // Filter panel text
38
39
  filterPanelAddFilter: 'Adicionar filtro',
39
40
  filterPanelRemoveAll: 'Remover todos',
package/locales/ptPT.js CHANGED
@@ -34,6 +34,7 @@ const ptPTGrid = {
34
34
  columnsManagementNoColumns: 'Sem colunas',
35
35
  columnsManagementShowHideAllText: 'Mostrar/Ocultar Todas',
36
36
  columnsManagementReset: 'Repor',
37
+ columnsManagementDeleteIconLabel: 'Limpar',
37
38
  // Filter panel text
38
39
  filterPanelAddFilter: 'Adicionar filtro',
39
40
  filterPanelRemoveAll: 'Excluir todos',
package/locales/roRO.js CHANGED
@@ -34,6 +34,7 @@ const roROGrid = {
34
34
  // columnsManagementNoColumns: 'No columns',
35
35
  // columnsManagementShowHideAllText: 'Show/Hide All',
36
36
  // columnsManagementReset: 'Reset',
37
+ // columnsManagementDeleteIconLabel: 'Clear',
37
38
 
38
39
  // Filter panel text
39
40
  filterPanelAddFilter: 'Adăugare filtru',
package/locales/ruRU.js CHANGED
@@ -49,6 +49,8 @@ const ruRUGrid = {
49
49
  columnsManagementNoColumns: 'Нет столбцов',
50
50
  columnsManagementShowHideAllText: 'Показать/Скрыть Всё',
51
51
  columnsManagementReset: 'Сбросить',
52
+ // columnsManagementDeleteIconLabel: 'Clear',
53
+
52
54
  // Filter panel text
53
55
  filterPanelAddFilter: 'Добавить фильтр',
54
56
  filterPanelRemoveAll: 'Очистить фильтр',
package/locales/skSK.js CHANGED
@@ -42,6 +42,7 @@ const skSKGrid = {
42
42
  columnsManagementNoColumns: 'Žiadne stĺpce',
43
43
  columnsManagementShowHideAllText: 'Zobraziť/Skryť všetko',
44
44
  // columnsManagementReset: 'Reset',
45
+ // columnsManagementDeleteIconLabel: 'Clear',
45
46
 
46
47
  // Filter panel text
47
48
  filterPanelAddFilter: 'Pridať filter',
package/locales/svSE.js CHANGED
@@ -33,7 +33,8 @@ const svSEGrid = {
33
33
  columnsManagementSearchTitle: 'Sök',
34
34
  columnsManagementNoColumns: 'Inga kolumner',
35
35
  columnsManagementShowHideAllText: 'Visa/Dölj alla',
36
- // columnsManagementReset: 'Reset',
36
+ columnsManagementReset: 'Återställ',
37
+ // columnsManagementDeleteIconLabel: 'Clear',
37
38
 
38
39
  // Filter panel text
39
40
  filterPanelAddFilter: 'Lägg till filter',
@@ -48,9 +49,9 @@ const svSEGrid = {
48
49
  filterPanelInputPlaceholder: 'Filtervärde',
49
50
  // Filter operators text
50
51
  filterOperatorContains: 'innehåller',
51
- // filterOperatorDoesNotContain: 'does not contain',
52
+ filterOperatorDoesNotContain: 'innehåller inte',
52
53
  filterOperatorEquals: 'lika med',
53
- // filterOperatorDoesNotEqual: 'does not equal',
54
+ filterOperatorDoesNotEqual: 'inte lika med',
54
55
  filterOperatorStartsWith: 'börjar med',
55
56
  filterOperatorEndsWith: 'slutar med',
56
57
  filterOperatorIs: 'är',
@@ -70,9 +71,9 @@ const svSEGrid = {
70
71
  'filterOperator<=': '<=',
71
72
  // Header filter operators text
72
73
  headerFilterOperatorContains: 'Innehåller',
73
- // headerFilterOperatorDoesNotContain: 'Does not contain',
74
+ headerFilterOperatorDoesNotContain: 'Innehåller inte',
74
75
  headerFilterOperatorEquals: 'Lika med',
75
- // headerFilterOperatorDoesNotEqual: 'Does not equal',
76
+ headerFilterOperatorDoesNotEqual: 'Inte lika med',
76
77
  headerFilterOperatorStartsWith: 'Börjar med',
77
78
  headerFilterOperatorEndsWith: 'Slutar med',
78
79
  headerFilterOperatorIs: 'Är',
package/locales/trTR.js CHANGED
@@ -34,6 +34,8 @@ const trTRGrid = {
34
34
  columnsManagementNoColumns: 'Kolon yok',
35
35
  columnsManagementShowHideAllText: 'Hepsini Göster/Gizle',
36
36
  columnsManagementReset: 'Sıfırla',
37
+ // columnsManagementDeleteIconLabel: 'Clear',
38
+
37
39
  // Filter panel text
38
40
  filterPanelAddFilter: 'Filtre Ekle',
39
41
  filterPanelRemoveAll: 'Hepsini kaldır',
@@ -69,9 +71,9 @@ const trTRGrid = {
69
71
  'filterOperator<=': '<=',
70
72
  // Header filter operators text
71
73
  headerFilterOperatorContains: 'Şunu içerir',
72
- // headerFilterOperatorDoesNotContain: 'Does not contain',
74
+ headerFilterOperatorDoesNotContain: 'İçermez',
73
75
  headerFilterOperatorEquals: 'Şuna eşittir',
74
- // headerFilterOperatorDoesNotEqual: 'Does not equal',
76
+ headerFilterOperatorDoesNotEqual: 'Eşit değildir',
75
77
  headerFilterOperatorStartsWith: 'Şununla başlar',
76
78
  headerFilterOperatorEndsWith: 'Şununla biter',
77
79
  headerFilterOperatorIs: 'Eşittir',
package/locales/ukUA.js CHANGED
@@ -49,6 +49,7 @@ const ukUAGrid = {
49
49
  // columnsManagementNoColumns: 'No columns',
50
50
  // columnsManagementShowHideAllText: 'Show/Hide All',
51
51
  // columnsManagementReset: 'Reset',
52
+ // columnsManagementDeleteIconLabel: 'Clear',
52
53
 
53
54
  // Filter panel text
54
55
  filterPanelAddFilter: 'Додати фільтр',
package/locales/urPK.js CHANGED
@@ -34,6 +34,7 @@ const urPKGrid = {
34
34
  // columnsManagementNoColumns: 'No columns',
35
35
  // columnsManagementShowHideAllText: 'Show/Hide All',
36
36
  // columnsManagementReset: 'Reset',
37
+ // columnsManagementDeleteIconLabel: 'Clear',
37
38
 
38
39
  // Filter panel text
39
40
  filterPanelAddFilter: 'نیا فلٹر',
package/locales/viVN.js CHANGED
@@ -34,6 +34,8 @@ const viVNGrid = {
34
34
  columnsManagementNoColumns: 'Không có cột',
35
35
  columnsManagementShowHideAllText: 'Hiện/Ẩn Tất cả',
36
36
  columnsManagementReset: 'Đặt lại',
37
+ // columnsManagementDeleteIconLabel: 'Clear',
38
+
37
39
  // Filter panel text
38
40
  filterPanelAddFilter: 'Thêm bộ lọc',
39
41
  filterPanelRemoveAll: 'Xóa tất cả',