@mui/x-data-grid 8.0.0-alpha.0 → 8.0.0-alpha.2

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 (216) hide show
  1. package/CHANGELOG.md +651 -6
  2. package/DataGrid/DataGrid.js +9 -9
  3. package/README.md +2 -2
  4. package/components/GridLoadingOverlay.d.ts +2 -2
  5. package/components/GridLoadingOverlay.js +4 -4
  6. package/components/GridPagination.js +2 -1
  7. package/components/base/GridOverlays.d.ts +4 -3
  8. package/components/base/GridOverlays.js +2 -24
  9. package/components/base/index.d.ts +0 -1
  10. package/components/base/index.js +1 -2
  11. package/components/cell/GridCell.js +10 -10
  12. package/components/columnSelection/GridCellCheckboxRenderer.js +2 -3
  13. package/components/columnSelection/GridHeaderCheckbox.js +2 -3
  14. package/components/columnsManagement/GridColumnsManagement.d.ts +2 -0
  15. package/components/columnsManagement/GridColumnsManagement.js +53 -6
  16. package/components/toolbar/GridToolbarColumnsButton.js +3 -4
  17. package/components/toolbar/GridToolbarDensitySelector.js +3 -4
  18. package/components/toolbar/GridToolbarExportContainer.js +3 -4
  19. package/components/toolbar/GridToolbarFilterButton.d.ts +2 -0
  20. package/components/toolbar/GridToolbarFilterButton.js +7 -6
  21. package/components/toolbar/GridToolbarQuickFilter.js +1 -0
  22. package/components/virtualization/GridVirtualScroller.js +5 -3
  23. package/constants/dataGridPropsDefaultValues.js +2 -3
  24. package/constants/gridClasses.d.ts +24 -0
  25. package/constants/gridClasses.js +1 -1
  26. package/constants/localeTextConstants.js +11 -0
  27. package/hooks/features/columnHeaders/useGridColumnHeaders.js +2 -2
  28. package/hooks/features/dimensions/gridDimensionsApi.d.ts +0 -4
  29. package/hooks/features/dimensions/useGridDimensions.js +3 -19
  30. package/hooks/features/index.d.ts +1 -0
  31. package/hooks/features/index.js +1 -0
  32. package/hooks/features/listView/gridListViewSelectors.d.ts +3 -1
  33. package/hooks/features/listView/gridListViewSelectors.js +3 -1
  34. package/hooks/features/listView/index.d.ts +1 -0
  35. package/hooks/features/listView/index.js +1 -0
  36. package/hooks/features/overlays/useGridOverlays.d.ts +7 -4
  37. package/hooks/features/overlays/useGridOverlays.js +19 -1
  38. package/hooks/features/rowSelection/useGridRowSelection.js +0 -9
  39. package/hooks/features/rowSelection/utils.js +2 -2
  40. package/hooks/features/virtualization/useGridVirtualScroller.d.ts +1 -1
  41. package/hooks/features/virtualization/useGridVirtualScroller.js +55 -15
  42. package/index.js +1 -1
  43. package/internals/index.d.ts +1 -0
  44. package/internals/index.js +1 -0
  45. package/joy/joySlots.js +7 -2
  46. package/locales/arSD.js +12 -0
  47. package/locales/beBY.js +12 -0
  48. package/locales/bgBG.js +13 -0
  49. package/locales/csCZ.js +13 -0
  50. package/locales/daDK.js +13 -0
  51. package/locales/deDE.js +11 -0
  52. package/locales/elGR.js +12 -0
  53. package/locales/esES.js +15 -4
  54. package/locales/faIR.js +13 -0
  55. package/locales/fiFI.js +13 -0
  56. package/locales/frFR.js +13 -0
  57. package/locales/heIL.js +13 -0
  58. package/locales/hrHR.js +13 -0
  59. package/locales/huHU.js +13 -0
  60. package/locales/isIS.js +12 -0
  61. package/locales/itIT.js +13 -0
  62. package/locales/jaJP.js +13 -0
  63. package/locales/koKR.js +12 -0
  64. package/locales/nbNO.js +13 -0
  65. package/locales/nlNL.js +13 -0
  66. package/locales/nnNO.js +13 -0
  67. package/locales/plPL.js +13 -0
  68. package/locales/ptBR.js +11 -0
  69. package/locales/ptPT.js +11 -0
  70. package/locales/roRO.js +12 -0
  71. package/locales/ruRU.js +13 -0
  72. package/locales/skSK.js +12 -0
  73. package/locales/svSE.js +17 -5
  74. package/locales/trTR.js +13 -0
  75. package/locales/ukUA.js +12 -0
  76. package/locales/urPK.js +12 -0
  77. package/locales/viVN.js +13 -0
  78. package/locales/zhCN.js +15 -4
  79. package/locales/zhHK.js +12 -0
  80. package/locales/zhTW.js +12 -0
  81. package/models/api/gridCoreApi.d.ts +1 -1
  82. package/models/api/gridLocaleTextApi.d.ts +10 -0
  83. package/models/colDef/gridColDef.d.ts +28 -24
  84. package/models/gridDataSource.d.ts +12 -12
  85. package/models/props/DataGridProps.d.ts +9 -9
  86. package/modern/DataGrid/DataGrid.js +9 -9
  87. package/modern/components/GridLoadingOverlay.js +4 -4
  88. package/modern/components/GridPagination.js +2 -1
  89. package/modern/components/base/GridOverlays.js +2 -24
  90. package/modern/components/base/index.js +1 -2
  91. package/modern/components/cell/GridCell.js +10 -10
  92. package/modern/components/columnSelection/GridCellCheckboxRenderer.js +2 -3
  93. package/modern/components/columnSelection/GridHeaderCheckbox.js +2 -3
  94. package/modern/components/columnsManagement/GridColumnsManagement.js +53 -6
  95. package/modern/components/toolbar/GridToolbarColumnsButton.js +3 -4
  96. package/modern/components/toolbar/GridToolbarDensitySelector.js +3 -4
  97. package/modern/components/toolbar/GridToolbarExportContainer.js +3 -4
  98. package/modern/components/toolbar/GridToolbarFilterButton.js +7 -6
  99. package/modern/components/toolbar/GridToolbarQuickFilter.js +1 -0
  100. package/modern/components/virtualization/GridVirtualScroller.js +5 -3
  101. package/modern/constants/dataGridPropsDefaultValues.js +2 -3
  102. package/modern/constants/gridClasses.js +1 -1
  103. package/modern/constants/localeTextConstants.js +11 -0
  104. package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +2 -2
  105. package/modern/hooks/features/dimensions/useGridDimensions.js +3 -19
  106. package/modern/hooks/features/index.js +1 -0
  107. package/modern/hooks/features/listView/gridListViewSelectors.js +3 -1
  108. package/modern/hooks/features/listView/index.js +1 -0
  109. package/modern/hooks/features/overlays/useGridOverlays.js +19 -1
  110. package/modern/hooks/features/rowSelection/useGridRowSelection.js +0 -9
  111. package/modern/hooks/features/rowSelection/utils.js +2 -2
  112. package/modern/hooks/features/virtualization/useGridVirtualScroller.js +55 -15
  113. package/modern/index.js +1 -1
  114. package/modern/internals/index.js +1 -0
  115. package/modern/joy/joySlots.js +7 -2
  116. package/modern/locales/arSD.js +12 -0
  117. package/modern/locales/beBY.js +12 -0
  118. package/modern/locales/bgBG.js +13 -0
  119. package/modern/locales/csCZ.js +13 -0
  120. package/modern/locales/daDK.js +13 -0
  121. package/modern/locales/deDE.js +11 -0
  122. package/modern/locales/elGR.js +12 -0
  123. package/modern/locales/esES.js +15 -4
  124. package/modern/locales/faIR.js +13 -0
  125. package/modern/locales/fiFI.js +13 -0
  126. package/modern/locales/frFR.js +13 -0
  127. package/modern/locales/heIL.js +13 -0
  128. package/modern/locales/hrHR.js +13 -0
  129. package/modern/locales/huHU.js +13 -0
  130. package/modern/locales/isIS.js +12 -0
  131. package/modern/locales/itIT.js +13 -0
  132. package/modern/locales/jaJP.js +13 -0
  133. package/modern/locales/koKR.js +12 -0
  134. package/modern/locales/nbNO.js +13 -0
  135. package/modern/locales/nlNL.js +13 -0
  136. package/modern/locales/nnNO.js +13 -0
  137. package/modern/locales/plPL.js +13 -0
  138. package/modern/locales/ptBR.js +11 -0
  139. package/modern/locales/ptPT.js +11 -0
  140. package/modern/locales/roRO.js +12 -0
  141. package/modern/locales/ruRU.js +13 -0
  142. package/modern/locales/skSK.js +12 -0
  143. package/modern/locales/svSE.js +17 -5
  144. package/modern/locales/trTR.js +13 -0
  145. package/modern/locales/ukUA.js +12 -0
  146. package/modern/locales/urPK.js +12 -0
  147. package/modern/locales/viVN.js +13 -0
  148. package/modern/locales/zhCN.js +15 -4
  149. package/modern/locales/zhHK.js +12 -0
  150. package/modern/locales/zhTW.js +12 -0
  151. package/node/DataGrid/DataGrid.js +9 -9
  152. package/node/components/GridLoadingOverlay.js +4 -4
  153. package/node/components/GridPagination.js +2 -1
  154. package/node/components/base/GridOverlays.js +2 -24
  155. package/node/components/base/index.js +0 -11
  156. package/node/components/cell/GridCell.js +10 -10
  157. package/node/components/columnSelection/GridCellCheckboxRenderer.js +2 -3
  158. package/node/components/columnSelection/GridHeaderCheckbox.js +2 -3
  159. package/node/components/columnsManagement/GridColumnsManagement.js +53 -6
  160. package/node/components/toolbar/GridToolbarColumnsButton.js +3 -4
  161. package/node/components/toolbar/GridToolbarDensitySelector.js +3 -4
  162. package/node/components/toolbar/GridToolbarExportContainer.js +3 -4
  163. package/node/components/toolbar/GridToolbarFilterButton.js +7 -6
  164. package/node/components/toolbar/GridToolbarQuickFilter.js +1 -0
  165. package/node/components/virtualization/GridVirtualScroller.js +5 -3
  166. package/node/constants/dataGridPropsDefaultValues.js +2 -3
  167. package/node/constants/gridClasses.js +1 -1
  168. package/node/constants/localeTextConstants.js +11 -0
  169. package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +2 -2
  170. package/node/hooks/features/dimensions/useGridDimensions.js +2 -18
  171. package/node/hooks/features/index.js +11 -0
  172. package/node/hooks/features/listView/gridListViewSelectors.js +3 -1
  173. package/node/hooks/features/listView/index.js +16 -0
  174. package/node/hooks/features/overlays/useGridOverlays.js +21 -1
  175. package/node/hooks/features/rowSelection/useGridRowSelection.js +0 -9
  176. package/node/hooks/features/rowSelection/utils.js +2 -2
  177. package/node/hooks/features/virtualization/useGridVirtualScroller.js +55 -15
  178. package/node/index.js +1 -1
  179. package/node/internals/index.js +9 -2
  180. package/node/joy/joySlots.js +7 -2
  181. package/node/locales/arSD.js +12 -0
  182. package/node/locales/beBY.js +12 -0
  183. package/node/locales/bgBG.js +13 -0
  184. package/node/locales/csCZ.js +13 -0
  185. package/node/locales/daDK.js +13 -0
  186. package/node/locales/deDE.js +11 -0
  187. package/node/locales/elGR.js +12 -0
  188. package/node/locales/esES.js +15 -4
  189. package/node/locales/faIR.js +13 -0
  190. package/node/locales/fiFI.js +13 -0
  191. package/node/locales/frFR.js +13 -0
  192. package/node/locales/heIL.js +13 -0
  193. package/node/locales/hrHR.js +13 -0
  194. package/node/locales/huHU.js +13 -0
  195. package/node/locales/isIS.js +12 -0
  196. package/node/locales/itIT.js +13 -0
  197. package/node/locales/jaJP.js +13 -0
  198. package/node/locales/koKR.js +12 -0
  199. package/node/locales/nbNO.js +13 -0
  200. package/node/locales/nlNL.js +13 -0
  201. package/node/locales/nnNO.js +13 -0
  202. package/node/locales/plPL.js +13 -0
  203. package/node/locales/ptBR.js +11 -0
  204. package/node/locales/ptPT.js +11 -0
  205. package/node/locales/roRO.js +12 -0
  206. package/node/locales/ruRU.js +13 -0
  207. package/node/locales/skSK.js +12 -0
  208. package/node/locales/svSE.js +17 -5
  209. package/node/locales/trTR.js +13 -0
  210. package/node/locales/ukUA.js +12 -0
  211. package/node/locales/urPK.js +12 -0
  212. package/node/locales/viVN.js +13 -0
  213. package/node/locales/zhCN.js +15 -4
  214. package/node/locales/zhHK.js +12 -0
  215. package/node/locales/zhTW.js +12 -0
  216. package/package.json +4 -4
