material-react-table 2.12.0 → 2.13.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -55,7 +55,7 @@ const MRT_Localization_PL = {
55
55
  max: 'Maks.',
56
56
  min: 'Min.',
57
57
  move: 'Przenieś',
58
- noRecordsToDisplay: 'Brak rekordów do wyświetlenia',
58
+ noRecordsToDisplay: 'Brak wyników do wyświetlenia',
59
59
  noResultsFound: 'Brak wyników',
60
60
  of: 'z',
61
61
  or: 'lub',
@@ -66,11 +66,11 @@ const MRT_Localization_PL = {
66
66
  resetOrder: 'Resetuj kolejność',
67
67
  rowActions: 'Akcje dla rekordu',
68
68
  rowNumber: '#',
69
- rowNumbers: 'Liczba rekordów',
70
- rowsPerPage: 'Rekordów na stronę',
69
+ rowNumbers: 'Liczba wyników',
70
+ rowsPerPage: 'Wyników na stronę',
71
71
  save: 'Zapisz',
72
72
  search: 'Szukaj',
73
- selectedCountOfRowCountRowsSelected: 'Wybrano {selectedCount} z {rowCount} rekordów',
73
+ selectedCountOfRowCountRowsSelected: 'Wybrano {selectedCount} z {rowCount} wyników',
74
74
  select: 'Wybierz',
75
75
  showAll: 'Pokaż wszystko',
76
76
  showAllColumns: 'Pokaż wszystkie kolumny',
@@ -82,7 +82,7 @@ const MRT_Localization_PL = {
82
82
  sortedByColumnAsc: 'Sortuj wg {column} rosnąco',
83
83
  sortedByColumnDesc: 'Sortuj wg {column} malejąco',
84
84
  thenBy: ', następnie wg ',
85
- toggleDensity: 'Przełącz gęstość rekordów',
85
+ toggleDensity: 'Przełącz gęstość wyników',
86
86
  toggleFullScreen: 'Tryb pełnoekranowy',
87
87
  toggleSelectAll: 'Zaznacz wszystkie',
88
88
  toggleSelectRow: 'Zaznacz rekord',
@@ -59,7 +59,7 @@ const MRT_Localization_PL = {
59
59
  max: 'Maks.',
60
60
  min: 'Min.',
61
61
  move: 'Przenieś',
62
- noRecordsToDisplay: 'Brak rekordów do wyświetlenia',
62
+ noRecordsToDisplay: 'Brak wyników do wyświetlenia',
63
63
  noResultsFound: 'Brak wyników',
64
64
  of: 'z',
65
65
  or: 'lub',
@@ -70,11 +70,11 @@ const MRT_Localization_PL = {
70
70
  resetOrder: 'Resetuj kolejność',
71
71
  rowActions: 'Akcje dla rekordu',
72
72
  rowNumber: '#',
73
- rowNumbers: 'Liczba rekordów',
74
- rowsPerPage: 'Rekordów na stronę',
73
+ rowNumbers: 'Liczba wyników',
74
+ rowsPerPage: 'Wyników na stronę',
75
75
  save: 'Zapisz',
76
76
  search: 'Szukaj',
77
- selectedCountOfRowCountRowsSelected: 'Wybrano {selectedCount} z {rowCount} rekordów',
77
+ selectedCountOfRowCountRowsSelected: 'Wybrano {selectedCount} z {rowCount} wyników',
78
78
  select: 'Wybierz',
79
79
  showAll: 'Pokaż wszystko',
80
80
  showAllColumns: 'Pokaż wszystkie kolumny',
@@ -86,7 +86,7 @@ const MRT_Localization_PL = {
86
86
  sortedByColumnAsc: 'Sortuj wg {column} rosnąco',
87
87
  sortedByColumnDesc: 'Sortuj wg {column} malejąco',
88
88
  thenBy: ', następnie wg ',
89
- toggleDensity: 'Przełącz gęstość rekordów',
89
+ toggleDensity: 'Przełącz gęstość wyników',
90
90
  toggleFullScreen: 'Tryb pełnoekranowy',
91
91
  toggleSelectAll: 'Zaznacz wszystkie',
92
92
  toggleSelectRow: 'Zaznacz rekord',
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "2.12.0",
2
+ "version": "2.13.0",
3
3
  "license": "MIT",
4
4
  "name": "material-react-table",
5
5
  "description": "A fully featured Material UI V5 implementation of TanStack React Table V8, written from the ground up in TypeScript.",
@@ -56,39 +56,38 @@
56
56
  "lib:dev": "rollup -c rollup.config.mjs --watch",
57
57
  "lint": "eslint .",
58
58
  "size": "size-limit",
59
- "storybook": "pnpm storybook:dev",
59
+ "storybook": "storybook dev -p 6006",
60
60
  "storybook:build": "storybook build",
61
- "storybook:dev": "storybook dev -p 6006"
61
+ "storybook:dev": "storybook dev -p 6006",
62
+ "build-storybook": "storybook build"
62
63
  },
63
64
  "devDependencies": {
64
- "@babel/core": "^7.23.9",
65
- "@babel/preset-react": "^7.23.3",
66
- "@emotion/react": "^11.11.3",
67
- "@emotion/styled": "^11.11.0",
65
+ "@emotion/react": "^11.11.4",
66
+ "@emotion/styled": "^11.11.5",
68
67
  "@faker-js/faker": "^8.4.1",
69
- "@mui/icons-material": "^5.15.10",
70
- "@mui/material": "^5.15.10",
71
- "@mui/x-date-pickers": "^6.19.4",
68
+ "@mui/icons-material": "^5.15.15",
69
+ "@mui/material": "^5.15.15",
70
+ "@mui/x-date-pickers": "^7.2.0",
72
71
  "@rollup/plugin-typescript": "^11.1.6",
73
- "@size-limit/preset-small-lib": "^11.0.2",
74
- "@storybook/addon-a11y": "^7.6.16",
75
- "@storybook/addon-essentials": "^7.6.16",
76
- "@storybook/addon-interactions": "^7.6.16",
77
- "@storybook/addon-links": "^7.6.16",
78
- "@storybook/addon-storysource": "^7.6.16",
79
- "@storybook/blocks": "^7.6.16",
80
- "@storybook/react": "^7.6.16",
81
- "@storybook/react-vite": "^7.6.16",
82
- "@storybook/testing-library": "^0.2.2",
83
- "@types/node": "^20.11.19",
84
- "@types/react": "^18.2.56",
85
- "@types/react-dom": "^18.2.19",
86
- "@typescript-eslint/eslint-plugin": "^7.0.1",
87
- "@typescript-eslint/parser": "^7.0.1",
72
+ "@size-limit/preset-small-lib": "^11.1.2",
73
+ "@storybook/addon-a11y": "^8.0.8",
74
+ "@storybook/addon-essentials": "^8.0.8",
75
+ "@storybook/addon-links": "^8.0.8",
76
+ "@storybook/addon-storysource": "^8.0.8",
77
+ "@storybook/blocks": "^8.0.8",
78
+ "@storybook/preview-api": "^8.0.8",
79
+ "@storybook/react": "^8.0.8",
80
+ "@storybook/react-vite": "^8.0.8",
81
+ "@types/node": "^20.12.7",
82
+ "@types/react": "^18.2.79",
83
+ "@types/react-dom": "^18.2.25",
84
+ "@typescript-eslint/eslint-plugin": "^7.7.0",
85
+ "@typescript-eslint/parser": "^7.7.0",
88
86
  "@vitejs/plugin-react": "^4.2.1",
89
- "eslint": "^8.56.0",
87
+ "eslint": "^9.0.0",
90
88
  "eslint-plugin-mui-path-imports": "^0.0.15",
91
- "eslint-plugin-perfectionist": "^2.5.0",
89
+ "eslint-plugin-perfectionist": "^2.9.0",
90
+ "eslint-plugin-storybook": "^0.8.0",
92
91
  "prop-types": "^15.8.1",
93
92
  "react": "^18.2.0",
94
93
  "react-dom": "^18.2.0",
@@ -98,12 +97,12 @@
98
97
  "rollup-plugin-delete": "^2.0.0",
99
98
  "rollup-plugin-dts": "^6.1.0",
100
99
  "rollup-plugin-peer-deps-external": "^2.2.4",
101
- "size-limit": "^11.0.2",
102
- "storybook": "^7.6.16",
103
- "storybook-dark-mode": "^3.0.3",
100
+ "size-limit": "^11.1.2",
101
+ "storybook": "^8.0.8",
102
+ "storybook-dark-mode": "^4.0.1",
104
103
  "tslib": "^2.6.2",
105
- "typescript": "^5.3.3",
106
- "vite": "^5.1.3"
104
+ "typescript": "^5.4.5",
105
+ "vite": "^5.2.9"
107
106
  },
108
107
  "peerDependencies": {
109
108
  "@emotion/react": ">=11.11",
@@ -115,9 +114,9 @@
115
114
  "react-dom": ">=17.0"
116
115
  },
117
116
  "dependencies": {
118
- "@tanstack/match-sorter-utils": "8.11.8",
119
- "@tanstack/react-table": "8.12.0",
120
- "@tanstack/react-virtual": "3.1.1",
117
+ "@tanstack/match-sorter-utils": "8.15.1",
118
+ "@tanstack/react-table": "8.16.0",
119
+ "@tanstack/react-virtual": "3.3.0",
121
120
  "highlight-words": "1.2.2"
122
121
  }
123
- }
122
+ }
@@ -105,6 +105,7 @@ export const MRT_EditActionButtons = <TData extends MRT_RowData>({
105
105
  <IconButton
106
106
  aria-label={localization.save}
107
107
  color="info"
108
+ disabled={isSaving}
108
109
  onClick={handleSubmitRow}
109
110
  >
110
111
  {isSaving ? <CircularProgress size={18} /> : <SaveIcon />}
@@ -118,6 +119,7 @@ export const MRT_EditActionButtons = <TData extends MRT_RowData>({
118
119
  {localization.cancel}
119
120
  </Button>
120
121
  <Button
122
+ disabled={isSaving}
121
123
  onClick={handleSubmitRow}
122
124
  sx={{ minWidth: '100px' }}
123
125
  variant="contained"
@@ -16,18 +16,9 @@ import MenuItem from '@mui/material/MenuItem';
16
16
  import TextField, { type TextFieldProps } from '@mui/material/TextField';
17
17
  import Tooltip from '@mui/material/Tooltip';
18
18
  import { debounce } from '@mui/material/utils';
19
- import {
20
- DatePicker,
21
- type DatePickerProps,
22
- } from '@mui/x-date-pickers/DatePicker';
23
- import {
24
- DateTimePicker,
25
- type DateTimePickerProps,
26
- } from '@mui/x-date-pickers/DateTimePicker';
27
- import {
28
- TimePicker,
29
- type TimePickerProps,
30
- } from '@mui/x-date-pickers/TimePicker';
19
+ import { DatePicker } from '@mui/x-date-pickers/DatePicker';
20
+ import { DateTimePicker } from '@mui/x-date-pickers/DateTimePicker';
21
+ import { TimePicker } from '@mui/x-date-pickers/TimePicker';
31
22
  import {
32
23
  type DropdownOption,
33
24
  type MRT_Header,
@@ -73,46 +64,33 @@ export const MRT_FilterTextField = <TData extends MRT_RowData>({
73
64
  const { columnDef } = column;
74
65
  const { filterVariant } = columnDef;
75
66
 
76
- const textFieldProps: TextFieldProps = {
77
- ...parseFromValuesOrFunc(muiFilterTextFieldProps, { column, table }),
78
- ...parseFromValuesOrFunc(columnDef.muiFilterTextFieldProps, {
79
- column,
80
- table,
81
- }),
67
+ const args = { column, rangeFilterIndex, table };
68
+
69
+ const textFieldProps = {
70
+ ...parseFromValuesOrFunc(muiFilterTextFieldProps, args),
71
+ ...parseFromValuesOrFunc(columnDef.muiFilterTextFieldProps, args),
82
72
  ...rest,
83
73
  };
84
74
 
85
75
  const autocompleteProps = {
86
- ...parseFromValuesOrFunc(muiFilterAutocompleteProps, { column, table }),
87
- ...parseFromValuesOrFunc(columnDef.muiFilterAutocompleteProps, {
88
- column,
89
- table,
90
- }),
76
+ ...parseFromValuesOrFunc(muiFilterAutocompleteProps, args),
77
+ ...parseFromValuesOrFunc(columnDef.muiFilterAutocompleteProps, args),
91
78
  };
92
79
 
93
- const datePickerProps: DatePickerProps<any> = {
94
- ...parseFromValuesOrFunc(muiFilterDatePickerProps, { column, table }),
95
- ...parseFromValuesOrFunc(columnDef.muiFilterDatePickerProps, {
96
- column,
97
- table,
98
- }),
99
- };
80
+ const datePickerProps = {
81
+ ...parseFromValuesOrFunc(muiFilterDatePickerProps, args),
82
+ ...parseFromValuesOrFunc(columnDef.muiFilterDatePickerProps, args),
83
+ } as any;
100
84
 
101
- const dateTimePickerProps: DateTimePickerProps<any> = {
102
- ...parseFromValuesOrFunc(muiFilterDateTimePickerProps, { column, table }),
103
- ...parseFromValuesOrFunc(columnDef.muiFilterDateTimePickerProps, {
104
- column,
105
- table,
106
- }),
107
- };
85
+ const dateTimePickerProps = {
86
+ ...parseFromValuesOrFunc(muiFilterDateTimePickerProps, args),
87
+ ...parseFromValuesOrFunc(columnDef.muiFilterDateTimePickerProps, args),
88
+ } as any;
108
89
 
109
- const timePickerProps: TimePickerProps<any> = {
110
- ...parseFromValuesOrFunc(muiFilterTimePickerProps, { column, table }),
111
- ...parseFromValuesOrFunc(columnDef.muiFilterTimePickerProps, {
112
- column,
113
- table,
114
- }),
115
- };
90
+ const timePickerProps = {
91
+ ...parseFromValuesOrFunc(muiFilterTimePickerProps, args),
92
+ ...parseFromValuesOrFunc(columnDef.muiFilterTimePickerProps, args),
93
+ } as any;
116
94
 
117
95
  const {
118
96
  allowedColumnFilterOptions,
@@ -117,7 +117,7 @@ export const MRT_SelectCheckbox = <TData extends MRT_RowData>({
117
117
  }
118
118
  >
119
119
  {enableMultiRowSelection === false ? (
120
- <Radio {...commonProps} />
120
+ <Radio {...(commonProps as any)} />
121
121
  ) : (
122
122
  <Checkbox
123
123
  indeterminate={
@@ -56,10 +56,7 @@ export const MRT_ShowHideColumnsMenuItems = <TData extends MRT_RowData>({
56
56
  const { columnDef } = column;
57
57
  const { columnDefType } = columnDef;
58
58
 
59
- const switchChecked =
60
- (columnDefType !== 'group' && column.getIsVisible()) ||
61
- (columnDefType === 'group' &&
62
- column.getLeafColumns().some((col) => col.getIsVisible()));
59
+ const switchChecked = column.getIsVisible();
63
60
 
64
61
  const handleToggleColumnHidden = (column: MRT_Column<TData>) => {
65
62
  if (columnDefType === 'group') {
@@ -1,4 +1,5 @@
1
1
  import Paper, { type PaperProps } from '@mui/material/Paper';
2
+ import { useTheme } from '@mui/material';
2
3
  import { MRT_TableContainer } from './MRT_TableContainer';
3
4
  import { type MRT_RowData, type MRT_TableInstance } from '../../types';
4
5
  import { parseFromValuesOrFunc } from '../../utils/utils';
@@ -33,6 +34,8 @@ export const MRT_TablePaper = <TData extends MRT_RowData>({
33
34
  ...rest,
34
35
  };
35
36
 
37
+ const theme = useTheme();
38
+
36
39
  return (
37
40
  <Paper
38
41
  elevation={2}
@@ -58,7 +61,7 @@ export const MRT_TablePaper = <TData extends MRT_RowData>({
58
61
  right: 0,
59
62
  top: 0,
60
63
  width: '100dvw',
61
- zIndex: 999,
64
+ zIndex: theme.zIndex.modal,
62
65
  }
63
66
  : {}),
64
67
  ...paperProps?.style,
@@ -37,7 +37,6 @@ export const MRT_TablePagination = <TData extends MRT_RowData>({
37
37
  const isMobile = useMediaQuery('(max-width: 720px)');
38
38
 
39
39
  const {
40
- getPrePaginationRowModel,
41
40
  getState,
42
41
  options: {
43
42
  enableToolbarInternalActions,
@@ -45,10 +44,7 @@ export const MRT_TablePagination = <TData extends MRT_RowData>({
45
44
  localization,
46
45
  muiPaginationProps,
47
46
  paginationDisplayMode,
48
- rowCount,
49
47
  },
50
- setPageIndex,
51
- setPageSize,
52
48
  } = table;
53
49
  const {
54
50
  pagination: { pageIndex = 0, pageSize = 10 },
@@ -62,8 +58,8 @@ export const MRT_TablePagination = <TData extends MRT_RowData>({
62
58
  ...rest,
63
59
  };
64
60
 
65
- const totalRowCount = rowCount ?? getPrePaginationRowModel().rows.length;
66
- const numberOfPages = Math.ceil(totalRowCount / pageSize);
61
+ const totalRowCount = table.getRowCount();
62
+ const numberOfPages = table.getPageCount();
67
63
  const showFirstLastPageButtons = numberOfPages > 2;
68
64
  const firstRowIndex = pageIndex * pageSize;
69
65
  const lastRowIndex = Math.min(pageIndex * pageSize + pageSize, totalRowCount);
@@ -123,7 +119,9 @@ export const MRT_TablePagination = <TData extends MRT_RowData>({
123
119
  id: 'mrt-rows-per-page',
124
120
  }}
125
121
  label={localization.rowsPerPage}
126
- onChange={(event) => setPageSize(+(event.target.value as any))}
122
+ onChange={(event) =>
123
+ table.setPageSize(+(event.target.value as any))
124
+ }
127
125
  sx={{ mb: 0 }}
128
126
  value={pageSize}
129
127
  variant="standard"
@@ -153,7 +151,7 @@ export const MRT_TablePagination = <TData extends MRT_RowData>({
153
151
  <Pagination
154
152
  count={numberOfPages}
155
153
  disabled={disabled}
156
- onChange={(_e, newPageIndex) => setPageIndex(newPageIndex - 1)}
154
+ onChange={(_e, newPageIndex) => table.setPageIndex(newPageIndex - 1)}
157
155
  page={pageIndex + 1}
158
156
  renderItem={(item) => (
159
157
  <PaginationItem
@@ -189,7 +187,7 @@ export const MRT_TablePagination = <TData extends MRT_RowData>({
189
187
  <IconButton
190
188
  aria-label={localization.goToFirstPage}
191
189
  disabled={disableBack}
192
- onClick={() => setPageIndex(0)}
190
+ onClick={() => table.firstPage()}
193
191
  size="small"
194
192
  >
195
193
  <FirstPageIcon {...flipIconStyles(theme)} />
@@ -202,7 +200,7 @@ export const MRT_TablePagination = <TData extends MRT_RowData>({
202
200
  <IconButton
203
201
  aria-label={localization.goToPreviousPage}
204
202
  disabled={disableBack}
205
- onClick={() => setPageIndex(pageIndex - 1)}
203
+ onClick={() => table.previousPage()}
206
204
  size="small"
207
205
  >
208
206
  <ChevronLeftIcon {...flipIconStyles(theme)} />
@@ -214,7 +212,7 @@ export const MRT_TablePagination = <TData extends MRT_RowData>({
214
212
  <IconButton
215
213
  aria-label={localization.goToNextPage}
216
214
  disabled={disableNext}
217
- onClick={() => setPageIndex(pageIndex + 1)}
215
+ onClick={() => table.nextPage()}
218
216
  size="small"
219
217
  >
220
218
  <ChevronRightIcon {...flipIconStyles(theme)} />
@@ -227,7 +225,7 @@ export const MRT_TablePagination = <TData extends MRT_RowData>({
227
225
  <IconButton
228
226
  aria-label={localization.goToLastPage}
229
227
  disabled={disableNext}
230
- onClick={() => setPageIndex(numberOfPages - 1)}
228
+ onClick={() => table.lastPage()}
231
229
  size="small"
232
230
  >
233
231
  <LastPageIcon {...flipIconStyles(theme)} />
@@ -16,10 +16,7 @@ export const useMRT_ColumnVirtualizer = <
16
16
  table: MRT_TableInstance<TData>,
17
17
  ): MRT_ColumnVirtualizer | undefined => {
18
18
  const {
19
- getLeftLeafColumns,
20
- getRightLeafColumns,
21
19
  getState,
22
- getVisibleLeafColumns,
23
20
  options: {
24
21
  columnVirtualizerInstanceRef,
25
22
  columnVirtualizerOptions,
@@ -28,7 +25,7 @@ export const useMRT_ColumnVirtualizer = <
28
25
  },
29
26
  refs: { tableContainerRef },
30
27
  } = table;
31
- const { columnPinning, draggingColumn } = getState();
28
+ const { columnPinning, columnVisibility, draggingColumn } = getState();
32
29
 
33
30
  if (!enableColumnVirtualization) return undefined;
34
31
 
@@ -39,21 +36,22 @@ export const useMRT_ColumnVirtualizer = <
39
36
  },
40
37
  );
41
38
 
42
- const visibleColumns = getVisibleLeafColumns();
39
+ const visibleColumns = table.getVisibleLeafColumns();
43
40
 
44
41
  const [leftPinnedIndexes, rightPinnedIndexes] = useMemo(
45
42
  () =>
46
43
  enableColumnPinning
47
44
  ? [
48
- getLeftLeafColumns().map((c) => c.getPinnedIndex()),
49
- getRightLeafColumns()
45
+ table.getLeftVisibleLeafColumns().map((c) => c.getPinnedIndex()),
46
+ table
47
+ .getRightVisibleLeafColumns()
50
48
  .map(
51
49
  (column) => visibleColumns.length - column.getPinnedIndex() - 1,
52
50
  )
53
51
  .sort((a, b) => a - b),
54
52
  ]
55
53
  : [[], []],
56
- [columnPinning, enableColumnPinning],
54
+ [columnPinning, columnVisibility, enableColumnPinning],
57
55
  );
58
56
 
59
57
  const numPinnedLeft = leftPinnedIndexes.length;
@@ -228,14 +228,18 @@ export const useMRT_TableOptions: <TData extends MRT_RowData>(
228
228
  ? getFacetedUniqueValues()
229
229
  : undefined,
230
230
  getFilteredRowModel:
231
- enableColumnFilters || enableGlobalFilter || enableFilters
231
+ (enableColumnFilters || enableGlobalFilter || enableFilters) &&
232
+ !manualFiltering
232
233
  ? getFilteredRowModel()
233
234
  : undefined,
234
- getGroupedRowModel: enableGrouping ? getGroupedRowModel() : undefined,
235
- getPaginationRowModel: enablePagination
236
- ? getPaginationRowModel()
237
- : undefined,
238
- getSortedRowModel: enableSorting ? getSortedRowModel() : undefined,
235
+ getGroupedRowModel:
236
+ enableGrouping && !manualGrouping ? getGroupedRowModel() : undefined,
237
+ getPaginationRowModel:
238
+ enablePagination && !manualPagination
239
+ ? getPaginationRowModel()
240
+ : undefined,
241
+ getSortedRowModel:
242
+ enableSorting && !manualSorting ? getSortedRowModel() : undefined,
239
243
  getSubRows: (row) => row?.subRows,
240
244
  icons,
241
245
  layoutMode,
@@ -0,0 +1,96 @@
1
+ import { type MRT_Localization } from '..';
2
+
3
+ export const MRT_Localization_EL: MRT_Localization = {
4
+ actions: 'Ενέργειες',
5
+ and: 'και',
6
+ cancel: 'Ακύρωση',
7
+ changeFilterMode: 'Αλλαγή λειτουργίας φίλτρου',
8
+ changeSearchMode: 'Αλλαγή λειτουργίας αναζήτησης',
9
+ clearFilter: 'Καθαρισμός φίλτρου',
10
+ clearSearch: 'Καθαρισμός αναζήτησης',
11
+ clearSelection: 'Καθαρισμός επιλογής',
12
+ clearSort: 'Καθαρισμός ταξινόμησης',
13
+ clickToCopy: 'Κλικ για αντιγραφή',
14
+ copy: 'Αντιγραφή',
15
+ collapse: 'Σύμπτυξη',
16
+ collapseAll: 'Σύμπτυξη όλων',
17
+ columnActions: 'Ενέργειες στη στήλη',
18
+ copiedToClipboard: 'Αντιγράφηκε στο πρόχειρο',
19
+ dropToGroupBy: 'Τοποθέτηση για ομαδοποίηση ανά {column}',
20
+ edit: 'Επεξεργασία',
21
+ expand: 'Επέκταση',
22
+ expandAll: 'Επέκταση όλων',
23
+ filterArrIncludes: 'Περιλαμβάνει',
24
+ filterArrIncludesAll: 'Περιλαμβάνει όλα',
25
+ filterArrIncludesSome: 'Περιλαμβάνει',
26
+ filterBetween: 'Μεταξύ',
27
+ filterBetweenInclusive: 'Μεταξύ συμπεριλαμβανομένων',
28
+ filterByColumn: 'Φιλτράρισμα ανά {column}',
29
+ filterContains: 'Περιέχει',
30
+ filterEmpty: 'Κενό',
31
+ filterEndsWith: 'Τελειώνει με',
32
+ filterEquals: 'Ίσο',
33
+ filterEqualsString: 'Ίσο (συμβολοσειρά)',
34
+ filterFuzzy: 'Ασαφές',
35
+ filterGreaterThan: 'Μεγαλύτερο από',
36
+ filterGreaterThanOrEqualTo: 'Μεγαλύτερο ή ίσο με',
37
+ filterInNumberRange: 'Μεταξύ αριθμών',
38
+ filterIncludesString: 'Περιλαμβάνει συμβολοσειρά',
39
+ filterIncludesStringSensitive: 'Περιλαμβάνει συμβολοσειρά (ευαίσθητο)',
40
+ filterLessThan: 'Μικρότερο από',
41
+ filterLessThanOrEqualTo: 'Μικρότερο ή ίσο με',
42
+ filterMode: 'Λειτουργία φίλτρου: {filterType}',
43
+ filterNotEmpty: 'Όχι κενό',
44
+ filterNotEquals: 'Όχι ίσο',
45
+ filterStartsWith: 'Ξεκινάει με',
46
+ filterWeakEquals: 'Ίσο (ανακριβές)',
47
+ filteringByColumn: 'Φιλτράρισμα ανά {column} - {filterType} {filterValue}',
48
+ goToFirstPage: 'Πήγαινε στην πρώτη σελίδα',
49
+ goToLastPage: 'Πήγαινε στην τελευταία σελίδα',
50
+ goToNextPage: 'Πήγαινε στην επόμενη σελίδα',
51
+ goToPreviousPage: 'Πήγαινε στην προηγούμενη σελίδα',
52
+ grab: 'Σύρσιμο',
53
+ groupByColumn: 'Ομαδοποίηση ανά {column}',
54
+ groupedBy: 'Ομαδοποιημένο ανά ',
55
+ hideAll: 'Απόκρυψη όλων',
56
+ hideColumn: 'Απόκρυψη στήλης {column}',
57
+ max: 'Μέγιστο',
58
+ min: 'Ελάχιστο',
59
+ move: 'Μετακίνηση',
60
+ noRecordsToDisplay: 'Δεν υπάρχουν εγγραφές για εμφάνιση',
61
+ noResultsFound: 'Δεν βρέθηκαν αποτελέσματα',
62
+ of: 'από',
63
+ or: 'ή',
64
+ pin: 'Καρφίτσωμα',
65
+ pinToLeft: 'Καρφίτσωμα αριστερά',
66
+ pinToRight: 'Καρφίτσωμα δεξιά',
67
+ resetColumnSize: 'Επαναφορά μεγέθους στήλης',
68
+ resetOrder: 'Επαναφορά ταξινόμησης',
69
+ rowActions: 'Ενέργειες γραμμής',
70
+ rowNumber: '#',
71
+ rowNumbers: 'Αριθμοί γραμμών',
72
+ rowsPerPage: 'Γραμμές ανά σελίδα',
73
+ save: 'Αποθήκευση',
74
+ search: 'Αναζήτηση',
75
+ selectedCountOfRowCountRowsSelected:
76
+ '{selectedCount} από {rowCount} επιλεγμένη(ες) γραμμή(ες)',
77
+ select: 'Επιλογή',
78
+ showAll: 'Εμφάνιση όλων',
79
+ showAllColumns: 'Εμφάνιση όλων των στηλών',
80
+ showHideColumns: 'Εμφάνιση/απόκρυψη στηλών',
81
+ showHideFilters: 'Εμφάνιση/απόκρυψη φίλτρων',
82
+ showHideSearch: 'Εμφάνιση/απόκρυψη αναζήτησης',
83
+ sortByColumnAsc: 'Ταξινόμηση κατά {column} αύξουσα',
84
+ sortByColumnDesc: 'Ταξινόμηση κατά {column} φθίνουσα',
85
+ sortedByColumnAsc: 'Ταξινόμηση κατά {column} αύξουσα',
86
+ sortedByColumnDesc: 'Ταξινόμηση κατά {column} φθίνουσα',
87
+ thenBy: ', στη συνέχεια από ',
88
+ toggleDensity: 'Εναλλαγή πυκνότητας',
89
+ toggleFullScreen: 'Εναλλαγή πλήρους οθόνης',
90
+ toggleSelectAll: 'Εναλλαγή επιλογής όλων',
91
+ toggleSelectRow: 'Εναλλαγή επιλογής γραμμής',
92
+ toggleVisibility: 'Εναλλαγή ορατότητας',
93
+ ungroupByColumn: 'Αναίρεση ομαδοποίησης κατά {column}',
94
+ unpin: 'Αποκαρφίτσωση',
95
+ unpinAll: 'Αποκαρφίτσωση όλων',
96
+ };