material-react-table 2.0.5 → 2.1.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/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'
|