material-react-table 2.0.5 → 2.1.0
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/index.d.ts +2 -1
- package/dist/index.esm.js +616 -545
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +614 -543
- package/dist/index.js.map +1 -1
- package/locales/fr/index.esm.js +1 -1
- package/locales/fr/index.js +1 -1
- package/locales/he/index.d.ts +3 -0
- package/locales/he/index.esm.d.ts +3 -0
- package/locales/he/index.esm.js +93 -0
- package/locales/he/index.js +97 -0
- package/locales/he/package.json +6 -0
- package/package.json +25 -25
- package/src/body/MRT_TableBodyCell.tsx +22 -19
- package/src/body/MRT_TableBodyCellValue.tsx +9 -9
- package/src/body/MRT_TableBodyRow.tsx +13 -13
- package/src/buttons/MRT_RowPinButton.tsx +2 -2
- package/src/buttons/MRT_ToggleDensePaddingButton.tsx +2 -2
- package/src/footer/MRT_TableFooterCell.tsx +2 -2
- package/src/head/MRT_TableHeadCell.tsx +25 -20
- package/src/head/MRT_TableHeadCellResizeHandle.tsx +19 -9
- package/src/hooks/useMRT_DisplayColumns.tsx +172 -125
- package/src/hooks/useMRT_TableOptions.ts +8 -0
- package/src/inputs/MRT_EditCellTextField.tsx +3 -1
- package/src/inputs/MRT_FilterCheckbox.tsx +2 -2
- package/src/inputs/MRT_FilterTextField.tsx +17 -17
- package/src/inputs/MRT_SelectCheckbox.tsx +2 -2
- package/src/locales/fr.ts +1 -1
- package/src/locales/he.ts +94 -0
- package/src/menus/MRT_ShowHideColumnsMenuItems.tsx +2 -2
- package/src/style.utils.ts +2 -2
- package/src/toolbar/MRT_TablePagination.tsx +8 -4
- package/src/toolbar/MRT_ToolbarAlertBanner.tsx +6 -6
- package/src/types.ts +2 -2
- package/dist/types/MaterialReactTable.d.ts +0 -7
- package/dist/types/aggregationFns.d.ts +0 -11
- package/dist/types/body/MRT_TableBody.d.ts +0 -13
- package/dist/types/body/MRT_TableBodyCell.d.ts +0 -15
- package/dist/types/body/MRT_TableBodyCellValue.d.ts +0 -8
- package/dist/types/body/MRT_TableBodyRow.d.ts +0 -18
- package/dist/types/body/MRT_TableBodyRowGrabHandle.d.ts +0 -10
- package/dist/types/body/MRT_TableBodyRowPinButton.d.ts +0 -8
- package/dist/types/body/MRT_TableDetailPanel.d.ts +0 -13
- package/dist/types/body/index.d.ts +0 -7
- package/dist/types/buttons/MRT_ColumnPinningButtons.d.ts +0 -8
- package/dist/types/buttons/MRT_CopyButton.d.ts +0 -8
- package/dist/types/buttons/MRT_EditActionButtons.d.ts +0 -9
- package/dist/types/buttons/MRT_ExpandAllButton.d.ts +0 -7
- package/dist/types/buttons/MRT_ExpandButton.d.ts +0 -8
- package/dist/types/buttons/MRT_GrabHandleButton.d.ts +0 -12
- package/dist/types/buttons/MRT_RowPinButton.d.ts +0 -10
- package/dist/types/buttons/MRT_ShowHideColumnsButton.d.ts +0 -7
- package/dist/types/buttons/MRT_ToggleDensePaddingButton.d.ts +0 -7
- package/dist/types/buttons/MRT_ToggleFiltersButton.d.ts +0 -7
- package/dist/types/buttons/MRT_ToggleFullScreenButton.d.ts +0 -7
- package/dist/types/buttons/MRT_ToggleGlobalFilterButton.d.ts +0 -7
- package/dist/types/buttons/MRT_ToggleRowActionMenuButton.d.ts +0 -9
- package/dist/types/buttons/index.d.ts +0 -13
- package/dist/types/column.utils.d.ts +0 -127
- package/dist/types/filterFns.d.ts +0 -69
- package/dist/types/footer/MRT_TableFooter.d.ts +0 -11
- package/dist/types/footer/MRT_TableFooterCell.d.ts +0 -8
- package/dist/types/footer/MRT_TableFooterRow.d.ts +0 -12
- package/dist/types/footer/index.d.ts +0 -3
- package/dist/types/head/MRT_TableHead.d.ts +0 -11
- package/dist/types/head/MRT_TableHeadCell.d.ts +0 -8
- package/dist/types/head/MRT_TableHeadCellColumnActionsButton.d.ts +0 -8
- package/dist/types/head/MRT_TableHeadCellFilterContainer.d.ts +0 -8
- package/dist/types/head/MRT_TableHeadCellFilterLabel.d.ts +0 -8
- package/dist/types/head/MRT_TableHeadCellGrabHandle.d.ts +0 -10
- package/dist/types/head/MRT_TableHeadCellResizeHandle.d.ts +0 -8
- package/dist/types/head/MRT_TableHeadCellSortLabel.d.ts +0 -8
- package/dist/types/head/MRT_TableHeadRow.d.ts +0 -12
- package/dist/types/head/index.d.ts +0 -9
- package/dist/types/hooks/index.d.ts +0 -4
- package/dist/types/hooks/useMRT_DisplayColumns.d.ts +0 -9
- package/dist/types/hooks/useMRT_Effects.d.ts +0 -2
- package/dist/types/hooks/useMRT_TableInstance.d.ts +0 -2
- package/dist/types/hooks/useMRT_TableOptions.d.ts +0 -22
- package/dist/types/icons.d.ts +0 -36
- package/dist/types/index.d.ts +0 -18
- package/dist/types/inputs/MRT_EditCellTextField.d.ts +0 -8
- package/dist/types/inputs/MRT_FilterCheckbox.d.ts +0 -8
- package/dist/types/inputs/MRT_FilterRangeFields.d.ts +0 -8
- package/dist/types/inputs/MRT_FilterRangeSlider.d.ts +0 -8
- package/dist/types/inputs/MRT_FilterTextField.d.ts +0 -9
- package/dist/types/inputs/MRT_GlobalFilterTextField.d.ts +0 -7
- package/dist/types/inputs/MRT_SelectCheckbox.d.ts +0 -9
- package/dist/types/inputs/index.d.ts +0 -7
- package/dist/types/locales/am.d.ts +0 -2
- package/dist/types/locales/ar.d.ts +0 -2
- package/dist/types/locales/az.d.ts +0 -2
- package/dist/types/locales/bg.d.ts +0 -2
- package/dist/types/locales/cs.d.ts +0 -2
- package/dist/types/locales/da.d.ts +0 -2
- package/dist/types/locales/de.d.ts +0 -2
- package/dist/types/locales/en.d.ts +0 -2
- package/dist/types/locales/es.d.ts +0 -2
- package/dist/types/locales/et.d.ts +0 -2
- package/dist/types/locales/fa.d.ts +0 -2
- package/dist/types/locales/fi.d.ts +0 -2
- package/dist/types/locales/fr.d.ts +0 -2
- package/dist/types/locales/hu.d.ts +0 -2
- package/dist/types/locales/hy.d.ts +0 -2
- package/dist/types/locales/id.d.ts +0 -2
- package/dist/types/locales/it.d.ts +0 -2
- package/dist/types/locales/ja.d.ts +0 -2
- package/dist/types/locales/ko.d.ts +0 -2
- package/dist/types/locales/nl.d.ts +0 -2
- package/dist/types/locales/no.d.ts +0 -2
- package/dist/types/locales/np.d.ts +0 -2
- package/dist/types/locales/pl.d.ts +0 -2
- package/dist/types/locales/pt-BR.d.ts +0 -2
- package/dist/types/locales/pt.d.ts +0 -2
- package/dist/types/locales/ro.d.ts +0 -2
- package/dist/types/locales/ru.d.ts +0 -2
- package/dist/types/locales/sk.d.ts +0 -2
- package/dist/types/locales/sr-Cyrl-RS.d.ts +0 -2
- package/dist/types/locales/sr-Latn-RS.d.ts +0 -2
- package/dist/types/locales/sv.d.ts +0 -2
- package/dist/types/locales/tr.d.ts +0 -2
- package/dist/types/locales/uk.d.ts +0 -2
- package/dist/types/locales/vi.d.ts +0 -2
- package/dist/types/locales/zh-Hans.d.ts +0 -2
- package/dist/types/locales/zh-Hant.d.ts +0 -2
- package/dist/types/menus/MRT_ColumnActionMenu.d.ts +0 -20
- package/dist/types/menus/MRT_FilterOptionMenu.d.ts +0 -13
- package/dist/types/menus/MRT_RowActionMenu.d.ts +0 -12
- package/dist/types/menus/MRT_ShowHideColumnsMenu.d.ts +0 -10
- package/dist/types/menus/MRT_ShowHideColumnsMenuItems.d.ts +0 -12
- package/dist/types/menus/index.d.ts +0 -5
- package/dist/types/modals/MRT_EditRowModal.d.ts +0 -8
- package/dist/types/modals/index.d.ts +0 -1
- package/dist/types/sortingFns.d.ts +0 -12
- package/dist/types/style.utils.d.ts +0 -32
- package/dist/types/table/MRT_Table.d.ts +0 -7
- package/dist/types/table/MRT_TableContainer.d.ts +0 -7
- package/dist/types/table/MRT_TableLoadingOverlay.d.ts +0 -7
- package/dist/types/table/MRT_TablePaper.d.ts +0 -7
- package/dist/types/table/index.d.ts +0 -5
- package/dist/types/toolbar/MRT_BottomToolbar.d.ts +0 -7
- package/dist/types/toolbar/MRT_LinearProgressBar.d.ts +0 -8
- package/dist/types/toolbar/MRT_TablePagination.d.ts +0 -14
- package/dist/types/toolbar/MRT_ToolbarAlertBanner.d.ts +0 -8
- package/dist/types/toolbar/MRT_ToolbarDropZone.d.ts +0 -7
- package/dist/types/toolbar/MRT_ToolbarInternalButtons.d.ts +0 -7
- package/dist/types/toolbar/MRT_TopToolbar.d.ts +0 -6
- package/dist/types/toolbar/index.d.ts +0 -7
- package/dist/types/types.d.ts +0 -854
- package/dist/types/useMaterialReactTable.d.ts +0 -2
@@ -19,12 +19,21 @@ export const MRT_TableHeadCellResizeHandle = <TData extends MRT_RowData>({
|
|
19
19
|
}: Props<TData>) => {
|
20
20
|
const {
|
21
21
|
getState,
|
22
|
-
options: { columnResizeMode },
|
22
|
+
options: { columnResizeDirection, columnResizeMode },
|
23
23
|
setColumnSizingInfo,
|
24
24
|
} = table;
|
25
25
|
const { density } = getState();
|
26
26
|
const { column } = header;
|
27
27
|
|
28
|
+
const mx =
|
29
|
+
density === 'compact'
|
30
|
+
? '-8px'
|
31
|
+
: density === 'comfortable'
|
32
|
+
? '-16px'
|
33
|
+
: '-24px';
|
34
|
+
|
35
|
+
const lr = column.columnDef.columnDefType === 'display' ? '4px' : '0';
|
36
|
+
|
28
37
|
return (
|
29
38
|
<Box
|
30
39
|
className="Mui-TableHeadCell-ResizeHandle-Wrapper"
|
@@ -40,7 +49,10 @@ export const MRT_TableHeadCellResizeHandle = <TData extends MRT_RowData>({
|
|
40
49
|
style={{
|
41
50
|
transform:
|
42
51
|
column.getIsResizing() && columnResizeMode === 'onEnd'
|
43
|
-
? `translateX(${
|
52
|
+
? `translateX(${
|
53
|
+
(columnResizeDirection === 'rtl' ? -1 : 1) *
|
54
|
+
(getState().columnSizingInfo.deltaOffset ?? 0)
|
55
|
+
}px)`
|
44
56
|
: undefined,
|
45
57
|
}}
|
46
58
|
sx={(theme) => ({
|
@@ -50,15 +62,12 @@ export const MRT_TableHeadCellResizeHandle = <TData extends MRT_RowData>({
|
|
50
62
|
header.subHeaders.length || columnResizeMode === 'onEnd' ? 1 : 0,
|
51
63
|
},
|
52
64
|
cursor: 'col-resize',
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
: density === 'comfortable'
|
57
|
-
? '-20px'
|
58
|
-
: '-28px',
|
65
|
+
left: columnResizeDirection === 'rtl' ? lr : undefined,
|
66
|
+
ml: columnResizeDirection === 'rtl' ? mx : undefined,
|
67
|
+
mr: columnResizeDirection === 'ltr' ? mx : undefined,
|
59
68
|
position: 'absolute',
|
60
69
|
px: '4px',
|
61
|
-
right:
|
70
|
+
right: columnResizeDirection === 'ltr' ? lr : undefined,
|
62
71
|
})}
|
63
72
|
>
|
64
73
|
<Divider
|
@@ -70,6 +79,7 @@ export const MRT_TableHeadCellResizeHandle = <TData extends MRT_RowData>({
|
|
70
79
|
borderWidth: '2px',
|
71
80
|
height: '24px',
|
72
81
|
touchAction: 'none',
|
82
|
+
transform: 'translateX(4px)',
|
73
83
|
transition: column.getIsResizing()
|
74
84
|
? undefined
|
75
85
|
: 'all 150ms ease-in-out',
|
@@ -10,21 +10,12 @@ import {
|
|
10
10
|
type MRT_ColumnDef,
|
11
11
|
type MRT_ColumnOrderState,
|
12
12
|
type MRT_DefinedTableOptions,
|
13
|
+
type MRT_DisplayColumnIds,
|
13
14
|
type MRT_GroupingState,
|
15
|
+
type MRT_Localization,
|
14
16
|
type MRT_Row,
|
15
17
|
type MRT_RowData,
|
16
18
|
} from '../types';
|
17
|
-
import { MRT_DefaultDisplayColumn } from './useMRT_TableOptions';
|
18
|
-
|
19
|
-
const blankColProps = {
|
20
|
-
children: null,
|
21
|
-
sx: {
|
22
|
-
flex: '1 0 auto',
|
23
|
-
minWidth: 0,
|
24
|
-
p: 0,
|
25
|
-
width: 0,
|
26
|
-
},
|
27
|
-
};
|
28
19
|
|
29
20
|
interface Params<TData extends MRT_RowData> {
|
30
21
|
columnOrder: MRT_ColumnOrderState;
|
@@ -33,124 +24,28 @@ interface Params<TData extends MRT_RowData> {
|
|
33
24
|
tableOptions: MRT_DefinedTableOptions<TData>;
|
34
25
|
}
|
35
26
|
|
36
|
-
export const useMRT_DisplayColumns = <TData extends MRT_RowData>(
|
37
|
-
|
38
|
-
|
39
|
-
grouping,
|
40
|
-
tableOptions
|
41
|
-
|
27
|
+
export const useMRT_DisplayColumns = <TData extends MRT_RowData>(
|
28
|
+
params: Params<TData>,
|
29
|
+
): MRT_ColumnDef<TData>[] => {
|
30
|
+
const { columnOrder, creatingRow, grouping, tableOptions } = params;
|
31
|
+
const order = tableOptions.state?.columnOrder ?? columnOrder;
|
32
|
+
|
42
33
|
return useMemo(
|
43
34
|
() =>
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
columnDefType: 'display',
|
56
|
-
id: 'mrt-row-pin',
|
57
|
-
},
|
58
|
-
(tableOptions.state?.columnOrder ?? columnOrder).includes(
|
59
|
-
'mrt-row-drag',
|
60
|
-
) && {
|
61
|
-
Cell: ({ row, rowRef, table }) => (
|
62
|
-
<MRT_TableBodyRowGrabHandle
|
63
|
-
row={row}
|
64
|
-
rowRef={rowRef as RefObject<HTMLTableRowElement>}
|
65
|
-
table={table}
|
66
|
-
/>
|
67
|
-
),
|
68
|
-
header: tableOptions.localization.move,
|
69
|
-
size: 60,
|
70
|
-
...tableOptions.displayColumnDefOptions?.['mrt-row-drag'],
|
71
|
-
columnDefType: 'display',
|
72
|
-
id: 'mrt-row-drag',
|
73
|
-
},
|
74
|
-
((tableOptions.state?.columnOrder ?? columnOrder).includes(
|
75
|
-
'mrt-row-actions',
|
76
|
-
) ||
|
77
|
-
(creatingRow && tableOptions.createDisplayMode === 'row')) && {
|
78
|
-
Cell: ({ cell, row, table }) => (
|
79
|
-
<MRT_ToggleRowActionMenuButton
|
80
|
-
cell={cell}
|
81
|
-
row={row}
|
82
|
-
table={table}
|
83
|
-
/>
|
84
|
-
),
|
85
|
-
header: tableOptions.localization.actions,
|
86
|
-
size: 70,
|
87
|
-
...tableOptions.displayColumnDefOptions?.['mrt-row-actions'],
|
88
|
-
columnDefType: 'display',
|
89
|
-
id: 'mrt-row-actions',
|
90
|
-
},
|
91
|
-
(tableOptions.state?.columnOrder ?? columnOrder).includes(
|
92
|
-
'mrt-row-expand',
|
93
|
-
) &&
|
94
|
-
showExpandColumn(
|
95
|
-
tableOptions,
|
96
|
-
tableOptions.state?.grouping ?? grouping,
|
97
|
-
) && {
|
98
|
-
Cell: ({ row, table }) => (
|
99
|
-
<MRT_ExpandButton row={row} table={table} />
|
100
|
-
),
|
101
|
-
Header: tableOptions.enableExpandAll
|
102
|
-
? ({ table }) => <MRT_ExpandAllButton table={table} />
|
103
|
-
: null,
|
104
|
-
header: tableOptions.localization.expand,
|
105
|
-
size: 60,
|
106
|
-
...tableOptions.displayColumnDefOptions?.['mrt-row-expand'],
|
107
|
-
columnDefType: 'display',
|
108
|
-
id: 'mrt-row-expand',
|
109
|
-
},
|
110
|
-
(tableOptions.state?.columnOrder ?? columnOrder).includes(
|
111
|
-
'mrt-row-select',
|
112
|
-
) && {
|
113
|
-
Cell: ({ row, table }) => (
|
114
|
-
<MRT_SelectCheckbox row={row} table={table} />
|
115
|
-
),
|
116
|
-
Header:
|
117
|
-
tableOptions.enableSelectAll &&
|
118
|
-
tableOptions.enableMultiRowSelection
|
119
|
-
? ({ table }) => <MRT_SelectCheckbox selectAll table={table} />
|
120
|
-
: null,
|
121
|
-
header: tableOptions.localization.select,
|
122
|
-
size: 60,
|
123
|
-
...tableOptions.displayColumnDefOptions?.['mrt-row-select'],
|
124
|
-
columnDefType: 'display',
|
125
|
-
id: 'mrt-row-select',
|
126
|
-
},
|
127
|
-
(tableOptions.state?.columnOrder ?? columnOrder).includes(
|
128
|
-
'mrt-row-numbers',
|
129
|
-
) && {
|
130
|
-
Cell: ({ row }) => row.index + 1,
|
131
|
-
Header: () => tableOptions.localization.rowNumber,
|
132
|
-
header: tableOptions.localization.rowNumbers,
|
133
|
-
size: 60,
|
134
|
-
...tableOptions.displayColumnDefOptions?.['mrt-row-numbers'],
|
135
|
-
columnDefType: 'display',
|
136
|
-
id: 'mrt-row-numbers',
|
137
|
-
},
|
138
|
-
(tableOptions.state?.columnOrder ?? columnOrder).includes(
|
139
|
-
'mrt-row-spacer',
|
140
|
-
) && {
|
141
|
-
...tableOptions.displayColumnDefOptions?.['mrt-row-spacer'],
|
142
|
-
...MRT_DefaultDisplayColumn,
|
143
|
-
columnDefType: 'display',
|
144
|
-
header: '',
|
145
|
-
id: 'mrt-row-spacer',
|
146
|
-
muiTableBodyCellProps: blankColProps,
|
147
|
-
muiTableFooterCellProps: blankColProps,
|
148
|
-
muiTableHeadCellProps: blankColProps,
|
149
|
-
},
|
150
|
-
] as MRT_ColumnDef<TData>[]
|
151
|
-
).filter(Boolean),
|
35
|
+
[
|
36
|
+
makeRowPinColumn,
|
37
|
+
makeRowDragColumn,
|
38
|
+
makeRowActionsColumn,
|
39
|
+
makeRowExpandColumn,
|
40
|
+
makeRowSelectColumn,
|
41
|
+
makeRowNumbersColumn,
|
42
|
+
makeSpacerColumn,
|
43
|
+
]
|
44
|
+
.map((makeCol) => makeCol(params, order))
|
45
|
+
.filter(Boolean) as MRT_ColumnDef<TData>[],
|
152
46
|
[
|
153
47
|
columnOrder,
|
48
|
+
creatingRow,
|
154
49
|
grouping,
|
155
50
|
tableOptions.displayColumnDefOptions,
|
156
51
|
tableOptions.editDisplayMode,
|
@@ -177,3 +72,155 @@ export const useMRT_DisplayColumns = <TData extends MRT_RowData>({
|
|
177
72
|
],
|
178
73
|
);
|
179
74
|
};
|
75
|
+
|
76
|
+
function defaultDisplayColumnProps<TData extends MRT_RowData>(
|
77
|
+
{
|
78
|
+
defaultDisplayColumn,
|
79
|
+
displayColumnDefOptions,
|
80
|
+
localization,
|
81
|
+
}: MRT_DefinedTableOptions<TData>,
|
82
|
+
id: MRT_DisplayColumnIds,
|
83
|
+
header?: keyof MRT_Localization,
|
84
|
+
size = 60,
|
85
|
+
) {
|
86
|
+
return {
|
87
|
+
...defaultDisplayColumn,
|
88
|
+
header: header ? localization[header]! : '',
|
89
|
+
size,
|
90
|
+
...displayColumnDefOptions?.[id],
|
91
|
+
id,
|
92
|
+
} as const;
|
93
|
+
}
|
94
|
+
|
95
|
+
function makeRowPinColumn<TData extends MRT_RowData>(
|
96
|
+
{ tableOptions }: Params<TData>,
|
97
|
+
order: MRT_ColumnOrderState,
|
98
|
+
): MRT_ColumnDef<TData> | null {
|
99
|
+
const id: MRT_DisplayColumnIds = 'mrt-row-pin';
|
100
|
+
if (order.includes(id)) {
|
101
|
+
return {
|
102
|
+
Cell: ({ row, table }) => (
|
103
|
+
<MRT_TableBodyRowPinButton row={row} table={table} />
|
104
|
+
),
|
105
|
+
...defaultDisplayColumnProps(tableOptions, id, 'pin'),
|
106
|
+
};
|
107
|
+
}
|
108
|
+
return null;
|
109
|
+
}
|
110
|
+
|
111
|
+
function makeRowDragColumn<TData extends MRT_RowData>(
|
112
|
+
{ tableOptions }: Params<TData>,
|
113
|
+
order: MRT_ColumnOrderState,
|
114
|
+
): MRT_ColumnDef<TData> | null {
|
115
|
+
const id: MRT_DisplayColumnIds = 'mrt-row-drag';
|
116
|
+
if (order.includes(id)) {
|
117
|
+
return {
|
118
|
+
Cell: ({ row, rowRef, table }) => (
|
119
|
+
<MRT_TableBodyRowGrabHandle
|
120
|
+
row={row}
|
121
|
+
rowRef={rowRef as RefObject<HTMLTableRowElement>}
|
122
|
+
table={table}
|
123
|
+
/>
|
124
|
+
),
|
125
|
+
...defaultDisplayColumnProps(tableOptions, id, 'move'),
|
126
|
+
};
|
127
|
+
}
|
128
|
+
return null;
|
129
|
+
}
|
130
|
+
|
131
|
+
function makeRowActionsColumn<TData extends MRT_RowData>(
|
132
|
+
{ creatingRow, tableOptions }: Params<TData>,
|
133
|
+
order: MRT_ColumnOrderState,
|
134
|
+
): MRT_ColumnDef<TData> | null {
|
135
|
+
const id: MRT_DisplayColumnIds = 'mrt-row-actions';
|
136
|
+
if (
|
137
|
+
order.includes(id) ||
|
138
|
+
(creatingRow && tableOptions.createDisplayMode === 'row')
|
139
|
+
) {
|
140
|
+
return {
|
141
|
+
Cell: ({ cell, row, table }) => (
|
142
|
+
<MRT_ToggleRowActionMenuButton cell={cell} row={row} table={table} />
|
143
|
+
),
|
144
|
+
...defaultDisplayColumnProps(tableOptions, id, 'actions'),
|
145
|
+
};
|
146
|
+
}
|
147
|
+
return null;
|
148
|
+
}
|
149
|
+
|
150
|
+
function makeRowExpandColumn<TData extends MRT_RowData>(
|
151
|
+
{ grouping, tableOptions }: Params<TData>,
|
152
|
+
order: MRT_ColumnOrderState,
|
153
|
+
): MRT_ColumnDef<TData> | null {
|
154
|
+
const id: MRT_DisplayColumnIds = 'mrt-row-expand';
|
155
|
+
if (
|
156
|
+
order.includes(id) &&
|
157
|
+
showExpandColumn(tableOptions, tableOptions.state?.grouping ?? grouping)
|
158
|
+
) {
|
159
|
+
return {
|
160
|
+
Cell: ({ row, table }) => <MRT_ExpandButton row={row} table={table} />,
|
161
|
+
Header: tableOptions.enableExpandAll
|
162
|
+
? ({ table }) => <MRT_ExpandAllButton table={table} />
|
163
|
+
: undefined,
|
164
|
+
...defaultDisplayColumnProps(tableOptions, id, 'expand'),
|
165
|
+
};
|
166
|
+
}
|
167
|
+
return null;
|
168
|
+
}
|
169
|
+
|
170
|
+
function makeRowSelectColumn<TData extends MRT_RowData>(
|
171
|
+
{ tableOptions }: Params<TData>,
|
172
|
+
order: MRT_ColumnOrderState,
|
173
|
+
): MRT_ColumnDef<TData> | null {
|
174
|
+
const id: MRT_DisplayColumnIds = 'mrt-row-select';
|
175
|
+
if (order.includes(id)) {
|
176
|
+
return {
|
177
|
+
Cell: ({ row, table }) => <MRT_SelectCheckbox row={row} table={table} />,
|
178
|
+
Header:
|
179
|
+
tableOptions.enableSelectAll && tableOptions.enableMultiRowSelection
|
180
|
+
? ({ table }) => <MRT_SelectCheckbox selectAll table={table} />
|
181
|
+
: undefined,
|
182
|
+
...defaultDisplayColumnProps(tableOptions, id, 'select'),
|
183
|
+
};
|
184
|
+
}
|
185
|
+
return null;
|
186
|
+
}
|
187
|
+
|
188
|
+
function makeRowNumbersColumn<TData extends MRT_RowData>(
|
189
|
+
{ tableOptions }: Params<TData>,
|
190
|
+
order: MRT_ColumnOrderState,
|
191
|
+
): MRT_ColumnDef<TData> | null {
|
192
|
+
const id: MRT_DisplayColumnIds = 'mrt-row-numbers';
|
193
|
+
if (order.includes(id) || tableOptions.enableRowNumbers)
|
194
|
+
return {
|
195
|
+
Cell: ({ row }) => row.index + 1,
|
196
|
+
Header: () => tableOptions.localization.rowNumber,
|
197
|
+
...defaultDisplayColumnProps(tableOptions, id, 'rowNumbers'),
|
198
|
+
};
|
199
|
+
return null;
|
200
|
+
}
|
201
|
+
|
202
|
+
const blankColProps = {
|
203
|
+
children: null,
|
204
|
+
sx: {
|
205
|
+
flex: '1 0 auto',
|
206
|
+
minWidth: 0,
|
207
|
+
p: 0,
|
208
|
+
width: 0,
|
209
|
+
},
|
210
|
+
};
|
211
|
+
|
212
|
+
function makeSpacerColumn<TData extends MRT_RowData>(
|
213
|
+
{ tableOptions }: Params<TData>,
|
214
|
+
order: MRT_ColumnOrderState,
|
215
|
+
): MRT_ColumnDef<TData> | null {
|
216
|
+
const id: MRT_DisplayColumnIds = 'mrt-row-spacer';
|
217
|
+
if (order.includes(id)) {
|
218
|
+
return {
|
219
|
+
...defaultDisplayColumnProps(tableOptions, id, undefined, 0),
|
220
|
+
muiTableBodyCellProps: blankColProps,
|
221
|
+
muiTableFooterCellProps: blankColProps,
|
222
|
+
muiTableHeadCellProps: blankColProps,
|
223
|
+
};
|
224
|
+
}
|
225
|
+
return null;
|
226
|
+
}
|
@@ -1,4 +1,5 @@
|
|
1
1
|
import { useMemo } from 'react';
|
2
|
+
import { useTheme } from '@mui/material';
|
2
3
|
import { MRT_AggregationFns } from '../aggregationFns';
|
3
4
|
import { MRT_FilterFns } from '../filterFns';
|
4
5
|
import { MRT_Default_Icons } from '../icons';
|
@@ -38,6 +39,7 @@ export const useMRT_TableOptions: <TData extends MRT_RowData>(
|
|
38
39
|
aggregationFns,
|
39
40
|
autoResetExpanded = false,
|
40
41
|
columnFilterDisplayMode = 'subheader',
|
42
|
+
columnResizeDirection,
|
41
43
|
columnResizeMode = 'onChange',
|
42
44
|
createDisplayMode = 'modal',
|
43
45
|
defaultColumn,
|
@@ -92,6 +94,7 @@ export const useMRT_TableOptions: <TData extends MRT_RowData>(
|
|
92
94
|
sortingFns,
|
93
95
|
...rest
|
94
96
|
}: MRT_TableOptions<TData>) => {
|
97
|
+
const theme = useTheme();
|
95
98
|
const _icons = useMemo(() => ({ ...MRT_Default_Icons, ...icons }), [icons]);
|
96
99
|
const _localization = useMemo(
|
97
100
|
() => ({
|
@@ -118,6 +121,10 @@ export const useMRT_TableOptions: <TData extends MRT_RowData>(
|
|
118
121
|
[defaultDisplayColumn],
|
119
122
|
);
|
120
123
|
|
124
|
+
if (!columnResizeDirection) {
|
125
|
+
columnResizeDirection = theme.direction || 'ltr';
|
126
|
+
}
|
127
|
+
|
121
128
|
layoutMode =
|
122
129
|
layoutMode || (enableColumnResizing ? 'grid-no-grow' : 'semantic');
|
123
130
|
if (
|
@@ -146,6 +153,7 @@ export const useMRT_TableOptions: <TData extends MRT_RowData>(
|
|
146
153
|
aggregationFns: _aggregationFns,
|
147
154
|
autoResetExpanded,
|
148
155
|
columnFilterDisplayMode,
|
156
|
+
columnResizeDirection,
|
149
157
|
columnResizeMode,
|
150
158
|
createDisplayMode,
|
151
159
|
defaultColumn: _defaultColumn,
|
@@ -127,7 +127,9 @@ export const MRT_EditCellTextField = <TData extends MRT_RowData>({
|
|
127
127
|
variant="standard"
|
128
128
|
{...textFieldProps}
|
129
129
|
InputProps={{
|
130
|
-
|
130
|
+
...(textFieldProps.variant !== 'outlined'
|
131
|
+
? { disableUnderline: editDisplayMode === 'table' }
|
132
|
+
: {}),
|
131
133
|
...textFieldProps.InputProps,
|
132
134
|
sx: (theme) => ({
|
133
135
|
mb: 0,
|
@@ -63,8 +63,8 @@ export const MRT_FilterCheckbox = <TData extends MRT_RowData>({
|
|
63
63
|
column.getFilterValue() === undefined
|
64
64
|
? 'true'
|
65
65
|
: column.getFilterValue() === 'true'
|
66
|
-
|
67
|
-
|
66
|
+
? 'false'
|
67
|
+
: undefined,
|
68
68
|
);
|
69
69
|
checkboxProps?.onChange?.(e, checked);
|
70
70
|
}}
|
@@ -107,10 +107,10 @@ export const MRT_FilterTextField = <TData extends MRT_RowData>({
|
|
107
107
|
? textFieldProps?.placeholder ??
|
108
108
|
localization.filterByColumn?.replace('{column}', String(columnDef.header))
|
109
109
|
: rangeFilterIndex === 0
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
110
|
+
? localization.min
|
111
|
+
: rangeFilterIndex === 1
|
112
|
+
? localization.max
|
113
|
+
: '';
|
114
114
|
const allowedColumnFilterOptions =
|
115
115
|
columnDef?.columnFilterModeOptions ?? columnFilterModeOptions;
|
116
116
|
const showChangeModeButton =
|
@@ -127,10 +127,10 @@ export const MRT_FilterTextField = <TData extends MRT_RowData>({
|
|
127
127
|
isMultiSelectFilter
|
128
128
|
? (column.getFilterValue() as string[]) || []
|
129
129
|
: isRangeFilter
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
130
|
+
? (column.getFilterValue() as [string, string])?.[
|
131
|
+
rangeFilterIndex as number
|
132
|
+
] || ''
|
133
|
+
: (column.getFilterValue() as string) ?? '',
|
134
134
|
);
|
135
135
|
|
136
136
|
const handleChangeDebounced = useCallback(
|
@@ -161,8 +161,8 @@ export const MRT_FilterTextField = <TData extends MRT_RowData>({
|
|
161
161
|
textFieldProps.type === 'date'
|
162
162
|
? event.target.valueAsDate
|
163
163
|
: textFieldProps.type === 'number'
|
164
|
-
|
165
|
-
|
164
|
+
? event.target.valueAsNumber
|
165
|
+
: event.target.value;
|
166
166
|
handleChange(newValue);
|
167
167
|
textFieldProps?.onChange?.(event);
|
168
168
|
};
|
@@ -290,7 +290,7 @@ export const MRT_FilterTextField = <TData extends MRT_RowData>({
|
|
290
290
|
whiteSpace: 'nowrap',
|
291
291
|
},
|
292
292
|
},
|
293
|
-
InputProps: endAdornment //hack because mui looks for
|
293
|
+
InputProps: endAdornment //hack because mui looks for presence of endAdornment key instead of undefined
|
294
294
|
? { endAdornment, startAdornment }
|
295
295
|
: { startAdornment },
|
296
296
|
fullWidth: true,
|
@@ -337,12 +337,12 @@ export const MRT_FilterTextField = <TData extends MRT_RowData>({
|
|
337
337
|
minWidth: isDateFilter
|
338
338
|
? '160px'
|
339
339
|
: enableColumnFilterModes && rangeFilterIndex === 0
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
|
344
|
-
|
345
|
-
|
340
|
+
? '110px'
|
341
|
+
: isRangeFilter
|
342
|
+
? '100px'
|
343
|
+
: !filterChipLabel
|
344
|
+
? '120px'
|
345
|
+
: 'auto',
|
346
346
|
mx: '-2px',
|
347
347
|
p: 0,
|
348
348
|
width: 'calc(100% + 4px)',
|
@@ -62,8 +62,8 @@ export const MRT_SelectCheckbox = <TData extends MRT_RowData>({
|
|
62
62
|
row
|
63
63
|
? row.getToggleSelectedHandler()(event)
|
64
64
|
: selectAllMode === 'all'
|
65
|
-
|
66
|
-
|
65
|
+
? table.getToggleAllRowsSelectedHandler()(event)
|
66
|
+
: table.getToggleAllPageRowsSelectedHandler()(event);
|
67
67
|
if (enableRowPinning && rowPinningDisplayMode?.includes('select')) {
|
68
68
|
if (row) {
|
69
69
|
row.pin(
|
package/src/locales/fr.ts
CHANGED
@@ -51,7 +51,7 @@ export const MRT_Localization_FR: MRT_Localization = {
|
|
51
51
|
groupByColumn: 'Grouper par {column}',
|
52
52
|
groupedBy: 'Groupé par ',
|
53
53
|
hideAll: 'Cacher tout',
|
54
|
-
hideColumn: 'Cacher {column}
|
54
|
+
hideColumn: 'Cacher colonne {column}',
|
55
55
|
max: 'Max',
|
56
56
|
min: 'Min',
|
57
57
|
move: 'Déplacer',
|
@@ -0,0 +1,94 @@
|
|
1
|
+
import { type MRT_Localization } from '..';
|
2
|
+
|
3
|
+
export const MRT_Localization_HE: MRT_Localization = {
|
4
|
+
actions: 'פעולות',
|
5
|
+
and: 'ו',
|
6
|
+
cancel: 'ביטול',
|
7
|
+
changeFilterMode: 'שינוי מצב סינון',
|
8
|
+
changeSearchMode: 'שינוי מצב חיפוש',
|
9
|
+
clearFilter: 'נקה סינון',
|
10
|
+
clearSearch: 'נקה חיפוש',
|
11
|
+
clearSort: 'נקה מיון',
|
12
|
+
clickToCopy: 'לחץ להעתקה',
|
13
|
+
collapse: 'צמצום',
|
14
|
+
collapseAll: 'צמצום הכל',
|
15
|
+
columnActions: 'פעולות עמודה',
|
16
|
+
copiedToClipboard: 'הועתק ללוח',
|
17
|
+
dropToGroupBy: 'גרור לקיבוץ לפי {column}',
|
18
|
+
edit: 'ערוך',
|
19
|
+
expand: 'הרחב',
|
20
|
+
expandAll: 'הרחב הכל',
|
21
|
+
filterArrIncludes: 'כולל',
|
22
|
+
filterArrIncludesAll: 'כולל הכל',
|
23
|
+
filterArrIncludesSome: 'כולל',
|
24
|
+
filterBetween: 'בין',
|
25
|
+
filterBetweenInclusive: 'בין כולל',
|
26
|
+
filterByColumn: 'סנן לפי {column}',
|
27
|
+
filterContains: 'מכיל',
|
28
|
+
filterEmpty: 'ריק',
|
29
|
+
filterEndsWith: 'מסתיים ב',
|
30
|
+
filterEquals: 'שווה',
|
31
|
+
filterEqualsString: 'שווה',
|
32
|
+
filterFuzzy: 'פעיל',
|
33
|
+
filterGreaterThan: 'גדול מ',
|
34
|
+
filterGreaterThanOrEqualTo: 'גדול או שווה ל',
|
35
|
+
filterInNumberRange: 'בין',
|
36
|
+
filterIncludesString: 'מכיל',
|
37
|
+
filterIncludesStringSensitive: 'מכיל',
|
38
|
+
filterLessThan: 'קטן מ',
|
39
|
+
filterLessThanOrEqualTo: 'קטן או שווה ל',
|
40
|
+
filterMode: 'מצב סינון: {filterType}',
|
41
|
+
filterNotEmpty: 'לא ריק',
|
42
|
+
filterNotEquals: 'לא שווה',
|
43
|
+
filterStartsWith: 'מתחיל ב',
|
44
|
+
filterWeakEquals: 'שווה',
|
45
|
+
filteringByColumn: 'מסנן לפי {column} - {filterType} {filterValue}',
|
46
|
+
goToFirstPage: 'לדף הראשון',
|
47
|
+
goToLastPage: 'לדף האחרון',
|
48
|
+
goToNextPage: 'לדף הבא',
|
49
|
+
goToPreviousPage: 'לדף הקודם',
|
50
|
+
grab: 'תפוס',
|
51
|
+
groupByColumn: 'קיבוץ לפי {column}',
|
52
|
+
groupedBy: 'קובץ לפי',
|
53
|
+
hideAll: 'הסתר הכל',
|
54
|
+
hideColumn: 'הסתר עמודה {column}',
|
55
|
+
max: 'מקסימום',
|
56
|
+
min: 'מינימום',
|
57
|
+
move: 'הזז',
|
58
|
+
noRecordsToDisplay: 'אין רשומות להצגה',
|
59
|
+
noResultsFound: 'לא נמצאו תוצאות',
|
60
|
+
of: 'מתוך',
|
61
|
+
or: 'או',
|
62
|
+
pin: 'נעץ',
|
63
|
+
pinToLeft: 'נעץ לשמאל',
|
64
|
+
pinToRight: 'נעץ לימין',
|
65
|
+
resetColumnSize: 'איפוס גודל עמודה',
|
66
|
+
resetOrder: 'איפוס סדר',
|
67
|
+
rowActions: 'פעולות שורה',
|
68
|
+
rowNumber: '#',
|
69
|
+
rowNumbers: 'מספרי שורות',
|
70
|
+
rowsPerPage: 'שורות לעמוד',
|
71
|
+
save: 'שמור',
|
72
|
+
search: 'חיפוש',
|
73
|
+
selectedCountOfRowCountRowsSelected:
|
74
|
+
'{selectedCount} מתוך {rowCount} שורות נבחרו',
|
75
|
+
select: 'בחר',
|
76
|
+
showAll: 'הצג הכל',
|
77
|
+
showAllColumns: 'הצג את כל העמודות',
|
78
|
+
showHideColumns: 'הצג/הסתר עמודות',
|
79
|
+
showHideFilters: 'הצג/הסתר סינונים',
|
80
|
+
showHideSearch: 'הצג/הסתר חיפוש',
|
81
|
+
sortByColumnAsc: 'מיין לפי {column} בסדר עולה',
|
82
|
+
sortByColumnDesc: 'מיין לפי {column} בסדר יורד',
|
83
|
+
sortedByColumnAsc: 'ממוין לפי {column} בסדר עולה',
|
84
|
+
sortedByColumnDesc: 'ממוין לפי {column} בסדר יורד',
|
85
|
+
thenBy: ', ואז לפי ',
|
86
|
+
toggleDensity: 'שנה צפיפות',
|
87
|
+
toggleFullScreen: 'מסך מלא',
|
88
|
+
toggleSelectAll: 'בחר/בטל בחירת הכל',
|
89
|
+
toggleSelectRow: 'בחר/בטל בחירת שורה',
|
90
|
+
toggleVisibility: 'הצג/הסתר',
|
91
|
+
ungroupByColumn: 'בטל קיבוץ לפי {column}',
|
92
|
+
unpin: 'בטל נעיצה',
|
93
|
+
unpinAll: 'בטל נעיצת הכל',
|
94
|
+
};
|
@@ -106,8 +106,8 @@ export const MRT_ShowHideColumnsMenuItems = <TData extends MRT_RowData>({
|
|
106
106
|
outline: isDragging
|
107
107
|
? `2px dashed ${theme.palette.grey[500]}`
|
108
108
|
: hoveredColumn?.id === column.id
|
109
|
-
|
110
|
-
|
109
|
+
? `2px dashed ${getMRTTheme(table, theme).draggingBorderColor}`
|
110
|
+
: 'none',
|
111
111
|
outlineOffset: '-2px',
|
112
112
|
pl: `${(column.depth + 0.5) * 2}rem`,
|
113
113
|
py: '6px',
|
package/src/style.utils.ts
CHANGED
@@ -83,8 +83,8 @@ export const getCommonMRTCellStyles = <TData extends MRT_RowData>({
|
|
83
83
|
boxShadow: getIsLastLeftPinnedColumn(table, column)
|
84
84
|
? `-4px 0 8px -6px ${alpha(theme.palette.grey[700], 0.5)} inset`
|
85
85
|
: getIsFirstRightPinnedColumn(column)
|
86
|
-
|
87
|
-
|
86
|
+
? `4px 0 8px -6px ${alpha(theme.palette.grey[700], 0.5)} inset`
|
87
|
+
: undefined,
|
88
88
|
display: layoutMode?.startsWith('grid') ? 'flex' : undefined,
|
89
89
|
left:
|
90
90
|
column.getIsPinned() === 'left'
|