material-react-table 2.0.0-beta.2 → 2.0.0-beta.4
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/cjs/index.js +417 -410
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/body/MRT_TableBody.d.ts +4 -3
- package/dist/cjs/types/body/MRT_TableBodyCell.d.ts +5 -5
- package/dist/cjs/types/body/MRT_TableBodyRowGrabHandle.d.ts +3 -2
- package/dist/cjs/types/body/MRT_TableBodyRowPinButton.d.ts +3 -2
- package/dist/cjs/types/body/MRT_TableDetailPanel.d.ts +3 -2
- package/dist/cjs/types/buttons/MRT_ColumnPinningButtons.d.ts +3 -2
- package/dist/cjs/types/buttons/MRT_CopyButton.d.ts +3 -4
- package/dist/cjs/types/buttons/MRT_EditActionButtons.d.ts +3 -2
- package/dist/cjs/types/buttons/MRT_ExpandAllButton.d.ts +3 -2
- package/dist/cjs/types/buttons/MRT_ExpandButton.d.ts +2 -1
- package/dist/cjs/types/buttons/MRT_GrabHandleButton.d.ts +2 -2
- package/dist/cjs/types/buttons/MRT_RowPinButton.d.ts +3 -2
- package/dist/cjs/types/buttons/MRT_ToggleRowActionMenuButton.d.ts +3 -2
- package/dist/cjs/types/footer/MRT_TableFooter.d.ts +3 -2
- package/dist/cjs/types/footer/MRT_TableFooterCell.d.ts +3 -2
- package/dist/cjs/types/footer/MRT_TableFooterRow.d.ts +3 -2
- package/dist/cjs/types/head/MRT_TableHead.d.ts +3 -2
- package/dist/cjs/types/head/MRT_TableHeadCell.d.ts +3 -2
- package/dist/cjs/types/head/MRT_TableHeadCellColumnActionsButton.d.ts +3 -2
- package/dist/cjs/types/head/MRT_TableHeadCellFilterContainer.d.ts +3 -2
- package/dist/cjs/types/head/MRT_TableHeadCellFilterLabel.d.ts +3 -2
- package/dist/cjs/types/head/MRT_TableHeadCellGrabHandle.d.ts +3 -2
- package/dist/cjs/types/head/MRT_TableHeadCellResizeHandle.d.ts +3 -2
- package/dist/cjs/types/head/MRT_TableHeadCellSortLabel.d.ts +3 -2
- package/dist/cjs/types/head/MRT_TableHeadRow.d.ts +3 -2
- package/dist/cjs/types/inputs/MRT_EditCellTextField.d.ts +3 -2
- package/dist/cjs/types/inputs/MRT_FilterCheckbox.d.ts +3 -2
- package/dist/cjs/types/inputs/MRT_FilterRangeFields.d.ts +3 -2
- package/dist/cjs/types/inputs/MRT_FilterRangeSlider.d.ts +3 -2
- package/dist/cjs/types/inputs/MRT_FilterTextField.d.ts +3 -2
- package/dist/cjs/types/inputs/MRT_GlobalFilterTextField.d.ts +3 -2
- package/dist/cjs/types/inputs/MRT_SelectCheckbox.d.ts +3 -2
- package/dist/cjs/types/menus/MRT_ColumnActionMenu.d.ts +3 -2
- package/dist/cjs/types/menus/MRT_FilterOptionMenu.d.ts +3 -2
- package/dist/cjs/types/menus/MRT_RowActionMenu.d.ts +3 -2
- package/dist/cjs/types/menus/MRT_ShowHideColumnsMenu.d.ts +3 -2
- package/dist/cjs/types/menus/MRT_ShowHideColumnsMenuItems.d.ts +3 -2
- package/dist/cjs/types/modals/MRT_EditRowModal.d.ts +3 -2
- package/dist/cjs/types/table/MRT_Table.d.ts +3 -2
- package/dist/cjs/types/table/MRT_TableContainer.d.ts +3 -2
- package/dist/cjs/types/table/MRT_TableLoadingOverlay.d.ts +7 -0
- package/dist/cjs/types/table/MRT_TablePaper.d.ts +3 -2
- package/dist/cjs/types/table/index.d.ts +1 -0
- package/dist/cjs/types/toolbar/MRT_BottomToolbar.d.ts +3 -2
- package/dist/cjs/types/toolbar/MRT_LinearProgressBar.d.ts +3 -2
- package/dist/cjs/types/toolbar/MRT_TablePagination.d.ts +6 -2
- package/dist/cjs/types/toolbar/MRT_ToolbarAlertBanner.d.ts +3 -2
- package/dist/cjs/types/toolbar/MRT_ToolbarDropZone.d.ts +3 -2
- package/dist/cjs/types/toolbar/MRT_ToolbarInternalButtons.d.ts +3 -2
- package/dist/cjs/types/toolbar/MRT_TopToolbar.d.ts +1 -2
- package/dist/cjs/types/types.d.ts +3 -3
- package/dist/esm/material-react-table.esm.js +415 -408
- package/dist/esm/material-react-table.esm.js.map +1 -1
- package/dist/esm/types/body/MRT_TableBody.d.ts +4 -3
- package/dist/esm/types/body/MRT_TableBodyCell.d.ts +5 -5
- package/dist/esm/types/body/MRT_TableBodyRowGrabHandle.d.ts +3 -2
- package/dist/esm/types/body/MRT_TableBodyRowPinButton.d.ts +3 -2
- package/dist/esm/types/body/MRT_TableDetailPanel.d.ts +3 -2
- package/dist/esm/types/buttons/MRT_ColumnPinningButtons.d.ts +3 -2
- package/dist/esm/types/buttons/MRT_CopyButton.d.ts +3 -4
- package/dist/esm/types/buttons/MRT_EditActionButtons.d.ts +3 -2
- package/dist/esm/types/buttons/MRT_ExpandAllButton.d.ts +3 -2
- package/dist/esm/types/buttons/MRT_ExpandButton.d.ts +2 -1
- package/dist/esm/types/buttons/MRT_GrabHandleButton.d.ts +2 -2
- package/dist/esm/types/buttons/MRT_RowPinButton.d.ts +3 -2
- package/dist/esm/types/buttons/MRT_ToggleRowActionMenuButton.d.ts +3 -2
- package/dist/esm/types/footer/MRT_TableFooter.d.ts +3 -2
- package/dist/esm/types/footer/MRT_TableFooterCell.d.ts +3 -2
- package/dist/esm/types/footer/MRT_TableFooterRow.d.ts +3 -2
- package/dist/esm/types/head/MRT_TableHead.d.ts +3 -2
- package/dist/esm/types/head/MRT_TableHeadCell.d.ts +3 -2
- package/dist/esm/types/head/MRT_TableHeadCellColumnActionsButton.d.ts +3 -2
- package/dist/esm/types/head/MRT_TableHeadCellFilterContainer.d.ts +3 -2
- package/dist/esm/types/head/MRT_TableHeadCellFilterLabel.d.ts +3 -2
- package/dist/esm/types/head/MRT_TableHeadCellGrabHandle.d.ts +3 -2
- package/dist/esm/types/head/MRT_TableHeadCellResizeHandle.d.ts +3 -2
- package/dist/esm/types/head/MRT_TableHeadCellSortLabel.d.ts +3 -2
- package/dist/esm/types/head/MRT_TableHeadRow.d.ts +3 -2
- package/dist/esm/types/inputs/MRT_EditCellTextField.d.ts +3 -2
- package/dist/esm/types/inputs/MRT_FilterCheckbox.d.ts +3 -2
- package/dist/esm/types/inputs/MRT_FilterRangeFields.d.ts +3 -2
- package/dist/esm/types/inputs/MRT_FilterRangeSlider.d.ts +3 -2
- package/dist/esm/types/inputs/MRT_FilterTextField.d.ts +3 -2
- package/dist/esm/types/inputs/MRT_GlobalFilterTextField.d.ts +3 -2
- package/dist/esm/types/inputs/MRT_SelectCheckbox.d.ts +3 -2
- package/dist/esm/types/menus/MRT_ColumnActionMenu.d.ts +3 -2
- package/dist/esm/types/menus/MRT_FilterOptionMenu.d.ts +3 -2
- package/dist/esm/types/menus/MRT_RowActionMenu.d.ts +3 -2
- package/dist/esm/types/menus/MRT_ShowHideColumnsMenu.d.ts +3 -2
- package/dist/esm/types/menus/MRT_ShowHideColumnsMenuItems.d.ts +3 -2
- package/dist/esm/types/modals/MRT_EditRowModal.d.ts +3 -2
- package/dist/esm/types/table/MRT_Table.d.ts +3 -2
- package/dist/esm/types/table/MRT_TableContainer.d.ts +3 -2
- package/dist/esm/types/table/MRT_TableLoadingOverlay.d.ts +7 -0
- package/dist/esm/types/table/MRT_TablePaper.d.ts +3 -2
- package/dist/esm/types/table/index.d.ts +1 -0
- package/dist/esm/types/toolbar/MRT_BottomToolbar.d.ts +3 -2
- package/dist/esm/types/toolbar/MRT_LinearProgressBar.d.ts +3 -2
- package/dist/esm/types/toolbar/MRT_TablePagination.d.ts +6 -2
- package/dist/esm/types/toolbar/MRT_ToolbarAlertBanner.d.ts +3 -2
- package/dist/esm/types/toolbar/MRT_ToolbarDropZone.d.ts +3 -2
- package/dist/esm/types/toolbar/MRT_ToolbarInternalButtons.d.ts +3 -2
- package/dist/esm/types/toolbar/MRT_TopToolbar.d.ts +1 -2
- package/dist/esm/types/types.d.ts +3 -3
- package/dist/index.d.ts +130 -119
- package/package.json +1 -1
- package/src/body/MRT_TableBody.tsx +8 -4
- package/src/body/MRT_TableBodyCell.tsx +60 -61
- package/src/body/MRT_TableBodyRow.tsx +3 -3
- package/src/body/MRT_TableBodyRowGrabHandle.tsx +10 -5
- package/src/body/MRT_TableBodyRowPinButton.tsx +12 -5
- package/src/body/MRT_TableDetailPanel.tsx +11 -7
- package/src/buttons/MRT_ColumnPinningButtons.tsx +12 -3
- package/src/buttons/MRT_CopyButton.tsx +6 -8
- package/src/buttons/MRT_EditActionButtons.tsx +9 -3
- package/src/buttons/MRT_ExpandAllButton.tsx +9 -5
- package/src/buttons/MRT_ExpandButton.tsx +2 -2
- package/src/buttons/MRT_GrabHandleButton.tsx +8 -5
- package/src/buttons/MRT_RowPinButton.tsx +8 -4
- package/src/buttons/MRT_ToggleRowActionMenuButton.tsx +7 -3
- package/src/column.utils.ts +1 -1
- package/src/footer/MRT_TableFooter.tsx +9 -5
- package/src/footer/MRT_TableFooterCell.tsx +12 -12
- package/src/footer/MRT_TableFooterRow.tsx +10 -6
- package/src/head/MRT_TableHead.tsx +8 -4
- package/src/head/MRT_TableHeadCell.tsx +93 -84
- package/src/head/MRT_TableHeadCellColumnActionsButton.tsx +5 -3
- package/src/head/MRT_TableHeadCellFilterContainer.tsx +4 -2
- package/src/head/MRT_TableHeadCellFilterLabel.tsx +8 -4
- package/src/head/MRT_TableHeadCellGrabHandle.tsx +4 -1
- package/src/head/MRT_TableHeadCellResizeHandle.tsx +7 -4
- package/src/head/MRT_TableHeadCellSortLabel.tsx +28 -12
- package/src/head/MRT_TableHeadRow.tsx +10 -6
- package/src/hooks/useMRT_DisplayColumns.tsx +2 -1
- package/src/inputs/MRT_EditCellTextField.tsx +16 -2
- package/src/inputs/MRT_FilterCheckbox.tsx +4 -2
- package/src/inputs/MRT_FilterRangeFields.tsx +13 -3
- package/src/inputs/MRT_FilterRangeSlider.tsx +4 -2
- package/src/inputs/MRT_FilterTextField.tsx +3 -1
- package/src/inputs/MRT_GlobalFilterTextField.tsx +9 -5
- package/src/inputs/MRT_SelectCheckbox.tsx +8 -4
- package/src/menus/MRT_ColumnActionMenu.tsx +4 -2
- package/src/menus/MRT_FilterOptionMenu.tsx +4 -2
- package/src/menus/MRT_RowActionMenu.tsx +4 -2
- package/src/menus/MRT_ShowHideColumnsMenu.tsx +4 -2
- package/src/menus/MRT_ShowHideColumnsMenuItems.tsx +6 -3
- package/src/modals/MRT_EditRowModal.tsx +5 -3
- package/src/table/MRT_Table.tsx +25 -31
- package/src/table/MRT_TableContainer.tsx +15 -44
- package/src/table/MRT_TableLoadingOverlay.tsx +53 -0
- package/src/table/MRT_TablePaper.tsx +7 -3
- package/src/table/index.ts +1 -0
- package/src/toolbar/MRT_BottomToolbar.tsx +9 -7
- package/src/toolbar/MRT_LinearProgressBar.tsx +14 -8
- package/src/toolbar/MRT_TablePagination.tsx +18 -8
- package/src/toolbar/MRT_ToolbarAlertBanner.tsx +9 -5
- package/src/toolbar/MRT_ToolbarDropZone.tsx +6 -2
- package/src/toolbar/MRT_ToolbarInternalButtons.tsx +8 -4
- package/src/toolbar/MRT_TopToolbar.tsx +5 -8
- package/src/types.ts +5 -5
|
@@ -7,9 +7,8 @@ import {
|
|
|
7
7
|
useMemo,
|
|
8
8
|
useState,
|
|
9
9
|
} from 'react';
|
|
10
|
-
import { type VirtualItem } from '@tanstack/react-virtual';
|
|
11
10
|
import Skeleton from '@mui/material/Skeleton';
|
|
12
|
-
import TableCell from '@mui/material/TableCell';
|
|
11
|
+
import TableCell, { type TableCellProps } from '@mui/material/TableCell';
|
|
13
12
|
import { useTheme } from '@mui/material/styles';
|
|
14
13
|
import { MRT_TableBodyCellValue } from './MRT_TableBodyCellValue';
|
|
15
14
|
import { MRT_TableBodyRowGrabHandle } from './MRT_TableBodyRowGrabHandle';
|
|
@@ -27,14 +26,14 @@ import {
|
|
|
27
26
|
type MRT_TableInstance,
|
|
28
27
|
} from '../types';
|
|
29
28
|
|
|
30
|
-
interface Props<TData extends MRT_RowData> {
|
|
29
|
+
interface Props<TData extends MRT_RowData> extends TableCellProps {
|
|
31
30
|
cell: MRT_Cell<TData>;
|
|
32
31
|
measureElement?: (element: HTMLTableCellElement) => void;
|
|
33
32
|
numRows?: number;
|
|
34
33
|
rowIndex: number;
|
|
35
34
|
rowRef: RefObject<HTMLTableRowElement>;
|
|
36
35
|
table: MRT_TableInstance<TData>;
|
|
37
|
-
|
|
36
|
+
virtualIndex?: number;
|
|
38
37
|
}
|
|
39
38
|
|
|
40
39
|
export const MRT_TableBodyCell = <TData extends MRT_RowData>({
|
|
@@ -44,7 +43,8 @@ export const MRT_TableBodyCell = <TData extends MRT_RowData>({
|
|
|
44
43
|
rowIndex,
|
|
45
44
|
rowRef,
|
|
46
45
|
table,
|
|
47
|
-
|
|
46
|
+
virtualIndex,
|
|
47
|
+
...rest
|
|
48
48
|
}: Props<TData>) => {
|
|
49
49
|
const theme = useTheme();
|
|
50
50
|
const {
|
|
@@ -83,19 +83,11 @@ export const MRT_TableBodyCell = <TData extends MRT_RowData>({
|
|
|
83
83
|
const { columnDef } = column;
|
|
84
84
|
const { columnDefType } = columnDef;
|
|
85
85
|
|
|
86
|
+
const args = { cell, column, row, table };
|
|
86
87
|
const tableCellProps = {
|
|
87
|
-
...parseFromValuesOrFunc(muiTableBodyCellProps,
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
row,
|
|
91
|
-
table,
|
|
92
|
-
}),
|
|
93
|
-
...parseFromValuesOrFunc(columnDef.muiTableBodyCellProps, {
|
|
94
|
-
cell,
|
|
95
|
-
column,
|
|
96
|
-
row,
|
|
97
|
-
table,
|
|
98
|
-
}),
|
|
88
|
+
...parseFromValuesOrFunc(muiTableBodyCellProps, args),
|
|
89
|
+
...parseFromValuesOrFunc(columnDef.muiTableBodyCellProps, args),
|
|
90
|
+
...rest,
|
|
99
91
|
};
|
|
100
92
|
|
|
101
93
|
const skeletonProps = parseFromValuesOrFunc(muiSkeletonProps, {
|
|
@@ -213,7 +205,7 @@ export const MRT_TableBodyCell = <TData extends MRT_RowData>({
|
|
|
213
205
|
|
|
214
206
|
return (
|
|
215
207
|
<TableCell
|
|
216
|
-
data-index={
|
|
208
|
+
data-index={virtualIndex}
|
|
217
209
|
ref={(node: HTMLTableCellElement) => {
|
|
218
210
|
if (node) {
|
|
219
211
|
measureElement?.(node);
|
|
@@ -224,9 +216,10 @@ export const MRT_TableBodyCell = <TData extends MRT_RowData>({
|
|
|
224
216
|
onDragEnter={handleDragEnter}
|
|
225
217
|
sx={(theme) => ({
|
|
226
218
|
'&:hover': {
|
|
227
|
-
outline:
|
|
228
|
-
|
|
229
|
-
|
|
219
|
+
outline:
|
|
220
|
+
['cell', 'table'].includes(editDisplayMode ?? '') && isEditable
|
|
221
|
+
? `1px solid ${theme.palette.text.secondary}`
|
|
222
|
+
: undefined,
|
|
230
223
|
outlineOffset: '-1px',
|
|
231
224
|
textOverflow: 'clip',
|
|
232
225
|
},
|
|
@@ -274,47 +267,53 @@ export const MRT_TableBodyCell = <TData extends MRT_RowData>({
|
|
|
274
267
|
...draggingBorders,
|
|
275
268
|
})}
|
|
276
269
|
>
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
column
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
270
|
+
{tableCellProps.children ?? (
|
|
271
|
+
<>
|
|
272
|
+
{cell.getIsPlaceholder() ? (
|
|
273
|
+
columnDef.PlaceholderCell?.({ cell, column, row, table }) ?? null
|
|
274
|
+
) : showSkeletons !== false && (isLoading || showSkeletons) ? (
|
|
275
|
+
<Skeleton
|
|
276
|
+
animation="wave"
|
|
277
|
+
height={20}
|
|
278
|
+
width={skeletonWidth}
|
|
279
|
+
{...skeletonProps}
|
|
280
|
+
/>
|
|
281
|
+
) : enableRowNumbers &&
|
|
282
|
+
rowNumberMode === 'static' &&
|
|
283
|
+
column.id === 'mrt-row-numbers' ? (
|
|
284
|
+
rowIndex + 1
|
|
285
|
+
) : column.id === 'mrt-row-drag' ? (
|
|
286
|
+
<MRT_TableBodyRowGrabHandle
|
|
287
|
+
row={row}
|
|
288
|
+
rowRef={rowRef}
|
|
289
|
+
table={table}
|
|
290
|
+
/>
|
|
291
|
+
) : columnDefType === 'display' &&
|
|
292
|
+
(column.id === 'mrt-row-select' ||
|
|
293
|
+
column.id === 'mrt-row-expand' ||
|
|
294
|
+
!row.getIsGrouped()) ? (
|
|
295
|
+
columnDef.Cell?.({
|
|
296
|
+
cell,
|
|
297
|
+
column,
|
|
298
|
+
renderedCellValue: cell.renderValue() as any,
|
|
299
|
+
row,
|
|
300
|
+
table,
|
|
301
|
+
})
|
|
302
|
+
) : isCreating || isEditing ? (
|
|
303
|
+
<MRT_EditCellTextField cell={cell} table={table} />
|
|
304
|
+
) : (enableClickToCopy || columnDef.enableClickToCopy) &&
|
|
305
|
+
columnDef.enableClickToCopy !== false ? (
|
|
306
|
+
<MRT_CopyButton cell={cell} table={table}>
|
|
307
|
+
<MRT_TableBodyCellValue cell={cell} table={table} />
|
|
308
|
+
</MRT_CopyButton>
|
|
309
|
+
) : (
|
|
309
310
|
<MRT_TableBodyCellValue cell={cell} table={table} />
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
)}
|
|
317
|
-
</>
|
|
311
|
+
)}
|
|
312
|
+
{cell.getIsGrouped() && !columnDef.GroupedCell && (
|
|
313
|
+
<> ({row.subRows?.length})</>
|
|
314
|
+
)}
|
|
315
|
+
</>
|
|
316
|
+
)}
|
|
318
317
|
</TableCell>
|
|
319
318
|
);
|
|
320
319
|
};
|
|
@@ -162,7 +162,7 @@ export const MRT_TableBodyRow = <TData extends MRT_RowData>({
|
|
|
162
162
|
boxSizing: 'border-box',
|
|
163
163
|
display: layoutMode?.startsWith('grid') ? 'flex' : undefined,
|
|
164
164
|
opacity: isPinned
|
|
165
|
-
? 0.
|
|
165
|
+
? 0.97
|
|
166
166
|
: draggingRow?.id === row.id || hoveredRow?.id === row.id
|
|
167
167
|
? 0.5
|
|
168
168
|
: 1,
|
|
@@ -209,8 +209,8 @@ export const MRT_TableBodyRow = <TData extends MRT_RowData>({
|
|
|
209
209
|
rowIndex,
|
|
210
210
|
rowRef,
|
|
211
211
|
table,
|
|
212
|
-
|
|
213
|
-
? (cellOrVirtualCell as VirtualItem)
|
|
212
|
+
virtualIndex: columnVirtualizer
|
|
213
|
+
? (cellOrVirtualCell as VirtualItem).index
|
|
214
214
|
: undefined,
|
|
215
215
|
};
|
|
216
216
|
return cell ? (
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type DragEvent, type RefObject } from 'react';
|
|
2
|
+
import { type IconButtonProps } from '@mui/material/IconButton';
|
|
2
3
|
import { MRT_GrabHandleButton } from '../buttons/MRT_GrabHandleButton';
|
|
3
4
|
import { parseFromValuesOrFunc } from '../column.utils';
|
|
4
5
|
import {
|
|
@@ -7,7 +8,7 @@ import {
|
|
|
7
8
|
type MRT_TableInstance,
|
|
8
9
|
} from '../types';
|
|
9
10
|
|
|
10
|
-
interface Props<TData extends MRT_RowData> {
|
|
11
|
+
interface Props<TData extends MRT_RowData> extends IconButtonProps {
|
|
11
12
|
row: MRT_Row<TData>;
|
|
12
13
|
rowRef: RefObject<HTMLTableRowElement>;
|
|
13
14
|
table: MRT_TableInstance<TData>;
|
|
@@ -17,15 +18,19 @@ export const MRT_TableBodyRowGrabHandle = <TData extends MRT_RowData>({
|
|
|
17
18
|
row,
|
|
18
19
|
rowRef,
|
|
19
20
|
table,
|
|
21
|
+
...rest
|
|
20
22
|
}: Props<TData>) => {
|
|
21
23
|
const {
|
|
22
24
|
options: { muiRowDragHandleProps },
|
|
23
25
|
} = table;
|
|
24
26
|
|
|
25
|
-
const iconButtonProps =
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
const iconButtonProps = {
|
|
28
|
+
...parseFromValuesOrFunc(muiRowDragHandleProps, {
|
|
29
|
+
row,
|
|
30
|
+
table,
|
|
31
|
+
}),
|
|
32
|
+
...rest,
|
|
33
|
+
};
|
|
29
34
|
|
|
30
35
|
const handleDragStart = (event: DragEvent<HTMLButtonElement>) => {
|
|
31
36
|
iconButtonProps?.onDragStart?.(event);
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import Box from '@mui/material/Box';
|
|
2
|
+
import { type IconButtonProps } from '@mui/material/IconButton';
|
|
2
3
|
import { MRT_RowPinButton } from '../buttons/MRT_RowPinButton';
|
|
3
4
|
import { parseFromValuesOrFunc } from '../column.utils';
|
|
4
5
|
import {
|
|
@@ -7,7 +8,7 @@ import {
|
|
|
7
8
|
type MRT_TableInstance,
|
|
8
9
|
} from '../types';
|
|
9
10
|
|
|
10
|
-
interface Props<TData extends MRT_RowData> {
|
|
11
|
+
interface Props<TData extends MRT_RowData> extends IconButtonProps {
|
|
11
12
|
row: MRT_Row<TData>;
|
|
12
13
|
table: MRT_TableInstance<TData>;
|
|
13
14
|
}
|
|
@@ -15,6 +16,7 @@ interface Props<TData extends MRT_RowData> {
|
|
|
15
16
|
export const MRT_TableBodyRowPinButton = <TData extends MRT_RowData>({
|
|
16
17
|
row,
|
|
17
18
|
table,
|
|
19
|
+
...rest
|
|
18
20
|
}: Props<TData>) => {
|
|
19
21
|
const {
|
|
20
22
|
getState,
|
|
@@ -26,6 +28,12 @@ export const MRT_TableBodyRowPinButton = <TData extends MRT_RowData>({
|
|
|
26
28
|
|
|
27
29
|
if (!canPin) return null;
|
|
28
30
|
|
|
31
|
+
const rowPinButtonProps = {
|
|
32
|
+
row,
|
|
33
|
+
table,
|
|
34
|
+
...rest,
|
|
35
|
+
};
|
|
36
|
+
|
|
29
37
|
if (rowPinningDisplayMode === 'top-and-bottom' && !row.getIsPinned()) {
|
|
30
38
|
return (
|
|
31
39
|
<Box
|
|
@@ -34,8 +42,8 @@ export const MRT_TableBodyRowPinButton = <TData extends MRT_RowData>({
|
|
|
34
42
|
flexDirection: density === 'compact' ? 'row' : 'column',
|
|
35
43
|
}}
|
|
36
44
|
>
|
|
37
|
-
<MRT_RowPinButton pinningPosition="top"
|
|
38
|
-
<MRT_RowPinButton pinningPosition="bottom"
|
|
45
|
+
<MRT_RowPinButton pinningPosition="top" {...rowPinButtonProps} />
|
|
46
|
+
<MRT_RowPinButton pinningPosition="bottom" {...rowPinButtonProps} />
|
|
39
47
|
</Box>
|
|
40
48
|
);
|
|
41
49
|
}
|
|
@@ -43,8 +51,7 @@ export const MRT_TableBodyRowPinButton = <TData extends MRT_RowData>({
|
|
|
43
51
|
return (
|
|
44
52
|
<MRT_RowPinButton
|
|
45
53
|
pinningPosition={rowPinningDisplayMode === 'bottom' ? 'bottom' : 'top'}
|
|
46
|
-
|
|
47
|
-
table={table}
|
|
54
|
+
{...rowPinButtonProps}
|
|
48
55
|
/>
|
|
49
56
|
);
|
|
50
57
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type RefObject } from 'react';
|
|
2
2
|
import { type VirtualItem } from '@tanstack/react-virtual';
|
|
3
3
|
import Collapse from '@mui/material/Collapse';
|
|
4
|
-
import TableCell from '@mui/material/TableCell';
|
|
4
|
+
import TableCell, { type TableCellProps } from '@mui/material/TableCell';
|
|
5
5
|
import TableRow from '@mui/material/TableRow';
|
|
6
6
|
import { lighten } from '@mui/material/styles';
|
|
7
7
|
import { parseFromValuesOrFunc } from '../column.utils';
|
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
type MRT_TableInstance,
|
|
12
12
|
} from '../types';
|
|
13
13
|
|
|
14
|
-
interface Props<TData extends MRT_RowData> {
|
|
14
|
+
interface Props<TData extends MRT_RowData> extends TableCellProps {
|
|
15
15
|
parentRowRef: RefObject<HTMLTableRowElement>;
|
|
16
16
|
row: MRT_Row<TData>;
|
|
17
17
|
rowIndex: number;
|
|
@@ -25,6 +25,7 @@ export const MRT_TableDetailPanel = <TData extends MRT_RowData>({
|
|
|
25
25
|
rowIndex,
|
|
26
26
|
table,
|
|
27
27
|
virtualRow,
|
|
28
|
+
...rest
|
|
28
29
|
}: Props<TData>) => {
|
|
29
30
|
const {
|
|
30
31
|
getState,
|
|
@@ -45,10 +46,13 @@ export const MRT_TableDetailPanel = <TData extends MRT_RowData>({
|
|
|
45
46
|
table,
|
|
46
47
|
});
|
|
47
48
|
|
|
48
|
-
const tableCellProps =
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
49
|
+
const tableCellProps = {
|
|
50
|
+
...parseFromValuesOrFunc(muiDetailPanelProps, {
|
|
51
|
+
row,
|
|
52
|
+
table,
|
|
53
|
+
}),
|
|
54
|
+
...rest,
|
|
55
|
+
};
|
|
52
56
|
|
|
53
57
|
return (
|
|
54
58
|
<TableRow
|
|
@@ -77,7 +81,7 @@ export const MRT_TableDetailPanel = <TData extends MRT_RowData>({
|
|
|
77
81
|
? lighten(theme.palette.background.default, 0.05)
|
|
78
82
|
: undefined,
|
|
79
83
|
borderBottom: !row.getIsExpanded() ? 'none' : undefined,
|
|
80
|
-
display: layoutMode?.startsWith('grid') ? 'flex' :
|
|
84
|
+
display: layoutMode?.startsWith('grid') ? 'flex' : undefined,
|
|
81
85
|
py: row.getIsExpanded() ? '1rem' : 0,
|
|
82
86
|
transition: 'all 150ms ease-in-out',
|
|
83
87
|
width: `${table.getTotalSize()}px`,
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import Box from '@mui/material/Box';
|
|
1
|
+
import Box, { type BoxProps } from '@mui/material/Box';
|
|
2
2
|
import IconButton from '@mui/material/IconButton';
|
|
3
3
|
import Tooltip from '@mui/material/Tooltip';
|
|
4
|
+
import { parseFromValuesOrFunc } from '../column.utils';
|
|
4
5
|
import {
|
|
5
6
|
type MRT_Column,
|
|
6
7
|
type MRT_RowData,
|
|
7
8
|
type MRT_TableInstance,
|
|
8
9
|
} from '../types';
|
|
9
10
|
|
|
10
|
-
interface Props<TData extends MRT_RowData> {
|
|
11
|
+
interface Props<TData extends MRT_RowData> extends BoxProps {
|
|
11
12
|
column: MRT_Column<TData>;
|
|
12
13
|
table: MRT_TableInstance<TData>;
|
|
13
14
|
}
|
|
@@ -15,6 +16,7 @@ interface Props<TData extends MRT_RowData> {
|
|
|
15
16
|
export const MRT_ColumnPinningButtons = <TData extends MRT_RowData>({
|
|
16
17
|
column,
|
|
17
18
|
table,
|
|
19
|
+
...rest
|
|
18
20
|
}: Props<TData>) => {
|
|
19
21
|
const {
|
|
20
22
|
options: {
|
|
@@ -28,7 +30,14 @@ export const MRT_ColumnPinningButtons = <TData extends MRT_RowData>({
|
|
|
28
30
|
};
|
|
29
31
|
|
|
30
32
|
return (
|
|
31
|
-
<Box
|
|
33
|
+
<Box
|
|
34
|
+
{...rest}
|
|
35
|
+
sx={(theme) => ({
|
|
36
|
+
minWidth: '70px',
|
|
37
|
+
textAlign: 'center',
|
|
38
|
+
...(parseFromValuesOrFunc(rest?.sx, theme) as any),
|
|
39
|
+
})}
|
|
40
|
+
>
|
|
32
41
|
{column.getIsPinned() ? (
|
|
33
42
|
<Tooltip arrow title={localization.unpin}>
|
|
34
43
|
<IconButton onClick={() => handlePinColumn(false)} size="small">
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { type MouseEvent,
|
|
2
|
-
import Button from '@mui/material/Button';
|
|
1
|
+
import { type MouseEvent, useState } from 'react';
|
|
2
|
+
import Button, { type ButtonProps } from '@mui/material/Button';
|
|
3
3
|
import Tooltip from '@mui/material/Tooltip';
|
|
4
4
|
import { parseFromValuesOrFunc } from '../column.utils';
|
|
5
5
|
import {
|
|
@@ -8,16 +8,15 @@ import {
|
|
|
8
8
|
type MRT_TableInstance,
|
|
9
9
|
} from '../types';
|
|
10
10
|
|
|
11
|
-
interface Props<TData extends MRT_RowData> {
|
|
11
|
+
interface Props<TData extends MRT_RowData> extends ButtonProps {
|
|
12
12
|
cell: MRT_Cell<TData>;
|
|
13
|
-
children: ReactNode;
|
|
14
13
|
table: MRT_TableInstance<TData>;
|
|
15
14
|
}
|
|
16
15
|
|
|
17
16
|
export const MRT_CopyButton = <TData extends MRT_RowData>({
|
|
18
17
|
cell,
|
|
19
|
-
children,
|
|
20
18
|
table,
|
|
19
|
+
...rest
|
|
21
20
|
}: Props<TData>) => {
|
|
22
21
|
const {
|
|
23
22
|
options: { localization, muiCopyButtonProps },
|
|
@@ -47,6 +46,7 @@ export const MRT_CopyButton = <TData extends MRT_RowData>({
|
|
|
47
46
|
row,
|
|
48
47
|
table,
|
|
49
48
|
}),
|
|
49
|
+
...rest,
|
|
50
50
|
};
|
|
51
51
|
|
|
52
52
|
return (
|
|
@@ -81,9 +81,7 @@ export const MRT_CopyButton = <TData extends MRT_RowData>({
|
|
|
81
81
|
...(parseFromValuesOrFunc(buttonProps?.sx, theme) as any),
|
|
82
82
|
})}
|
|
83
83
|
title={undefined}
|
|
84
|
-
|
|
85
|
-
{children}
|
|
86
|
-
</Button>
|
|
84
|
+
/>
|
|
87
85
|
</Tooltip>
|
|
88
86
|
);
|
|
89
87
|
};
|
|
@@ -1,15 +1,16 @@
|
|
|
1
|
-
import Box from '@mui/material/Box';
|
|
1
|
+
import Box, { type BoxProps } from '@mui/material/Box';
|
|
2
2
|
import Button from '@mui/material/Button';
|
|
3
3
|
import CircularProgress from '@mui/material/CircularProgress';
|
|
4
4
|
import IconButton from '@mui/material/IconButton';
|
|
5
5
|
import Tooltip from '@mui/material/Tooltip';
|
|
6
|
+
import { parseFromValuesOrFunc } from '../column.utils';
|
|
6
7
|
import {
|
|
7
8
|
type MRT_Row,
|
|
8
9
|
type MRT_RowData,
|
|
9
10
|
type MRT_TableInstance,
|
|
10
11
|
} from '../types';
|
|
11
12
|
|
|
12
|
-
interface Props<TData extends MRT_RowData> {
|
|
13
|
+
interface Props<TData extends MRT_RowData> extends BoxProps {
|
|
13
14
|
row: MRT_Row<TData>;
|
|
14
15
|
table: MRT_TableInstance<TData>;
|
|
15
16
|
variant?: 'icon' | 'text';
|
|
@@ -19,6 +20,7 @@ export const MRT_EditActionButtons = <TData extends MRT_RowData>({
|
|
|
19
20
|
row,
|
|
20
21
|
table,
|
|
21
22
|
variant = 'icon',
|
|
23
|
+
...rest
|
|
22
24
|
}: Props<TData>) => {
|
|
23
25
|
const {
|
|
24
26
|
getState,
|
|
@@ -83,7 +85,11 @@ export const MRT_EditActionButtons = <TData extends MRT_RowData>({
|
|
|
83
85
|
return (
|
|
84
86
|
<Box
|
|
85
87
|
onClick={(e) => e.stopPropagation()}
|
|
86
|
-
sx={
|
|
88
|
+
sx={(theme) => ({
|
|
89
|
+
display: 'flex',
|
|
90
|
+
gap: '0.75rem',
|
|
91
|
+
...(parseFromValuesOrFunc(rest?.sx, theme) as any),
|
|
92
|
+
})}
|
|
87
93
|
>
|
|
88
94
|
{variant === 'icon' ? (
|
|
89
95
|
<>
|
|
@@ -1,14 +1,15 @@
|
|
|
1
|
-
import IconButton from '@mui/material/IconButton';
|
|
1
|
+
import IconButton, { type IconButtonProps } from '@mui/material/IconButton';
|
|
2
2
|
import Tooltip from '@mui/material/Tooltip';
|
|
3
3
|
import { parseFromValuesOrFunc } from '../column.utils';
|
|
4
4
|
import { type MRT_RowData, type MRT_TableInstance } from '../types';
|
|
5
5
|
|
|
6
|
-
interface Props<TData extends MRT_RowData> {
|
|
6
|
+
interface Props<TData extends MRT_RowData> extends IconButtonProps {
|
|
7
7
|
table: MRT_TableInstance<TData>;
|
|
8
8
|
}
|
|
9
9
|
|
|
10
10
|
export const MRT_ExpandAllButton = <TData extends MRT_RowData>({
|
|
11
11
|
table,
|
|
12
|
+
...rest
|
|
12
13
|
}: Props<TData>) => {
|
|
13
14
|
const {
|
|
14
15
|
getCanSomeRowsExpand,
|
|
@@ -25,9 +26,12 @@ export const MRT_ExpandAllButton = <TData extends MRT_RowData>({
|
|
|
25
26
|
} = table;
|
|
26
27
|
const { density, isLoading } = getState();
|
|
27
28
|
|
|
28
|
-
const iconButtonProps =
|
|
29
|
-
|
|
30
|
-
|
|
29
|
+
const iconButtonProps = {
|
|
30
|
+
...parseFromValuesOrFunc(muiExpandAllButtonProps, {
|
|
31
|
+
table,
|
|
32
|
+
}),
|
|
33
|
+
...rest,
|
|
34
|
+
};
|
|
31
35
|
|
|
32
36
|
const isAllRowsExpanded = getIsAllRowsExpanded();
|
|
33
37
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type MouseEvent } from 'react';
|
|
2
|
-
import IconButton from '@mui/material/IconButton';
|
|
2
|
+
import IconButton, { type IconButtonProps } from '@mui/material/IconButton';
|
|
3
3
|
import Tooltip from '@mui/material/Tooltip';
|
|
4
4
|
import { parseFromValuesOrFunc } from '../column.utils';
|
|
5
5
|
import {
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
type MRT_TableInstance,
|
|
9
9
|
} from '../types';
|
|
10
10
|
|
|
11
|
-
interface Props<TData extends MRT_RowData> {
|
|
11
|
+
interface Props<TData extends MRT_RowData> extends IconButtonProps {
|
|
12
12
|
row: MRT_Row<TData>;
|
|
13
13
|
table: MRT_TableInstance<TData>;
|
|
14
14
|
}
|
|
@@ -4,7 +4,7 @@ import Tooltip from '@mui/material/Tooltip';
|
|
|
4
4
|
import { parseFromValuesOrFunc } from '../column.utils';
|
|
5
5
|
import { type MRT_RowData, type MRT_TableInstance } from '../types';
|
|
6
6
|
|
|
7
|
-
interface Props<TData extends MRT_RowData> {
|
|
7
|
+
interface Props<TData extends MRT_RowData> extends IconButtonProps {
|
|
8
8
|
iconButtonProps?: IconButtonProps;
|
|
9
9
|
location?: 'column' | 'row';
|
|
10
10
|
onDragEnd: DragEventHandler<HTMLButtonElement>;
|
|
@@ -18,6 +18,7 @@ export const MRT_GrabHandleButton = <TData extends MRT_RowData>({
|
|
|
18
18
|
onDragEnd,
|
|
19
19
|
onDragStart,
|
|
20
20
|
table,
|
|
21
|
+
...rest
|
|
21
22
|
}: Props<TData>) => {
|
|
22
23
|
const {
|
|
23
24
|
options: {
|
|
@@ -26,22 +27,24 @@ export const MRT_GrabHandleButton = <TData extends MRT_RowData>({
|
|
|
26
27
|
},
|
|
27
28
|
} = table;
|
|
28
29
|
|
|
30
|
+
const _iconButtonProps = { ...iconButtonProps, ...rest };
|
|
31
|
+
|
|
29
32
|
return (
|
|
30
33
|
<Tooltip
|
|
31
34
|
arrow
|
|
32
35
|
enterDelay={1000}
|
|
33
36
|
enterNextDelay={1000}
|
|
34
37
|
placement="top"
|
|
35
|
-
title={
|
|
38
|
+
title={_iconButtonProps?.title ?? localization.move}
|
|
36
39
|
>
|
|
37
40
|
<IconButton
|
|
38
41
|
disableRipple
|
|
39
42
|
draggable="true"
|
|
40
43
|
size="small"
|
|
41
|
-
{...
|
|
44
|
+
{..._iconButtonProps}
|
|
42
45
|
onClick={(e) => {
|
|
43
46
|
e.stopPropagation();
|
|
44
|
-
|
|
47
|
+
_iconButtonProps?.onClick?.(e);
|
|
45
48
|
}}
|
|
46
49
|
onDragEnd={onDragEnd}
|
|
47
50
|
onDragStart={onDragStart}
|
|
@@ -58,7 +61,7 @@ export const MRT_GrabHandleButton = <TData extends MRT_RowData>({
|
|
|
58
61
|
opacity: location === 'row' ? 1 : 0.3,
|
|
59
62
|
p: '2px',
|
|
60
63
|
transition: 'all 150ms ease-in-out',
|
|
61
|
-
...(parseFromValuesOrFunc(
|
|
64
|
+
...(parseFromValuesOrFunc(_iconButtonProps?.sx, theme) as any),
|
|
62
65
|
})}
|
|
63
66
|
title={undefined}
|
|
64
67
|
>
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import { type MouseEvent, useState } from 'react';
|
|
2
2
|
import { type RowPinningPosition } from '@tanstack/react-table';
|
|
3
|
-
import IconButton from '@mui/material/IconButton';
|
|
3
|
+
import IconButton, { type IconButtonProps } from '@mui/material/IconButton';
|
|
4
4
|
import Tooltip from '@mui/material/Tooltip';
|
|
5
|
+
import { parseFromValuesOrFunc } from '../column.utils';
|
|
5
6
|
import {
|
|
6
7
|
type MRT_Row,
|
|
7
8
|
type MRT_RowData,
|
|
8
9
|
type MRT_TableInstance,
|
|
9
10
|
} from '../types';
|
|
10
11
|
|
|
11
|
-
interface Props<TData extends MRT_RowData> {
|
|
12
|
+
interface Props<TData extends MRT_RowData> extends IconButtonProps {
|
|
12
13
|
pinningPosition: RowPinningPosition;
|
|
13
14
|
row: MRT_Row<TData>;
|
|
14
15
|
table: MRT_TableInstance<TData>;
|
|
@@ -18,6 +19,7 @@ export const MRT_RowPinButton = <TData extends MRT_RowData>({
|
|
|
18
19
|
pinningPosition,
|
|
19
20
|
row,
|
|
20
21
|
table,
|
|
22
|
+
...rest
|
|
21
23
|
}: Props<TData>) => {
|
|
22
24
|
const {
|
|
23
25
|
options: {
|
|
@@ -51,10 +53,12 @@ export const MRT_RowPinButton = <TData extends MRT_RowData>({
|
|
|
51
53
|
onMouseEnter={() => setTooltipOpened(true)}
|
|
52
54
|
onMouseLeave={() => setTooltipOpened(false)}
|
|
53
55
|
size="small"
|
|
54
|
-
|
|
56
|
+
{...rest}
|
|
57
|
+
sx={(theme) => ({
|
|
55
58
|
height: '24px',
|
|
56
59
|
width: '24px',
|
|
57
|
-
|
|
60
|
+
...(parseFromValuesOrFunc(rest?.sx, theme) as any),
|
|
61
|
+
})}
|
|
58
62
|
>
|
|
59
63
|
{isPinned ? (
|
|
60
64
|
<CloseIcon />
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type MouseEvent, useState } from 'react';
|
|
2
|
-
import IconButton from '@mui/material/IconButton';
|
|
2
|
+
import IconButton, { type IconButtonProps } from '@mui/material/IconButton';
|
|
3
3
|
import Tooltip from '@mui/material/Tooltip';
|
|
4
4
|
import { MRT_EditActionButtons } from './MRT_EditActionButtons';
|
|
5
5
|
import { parseFromValuesOrFunc } from '../column.utils';
|
|
@@ -22,7 +22,7 @@ const commonIconButtonStyles = {
|
|
|
22
22
|
width: '2rem',
|
|
23
23
|
};
|
|
24
24
|
|
|
25
|
-
interface Props<TData extends MRT_RowData> {
|
|
25
|
+
interface Props<TData extends MRT_RowData> extends IconButtonProps {
|
|
26
26
|
cell: MRT_Cell<TData>;
|
|
27
27
|
row: MRT_Row<TData>;
|
|
28
28
|
table: MRT_TableInstance<TData>;
|
|
@@ -32,6 +32,7 @@ export const MRT_ToggleRowActionMenuButton = <TData extends MRT_RowData>({
|
|
|
32
32
|
cell,
|
|
33
33
|
row,
|
|
34
34
|
table,
|
|
35
|
+
...rest
|
|
35
36
|
}: Props<TData>) => {
|
|
36
37
|
const {
|
|
37
38
|
getState,
|
|
@@ -77,12 +78,14 @@ export const MRT_ToggleRowActionMenuButton = <TData extends MRT_RowData>({
|
|
|
77
78
|
) : showEditActionButtons ? (
|
|
78
79
|
<MRT_EditActionButtons row={row} table={table} />
|
|
79
80
|
) : !renderRowActionMenuItems &&
|
|
80
|
-
parseFromValuesOrFunc(enableEditing, row)
|
|
81
|
+
parseFromValuesOrFunc(enableEditing, row) &&
|
|
82
|
+
['modal', 'row'].includes(editDisplayMode!) ? (
|
|
81
83
|
<Tooltip arrow placement="right" title={localization.edit}>
|
|
82
84
|
<IconButton
|
|
83
85
|
aria-label={localization.edit}
|
|
84
86
|
onClick={handleStartEditMode}
|
|
85
87
|
sx={commonIconButtonStyles}
|
|
88
|
+
{...rest}
|
|
86
89
|
>
|
|
87
90
|
<EditIcon />
|
|
88
91
|
</IconButton>
|
|
@@ -100,6 +103,7 @@ export const MRT_ToggleRowActionMenuButton = <TData extends MRT_RowData>({
|
|
|
100
103
|
onClick={handleOpenRowActionMenu}
|
|
101
104
|
size="small"
|
|
102
105
|
sx={commonIconButtonStyles}
|
|
106
|
+
{...rest}
|
|
103
107
|
>
|
|
104
108
|
<MoreHorizIcon />
|
|
105
109
|
</IconButton>
|