@mui/x-data-grid 7.18.0 → 7.19.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 (143) hide show
  1. package/CHANGELOG.md +110 -0
  2. package/DataGrid/DataGrid.js +5 -0
  3. package/components/cell/GridCell.js +7 -8
  4. package/components/columnHeaders/GridBaseColumnHeaders.js +1 -1
  5. package/components/columnSelection/GridCellCheckboxRenderer.js +12 -4
  6. package/components/columnSelection/GridHeaderCheckbox.d.ts +1 -1
  7. package/components/containers/GridRoot.js +1 -1
  8. package/components/containers/GridRootStyles.js +32 -23
  9. package/components/containers/GridToolbarContainer.js +1 -1
  10. package/components/menu/GridMenu.js +1 -1
  11. package/components/panel/GridPanel.d.ts +1 -1
  12. package/components/panel/GridPanel.js +1 -1
  13. package/components/panel/GridPanelContent.js +1 -1
  14. package/components/panel/GridPanelFooter.js +1 -1
  15. package/components/panel/GridPanelHeader.js +1 -1
  16. package/components/panel/GridPanelWrapper.js +1 -1
  17. package/components/panel/filterPanel/filterPanelUtils.d.ts +1 -1
  18. package/components/toolbar/GridToolbarQuickFilter.js +1 -1
  19. package/components/virtualization/GridBottomContainer.d.ts +1 -1
  20. package/components/virtualization/GridBottomContainer.js +18 -1
  21. package/components/virtualization/GridMainContainer.js +3 -1
  22. package/components/virtualization/GridTopContainer.d.ts +1 -1
  23. package/components/virtualization/GridTopContainer.js +1 -1
  24. package/components/virtualization/GridVirtualScrollbar.js +1 -7
  25. package/components/virtualization/GridVirtualScroller.js +1 -0
  26. package/components/virtualization/GridVirtualScrollerFiller.js +3 -4
  27. package/hooks/features/columnGrouping/gridColumnGroupsSelector.d.ts +4 -4
  28. package/hooks/features/columnHeaders/useGridColumnHeaders.d.ts +1 -1
  29. package/hooks/features/columnResize/columnResizeSelector.d.ts +1 -1
  30. package/hooks/features/columns/gridColumnsSelector.d.ts +12 -12
  31. package/hooks/features/columns/gridColumnsUtils.js +3 -2
  32. package/hooks/features/density/densitySelector.d.ts +1 -1
  33. package/hooks/features/editing/useGridCellEditing.js +1 -1
  34. package/hooks/features/editing/useGridRowEditing.js +1 -1
  35. package/hooks/features/filter/gridFilterSelector.d.ts +17 -17
  36. package/hooks/features/focus/gridFocusStateSelector.d.ts +8 -8
  37. package/hooks/features/headerFiltering/gridHeaderFilteringSelectors.d.ts +3 -3
  38. package/hooks/features/keyboardNavigation/utils.d.ts +1 -1
  39. package/hooks/features/pagination/gridPaginationSelector.d.ts +9 -9
  40. package/hooks/features/rowSelection/gridRowSelectionSelector.d.ts +3 -3
  41. package/hooks/features/rowSelection/useGridRowSelection.d.ts +1 -1
  42. package/hooks/features/rowSelection/useGridRowSelection.js +105 -29
  43. package/hooks/features/rowSelection/utils.d.ts +10 -0
  44. package/hooks/features/rowSelection/utils.js +156 -1
  45. package/hooks/features/rows/gridRowSpanningSelectors.d.ts +3 -3
  46. package/hooks/features/rows/gridRowsSelector.d.ts +14 -14
  47. package/hooks/features/rows/useGridRows.d.ts +1 -1
  48. package/hooks/features/rows/useGridRows.js +7 -1
  49. package/hooks/features/scroll/useGridScroll.js +19 -19
  50. package/hooks/features/sorting/gridSortingSelector.d.ts +4 -4
  51. package/hooks/features/virtualization/gridVirtualizationSelectors.d.ts +5 -5
  52. package/hooks/utils/useGridVisibleRows.d.ts +2 -2
  53. package/index.js +1 -1
  54. package/internals/index.d.ts +1 -0
  55. package/internals/index.js +1 -0
  56. package/locales/bgBG.js +8 -9
  57. package/locales/deDE.js +4 -4
  58. package/locales/frFR.js +4 -4
  59. package/locales/hrHR.d.ts +1 -1
  60. package/locales/hrHR.js +69 -46
  61. package/locales/jaJP.js +1 -2
  62. package/locales/ptPT.d.ts +1 -1
  63. package/locales/ptPT.js +4 -4
  64. package/locales/viVN.js +20 -20
  65. package/locales/zhHK.d.ts +1 -1
  66. package/models/gridRowSelectionModel.d.ts +4 -0
  67. package/models/props/DataGridProps.d.ts +20 -1
  68. package/modern/DataGrid/DataGrid.js +5 -0
  69. package/modern/components/cell/GridCell.js +7 -8
  70. package/modern/components/columnHeaders/GridBaseColumnHeaders.js +1 -1
  71. package/modern/components/columnSelection/GridCellCheckboxRenderer.js +12 -4
  72. package/modern/components/containers/GridRoot.js +1 -1
  73. package/modern/components/containers/GridRootStyles.js +32 -23
  74. package/modern/components/containers/GridToolbarContainer.js +1 -1
  75. package/modern/components/menu/GridMenu.js +1 -1
  76. package/modern/components/panel/GridPanel.js +1 -1
  77. package/modern/components/panel/GridPanelContent.js +1 -1
  78. package/modern/components/panel/GridPanelFooter.js +1 -1
  79. package/modern/components/panel/GridPanelHeader.js +1 -1
  80. package/modern/components/panel/GridPanelWrapper.js +1 -1
  81. package/modern/components/toolbar/GridToolbarQuickFilter.js +1 -1
  82. package/modern/components/virtualization/GridBottomContainer.js +18 -1
  83. package/modern/components/virtualization/GridMainContainer.js +3 -1
  84. package/modern/components/virtualization/GridTopContainer.js +1 -1
  85. package/modern/components/virtualization/GridVirtualScrollbar.js +1 -7
  86. package/modern/components/virtualization/GridVirtualScroller.js +1 -0
  87. package/modern/components/virtualization/GridVirtualScrollerFiller.js +3 -4
  88. package/modern/hooks/features/columns/gridColumnsUtils.js +3 -2
  89. package/modern/hooks/features/editing/useGridCellEditing.js +1 -1
  90. package/modern/hooks/features/editing/useGridRowEditing.js +1 -1
  91. package/modern/hooks/features/rowSelection/useGridRowSelection.js +105 -29
  92. package/modern/hooks/features/rowSelection/utils.js +156 -1
  93. package/modern/hooks/features/rows/useGridRows.js +7 -1
  94. package/modern/hooks/features/scroll/useGridScroll.js +19 -19
  95. package/modern/index.js +1 -1
  96. package/modern/internals/index.js +1 -0
  97. package/modern/locales/bgBG.js +8 -9
  98. package/modern/locales/deDE.js +4 -4
  99. package/modern/locales/frFR.js +4 -4
  100. package/modern/locales/hrHR.js +69 -46
  101. package/modern/locales/jaJP.js +1 -2
  102. package/modern/locales/ptPT.js +4 -4
  103. package/modern/locales/viVN.js +20 -20
  104. package/modern/utils/createSelector.js +6 -0
  105. package/node/DataGrid/DataGrid.js +5 -0
  106. package/node/components/cell/GridCell.js +7 -8
  107. package/node/components/columnHeaders/GridBaseColumnHeaders.js +1 -1
  108. package/node/components/columnSelection/GridCellCheckboxRenderer.js +12 -4
  109. package/node/components/containers/GridRoot.js +1 -1
  110. package/node/components/containers/GridRootStyles.js +32 -23
  111. package/node/components/containers/GridToolbarContainer.js +1 -1
  112. package/node/components/menu/GridMenu.js +1 -1
  113. package/node/components/panel/GridPanel.js +1 -1
  114. package/node/components/panel/GridPanelContent.js +1 -1
  115. package/node/components/panel/GridPanelFooter.js +1 -1
  116. package/node/components/panel/GridPanelHeader.js +1 -1
  117. package/node/components/panel/GridPanelWrapper.js +1 -1
  118. package/node/components/toolbar/GridToolbarQuickFilter.js +1 -1
  119. package/node/components/virtualization/GridBottomContainer.js +18 -1
  120. package/node/components/virtualization/GridMainContainer.js +3 -1
  121. package/node/components/virtualization/GridTopContainer.js +1 -1
  122. package/node/components/virtualization/GridVirtualScrollbar.js +1 -7
  123. package/node/components/virtualization/GridVirtualScroller.js +1 -0
  124. package/node/components/virtualization/GridVirtualScrollerFiller.js +3 -4
  125. package/node/hooks/features/columns/gridColumnsUtils.js +3 -2
  126. package/node/hooks/features/editing/useGridCellEditing.js +1 -1
  127. package/node/hooks/features/editing/useGridRowEditing.js +1 -1
  128. package/node/hooks/features/rowSelection/useGridRowSelection.js +102 -26
  129. package/node/hooks/features/rowSelection/utils.js +160 -1
  130. package/node/hooks/features/rows/useGridRows.js +7 -1
  131. package/node/hooks/features/scroll/useGridScroll.js +19 -19
  132. package/node/index.js +1 -1
  133. package/node/internals/index.js +23 -15
  134. package/node/locales/bgBG.js +8 -9
  135. package/node/locales/deDE.js +4 -4
  136. package/node/locales/frFR.js +4 -4
  137. package/node/locales/hrHR.js +69 -46
  138. package/node/locales/jaJP.js +1 -2
  139. package/node/locales/ptPT.js +4 -4
  140. package/node/locales/viVN.js +20 -20
  141. package/node/utils/createSelector.js +6 -0
  142. package/package.json +1 -1
  143. package/utils/createSelector.js +6 -0