@@ -283,7 +283,7 @@ export const useGridColumnHeaders = props => {
283
283
  fields: headerInfo.fields,
284
284
  colIndex: headerInfo.colIndex,
285
285
  depth: depth,
286
- isLastColumn: headerInfo.colIndex === visibleColumns.length - headerInfo.fields.length,
286
+ isLastColumn: index === visibleColumnGroupHeader.length - 1,
287
287
  maxDepth: headerGroupingMaxDepth,
288
288
  height: dimensions.groupHeaderHeight,
289
289
  hasFocus: hasFocus,
@@ -291,7 +291,7 @@ export const useGridColumnHeaders = props => {
291
291
  pinnedPosition: pinnedPosition,
292
292
  style: style,
293
293
  indexInSection: indexInSection,
294
- sectionLength: rowStructure.length,
294
+ sectionLength: visibleColumnGroupHeader.length,
295
295
  gridHasFiller: gridHasFiller
296
296
  }, index);
297
297
  });
@@ -83,10 +83,6 @@ export interface GridDimensions {
83
83
  bottomContainerHeight: number;
84
84
  }
85
85
  export interface GridDimensionsApi {
86
- /**
87
- * Triggers a resize of the component and recalculation of width and height.
88
- */
89
- resize: () => void;
90
86
  /**
91
87
  * Returns the dimensions of the grid
92
88
  * @returns {GridDimensions} The dimension information of the grid. If `null`, the grid is not ready yet.
@@ -1,6 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import * as React from 'react';
3
- import { unstable_ownerDocument as ownerDocument, unstable_useEnhancedEffect as useEnhancedEffect, unstable_useEventCallback as useEventCallback, unstable_ownerWindow as ownerWindow } from '@mui/utils';
3
+ import { unstable_ownerDocument as ownerDocument, unstable_useEnhancedEffect as useEnhancedEffect, unstable_useEventCallback as useEventCallback } from '@mui/utils';
4
4
  import { throttle } from '@mui/x-internals/throttle';
5
5
  import { useGridApiEventHandler, useGridApiOptionHandler } from "../../utils/useGridApiEventHandler.js";
6
6
  import { useGridApiMethod } from "../../utils/useGridApiMethod.js";
@@ -66,28 +66,13 @@ export function useGridDimensions(apiRef, props) {
66
66
  const rightPinnedWidth = pinnedColumns.right.reduce((w, col) => w + col.computedWidth, 0);
67
67
  const [savedSize, setSavedSize] = React.useState();
68
68
  const debouncedSetSavedSize = React.useMemo(() => throttle(setSavedSize, props.resizeThrottleMs), [props.resizeThrottleMs]);
69
- const previousSize = React.useRef();
69
+ React.useEffect(() => debouncedSetSavedSize.clear, [debouncedSetSavedSize]);
70
70
  const getRootDimensions = () => apiRef.current.state.dimensions;
71
71
  const setDimensions = useEventCallback(dimensions => {
72
72
  apiRef.current.setState(state => _extends({}, state, {
73
73
  dimensions
74
74
  }));
75
75
  });
76
- const resize = React.useCallback(() => {
77
- const element = apiRef.current.mainElementRef.current;
78
- if (!element) {
79
- return;
80
- }
81
- const computedStyle = ownerWindow(element).getComputedStyle(element);
82
- const newSize = {
83
- width: parseFloat(computedStyle.width) || 0,
84
- height: parseFloat(computedStyle.height) || 0
85
- };
86
- if (!previousSize.current || !areElementSizesEqual(previousSize.current, newSize)) {
87
- apiRef.current.publishEvent('resize', newSize);
88
- previousSize.current = newSize;
89
- }
90
- }, [apiRef]);
91
76
  const getViewportPageSize = React.useCallback(() => {
92
77
  const dimensions = gridDimensionsSelector(apiRef.current.state);
93
78
  if (!dimensions.isReady) {
@@ -198,7 +183,6 @@ export function useGridDimensions(apiRef, props) {
198
183
  apiRef.current.updateRenderContext?.();
199
184
  }, [apiRef, setDimensions, props.scrollbarSize, props.autoHeight, rowsMeta.currentPageTotalHeight, rowHeight, headerHeight, groupHeaderHeight, headerFilterHeight, columnsTotalWidth, headersTotalHeight, leftPinnedWidth, rightPinnedWidth]);
200
185
  const apiPublic = {
201
- resize,
202
186
  getRootDimensions
203
187
  };
204
188
  const apiPrivate = {
@@ -238,7 +222,7 @@ export function useGridDimensions(apiRef, props) {
238
222
  rootDimensionsRef.current = size;
239
223
 
240
224
  // jsdom has no layout capabilities
241
- const isJSDOM = /jsdom/.test(window.navigator.userAgent);
225
+ const isJSDOM = /jsdom|HappyDOM/.test(window.navigator.userAgent);
242
226
  if (size.height === 0 && !errorShown.current && !props.autoHeight && !isJSDOM) {
243
227
  logger.error(['The parent DOM element of the Data Grid has an empty height.', 'Please make sure that this element has an intrinsic height.', 'The grid displays with a height of 0px.', '', 'More details: https://mui.com/r/x-data-grid-no-dimensions.'].join('\n'));
244
228
  errorShown.current = true;
@@ -6,6 +6,7 @@ export * from './density';
6
6
  export * from './editing';
7
7
  export * from './filter';
8
8
  export * from './focus';
9
+ export * from './listView';
9
10
  export * from './pagination';
10
11
  export * from './preferencesPanel';
11
12
  export * from './rows';
@@ -7,6 +7,7 @@ export * from "./density/index.js";
7
7
  export * from "./editing/index.js";
8
8
  export * from "./filter/index.js";
9
9
  export * from "./focus/index.js";
10
+ export * from "./listView/index.js";
10
11
  export * from "./pagination/index.js";
11
12
  export * from "./preferencesPanel/index.js";
12
13
  export * from "./rows/index.js";
@@ -1,5 +1,7 @@
1
1
  import { GridStateCommunity } from '../../../models/gridStateCommunity';
2
2
  /**
3
- * Get a list column definition
3
+ * Get the list column definition
4
+ * @category List View
5
+ * @ignore - Do not document
4
6
  */
5
7
  export declare const gridListColumnSelector: (state: GridStateCommunity) => import("./useGridListView").GridListViewState;
@@ -1,4 +1,6 @@
1
1
  /**
2
- * Get a list column definition
2
+ * Get the list column definition
3
+ * @category List View
4
+ * @ignore - Do not document
3
5
  */
4
6
  export const gridListColumnSelector = state => state.listViewColumn;
@@ -0,0 +1 @@
1
+ export * from './gridListViewSelectors';
@@ -0,0 +1 @@
1
+ export * from "./gridListViewSelectors.js";
@@ -1,11 +1,14 @@
1
+ import * as React from 'react';
1
2
  import { GridLoadingOverlayVariant } from '../../../components/GridLoadingOverlay';
2
- import { GridSlotsComponent } from '../../../models/gridSlotsComponent';
3
- export type GridOverlayType = keyof Pick<GridSlotsComponent, 'noRowsOverlay' | 'noResultsOverlay' | 'loadingOverlay'> | null;
3
+ import type { GridOverlayType } from '../../../components/base/GridOverlays';
4
4
  /**
5
5
  * Uses the grid state to determine which overlay to display.
6
6
  * Returns the active overlay type and the active loading overlay variant.
7
7
  */
8
8
  export declare const useGridOverlays: () => {
9
- overlayType: GridOverlayType;
10
- loadingOverlayVariant: GridLoadingOverlayVariant | null;
9
+ getOverlay: () => React.JSX.Element | null;
10
+ overlaysProps: {
11
+ overlayType: GridOverlayType;
12
+ loadingOverlayVariant: GridLoadingOverlayVariant | null;
13
+ };
11
14
  };
@@ -1,8 +1,12 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import * as React from 'react';
1
3
  import { useGridSelector } from "../../utils/index.js";
2
4
  import { useGridApiContext } from "../../utils/useGridApiContext.js";
3
5
  import { useGridRootProps } from "../../utils/useGridRootProps.js";
4
6
  import { gridExpandedRowCountSelector } from "../filter/index.js";
5
7
  import { gridRowCountSelector, gridRowsLoadingSelector } from "../rows/index.js";
8
+ import { GridOverlayWrapper } from "../../../components/base/GridOverlays.js";
9
+ import { jsx as _jsx } from "react/jsx-runtime";
6
10
  /**
7
11
  * Uses the grid state to determine which overlay to display.
8
12
  * Returns the active overlay type and the active loading overlay variant.
@@ -28,8 +32,22 @@ export const useGridOverlays = () => {
28
32
  overlayType = 'loadingOverlay';
29
33
  loadingOverlayVariant = rootProps.slotProps?.loadingOverlay?.[noRows ? 'noRowsVariant' : 'variant'] || null;
30
34
  }
31
- return {
35
+ const overlaysProps = {
32
36
  overlayType,
33
37
  loadingOverlayVariant
34
38
  };
39
+ const getOverlay = () => {
40
+ if (!overlayType) {
41
+ return null;
42
+ }
43
+ const Overlay = rootProps.slots?.[overlayType];
44
+ const overlayProps = rootProps.slotProps?.[overlayType];
45
+ return /*#__PURE__*/_jsx(GridOverlayWrapper, _extends({}, overlaysProps, {
46
+ children: /*#__PURE__*/_jsx(Overlay, _extends({}, overlayProps))
47
+ }));
48
+ };
49
+ return {
50
+ getOverlay,
51
+ overlaysProps
52
+ };
35
53
  };
