@mui/x-data-grid 7.18.0 → 7.20.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 (196) hide show
  1. package/CHANGELOG.md +213 -11
  2. package/DataGrid/DataGrid.js +12 -0
  3. package/components/cell/GridCell.js +7 -8
  4. package/components/columnHeaders/GridBaseColumnHeaders.js +1 -1
  5. package/components/columnHeaders/GridColumnHeaderItem.js +1 -0
  6. package/components/columnSelection/GridCellCheckboxRenderer.js +12 -4
  7. package/components/columnSelection/GridHeaderCheckbox.d.ts +1 -1
  8. package/components/containers/GridRoot.js +1 -1
  9. package/components/containers/GridRootStyles.js +32 -23
  10. package/components/containers/GridToolbarContainer.js +1 -1
  11. package/components/menu/GridMenu.js +1 -1
  12. package/components/panel/GridPanel.d.ts +1 -1
  13. package/components/panel/GridPanel.js +1 -1
  14. package/components/panel/GridPanelContent.js +1 -1
  15. package/components/panel/GridPanelFooter.js +1 -1
  16. package/components/panel/GridPanelHeader.js +1 -1
  17. package/components/panel/GridPanelWrapper.js +1 -1
  18. package/components/panel/filterPanel/filterPanelUtils.d.ts +1 -1
  19. package/components/toolbar/GridToolbarQuickFilter.js +1 -1
  20. package/components/virtualization/GridBottomContainer.d.ts +1 -1
  21. package/components/virtualization/GridBottomContainer.js +18 -1
  22. package/components/virtualization/GridMainContainer.js +3 -1
  23. package/components/virtualization/GridTopContainer.d.ts +1 -1
  24. package/components/virtualization/GridTopContainer.js +1 -1
  25. package/components/virtualization/GridVirtualScrollbar.js +1 -7
  26. package/components/virtualization/GridVirtualScroller.js +1 -0
  27. package/components/virtualization/GridVirtualScrollerFiller.js +3 -4
  28. package/hooks/core/useGridRefs.js +4 -0
  29. package/hooks/features/columnGrouping/gridColumnGroupsSelector.d.ts +4 -4
  30. package/hooks/features/columnHeaders/useGridColumnHeaders.d.ts +1 -1
  31. package/hooks/features/columnResize/columnResizeSelector.d.ts +1 -1
  32. package/hooks/features/columns/gridColumnsSelector.d.ts +12 -12
  33. package/hooks/features/columns/gridColumnsUtils.js +3 -2
  34. package/hooks/features/density/densitySelector.d.ts +1 -1
  35. package/hooks/features/dimensions/useGridDimensions.js +2 -2
  36. package/hooks/features/editing/useGridCellEditing.js +4 -2
  37. package/hooks/features/editing/useGridRowEditing.js +4 -2
  38. package/hooks/features/events/useGridEvents.d.ts +1 -1
  39. package/hooks/features/events/useGridEvents.js +1 -0
  40. package/hooks/features/filter/gridFilterSelector.d.ts +17 -17
  41. package/hooks/features/filter/gridFilterUtils.js +1 -1
  42. package/hooks/features/focus/gridFocusStateSelector.d.ts +8 -8
  43. package/hooks/features/headerFiltering/gridHeaderFilteringSelectors.d.ts +3 -3
  44. package/hooks/features/keyboardNavigation/utils.d.ts +1 -1
  45. package/hooks/features/pagination/gridPaginationSelector.d.ts +9 -9
  46. package/hooks/features/rowSelection/gridRowSelectionSelector.d.ts +3 -3
  47. package/hooks/features/rowSelection/useGridRowSelection.d.ts +1 -1
  48. package/hooks/features/rowSelection/useGridRowSelection.js +105 -29
  49. package/hooks/features/rowSelection/utils.d.ts +10 -0
  50. package/hooks/features/rowSelection/utils.js +156 -1
  51. package/hooks/features/rows/gridRowSpanningSelectors.d.ts +3 -3
  52. package/hooks/features/rows/gridRowsSelector.d.ts +14 -14
  53. package/hooks/features/rows/gridRowsUtils.js +1 -1
  54. package/hooks/features/rows/useGridRowSpanning.js +1 -1
  55. package/hooks/features/rows/useGridRows.d.ts +1 -1
  56. package/hooks/features/rows/useGridRows.js +7 -1
  57. package/hooks/features/scroll/useGridScroll.js +26 -22
  58. package/hooks/features/sorting/gridSortingSelector.d.ts +4 -4
  59. package/hooks/features/sorting/gridSortingUtils.js +1 -1
  60. package/hooks/features/virtualization/gridVirtualizationSelectors.d.ts +5 -5
  61. package/hooks/features/virtualization/useGridVirtualScroller.js +2 -2
  62. package/hooks/utils/useGridApiContext.js +1 -1
  63. package/hooks/utils/useGridApiEventHandler.d.ts +1 -1
  64. package/hooks/utils/useGridApiEventHandler.js +1 -1
  65. package/hooks/utils/useGridConfiguration.js +1 -1
  66. package/hooks/utils/useGridPrivateApiContext.js +1 -1
  67. package/hooks/utils/useGridVisibleRows.d.ts +2 -2
  68. package/index.d.ts +2 -2
  69. package/index.js +3 -3
  70. package/internals/index.d.ts +1 -0
  71. package/internals/index.js +1 -0
  72. package/joy/icons.js +0 -1
  73. package/locales/bgBG.js +8 -9
  74. package/locales/deDE.js +4 -4
  75. package/locales/frFR.js +4 -4
  76. package/locales/hrHR.d.ts +1 -1
  77. package/locales/hrHR.js +69 -46
  78. package/locales/jaJP.js +5 -6
  79. package/locales/ptPT.d.ts +1 -1
  80. package/locales/ptPT.js +4 -4
  81. package/locales/viVN.js +20 -20
  82. package/locales/zhHK.d.ts +1 -1
  83. package/models/api/gridApiCommunity.d.ts +1 -1
  84. package/models/api/gridCoreApi.d.ts +9 -1
  85. package/models/api/gridFilterApi.d.ts +1 -1
  86. package/models/events/gridEventLookup.d.ts +7 -0
  87. package/models/gridRowSelectionModel.d.ts +4 -0
  88. package/models/gridStateCommunity.d.ts +2 -2
  89. package/models/props/DataGridProps.d.ts +38 -10
  90. package/modern/DataGrid/DataGrid.js +12 -0
  91. package/modern/components/cell/GridCell.js +7 -8
  92. package/modern/components/columnHeaders/GridBaseColumnHeaders.js +1 -1
  93. package/modern/components/columnHeaders/GridColumnHeaderItem.js +1 -0
  94. package/modern/components/columnSelection/GridCellCheckboxRenderer.js +12 -4
  95. package/modern/components/containers/GridRoot.js +1 -1
  96. package/modern/components/containers/GridRootStyles.js +32 -23
  97. package/modern/components/containers/GridToolbarContainer.js +1 -1
  98. package/modern/components/menu/GridMenu.js +1 -1
  99. package/modern/components/panel/GridPanel.js +1 -1
  100. package/modern/components/panel/GridPanelContent.js +1 -1
  101. package/modern/components/panel/GridPanelFooter.js +1 -1
  102. package/modern/components/panel/GridPanelHeader.js +1 -1
  103. package/modern/components/panel/GridPanelWrapper.js +1 -1
  104. package/modern/components/toolbar/GridToolbarQuickFilter.js +1 -1
  105. package/modern/components/virtualization/GridBottomContainer.js +18 -1
  106. package/modern/components/virtualization/GridMainContainer.js +3 -1
  107. package/modern/components/virtualization/GridTopContainer.js +1 -1
  108. package/modern/components/virtualization/GridVirtualScrollbar.js +1 -7
  109. package/modern/components/virtualization/GridVirtualScroller.js +1 -0
  110. package/modern/components/virtualization/GridVirtualScrollerFiller.js +3 -4
  111. package/modern/hooks/core/useGridRefs.js +4 -0
  112. package/modern/hooks/features/columns/gridColumnsUtils.js +3 -2
  113. package/modern/hooks/features/dimensions/useGridDimensions.js +2 -2
  114. package/modern/hooks/features/editing/useGridCellEditing.js +4 -2
  115. package/modern/hooks/features/editing/useGridRowEditing.js +4 -2
  116. package/modern/hooks/features/events/useGridEvents.js +1 -0
  117. package/modern/hooks/features/filter/gridFilterUtils.js +1 -1
  118. package/modern/hooks/features/rowSelection/useGridRowSelection.js +105 -29
  119. package/modern/hooks/features/rowSelection/utils.js +156 -1
  120. package/modern/hooks/features/rows/gridRowsUtils.js +1 -1
  121. package/modern/hooks/features/rows/useGridRowSpanning.js +1 -1
  122. package/modern/hooks/features/rows/useGridRows.js +7 -1
  123. package/modern/hooks/features/scroll/useGridScroll.js +26 -22
  124. package/modern/hooks/features/sorting/gridSortingUtils.js +1 -1
  125. package/modern/hooks/features/virtualization/useGridVirtualScroller.js +2 -2
  126. package/modern/hooks/utils/useGridApiContext.js +1 -1
  127. package/modern/hooks/utils/useGridApiEventHandler.js +1 -1
  128. package/modern/hooks/utils/useGridConfiguration.js +1 -1
  129. package/modern/hooks/utils/useGridPrivateApiContext.js +1 -1
  130. package/modern/index.js +3 -3
  131. package/modern/internals/index.js +1 -0
  132. package/modern/joy/icons.js +0 -1
  133. package/modern/locales/bgBG.js +8 -9
  134. package/modern/locales/deDE.js +4 -4
  135. package/modern/locales/frFR.js +4 -4
  136. package/modern/locales/hrHR.js +69 -46
  137. package/modern/locales/jaJP.js +5 -6
  138. package/modern/locales/ptPT.js +4 -4
  139. package/modern/locales/viVN.js +20 -20
  140. package/modern/utils/createSelector.js +6 -0
  141. package/modern/utils/domUtils.js +1 -1
  142. package/node/DataGrid/DataGrid.js +12 -0
  143. package/node/components/cell/GridCell.js +7 -8
  144. package/node/components/columnHeaders/GridBaseColumnHeaders.js +1 -1
  145. package/node/components/columnHeaders/GridColumnHeaderItem.js +1 -0
  146. package/node/components/columnSelection/GridCellCheckboxRenderer.js +12 -4
  147. package/node/components/containers/GridRoot.js +1 -1
  148. package/node/components/containers/GridRootStyles.js +32 -23
  149. package/node/components/containers/GridToolbarContainer.js +1 -1
  150. package/node/components/menu/GridMenu.js +1 -1
  151. package/node/components/panel/GridPanel.js +1 -1
  152. package/node/components/panel/GridPanelContent.js +1 -1
  153. package/node/components/panel/GridPanelFooter.js +1 -1
  154. package/node/components/panel/GridPanelHeader.js +1 -1
  155. package/node/components/panel/GridPanelWrapper.js +1 -1
  156. package/node/components/toolbar/GridToolbarQuickFilter.js +1 -1
  157. package/node/components/virtualization/GridBottomContainer.js +18 -1
  158. package/node/components/virtualization/GridMainContainer.js +3 -1
  159. package/node/components/virtualization/GridTopContainer.js +1 -1
  160. package/node/components/virtualization/GridVirtualScrollbar.js +1 -7
  161. package/node/components/virtualization/GridVirtualScroller.js +1 -0
  162. package/node/components/virtualization/GridVirtualScrollerFiller.js +3 -4
  163. package/node/hooks/core/useGridRefs.js +4 -0
  164. package/node/hooks/features/columns/gridColumnsUtils.js +3 -2
  165. package/node/hooks/features/dimensions/useGridDimensions.js +2 -2
  166. package/node/hooks/features/editing/useGridCellEditing.js +4 -2
  167. package/node/hooks/features/editing/useGridRowEditing.js +4 -2
  168. package/node/hooks/features/events/useGridEvents.js +1 -0
  169. package/node/hooks/features/filter/gridFilterUtils.js +1 -1
  170. package/node/hooks/features/rowSelection/useGridRowSelection.js +102 -26
  171. package/node/hooks/features/rowSelection/utils.js +160 -1
  172. package/node/hooks/features/rows/gridRowsUtils.js +1 -1
  173. package/node/hooks/features/rows/useGridRowSpanning.js +1 -1
  174. package/node/hooks/features/rows/useGridRows.js +7 -1
  175. package/node/hooks/features/scroll/useGridScroll.js +26 -22
  176. package/node/hooks/features/sorting/gridSortingUtils.js +1 -1
  177. package/node/hooks/features/virtualization/useGridVirtualScroller.js +2 -2
  178. package/node/hooks/utils/useGridApiContext.js +1 -1
  179. package/node/hooks/utils/useGridApiEventHandler.js +1 -1
  180. package/node/hooks/utils/useGridConfiguration.js +1 -1
  181. package/node/hooks/utils/useGridPrivateApiContext.js +1 -1
  182. package/node/index.js +1 -1
  183. package/node/internals/index.js +23 -15
  184. package/node/joy/icons.js +0 -1
  185. package/node/locales/bgBG.js +8 -9
  186. package/node/locales/deDE.js +4 -4
  187. package/node/locales/frFR.js +4 -4
  188. package/node/locales/hrHR.js +69 -46
  189. package/node/locales/jaJP.js +5 -6
  190. package/node/locales/ptPT.js +4 -4
  191. package/node/locales/viVN.js +20 -20
  192. package/node/utils/createSelector.js +6 -0
  193. package/node/utils/domUtils.js +1 -1
  194. package/package.json +4 -4
  195. package/utils/createSelector.js +6 -0
  196. package/utils/domUtils.js +1 -1