@@ -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";
@@ -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: 'Равно е на',
@@ -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',
@@ -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',
@@ -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
@@ -33,8 +33,7 @@ const jaJPGrid = {
33
33
  columnsManagementSearchTitle: '検索',
34
34
  columnsManagementNoColumns: 'カラムなし',
35
35
  columnsManagementShowHideAllText: 'すべて表示/非表示',
36
- // columnsManagementReset: 'Reset',
37
-
36
+ columnsManagementReset: 'リセット',
38
37
  // Filter panel text
39
38
  filterPanelAddFilter: 'フィルター追加',
40
39
  filterPanelRemoveAll: 'すべて削除',
@@ -47,9 +47,9 @@ const ptPTGrid = {
47
47
  filterPanelInputPlaceholder: 'Valor do filtro',
48
48
  // Filter operators text
49
49
  filterOperatorContains: 'contém',
50
- // filterOperatorDoesNotContain: 'does not contain',
50
+ filterOperatorDoesNotContain: 'não contém',
51
51
  filterOperatorEquals: 'é igual a',
52
- // filterOperatorDoesNotEqual: 'does not equal',
52
+ filterOperatorDoesNotEqual: 'não é igual a',
53
53
  filterOperatorStartsWith: 'começa com',
54
54
  filterOperatorEndsWith: 'termina com',
55
55
  filterOperatorIs: 'é',
@@ -69,9 +69,9 @@ const ptPTGrid = {
69
69
  'filterOperator<=': '<=',
70
70
  // Header filter operators text
71
71
  headerFilterOperatorContains: 'Contém',
72
- // headerFilterOperatorDoesNotContain: 'Does not contain',
72
+ headerFilterOperatorDoesNotContain: 'Não contém',
73
73
  headerFilterOperatorEquals: 'É igual a',
74
- // headerFilterOperatorDoesNotEqual: 'Does not equal',
74
+ headerFilterOperatorDoesNotEqual: 'Não é igual',
75
75
  headerFilterOperatorStartsWith: 'Começa com',
76
76
  headerFilterOperatorEndsWith: 'Termina com',
77
77
  headerFilterOperatorIs: 'É',
@@ -46,21 +46,21 @@ const viVNGrid = {
46
46
  filterPanelInputLabel: 'Giá trị',
47
47
  filterPanelInputPlaceholder: 'Lọc giá trị',
48
48
  // Filter operators text
49
- filterOperatorContains: 'Chứa',
50
- // filterOperatorDoesNotContain: 'does not contain',
51
- filterOperatorEquals: 'Bằng',
52
- // filterOperatorDoesNotEqual: 'does not equal',
53
- filterOperatorStartsWith: 'Bắt đầu bằng',
54
- filterOperatorEndsWith: 'Kết thúc bằng',
55
- filterOperatorIs: '',
56
- filterOperatorNot: 'Không là',
57
- filterOperatorAfter: 'Trước',
49
+ filterOperatorContains: 'chứa',
50
+ filterOperatorDoesNotContain: 'không chứa',
51
+ filterOperatorEquals: 'bằng',
52
+ filterOperatorDoesNotEqual: 'không bằng',
53
+ filterOperatorStartsWith: 'bắt đầu với',
54
+ filterOperatorEndsWith: 'kết thúc với',
55
+ filterOperatorIs: '',
56
+ filterOperatorNot: 'không phải là',
57
+ filterOperatorAfter: 'sau',
58
58
  filterOperatorOnOrAfter: 'bằng hoặc sau',
59
- filterOperatorBefore: 'Sau',
59
+ filterOperatorBefore: 'trước',
60
60
  filterOperatorOnOrBefore: 'bằng hoặc trước',
61
- filterOperatorIsEmpty: 'Rỗng',
62
- filterOperatorIsNotEmpty: 'Khác rỗng',
63
- filterOperatorIsAnyOf: 'Bất kỳ',
61
+ filterOperatorIsEmpty: 'rỗng',
62
+ filterOperatorIsNotEmpty: 'khác rỗng',
63
+ filterOperatorIsAnyOf: ' một trong',
64
64
  'filterOperator=': '=',
65
65
  'filterOperator!=': '!=',
66
66
  'filterOperator>': '>',
@@ -69,20 +69,20 @@ const viVNGrid = {
69
69
  'filterOperator<=': '<=',
70
70
  // Header filter operators text
71
71
  headerFilterOperatorContains: 'Chứa',
72
- // headerFilterOperatorDoesNotContain: 'Does not contain',
72
+ headerFilterOperatorDoesNotContain: 'Không chứa',
73
73
  headerFilterOperatorEquals: 'Bằng',
74
- // headerFilterOperatorDoesNotEqual: 'Does not equal',
74
+ headerFilterOperatorDoesNotEqual: 'Không bằng',
75
75
  headerFilterOperatorStartsWith: 'Bắt đầu với',
76
76
  headerFilterOperatorEndsWith: 'Kết thúc với',
77
- headerFilterOperatorIs: '',
78
- headerFilterOperatorNot: 'Không là',
77
+ headerFilterOperatorIs: '',
78
+ headerFilterOperatorNot: 'Không phải là',
79
79
  headerFilterOperatorAfter: 'Sau',
80
- headerFilterOperatorOnOrAfter: 'Đang hoặc sau',
80
+ headerFilterOperatorOnOrAfter: 'Bằng hoặc sau',
81
81
  headerFilterOperatorBefore: 'Trước',
82
- headerFilterOperatorOnOrBefore: 'Đang hoặc trước',
82
+ headerFilterOperatorOnOrBefore: 'Bằng hoặc trước',
83
83
  headerFilterOperatorIsEmpty: 'Rỗng',
84
84
  headerFilterOperatorIsNotEmpty: 'Khác rỗng',
85
- headerFilterOperatorIsAnyOf: 'Bất kỳ',
85
+ headerFilterOperatorIsAnyOf: ' một trong',
86
86
  'headerFilterOperator=': 'Bằng',
87
87
  'headerFilterOperator!=': 'Khác',
88
88
  'headerFilterOperator>': 'Lớn hơn',
@@ -34,6 +34,8 @@ export const createSelector = (a, b, c, d, e, f, ...other) => {
34
34
  throw new Error('Unsupported number of selectors');
35
35
  }
36
36
  let selector;
37
+
38
+ // eslint-disable-next-line id-denylist
37
39
  if (a && b && c && d && e && f) {
38
40
  selector = (stateOrApiRef, instanceIdParam) => {
39
41
  const isAPIRef = checkIsAPIRef(stateOrApiRef);
@@ -46,6 +48,7 @@ export const createSelector = (a, b, c, d, e, f, ...other) => {
46
48
  const ve = e(state, instanceId);
47
49
  return f(va, vb, vc, vd, ve);
48
50
  };
51
+ // eslint-disable-next-line id-denylist
49
52
  } else if (a && b && c && d && e) {
50
53
  selector = (stateOrApiRef, instanceIdParam) => {
51
54
  const isAPIRef = checkIsAPIRef(stateOrApiRef);
@@ -100,6 +103,8 @@ export const createSelectorV8 = (a, b, c, d, e, f, ...other) => {
100
103
  throw new Error('Unsupported number of selectors');
101
104
  }
102
105
  let selector;
106
+
107
+ // eslint-disable-next-line id-denylist
103
108
  if (a && b && c && d && e && f) {
104
109
  selector = (stateOrApiRef, args, instanceIdParam) => {
105
110
  const isAPIRef = checkIsAPIRef(stateOrApiRef);
@@ -112,6 +117,7 @@ export const createSelectorV8 = (a, b, c, d, e, f, ...other) => {
112
117
  const ve = e(state, args, instanceId);
113
118
  return f(va, vb, vc, vd, ve, args);
114
119
  };
120
+ // eslint-disable-next-line id-denylist
115
121
  } else if (a && b && c && d && e) {
116
122
  selector = (stateOrApiRef, args, instanceIdParam) => {
117
123
  const isAPIRef = checkIsAPIRef(stateOrApiRef);
@@ -80,6 +80,11 @@ DataGridRaw.propTypes = {
80
80
  /**
81
81
  * If `true`, the Data Grid height is dynamic and follows the number of rows in the Data Grid.
82
82
  * @default false
83
+ * @deprecated Use flex parent container instead: https://mui.com/x/react-data-grid/layout/#flex-parent-container
84
+ * @example
85
+ * <div style={{ display: 'flex', flexDirection: 'column' }}>
86
+ * <DataGrid />
87
+ * </div>
83
88
  */
84
89
  autoHeight: _propTypes.default.bool,
85
90
  /**
@@ -126,11 +126,11 @@ const GridCell = /*#__PURE__*/React.forwardRef(function GridCell(props, ref) {
126
126
  const result = apiRef.current.getCellParams(rowId, field);
127
127
  result.api = apiRef.current;
128
128
  return result;
129
- } catch (e) {
130
- if (e instanceof _useGridParamsApi.MissingRowIdError) {
129
+ } catch (error) {
130
+ if (error instanceof _useGridParamsApi.MissingRowIdError) {
131
131
  return EMPTY_CELL_PARAMS;
132
132
  }
133
- throw e;
133
+ throw error;
134
134
  }
135
135
  }, _useGridSelector.objectShallowCompare);
136
136
  const isSelected = (0, _useGridSelector.useGridSelector)(apiRef, () => apiRef.current.unstable_applyPipeProcessors('isCellSelected', false, {
@@ -263,10 +263,9 @@ const GridCell = /*#__PURE__*/React.forwardRef(function GridCell(props, ref) {
263
263
  return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
264
264
  "data-colindex": colIndex,
265
265
  role: "presentation",
266
- style: (0, _extends2.default)({}, style, {
267
- minWidth: 'var(--width)',
268
- maxWidth: 'var(--width)'
269
- })
266
+ style: (0, _extends2.default)({
267
+ width: 'var(--width)'
268
+ }, style)
270
269
  });
271
270
  }
272
271
  if (cellParams === EMPTY_CELL_PARAMS) {
@@ -323,7 +322,7 @@ const GridCell = /*#__PURE__*/React.forwardRef(function GridCell(props, ref) {
323
322
  };
324
323
  return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", (0, _extends2.default)({
325
324
  ref: handleRef,
326
- className: (0, _clsx.default)(className, classNames, classes.root),
325
+ className: (0, _clsx.default)(classes.root, classNames, className),
327
326
  role: "gridcell",
328
327
  "data-field": field,
329
328
  "data-colindex": colIndex,
@@ -44,7 +44,7 @@ const GridBaseColumnHeaders = exports.GridBaseColumnHeaders = /*#__PURE__*/React
44
44
  const classes = useUtilityClasses(rootProps);
45
45
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(GridColumnHeadersRoot, (0, _extends2.default)({
46
46
  ref: ref,
47
- className: (0, _clsx.default)(className, classes.root),
47
+ className: (0, _clsx.default)(classes.root, className),
48
48
  ownerState: rootProps
49
49
  }, other, {
50
50
  role: "presentation"
@@ -14,8 +14,10 @@ var _utils = require("@mui/utils");
14
14
  var _useGridApiContext = require("../../hooks/utils/useGridApiContext");
15
15
  var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
16
16
  var _gridClasses = require("../../constants/gridClasses");
17
+ var _useGridSelector = require("../../hooks/utils/useGridSelector");
18
+ var _utils2 = require("../../hooks/features/rowSelection/utils");
17
19
  var _jsxRuntime = require("react/jsx-runtime");
18
- const _excluded = ["field", "id", "value", "formattedValue", "row", "rowNode", "colDef", "isEditable", "cellMode", "hasFocus", "tabIndex", "api"];
20
+ const _excluded = ["field", "id", "formattedValue", "row", "rowNode", "colDef", "isEditable", "cellMode", "hasFocus", "tabIndex", "api"];
19
21
  const useUtilityClasses = ownerState => {
20
22
  const {
21
23
  classes
@@ -29,7 +31,6 @@ const GridCellCheckboxForwardRef = exports.GridCellCheckboxForwardRef = /*#__PUR
29
31
  const {
30
32
  field,
31
33
  id,
32
- value: isChecked,
33
34
  rowNode,
34
35
  hasFocus,
35
36
  tabIndex
@@ -77,21 +78,28 @@ const GridCellCheckboxForwardRef = exports.GridCellCheckboxForwardRef = /*#__PUR
77
78
  event.stopPropagation();
78
79
  }
79
80
  }, []);
81
+ const isSelectable = apiRef.current.isRowSelectable(id);
82
+ const checkboxPropsSelector = (0, _utils2.getCheckboxPropsSelector)(id, rootProps.rowSelectionPropagation?.parents ?? false);
83
+ const {
84
+ isIndeterminate,
85
+ isChecked
86
+ } = (0, _useGridSelector.useGridSelector)(apiRef, checkboxPropsSelector);
80
87
  if (rowNode.type === 'footer' || rowNode.type === 'pinnedRow') {
81
88
  return null;
82
89
  }
83
- const isSelectable = apiRef.current.isRowSelectable(id);
84
90
  const label = apiRef.current.getLocaleText(isChecked ? 'checkboxSelectionUnselectRow' : 'checkboxSelectionSelectRow');
91
+ const checked = rootProps.indeterminateCheckboxAction === 'select' ? isChecked && !isIndeterminate : isChecked;
85
92
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseCheckbox, (0, _extends2.default)({
86
93
  ref: handleRef,
87
94
  tabIndex: tabIndex,
88
- checked: isChecked,
95
+ checked: checked,
89
96
  onChange: handleChange,
90
97
  className: classes.root,
91
98
  inputProps: {
92
99
  'aria-label': label
93
100
  },
94
101
  onKeyDown: handleKeyDown,
102
+ indeterminate: isIndeterminate,
95
103
  disabled: !isSelectable,
96
104
  touchRippleRef: rippleRef /* FIXME: typing error */
97
105
  }, rootProps.slotProps?.baseCheckbox, other));
@@ -54,7 +54,7 @@ const GridRoot = exports.GridRoot = /*#__PURE__*/React.forwardRef(function GridR
54
54
  }
55
55
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridRootStyles.GridRootStyles, (0, _extends2.default)({
56
56
  ref: handleRef,
57
- className: (0, _clsx.default)(className, classes.root),
57
+ className: (0, _clsx.default)(classes.root, className),
58
58
  ownerState: ownerState
59
59
  }, other));
60
60
  });
@@ -177,14 +177,28 @@ const GridRootStyles = exports.GridRootStyles = (0, _styles.styled)('div', {
177
177
  const hoverOpacity = (t.vars || t).palette.action.hoverOpacity;
178
178
  const hoverColor = (t.vars || t).palette.action.hover;
179
179
  const selectedOpacity = (t.vars || t).palette.action.selectedOpacity;
180
+ const selectedHoverOpacity = t.vars ? `calc(${hoverOpacity} + ${selectedOpacity})` // TODO: Improve type
181
+ : hoverOpacity + selectedOpacity;
180
182
  const selectedBackground = t.vars ? `rgba(${t.vars.palette.primary.mainChannel} / ${selectedOpacity})` : (0, _styles.alpha)(t.palette.primary.main, selectedOpacity);
181
- const selectedHoverBackground = t.vars ? `rgba(${t.vars.palette.primary.mainChannel} / calc(
182
- ${t.vars.palette.action.selectedOpacity} +
183
- ${t.vars.palette.action.hoverOpacity}
184
- ))` : (0, _styles.alpha)(t.palette.primary.main, t.palette.action.selectedOpacity + t.palette.action.hoverOpacity);
185
- const pinnedHoverBackground = t.vars ? hoverColor : blend(pinnedBackground, hoverColor, hoverOpacity);
186
- const pinnedSelectedBackground = t.vars ? selectedBackground : blend(pinnedBackground, selectedBackground, selectedOpacity);
187
- const pinnedSelectedHoverBackground = t.vars ? hoverColor : blend(pinnedSelectedBackground, hoverColor, hoverOpacity);
183
+ const selectedHoverBackground = t.vars ? `rgba(${t.vars.palette.primary.mainChannel} / ${selectedHoverOpacity})` : (0, _styles.alpha)(t.palette.primary.main, selectedHoverOpacity);
184
+ const blendFn = t.vars ? blendCssVars : blend;
185
+ const getPinnedBackgroundStyles = backgroundColor => ({
186
+ [`& .${_gridClasses.gridClasses['cell--pinnedLeft']}, & .${_gridClasses.gridClasses['cell--pinnedRight']}`]: {
187
+ backgroundColor,
188
+ '&.Mui-selected': {
189
+ backgroundColor: blendFn(backgroundColor, selectedBackground, selectedOpacity),
190
+ '&:hover': {
191
+ backgroundColor: blendFn(backgroundColor, selectedBackground, selectedHoverOpacity)
192
+ }
193
+ }
194
+ }
195
+ });
196
+ const pinnedBackgroundColor = blendFn(pinnedBackground, hoverColor, hoverOpacity);
197
+ const pinnedHoverStyles = getPinnedBackgroundStyles(pinnedBackgroundColor);
198
+ const pinnedSelectedBackgroundColor = blendFn(pinnedBackground, selectedBackground, selectedOpacity);
199
+ const pinnedSelectedStyles = getPinnedBackgroundStyles(pinnedSelectedBackgroundColor);
200
+ const pinnedSelectedHoverBackgroundColor = blendFn(pinnedBackground, selectedHoverBackground, selectedHoverOpacity);
201
+ const pinnedSelectedHoverStyles = getPinnedBackgroundStyles(pinnedSelectedHoverBackgroundColor);
188
202
  const selectedStyles = {
189
203
  backgroundColor: selectedBackground,
190
204
  '&:hover': {
@@ -624,24 +638,15 @@ const GridRootStyles = exports.GridRootStyles = (0, _styles.styled)('div', {
624
638
  [`& .${_gridClasses.gridClasses['cell--pinnedLeft']}, & .${_gridClasses.gridClasses['cell--pinnedRight']}`]: {
625
639
  position: 'sticky',
626
640
  zIndex: 3,
627
- background: 'var(--DataGrid-pinnedBackground)'
641
+ background: 'var(--DataGrid-pinnedBackground)',
642
+ '&.Mui-selected': {
643
+ backgroundColor: pinnedSelectedBackgroundColor
644
+ }
628
645
  },
629
646
  [`& .${_gridClasses.gridClasses.virtualScrollerContent} .${_gridClasses.gridClasses.row}`]: {
630
- '&:hover': {
631
- [`& .${_gridClasses.gridClasses['cell--pinnedLeft']}, & .${_gridClasses.gridClasses['cell--pinnedRight']}`]: {
632
- backgroundColor: pinnedHoverBackground
633
- }
634
- },
635
- [`&.Mui-selected`]: {
636
- [`& .${_gridClasses.gridClasses['cell--pinnedLeft']}, & .${_gridClasses.gridClasses['cell--pinnedRight']}`]: {
637
- backgroundColor: pinnedSelectedBackground
638
- },
639
- '&:hover': {
640
- [`& .${_gridClasses.gridClasses['cell--pinnedLeft']}, & .${_gridClasses.gridClasses['cell--pinnedRight']}`]: {
641
- backgroundColor: pinnedSelectedHoverBackground
642
- }
643
- }
644
- }
647
+ '&:hover': pinnedHoverStyles,
648
+ '&.Mui-selected': pinnedSelectedStyles,
649
+ '&.Mui-selected:hover': pinnedSelectedHoverStyles
645
650
  },
646
651
  [`& .${_gridClasses.gridClasses.cellOffsetLeft}`]: {
647
652
  flex: '0 0 auto',
@@ -754,4 +759,8 @@ function blend(background, overlay, opacity, gamma = 1) {
754
759
  type: 'rgb',
755
760
  values: rgb
756
761
  });
762
+ }
763
+ const removeOpacity = color => `rgb(from ${color} r g b / 1)`;
764
+ function blendCssVars(background, overlay, opacity) {
765
+ return `color-mix(in srgb,${background}, ${removeOpacity(overlay)} calc(${opacity} * 100%))`;
757
766
  }
@@ -52,7 +52,7 @@ const GridToolbarContainer = exports.GridToolbarContainer = /*#__PURE__*/React.f
52
52
  }
53
53
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(GridToolbarContainerRoot, (0, _extends2.default)({
54
54
  ref: ref,
55
- className: (0, _clsx.default)(className, classes.root),
55
+ className: (0, _clsx.default)(classes.root, className),
56
56
  ownerState: rootProps
57
57
  }, other, {
58
58
  children: children