@@ -248,11 +248,7 @@ export const useGridRowSelection = (apiRef, props) => {
248
248
  /*
249
249
  * EVENTS
250
250
  */
251
- const isFirstRender = React.useRef(true);
252
251
  const removeOutdatedSelection = React.useCallback((sortModelUpdated = false) => {
253
- if (isFirstRender.current) {
254
- return;
255
- }
256
252
  const currentSelection = gridRowSelectionStateSelector(apiRef.current.state);
257
253
  const rowsLookup = gridRowsLookupSelector(apiRef);
258
254
  const filteredRowsLookup = gridFilteredRowsLookupSelector(apiRef);
@@ -480,9 +476,4 @@ export const useGridRowSelection = (apiRef, props) => {
480
476
  React.useEffect(() => {
481
477
  runIfRowSelectionIsEnabled(removeOutdatedSelection);
482
478
  }, [removeOutdatedSelection, runIfRowSelectionIsEnabled]);
483
- React.useEffect(() => {
484
- if (isFirstRender.current) {
485
- isFirstRender.current = false;
486
- }
487
- }, []);
488
479
  };
@@ -6,8 +6,8 @@ import { selectedIdsLookupSelector } from "./gridRowSelectionSelector.js";
6
6
  import { gridRowTreeSelector } from "../rows/gridRowsSelector.js";
7
7
  import { createSelector } from "../../../utils/createSelector.js";
8
8
  export const ROW_SELECTION_PROPAGATION_DEFAULT = {
9
- parents: false,
10
- descendants: false
9
+ parents: true,
10
+ descendants: true
11
11
  };
12
12
  function getGridRowGroupSelectableDescendants(apiRef, groupId) {
13
13
  const rowTree = gridRowTreeSelector(apiRef);
@@ -12,7 +12,7 @@ export declare const useGridVirtualScroller: () => {
12
12
  renderContext?: GridRenderContext;
13
13
  }) => React.ReactNode[];
14
14
  getContainerProps: () => {
15
- ref: React.RefObject<HTMLDivElement>;
15
+ ref: (node: HTMLDivElement | null) => (() => void) | undefined;
16
16
  };
17
17
  getScrollerProps: () => {
18
18
  ref: React.RefObject<HTMLDivElement>;
@@ -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";
@@ -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;
@@ -389,10 +430,6 @@ export const useGridVirtualScroller = () => {
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
package/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-data-grid v8.0.0-alpha.0
2
+ * @mui/x-data-grid v8.0.0-alpha.2
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -8,6 +8,7 @@ export { GridHeaders } from '../components/GridHeaders';
8
8
  export { GridBaseColumnHeaders } from '../components/columnHeaders/GridBaseColumnHeaders';
9
9
  export { DATA_GRID_DEFAULT_SLOTS_COMPONENTS } from '../constants/defaultGridSlotsComponents';
10
10
  export { getGridFilter } from '../components/panel/filterPanel/GridFilterPanel';
11
+ export { getValueOptions } from '../components/panel/filterPanel/filterPanelUtils';
11
12
  export { useGridRegisterPipeProcessor } from '../hooks/core/pipeProcessing';
12
13
  export type { GridPipeProcessor } from '../hooks/core/pipeProcessing';
13
14
  export { useGridRegisterStrategyProcessor, GRID_DEFAULT_STRATEGY, } from '../hooks/core/strategyProcessing';
@@ -5,6 +5,7 @@ export { GridHeaders } from "../components/GridHeaders.js";
5
5
  export { GridBaseColumnHeaders } from "../components/columnHeaders/GridBaseColumnHeaders.js";
6
6
  export { DATA_GRID_DEFAULT_SLOTS_COMPONENTS } from "../constants/defaultGridSlotsComponents.js";
7
7
  export { getGridFilter } from "../components/panel/filterPanel/GridFilterPanel.js";
8
+ export { getValueOptions } from "../components/panel/filterPanel/filterPanelUtils.js";
8
9
  export { useGridRegisterPipeProcessor } from "../hooks/core/pipeProcessing/index.js";
9
10
  export { useGridRegisterStrategyProcessor, GRID_DEFAULT_STRATEGY } from "../hooks/core/strategyProcessing/index.js";
10
11
  export { useGridInitialization } from "../hooks/core/useGridInitialization.js";
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
@@ -23,6 +23,17 @@ const arSDGrid = {
23
23
  toolbarQuickFilterPlaceholder: 'بحث...',
24
24
  toolbarQuickFilterLabel: 'بحث',
25
25
  toolbarQuickFilterDeleteIconLabel: 'أزال',
26
+ // Prompt toolbar field
27
+ // toolbarPromptControlPlaceholder: 'Type a prompt…',
28
+ // toolbarPromptControlWithRecordingPlaceholder: 'Type or record a prompt…',
29
+ // toolbarPromptControlRecordingPlaceholder: 'Listening for prompt…',
30
+ // toolbarPromptControlLabel: 'Prompt input',
31
+ // toolbarPromptControlRecordButtonDefaultLabel: 'Record',
32
+ // toolbarPromptControlRecordButtonActiveLabel: 'Stop recording',
33
+ // toolbarPromptControlSendActionLabel: 'Send',
34
+ // toolbarPromptControlSendActionAriaLabel: 'Send prompt',
35
+ // toolbarPromptControlErrorMessage: 'An error occurred while processing the request. Please try again with a different prompt.',
36
+
26
37
  // Export selector toolbar button text
27
38
  toolbarExport: 'تصدير',
28
39
  toolbarExportLabel: 'تصدير',
@@ -34,6 +45,7 @@ const arSDGrid = {
34
45
  // columnsManagementNoColumns: 'No columns',
35
46
  // columnsManagementShowHideAllText: 'Show/Hide All',
36
47
  // columnsManagementReset: 'Reset',
48
+ // columnsManagementDeleteIconLabel: 'Clear',
37
49
 
38
50
  // Filter panel text
39
51
  filterPanelAddFilter: 'إضافة مرشِح',
package/locales/beBY.js CHANGED
@@ -37,6 +37,17 @@ const beBYGrid = {
37
37
  toolbarQuickFilterPlaceholder: 'Пошук…',
38
38
  toolbarQuickFilterLabel: 'Пошук',
39
39
  toolbarQuickFilterDeleteIconLabel: 'Ачысціць',
40
+ // Prompt toolbar field
41
+ // toolbarPromptControlPlaceholder: 'Type a prompt…',
42
+ // toolbarPromptControlWithRecordingPlaceholder: 'Type or record a prompt…',
43
+ // toolbarPromptControlRecordingPlaceholder: 'Listening for prompt…',
44
+ // toolbarPromptControlLabel: 'Prompt input',
45
+ // toolbarPromptControlRecordButtonDefaultLabel: 'Record',
46
+ // toolbarPromptControlRecordButtonActiveLabel: 'Stop recording',
47
+ // toolbarPromptControlSendActionLabel: 'Send',
48
+ // toolbarPromptControlSendActionAriaLabel: 'Send prompt',
49
+ // toolbarPromptControlErrorMessage: 'An error occurred while processing the request. Please try again with a different prompt.',
50
+
40
51
  // Export selector toolbar button text
41
52
  toolbarExport: 'Экспарт',
42
53
  toolbarExportLabel: 'Экспарт',
@@ -48,6 +59,7 @@ const beBYGrid = {
48
59
  // columnsManagementNoColumns: 'No columns',
49
60
  // columnsManagementShowHideAllText: 'Show/Hide All',
50
61
  // columnsManagementReset: 'Reset',
62
+ // columnsManagementDeleteIconLabel: 'Clear',
51
63
 
52
64
  // Filter panel text
53
65
  filterPanelAddFilter: 'Дадаць фільтр',
package/locales/bgBG.js CHANGED
@@ -23,6 +23,17 @@ const bgBGGrid = {
23
23
  toolbarQuickFilterPlaceholder: 'Търси…',
24
24
  toolbarQuickFilterLabel: 'Търсене',
25
25
  toolbarQuickFilterDeleteIconLabel: 'Изчисти',
26
+ // Prompt toolbar field
27
+ // toolbarPromptControlPlaceholder: 'Type a prompt…',
28
+ // toolbarPromptControlWithRecordingPlaceholder: 'Type or record a prompt…',
29
+ // toolbarPromptControlRecordingPlaceholder: 'Listening for prompt…',
30
+ // toolbarPromptControlLabel: 'Prompt input',
31
+ // toolbarPromptControlRecordButtonDefaultLabel: 'Record',
32
+ // toolbarPromptControlRecordButtonActiveLabel: 'Stop recording',
33
+ // toolbarPromptControlSendActionLabel: 'Send',
34
+ // toolbarPromptControlSendActionAriaLabel: 'Send prompt',
35
+ // toolbarPromptControlErrorMessage: 'An error occurred while processing the request. Please try again with a different prompt.',
36
+
26
37
  // Export selector toolbar button text
27
38
  toolbarExport: 'Изтегли',
28
39
  toolbarExportLabel: 'Изтегли',
@@ -34,6 +45,8 @@ const bgBGGrid = {
34
45
  columnsManagementNoColumns: 'Няма колони',
35
46
  columnsManagementShowHideAllText: 'Покажи/Скрий Всичко',
36
47
  columnsManagementReset: 'Нулирай',
48
+ // columnsManagementDeleteIconLabel: 'Clear',
49
+
37
50
  // Filter panel text
38
51
  filterPanelAddFilter: 'Добави Филтър',
39
52
  filterPanelRemoveAll: 'Премахни всички',
package/locales/csCZ.js CHANGED
@@ -31,6 +31,17 @@ const csCZGrid = {
31
31
  toolbarQuickFilterPlaceholder: 'Hledat…',
32
32
  toolbarQuickFilterLabel: 'Hledat',
33
33
  toolbarQuickFilterDeleteIconLabel: 'Vymazat',
34
+ // Prompt toolbar field
35
+ // toolbarPromptControlPlaceholder: 'Type a prompt…',
36
+ // toolbarPromptControlWithRecordingPlaceholder: 'Type or record a prompt…',
37
+ // toolbarPromptControlRecordingPlaceholder: 'Listening for prompt…',
38
+ // toolbarPromptControlLabel: 'Prompt input',
39
+ // toolbarPromptControlRecordButtonDefaultLabel: 'Record',
40
+ // toolbarPromptControlRecordButtonActiveLabel: 'Stop recording',
41
+ // toolbarPromptControlSendActionLabel: 'Send',
42
+ // toolbarPromptControlSendActionAriaLabel: 'Send prompt',
43
+ // toolbarPromptControlErrorMessage: 'An error occurred while processing the request. Please try again with a different prompt.',
44
+
34
45
  // Export selector toolbar button text
35
46
  toolbarExport: 'Export',
36
47
  toolbarExportLabel: 'Export',
@@ -42,6 +53,8 @@ const csCZGrid = {
42
53
  columnsManagementNoColumns: 'Žádné sloupce',
43
54
  columnsManagementShowHideAllText: 'Zobrazit/skrýt vše',
44
55
  columnsManagementReset: 'Resetovat',
56
+ // columnsManagementDeleteIconLabel: 'Clear',
57
+
45
58
  // Filter panel text
46
59
  filterPanelAddFilter: 'Přidat filtr',
47
60
  filterPanelRemoveAll: 'Odstranit vše',
package/locales/daDK.js CHANGED
@@ -23,6 +23,17 @@ const daDKGrid = {
23
23
  toolbarQuickFilterPlaceholder: 'Søg…',
24
24
  toolbarQuickFilterLabel: 'Søg',
25
25
  toolbarQuickFilterDeleteIconLabel: 'Ryd',
26
+ // Prompt toolbar field
27
+ // toolbarPromptControlPlaceholder: 'Type a prompt…',
28
+ // toolbarPromptControlWithRecordingPlaceholder: 'Type or record a prompt…',
29
+ // toolbarPromptControlRecordingPlaceholder: 'Listening for prompt…',
30
+ // toolbarPromptControlLabel: 'Prompt input',
31
+ // toolbarPromptControlRecordButtonDefaultLabel: 'Record',
32
+ // toolbarPromptControlRecordButtonActiveLabel: 'Stop recording',
33
+ // toolbarPromptControlSendActionLabel: 'Send',
34
+ // toolbarPromptControlSendActionAriaLabel: 'Send prompt',
35
+ // toolbarPromptControlErrorMessage: 'An error occurred while processing the request. Please try again with a different prompt.',
36
+
26
37
  // Export selector toolbar button text
27
38
  toolbarExport: 'Eksport',
28
39
  toolbarExportLabel: 'Eksporter',
@@ -34,6 +45,8 @@ const daDKGrid = {
34
45
  columnsManagementNoColumns: 'Ingen søjler',
35
46
  columnsManagementShowHideAllText: 'Vis/Skjul Alle',
36
47
  columnsManagementReset: 'Nulstil',
48
+ // columnsManagementDeleteIconLabel: 'Clear',
49
+
37
50
  // Filter panel text
38
51
  filterPanelAddFilter: 'Tilføj filter',
39
52
  filterPanelRemoveAll: 'Fjern alle',
package/locales/deDE.js CHANGED
@@ -23,6 +23,16 @@ const deDEGrid = {
23
23
  toolbarQuickFilterPlaceholder: 'Suchen…',
24
24
  toolbarQuickFilterLabel: 'Suchen',
25
25
  toolbarQuickFilterDeleteIconLabel: 'Löschen',
26
+ // Prompt toolbar field
27
+ toolbarPromptControlPlaceholder: 'Prompt eingeben…',
28
+ toolbarPromptControlWithRecordingPlaceholder: 'Prompt eingeben oder aufnehmen…',
29
+ toolbarPromptControlRecordingPlaceholder: 'Hört Prompteingabe zu…',
30
+ toolbarPromptControlLabel: 'Prompteingabe',
31
+ toolbarPromptControlRecordButtonDefaultLabel: 'Aufnahme starten',
32
+ toolbarPromptControlRecordButtonActiveLabel: 'Aufnahme stoppen',
33
+ toolbarPromptControlSendActionLabel: 'Senden',
34
+ toolbarPromptControlSendActionAriaLabel: 'Prompt senden',
35
+ toolbarPromptControlErrorMessage: 'Ein Fehler ist während der Bearbeitung der Anfrage aufgetreten. Bitte versuche es nochmal mit einem anderen Prompt.',
26
36
  // Export selector toolbar button text
27
37
  toolbarExport: 'Exportieren',
28
38
  toolbarExportLabel: 'Exportieren',
@@ -34,6 +44,7 @@ const deDEGrid = {
34
44
  columnsManagementNoColumns: 'Keine Spalten',
35
45
  columnsManagementShowHideAllText: 'Alle anzeigen/verbergen',
36
46
  columnsManagementReset: 'Zurücksetzen',
47
+ columnsManagementDeleteIconLabel: 'Löschen',
37
48
  // Filter panel text
38
49
  filterPanelAddFilter: 'Filter hinzufügen',
39
50
  filterPanelRemoveAll: 'Alle entfernen',
package/locales/elGR.js CHANGED
@@ -23,6 +23,17 @@ const elGRGrid = {
23
23
  toolbarQuickFilterPlaceholder: 'Αναζήτηση…',
24
24
  toolbarQuickFilterLabel: 'Αναζήτηση',
25
25
  toolbarQuickFilterDeleteIconLabel: 'Καθαρισμός',
26
+ // Prompt toolbar field
27
+ // toolbarPromptControlPlaceholder: 'Type a prompt…',
28
+ // toolbarPromptControlWithRecordingPlaceholder: 'Type or record a prompt…',
29
+ // toolbarPromptControlRecordingPlaceholder: 'Listening for prompt…',
30
+ // toolbarPromptControlLabel: 'Prompt input',
31
+ // toolbarPromptControlRecordButtonDefaultLabel: 'Record',
32
+ // toolbarPromptControlRecordButtonActiveLabel: 'Stop recording',
33
+ // toolbarPromptControlSendActionLabel: 'Send',
34
+ // toolbarPromptControlSendActionAriaLabel: 'Send prompt',
35
+ // toolbarPromptControlErrorMessage: 'An error occurred while processing the request. Please try again with a different prompt.',
36
+
26
37
  // Export selector toolbar button text
27
38
  toolbarExport: 'Εξαγωγή',
28
39
  toolbarExportLabel: 'Εξαγωγή',
@@ -34,6 +45,7 @@ const elGRGrid = {
34
45
  // columnsManagementNoColumns: 'No columns',
35
46
  // columnsManagementShowHideAllText: 'Show/Hide All',
36
47
  // columnsManagementReset: 'Reset',
48
+ // columnsManagementDeleteIconLabel: 'Clear',
37
49
 
38
50
  // Filter panel text
39
51
  filterPanelAddFilter: 'Προσθήκη φίλτρου',
package/locales/esES.js CHANGED
@@ -23,6 +23,16 @@ const esESGrid = {
23
23
  toolbarQuickFilterPlaceholder: 'Buscar…',
24
24
  toolbarQuickFilterLabel: 'Buscar',
25
25
  toolbarQuickFilterDeleteIconLabel: 'Limpiar',
26
+ // Prompt toolbar field
27
+ toolbarPromptControlPlaceholder: 'Escriba un prompt…',
28
+ toolbarPromptControlWithRecordingPlaceholder: 'Escriba o grabe un prompt…',
29
+ toolbarPromptControlRecordingPlaceholder: 'Esperando por un prompt…',
30
+ toolbarPromptControlLabel: 'Introduzca un prompt',
31
+ toolbarPromptControlRecordButtonDefaultLabel: 'Grabar',
32
+ toolbarPromptControlRecordButtonActiveLabel: 'Parar de grabar',
33
+ toolbarPromptControlSendActionLabel: 'Enviar',
34
+ toolbarPromptControlSendActionAriaLabel: 'Enviar prompt',
35
+ toolbarPromptControlErrorMessage: 'Ocurrió un error mientras se procesaba la petición. Por favor, intente de nuevo con otro prompt.',
26
36
  // Export selector toolbar button text
27
37
  toolbarExport: 'Exportar',
28
38
  toolbarExportLabel: 'Exportar',
@@ -34,6 +44,7 @@ const esESGrid = {
34
44
  columnsManagementNoColumns: 'Sin columnas',
35
45
  columnsManagementShowHideAllText: 'Mostrar/Ocultar todas',
36
46
  columnsManagementReset: 'Restablecer',
47
+ columnsManagementDeleteIconLabel: 'Limpiar',
37
48
  // Filter panel text
38
49
  filterPanelAddFilter: 'Agregar filtro',
39
50
  filterPanelRemoveAll: 'Remover todos',
@@ -47,9 +58,9 @@ const esESGrid = {
47
58
  filterPanelInputPlaceholder: 'Valor de filtro',
48
59
  // Filter operators text
49
60
  filterOperatorContains: 'contiene',
50
- // filterOperatorDoesNotContain: 'does not contain',
61
+ filterOperatorDoesNotContain: 'no contiene',
51
62
  filterOperatorEquals: 'es igual',
52
- // filterOperatorDoesNotEqual: 'does not equal',
63
+ filterOperatorDoesNotEqual: 'es diferente a',
53
64
  filterOperatorStartsWith: 'comienza con',
54
65
  filterOperatorEndsWith: 'termina con',
55
66
  filterOperatorIs: 'es',
@@ -69,9 +80,9 @@ const esESGrid = {
69
80
  'filterOperator<=': '<=',
70
81
  // Header filter operators text
71
82
  headerFilterOperatorContains: 'Contiene',
72
- // headerFilterOperatorDoesNotContain: 'Does not contain',
83
+ headerFilterOperatorDoesNotContain: 'No contiene',
73
84
  headerFilterOperatorEquals: 'Es igual a',
74
- // headerFilterOperatorDoesNotEqual: 'Does not equal',
85
+ headerFilterOperatorDoesNotEqual: 'Es diferente a',
75
86
  headerFilterOperatorStartsWith: 'Comienza con',
76
87
  headerFilterOperatorEndsWith: 'Termina con',
77
88
  headerFilterOperatorIs: 'Es',