@@ -14,22 +14,22 @@ import { gridDimensionsSelector } from "../dimensions/index.js";
14
14
  // Similar to https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollIntoView
15
15
  function scrollIntoView(dimensions) {
16
16
  const {
17
- clientHeight,
18
- scrollTop,
19
- offsetHeight,
20
- offsetTop
17
+ containerSize,
18
+ scrollPosition,
19
+ elementSize,
20
+ elementOffset
21
21
  } = dimensions;
22
- const elementBottom = offsetTop + offsetHeight;
22
+ const elementEnd = elementOffset + elementSize;
23
23
  // Always scroll to top when cell is higher than viewport to avoid scroll jump
24
24
  // See https://github.com/mui/mui-x/issues/4513 and https://github.com/mui/mui-x/issues/4514
25
- if (offsetHeight > clientHeight) {
26
- return offsetTop;
25
+ if (elementSize > containerSize) {
26
+ return elementOffset;
27
27
  }
28
- if (elementBottom - clientHeight > scrollTop) {
29
- return elementBottom - clientHeight;
28
+ if (elementEnd - containerSize > scrollPosition) {
29
+ return elementEnd - containerSize;
30
30
  }
31
- if (offsetTop < scrollTop) {
32
- return offsetTop;
31
+ if (elementOffset < scrollPosition) {
32
+ return elementOffset;
33
33
  }
34
34
  return undefined;
35
35
  }
@@ -47,6 +47,8 @@ export const useGridScroll = (apiRef, props) => {
47
47
  const logger = useGridLogger(apiRef, 'useGridScroll');
48
48
  const colRef = apiRef.current.columnHeadersContainerRef;
49
49
  const virtualScrollerRef = apiRef.current.virtualScrollerRef;
50
+ const virtualScrollbarHorizontalRef = apiRef.current.virtualScrollbarHorizontalRef;
51
+ const virtualScrollbarVerticalRef = apiRef.current.virtualScrollbarVerticalRef;
50
52
  const visibleSortedRows = useGridSelector(apiRef, gridExpandedSortedRowEntriesSelector);
51
53
  const scrollToIndexes = React.useCallback(params => {
52
54
  const dimensions = gridDimensionsSelector(apiRef.current.state);
@@ -73,10 +75,10 @@ export const useGridScroll = (apiRef, props) => {
73
75
  }
74
76
  // When using RTL, `scrollLeft` becomes negative, so we must ensure that we only compare values.
75
77
  scrollCoordinates.left = scrollIntoView({
76
- clientHeight: dimensions.viewportInnerSize.width,
77
- scrollTop: Math.abs(virtualScrollerRef.current.scrollLeft),
78
- offsetHeight: cellWidth,
79
- offsetTop: columnPositions[params.colIndex]
78
+ containerSize: dimensions.viewportOuterSize.width,
79
+ scrollPosition: Math.abs(virtualScrollerRef.current.scrollLeft),
80
+ elementSize: cellWidth,
81
+ elementOffset: columnPositions[params.colIndex]
80
82
  });
81
83
  }
82
84
  if (params.rowIndex !== undefined) {
@@ -86,10 +88,10 @@ export const useGridScroll = (apiRef, props) => {
86
88
  const elementIndex = !props.pagination ? params.rowIndex : params.rowIndex - page * pageSize;
87
89
  const targetOffsetHeight = rowsMeta.positions[elementIndex + 1] ? rowsMeta.positions[elementIndex + 1] - rowsMeta.positions[elementIndex] : rowsMeta.currentPageTotalHeight - rowsMeta.positions[elementIndex];
88
90
  scrollCoordinates.top = scrollIntoView({
89
- clientHeight: dimensions.viewportInnerSize.height,
90
- scrollTop: virtualScrollerRef.current.scrollTop,
91
- offsetHeight: targetOffsetHeight,
92
- offsetTop: rowsMeta.positions[elementIndex]
91
+ containerSize: dimensions.viewportInnerSize.height,
92
+ scrollPosition: virtualScrollerRef.current.scrollTop,
93
+ elementSize: targetOffsetHeight,
94
+ elementOffset: rowsMeta.positions[elementIndex]
93
95
  });
94
96
  }
95
97
  scrollCoordinates = apiRef.current.unstable_applyPipeProcessors('scrollToIndexes', scrollCoordinates, params);
@@ -100,18 +102,20 @@ export const useGridScroll = (apiRef, props) => {
100
102
  return false;
101
103
  }, [logger, apiRef, virtualScrollerRef, props.pagination, visibleSortedRows]);
102
104
  const scroll = React.useCallback(params => {
103
- if (virtualScrollerRef.current && params.left !== undefined && colRef.current) {
105
+ if (virtualScrollerRef.current && virtualScrollbarHorizontalRef.current && params.left !== undefined && colRef.current) {
104
106
  const direction = isRtl ? -1 : 1;
105
107
  colRef.current.scrollLeft = params.left;
106
108
  virtualScrollerRef.current.scrollLeft = direction * params.left;
109
+ virtualScrollbarHorizontalRef.current.scrollLeft = direction * params.left;
107
110
  logger.debug(`Scrolling left: ${params.left}`);
108
111
  }
109
- if (virtualScrollerRef.current && params.top !== undefined) {
112
+ if (virtualScrollerRef.current && virtualScrollbarVerticalRef.current && params.top !== undefined) {
110
113
  virtualScrollerRef.current.scrollTop = params.top;
114
+ virtualScrollbarVerticalRef.current.scrollTop = params.top;
111
115
  logger.debug(`Scrolling top: ${params.top}`);
112
116
  }
113
117
  logger.debug(`Scrolling, updating container, and viewport`);
114
- }, [virtualScrollerRef, isRtl, colRef, logger]);
118
+ }, [virtualScrollerRef, virtualScrollbarHorizontalRef, virtualScrollbarVerticalRef, isRtl, colRef, logger]);
115
119
  const getScrollPosition = React.useCallback(() => {
116
120
  if (!virtualScrollerRef?.current) {
117
121
  return {
@@ -5,17 +5,17 @@ import type { GridValidRowModel, GridRowEntry } from '../../../models/gridRows';
5
5
  * Get the id of the rows after the sorting process.
6
6
  * @category Sorting
7
7
  */
8
- export declare const gridSortedRowIdsSelector: import("../../../utils/createSelector").OutputSelector<GridStateCommunity, import("../../../models/gridRows").GridRowId[]>;
8
+ export declare const gridSortedRowIdsSelector: import("../../..").OutputSelector<GridStateCommunity, import("../../..").GridRowId[]>;
9
9
  /**
10
10
  * Get the id and the model of the rows after the sorting process.
11
11
  * @category Sorting
12
12
  */
13
- export declare const gridSortedRowEntriesSelector: import("../../../utils/createSelector").OutputSelector<GridStateCommunity, GridRowEntry<GridValidRowModel>[]>;
13
+ export declare const gridSortedRowEntriesSelector: import("../../..").OutputSelector<GridStateCommunity, GridRowEntry<GridValidRowModel>[]>;
14
14
  /**
15
15
  * Get the current sorting model.
16
16
  * @category Sorting
17
17
  */
18
- export declare const gridSortModelSelector: import("../../../utils/createSelector").OutputSelector<GridStateCommunity, GridSortModel>;
18
+ export declare const gridSortModelSelector: import("../../..").OutputSelector<GridStateCommunity, GridSortModel>;
19
19
  export type GridSortColumnLookup = Record<string, {
20
20
  sortDirection: GridSortDirection;
21
21
  sortIndex?: number;
@@ -24,4 +24,4 @@ export type GridSortColumnLookup = Record<string, {
24
24
  * @category Sorting
25
25
  * @ignore - do not document.
26
26
  */
27
- export declare const gridSortColumnLookupSelector: import("../../../utils/createSelector").OutputSelector<GridStateCommunity, GridSortColumnLookup>;
27
+ export declare const gridSortColumnLookupSelector: import("../../..").OutputSelector<GridStateCommunity, GridSortColumnLookup>;
@@ -3,7 +3,7 @@ import { warnOnce } from '@mui/x-internals/warning';
3
3
  export const sanitizeSortModel = (model, disableMultipleColumnsSorting) => {
4
4
  if (disableMultipleColumnsSorting && model.length > 1) {
5
5
  if (process.env.NODE_ENV !== 'production') {
6
- warnOnce(['MUI X: The `sortModel` can only contain a single item when the `disableMultipleColumnsSorting` prop is set to `true`.', 'If you are using the community version of the `DataGrid`, this prop is always `true`.'], 'error');
6
+ warnOnce(['MUI X: The `sortModel` can only contain a single item when the `disableMultipleColumnsSorting` prop is set to `true`.', 'If you are using the community version of the Data Grid, this prop is always `true`.'], 'error');
7
7
  }
8
8
  return [model[0]];
9
9
  }
@@ -10,27 +10,27 @@ export declare const gridVirtualizationSelector: (state: GridStateCommunity) =>
10
10
  * @category Virtualization
11
11
  * @deprecated Use `gridVirtualizationColumnEnabledSelector` and `gridVirtualizationRowEnabledSelector`
12
12
  */
13
- export declare const gridVirtualizationEnabledSelector: import("../../../utils/createSelector").OutputSelector<GridStateCommunity, boolean>;
13
+ export declare const gridVirtualizationEnabledSelector: import("../../..").OutputSelector<GridStateCommunity, boolean>;
14
14
  /**
15
15
  * Get the enabled state for column virtualization
16
16
  * @category Virtualization
17
17
  */
18
- export declare const gridVirtualizationColumnEnabledSelector: import("../../../utils/createSelector").OutputSelector<GridStateCommunity, boolean>;
18
+ export declare const gridVirtualizationColumnEnabledSelector: import("../../..").OutputSelector<GridStateCommunity, boolean>;
19
19
  /**
20
20
  * Get the enabled state for row virtualization
21
21
  * @category Virtualization
22
22
  */
23
- export declare const gridVirtualizationRowEnabledSelector: import("../../../utils/createSelector").OutputSelector<GridStateCommunity, boolean>;
23
+ export declare const gridVirtualizationRowEnabledSelector: import("../../..").OutputSelector<GridStateCommunity, boolean>;
24
24
  /**
25
25
  * Get the render context
26
26
  * @category Virtualization
27
27
  * @ignore - do not document.
28
28
  */
29
- export declare const gridRenderContextSelector: import("../../../utils/createSelector").OutputSelector<GridStateCommunity, import("../../../models/params/gridScrollParams").GridRenderContext>;
29
+ export declare const gridRenderContextSelector: import("../../..").OutputSelector<GridStateCommunity, import("../../..").GridRenderContext>;
30
30
  /**
31
31
  * Get the render context, with only columns filled in.
32
32
  * This is cached, so it can be used to only re-render when the column interval changes.
33
33
  * @category Virtualization
34
34
  * @ignore - do not document.
35
35
  */
36
- export declare const gridRenderContextColumnsSelector: import("../../../utils/createSelector").OutputSelector<GridStateCommunity, GridColumnsRenderContext>;
36
+ export declare const gridRenderContextColumnsSelector: import("../../..").OutputSelector<GridStateCommunity, GridColumnsRenderContext>;
@@ -73,8 +73,8 @@ export const useGridVirtualScroller = () => {
73
73
  const gridRootRef = apiRef.current.rootElementRef;
74
74
  const mainRef = apiRef.current.mainElementRef;
75
75
  const scrollerRef = apiRef.current.virtualScrollerRef;
76
- const scrollbarVerticalRef = React.useRef(null);
77
- const scrollbarHorizontalRef = React.useRef(null);
76
+ const scrollbarVerticalRef = apiRef.current.virtualScrollbarVerticalRef;
77
+ const scrollbarHorizontalRef = apiRef.current.virtualScrollbarHorizontalRef;
78
78
  const contentHeight = dimensions.contentSize.height;
79
79
  const columnsTotalWidth = dimensions.columnsTotalWidth;
80
80
  const hasColSpan = useGridSelector(apiRef, gridHasColSpanSelector);
@@ -3,7 +3,7 @@ import { GridApiContext } from "../../components/GridApiContext.js";
3
3
  export function useGridApiContext() {
4
4
  const apiRef = React.useContext(GridApiContext);
5
5
  if (apiRef === undefined) {
6
- throw new Error(['MUI X: Could not find the data grid context.', 'It looks like you rendered your component outside of a DataGrid, DataGridPro or DataGridPremium parent component.', 'This can also happen if you are bundling multiple versions of the data grid.'].join('\n'));
6
+ throw new Error(['MUI X: Could not find the Data Grid context.', 'It looks like you rendered your component outside of a DataGrid, DataGridPro or DataGridPremium parent component.', 'This can also happen if you are bundling multiple versions of the Data Grid.'].join('\n'));
7
7
  }
8
8
  return apiRef;
9
9
  }
@@ -5,7 +5,7 @@ import { CleanupTracking } from '../../utils/cleanupTracking/CleanupTracking';
5
5
  import type { GridApiCommon } from '../../models';
6
6
  /**
7
7
  * Signal to the underlying logic what version of the public component API
8
- * of the data grid is exposed.
8
+ * of the Data Grid is exposed.
9
9
  */
10
10
  declare enum GridSignature {
11
11
  DataGrid = "DataGrid",
@@ -3,7 +3,7 @@ import { TimerBasedCleanupTracking } from "../../utils/cleanupTracking/TimerBase
3
3
  import { FinalizationRegistryBasedCleanupTracking } from "../../utils/cleanupTracking/FinalizationRegistryBasedCleanupTracking.js";
4
4
  /**
5
5
  * Signal to the underlying logic what version of the public component API
6
- * of the data grid is exposed.
6
+ * of the Data Grid is exposed.
7
7
  */
8
8
  var GridSignature = /*#__PURE__*/function (GridSignature) {
9
9
  GridSignature["DataGrid"] = "DataGrid";
@@ -3,7 +3,7 @@ import { GridConfigurationContext } from "../../components/GridConfigurationCont
3
3
  export const useGridConfiguration = () => {
4
4
  const configuration = React.useContext(GridConfigurationContext);
5
5
  if (configuration === undefined) {
6
- throw new Error(['MUI X: Could not find the data grid configuration context.', 'It looks like you rendered your component outside of a DataGrid, DataGridPro or DataGridPremium parent component.', 'This can also happen if you are bundling multiple versions of the data grid.'].join('\n'));
6
+ throw new Error(['MUI X: Could not find the Data Grid configuration context.', 'It looks like you rendered your component outside of a DataGrid, DataGridPro or DataGridPremium parent component.', 'This can also happen if you are bundling multiple versions of the Data Grid.'].join('\n'));
7
7
  }
8
8
  return configuration;
9
9
  };
@@ -6,7 +6,7 @@ if (process.env.NODE_ENV !== 'production') {
6
6
  export function useGridPrivateApiContext() {
7
7
  const privateApiRef = React.useContext(GridPrivateApiContext);
8
8
  if (privateApiRef === undefined) {
9
- throw new Error(['MUI X: Could not find the data grid private context.', 'It looks like you rendered your component outside of a DataGrid, DataGridPro or DataGridPremium parent component.', 'This can also happen if you are bundling multiple versions of the data grid.'].join('\n'));
9
+ throw new Error(['MUI X: Could not find the Data Grid private context.', 'It looks like you rendered your component outside of a DataGrid, DataGridPro or DataGridPremium parent component.', 'This can also happen if you are bundling multiple versions of the Data Grid.'].join('\n'));
10
10
  }
11
11
  return privateApiRef;
12
12
  }
@@ -2,7 +2,7 @@ import * as React from 'react';
2
2
  import { DataGridProcessedProps } from '../../models/props/DataGridProps';
3
3
  import type { GridApiCommon, GridRowEntry } from '../../models';
4
4
  export declare const getVisibleRows: <Api extends GridApiCommon>(apiRef: React.MutableRefObject<Api>, props: Pick<DataGridProcessedProps, "pagination" | "paginationMode">) => {
5
- rows: GridRowEntry<import("../../models").GridValidRowModel>[];
5
+ rows: GridRowEntry<import("../..").GridValidRowModel>[];
6
6
  range: {
7
7
  firstRowIndex: number;
8
8
  lastRowIndex: number;
@@ -16,7 +16,7 @@ export declare const getVisibleRows: <Api extends GridApiCommon>(apiRef: React.M
16
16
  * - If the row tree is flat, it only contains up to `state.pageSize` rows.
17
17
  */
18
18
  export declare const useGridVisibleRows: <Api extends GridApiCommon>(apiRef: React.MutableRefObject<Api>, props: Pick<DataGridProcessedProps, "pagination" | "paginationMode">) => {
19
- rows: GridRowEntry<import("../../models").GridValidRowModel>[];
19
+ rows: GridRowEntry<import("../..").GridValidRowModel>[];
20
20
  range: {
21
21
  firstRowIndex: number;
22
22
  lastRowIndex: number;
package/index.d.ts CHANGED
@@ -27,10 +27,10 @@ export { GridColumnMenu, GRID_COLUMN_MENU_SLOTS, GRID_COLUMN_MENU_SLOT_PROPS, }
27
27
  */
28
28
  export type GridApi = GridApiCommunity;
29
29
  /**
30
- * The state of `DataGrid`.
30
+ * The state of Data Grid.
31
31
  */
32
32
  export type GridState = GridStateCommunity;
33
33
  /**
34
- * The initial state of `DataGrid`.
34
+ * The initial state of Data Grid.
35
35
  */
36
36
  export type GridInitialState = GridInitialStateCommunity;
package/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-data-grid v7.18.0
2
+ * @mui/x-data-grid v7.20.0
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -29,9 +29,9 @@ export { GridColumnMenu, GRID_COLUMN_MENU_SLOTS, GRID_COLUMN_MENU_SLOT_PROPS } f
29
29
  */
30
30
 
31
31
  /**
32
- * The state of `DataGrid`.
32
+ * The state of Data Grid.
33
33
  */
34
34
 
35
35
  /**
36
- * The initial state of `DataGrid`.
36
+ * The initial state of Data Grid.
37
37
  */
@@ -65,6 +65,7 @@ export type { GridRestoreStatePreProcessingContext } from '../hooks/features/sta
65
65
  export { useGridVirtualScroller, EMPTY_DETAIL_PANELS, } from '../hooks/features/virtualization/useGridVirtualScroller';
66
66
  export * from '../hooks/features/virtualization';
67
67
  export { useGridColumnResize, columnResizeStateInitializer, } from '../hooks/features/columnResize/useGridColumnResize';
68
+ export { ROW_SELECTION_PROPAGATION_DEFAULT } from '../hooks/features/rowSelection/utils';
68
69
  export { useTimeout } from '../hooks/utils/useTimeout';
69
70
  export { useGridVisibleRows, getVisibleRows } from '../hooks/utils/useGridVisibleRows';
70
71
  export { useGridInitializeState } from '../hooks/utils/useGridInitializeState';
@@ -53,6 +53,7 @@ export { useGridStatePersistence } from "../hooks/features/statePersistence/useG
53
53
  export { useGridVirtualScroller, EMPTY_DETAIL_PANELS } from "../hooks/features/virtualization/useGridVirtualScroller.js";
54
54
  export * from "../hooks/features/virtualization/index.js";
55
55
  export { useGridColumnResize, columnResizeStateInitializer } from "../hooks/features/columnResize/useGridColumnResize.js";
56
+ export { ROW_SELECTION_PROPAGATION_DEFAULT } from "../hooks/features/rowSelection/utils.js";
56
57
  export { useTimeout } from "../hooks/utils/useTimeout.js";
57
58
  export { useGridVisibleRows, getVisibleRows } from "../hooks/utils/useGridVisibleRows.js";
58
59
  export { useGridInitializeState } from "../hooks/utils/useGridInitializeState.js";
package/joy/icons.js CHANGED
@@ -34,7 +34,6 @@ function createSvgIcon(path, displayName) {
34
34
  } = _ref,
35
35
  props = _objectWithoutPropertiesLoose(_ref, _excluded);
36
36
  return /*#__PURE__*/_jsx(SvgIcon, _extends({
37
- "data-testid": `${displayName}Icon`,
38
37
  ref: ref,
39
38
  fill: "none",
40
39
  stroke: "currentColor",
package/locales/bgBG.js CHANGED
@@ -30,11 +30,10 @@ const bgBGGrid = {
30
30
  toolbarExportPrint: 'Принтиране',
31
31
  toolbarExportExcel: 'Изтегли като Excel',
32
32
  // Columns management text
33
- // columnsManagementSearchTitle: 'Search',
34
- // columnsManagementNoColumns: 'No columns',
35
- // columnsManagementShowHideAllText: 'Show/Hide All',
36
- // columnsManagementReset: 'Reset',
37
-
33
+ columnsManagementSearchTitle: 'Търсене',
34
+ columnsManagementNoColumns: 'Няма колони',
35
+ columnsManagementShowHideAllText: 'Покажи/Скрий Всичко',
36
+ columnsManagementReset: 'Нулирай',
38
37
  // Filter panel text
39
38
  filterPanelAddFilter: 'Добави Филтър',
40
39
  filterPanelRemoveAll: 'Премахни всички',
@@ -48,9 +47,9 @@ const bgBGGrid = {
48
47
  filterPanelInputPlaceholder: 'Стойност на филтъра',
49
48
  // Filter operators text
50
49
  filterOperatorContains: 'съдържа',
51
- // filterOperatorDoesNotContain: 'does not contain',
50
+ filterOperatorDoesNotContain: 'не съдържа',
52
51
  filterOperatorEquals: 'равно',
53
- // filterOperatorDoesNotEqual: 'does not equal',
52
+ filterOperatorDoesNotEqual: 'не е равно',
54
53
  filterOperatorStartsWith: 'започва с',
55
54
  filterOperatorEndsWith: 'завършва с',
56
55
  filterOperatorIs: 'е',
@@ -70,9 +69,9 @@ const bgBGGrid = {
70
69
  'filterOperator<=': '<=',
71
70
  // Header filter operators text
72
71
  headerFilterOperatorContains: 'Съдържа',
73
- // headerFilterOperatorDoesNotContain: 'Does not contain',
72
+ headerFilterOperatorDoesNotContain: 'Не съдържа',
74
73
  headerFilterOperatorEquals: 'Равнo',
75
- // headerFilterOperatorDoesNotEqual: 'Does not equal',
74
+ headerFilterOperatorDoesNotEqual: 'Не е равно',
76
75
  headerFilterOperatorStartsWith: 'Започва с',
77
76
  headerFilterOperatorEndsWith: 'Завършва с',
78
77
  headerFilterOperatorIs: 'Равно е на',
package/locales/deDE.js CHANGED
@@ -47,9 +47,9 @@ const deDEGrid = {
47
47
  filterPanelInputPlaceholder: 'Wert filtern',
48
48
  // Filter operators text
49
49
  filterOperatorContains: 'enthält',
50
- // filterOperatorDoesNotContain: 'does not contain',
50
+ filterOperatorDoesNotContain: 'enthält nicht',
51
51
  filterOperatorEquals: 'ist gleich',
52
- // filterOperatorDoesNotEqual: 'does not equal',
52
+ filterOperatorDoesNotEqual: 'ist ungleich',
53
53
  filterOperatorStartsWith: 'beginnt mit',
54
54
  filterOperatorEndsWith: 'endet mit',
55
55
  filterOperatorIs: 'ist',
@@ -69,9 +69,9 @@ const deDEGrid = {
69
69
  'filterOperator<=': '<=',
70
70
  // Header filter operators text
71
71
  headerFilterOperatorContains: 'Enthält',
72
- // headerFilterOperatorDoesNotContain: 'Does not contain',
72
+ headerFilterOperatorDoesNotContain: 'Enthält nicht',
73
73
  headerFilterOperatorEquals: 'Gleich',
74
- // headerFilterOperatorDoesNotEqual: 'Does not equal',
74
+ headerFilterOperatorDoesNotEqual: 'Ungleich',
75
75
  headerFilterOperatorStartsWith: 'Beginnt mit',
76
76
  headerFilterOperatorEndsWith: 'Endet mit',
77
77
  headerFilterOperatorIs: 'Ist',
package/locales/frFR.js CHANGED
@@ -47,9 +47,9 @@ const frFRGrid = {
47
47
  filterPanelInputPlaceholder: 'Filtrer la valeur',
48
48
  // Filter operators text
49
49
  filterOperatorContains: 'contient',
50
- // filterOperatorDoesNotContain: 'does not contain',
50
+ filterOperatorDoesNotContain: 'ne contient pas',
51
51
  filterOperatorEquals: 'est égal à',
52
- // filterOperatorDoesNotEqual: 'does not equal',
52
+ filterOperatorDoesNotEqual: "n'est pas égal à",
53
53
  filterOperatorStartsWith: 'commence par',
54
54
  filterOperatorEndsWith: 'se termine par',
55
55
  filterOperatorIs: 'est',
@@ -69,9 +69,9 @@ const frFRGrid = {
69
69
  'filterOperator<=': '<=',
70
70
  // Header filter operators text
71
71
  headerFilterOperatorContains: 'Contient',
72
- // headerFilterOperatorDoesNotContain: 'Does not contain',
72
+ headerFilterOperatorDoesNotContain: 'Ne contient pas',
73
73
  headerFilterOperatorEquals: 'Est égal à',
74
- // headerFilterOperatorDoesNotEqual: 'Does not equal',
74
+ headerFilterOperatorDoesNotEqual: "N'est pas égal à",
75
75
  headerFilterOperatorStartsWith: 'Commence par',
76
76
  headerFilterOperatorEndsWith: 'Se termine par',
77
77
  headerFilterOperatorIs: 'Est',
package/locales/hrHR.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const hrHR: import("../utils/getGridLocalization").Localization;
1
+ export declare const hrHR: import("../internals").Localization;
package/locales/hrHR.js CHANGED
@@ -7,50 +7,57 @@ const hrHRGrid = {
7
7
  // Density selector toolbar button text
8
8
  toolbarDensity: 'Gustoća',
9
9
  toolbarDensityLabel: 'Gustoća',
10
- toolbarDensityCompact: 'Kompaktan',
11
- toolbarDensityStandard: 'Standard',
10
+ toolbarDensityCompact: 'Kompaktno',
11
+ toolbarDensityStandard: 'Standardno',
12
12
  toolbarDensityComfortable: 'Udobno',
13
13
  // Columns selector toolbar button text
14
14
  toolbarColumns: 'Stupci',
15
15
  toolbarColumnsLabel: 'Odaberite stupce',
16
16
  // Filters toolbar button text
17
17
  toolbarFilters: 'Filteri',
18
- toolbarFiltersLabel: 'Prikaži filtre',
19
- toolbarFiltersTooltipHide: 'Sakrij filtre',
20
- toolbarFiltersTooltipShow: 'Prikaži filtre',
21
- toolbarFiltersTooltipActive: count => count !== 1 ? `${count} aktivnih filtara` : `${count} aktivni filter`,
18
+ toolbarFiltersLabel: 'Prikaži filtere',
19
+ toolbarFiltersTooltipHide: 'Sakrij filtere',
20
+ toolbarFiltersTooltipShow: 'Prikaži filtere',
21
+ toolbarFiltersTooltipActive: count => {
22
+ if (count === 1) {
23
+ return `${count} aktivan filter`;
24
+ }
25
+ if (count < 5) {
26
+ return `${count} aktivna filtera`;
27
+ }
28
+ return `${count} aktivnih filtera`;
29
+ },
22
30
  // Quick filter toolbar field
23
31
  toolbarQuickFilterPlaceholder: 'Traži…',
24
32
  toolbarQuickFilterLabel: 'traži',
25
- toolbarQuickFilterDeleteIconLabel: 'Čisto',
33
+ toolbarQuickFilterDeleteIconLabel: 'Obriši',
26
34
  // Export selector toolbar button text
27
35
  toolbarExport: 'Izvoz',
28
36
  toolbarExportLabel: 'Izvoz',
29
37
  toolbarExportCSV: 'Preuzmi kao CSV',
30
- toolbarExportPrint: 'Ispis',
31
- toolbarExportExcel: 'Preuzmite kao Excel',
38
+ toolbarExportPrint: 'Štampaj',
39
+ toolbarExportExcel: 'Preuzmi kao Excel',
32
40
  // Columns management text
33
- // columnsManagementSearchTitle: 'Search',
34
- // columnsManagementNoColumns: 'No columns',
35
- // columnsManagementShowHideAllText: 'Show/Hide All',
36
- // columnsManagementReset: 'Reset',
37
-
41
+ columnsManagementSearchTitle: 'Traži',
42
+ columnsManagementNoColumns: 'Nema stupaca',
43
+ columnsManagementShowHideAllText: 'Prikaži/Sakrij sve',
44
+ columnsManagementReset: 'Ponovno namjesti',
38
45
  // Filter panel text
39
- filterPanelAddFilter: 'Dodajte filter',
40
- filterPanelRemoveAll: 'Ukloniti sve',
41
- filterPanelDeleteIconLabel: 'Izbrisati',
46
+ filterPanelAddFilter: 'Dodaj filter',
47
+ filterPanelRemoveAll: 'Ukloni sve',
48
+ filterPanelDeleteIconLabel: 'Obriši',
42
49
  filterPanelLogicOperator: 'Logički operator',
43
- filterPanelOperator: 'Operater',
50
+ filterPanelOperator: 'Operator',
44
51
  filterPanelOperatorAnd: 'I',
45
52
  filterPanelOperatorOr: 'Ili',
46
- filterPanelColumns: 'Stupci',
53
+ filterPanelColumns: 'Stupac',
47
54
  filterPanelInputLabel: 'Vrijednost',
48
- filterPanelInputPlaceholder: 'Vrijednost filtra',
55
+ filterPanelInputPlaceholder: 'Vrijednost filtera',
49
56
  // Filter operators text
50
57
  filterOperatorContains: 'sadrži',
51
- // filterOperatorDoesNotContain: 'does not contain',
52
- filterOperatorEquals: 'jednaki',
53
- // filterOperatorDoesNotEqual: 'does not equal',
58
+ filterOperatorDoesNotContain: 'ne sadrži',
59
+ filterOperatorEquals: 'je jednak',
60
+ filterOperatorDoesNotEqual: 'nije jednak',
54
61
  filterOperatorStartsWith: 'počinje sa',
55
62
  filterOperatorEndsWith: 'završava sa',
56
63
  filterOperatorIs: 'je',
@@ -59,8 +66,8 @@ const hrHRGrid = {
59
66
  filterOperatorOnOrAfter: 'je na ili poslije',
60
67
  filterOperatorBefore: 'je prije',
61
68
  filterOperatorOnOrBefore: 'je na ili prije',
62
- filterOperatorIsEmpty: 'prazno je',
63
- filterOperatorIsNotEmpty: 'nije prazna',
69
+ filterOperatorIsEmpty: 'je prazno',
70
+ filterOperatorIsNotEmpty: 'nije prazno',
64
71
  filterOperatorIsAnyOf: 'je bilo koji od',
65
72
  'filterOperator=': '=',
66
73
  'filterOperator!=': '!=',
@@ -70,20 +77,20 @@ const hrHRGrid = {
70
77
  'filterOperator<=': '<=',
71
78
  // Header filter operators text
72
79
  headerFilterOperatorContains: 'Sadrži',
73
- // headerFilterOperatorDoesNotContain: 'Does not contain',
80
+ headerFilterOperatorDoesNotContain: 'Ne sadrži',
74
81
  headerFilterOperatorEquals: 'Jednako',
75
- // headerFilterOperatorDoesNotEqual: 'Does not equal',
82
+ headerFilterOperatorDoesNotEqual: 'Nije jednako',
76
83
  headerFilterOperatorStartsWith: 'Počinje sa',
77
- headerFilterOperatorEndsWith: 'Završava s',
84
+ headerFilterOperatorEndsWith: 'Završava sa',
78
85
  headerFilterOperatorIs: 'Je',
79
86
  headerFilterOperatorNot: 'Nije',
80
87
  headerFilterOperatorAfter: 'Je poslije',
81
88
  headerFilterOperatorOnOrAfter: 'Je uključeno ili poslije',
82
- headerFilterOperatorBefore: 'Je li prije',
83
- headerFilterOperatorOnOrBefore: 'Uključeno je ili prije',
84
- headerFilterOperatorIsEmpty: 'Prazno je',
85
- headerFilterOperatorIsNotEmpty: 'Nije prazna',
86
- headerFilterOperatorIsAnyOf: 'Je li bilo koji od',
89
+ headerFilterOperatorBefore: 'Je prije',
90
+ headerFilterOperatorOnOrBefore: 'Je uključeno ili prije',
91
+ headerFilterOperatorIsEmpty: 'Je prazno',
92
+ headerFilterOperatorIsNotEmpty: 'Nije prazno',
93
+ headerFilterOperatorIsAnyOf: 'Je bilo koji od',
87
94
  'headerFilterOperator=': 'Jednako',
88
95
  'headerFilterOperator!=': 'Nije jednako',
89
96
  'headerFilterOperator>': 'Veći od',
@@ -92,32 +99,48 @@ const hrHRGrid = {
92
99
  'headerFilterOperator<=': 'Manje od ili jednako',
93
100
  // Filter values text
94
101
  filterValueAny: 'bilo koji',
95
- filterValueTrue: 'pravi',
96
- filterValueFalse: 'lažno',
102
+ filterValueTrue: 'tačno',
103
+ filterValueFalse: 'netačno',
97
104
  // Column menu text
98
- columnMenuLabel: 'Jelovnik ',
105
+ columnMenuLabel: 'Izbornik',
99
106
  columnMenuShowColumns: 'Prikaži stupce',
100
107
  columnMenuManageColumns: 'Upravljanje stupcima',
101
- columnMenuFilter: 'filtar',
108
+ columnMenuFilter: 'Filter',
102
109
  columnMenuHideColumn: 'Sakrij stupac',
103
110
  columnMenuUnsort: 'Poništi sortiranje',
104
111
  columnMenuSortAsc: 'Poredaj uzlazno',
105
- columnMenuSortDesc: 'Poredaj silaznim redom',
112
+ columnMenuSortDesc: 'Poredaj silazno',
106
113
  // Column header text
107
- columnHeaderFiltersTooltipActive: count => count !== 1 ? `${count} aktivnih filtara` : `${count} aktivni filter`,
108
- columnHeaderFiltersLabel: 'Prikaži filtre',
109
- columnHeaderSortIconLabel: 'Vrsta',
114
+ columnHeaderFiltersTooltipActive: count => {
115
+ if (count === 1) {
116
+ return `${count} aktivan filter`;
117
+ }
118
+ if (count < 5) {
119
+ return `${count} aktivna filtera`;
120
+ }
121
+ return `${count} aktivnih filtera`;
122
+ },
123
+ columnHeaderFiltersLabel: 'Prikaži filtere',
124
+ columnHeaderSortIconLabel: 'Poredaj',
110
125
  // Rows selected footer text
111
- footerRowSelected: count => count !== 1 ? `Odabrano je ${count.toLocaleString()} redaka` : `${count.toLocaleString()} redak odabran`,
126
+ footerRowSelected: count => {
127
+ if (count === 1) {
128
+ return `Odabran je ${count.toLocaleString()} redak`;
129
+ }
130
+ if (count < 5) {
131
+ return `Odabrana su ${count.toLocaleString()} retka`;
132
+ }
133
+ return `Odabrano je ${count.toLocaleString()} redaka`;
134
+ },
112
135
  // Total row amount footer text
113
136
  footerTotalRows: 'Ukupno redaka:',
114
137
  // Total visible row amount footer text
115
138
  footerTotalVisibleRows: (visibleCount, totalCount) => `${visibleCount.toLocaleString()} od ${totalCount.toLocaleString()}`,
116
139
  // Checkbox selection text
117
- checkboxSelectionHeaderName: 'Odabir potvrdnog okvira',
140
+ checkboxSelectionHeaderName: 'Odabir redaka',
118
141
  checkboxSelectionSelectAllRows: 'Odaberite sve retke',
119
142
  checkboxSelectionUnselectAllRows: 'Poništi odabir svih redaka',
120
- checkboxSelectionSelectRow: 'Odaberite red',
143
+ checkboxSelectionSelectRow: 'Odaberite redak',
121
144
  checkboxSelectionUnselectRow: 'Poništi odabir retka',
122
145
  // Boolean cell text
123
146
  booleanCellTrueLabel: 'Da',
@@ -129,7 +152,7 @@ const hrHRGrid = {
129
152
  pinToRight: 'Prikvači desno',
130
153
  unpin: 'Otkvači',
131
154
  // Tree Data
132
- treeDataGroupingHeaderName: 'Group',
155
+ treeDataGroupingHeaderName: 'Skupina',
133
156
  treeDataExpand: 'vidjeti djecu',
134
157
  treeDataCollapse: 'sakriti djecu',
135
158
  // Grouping columns
@@ -139,7 +162,7 @@ const hrHRGrid = {
139
162
  // Master/detail
140
163
  detailPanelToggle: 'Prebacivanje ploče s detaljima',
141
164
  expandDetailPanel: 'Proširiti',
142
- collapseDetailPanel: 'Kolaps',
165
+ collapseDetailPanel: 'Skupiti',
143
166
  // Row reordering text
144
167
  rowReorderingHeaderName: 'Promjena redoslijeda',
145
168
  // Aggregation