@mui/x-data-grid 7.17.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.
- package/CHANGELOG.md +208 -5
- package/DataGrid/DataGrid.js +16 -1
- package/DataGrid/useDataGridComponent.js +3 -0
- package/DataGrid/useDataGridProps.js +2 -1
- package/components/GridRow.js +1 -0
- package/components/cell/GridCell.js +33 -9
- package/components/columnHeaders/GridBaseColumnHeaders.js +1 -1
- package/components/columnSelection/GridCellCheckboxRenderer.js +12 -4
- package/components/columnSelection/GridHeaderCheckbox.d.ts +1 -1
- package/components/containers/GridRoot.js +1 -1
- package/components/containers/GridRootStyles.js +32 -23
- package/components/containers/GridToolbarContainer.js +1 -1
- package/components/menu/GridMenu.js +1 -1
- package/components/panel/GridPanel.d.ts +1 -1
- package/components/panel/GridPanel.js +1 -1
- package/components/panel/GridPanelContent.js +1 -1
- package/components/panel/GridPanelFooter.js +1 -1
- package/components/panel/GridPanelHeader.js +1 -1
- package/components/panel/GridPanelWrapper.js +1 -1
- package/components/panel/filterPanel/filterPanelUtils.d.ts +1 -1
- package/components/toolbar/GridToolbarQuickFilter.js +1 -1
- package/components/virtualization/GridBottomContainer.d.ts +1 -1
- package/components/virtualization/GridBottomContainer.js +18 -1
- package/components/virtualization/GridMainContainer.js +3 -1
- package/components/virtualization/GridTopContainer.d.ts +1 -1
- package/components/virtualization/GridTopContainer.js +1 -1
- package/components/virtualization/GridVirtualScrollbar.js +1 -7
- package/components/virtualization/GridVirtualScroller.js +1 -0
- package/components/virtualization/GridVirtualScrollerFiller.js +3 -4
- package/hooks/features/columnGrouping/gridColumnGroupsSelector.d.ts +4 -4
- package/hooks/features/columnHeaders/useGridColumnHeaders.d.ts +1 -2
- package/hooks/features/columnHeaders/useGridColumnHeaders.js +11 -11
- package/hooks/features/columnResize/columnResizeSelector.d.ts +1 -1
- package/hooks/features/columnResize/useGridColumnResize.js +6 -6
- package/hooks/features/columns/gridColumnsSelector.d.ts +12 -12
- package/hooks/features/columns/gridColumnsUtils.js +3 -2
- package/hooks/features/density/densitySelector.d.ts +1 -1
- package/hooks/features/dimensions/gridDimensionsApi.d.ts +4 -0
- package/hooks/features/dimensions/useGridDimensions.d.ts +1 -1
- package/hooks/features/dimensions/useGridDimensions.js +4 -1
- package/hooks/features/editing/useGridCellEditing.js +3 -19
- package/hooks/features/editing/useGridRowEditing.js +7 -2
- package/hooks/features/editing/utils.d.ts +2 -0
- package/hooks/features/editing/utils.js +15 -0
- package/hooks/features/export/useGridPrintExport.js +2 -1
- package/hooks/features/filter/gridFilterSelector.d.ts +17 -17
- package/hooks/features/focus/gridFocusStateSelector.d.ts +8 -8
- package/hooks/features/focus/useGridFocus.js +2 -1
- package/hooks/features/headerFiltering/gridHeaderFilteringSelectors.d.ts +3 -3
- package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +10 -46
- package/hooks/features/keyboardNavigation/utils.d.ts +17 -0
- package/hooks/features/keyboardNavigation/utils.js +58 -0
- package/hooks/features/pagination/gridPaginationSelector.d.ts +9 -9
- package/hooks/features/rowSelection/gridRowSelectionSelector.d.ts +3 -3
- package/hooks/features/rowSelection/useGridRowSelection.d.ts +1 -1
- package/hooks/features/rowSelection/useGridRowSelection.js +105 -29
- package/hooks/features/rowSelection/utils.d.ts +10 -0
- package/hooks/features/rowSelection/utils.js +156 -1
- package/hooks/features/rows/gridRowSpanningSelectors.d.ts +4 -0
- package/hooks/features/rows/gridRowSpanningSelectors.js +5 -0
- package/hooks/features/rows/gridRowSpanningUtils.d.ts +10 -0
- package/hooks/features/rows/gridRowSpanningUtils.js +42 -0
- package/hooks/features/rows/gridRowsSelector.d.ts +14 -14
- package/hooks/features/rows/useGridRowSpanning.d.ts +27 -0
- package/hooks/features/rows/useGridRowSpanning.js +257 -0
- package/hooks/features/rows/useGridRows.d.ts +1 -1
- package/hooks/features/rows/useGridRows.js +7 -1
- package/hooks/features/scroll/useGridScroll.js +19 -19
- package/hooks/features/sorting/gridSortingSelector.d.ts +4 -4
- package/hooks/features/virtualization/gridVirtualizationSelectors.d.ts +5 -5
- package/hooks/features/virtualization/useGridVirtualScroller.d.ts +1 -1
- package/hooks/features/virtualization/useGridVirtualScroller.js +17 -7
- package/hooks/utils/useGridApiEventHandler.js +0 -1
- package/hooks/utils/useGridVisibleRows.d.ts +2 -2
- package/index.js +1 -1
- package/internals/index.d.ts +2 -0
- package/internals/index.js +2 -0
- package/locales/bgBG.js +8 -9
- package/locales/deDE.js +4 -4
- package/locales/frFR.js +4 -4
- package/locales/hrHR.d.ts +1 -1
- package/locales/hrHR.js +69 -46
- package/locales/jaJP.js +1 -2
- package/locales/ptPT.d.ts +1 -1
- package/locales/ptPT.js +4 -4
- package/locales/viVN.js +20 -20
- package/locales/zhHK.d.ts +1 -1
- package/models/colDef/gridColDef.d.ts +4 -0
- package/models/gridRowSelectionModel.d.ts +4 -0
- package/models/gridStateCommunity.d.ts +2 -0
- package/models/props/DataGridProps.d.ts +30 -1
- package/modern/DataGrid/DataGrid.js +16 -1
- package/modern/DataGrid/useDataGridComponent.js +3 -0
- package/modern/DataGrid/useDataGridProps.js +2 -1
- package/modern/components/GridRow.js +1 -0
- package/modern/components/cell/GridCell.js +33 -9
- package/modern/components/columnHeaders/GridBaseColumnHeaders.js +1 -1
- package/modern/components/columnSelection/GridCellCheckboxRenderer.js +12 -4
- package/modern/components/containers/GridRoot.js +1 -1
- package/modern/components/containers/GridRootStyles.js +32 -23
- package/modern/components/containers/GridToolbarContainer.js +1 -1
- package/modern/components/menu/GridMenu.js +1 -1
- package/modern/components/panel/GridPanel.js +1 -1
- package/modern/components/panel/GridPanelContent.js +1 -1
- package/modern/components/panel/GridPanelFooter.js +1 -1
- package/modern/components/panel/GridPanelHeader.js +1 -1
- package/modern/components/panel/GridPanelWrapper.js +1 -1
- package/modern/components/toolbar/GridToolbarQuickFilter.js +1 -1
- package/modern/components/virtualization/GridBottomContainer.js +18 -1
- package/modern/components/virtualization/GridMainContainer.js +3 -1
- package/modern/components/virtualization/GridTopContainer.js +1 -1
- package/modern/components/virtualization/GridVirtualScrollbar.js +1 -7
- package/modern/components/virtualization/GridVirtualScroller.js +1 -0
- package/modern/components/virtualization/GridVirtualScrollerFiller.js +3 -4
- package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +11 -11
- package/modern/hooks/features/columnResize/useGridColumnResize.js +6 -6
- package/modern/hooks/features/columns/gridColumnsUtils.js +3 -2
- package/modern/hooks/features/dimensions/useGridDimensions.js +4 -1
- package/modern/hooks/features/editing/useGridCellEditing.js +3 -19
- package/modern/hooks/features/editing/useGridRowEditing.js +7 -2
- package/modern/hooks/features/editing/utils.js +15 -0
- package/modern/hooks/features/export/useGridPrintExport.js +2 -1
- package/modern/hooks/features/focus/useGridFocus.js +2 -1
- package/modern/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +10 -46
- package/modern/hooks/features/keyboardNavigation/utils.js +58 -0
- package/modern/hooks/features/rowSelection/useGridRowSelection.js +105 -29
- package/modern/hooks/features/rowSelection/utils.js +156 -1
- package/modern/hooks/features/rows/gridRowSpanningSelectors.js +5 -0
- package/modern/hooks/features/rows/gridRowSpanningUtils.js +42 -0
- package/modern/hooks/features/rows/useGridRowSpanning.js +257 -0
- package/modern/hooks/features/rows/useGridRows.js +7 -1
- package/modern/hooks/features/scroll/useGridScroll.js +19 -19
- package/modern/hooks/features/virtualization/useGridVirtualScroller.js +17 -7
- package/modern/hooks/utils/useGridApiEventHandler.js +0 -1
- package/modern/index.js +1 -1
- package/modern/internals/index.js +2 -0
- package/modern/locales/bgBG.js +8 -9
- package/modern/locales/deDE.js +4 -4
- package/modern/locales/frFR.js +4 -4
- package/modern/locales/hrHR.js +69 -46
- package/modern/locales/jaJP.js +1 -2
- package/modern/locales/ptPT.js +4 -4
- package/modern/locales/viVN.js +20 -20
- package/modern/utils/createSelector.js +6 -0
- package/modern/utils/domUtils.js +12 -12
- package/node/DataGrid/DataGrid.js +16 -1
- package/node/DataGrid/useDataGridComponent.js +3 -0
- package/node/DataGrid/useDataGridProps.js +2 -1
- package/node/components/GridRow.js +1 -0
- package/node/components/cell/GridCell.js +33 -9
- package/node/components/columnHeaders/GridBaseColumnHeaders.js +1 -1
- package/node/components/columnSelection/GridCellCheckboxRenderer.js +12 -4
- package/node/components/containers/GridRoot.js +1 -1
- package/node/components/containers/GridRootStyles.js +32 -23
- package/node/components/containers/GridToolbarContainer.js +1 -1
- package/node/components/menu/GridMenu.js +1 -1
- package/node/components/panel/GridPanel.js +1 -1
- package/node/components/panel/GridPanelContent.js +1 -1
- package/node/components/panel/GridPanelFooter.js +1 -1
- package/node/components/panel/GridPanelHeader.js +1 -1
- package/node/components/panel/GridPanelWrapper.js +1 -1
- package/node/components/toolbar/GridToolbarQuickFilter.js +1 -1
- package/node/components/virtualization/GridBottomContainer.js +18 -1
- package/node/components/virtualization/GridMainContainer.js +3 -1
- package/node/components/virtualization/GridTopContainer.js +1 -1
- package/node/components/virtualization/GridVirtualScrollbar.js +1 -7
- package/node/components/virtualization/GridVirtualScroller.js +1 -0
- package/node/components/virtualization/GridVirtualScrollerFiller.js +3 -4
- package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +11 -11
- package/node/hooks/features/columnResize/useGridColumnResize.js +6 -6
- package/node/hooks/features/columns/gridColumnsUtils.js +3 -2
- package/node/hooks/features/dimensions/useGridDimensions.js +4 -1
- package/node/hooks/features/editing/useGridCellEditing.js +3 -19
- package/node/hooks/features/editing/useGridRowEditing.js +7 -2
- package/node/hooks/features/editing/utils.js +22 -0
- package/node/hooks/features/export/useGridPrintExport.js +2 -1
- package/node/hooks/features/focus/useGridFocus.js +2 -1
- package/node/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +16 -53
- package/node/hooks/features/keyboardNavigation/utils.js +68 -0
- package/node/hooks/features/rowSelection/useGridRowSelection.js +102 -26
- package/node/hooks/features/rowSelection/utils.js +160 -1
- package/node/hooks/features/rows/gridRowSpanningSelectors.js +11 -0
- package/node/hooks/features/rows/gridRowSpanningUtils.js +52 -0
- package/node/hooks/features/rows/useGridRowSpanning.js +267 -0
- package/node/hooks/features/rows/useGridRows.js +7 -1
- package/node/hooks/features/scroll/useGridScroll.js +19 -19
- package/node/hooks/features/virtualization/useGridVirtualScroller.js +17 -7
- package/node/hooks/utils/useGridApiEventHandler.js +0 -1
- package/node/index.js +1 -1
- package/node/internals/index.js +38 -15
- package/node/locales/bgBG.js +8 -9
- package/node/locales/deDE.js +4 -4
- package/node/locales/frFR.js +4 -4
- package/node/locales/hrHR.js +69 -46
- package/node/locales/jaJP.js +1 -2
- package/node/locales/ptPT.js +4 -4
- package/node/locales/viVN.js +20 -20
- package/node/utils/createSelector.js +6 -0
- package/node/utils/domUtils.js +12 -12
- package/package.json +3 -3
- package/utils/createSelector.js +6 -0
- package/utils/domUtils.d.ts +4 -4
- package/utils/domUtils.js +12 -12
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
|
-
|
|
50
|
+
filterOperatorDoesNotContain: 'ne contient pas',
|
|
51
51
|
filterOperatorEquals: 'est égal à',
|
|
52
|
-
|
|
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
|
-
|
|
72
|
+
headerFilterOperatorDoesNotContain: 'Ne contient pas',
|
|
73
73
|
headerFilterOperatorEquals: 'Est égal à',
|
|
74
|
-
|
|
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("../
|
|
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: '
|
|
11
|
-
toolbarDensityStandard: '
|
|
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
|
|
19
|
-
toolbarFiltersTooltipHide: 'Sakrij
|
|
20
|
-
toolbarFiltersTooltipShow: 'Prikaži
|
|
21
|
-
toolbarFiltersTooltipActive: count =>
|
|
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: '
|
|
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: '
|
|
31
|
-
toolbarExportExcel: '
|
|
38
|
+
toolbarExportPrint: 'Štampaj',
|
|
39
|
+
toolbarExportExcel: 'Preuzmi kao Excel',
|
|
32
40
|
// Columns management text
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
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: '
|
|
40
|
-
filterPanelRemoveAll: '
|
|
41
|
-
filterPanelDeleteIconLabel: '
|
|
46
|
+
filterPanelAddFilter: 'Dodaj filter',
|
|
47
|
+
filterPanelRemoveAll: 'Ukloni sve',
|
|
48
|
+
filterPanelDeleteIconLabel: 'Obriši',
|
|
42
49
|
filterPanelLogicOperator: 'Logički operator',
|
|
43
|
-
filterPanelOperator: '
|
|
50
|
+
filterPanelOperator: 'Operator',
|
|
44
51
|
filterPanelOperatorAnd: 'I',
|
|
45
52
|
filterPanelOperatorOr: 'Ili',
|
|
46
|
-
filterPanelColumns: '
|
|
53
|
+
filterPanelColumns: 'Stupac',
|
|
47
54
|
filterPanelInputLabel: 'Vrijednost',
|
|
48
|
-
filterPanelInputPlaceholder: 'Vrijednost
|
|
55
|
+
filterPanelInputPlaceholder: 'Vrijednost filtera',
|
|
49
56
|
// Filter operators text
|
|
50
57
|
filterOperatorContains: 'sadrži',
|
|
51
|
-
|
|
52
|
-
filterOperatorEquals: '
|
|
53
|
-
|
|
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
|
|
63
|
-
filterOperatorIsNotEmpty: 'nije
|
|
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
|
-
|
|
80
|
+
headerFilterOperatorDoesNotContain: 'Ne sadrži',
|
|
74
81
|
headerFilterOperatorEquals: 'Jednako',
|
|
75
|
-
|
|
82
|
+
headerFilterOperatorDoesNotEqual: 'Nije jednako',
|
|
76
83
|
headerFilterOperatorStartsWith: 'Počinje sa',
|
|
77
|
-
headerFilterOperatorEndsWith: 'Završava
|
|
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
|
|
83
|
-
headerFilterOperatorOnOrBefore: '
|
|
84
|
-
headerFilterOperatorIsEmpty: '
|
|
85
|
-
headerFilterOperatorIsNotEmpty: 'Nije
|
|
86
|
-
headerFilterOperatorIsAnyOf: 'Je
|
|
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: '
|
|
96
|
-
filterValueFalse: '
|
|
102
|
+
filterValueTrue: 'tačno',
|
|
103
|
+
filterValueFalse: 'netačno',
|
|
97
104
|
// Column menu text
|
|
98
|
-
columnMenuLabel: '
|
|
105
|
+
columnMenuLabel: 'Izbornik',
|
|
99
106
|
columnMenuShowColumns: 'Prikaži stupce',
|
|
100
107
|
columnMenuManageColumns: 'Upravljanje stupcima',
|
|
101
|
-
columnMenuFilter: '
|
|
108
|
+
columnMenuFilter: 'Filter',
|
|
102
109
|
columnMenuHideColumn: 'Sakrij stupac',
|
|
103
110
|
columnMenuUnsort: 'Poništi sortiranje',
|
|
104
111
|
columnMenuSortAsc: 'Poredaj uzlazno',
|
|
105
|
-
columnMenuSortDesc: 'Poredaj
|
|
112
|
+
columnMenuSortDesc: 'Poredaj silazno',
|
|
106
113
|
// Column header text
|
|
107
|
-
columnHeaderFiltersTooltipActive: count =>
|
|
108
|
-
|
|
109
|
-
|
|
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 =>
|
|
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
|
|
140
|
+
checkboxSelectionHeaderName: 'Odabir redaka',
|
|
118
141
|
checkboxSelectionSelectAllRows: 'Odaberite sve retke',
|
|
119
142
|
checkboxSelectionUnselectAllRows: 'Poništi odabir svih redaka',
|
|
120
|
-
checkboxSelectionSelectRow: 'Odaberite
|
|
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: '
|
|
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: '
|
|
165
|
+
collapseDetailPanel: 'Skupiti',
|
|
143
166
|
// Row reordering text
|
|
144
167
|
rowReorderingHeaderName: 'Promjena redoslijeda',
|
|
145
168
|
// Aggregation
|
package/locales/jaJP.js
CHANGED
|
@@ -33,8 +33,7 @@ const jaJPGrid = {
|
|
|
33
33
|
columnsManagementSearchTitle: '検索',
|
|
34
34
|
columnsManagementNoColumns: 'カラムなし',
|
|
35
35
|
columnsManagementShowHideAllText: 'すべて表示/非表示',
|
|
36
|
-
|
|
37
|
-
|
|
36
|
+
columnsManagementReset: 'リセット',
|
|
38
37
|
// Filter panel text
|
|
39
38
|
filterPanelAddFilter: 'フィルター追加',
|
|
40
39
|
filterPanelRemoveAll: 'すべて削除',
|
package/locales/ptPT.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const ptPT: import("../
|
|
1
|
+
export declare const ptPT: import("../internals").Localization;
|
package/locales/ptPT.js
CHANGED
|
@@ -47,9 +47,9 @@ const ptPTGrid = {
|
|
|
47
47
|
filterPanelInputPlaceholder: 'Valor do filtro',
|
|
48
48
|
// Filter operators text
|
|
49
49
|
filterOperatorContains: 'contém',
|
|
50
|
-
|
|
50
|
+
filterOperatorDoesNotContain: 'não contém',
|
|
51
51
|
filterOperatorEquals: 'é igual a',
|
|
52
|
-
|
|
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
|
-
|
|
72
|
+
headerFilterOperatorDoesNotContain: 'Não contém',
|
|
73
73
|
headerFilterOperatorEquals: 'É igual a',
|
|
74
|
-
|
|
74
|
+
headerFilterOperatorDoesNotEqual: 'Não é igual',
|
|
75
75
|
headerFilterOperatorStartsWith: 'Começa com',
|
|
76
76
|
headerFilterOperatorEndsWith: 'Termina com',
|
|
77
77
|
headerFilterOperatorIs: 'É',
|
package/locales/viVN.js
CHANGED
|
@@ -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: '
|
|
50
|
-
|
|
51
|
-
filterOperatorEquals: '
|
|
52
|
-
|
|
53
|
-
filterOperatorStartsWith: '
|
|
54
|
-
filterOperatorEndsWith: '
|
|
55
|
-
filterOperatorIs: '
|
|
56
|
-
filterOperatorNot: '
|
|
57
|
-
filterOperatorAfter: '
|
|
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: 'là',
|
|
56
|
+
filterOperatorNot: 'không phải là',
|
|
57
|
+
filterOperatorAfter: 'sau',
|
|
58
58
|
filterOperatorOnOrAfter: 'bằng hoặc sau',
|
|
59
|
-
filterOperatorBefore: '
|
|
59
|
+
filterOperatorBefore: 'trước',
|
|
60
60
|
filterOperatorOnOrBefore: 'bằng hoặc trước',
|
|
61
|
-
filterOperatorIsEmpty: '
|
|
62
|
-
filterOperatorIsNotEmpty: '
|
|
63
|
-
filterOperatorIsAnyOf: '
|
|
61
|
+
filterOperatorIsEmpty: 'rỗng',
|
|
62
|
+
filterOperatorIsNotEmpty: 'khác rỗng',
|
|
63
|
+
filterOperatorIsAnyOf: 'là 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
|
-
|
|
72
|
+
headerFilterOperatorDoesNotContain: 'Không chứa',
|
|
73
73
|
headerFilterOperatorEquals: 'Bằng',
|
|
74
|
-
|
|
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: 'Là',
|
|
78
|
+
headerFilterOperatorNot: 'Không phải là',
|
|
79
79
|
headerFilterOperatorAfter: 'Sau',
|
|
80
|
-
headerFilterOperatorOnOrAfter: '
|
|
80
|
+
headerFilterOperatorOnOrAfter: 'Bằng hoặc sau',
|
|
81
81
|
headerFilterOperatorBefore: 'Trước',
|
|
82
|
-
headerFilterOperatorOnOrBefore: '
|
|
82
|
+
headerFilterOperatorOnOrBefore: 'Bằng hoặc trước',
|
|
83
83
|
headerFilterOperatorIsEmpty: 'Rỗng',
|
|
84
84
|
headerFilterOperatorIsNotEmpty: 'Khác rỗng',
|
|
85
|
-
headerFilterOperatorIsAnyOf: '
|
|
85
|
+
headerFilterOperatorIsAnyOf: 'Là một trong',
|
|
86
86
|
'headerFilterOperator=': 'Bằng',
|
|
87
87
|
'headerFilterOperator!=': 'Khác',
|
|
88
88
|
'headerFilterOperator>': 'Lớn hơn',
|
package/locales/zhHK.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const zhHK: import("../
|
|
1
|
+
export declare const zhHK: import("../internals").Localization;
|
|
@@ -129,6 +129,10 @@ export interface GridBaseColDef<R extends GridValidRowModel = GridValidRowModel,
|
|
|
129
129
|
* Function that allows to get a specific data instead of field to render in the cell.
|
|
130
130
|
*/
|
|
131
131
|
valueGetter?: GridValueGetter<R, V, F>;
|
|
132
|
+
/**
|
|
133
|
+
* Function that allows to provide a specific value to be used in row spanning.
|
|
134
|
+
*/
|
|
135
|
+
rowSpanValueGetter?: GridValueGetter<R, V, F>;
|
|
132
136
|
/**
|
|
133
137
|
* Function that allows to customize how the entered value is stored in the row.
|
|
134
138
|
* It only works with cell/row editing.
|
|
@@ -1,3 +1,7 @@
|
|
|
1
1
|
import { GridRowId } from './gridRows';
|
|
2
|
+
export type GridRowSelectionPropagation = {
|
|
3
|
+
descendants?: boolean;
|
|
4
|
+
parents?: boolean;
|
|
5
|
+
};
|
|
2
6
|
export type GridInputRowSelectionModel = readonly GridRowId[] | GridRowId;
|
|
3
7
|
export type GridRowSelectionModel = readonly GridRowId[];
|
|
@@ -5,6 +5,7 @@ import { GridHeaderFilteringState } from './gridHeaderFilteringModel';
|
|
|
5
5
|
import type { GridRowSelectionModel } from './gridRowSelectionModel';
|
|
6
6
|
import type { GridVisibleRowsLookupState } from '../hooks/features/filter/gridFilterState';
|
|
7
7
|
import type { GridColumnResizeState } from '../hooks/features/columnResize';
|
|
8
|
+
import type { GridRowSpanningState } from '../hooks/features/rows/useGridRowSpanning';
|
|
8
9
|
/**
|
|
9
10
|
* The state of `DataGrid`.
|
|
10
11
|
*/
|
|
@@ -30,6 +31,7 @@ export interface GridStateCommunity {
|
|
|
30
31
|
density: GridDensityState;
|
|
31
32
|
virtualization: GridVirtualizationState;
|
|
32
33
|
columnResize: GridColumnResizeState;
|
|
34
|
+
rowSpanning: GridRowSpanningState;
|
|
33
35
|
}
|
|
34
36
|
/**
|
|
35
37
|
* The initial state of `DataGrid`.
|
|
@@ -26,6 +26,7 @@ import { GridColumnGroupingModel } from '../gridColumnGrouping';
|
|
|
26
26
|
import { GridPaginationMeta, GridPaginationModel } from '../gridPaginationProps';
|
|
27
27
|
import type { GridAutosizeOptions } from '../../hooks/features/columnResize';
|
|
28
28
|
import type { GridDataSource } from '../gridDataSource';
|
|
29
|
+
import type { GridRowSelectionPropagation } from '../gridRowSelectionModel';
|
|
29
30
|
export interface GridExperimentalFeatures {
|
|
30
31
|
/**
|
|
31
32
|
* Emits a warning if the cell receives focus without also syncing the focus state.
|
|
@@ -75,6 +76,11 @@ export interface DataGridPropsWithDefaultValues<R extends GridValidRowModel = an
|
|
|
75
76
|
/**
|
|
76
77
|
* If `true`, the Data Grid height is dynamic and follows the number of rows in the Data Grid.
|
|
77
78
|
* @default false
|
|
79
|
+
* @deprecated Use flex parent container instead: https://mui.com/x/react-data-grid/layout/#flex-parent-container
|
|
80
|
+
* @example
|
|
81
|
+
* <div style={{ display: 'flex', flexDirection: 'column' }}>
|
|
82
|
+
* <DataGrid />
|
|
83
|
+
* </div>
|
|
78
84
|
*/
|
|
79
85
|
autoHeight: boolean;
|
|
80
86
|
/**
|
|
@@ -357,6 +363,11 @@ export interface DataGridPropsWithDefaultValues<R extends GridValidRowModel = an
|
|
|
357
363
|
* @default false
|
|
358
364
|
*/
|
|
359
365
|
disableAutosize: boolean;
|
|
366
|
+
/**
|
|
367
|
+
* If `true`, the Data Grid will auto span the cells over the rows having the same value.
|
|
368
|
+
* @default false
|
|
369
|
+
*/
|
|
370
|
+
unstable_rowSpanning: boolean;
|
|
360
371
|
}
|
|
361
372
|
/**
|
|
362
373
|
* The `DataGrid` props with no default value.
|
|
@@ -748,6 +759,11 @@ export interface DataGridPropsWithoutDefaultValue<R extends GridValidRowModel =
|
|
|
748
759
|
*/
|
|
749
760
|
onProcessRowUpdateError?: (error: any) => void;
|
|
750
761
|
columnGroupingModel?: GridColumnGroupingModel;
|
|
762
|
+
/**
|
|
763
|
+
* Sets the height in pixels of the column group headers in the Data Grid.
|
|
764
|
+
* Inherits the `columnHeaderHeight` value if not set.
|
|
765
|
+
*/
|
|
766
|
+
columnGroupHeaderHeight?: number;
|
|
751
767
|
/**
|
|
752
768
|
* Callback called when the data is copied to the clipboard.
|
|
753
769
|
* @param {string} data The data copied to the clipboard.
|
|
@@ -774,10 +790,23 @@ export interface DataGridPropsWithoutDefaultValue<R extends GridValidRowModel =
|
|
|
774
790
|
}
|
|
775
791
|
export interface DataGridProSharedPropsWithDefaultValue {
|
|
776
792
|
/**
|
|
777
|
-
* If `true`,
|
|
793
|
+
* If `true`, the header filters feature is enabled.
|
|
778
794
|
* @default false
|
|
779
795
|
*/
|
|
780
796
|
headerFilters: boolean;
|
|
797
|
+
/**
|
|
798
|
+
* When `rowSelectionPropagation.descendants` is set to `true`.
|
|
799
|
+
* - Selecting a parent will auto-select all its filtered descendants.
|
|
800
|
+
* - Deselecting a parent will auto-deselect all its filtered descendants.
|
|
801
|
+
*
|
|
802
|
+
* When `rowSelectionPropagation.parents=true`
|
|
803
|
+
* - Selecting all descendants of a parent would auto-select it.
|
|
804
|
+
* - Deselecting a descendant of a selected parent would deselect the parent.
|
|
805
|
+
*
|
|
806
|
+
* Works with tree data and row grouping on the client-side only.
|
|
807
|
+
* @default { parents: false, descendants: false }
|
|
808
|
+
*/
|
|
809
|
+
rowSelectionPropagation: GridRowSelectionPropagation;
|
|
781
810
|
}
|
|
782
811
|
export interface DataGridProSharedPropsWithoutDefaultValue {
|
|
783
812
|
/**
|
|
@@ -73,6 +73,11 @@ DataGridRaw.propTypes = {
|
|
|
73
73
|
/**
|
|
74
74
|
* If `true`, the Data Grid height is dynamic and follows the number of rows in the Data Grid.
|
|
75
75
|
* @default false
|
|
76
|
+
* @deprecated Use flex parent container instead: https://mui.com/x/react-data-grid/layout/#flex-parent-container
|
|
77
|
+
* @example
|
|
78
|
+
* <div style={{ display: 'flex', flexDirection: 'column' }}>
|
|
79
|
+
* <DataGrid />
|
|
80
|
+
* </div>
|
|
76
81
|
*/
|
|
77
82
|
autoHeight: PropTypes.bool,
|
|
78
83
|
/**
|
|
@@ -118,6 +123,11 @@ DataGridRaw.propTypes = {
|
|
|
118
123
|
* @default 150
|
|
119
124
|
*/
|
|
120
125
|
columnBufferPx: PropTypes.number,
|
|
126
|
+
/**
|
|
127
|
+
* Sets the height in pixels of the column group headers in the Data Grid.
|
|
128
|
+
* Inherits the `columnHeaderHeight` value if not set.
|
|
129
|
+
*/
|
|
130
|
+
columnGroupHeaderHeight: PropTypes.number,
|
|
121
131
|
columnGroupingModel: PropTypes.arrayOf(PropTypes.object),
|
|
122
132
|
/**
|
|
123
133
|
* Sets the height in pixel of the column headers in the Data Grid.
|
|
@@ -743,5 +753,10 @@ DataGridRaw.propTypes = {
|
|
|
743
753
|
/**
|
|
744
754
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
745
755
|
*/
|
|
746
|
-
sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])
|
|
756
|
+
sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
|
|
757
|
+
/**
|
|
758
|
+
* If `true`, the Data Grid will auto span the cells over the rows having the same value.
|
|
759
|
+
* @default false
|
|
760
|
+
*/
|
|
761
|
+
unstable_rowSpanning: PropTypes.bool
|
|
747
762
|
};
|
|
@@ -27,6 +27,7 @@ import { useGridColumnSpanning } from "../hooks/features/columns/useGridColumnSp
|
|
|
27
27
|
import { useGridColumnGrouping, columnGroupsStateInitializer } from "../hooks/features/columnGrouping/useGridColumnGrouping.js";
|
|
28
28
|
import { useGridVirtualization, virtualizationStateInitializer } from "../hooks/features/virtualization/index.js";
|
|
29
29
|
import { columnResizeStateInitializer, useGridColumnResize } from "../hooks/features/columnResize/useGridColumnResize.js";
|
|
30
|
+
import { rowSpanningStateInitializer, useGridRowSpanning } from "../hooks/features/rows/useGridRowSpanning.js";
|
|
30
31
|
export const useDataGridComponent = (inputApiRef, props) => {
|
|
31
32
|
const apiRef = useGridInitialization(inputApiRef, props);
|
|
32
33
|
|
|
@@ -48,6 +49,7 @@ export const useDataGridComponent = (inputApiRef, props) => {
|
|
|
48
49
|
useGridInitializeState(sortingStateInitializer, apiRef, props);
|
|
49
50
|
useGridInitializeState(preferencePanelStateInitializer, apiRef, props);
|
|
50
51
|
useGridInitializeState(filterStateInitializer, apiRef, props);
|
|
52
|
+
useGridInitializeState(rowSpanningStateInitializer, apiRef, props);
|
|
51
53
|
useGridInitializeState(densityStateInitializer, apiRef, props);
|
|
52
54
|
useGridInitializeState(columnResizeStateInitializer, apiRef, props);
|
|
53
55
|
useGridInitializeState(paginationStateInitializer, apiRef, props);
|
|
@@ -59,6 +61,7 @@ export const useDataGridComponent = (inputApiRef, props) => {
|
|
|
59
61
|
useGridRowSelection(apiRef, props);
|
|
60
62
|
useGridColumns(apiRef, props);
|
|
61
63
|
useGridRows(apiRef, props);
|
|
64
|
+
useGridRowSpanning(apiRef, props);
|
|
62
65
|
useGridParamsApi(apiRef);
|
|
63
66
|
useGridColumnSpanning(apiRef);
|
|
64
67
|
useGridColumnGrouping(apiRef, props);
|
|
@@ -73,7 +73,8 @@ export const DATA_GRID_PROPS_DEFAULT_VALUES = {
|
|
|
73
73
|
showColumnVerticalBorder: false,
|
|
74
74
|
sortingMode: 'client',
|
|
75
75
|
sortingOrder: ['asc', 'desc', null],
|
|
76
|
-
throttleRowsMs: 0
|
|
76
|
+
throttleRowsMs: 0,
|
|
77
|
+
unstable_rowSpanning: false
|
|
77
78
|
};
|
|
78
79
|
const defaultSlots = DATA_GRID_DEFAULT_SLOTS_COMPONENTS;
|
|
79
80
|
export const useDataGridProps = inProps => {
|
|
@@ -338,6 +338,7 @@ process.env.NODE_ENV !== "production" ? GridRow.propTypes = {
|
|
|
338
338
|
height: PropTypes.number.isRequired,
|
|
339
339
|
width: PropTypes.number.isRequired
|
|
340
340
|
}).isRequired,
|
|
341
|
+
groupHeaderHeight: PropTypes.number.isRequired,
|
|
341
342
|
hasScrollX: PropTypes.bool.isRequired,
|
|
342
343
|
hasScrollY: PropTypes.bool.isRequired,
|
|
343
344
|
headerFilterHeight: PropTypes.number.isRequired,
|
|
@@ -7,6 +7,7 @@ import PropTypes from 'prop-types';
|
|
|
7
7
|
import clsx from 'clsx';
|
|
8
8
|
import { unstable_useForkRef as useForkRef, unstable_composeClasses as composeClasses, unstable_ownerDocument as ownerDocument, unstable_capitalize as capitalize } from '@mui/utils';
|
|
9
9
|
import { fastMemo } from '@mui/x-internals/fastMemo';
|
|
10
|
+
import { useRtl } from '@mui/system/RtlProvider';
|
|
10
11
|
import { doesSupportPreventScroll } from "../../utils/doesSupportPreventScroll.js";
|
|
11
12
|
import { getDataGridUtilityClass, gridClasses } from "../../constants/gridClasses.js";
|
|
12
13
|
import { GridCellModes } from "../../models/index.js";
|
|
@@ -17,6 +18,7 @@ import { gridFocusCellSelector } from "../../hooks/features/focus/gridFocusState
|
|
|
17
18
|
import { MissingRowIdError } from "../../hooks/features/rows/useGridParamsApi.js";
|
|
18
19
|
import { shouldCellShowLeftBorder, shouldCellShowRightBorder } from "../../utils/cellBorderUtils.js";
|
|
19
20
|
import { GridPinnedColumnPosition } from "../../hooks/features/columns/gridColumnsInterfaces.js";
|
|
21
|
+
import { gridRowSpanningHiddenCellsSelector, gridRowSpanningSpannedCellsSelector } from "../../hooks/features/rows/gridRowSpanningSelectors.js";
|
|
20
22
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
21
23
|
export let PinnedPosition = /*#__PURE__*/function (PinnedPosition) {
|
|
22
24
|
PinnedPosition[PinnedPosition["NONE"] = 0] = "NONE";
|
|
@@ -106,6 +108,7 @@ const GridCell = /*#__PURE__*/React.forwardRef(function GridCell(props, ref) {
|
|
|
106
108
|
other = _objectWithoutPropertiesLoose(props, _excluded);
|
|
107
109
|
const apiRef = useGridApiContext();
|
|
108
110
|
const rootProps = useGridRootProps();
|
|
111
|
+
const isRtl = useRtl();
|
|
109
112
|
const field = column.field;
|
|
110
113
|
const cellParams = useGridSelector(apiRef, () => {
|
|
111
114
|
// This is required because `.getCellParams` tries to get the `state.rows.tree` entry
|
|
@@ -115,17 +118,19 @@ const GridCell = /*#__PURE__*/React.forwardRef(function GridCell(props, ref) {
|
|
|
115
118
|
const result = apiRef.current.getCellParams(rowId, field);
|
|
116
119
|
result.api = apiRef.current;
|
|
117
120
|
return result;
|
|
118
|
-
} catch (
|
|
119
|
-
if (
|
|
121
|
+
} catch (error) {
|
|
122
|
+
if (error instanceof MissingRowIdError) {
|
|
120
123
|
return EMPTY_CELL_PARAMS;
|
|
121
124
|
}
|
|
122
|
-
throw
|
|
125
|
+
throw error;
|
|
123
126
|
}
|
|
124
127
|
}, objectShallowCompare);
|
|
125
128
|
const isSelected = useGridSelector(apiRef, () => apiRef.current.unstable_applyPipeProcessors('isCellSelected', false, {
|
|
126
129
|
id: rowId,
|
|
127
130
|
field
|
|
128
131
|
}));
|
|
132
|
+
const hiddenCells = useGridSelector(apiRef, gridRowSpanningHiddenCellsSelector);
|
|
133
|
+
const spannedCells = useGridSelector(apiRef, gridRowSpanningSpannedCellsSelector);
|
|
129
134
|
const {
|
|
130
135
|
cellMode,
|
|
131
136
|
hasFocus,
|
|
@@ -198,6 +203,8 @@ const GridCell = /*#__PURE__*/React.forwardRef(function GridCell(props, ref) {
|
|
|
198
203
|
propHandler(event);
|
|
199
204
|
}
|
|
200
205
|
}, [apiRef, field, rowId]);
|
|
206
|
+
const isCellRowSpanned = hiddenCells[rowId]?.[field] ?? false;
|
|
207
|
+
const rowSpan = spannedCells[rowId]?.[field] ?? 1;
|
|
201
208
|
const style = React.useMemo(() => {
|
|
202
209
|
if (isNotVisible) {
|
|
203
210
|
return {
|
|
@@ -210,14 +217,21 @@ const GridCell = /*#__PURE__*/React.forwardRef(function GridCell(props, ref) {
|
|
|
210
217
|
const cellStyle = _extends({
|
|
211
218
|
'--width': `${width}px`
|
|
212
219
|
}, styleProp);
|
|
213
|
-
|
|
214
|
-
|
|
220
|
+
const isLeftPinned = pinnedPosition === PinnedPosition.LEFT;
|
|
221
|
+
const isRightPinned = pinnedPosition === PinnedPosition.RIGHT;
|
|
222
|
+
if (isLeftPinned || isRightPinned) {
|
|
223
|
+
let side = isLeftPinned ? 'left' : 'right';
|
|
224
|
+
if (isRtl) {
|
|
225
|
+
side = isLeftPinned ? 'right' : 'left';
|
|
226
|
+
}
|
|
227
|
+
cellStyle[side] = pinnedOffset;
|
|
215
228
|
}
|
|
216
|
-
if (
|
|
217
|
-
cellStyle.
|
|
229
|
+
if (rowSpan > 1) {
|
|
230
|
+
cellStyle.height = `calc(var(--height) * ${rowSpan})`;
|
|
231
|
+
cellStyle.zIndex = 5;
|
|
218
232
|
}
|
|
219
233
|
return cellStyle;
|
|
220
|
-
}, [width, isNotVisible, styleProp, pinnedOffset, pinnedPosition]);
|
|
234
|
+
}, [width, isNotVisible, styleProp, pinnedOffset, pinnedPosition, isRtl, rowSpan]);
|
|
221
235
|
React.useEffect(() => {
|
|
222
236
|
if (!hasFocus || cellMode === GridCellModes.Edit) {
|
|
223
237
|
return;
|
|
@@ -237,6 +251,15 @@ const GridCell = /*#__PURE__*/React.forwardRef(function GridCell(props, ref) {
|
|
|
237
251
|
}
|
|
238
252
|
}
|
|
239
253
|
}, [hasFocus, cellMode, apiRef]);
|
|
254
|
+
if (isCellRowSpanned) {
|
|
255
|
+
return /*#__PURE__*/_jsx("div", {
|
|
256
|
+
"data-colindex": colIndex,
|
|
257
|
+
role: "presentation",
|
|
258
|
+
style: _extends({
|
|
259
|
+
width: 'var(--width)'
|
|
260
|
+
}, style)
|
|
261
|
+
});
|
|
262
|
+
}
|
|
240
263
|
if (cellParams === EMPTY_CELL_PARAMS) {
|
|
241
264
|
return null;
|
|
242
265
|
}
|
|
@@ -291,12 +314,13 @@ const GridCell = /*#__PURE__*/React.forwardRef(function GridCell(props, ref) {
|
|
|
291
314
|
};
|
|
292
315
|
return /*#__PURE__*/_jsx("div", _extends({
|
|
293
316
|
ref: handleRef,
|
|
294
|
-
className: clsx(
|
|
317
|
+
className: clsx(classes.root, classNames, className),
|
|
295
318
|
role: "gridcell",
|
|
296
319
|
"data-field": field,
|
|
297
320
|
"data-colindex": colIndex,
|
|
298
321
|
"aria-colindex": colIndex + 1,
|
|
299
322
|
"aria-colspan": colSpan,
|
|
323
|
+
"aria-rowspan": rowSpan,
|
|
300
324
|
style: style,
|
|
301
325
|
title: title,
|
|
302
326
|
tabIndex: tabIndex,
|
|
@@ -36,7 +36,7 @@ export const GridBaseColumnHeaders = /*#__PURE__*/React.forwardRef(function Grid
|
|
|
36
36
|
const classes = useUtilityClasses(rootProps);
|
|
37
37
|
return /*#__PURE__*/_jsx(GridColumnHeadersRoot, _extends({
|
|
38
38
|
ref: ref,
|
|
39
|
-
className: clsx(
|
|
39
|
+
className: clsx(classes.root, className),
|
|
40
40
|
ownerState: rootProps
|
|
41
41
|
}, other, {
|
|
42
42
|
role: "presentation"
|