@mui/x-data-grid 7.27.3 → 7.28.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 +86 -0
- package/README.md +1 -1
- package/components/cell/GridActionsCell.js +3 -1
- package/components/cell/GridCell.js +2 -2
- package/components/columnHeaders/ColumnHeaderMenuIcon.js +2 -1
- package/components/containers/GridRootStyles.js +3 -3
- package/components/panel/filterPanel/GridFilterInputValue.d.ts +4 -0
- package/components/panel/filterPanel/index.d.ts +1 -1
- package/components/panel/filterPanel/index.js +1 -1
- package/components/virtualization/GridBottomContainer.js +1 -1
- package/components/virtualization/GridTopContainer.js +1 -1
- package/components/virtualization/GridVirtualScrollbar.js +2 -2
- package/constants/localeTextConstants.js +1 -0
- package/hooks/features/editing/useGridRowEditing.js +19 -10
- package/hooks/features/export/useGridPrintExport.js +4 -4
- package/hooks/features/filter/useGridFilter.js +5 -0
- package/hooks/features/rowSelection/useGridRowSelection.js +47 -11
- package/hooks/features/rowSelection/utils.d.ts +2 -2
- package/hooks/features/rowSelection/utils.js +8 -6
- package/index.js +1 -1
- package/locales/arSD.js +1 -0
- package/locales/beBY.js +1 -0
- package/locales/bgBG.js +1 -0
- package/locales/bnBD.js +1 -0
- package/locales/csCZ.js +6 -6
- package/locales/daDK.js +1 -0
- package/locales/deDE.js +1 -0
- package/locales/elGR.js +1 -0
- package/locales/esES.js +1 -0
- package/locales/faIR.js +1 -0
- package/locales/fiFI.js +1 -0
- package/locales/frFR.js +1 -0
- package/locales/heIL.js +1 -0
- package/locales/hrHR.js +1 -0
- package/locales/huHU.js +1 -0
- package/locales/isIS.js +1 -0
- package/locales/itIT.js +1 -0
- package/locales/jaJP.js +1 -0
- package/locales/koKR.js +2 -1
- package/locales/nbNO.js +1 -0
- package/locales/nlNL.js +1 -0
- package/locales/nnNO.js +1 -0
- package/locales/plPL.js +1 -0
- package/locales/ptBR.js +1 -0
- package/locales/ptPT.js +1 -0
- package/locales/roRO.js +1 -0
- package/locales/ruRU.js +1 -0
- package/locales/skSK.js +7 -7
- package/locales/svSE.js +1 -0
- package/locales/trTR.js +1 -0
- package/locales/ukUA.js +1 -0
- package/locales/urPK.js +1 -0
- package/locales/viVN.js +1 -0
- package/locales/zhCN.js +1 -0
- package/locales/zhHK.js +11 -11
- package/locales/zhTW.js +10 -10
- package/models/api/gridLocaleTextApi.d.ts +1 -0
- package/models/api/gridRowSelectionApi.d.ts +15 -4
- package/modern/components/cell/GridActionsCell.js +3 -1
- package/modern/components/cell/GridCell.js +2 -2
- package/modern/components/columnHeaders/ColumnHeaderMenuIcon.js +2 -1
- package/modern/components/containers/GridRootStyles.js +3 -3
- package/modern/components/panel/filterPanel/index.js +1 -1
- package/modern/components/virtualization/GridBottomContainer.js +1 -1
- package/modern/components/virtualization/GridTopContainer.js +1 -1
- package/modern/components/virtualization/GridVirtualScrollbar.js +2 -2
- package/modern/constants/localeTextConstants.js +1 -0
- package/modern/hooks/features/editing/useGridRowEditing.js +19 -10
- package/modern/hooks/features/export/useGridPrintExport.js +4 -4
- package/modern/hooks/features/filter/useGridFilter.js +5 -0
- package/modern/hooks/features/rowSelection/useGridRowSelection.js +47 -11
- package/modern/hooks/features/rowSelection/utils.js +8 -6
- package/modern/index.js +1 -1
- package/modern/locales/arSD.js +1 -0
- package/modern/locales/beBY.js +1 -0
- package/modern/locales/bgBG.js +1 -0
- package/modern/locales/bnBD.js +1 -0
- package/modern/locales/csCZ.js +6 -6
- package/modern/locales/daDK.js +1 -0
- package/modern/locales/deDE.js +1 -0
- package/modern/locales/elGR.js +1 -0
- package/modern/locales/esES.js +1 -0
- package/modern/locales/faIR.js +1 -0
- package/modern/locales/fiFI.js +1 -0
- package/modern/locales/frFR.js +1 -0
- package/modern/locales/heIL.js +1 -0
- package/modern/locales/hrHR.js +1 -0
- package/modern/locales/huHU.js +1 -0
- package/modern/locales/isIS.js +1 -0
- package/modern/locales/itIT.js +1 -0
- package/modern/locales/jaJP.js +1 -0
- package/modern/locales/koKR.js +2 -1
- package/modern/locales/nbNO.js +1 -0
- package/modern/locales/nlNL.js +1 -0
- package/modern/locales/nnNO.js +1 -0
- package/modern/locales/plPL.js +1 -0
- package/modern/locales/ptBR.js +1 -0
- package/modern/locales/ptPT.js +1 -0
- package/modern/locales/roRO.js +1 -0
- package/modern/locales/ruRU.js +1 -0
- package/modern/locales/skSK.js +7 -7
- package/modern/locales/svSE.js +1 -0
- package/modern/locales/trTR.js +1 -0
- package/modern/locales/ukUA.js +1 -0
- package/modern/locales/urPK.js +1 -0
- package/modern/locales/viVN.js +1 -0
- package/modern/locales/zhCN.js +1 -0
- package/modern/locales/zhHK.js +11 -11
- package/modern/locales/zhTW.js +10 -10
- package/node/components/cell/GridActionsCell.js +3 -1
- package/node/components/cell/GridCell.js +2 -2
- package/node/components/columnHeaders/ColumnHeaderMenuIcon.js +2 -1
- package/node/components/containers/GridRootStyles.js +3 -3
- package/node/components/panel/filterPanel/index.js +7 -11
- package/node/components/virtualization/GridBottomContainer.js +1 -1
- package/node/components/virtualization/GridTopContainer.js +1 -1
- package/node/components/virtualization/GridVirtualScrollbar.js +2 -2
- package/node/constants/localeTextConstants.js +1 -0
- package/node/hooks/features/editing/useGridRowEditing.js +19 -10
- package/node/hooks/features/export/useGridPrintExport.js +4 -4
- package/node/hooks/features/filter/useGridFilter.js +5 -0
- package/node/hooks/features/rowSelection/useGridRowSelection.js +55 -19
- package/node/hooks/features/rowSelection/utils.js +7 -5
- package/node/index.js +1 -1
- package/node/locales/arSD.js +1 -0
- package/node/locales/beBY.js +1 -0
- package/node/locales/bgBG.js +1 -0
- package/node/locales/bnBD.js +1 -0
- package/node/locales/csCZ.js +6 -6
- package/node/locales/daDK.js +1 -0
- package/node/locales/deDE.js +1 -0
- package/node/locales/elGR.js +1 -0
- package/node/locales/esES.js +1 -0
- package/node/locales/faIR.js +1 -0
- package/node/locales/fiFI.js +1 -0
- package/node/locales/frFR.js +1 -0
- package/node/locales/heIL.js +1 -0
- package/node/locales/hrHR.js +1 -0
- package/node/locales/huHU.js +1 -0
- package/node/locales/isIS.js +1 -0
- package/node/locales/itIT.js +1 -0
- package/node/locales/jaJP.js +1 -0
- package/node/locales/koKR.js +2 -1
- package/node/locales/nbNO.js +1 -0
- package/node/locales/nlNL.js +1 -0
- package/node/locales/nnNO.js +1 -0
- package/node/locales/plPL.js +1 -0
- package/node/locales/ptBR.js +1 -0
- package/node/locales/ptPT.js +1 -0
- package/node/locales/roRO.js +1 -0
- package/node/locales/ruRU.js +1 -0
- package/node/locales/skSK.js +7 -7
- package/node/locales/svSE.js +1 -0
- package/node/locales/trTR.js +1 -0
- package/node/locales/ukUA.js +1 -0
- package/node/locales/urPK.js +1 -0
- package/node/locales/viVN.js +1 -0
- package/node/locales/zhCN.js +1 -0
- package/node/locales/zhHK.js +11 -11
- package/node/locales/zhTW.js +10 -10
- package/package.json +5 -5
|
@@ -21,6 +21,7 @@ export const useGridRowEditing = (apiRef, props) => {
|
|
|
21
21
|
const [rowModesModel, setRowModesModel] = React.useState({});
|
|
22
22
|
const rowModesModelRef = React.useRef(rowModesModel);
|
|
23
23
|
const prevRowModesModel = React.useRef({});
|
|
24
|
+
const prevRowValuesLookup = React.useRef({});
|
|
24
25
|
const focusTimeout = React.useRef(undefined);
|
|
25
26
|
const nextFocusedCell = React.useRef(null);
|
|
26
27
|
const {
|
|
@@ -311,6 +312,7 @@ export const useGridRowEditing = (apiRef, props) => {
|
|
|
311
312
|
deleteValue,
|
|
312
313
|
initialValue
|
|
313
314
|
} = params;
|
|
315
|
+
const row = apiRef.current.getRow(id);
|
|
314
316
|
const columnFields = gridColumnFieldsSelector(apiRef);
|
|
315
317
|
const newProps = columnFields.reduce((acc, field) => {
|
|
316
318
|
const cellParams = apiRef.current.getCellParams(id, field);
|
|
@@ -333,6 +335,7 @@ export const useGridRowEditing = (apiRef, props) => {
|
|
|
333
335
|
};
|
|
334
336
|
return acc;
|
|
335
337
|
}, {});
|
|
338
|
+
prevRowValuesLookup.current[id] = row;
|
|
336
339
|
updateOrDeleteRowState(id, newProps);
|
|
337
340
|
if (fieldToFocus) {
|
|
338
341
|
apiRef.current.setCellFocus(id, fieldToFocus);
|
|
@@ -343,7 +346,7 @@ export const useGridRowEditing = (apiRef, props) => {
|
|
|
343
346
|
const newValue = deleteValue ? getDefaultCellValue(column) : initialValue ?? value;
|
|
344
347
|
Promise.resolve(column.preProcessEditCellProps({
|
|
345
348
|
id,
|
|
346
|
-
row
|
|
349
|
+
row,
|
|
347
350
|
props: newProps[field],
|
|
348
351
|
hasChanged: newValue !== value
|
|
349
352
|
})).then(processedProps => {
|
|
@@ -382,13 +385,14 @@ export const useGridRowEditing = (apiRef, props) => {
|
|
|
382
385
|
}
|
|
383
386
|
updateOrDeleteRowState(id, null);
|
|
384
387
|
updateRowInRowModesModel(id, null);
|
|
388
|
+
delete prevRowValuesLookup.current[id];
|
|
385
389
|
};
|
|
386
390
|
if (ignoreModifications) {
|
|
387
391
|
finishRowEditMode();
|
|
388
392
|
return;
|
|
389
393
|
}
|
|
390
394
|
const editingState = gridEditRowsStateSelector(apiRef.current.state);
|
|
391
|
-
const row =
|
|
395
|
+
const row = prevRowValuesLookup.current[id];
|
|
392
396
|
const isSomeFieldProcessingProps = Object.values(editingState[id]).some(fieldProps => fieldProps.isProcessingProps);
|
|
393
397
|
if (isSomeFieldProcessingProps) {
|
|
394
398
|
prevRowModesModel.current[id].mode = GridRowModes.Edit;
|
|
@@ -402,14 +406,17 @@ export const useGridRowEditing = (apiRef, props) => {
|
|
|
402
406
|
});
|
|
403
407
|
return;
|
|
404
408
|
}
|
|
405
|
-
const rowUpdate = apiRef.current.getRowWithUpdatedValuesFromRowEditing(id);
|
|
409
|
+
const rowUpdate = apiRef.current.getRowWithUpdatedValuesFromRowEditing(row.id);
|
|
406
410
|
if (processRowUpdate) {
|
|
407
411
|
const handleError = errorThrown => {
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
mode
|
|
412
|
-
|
|
412
|
+
// The row might have been deleted
|
|
413
|
+
if (prevRowModesModel.current[id]) {
|
|
414
|
+
prevRowModesModel.current[id].mode = GridRowModes.Edit;
|
|
415
|
+
// Revert the mode in the rowModesModel prop back to "edit"
|
|
416
|
+
updateRowInRowModesModel(id, {
|
|
417
|
+
mode: GridRowModes.Edit
|
|
418
|
+
});
|
|
419
|
+
}
|
|
413
420
|
if (onProcessRowUpdateError) {
|
|
414
421
|
onProcessRowUpdateError(errorThrown);
|
|
415
422
|
} else if (process.env.NODE_ENV !== 'production') {
|
|
@@ -540,10 +547,12 @@ export const useGridRowEditing = (apiRef, props) => {
|
|
|
540
547
|
if (!editingState[id]) {
|
|
541
548
|
return apiRef.current.getRow(id);
|
|
542
549
|
}
|
|
543
|
-
let rowUpdate = _extends({}, row);
|
|
550
|
+
let rowUpdate = _extends({}, prevRowValuesLookup.current[id], row);
|
|
544
551
|
Object.entries(editingState[id]).forEach(([field, fieldProps]) => {
|
|
545
552
|
const column = apiRef.current.getColumn(field);
|
|
546
|
-
|
|
553
|
+
// Column might have been removed
|
|
554
|
+
// see https://github.com/mui/mui-x/pull/16888
|
|
555
|
+
if (column?.valueSetter) {
|
|
547
556
|
rowUpdate = column.valueSetter(fieldProps.value, rowUpdate, column, apiRef);
|
|
548
557
|
} else {
|
|
549
558
|
rowUpdate[field] = fieldProps.value;
|
|
@@ -106,12 +106,13 @@ export const useGridPrintExport = (apiRef, props) => {
|
|
|
106
106
|
gridClone.style.contain = 'size';
|
|
107
107
|
let gridToolbarElementHeight = gridRootElement.querySelector(`.${gridClasses.toolbarContainer}`)?.offsetHeight || 0;
|
|
108
108
|
let gridFooterElementHeight = gridRootElement.querySelector(`.${gridClasses.footerContainer}`)?.offsetHeight || 0;
|
|
109
|
+
const gridFooterElement = gridClone.querySelector(`.${gridClasses.footerContainer}`);
|
|
109
110
|
if (normalizeOptions.hideToolbar) {
|
|
110
111
|
gridClone.querySelector(`.${gridClasses.toolbarContainer}`)?.remove();
|
|
111
112
|
gridToolbarElementHeight = 0;
|
|
112
113
|
}
|
|
113
|
-
if (normalizeOptions.hideFooter) {
|
|
114
|
-
|
|
114
|
+
if (normalizeOptions.hideFooter && gridFooterElement) {
|
|
115
|
+
gridFooterElement.remove();
|
|
115
116
|
gridFooterElementHeight = 0;
|
|
116
117
|
}
|
|
117
118
|
|
|
@@ -120,11 +121,10 @@ export const useGridPrintExport = (apiRef, props) => {
|
|
|
120
121
|
gridClone.style.height = `${computedTotalHeight}px`;
|
|
121
122
|
// The height above does not include grid border width, so we need to exclude it
|
|
122
123
|
gridClone.style.boxSizing = 'content-box';
|
|
123
|
-
if (!normalizeOptions.hideFooter) {
|
|
124
|
+
if (!normalizeOptions.hideFooter && gridFooterElement) {
|
|
124
125
|
// the footer is always being placed at the bottom of the page as if all rows are exported
|
|
125
126
|
// so if getRowsToExport is being used to only export a subset of rows then we need to
|
|
126
127
|
// adjust the footer position to be correctly placed at the bottom of the grid
|
|
127
|
-
const gridFooterElement = gridClone.querySelector(`.${gridClasses.footerContainer}`);
|
|
128
128
|
gridFooterElement.style.position = 'absolute';
|
|
129
129
|
gridFooterElement.style.width = '100%';
|
|
130
130
|
gridFooterElement.style.top = `${computedTotalHeight - gridFooterElementHeight}px`;
|
|
@@ -228,6 +228,11 @@ export const useGridFilter = (apiRef, props) => {
|
|
|
228
228
|
*/
|
|
229
229
|
const stateExportPreProcessing = React.useCallback((prevState, context) => {
|
|
230
230
|
const filterModelToExport = gridFilterModelSelector(apiRef);
|
|
231
|
+
|
|
232
|
+
// Remove the additional `fromInput` property from the filter model
|
|
233
|
+
filterModelToExport.items.forEach(item => {
|
|
234
|
+
delete item.fromInput;
|
|
235
|
+
});
|
|
231
236
|
const shouldExportFilterModel =
|
|
232
237
|
// Always export if the `exportOnlyDirtyModels` property is not activated
|
|
233
238
|
!context.exportOnlyDirtyModels ||
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import * as React from 'react';
|
|
3
|
+
import { useEventCallback } from '@mui/material/utils';
|
|
3
4
|
import { GridSignature, useGridApiEventHandler } from "../../utils/useGridApiEventHandler.js";
|
|
4
5
|
import { useGridApiMethod } from "../../utils/useGridApiMethod.js";
|
|
5
6
|
import { useGridLogger } from "../../utils/useGridLogger.js";
|
|
@@ -213,6 +214,19 @@ export const useGridRowSelection = (apiRef, props) => {
|
|
|
213
214
|
apiRef.current.setRowSelectionModel(Array.from(newSelection));
|
|
214
215
|
}
|
|
215
216
|
}, [logger, applyAutoSelection, canHaveMultipleSelection, apiRef, tree, props.rowSelectionPropagation?.descendants, props.rowSelectionPropagation?.parents]);
|
|
217
|
+
const getPropagatedRowSelectionModel = React.useCallback(inputSelectionModel => {
|
|
218
|
+
if (!isNestedData || !applyAutoSelection || inputSelectionModel.length === 0) {
|
|
219
|
+
return inputSelectionModel;
|
|
220
|
+
}
|
|
221
|
+
const propagatedSelectionModel = new Set(inputSelectionModel);
|
|
222
|
+
const addRow = rowId => {
|
|
223
|
+
propagatedSelectionModel.add(rowId);
|
|
224
|
+
};
|
|
225
|
+
for (const id of inputSelectionModel) {
|
|
226
|
+
findRowsToSelect(apiRef, tree, id, props.rowSelectionPropagation?.descendants ?? false, props.rowSelectionPropagation?.parents ?? false, addRow, propagatedSelectionModel);
|
|
227
|
+
}
|
|
228
|
+
return Array.from(propagatedSelectionModel);
|
|
229
|
+
}, [apiRef, tree, props.rowSelectionPropagation?.descendants, props.rowSelectionPropagation?.parents, isNestedData, applyAutoSelection]);
|
|
216
230
|
const selectRowRange = React.useCallback(({
|
|
217
231
|
startId,
|
|
218
232
|
endId
|
|
@@ -239,7 +253,8 @@ export const useGridRowSelection = (apiRef, props) => {
|
|
|
239
253
|
};
|
|
240
254
|
const selectionPrivateApi = {
|
|
241
255
|
selectRows,
|
|
242
|
-
selectRowRange
|
|
256
|
+
selectRowRange,
|
|
257
|
+
getPropagatedRowSelectionModel
|
|
243
258
|
};
|
|
244
259
|
useGridApiMethod(apiRef, selectionPublicApi, 'public');
|
|
245
260
|
useGridApiMethod(apiRef, selectionPrivateApi, props.signature === GridSignature.DataGrid ? 'private' : 'public');
|
|
@@ -247,7 +262,11 @@ export const useGridRowSelection = (apiRef, props) => {
|
|
|
247
262
|
/*
|
|
248
263
|
* EVENTS
|
|
249
264
|
*/
|
|
265
|
+
const isFirstRender = React.useRef(true);
|
|
250
266
|
const removeOutdatedSelection = React.useCallback((sortModelUpdated = false) => {
|
|
267
|
+
if (isFirstRender.current) {
|
|
268
|
+
return;
|
|
269
|
+
}
|
|
251
270
|
const currentSelection = gridRowSelectionStateSelector(apiRef.current.state);
|
|
252
271
|
const rowsLookup = gridRowsLookupSelector(apiRef);
|
|
253
272
|
const filteredRowsLookup = gridFilteredRowsLookupSelector(apiRef);
|
|
@@ -427,8 +446,27 @@ export const useGridRowSelection = (apiRef, props) => {
|
|
|
427
446
|
selectRows(apiRef.current.getAllRowIds(), true);
|
|
428
447
|
}
|
|
429
448
|
}, [apiRef, handleSingleRowSelection, selectRows, canHaveMultipleSelection]);
|
|
449
|
+
const syncControlledState = useEventCallback(() => {
|
|
450
|
+
if (!props.rowSelection) {
|
|
451
|
+
apiRef.current.setRowSelectionModel([]);
|
|
452
|
+
return;
|
|
453
|
+
}
|
|
454
|
+
if (propRowSelectionModel === undefined) {
|
|
455
|
+
return;
|
|
456
|
+
}
|
|
457
|
+
if (!applyAutoSelection || !isNestedData || propRowSelectionModel.length === 0) {
|
|
458
|
+
apiRef.current.setRowSelectionModel(propRowSelectionModel);
|
|
459
|
+
return;
|
|
460
|
+
}
|
|
461
|
+
const newSelectionModel = apiRef.current.getPropagatedRowSelectionModel(propRowSelectionModel);
|
|
462
|
+
if (newSelectionModel.length !== propRowSelectionModel.length || !newSelectionModel.every(id => propRowSelectionModel.includes(id))) {
|
|
463
|
+
apiRef.current.setRowSelectionModel(newSelectionModel);
|
|
464
|
+
return;
|
|
465
|
+
}
|
|
466
|
+
apiRef.current.setRowSelectionModel(propRowSelectionModel);
|
|
467
|
+
});
|
|
430
468
|
useGridApiEventHandler(apiRef, 'sortedRowsSet', runIfRowSelectionIsEnabled(() => removeOutdatedSelection(true)));
|
|
431
|
-
useGridApiEventHandler(apiRef, 'filteredRowsSet', runIfRowSelectionIsEnabled(removeOutdatedSelection));
|
|
469
|
+
useGridApiEventHandler(apiRef, 'filteredRowsSet', runIfRowSelectionIsEnabled(() => removeOutdatedSelection()));
|
|
432
470
|
useGridApiEventHandler(apiRef, 'rowClick', runIfRowSelectionIsEnabled(handleRowClick));
|
|
433
471
|
useGridApiEventHandler(apiRef, 'rowSelectionCheckboxChange', runIfRowSelectionIsEnabled(handleRowSelectionCheckboxChange));
|
|
434
472
|
useGridApiEventHandler(apiRef, 'headerSelectionCheckboxChange', handleHeaderSelectionCheckboxChange);
|
|
@@ -439,15 +477,8 @@ export const useGridRowSelection = (apiRef, props) => {
|
|
|
439
477
|
* EFFECTS
|
|
440
478
|
*/
|
|
441
479
|
React.useEffect(() => {
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
}
|
|
445
|
-
}, [apiRef, propRowSelectionModel, props.rowSelection]);
|
|
446
|
-
React.useEffect(() => {
|
|
447
|
-
if (!props.rowSelection) {
|
|
448
|
-
apiRef.current.setRowSelectionModel([]);
|
|
449
|
-
}
|
|
450
|
-
}, [apiRef, props.rowSelection]);
|
|
480
|
+
syncControlledState();
|
|
481
|
+
}, [apiRef, propRowSelectionModel, props.rowSelection, syncControlledState]);
|
|
451
482
|
const isStateControlled = propRowSelectionModel != null;
|
|
452
483
|
React.useEffect(() => {
|
|
453
484
|
if (isStateControlled || !props.rowSelection) {
|
|
@@ -476,4 +507,9 @@ export const useGridRowSelection = (apiRef, props) => {
|
|
|
476
507
|
React.useEffect(() => {
|
|
477
508
|
runIfRowSelectionIsEnabled(removeOutdatedSelection);
|
|
478
509
|
}, [removeOutdatedSelection, runIfRowSelectionIsEnabled]);
|
|
510
|
+
React.useEffect(() => {
|
|
511
|
+
if (isFirstRender.current) {
|
|
512
|
+
isFirstRender.current = false;
|
|
513
|
+
}
|
|
514
|
+
}, []);
|
|
479
515
|
};
|
|
@@ -2,7 +2,7 @@ import { GridSignature } from "../../utils/useGridApiEventHandler.js";
|
|
|
2
2
|
import { GRID_ROOT_GROUP_ID } from "../rows/gridRowsUtils.js";
|
|
3
3
|
import { gridFilteredRowsLookupSelector } from "../filter/gridFilterSelector.js";
|
|
4
4
|
import { gridSortedRowIdsSelector } from "../sorting/gridSortingSelector.js";
|
|
5
|
-
import { selectedIdsLookupSelector } from "./gridRowSelectionSelector.js";
|
|
5
|
+
import { gridRowSelectionStateSelector, selectedIdsLookupSelector } from "./gridRowSelectionSelector.js";
|
|
6
6
|
import { gridRowTreeSelector } from "../rows/gridRowsSelector.js";
|
|
7
7
|
import { createSelector } from "../../../utils/createSelector.js";
|
|
8
8
|
export const ROW_SELECTION_PROPAGATION_DEFAULT = {
|
|
@@ -94,9 +94,8 @@ const getFilteredRowNodeSiblings = (tree, filteredRows, id) => {
|
|
|
94
94
|
const parentNode = tree[parent];
|
|
95
95
|
return parentNode.children.filter(childId => childId !== id && filteredRows[childId] !== false);
|
|
96
96
|
};
|
|
97
|
-
export const findRowsToSelect = (apiRef, tree, selectedRow, autoSelectDescendants, autoSelectParents, addRow) => {
|
|
97
|
+
export const findRowsToSelect = (apiRef, tree, selectedRow, autoSelectDescendants, autoSelectParents, addRow, selectedIds = new Set(gridRowSelectionStateSelector(apiRef.current.state))) => {
|
|
98
98
|
const filteredRows = gridFilteredRowsLookupSelector(apiRef);
|
|
99
|
-
const selectedIdsLookup = selectedIdsLookupSelector(apiRef);
|
|
100
99
|
const selectedDescendants = new Set([]);
|
|
101
100
|
if (!autoSelectDescendants && !autoSelectParents) {
|
|
102
101
|
return;
|
|
@@ -113,11 +112,14 @@ export const findRowsToSelect = (apiRef, tree, selectedRow, autoSelectDescendant
|
|
|
113
112
|
}
|
|
114
113
|
if (autoSelectParents) {
|
|
115
114
|
const checkAllDescendantsSelected = rowId => {
|
|
116
|
-
if (
|
|
115
|
+
if (!selectedIds.has(rowId) && !selectedDescendants.has(rowId)) {
|
|
117
116
|
return false;
|
|
118
117
|
}
|
|
119
118
|
const node = tree[rowId];
|
|
120
|
-
if (node
|
|
119
|
+
if (!node) {
|
|
120
|
+
return false;
|
|
121
|
+
}
|
|
122
|
+
if (node.type !== 'group') {
|
|
121
123
|
return true;
|
|
122
124
|
}
|
|
123
125
|
return node.children.every(checkAllDescendantsSelected);
|
|
@@ -126,7 +128,7 @@ export const findRowsToSelect = (apiRef, tree, selectedRow, autoSelectDescendant
|
|
|
126
128
|
const siblings = getFilteredRowNodeSiblings(tree, filteredRows, rowId);
|
|
127
129
|
if (siblings.length === 0 || siblings.every(checkAllDescendantsSelected)) {
|
|
128
130
|
const rowNode = tree[rowId];
|
|
129
|
-
const parent = rowNode
|
|
131
|
+
const parent = rowNode?.parent;
|
|
130
132
|
if (parent != null && parent !== GRID_ROOT_GROUP_ID && apiRef.current.isRowSelectable(parent)) {
|
|
131
133
|
addRow(parent);
|
|
132
134
|
selectedDescendants.add(parent);
|
package/modern/index.js
CHANGED
package/modern/locales/arSD.js
CHANGED
|
@@ -97,6 +97,7 @@ const arSDGrid = {
|
|
|
97
97
|
filterValueFalse: 'خاطئ',
|
|
98
98
|
// Column menu text
|
|
99
99
|
columnMenuLabel: 'القائمة',
|
|
100
|
+
// columnMenuAriaLabel: (columnName: string) => `${columnName} column menu`,
|
|
100
101
|
columnMenuShowColumns: 'إظهار الأعمدة',
|
|
101
102
|
columnMenuManageColumns: 'إدارة الأعمدة',
|
|
102
103
|
columnMenuFilter: 'المرشِح',
|
package/modern/locales/beBY.js
CHANGED
|
@@ -113,6 +113,7 @@ const beBYGrid = {
|
|
|
113
113
|
filterValueFalse: 'няпраўда',
|
|
114
114
|
// Column menu text
|
|
115
115
|
columnMenuLabel: 'Меню',
|
|
116
|
+
// columnMenuAriaLabel: (columnName: string) => `${columnName} column menu`,
|
|
116
117
|
columnMenuShowColumns: 'Паказаць слупкі',
|
|
117
118
|
columnMenuManageColumns: 'Кіраваць слупкамі',
|
|
118
119
|
columnMenuFilter: 'Фільтр',
|
package/modern/locales/bgBG.js
CHANGED
|
@@ -97,6 +97,7 @@ const bgBGGrid = {
|
|
|
97
97
|
filterValueFalse: 'невярно',
|
|
98
98
|
// Column menu text
|
|
99
99
|
columnMenuLabel: 'Меню',
|
|
100
|
+
// columnMenuAriaLabel: (columnName: string) => `${columnName} column menu`,
|
|
100
101
|
columnMenuShowColumns: 'Покажи колоните',
|
|
101
102
|
columnMenuManageColumns: 'Управление на колони',
|
|
102
103
|
columnMenuFilter: 'Филтри',
|
package/modern/locales/bnBD.js
CHANGED
|
@@ -96,6 +96,7 @@ const bnBDGrid = {
|
|
|
96
96
|
filterValueFalse: 'মিথ্যা',
|
|
97
97
|
// Column menu text
|
|
98
98
|
columnMenuLabel: 'মেনু',
|
|
99
|
+
// columnMenuAriaLabel: (columnName: string) => `${columnName} column menu`,
|
|
99
100
|
columnMenuShowColumns: 'কলাম দেখান',
|
|
100
101
|
columnMenuManageColumns: 'কলাম পরিচালনা করুন',
|
|
101
102
|
columnMenuFilter: 'ফিল্টার',
|
package/modern/locales/csCZ.js
CHANGED
|
@@ -42,8 +42,7 @@ const csCZGrid = {
|
|
|
42
42
|
columnsManagementNoColumns: 'Žádné sloupce',
|
|
43
43
|
columnsManagementShowHideAllText: 'Zobrazit/skrýt vše',
|
|
44
44
|
columnsManagementReset: 'Resetovat',
|
|
45
|
-
|
|
46
|
-
|
|
45
|
+
columnsManagementDeleteIconLabel: 'Vyčistit',
|
|
47
46
|
// Filter panel text
|
|
48
47
|
filterPanelAddFilter: 'Přidat filtr',
|
|
49
48
|
filterPanelRemoveAll: 'Odstranit vše',
|
|
@@ -57,9 +56,9 @@ const csCZGrid = {
|
|
|
57
56
|
filterPanelInputPlaceholder: 'Hodnota filtru',
|
|
58
57
|
// Filter operators text
|
|
59
58
|
filterOperatorContains: 'obsahuje',
|
|
60
|
-
|
|
59
|
+
filterOperatorDoesNotContain: 'neobsahuje',
|
|
61
60
|
filterOperatorEquals: 'rovná se',
|
|
62
|
-
|
|
61
|
+
filterOperatorDoesNotEqual: 'nerovná se',
|
|
63
62
|
filterOperatorStartsWith: 'začíná na',
|
|
64
63
|
filterOperatorEndsWith: 'končí na',
|
|
65
64
|
filterOperatorIs: 'je',
|
|
@@ -79,9 +78,9 @@ const csCZGrid = {
|
|
|
79
78
|
'filterOperator<=': '<=',
|
|
80
79
|
// Header filter operators text
|
|
81
80
|
headerFilterOperatorContains: 'Obsahuje',
|
|
82
|
-
|
|
81
|
+
headerFilterOperatorDoesNotContain: 'Neobsahuje',
|
|
83
82
|
headerFilterOperatorEquals: 'Rovná se',
|
|
84
|
-
|
|
83
|
+
headerFilterOperatorDoesNotEqual: 'Nerovná se',
|
|
85
84
|
headerFilterOperatorStartsWith: 'Začíná na',
|
|
86
85
|
headerFilterOperatorEndsWith: 'Končí na',
|
|
87
86
|
headerFilterOperatorIs: 'Je',
|
|
@@ -105,6 +104,7 @@ const csCZGrid = {
|
|
|
105
104
|
filterValueFalse: 'ne',
|
|
106
105
|
// Column menu text
|
|
107
106
|
columnMenuLabel: 'Menu',
|
|
107
|
+
columnMenuAriaLabel: columnName => `Možnosti sloupce ${columnName}`,
|
|
108
108
|
columnMenuShowColumns: 'Zobrazit sloupce',
|
|
109
109
|
columnMenuManageColumns: 'Spravovat sloupce',
|
|
110
110
|
columnMenuFilter: 'Filtr',
|
package/modern/locales/daDK.js
CHANGED
|
@@ -97,6 +97,7 @@ const daDKGrid = {
|
|
|
97
97
|
filterValueFalse: 'negativ',
|
|
98
98
|
// Column menu text
|
|
99
99
|
columnMenuLabel: 'Menu',
|
|
100
|
+
// columnMenuAriaLabel: (columnName: string) => `${columnName} column menu`,
|
|
100
101
|
columnMenuShowColumns: 'Vis kolonner',
|
|
101
102
|
columnMenuManageColumns: 'Administrer kolonner',
|
|
102
103
|
columnMenuFilter: 'Filtrer',
|
package/modern/locales/deDE.js
CHANGED
|
@@ -96,6 +96,7 @@ const deDEGrid = {
|
|
|
96
96
|
filterValueFalse: 'Nein',
|
|
97
97
|
// Column menu text
|
|
98
98
|
columnMenuLabel: 'Menü',
|
|
99
|
+
// columnMenuAriaLabel: (columnName: string) => `${columnName} column menu`,
|
|
99
100
|
columnMenuShowColumns: 'Zeige alle Spalten',
|
|
100
101
|
columnMenuManageColumns: 'Spalten verwalten',
|
|
101
102
|
columnMenuFilter: 'Filter',
|
package/modern/locales/elGR.js
CHANGED
|
@@ -97,6 +97,7 @@ const elGRGrid = {
|
|
|
97
97
|
filterValueFalse: 'ψευδές',
|
|
98
98
|
// Column menu text
|
|
99
99
|
columnMenuLabel: 'Μενού',
|
|
100
|
+
// columnMenuAriaLabel: (columnName: string) => `${columnName} column menu`,
|
|
100
101
|
columnMenuShowColumns: 'Εμφάνιση στηλών',
|
|
101
102
|
columnMenuManageColumns: 'Διαχείριση στηλών',
|
|
102
103
|
columnMenuFilter: 'Φίλτρο',
|
package/modern/locales/esES.js
CHANGED
|
@@ -96,6 +96,7 @@ const esESGrid = {
|
|
|
96
96
|
filterValueFalse: 'falso',
|
|
97
97
|
// Column menu text
|
|
98
98
|
columnMenuLabel: 'Menú',
|
|
99
|
+
// columnMenuAriaLabel: (columnName: string) => `${columnName} column menu`,
|
|
99
100
|
columnMenuShowColumns: 'Mostrar columnas',
|
|
100
101
|
columnMenuManageColumns: 'Administrar columnas',
|
|
101
102
|
columnMenuFilter: 'Filtro',
|
package/modern/locales/faIR.js
CHANGED
|
@@ -96,6 +96,7 @@ const faIRGrid = {
|
|
|
96
96
|
filterValueFalse: 'غلط',
|
|
97
97
|
// Column menu text
|
|
98
98
|
columnMenuLabel: 'فهرست',
|
|
99
|
+
// columnMenuAriaLabel: (columnName: string) => `${columnName} column menu`,
|
|
99
100
|
columnMenuShowColumns: 'نمایش ستونها',
|
|
100
101
|
columnMenuManageColumns: 'مدیریت ستونها',
|
|
101
102
|
columnMenuFilter: 'فیلتر',
|
package/modern/locales/fiFI.js
CHANGED
|
@@ -97,6 +97,7 @@ const fiFIGrid = {
|
|
|
97
97
|
filterValueFalse: 'epätosi',
|
|
98
98
|
// Column menu text
|
|
99
99
|
columnMenuLabel: 'Valikko',
|
|
100
|
+
// columnMenuAriaLabel: (columnName: string) => `${columnName} column menu`,
|
|
100
101
|
columnMenuShowColumns: 'Näytä sarakkeet',
|
|
101
102
|
columnMenuManageColumns: 'Hallitse sarakkeita',
|
|
102
103
|
columnMenuFilter: 'Suodata',
|
package/modern/locales/frFR.js
CHANGED
|
@@ -97,6 +97,7 @@ const frFRGrid = {
|
|
|
97
97
|
filterValueFalse: 'faux',
|
|
98
98
|
// Column menu text
|
|
99
99
|
columnMenuLabel: 'Menu',
|
|
100
|
+
// columnMenuAriaLabel: (columnName: string) => `${columnName} column menu`,
|
|
100
101
|
columnMenuShowColumns: 'Afficher les colonnes',
|
|
101
102
|
columnMenuManageColumns: 'Gérer les colonnes',
|
|
102
103
|
columnMenuFilter: 'Filtrer',
|
package/modern/locales/heIL.js
CHANGED
|
@@ -97,6 +97,7 @@ const heILGrid = {
|
|
|
97
97
|
filterValueFalse: 'לא',
|
|
98
98
|
// Column menu text
|
|
99
99
|
columnMenuLabel: 'תפריט',
|
|
100
|
+
// columnMenuAriaLabel: (columnName: string) => `${columnName} column menu`,
|
|
100
101
|
columnMenuShowColumns: 'הצג עמודות',
|
|
101
102
|
columnMenuManageColumns: 'נהל עמודות',
|
|
102
103
|
columnMenuFilter: 'סנן',
|
package/modern/locales/hrHR.js
CHANGED
|
@@ -105,6 +105,7 @@ const hrHRGrid = {
|
|
|
105
105
|
filterValueFalse: 'netačno',
|
|
106
106
|
// Column menu text
|
|
107
107
|
columnMenuLabel: 'Izbornik',
|
|
108
|
+
// columnMenuAriaLabel: (columnName: string) => `${columnName} column menu`,
|
|
108
109
|
columnMenuShowColumns: 'Prikaži stupce',
|
|
109
110
|
columnMenuManageColumns: 'Upravljanje stupcima',
|
|
110
111
|
columnMenuFilter: 'Filter',
|
package/modern/locales/huHU.js
CHANGED
|
@@ -96,6 +96,7 @@ const huHUGrid = {
|
|
|
96
96
|
filterValueFalse: 'hamis',
|
|
97
97
|
// Column menu text
|
|
98
98
|
columnMenuLabel: 'Menü',
|
|
99
|
+
// columnMenuAriaLabel: (columnName: string) => `${columnName} column menu`,
|
|
99
100
|
columnMenuShowColumns: 'Oszlopok megjelenítése',
|
|
100
101
|
columnMenuManageColumns: 'Oszlopok kezelése',
|
|
101
102
|
columnMenuFilter: 'Szűrők',
|
package/modern/locales/isIS.js
CHANGED
|
@@ -97,6 +97,7 @@ const isISGrid = {
|
|
|
97
97
|
filterValueFalse: 'falskt',
|
|
98
98
|
// Column menu text
|
|
99
99
|
columnMenuLabel: 'Valmynd',
|
|
100
|
+
// columnMenuAriaLabel: (columnName: string) => `${columnName} column menu`,
|
|
100
101
|
columnMenuShowColumns: 'Sýna dálka',
|
|
101
102
|
columnMenuManageColumns: 'Stjórna dálkum',
|
|
102
103
|
columnMenuFilter: 'Síur',
|
package/modern/locales/itIT.js
CHANGED
|
@@ -97,6 +97,7 @@ const itITGrid = {
|
|
|
97
97
|
filterValueFalse: 'falso',
|
|
98
98
|
// Column menu text
|
|
99
99
|
columnMenuLabel: 'Menu',
|
|
100
|
+
// columnMenuAriaLabel: (columnName: string) => `${columnName} column menu`,
|
|
100
101
|
columnMenuShowColumns: 'Mostra le colonne',
|
|
101
102
|
columnMenuManageColumns: 'Gestisci colonne',
|
|
102
103
|
columnMenuFilter: 'Filtra',
|
package/modern/locales/jaJP.js
CHANGED
|
@@ -97,6 +97,7 @@ const jaJPGrid = {
|
|
|
97
97
|
filterValueFalse: '偽',
|
|
98
98
|
// Column menu text
|
|
99
99
|
columnMenuLabel: 'メニュー',
|
|
100
|
+
// columnMenuAriaLabel: (columnName: string) => `${columnName} column menu`,
|
|
100
101
|
columnMenuShowColumns: '列表示',
|
|
101
102
|
columnMenuManageColumns: '列管理',
|
|
102
103
|
columnMenuFilter: 'フィルター',
|
package/modern/locales/koKR.js
CHANGED
|
@@ -96,6 +96,7 @@ const koKRGrid = {
|
|
|
96
96
|
filterValueFalse: '거짓',
|
|
97
97
|
// Column menu text
|
|
98
98
|
columnMenuLabel: '메뉴',
|
|
99
|
+
// columnMenuAriaLabel: (columnName: string) => `${columnName} column menu`,
|
|
99
100
|
columnMenuShowColumns: '열 표시',
|
|
100
101
|
columnMenuManageColumns: '열 관리',
|
|
101
102
|
columnMenuFilter: '필터',
|
|
@@ -143,7 +144,7 @@ const koKRGrid = {
|
|
|
143
144
|
// Row reordering text
|
|
144
145
|
rowReorderingHeaderName: '행 재배치',
|
|
145
146
|
// Aggregation
|
|
146
|
-
aggregationMenuItemHeader: '
|
|
147
|
+
aggregationMenuItemHeader: '집계',
|
|
147
148
|
aggregationFunctionLabelSum: '합',
|
|
148
149
|
aggregationFunctionLabelAvg: '평균',
|
|
149
150
|
aggregationFunctionLabelMin: '최소값',
|
package/modern/locales/nbNO.js
CHANGED
|
@@ -97,6 +97,7 @@ const nbNOGrid = {
|
|
|
97
97
|
filterValueFalse: 'usant',
|
|
98
98
|
// Column menu text
|
|
99
99
|
columnMenuLabel: 'Meny',
|
|
100
|
+
// columnMenuAriaLabel: (columnName: string) => `${columnName} column menu`,
|
|
100
101
|
columnMenuShowColumns: 'Vis kolonner',
|
|
101
102
|
columnMenuManageColumns: 'Administrer kolonner',
|
|
102
103
|
columnMenuFilter: 'Filter',
|
package/modern/locales/nlNL.js
CHANGED
|
@@ -96,6 +96,7 @@ const nlNLGrid = {
|
|
|
96
96
|
filterValueFalse: 'onwaar',
|
|
97
97
|
// Column menu text
|
|
98
98
|
columnMenuLabel: 'Menu',
|
|
99
|
+
// columnMenuAriaLabel: (columnName: string) => `${columnName} column menu`,
|
|
99
100
|
columnMenuShowColumns: 'Toon kolommen',
|
|
100
101
|
columnMenuManageColumns: 'Kolommen beheren',
|
|
101
102
|
columnMenuFilter: 'Filteren',
|
package/modern/locales/nnNO.js
CHANGED
|
@@ -97,6 +97,7 @@ const nnNOGrid = {
|
|
|
97
97
|
filterValueFalse: 'usant',
|
|
98
98
|
// Column menu text
|
|
99
99
|
columnMenuLabel: 'Meny',
|
|
100
|
+
// columnMenuAriaLabel: (columnName: string) => `${columnName} column menu`,
|
|
100
101
|
columnMenuShowColumns: 'Vis kolonner',
|
|
101
102
|
columnMenuManageColumns: 'Administrer kolonner',
|
|
102
103
|
columnMenuFilter: 'Filter',
|
package/modern/locales/plPL.js
CHANGED
|
@@ -96,6 +96,7 @@ const plPLGrid = {
|
|
|
96
96
|
filterValueFalse: 'fałsz',
|
|
97
97
|
// Column menu text
|
|
98
98
|
columnMenuLabel: 'Menu',
|
|
99
|
+
// columnMenuAriaLabel: (columnName: string) => `${columnName} column menu`,
|
|
99
100
|
columnMenuShowColumns: 'Pokaż wszystkie kolumny',
|
|
100
101
|
columnMenuManageColumns: 'Zarządzaj kolumnami',
|
|
101
102
|
columnMenuFilter: 'Filtr',
|
package/modern/locales/ptBR.js
CHANGED
|
@@ -96,6 +96,7 @@ const ptBRGrid = {
|
|
|
96
96
|
filterValueFalse: 'falso',
|
|
97
97
|
// Column menu text
|
|
98
98
|
columnMenuLabel: 'Menu',
|
|
99
|
+
// columnMenuAriaLabel: (columnName: string) => `${columnName} column menu`,
|
|
99
100
|
columnMenuShowColumns: 'Exibir colunas',
|
|
100
101
|
columnMenuManageColumns: 'Gerir colunas',
|
|
101
102
|
columnMenuFilter: 'Filtrar',
|
package/modern/locales/ptPT.js
CHANGED
|
@@ -96,6 +96,7 @@ const ptPTGrid = {
|
|
|
96
96
|
filterValueFalse: 'falso',
|
|
97
97
|
// Column menu text
|
|
98
98
|
columnMenuLabel: 'Menu',
|
|
99
|
+
// columnMenuAriaLabel: (columnName: string) => `${columnName} column menu`,
|
|
99
100
|
columnMenuShowColumns: 'Mostrar colunas',
|
|
100
101
|
columnMenuManageColumns: 'Gerir colunas',
|
|
101
102
|
columnMenuFilter: 'Filtro',
|
package/modern/locales/roRO.js
CHANGED
|
@@ -96,6 +96,7 @@ const roROGrid = {
|
|
|
96
96
|
filterValueFalse: 'Nu',
|
|
97
97
|
// Column menu text
|
|
98
98
|
columnMenuLabel: 'Meniu',
|
|
99
|
+
// columnMenuAriaLabel: (columnName: string) => `${columnName} column menu`,
|
|
99
100
|
columnMenuShowColumns: 'Afișează toate coloanele',
|
|
100
101
|
columnMenuManageColumns: 'Gestionează coloane',
|
|
101
102
|
columnMenuFilter: 'Filtru',
|
package/modern/locales/ruRU.js
CHANGED
|
@@ -111,6 +111,7 @@ const ruRUGrid = {
|
|
|
111
111
|
filterValueFalse: 'ложь',
|
|
112
112
|
// Column menu text
|
|
113
113
|
columnMenuLabel: 'Меню',
|
|
114
|
+
// columnMenuAriaLabel: (columnName: string) => `${columnName} column menu`,
|
|
114
115
|
columnMenuShowColumns: 'Показать столбцы',
|
|
115
116
|
columnMenuManageColumns: 'Управление колонками',
|
|
116
117
|
columnMenuFilter: 'Фильтр',
|
package/modern/locales/skSK.js
CHANGED
|
@@ -41,9 +41,8 @@ const skSKGrid = {
|
|
|
41
41
|
columnsManagementSearchTitle: 'Vyhľadať',
|
|
42
42
|
columnsManagementNoColumns: 'Žiadne stĺpce',
|
|
43
43
|
columnsManagementShowHideAllText: 'Zobraziť/Skryť všetko',
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
44
|
+
columnsManagementReset: 'Resetovať',
|
|
45
|
+
columnsManagementDeleteIconLabel: 'Vymazať',
|
|
47
46
|
// Filter panel text
|
|
48
47
|
filterPanelAddFilter: 'Pridať filter',
|
|
49
48
|
filterPanelRemoveAll: 'Odstrániť všetky',
|
|
@@ -57,9 +56,9 @@ const skSKGrid = {
|
|
|
57
56
|
filterPanelInputPlaceholder: 'Hodnota filtra',
|
|
58
57
|
// Filter operators text
|
|
59
58
|
filterOperatorContains: 'obsahuje',
|
|
60
|
-
|
|
59
|
+
filterOperatorDoesNotContain: 'neobsahuje',
|
|
61
60
|
filterOperatorEquals: 'rovná sa',
|
|
62
|
-
|
|
61
|
+
filterOperatorDoesNotEqual: 'nerovná sa',
|
|
63
62
|
filterOperatorStartsWith: 'začína s',
|
|
64
63
|
filterOperatorEndsWith: 'končí na',
|
|
65
64
|
filterOperatorIs: 'je',
|
|
@@ -79,9 +78,9 @@ const skSKGrid = {
|
|
|
79
78
|
'filterOperator<=': '<=',
|
|
80
79
|
// Header filter operators text
|
|
81
80
|
headerFilterOperatorContains: 'Obsahuje',
|
|
82
|
-
|
|
81
|
+
headerFilterOperatorDoesNotContain: 'Neobsahuje',
|
|
83
82
|
headerFilterOperatorEquals: 'Rovná sa',
|
|
84
|
-
|
|
83
|
+
headerFilterOperatorDoesNotEqual: 'Nerovná sa',
|
|
85
84
|
headerFilterOperatorStartsWith: 'Začína s',
|
|
86
85
|
headerFilterOperatorEndsWith: 'Končí na',
|
|
87
86
|
headerFilterOperatorIs: 'Je',
|
|
@@ -105,6 +104,7 @@ const skSKGrid = {
|
|
|
105
104
|
filterValueFalse: 'nie',
|
|
106
105
|
// Column menu text
|
|
107
106
|
columnMenuLabel: 'Menu',
|
|
107
|
+
columnMenuAriaLabel: columnName => `Ponuka stĺpca ${columnName}`,
|
|
108
108
|
columnMenuShowColumns: 'Zobraziť stĺpce',
|
|
109
109
|
columnMenuManageColumns: 'Spravovať stĺpce',
|
|
110
110
|
columnMenuFilter: 'Filter',
|
package/modern/locales/svSE.js
CHANGED
|
@@ -97,6 +97,7 @@ const svSEGrid = {
|
|
|
97
97
|
filterValueFalse: 'falskt',
|
|
98
98
|
// Column menu text
|
|
99
99
|
columnMenuLabel: 'Meny',
|
|
100
|
+
// columnMenuAriaLabel: (columnName: string) => `${columnName} column menu`,
|
|
100
101
|
columnMenuShowColumns: 'Visa kolumner',
|
|
101
102
|
columnMenuManageColumns: 'Hantera kolumner',
|
|
102
103
|
columnMenuFilter: 'Filtrera',
|
package/modern/locales/trTR.js
CHANGED
|
@@ -96,6 +96,7 @@ const trTRGrid = {
|
|
|
96
96
|
filterValueFalse: 'yanlış',
|
|
97
97
|
// Column menu text
|
|
98
98
|
columnMenuLabel: 'Menü',
|
|
99
|
+
// columnMenuAriaLabel: (columnName: string) => `${columnName} column menu`,
|
|
99
100
|
columnMenuShowColumns: 'Sütunları göster',
|
|
100
101
|
columnMenuManageColumns: 'Sütunları yönet',
|
|
101
102
|
columnMenuFilter: 'Filtre Ekle',
|