@mui/x-data-grid 5.17.13 → 5.17.14
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 +17 -0
- package/hooks/features/selection/useGridSelection.js +14 -7
- package/index.js +1 -1
- package/legacy/hooks/features/selection/useGridSelection.js +14 -7
- package/legacy/index.js +1 -1
- package/legacy/locales/ukUA.js +24 -20
- package/locales/ukUA.js +20 -20
- package/modern/hooks/features/selection/useGridSelection.js +12 -7
- package/modern/index.js +1 -1
- package/modern/locales/ukUA.js +20 -20
- package/node/hooks/features/selection/useGridSelection.js +15 -7
- package/node/index.js +1 -1
- package/node/locales/ukUA.js +20 -20
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,23 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## 5.17.14
|
|
7
|
+
|
|
8
|
+
_Dec 1, 2022_
|
|
9
|
+
|
|
10
|
+
We'd like to offer a big thanks to the 3 contributors who made this release possible. Here are some highlights ✨:
|
|
11
|
+
|
|
12
|
+
- 🌍 Improve Ukrainian (uk-UA) locale (#7035) @rettoua
|
|
13
|
+
- 🐞 Bugfixes
|
|
14
|
+
|
|
15
|
+
### `@mui/x-data-grid@v5.17.14` / `@mui/x-data-grid-pro@v5.17.14` / `@mui/x-data-grid-premium@v5.17.14`
|
|
16
|
+
|
|
17
|
+
#### Changes
|
|
18
|
+
|
|
19
|
+
- [DataGrid] Fix row selection when clicking blank cell (#7056) @yami03
|
|
20
|
+
- [DataGridPremium] Update cache before hydrating columns (#7043) @m4theushw
|
|
21
|
+
- [l10n] Improve Ukrainian (uk-UA) locale (#7035) @rettoua
|
|
22
|
+
|
|
6
23
|
## 5.17.13
|
|
7
24
|
|
|
8
25
|
_Nov 24, 2022_
|
|
@@ -13,6 +13,7 @@ import { GridCellModes } from '../../../models/gridEditRowModel';
|
|
|
13
13
|
import { isKeyboardEvent, isNavigationKey } from '../../../utils/keyboardUtils';
|
|
14
14
|
import { getVisibleRows, useGridVisibleRows } from '../../utils/useGridVisibleRows';
|
|
15
15
|
import { GRID_DETAIL_PANEL_TOGGLE_FIELD } from '../../../constants/gridDetailPanelToggleField';
|
|
16
|
+
import { gridClasses } from '../../../constants/gridClasses';
|
|
16
17
|
|
|
17
18
|
const getSelectionModelPropValue = (selectionModelProp, prevSelectionModel) => {
|
|
18
19
|
if (selectionModelProp == null) {
|
|
@@ -248,30 +249,36 @@ export const useGridSelection = (apiRef, props) => {
|
|
|
248
249
|
apiRef.current.selectRow(id, !isSelected, false);
|
|
249
250
|
}
|
|
250
251
|
}, [apiRef, canHaveMultipleSelection, checkboxSelection]);
|
|
251
|
-
const
|
|
252
|
+
const handleRowClick = React.useCallback((params, event) => {
|
|
253
|
+
var _closest;
|
|
254
|
+
|
|
252
255
|
if (disableSelectionOnClick) {
|
|
253
256
|
return;
|
|
254
257
|
}
|
|
255
258
|
|
|
256
|
-
|
|
259
|
+
const field = (_closest = event.target.closest(`.${gridClasses.cell}`)) == null ? void 0 : _closest.getAttribute('data-field');
|
|
260
|
+
|
|
261
|
+
if (field === GRID_CHECKBOX_SELECTION_COL_DEF.field) {
|
|
257
262
|
// click on checkbox should not trigger row selection
|
|
258
263
|
return;
|
|
259
264
|
}
|
|
260
265
|
|
|
261
|
-
if (
|
|
266
|
+
if (field === GRID_DETAIL_PANEL_TOGGLE_FIELD) {
|
|
262
267
|
// click to open the detail panel should not select the row
|
|
263
268
|
return;
|
|
264
269
|
}
|
|
265
270
|
|
|
266
|
-
if (
|
|
267
|
-
const column = apiRef.current.getColumn(
|
|
271
|
+
if (field) {
|
|
272
|
+
const column = apiRef.current.getColumn(field);
|
|
268
273
|
|
|
269
274
|
if (column.type === GRID_ACTIONS_COLUMN_TYPE) {
|
|
270
275
|
return;
|
|
271
276
|
}
|
|
272
277
|
}
|
|
273
278
|
|
|
274
|
-
|
|
279
|
+
const rowNode = apiRef.current.getRowNode(params.id);
|
|
280
|
+
|
|
281
|
+
if (rowNode.isPinned) {
|
|
275
282
|
return;
|
|
276
283
|
}
|
|
277
284
|
|
|
@@ -371,7 +378,7 @@ export const useGridSelection = (apiRef, props) => {
|
|
|
371
378
|
}
|
|
372
379
|
}, [apiRef, handleSingleRowSelection, selectRows, visibleRows.rows, canHaveMultipleSelection]);
|
|
373
380
|
useGridApiEventHandler(apiRef, 'sortedRowsSet', removeOutdatedSelection);
|
|
374
|
-
useGridApiEventHandler(apiRef, '
|
|
381
|
+
useGridApiEventHandler(apiRef, 'rowClick', handleRowClick);
|
|
375
382
|
useGridApiEventHandler(apiRef, 'rowSelectionCheckboxChange', handleRowSelectionCheckboxChange);
|
|
376
383
|
useGridApiEventHandler(apiRef, 'headerSelectionCheckboxChange', handleHeaderSelectionCheckboxChange);
|
|
377
384
|
useGridApiEventHandler(apiRef, 'cellMouseDown', preventSelectionOnShift);
|
package/index.js
CHANGED
|
@@ -14,6 +14,7 @@ import { GridCellModes } from '../../../models/gridEditRowModel';
|
|
|
14
14
|
import { isKeyboardEvent, isNavigationKey } from '../../../utils/keyboardUtils';
|
|
15
15
|
import { getVisibleRows, useGridVisibleRows } from '../../utils/useGridVisibleRows';
|
|
16
16
|
import { GRID_DETAIL_PANEL_TOGGLE_FIELD } from '../../../constants/gridDetailPanelToggleField';
|
|
17
|
+
import { gridClasses } from '../../../constants/gridClasses';
|
|
17
18
|
|
|
18
19
|
var getSelectionModelPropValue = function getSelectionModelPropValue(selectionModelProp, prevSelectionModel) {
|
|
19
20
|
if (selectionModelProp == null) {
|
|
@@ -273,30 +274,36 @@ export var useGridSelection = function useGridSelection(apiRef, props) {
|
|
|
273
274
|
apiRef.current.selectRow(id, !isSelected, false);
|
|
274
275
|
}
|
|
275
276
|
}, [apiRef, canHaveMultipleSelection, checkboxSelection]);
|
|
276
|
-
var
|
|
277
|
+
var handleRowClick = React.useCallback(function (params, event) {
|
|
278
|
+
var _closest;
|
|
279
|
+
|
|
277
280
|
if (disableSelectionOnClick) {
|
|
278
281
|
return;
|
|
279
282
|
}
|
|
280
283
|
|
|
281
|
-
|
|
284
|
+
var field = (_closest = event.target.closest(".".concat(gridClasses.cell))) == null ? void 0 : _closest.getAttribute('data-field');
|
|
285
|
+
|
|
286
|
+
if (field === GRID_CHECKBOX_SELECTION_COL_DEF.field) {
|
|
282
287
|
// click on checkbox should not trigger row selection
|
|
283
288
|
return;
|
|
284
289
|
}
|
|
285
290
|
|
|
286
|
-
if (
|
|
291
|
+
if (field === GRID_DETAIL_PANEL_TOGGLE_FIELD) {
|
|
287
292
|
// click to open the detail panel should not select the row
|
|
288
293
|
return;
|
|
289
294
|
}
|
|
290
295
|
|
|
291
|
-
if (
|
|
292
|
-
var column = apiRef.current.getColumn(
|
|
296
|
+
if (field) {
|
|
297
|
+
var column = apiRef.current.getColumn(field);
|
|
293
298
|
|
|
294
299
|
if (column.type === GRID_ACTIONS_COLUMN_TYPE) {
|
|
295
300
|
return;
|
|
296
301
|
}
|
|
297
302
|
}
|
|
298
303
|
|
|
299
|
-
|
|
304
|
+
var rowNode = apiRef.current.getRowNode(params.id);
|
|
305
|
+
|
|
306
|
+
if (rowNode.isPinned) {
|
|
300
307
|
return;
|
|
301
308
|
}
|
|
302
309
|
|
|
@@ -398,7 +405,7 @@ export var useGridSelection = function useGridSelection(apiRef, props) {
|
|
|
398
405
|
}
|
|
399
406
|
}, [apiRef, handleSingleRowSelection, selectRows, visibleRows.rows, canHaveMultipleSelection]);
|
|
400
407
|
useGridApiEventHandler(apiRef, 'sortedRowsSet', removeOutdatedSelection);
|
|
401
|
-
useGridApiEventHandler(apiRef, '
|
|
408
|
+
useGridApiEventHandler(apiRef, 'rowClick', handleRowClick);
|
|
402
409
|
useGridApiEventHandler(apiRef, 'rowSelectionCheckboxChange', handleRowSelectionCheckboxChange);
|
|
403
410
|
useGridApiEventHandler(apiRef, 'headerSelectionCheckboxChange', handleHeaderSelectionCheckboxChange);
|
|
404
411
|
useGridApiEventHandler(apiRef, 'cellMouseDown', preventSelectionOnShift);
|
package/legacy/index.js
CHANGED
package/legacy/locales/ukUA.js
CHANGED
|
@@ -41,15 +41,15 @@ var ukUAGrid = {
|
|
|
41
41
|
});
|
|
42
42
|
},
|
|
43
43
|
// Quick filter toolbar field
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
44
|
+
toolbarQuickFilterPlaceholder: 'Пошук…',
|
|
45
|
+
toolbarQuickFilterLabel: 'Пошук',
|
|
46
|
+
toolbarQuickFilterDeleteIconLabel: 'Очистити',
|
|
47
47
|
// Export selector toolbar button text
|
|
48
48
|
toolbarExport: 'Експорт',
|
|
49
49
|
toolbarExportLabel: 'Експорт',
|
|
50
50
|
toolbarExportCSV: 'Завантажити у форматі CSV',
|
|
51
51
|
toolbarExportPrint: 'Друк',
|
|
52
|
-
|
|
52
|
+
toolbarExportExcel: 'Завантажити у форматі Excel',
|
|
53
53
|
// Columns panel text
|
|
54
54
|
columnsPanelTextFieldLabel: 'Знайти стовпець',
|
|
55
55
|
columnsPanelTextFieldPlaceholder: 'Заголовок стовпця',
|
|
@@ -59,7 +59,7 @@ var ukUAGrid = {
|
|
|
59
59
|
// Filter panel text
|
|
60
60
|
filterPanelAddFilter: 'Додати фільтр',
|
|
61
61
|
filterPanelDeleteIconLabel: 'Видалити',
|
|
62
|
-
|
|
62
|
+
filterPanelLinkOperator: 'Логічна функція',
|
|
63
63
|
filterPanelOperators: 'Оператори',
|
|
64
64
|
// TODO v6: rename to filterPanelOperator
|
|
65
65
|
filterPanelOperatorAnd: 'І',
|
|
@@ -80,7 +80,7 @@ var ukUAGrid = {
|
|
|
80
80
|
filterOperatorOnOrBefore: 'менше або дорівнює',
|
|
81
81
|
filterOperatorIsEmpty: 'порожній',
|
|
82
82
|
filterOperatorIsNotEmpty: 'не порожній',
|
|
83
|
-
|
|
83
|
+
filterOperatorIsAnyOf: 'будь-що із',
|
|
84
84
|
// Filter values text
|
|
85
85
|
filterValueAny: 'будь-який',
|
|
86
86
|
filterValueTrue: 'так',
|
|
@@ -119,10 +119,10 @@ var ukUAGrid = {
|
|
|
119
119
|
},
|
|
120
120
|
// Checkbox selection text
|
|
121
121
|
checkboxSelectionHeaderName: 'Вибір прапорця',
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
122
|
+
checkboxSelectionSelectAllRows: 'Вибрати всі рядки',
|
|
123
|
+
checkboxSelectionUnselectAllRows: 'Скасувати вибір всіх рядків',
|
|
124
|
+
checkboxSelectionSelectRow: 'Вибрати рядок',
|
|
125
|
+
checkboxSelectionUnselectRow: 'Скасувати вибір рядка',
|
|
126
126
|
// Boolean cell text
|
|
127
127
|
booleanCellTrueLabel: 'так',
|
|
128
128
|
booleanCellFalseLabel: 'ні',
|
|
@@ -135,19 +135,23 @@ var ukUAGrid = {
|
|
|
135
135
|
// Tree Data
|
|
136
136
|
treeDataGroupingHeaderName: 'Група',
|
|
137
137
|
treeDataExpand: 'показати дочірні елементи',
|
|
138
|
-
treeDataCollapse: 'приховати дочірні елементи'
|
|
139
|
-
//
|
|
140
|
-
|
|
141
|
-
|
|
138
|
+
treeDataCollapse: 'приховати дочірні елементи',
|
|
139
|
+
// Grouping columns
|
|
140
|
+
groupingColumnHeaderName: 'Група',
|
|
141
|
+
groupColumn: function groupColumn(name) {
|
|
142
|
+
return "\u0413\u0440\u0443\u043F\u0443\u0432\u0430\u0442\u0438 \u0437\u0430 ".concat(name);
|
|
143
|
+
},
|
|
144
|
+
unGroupColumn: function unGroupColumn(name) {
|
|
145
|
+
return "\u0412\u0456\u0434\u043C\u0456\u043D\u0438\u0442\u0438 \u0433\u0440\u0443\u043F\u0443\u0432\u0430\u043D\u043D\u044F \u0437\u0430 ".concat(name);
|
|
146
|
+
},
|
|
142
147
|
// Master/detail
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
148
|
+
detailPanelToggle: 'Перемикач панелі деталей',
|
|
149
|
+
expandDetailPanel: 'Показати',
|
|
150
|
+
collapseDetailPanel: 'Приховати',
|
|
146
151
|
// Row reordering text
|
|
147
|
-
|
|
152
|
+
rowReorderingHeaderName: 'Порядок рядків',
|
|
148
153
|
// Aggregation
|
|
149
|
-
//
|
|
150
|
-
// aggregationFunctionLabelSum: 'sum',
|
|
154
|
+
aggregationMenuItemHeader: 'Агрегація' // aggregationFunctionLabelSum: 'sum',
|
|
151
155
|
// aggregationFunctionLabelAvg: 'avg',
|
|
152
156
|
// aggregationFunctionLabelMin: 'min',
|
|
153
157
|
// aggregationFunctionLabelMax: 'max',
|
package/locales/ukUA.js
CHANGED
|
@@ -39,15 +39,15 @@ const ukUAGrid = {
|
|
|
39
39
|
many: 'активних фільтрів'
|
|
40
40
|
}),
|
|
41
41
|
// Quick filter toolbar field
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
42
|
+
toolbarQuickFilterPlaceholder: 'Пошук…',
|
|
43
|
+
toolbarQuickFilterLabel: 'Пошук',
|
|
44
|
+
toolbarQuickFilterDeleteIconLabel: 'Очистити',
|
|
45
45
|
// Export selector toolbar button text
|
|
46
46
|
toolbarExport: 'Експорт',
|
|
47
47
|
toolbarExportLabel: 'Експорт',
|
|
48
48
|
toolbarExportCSV: 'Завантажити у форматі CSV',
|
|
49
49
|
toolbarExportPrint: 'Друк',
|
|
50
|
-
|
|
50
|
+
toolbarExportExcel: 'Завантажити у форматі Excel',
|
|
51
51
|
// Columns panel text
|
|
52
52
|
columnsPanelTextFieldLabel: 'Знайти стовпець',
|
|
53
53
|
columnsPanelTextFieldPlaceholder: 'Заголовок стовпця',
|
|
@@ -57,7 +57,7 @@ const ukUAGrid = {
|
|
|
57
57
|
// Filter panel text
|
|
58
58
|
filterPanelAddFilter: 'Додати фільтр',
|
|
59
59
|
filterPanelDeleteIconLabel: 'Видалити',
|
|
60
|
-
|
|
60
|
+
filterPanelLinkOperator: 'Логічна функція',
|
|
61
61
|
filterPanelOperators: 'Оператори',
|
|
62
62
|
// TODO v6: rename to filterPanelOperator
|
|
63
63
|
filterPanelOperatorAnd: 'І',
|
|
@@ -78,7 +78,7 @@ const ukUAGrid = {
|
|
|
78
78
|
filterOperatorOnOrBefore: 'менше або дорівнює',
|
|
79
79
|
filterOperatorIsEmpty: 'порожній',
|
|
80
80
|
filterOperatorIsNotEmpty: 'не порожній',
|
|
81
|
-
|
|
81
|
+
filterOperatorIsAnyOf: 'будь-що із',
|
|
82
82
|
// Filter values text
|
|
83
83
|
filterValueAny: 'будь-який',
|
|
84
84
|
filterValueTrue: 'так',
|
|
@@ -111,10 +111,10 @@ const ukUAGrid = {
|
|
|
111
111
|
footerTotalVisibleRows: (visibleCount, totalCount) => `${visibleCount.toLocaleString()} з ${totalCount.toLocaleString()}`,
|
|
112
112
|
// Checkbox selection text
|
|
113
113
|
checkboxSelectionHeaderName: 'Вибір прапорця',
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
114
|
+
checkboxSelectionSelectAllRows: 'Вибрати всі рядки',
|
|
115
|
+
checkboxSelectionUnselectAllRows: 'Скасувати вибір всіх рядків',
|
|
116
|
+
checkboxSelectionSelectRow: 'Вибрати рядок',
|
|
117
|
+
checkboxSelectionUnselectRow: 'Скасувати вибір рядка',
|
|
118
118
|
// Boolean cell text
|
|
119
119
|
booleanCellTrueLabel: 'так',
|
|
120
120
|
booleanCellFalseLabel: 'ні',
|
|
@@ -127,19 +127,19 @@ const ukUAGrid = {
|
|
|
127
127
|
// Tree Data
|
|
128
128
|
treeDataGroupingHeaderName: 'Група',
|
|
129
129
|
treeDataExpand: 'показати дочірні елементи',
|
|
130
|
-
treeDataCollapse: 'приховати дочірні елементи'
|
|
131
|
-
//
|
|
132
|
-
|
|
133
|
-
|
|
130
|
+
treeDataCollapse: 'приховати дочірні елементи',
|
|
131
|
+
// Grouping columns
|
|
132
|
+
groupingColumnHeaderName: 'Група',
|
|
133
|
+
groupColumn: name => `Групувати за ${name}`,
|
|
134
|
+
unGroupColumn: name => `Відмінити групування за ${name}`,
|
|
134
135
|
// Master/detail
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
136
|
+
detailPanelToggle: 'Перемикач панелі деталей',
|
|
137
|
+
expandDetailPanel: 'Показати',
|
|
138
|
+
collapseDetailPanel: 'Приховати',
|
|
138
139
|
// Row reordering text
|
|
139
|
-
|
|
140
|
+
rowReorderingHeaderName: 'Порядок рядків',
|
|
140
141
|
// Aggregation
|
|
141
|
-
//
|
|
142
|
-
// aggregationFunctionLabelSum: 'sum',
|
|
142
|
+
aggregationMenuItemHeader: 'Агрегація' // aggregationFunctionLabelSum: 'sum',
|
|
143
143
|
// aggregationFunctionLabelAvg: 'avg',
|
|
144
144
|
// aggregationFunctionLabelMin: 'min',
|
|
145
145
|
// aggregationFunctionLabelMax: 'max',
|
|
@@ -13,6 +13,7 @@ import { GridCellModes } from '../../../models/gridEditRowModel';
|
|
|
13
13
|
import { isKeyboardEvent, isNavigationKey } from '../../../utils/keyboardUtils';
|
|
14
14
|
import { getVisibleRows, useGridVisibleRows } from '../../utils/useGridVisibleRows';
|
|
15
15
|
import { GRID_DETAIL_PANEL_TOGGLE_FIELD } from '../../../constants/gridDetailPanelToggleField';
|
|
16
|
+
import { gridClasses } from '../../../constants/gridClasses';
|
|
16
17
|
|
|
17
18
|
const getSelectionModelPropValue = (selectionModelProp, prevSelectionModel) => {
|
|
18
19
|
if (selectionModelProp == null) {
|
|
@@ -242,30 +243,34 @@ export const useGridSelection = (apiRef, props) => {
|
|
|
242
243
|
apiRef.current.selectRow(id, !isSelected, false);
|
|
243
244
|
}
|
|
244
245
|
}, [apiRef, canHaveMultipleSelection, checkboxSelection]);
|
|
245
|
-
const
|
|
246
|
+
const handleRowClick = React.useCallback((params, event) => {
|
|
246
247
|
if (disableSelectionOnClick) {
|
|
247
248
|
return;
|
|
248
249
|
}
|
|
249
250
|
|
|
250
|
-
|
|
251
|
+
const field = event.target.closest(`.${gridClasses.cell}`)?.getAttribute('data-field');
|
|
252
|
+
|
|
253
|
+
if (field === GRID_CHECKBOX_SELECTION_COL_DEF.field) {
|
|
251
254
|
// click on checkbox should not trigger row selection
|
|
252
255
|
return;
|
|
253
256
|
}
|
|
254
257
|
|
|
255
|
-
if (
|
|
258
|
+
if (field === GRID_DETAIL_PANEL_TOGGLE_FIELD) {
|
|
256
259
|
// click to open the detail panel should not select the row
|
|
257
260
|
return;
|
|
258
261
|
}
|
|
259
262
|
|
|
260
|
-
if (
|
|
261
|
-
const column = apiRef.current.getColumn(
|
|
263
|
+
if (field) {
|
|
264
|
+
const column = apiRef.current.getColumn(field);
|
|
262
265
|
|
|
263
266
|
if (column.type === GRID_ACTIONS_COLUMN_TYPE) {
|
|
264
267
|
return;
|
|
265
268
|
}
|
|
266
269
|
}
|
|
267
270
|
|
|
268
|
-
|
|
271
|
+
const rowNode = apiRef.current.getRowNode(params.id);
|
|
272
|
+
|
|
273
|
+
if (rowNode.isPinned) {
|
|
269
274
|
return;
|
|
270
275
|
}
|
|
271
276
|
|
|
@@ -363,7 +368,7 @@ export const useGridSelection = (apiRef, props) => {
|
|
|
363
368
|
}
|
|
364
369
|
}, [apiRef, handleSingleRowSelection, selectRows, visibleRows.rows, canHaveMultipleSelection]);
|
|
365
370
|
useGridApiEventHandler(apiRef, 'sortedRowsSet', removeOutdatedSelection);
|
|
366
|
-
useGridApiEventHandler(apiRef, '
|
|
371
|
+
useGridApiEventHandler(apiRef, 'rowClick', handleRowClick);
|
|
367
372
|
useGridApiEventHandler(apiRef, 'rowSelectionCheckboxChange', handleRowSelectionCheckboxChange);
|
|
368
373
|
useGridApiEventHandler(apiRef, 'headerSelectionCheckboxChange', handleHeaderSelectionCheckboxChange);
|
|
369
374
|
useGridApiEventHandler(apiRef, 'cellMouseDown', preventSelectionOnShift);
|
package/modern/index.js
CHANGED
package/modern/locales/ukUA.js
CHANGED
|
@@ -39,15 +39,15 @@ const ukUAGrid = {
|
|
|
39
39
|
many: 'активних фільтрів'
|
|
40
40
|
}),
|
|
41
41
|
// Quick filter toolbar field
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
42
|
+
toolbarQuickFilterPlaceholder: 'Пошук…',
|
|
43
|
+
toolbarQuickFilterLabel: 'Пошук',
|
|
44
|
+
toolbarQuickFilterDeleteIconLabel: 'Очистити',
|
|
45
45
|
// Export selector toolbar button text
|
|
46
46
|
toolbarExport: 'Експорт',
|
|
47
47
|
toolbarExportLabel: 'Експорт',
|
|
48
48
|
toolbarExportCSV: 'Завантажити у форматі CSV',
|
|
49
49
|
toolbarExportPrint: 'Друк',
|
|
50
|
-
|
|
50
|
+
toolbarExportExcel: 'Завантажити у форматі Excel',
|
|
51
51
|
// Columns panel text
|
|
52
52
|
columnsPanelTextFieldLabel: 'Знайти стовпець',
|
|
53
53
|
columnsPanelTextFieldPlaceholder: 'Заголовок стовпця',
|
|
@@ -57,7 +57,7 @@ const ukUAGrid = {
|
|
|
57
57
|
// Filter panel text
|
|
58
58
|
filterPanelAddFilter: 'Додати фільтр',
|
|
59
59
|
filterPanelDeleteIconLabel: 'Видалити',
|
|
60
|
-
|
|
60
|
+
filterPanelLinkOperator: 'Логічна функція',
|
|
61
61
|
filterPanelOperators: 'Оператори',
|
|
62
62
|
// TODO v6: rename to filterPanelOperator
|
|
63
63
|
filterPanelOperatorAnd: 'І',
|
|
@@ -78,7 +78,7 @@ const ukUAGrid = {
|
|
|
78
78
|
filterOperatorOnOrBefore: 'менше або дорівнює',
|
|
79
79
|
filterOperatorIsEmpty: 'порожній',
|
|
80
80
|
filterOperatorIsNotEmpty: 'не порожній',
|
|
81
|
-
|
|
81
|
+
filterOperatorIsAnyOf: 'будь-що із',
|
|
82
82
|
// Filter values text
|
|
83
83
|
filterValueAny: 'будь-який',
|
|
84
84
|
filterValueTrue: 'так',
|
|
@@ -111,10 +111,10 @@ const ukUAGrid = {
|
|
|
111
111
|
footerTotalVisibleRows: (visibleCount, totalCount) => `${visibleCount.toLocaleString()} з ${totalCount.toLocaleString()}`,
|
|
112
112
|
// Checkbox selection text
|
|
113
113
|
checkboxSelectionHeaderName: 'Вибір прапорця',
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
114
|
+
checkboxSelectionSelectAllRows: 'Вибрати всі рядки',
|
|
115
|
+
checkboxSelectionUnselectAllRows: 'Скасувати вибір всіх рядків',
|
|
116
|
+
checkboxSelectionSelectRow: 'Вибрати рядок',
|
|
117
|
+
checkboxSelectionUnselectRow: 'Скасувати вибір рядка',
|
|
118
118
|
// Boolean cell text
|
|
119
119
|
booleanCellTrueLabel: 'так',
|
|
120
120
|
booleanCellFalseLabel: 'ні',
|
|
@@ -127,19 +127,19 @@ const ukUAGrid = {
|
|
|
127
127
|
// Tree Data
|
|
128
128
|
treeDataGroupingHeaderName: 'Група',
|
|
129
129
|
treeDataExpand: 'показати дочірні елементи',
|
|
130
|
-
treeDataCollapse: 'приховати дочірні елементи'
|
|
131
|
-
//
|
|
132
|
-
|
|
133
|
-
|
|
130
|
+
treeDataCollapse: 'приховати дочірні елементи',
|
|
131
|
+
// Grouping columns
|
|
132
|
+
groupingColumnHeaderName: 'Група',
|
|
133
|
+
groupColumn: name => `Групувати за ${name}`,
|
|
134
|
+
unGroupColumn: name => `Відмінити групування за ${name}`,
|
|
134
135
|
// Master/detail
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
136
|
+
detailPanelToggle: 'Перемикач панелі деталей',
|
|
137
|
+
expandDetailPanel: 'Показати',
|
|
138
|
+
collapseDetailPanel: 'Приховати',
|
|
138
139
|
// Row reordering text
|
|
139
|
-
|
|
140
|
+
rowReorderingHeaderName: 'Порядок рядків',
|
|
140
141
|
// Aggregation
|
|
141
|
-
//
|
|
142
|
-
// aggregationFunctionLabelSum: 'sum',
|
|
142
|
+
aggregationMenuItemHeader: 'Агрегація' // aggregationFunctionLabelSum: 'sum',
|
|
143
143
|
// aggregationFunctionLabelAvg: 'avg',
|
|
144
144
|
// aggregationFunctionLabelMin: 'min',
|
|
145
145
|
// aggregationFunctionLabelMax: 'max',
|
|
@@ -37,6 +37,8 @@ var _useGridVisibleRows = require("../../utils/useGridVisibleRows");
|
|
|
37
37
|
|
|
38
38
|
var _gridDetailPanelToggleField = require("../../../constants/gridDetailPanelToggleField");
|
|
39
39
|
|
|
40
|
+
var _gridClasses = require("../../../constants/gridClasses");
|
|
41
|
+
|
|
40
42
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
41
43
|
|
|
42
44
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
@@ -276,30 +278,36 @@ const useGridSelection = (apiRef, props) => {
|
|
|
276
278
|
apiRef.current.selectRow(id, !isSelected, false);
|
|
277
279
|
}
|
|
278
280
|
}, [apiRef, canHaveMultipleSelection, checkboxSelection]);
|
|
279
|
-
const
|
|
281
|
+
const handleRowClick = React.useCallback((params, event) => {
|
|
282
|
+
var _closest;
|
|
283
|
+
|
|
280
284
|
if (disableSelectionOnClick) {
|
|
281
285
|
return;
|
|
282
286
|
}
|
|
283
287
|
|
|
284
|
-
|
|
288
|
+
const field = (_closest = event.target.closest(`.${_gridClasses.gridClasses.cell}`)) == null ? void 0 : _closest.getAttribute('data-field');
|
|
289
|
+
|
|
290
|
+
if (field === _colDef.GRID_CHECKBOX_SELECTION_COL_DEF.field) {
|
|
285
291
|
// click on checkbox should not trigger row selection
|
|
286
292
|
return;
|
|
287
293
|
}
|
|
288
294
|
|
|
289
|
-
if (
|
|
295
|
+
if (field === _gridDetailPanelToggleField.GRID_DETAIL_PANEL_TOGGLE_FIELD) {
|
|
290
296
|
// click to open the detail panel should not select the row
|
|
291
297
|
return;
|
|
292
298
|
}
|
|
293
299
|
|
|
294
|
-
if (
|
|
295
|
-
const column = apiRef.current.getColumn(
|
|
300
|
+
if (field) {
|
|
301
|
+
const column = apiRef.current.getColumn(field);
|
|
296
302
|
|
|
297
303
|
if (column.type === _colDef.GRID_ACTIONS_COLUMN_TYPE) {
|
|
298
304
|
return;
|
|
299
305
|
}
|
|
300
306
|
}
|
|
301
307
|
|
|
302
|
-
|
|
308
|
+
const rowNode = apiRef.current.getRowNode(params.id);
|
|
309
|
+
|
|
310
|
+
if (rowNode.isPinned) {
|
|
303
311
|
return;
|
|
304
312
|
}
|
|
305
313
|
|
|
@@ -399,7 +407,7 @@ const useGridSelection = (apiRef, props) => {
|
|
|
399
407
|
}
|
|
400
408
|
}, [apiRef, handleSingleRowSelection, selectRows, visibleRows.rows, canHaveMultipleSelection]);
|
|
401
409
|
(0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, 'sortedRowsSet', removeOutdatedSelection);
|
|
402
|
-
(0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, '
|
|
410
|
+
(0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, 'rowClick', handleRowClick);
|
|
403
411
|
(0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, 'rowSelectionCheckboxChange', handleRowSelectionCheckboxChange);
|
|
404
412
|
(0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, 'headerSelectionCheckboxChange', handleHeaderSelectionCheckboxChange);
|
|
405
413
|
(0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, 'cellMouseDown', preventSelectionOnShift);
|
package/node/index.js
CHANGED
package/node/locales/ukUA.js
CHANGED
|
@@ -47,15 +47,15 @@ const ukUAGrid = {
|
|
|
47
47
|
many: 'активних фільтрів'
|
|
48
48
|
}),
|
|
49
49
|
// Quick filter toolbar field
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
50
|
+
toolbarQuickFilterPlaceholder: 'Пошук…',
|
|
51
|
+
toolbarQuickFilterLabel: 'Пошук',
|
|
52
|
+
toolbarQuickFilterDeleteIconLabel: 'Очистити',
|
|
53
53
|
// Export selector toolbar button text
|
|
54
54
|
toolbarExport: 'Експорт',
|
|
55
55
|
toolbarExportLabel: 'Експорт',
|
|
56
56
|
toolbarExportCSV: 'Завантажити у форматі CSV',
|
|
57
57
|
toolbarExportPrint: 'Друк',
|
|
58
|
-
|
|
58
|
+
toolbarExportExcel: 'Завантажити у форматі Excel',
|
|
59
59
|
// Columns panel text
|
|
60
60
|
columnsPanelTextFieldLabel: 'Знайти стовпець',
|
|
61
61
|
columnsPanelTextFieldPlaceholder: 'Заголовок стовпця',
|
|
@@ -65,7 +65,7 @@ const ukUAGrid = {
|
|
|
65
65
|
// Filter panel text
|
|
66
66
|
filterPanelAddFilter: 'Додати фільтр',
|
|
67
67
|
filterPanelDeleteIconLabel: 'Видалити',
|
|
68
|
-
|
|
68
|
+
filterPanelLinkOperator: 'Логічна функція',
|
|
69
69
|
filterPanelOperators: 'Оператори',
|
|
70
70
|
// TODO v6: rename to filterPanelOperator
|
|
71
71
|
filterPanelOperatorAnd: 'І',
|
|
@@ -86,7 +86,7 @@ const ukUAGrid = {
|
|
|
86
86
|
filterOperatorOnOrBefore: 'менше або дорівнює',
|
|
87
87
|
filterOperatorIsEmpty: 'порожній',
|
|
88
88
|
filterOperatorIsNotEmpty: 'не порожній',
|
|
89
|
-
|
|
89
|
+
filterOperatorIsAnyOf: 'будь-що із',
|
|
90
90
|
// Filter values text
|
|
91
91
|
filterValueAny: 'будь-який',
|
|
92
92
|
filterValueTrue: 'так',
|
|
@@ -119,10 +119,10 @@ const ukUAGrid = {
|
|
|
119
119
|
footerTotalVisibleRows: (visibleCount, totalCount) => `${visibleCount.toLocaleString()} з ${totalCount.toLocaleString()}`,
|
|
120
120
|
// Checkbox selection text
|
|
121
121
|
checkboxSelectionHeaderName: 'Вибір прапорця',
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
122
|
+
checkboxSelectionSelectAllRows: 'Вибрати всі рядки',
|
|
123
|
+
checkboxSelectionUnselectAllRows: 'Скасувати вибір всіх рядків',
|
|
124
|
+
checkboxSelectionSelectRow: 'Вибрати рядок',
|
|
125
|
+
checkboxSelectionUnselectRow: 'Скасувати вибір рядка',
|
|
126
126
|
// Boolean cell text
|
|
127
127
|
booleanCellTrueLabel: 'так',
|
|
128
128
|
booleanCellFalseLabel: 'ні',
|
|
@@ -135,19 +135,19 @@ const ukUAGrid = {
|
|
|
135
135
|
// Tree Data
|
|
136
136
|
treeDataGroupingHeaderName: 'Група',
|
|
137
137
|
treeDataExpand: 'показати дочірні елементи',
|
|
138
|
-
treeDataCollapse: 'приховати дочірні елементи'
|
|
139
|
-
//
|
|
140
|
-
|
|
141
|
-
|
|
138
|
+
treeDataCollapse: 'приховати дочірні елементи',
|
|
139
|
+
// Grouping columns
|
|
140
|
+
groupingColumnHeaderName: 'Група',
|
|
141
|
+
groupColumn: name => `Групувати за ${name}`,
|
|
142
|
+
unGroupColumn: name => `Відмінити групування за ${name}`,
|
|
142
143
|
// Master/detail
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
144
|
+
detailPanelToggle: 'Перемикач панелі деталей',
|
|
145
|
+
expandDetailPanel: 'Показати',
|
|
146
|
+
collapseDetailPanel: 'Приховати',
|
|
146
147
|
// Row reordering text
|
|
147
|
-
|
|
148
|
+
rowReorderingHeaderName: 'Порядок рядків',
|
|
148
149
|
// Aggregation
|
|
149
|
-
//
|
|
150
|
-
// aggregationFunctionLabelSum: 'sum',
|
|
150
|
+
aggregationMenuItemHeader: 'Агрегація' // aggregationFunctionLabelSum: 'sum',
|
|
151
151
|
// aggregationFunctionLabelAvg: 'avg',
|
|
152
152
|
// aggregationFunctionLabelMin: 'min',
|
|
153
153
|
// aggregationFunctionLabelMax: 'max',
|