material-react-table 0.8.15 → 0.9.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/README.md +1 -1
- package/dist/MaterialReactTable.d.ts +37 -36
- package/dist/material-react-table.cjs.development.js +97 -75
- package/dist/material-react-table.cjs.development.js.map +1 -1
- package/dist/material-react-table.cjs.production.min.js +1 -1
- package/dist/material-react-table.cjs.production.min.js.map +1 -1
- package/dist/material-react-table.esm.js +97 -75
- package/dist/material-react-table.esm.js.map +1 -1
- package/dist/toolbar/MRT_LinearProgressBar.d.ts +1 -0
- package/dist/utils.d.ts +1 -1
- package/package.json +1 -1
- package/src/MaterialReactTable.tsx +50 -47
- package/src/body/MRT_TableBodyCell.tsx +4 -4
- package/src/body/MRT_TableBodyRow.tsx +2 -2
- package/src/body/MRT_TableDetailPanel.tsx +2 -2
- package/src/buttons/MRT_EditActionButtons.tsx +2 -2
- package/src/buttons/MRT_ExpandButton.tsx +2 -2
- package/src/buttons/MRT_FullScreenToggleButton.tsx +2 -2
- package/src/buttons/MRT_ToggleDensePaddingButton.tsx +2 -2
- package/src/buttons/MRT_ToggleFiltersButton.tsx +2 -2
- package/src/buttons/MRT_ToggleGlobalFilterButton.tsx +4 -4
- package/src/head/MRT_TableHeadCellFilterLabel.tsx +1 -0
- package/src/inputs/MRT_EditCellTextField.tsx +8 -8
- package/src/inputs/MRT_FilterTextField.tsx +2 -2
- package/src/inputs/MRT_SearchTextField.tsx +4 -4
- package/src/inputs/MRT_SelectCheckbox.tsx +4 -4
- package/src/menus/MRT_ColumnActionMenu.tsx +2 -2
- package/src/menus/MRT_ShowHideColumnsMenu.tsx +1 -1
- package/src/menus/MRT_ShowHideColumnsMenuItems.tsx +2 -2
- package/src/table/MRT_TableContainer.tsx +3 -3
- package/src/table/MRT_TableRoot.tsx +11 -11
- package/src/toolbar/MRT_LinearProgressBar.tsx +17 -2
- package/src/toolbar/MRT_ToolbarBottom.tsx +4 -4
- package/src/toolbar/MRT_ToolbarInternalButtons.tsx +2 -1
- package/src/toolbar/MRT_ToolbarTop.tsx +13 -6
- package/src/utils.ts +1 -1
package/dist/utils.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ export declare const createGroup: <D extends Record<string, any> = {}>(table: Ta
|
|
|
7
7
|
export declare const createDataColumn: <D extends Record<string, any> = {}>(table: Table<D>, column: MRT_ColumnDef<D>, currentFilterFns: {
|
|
8
8
|
[key: string]: MRT_FilterFn<{}>;
|
|
9
9
|
}) => ColumnDef<D>;
|
|
10
|
-
export declare const createDisplayColumn: <D extends Record<string, any> = {}>(table: Table<D>, column: Pick<MRT_ColumnDef<D>, "accessorFN" | "footer" | "columns" | "filterFn" | "id" | "accessorKey" | "accessorFn" | "cell" | "meta" | "enableHiding" | "enablePinning" | "enableColumnFilter" | "enableGlobalFilter" | "sortingFn" | "sortDescFirst" | "enableSorting" | "enableMultiSort" | "invertSorting" | "sortUndefined" | "aggregationFn" | "aggregatedCell" | "enableGrouping" | "enableResizing" | "size" | "minSize" | "maxSize" | "
|
|
10
|
+
export declare const createDisplayColumn: <D extends Record<string, any> = {}>(table: Table<D>, column: Pick<MRT_ColumnDef<D>, "accessorFN" | "footer" | "columns" | "filterFn" | "id" | "accessorKey" | "accessorFn" | "cell" | "meta" | "enableHiding" | "enablePinning" | "enableColumnFilter" | "enableGlobalFilter" | "sortingFn" | "sortDescFirst" | "enableSorting" | "enableMultiSort" | "invertSorting" | "sortUndefined" | "aggregationFn" | "aggregatedCell" | "enableGrouping" | "enableResizing" | "size" | "minSize" | "maxSize" | "Cell" | "Edit" | "Filter" | "Footer" | "Header" | "enableClickToCopy" | "enableColumnActions" | "enableColumnOrdering" | "enableEditing" | "enabledColumnFilterOptions" | "filterSelectOptions" | "muiTableBodyCellCopyButtonProps" | "muiTableBodyCellEditTextFieldProps" | "muiTableBodyCellProps" | "muiTableFooterCellProps" | "muiTableHeadCellColumnActionsButtonProps" | "muiTableHeadCellFilterTextFieldProps" | "muiTableHeadCellProps" | "onMrtCellEditBlur" | "onMrtCellEditChange" | "onMrtFilterValueChange"> & {
|
|
11
11
|
header?: string | undefined;
|
|
12
12
|
}) => ColumnDef<D>;
|
|
13
13
|
export declare const reorderColumn: (movingColumn: MRT_Column, receivingColumn: MRT_Column, columnOrder: ColumnOrderState, setColumnOrder: (updater: Updater<ColumnOrderState>) => void) => void;
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.
|
|
2
|
+
"version": "0.9.0",
|
|
3
3
|
"license": "MIT",
|
|
4
4
|
"name": "material-react-table",
|
|
5
5
|
"description": "A fully featured Material UI implementation of TanStack React Table, inspired by material-table and the MUI X DataGrid, written from the ground up in TypeScript.",
|
|
@@ -109,7 +109,7 @@ export type MRT_TableInstance<D extends Record<string, any> = {}> = Omit<
|
|
|
109
109
|
getState: () => MRT_TableState<D>;
|
|
110
110
|
options: MaterialReactTableProps<D> & {
|
|
111
111
|
icons: MRT_Icons;
|
|
112
|
-
|
|
112
|
+
tableId: string;
|
|
113
113
|
localization: MRT_Localization;
|
|
114
114
|
};
|
|
115
115
|
setCurrentEditingCell: Dispatch<SetStateAction<MRT_Cell | null>>;
|
|
@@ -144,6 +144,13 @@ export type MRT_ColumnDef<D extends Record<string, any> = {}> = Omit<
|
|
|
144
144
|
ColumnDef<D>,
|
|
145
145
|
'accessorFN' | 'header' | 'footer' | 'columns' | 'filterFn'
|
|
146
146
|
> & {
|
|
147
|
+
Cell?: ({
|
|
148
|
+
cell,
|
|
149
|
+
tableInstance,
|
|
150
|
+
}: {
|
|
151
|
+
cell: MRT_Cell<D>;
|
|
152
|
+
tableInstance: MRT_TableInstance<D>;
|
|
153
|
+
}) => ReactNode;
|
|
147
154
|
Edit?: ({
|
|
148
155
|
cell,
|
|
149
156
|
tableInstance,
|
|
@@ -176,13 +183,6 @@ export type MRT_ColumnDef<D extends Record<string, any> = {}> = Omit<
|
|
|
176
183
|
header: MRT_Header<D>;
|
|
177
184
|
tableInstance: MRT_TableInstance<D>;
|
|
178
185
|
}) => ReactNode);
|
|
179
|
-
Cell?: ({
|
|
180
|
-
cell,
|
|
181
|
-
tableInstance,
|
|
182
|
-
}: {
|
|
183
|
-
cell: MRT_Cell<D>;
|
|
184
|
-
tableInstance: MRT_TableInstance<D>;
|
|
185
|
-
}) => ReactNode;
|
|
186
186
|
accessorFN?: (row: D) => any;
|
|
187
187
|
columns?: MRT_ColumnDef<D>[];
|
|
188
188
|
enableClickToCopy?: boolean;
|
|
@@ -258,7 +258,7 @@ export type MRT_ColumnDef<D extends Record<string, any> = {}> = Omit<
|
|
|
258
258
|
tableInstance: MRT_TableInstance;
|
|
259
259
|
column: MRT_Column<D>;
|
|
260
260
|
}) => TableCellProps);
|
|
261
|
-
|
|
261
|
+
onMrtCellEditBlur?: ({
|
|
262
262
|
cell,
|
|
263
263
|
event,
|
|
264
264
|
tableInstance,
|
|
@@ -267,7 +267,7 @@ export type MRT_ColumnDef<D extends Record<string, any> = {}> = Omit<
|
|
|
267
267
|
cell: MRT_Cell<D>;
|
|
268
268
|
tableInstance: MRT_TableInstance<D>;
|
|
269
269
|
}) => void;
|
|
270
|
-
|
|
270
|
+
onMrtCellEditChange?: ({
|
|
271
271
|
cell,
|
|
272
272
|
event,
|
|
273
273
|
tableInstance,
|
|
@@ -276,7 +276,7 @@ export type MRT_ColumnDef<D extends Record<string, any> = {}> = Omit<
|
|
|
276
276
|
cell: MRT_Cell<D>;
|
|
277
277
|
tableInstance: MRT_TableInstance<D>;
|
|
278
278
|
}) => void;
|
|
279
|
-
|
|
279
|
+
onMrtFilterValueChange?: ({
|
|
280
280
|
column,
|
|
281
281
|
event,
|
|
282
282
|
filterValue,
|
|
@@ -362,7 +362,6 @@ export type MaterialReactTableProps<D extends Record<string, any> = {}> =
|
|
|
362
362
|
enabledColumnFilterOptions?: (MRT_FILTER_OPTION | string)[];
|
|
363
363
|
enabledGlobalFilterOptions?: (MRT_FILTER_OPTION | string)[];
|
|
364
364
|
icons?: Partial<MRT_Icons>;
|
|
365
|
-
idPrefix?: string;
|
|
366
365
|
localization?: Partial<MRT_Localization>;
|
|
367
366
|
muiLinearProgressProps?:
|
|
368
367
|
| LinearProgressProps
|
|
@@ -525,20 +524,20 @@ export type MaterialReactTableProps<D extends Record<string, any> = {}> =
|
|
|
525
524
|
tableInstance: MRT_TableInstance;
|
|
526
525
|
headerGroup: MRT_HeaderGroup<D>;
|
|
527
526
|
}) => TableRowProps);
|
|
528
|
-
|
|
529
|
-
|
|
|
527
|
+
muiTablePaginationProps?:
|
|
528
|
+
| Partial<TablePaginationProps>
|
|
530
529
|
| (({
|
|
531
530
|
tableInstance,
|
|
532
531
|
}: {
|
|
533
532
|
tableInstance: MRT_TableInstance;
|
|
534
|
-
}) =>
|
|
535
|
-
|
|
536
|
-
|
|
|
533
|
+
}) => Partial<TablePaginationProps>);
|
|
534
|
+
muiTablePaperProps?:
|
|
535
|
+
| PaperProps
|
|
537
536
|
| (({
|
|
538
537
|
tableInstance,
|
|
539
538
|
}: {
|
|
540
539
|
tableInstance: MRT_TableInstance;
|
|
541
|
-
}) =>
|
|
540
|
+
}) => PaperProps);
|
|
542
541
|
muiTableProps?:
|
|
543
542
|
| TableProps
|
|
544
543
|
| (({
|
|
@@ -567,7 +566,7 @@ export type MaterialReactTableProps<D extends Record<string, any> = {}> =
|
|
|
567
566
|
}: {
|
|
568
567
|
tableInstance: MRT_TableInstance;
|
|
569
568
|
}) => ToolbarProps);
|
|
570
|
-
|
|
569
|
+
onMrtCellClick?: ({
|
|
571
570
|
cell,
|
|
572
571
|
event,
|
|
573
572
|
tableInstance,
|
|
@@ -576,7 +575,7 @@ export type MaterialReactTableProps<D extends Record<string, any> = {}> =
|
|
|
576
575
|
tableInstance: MRT_TableInstance<D>;
|
|
577
576
|
event: MouseEvent<HTMLTableCellElement>;
|
|
578
577
|
}) => void;
|
|
579
|
-
|
|
578
|
+
onMrtCellEditBlur?: ({
|
|
580
579
|
cell,
|
|
581
580
|
event,
|
|
582
581
|
tableInstance,
|
|
@@ -585,7 +584,7 @@ export type MaterialReactTableProps<D extends Record<string, any> = {}> =
|
|
|
585
584
|
cell: MRT_Cell<D>;
|
|
586
585
|
tableInstance: MRT_TableInstance<D>;
|
|
587
586
|
}) => void;
|
|
588
|
-
|
|
587
|
+
onMrtCellEditChange?: ({
|
|
589
588
|
cell,
|
|
590
589
|
event,
|
|
591
590
|
tableInstance,
|
|
@@ -594,32 +593,39 @@ export type MaterialReactTableProps<D extends Record<string, any> = {}> =
|
|
|
594
593
|
cell: MRT_Cell<D>;
|
|
595
594
|
tableInstance: MRT_TableInstance<D>;
|
|
596
595
|
}) => void;
|
|
597
|
-
|
|
598
|
-
column,
|
|
596
|
+
onMrtDetailPanelClick?: ({
|
|
599
597
|
event,
|
|
600
|
-
|
|
598
|
+
row,
|
|
599
|
+
tableInstance,
|
|
601
600
|
}: {
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
601
|
+
event: MouseEvent<HTMLTableCellElement>;
|
|
602
|
+
row: MRT_Row<D>;
|
|
603
|
+
tableInstance: MRT_TableInstance<D>;
|
|
605
604
|
}) => void;
|
|
606
|
-
|
|
607
|
-
event,
|
|
605
|
+
onMrtEditRowSubmit?: ({
|
|
608
606
|
row,
|
|
609
607
|
tableInstance,
|
|
610
608
|
}: {
|
|
611
|
-
event: MouseEvent<HTMLTableCellElement>;
|
|
612
609
|
row: MRT_Row<D>;
|
|
613
610
|
tableInstance: MRT_TableInstance<D>;
|
|
611
|
+
}) => Promise<void> | void;
|
|
612
|
+
onMrtFilterValueChange?: ({
|
|
613
|
+
column,
|
|
614
|
+
event,
|
|
615
|
+
filterValue,
|
|
616
|
+
}: {
|
|
617
|
+
column: MRT_Column<D>;
|
|
618
|
+
event: ChangeEvent<HTMLInputElement>;
|
|
619
|
+
filterValue: any;
|
|
614
620
|
}) => void;
|
|
615
|
-
|
|
621
|
+
onMrtGlobalFilterValueChange?: ({
|
|
616
622
|
event,
|
|
617
623
|
tableInstance,
|
|
618
624
|
}: {
|
|
619
625
|
event: ChangeEvent<HTMLInputElement>;
|
|
620
626
|
tableInstance: MRT_TableInstance<D>;
|
|
621
627
|
}) => void;
|
|
622
|
-
|
|
628
|
+
onMrtRowClick?: ({
|
|
623
629
|
event,
|
|
624
630
|
row,
|
|
625
631
|
tableInstance,
|
|
@@ -628,14 +634,7 @@ export type MaterialReactTableProps<D extends Record<string, any> = {}> =
|
|
|
628
634
|
row: MRT_Row<D>;
|
|
629
635
|
tableInstance: MRT_TableInstance<D>;
|
|
630
636
|
}) => void;
|
|
631
|
-
|
|
632
|
-
row,
|
|
633
|
-
tableInstance,
|
|
634
|
-
}: {
|
|
635
|
-
row: MRT_Row<D>;
|
|
636
|
-
tableInstance: MRT_TableInstance<D>;
|
|
637
|
-
}) => Promise<void> | void;
|
|
638
|
-
onRowExpandChange?: ({
|
|
637
|
+
onMrtRowExpandChange?: ({
|
|
639
638
|
event,
|
|
640
639
|
row,
|
|
641
640
|
}: {
|
|
@@ -643,7 +642,7 @@ export type MaterialReactTableProps<D extends Record<string, any> = {}> =
|
|
|
643
642
|
row: MRT_Row<D>;
|
|
644
643
|
tableInstance: MRT_TableInstance<D>;
|
|
645
644
|
}) => void;
|
|
646
|
-
|
|
645
|
+
onMrtSelectAllChange?: ({
|
|
647
646
|
event,
|
|
648
647
|
selectedRows,
|
|
649
648
|
tableInstance,
|
|
@@ -652,7 +651,7 @@ export type MaterialReactTableProps<D extends Record<string, any> = {}> =
|
|
|
652
651
|
selectedRows: MRT_Row<D>[];
|
|
653
652
|
tableInstance: MRT_TableInstance<D>;
|
|
654
653
|
}) => void;
|
|
655
|
-
|
|
654
|
+
onMrtSelectRowChange?: ({
|
|
656
655
|
event,
|
|
657
656
|
row,
|
|
658
657
|
selectedRows,
|
|
@@ -663,7 +662,7 @@ export type MaterialReactTableProps<D extends Record<string, any> = {}> =
|
|
|
663
662
|
selectedRows: MRT_Row<D>[];
|
|
664
663
|
tableInstance: MRT_TableInstance<D>;
|
|
665
664
|
}) => void;
|
|
666
|
-
|
|
665
|
+
onMrtToggleColumnVisibility?: ({
|
|
667
666
|
column,
|
|
668
667
|
columnVisibility,
|
|
669
668
|
tableInstance,
|
|
@@ -672,7 +671,7 @@ export type MaterialReactTableProps<D extends Record<string, any> = {}> =
|
|
|
672
671
|
columnVisibility: VisibilityState;
|
|
673
672
|
tableInstance: MRT_TableInstance<D>;
|
|
674
673
|
}) => void;
|
|
675
|
-
|
|
674
|
+
onMrtToggleDensePadding?: ({
|
|
676
675
|
event,
|
|
677
676
|
isDensePadding,
|
|
678
677
|
tableInstance,
|
|
@@ -681,7 +680,7 @@ export type MaterialReactTableProps<D extends Record<string, any> = {}> =
|
|
|
681
680
|
isDensePadding: boolean;
|
|
682
681
|
tableInstance: MRT_TableInstance<D>;
|
|
683
682
|
}) => void;
|
|
684
|
-
|
|
683
|
+
onMrtToggleFullScreen?: ({
|
|
685
684
|
event,
|
|
686
685
|
isFullScreen,
|
|
687
686
|
tableInstance,
|
|
@@ -690,7 +689,7 @@ export type MaterialReactTableProps<D extends Record<string, any> = {}> =
|
|
|
690
689
|
isFullScreen: boolean;
|
|
691
690
|
tableInstance: MRT_TableInstance<D>;
|
|
692
691
|
}) => void;
|
|
693
|
-
|
|
692
|
+
onMrtToggleShowFilters?: ({
|
|
694
693
|
event,
|
|
695
694
|
showFilters,
|
|
696
695
|
tableInstance,
|
|
@@ -699,7 +698,7 @@ export type MaterialReactTableProps<D extends Record<string, any> = {}> =
|
|
|
699
698
|
showFilters: boolean;
|
|
700
699
|
tableInstance: MRT_TableInstance<D>;
|
|
701
700
|
}) => void;
|
|
702
|
-
|
|
701
|
+
onMrtToggleShowGlobalFilter?: ({
|
|
703
702
|
event,
|
|
704
703
|
showGlobalFilter,
|
|
705
704
|
tableInstance,
|
|
@@ -711,6 +710,7 @@ export type MaterialReactTableProps<D extends Record<string, any> = {}> =
|
|
|
711
710
|
persistentStateMode?: 'localStorage' | 'sessionStorage';
|
|
712
711
|
positionActionsColumn?: 'first' | 'last';
|
|
713
712
|
positionPagination?: 'bottom' | 'top' | 'both';
|
|
713
|
+
positionGlobalFilter?: 'left' | 'right';
|
|
714
714
|
positionToolbarActions?: 'bottom' | 'top';
|
|
715
715
|
positionToolbarAlertBanner?: 'bottom' | 'top';
|
|
716
716
|
renderDetailPanel?: ({
|
|
@@ -767,6 +767,7 @@ export type MaterialReactTableProps<D extends Record<string, any> = {}> =
|
|
|
767
767
|
>;
|
|
768
768
|
}) => ReactNode;
|
|
769
769
|
selectAllMode?: 'all' | 'page';
|
|
770
|
+
tableId?: string;
|
|
770
771
|
};
|
|
771
772
|
|
|
772
773
|
export default <D extends Record<string, any> = {}>({
|
|
@@ -801,6 +802,7 @@ export default <D extends Record<string, any> = {}>({
|
|
|
801
802
|
persistentStateMode = 'sessionStorage',
|
|
802
803
|
positionActionsColumn = 'first',
|
|
803
804
|
positionPagination = 'bottom',
|
|
805
|
+
positionGlobalFilter = 'right',
|
|
804
806
|
positionToolbarActions = 'top',
|
|
805
807
|
positionToolbarAlertBanner = 'top',
|
|
806
808
|
selectAllMode = 'all',
|
|
@@ -837,6 +839,7 @@ export default <D extends Record<string, any> = {}>({
|
|
|
837
839
|
localization={{ ...MRT_DefaultLocalization_EN, ...localization }}
|
|
838
840
|
persistentStateMode={persistentStateMode}
|
|
839
841
|
positionActionsColumn={positionActionsColumn}
|
|
842
|
+
positionGlobalFilter={positionGlobalFilter}
|
|
840
843
|
positionPagination={positionPagination}
|
|
841
844
|
positionToolbarActions={positionToolbarActions}
|
|
842
845
|
positionToolbarAlertBanner={positionToolbarAlertBanner}
|
|
@@ -24,10 +24,10 @@ export const MRT_TableBodyCell: FC<Props> = ({
|
|
|
24
24
|
enableClickToCopy,
|
|
25
25
|
enableColumnOrdering,
|
|
26
26
|
enableEditing,
|
|
27
|
-
|
|
27
|
+
tableId,
|
|
28
28
|
muiTableBodyCellProps,
|
|
29
29
|
muiTableBodyCellSkeletonProps,
|
|
30
|
-
|
|
30
|
+
onMrtCellClick,
|
|
31
31
|
},
|
|
32
32
|
setColumnOrder,
|
|
33
33
|
setCurrentEditingCell,
|
|
@@ -95,7 +95,7 @@ export const MRT_TableBodyCell: FC<Props> = ({
|
|
|
95
95
|
setCurrentEditingCell(cell);
|
|
96
96
|
setTimeout(() => {
|
|
97
97
|
const textField = document.getElementById(
|
|
98
|
-
`mrt-${
|
|
98
|
+
`mrt-${tableId}-edit-cell-text-field-${cell.id}`,
|
|
99
99
|
) as HTMLInputElement;
|
|
100
100
|
if (textField) {
|
|
101
101
|
textField.focus();
|
|
@@ -128,7 +128,7 @@ export const MRT_TableBodyCell: FC<Props> = ({
|
|
|
128
128
|
return (
|
|
129
129
|
<TableCell
|
|
130
130
|
onClick={(event: MouseEvent<HTMLTableCellElement>) =>
|
|
131
|
-
|
|
131
|
+
onMrtCellClick?.({ event, cell, tableInstance })
|
|
132
132
|
}
|
|
133
133
|
onDoubleClick={handleDoubleClick}
|
|
134
134
|
{...tableCellProps}
|
|
@@ -11,7 +11,7 @@ interface Props {
|
|
|
11
11
|
|
|
12
12
|
export const MRT_TableBodyRow: FC<Props> = ({ row, tableInstance }) => {
|
|
13
13
|
const {
|
|
14
|
-
options: { muiTableBodyRowProps,
|
|
14
|
+
options: { muiTableBodyRowProps, onMrtRowClick, renderDetailPanel },
|
|
15
15
|
} = tableInstance;
|
|
16
16
|
|
|
17
17
|
const tableRowProps =
|
|
@@ -24,7 +24,7 @@ export const MRT_TableBodyRow: FC<Props> = ({ row, tableInstance }) => {
|
|
|
24
24
|
<TableRow
|
|
25
25
|
hover
|
|
26
26
|
onClick={(event: MouseEvent<HTMLTableRowElement>) =>
|
|
27
|
-
|
|
27
|
+
onMrtRowClick?.({ event, row, tableInstance })
|
|
28
28
|
}
|
|
29
29
|
selected={row.getIsSelected()}
|
|
30
30
|
{...tableRowProps}
|
|
@@ -13,7 +13,7 @@ export const MRT_TableDetailPanel: FC<Props> = ({ row, tableInstance }) => {
|
|
|
13
13
|
options: {
|
|
14
14
|
muiTableBodyRowProps,
|
|
15
15
|
muiTableDetailPanelProps,
|
|
16
|
-
|
|
16
|
+
onMrtDetailPanelClick,
|
|
17
17
|
renderDetailPanel,
|
|
18
18
|
},
|
|
19
19
|
} = tableInstance;
|
|
@@ -33,7 +33,7 @@ export const MRT_TableDetailPanel: FC<Props> = ({ row, tableInstance }) => {
|
|
|
33
33
|
<TableCell
|
|
34
34
|
colSpan={getVisibleFlatColumns().length + 10}
|
|
35
35
|
onClick={(event: MouseEvent<HTMLTableCellElement>) =>
|
|
36
|
-
|
|
36
|
+
onMrtDetailPanelClick?.({ event, row, tableInstance })
|
|
37
37
|
}
|
|
38
38
|
{...tableCellProps}
|
|
39
39
|
sx={{
|
|
@@ -13,7 +13,7 @@ export const MRT_EditActionButtons: FC<Props> = ({ row, tableInstance }) => {
|
|
|
13
13
|
options: {
|
|
14
14
|
icons: { CancelIcon, SaveIcon },
|
|
15
15
|
localization,
|
|
16
|
-
|
|
16
|
+
onMrtEditRowSubmit,
|
|
17
17
|
},
|
|
18
18
|
setCurrentEditingRow,
|
|
19
19
|
} = tableInstance;
|
|
@@ -26,7 +26,7 @@ export const MRT_EditActionButtons: FC<Props> = ({ row, tableInstance }) => {
|
|
|
26
26
|
};
|
|
27
27
|
|
|
28
28
|
const handleSave = () => {
|
|
29
|
-
|
|
29
|
+
onMrtEditRowSubmit?.({ row: currentEditingRow ?? row, tableInstance });
|
|
30
30
|
setCurrentEditingRow(null);
|
|
31
31
|
};
|
|
32
32
|
|
|
@@ -13,7 +13,7 @@ export const MRT_ExpandButton: FC<Props> = ({ row, tableInstance }) => {
|
|
|
13
13
|
options: {
|
|
14
14
|
icons: { ExpandMoreIcon },
|
|
15
15
|
localization,
|
|
16
|
-
|
|
16
|
+
onMrtRowExpandChange,
|
|
17
17
|
renderDetailPanel,
|
|
18
18
|
},
|
|
19
19
|
} = tableInstance;
|
|
@@ -22,7 +22,7 @@ export const MRT_ExpandButton: FC<Props> = ({ row, tableInstance }) => {
|
|
|
22
22
|
|
|
23
23
|
const handleToggleExpand = (event: MouseEvent<HTMLButtonElement>) => {
|
|
24
24
|
row.toggleExpanded();
|
|
25
|
-
|
|
25
|
+
onMrtRowExpandChange?.({ event, row, tableInstance });
|
|
26
26
|
};
|
|
27
27
|
|
|
28
28
|
return (
|
|
@@ -15,7 +15,7 @@ export const MRT_FullScreenToggleButton: FC<Props> = ({
|
|
|
15
15
|
options: {
|
|
16
16
|
icons: { FullscreenExitIcon, FullscreenIcon },
|
|
17
17
|
localization,
|
|
18
|
-
|
|
18
|
+
onMrtToggleFullScreen,
|
|
19
19
|
},
|
|
20
20
|
setIsFullScreen,
|
|
21
21
|
} = tableInstance;
|
|
@@ -23,7 +23,7 @@ export const MRT_FullScreenToggleButton: FC<Props> = ({
|
|
|
23
23
|
const { isFullScreen } = getState();
|
|
24
24
|
|
|
25
25
|
const handleToggleFullScreen = (event: MouseEvent<HTMLButtonElement>) => {
|
|
26
|
-
|
|
26
|
+
onMrtToggleFullScreen?.({
|
|
27
27
|
event,
|
|
28
28
|
isFullScreen: !isFullScreen,
|
|
29
29
|
tableInstance,
|
|
@@ -15,7 +15,7 @@ export const MRT_ToggleDensePaddingButton: FC<Props> = ({
|
|
|
15
15
|
options: {
|
|
16
16
|
icons: { DensityMediumIcon, DensitySmallIcon },
|
|
17
17
|
localization,
|
|
18
|
-
|
|
18
|
+
onMrtToggleDensePadding,
|
|
19
19
|
},
|
|
20
20
|
setIsDensePadding,
|
|
21
21
|
} = tableInstance;
|
|
@@ -23,7 +23,7 @@ export const MRT_ToggleDensePaddingButton: FC<Props> = ({
|
|
|
23
23
|
const { isDensePadding } = getState();
|
|
24
24
|
|
|
25
25
|
const handleToggleDensePadding = (event: MouseEvent<HTMLButtonElement>) => {
|
|
26
|
-
|
|
26
|
+
onMrtToggleDensePadding?.({
|
|
27
27
|
event,
|
|
28
28
|
isDensePadding: !isDensePadding,
|
|
29
29
|
tableInstance,
|
|
@@ -15,7 +15,7 @@ export const MRT_ToggleFiltersButton: FC<Props> = ({
|
|
|
15
15
|
options: {
|
|
16
16
|
icons: { FilterListIcon, FilterListOffIcon },
|
|
17
17
|
localization,
|
|
18
|
-
|
|
18
|
+
onMrtToggleShowFilters,
|
|
19
19
|
},
|
|
20
20
|
setShowFilters,
|
|
21
21
|
} = tableInstance;
|
|
@@ -23,7 +23,7 @@ export const MRT_ToggleFiltersButton: FC<Props> = ({
|
|
|
23
23
|
const { showFilters } = getState();
|
|
24
24
|
|
|
25
25
|
const handleToggleShowFilters = (event: MouseEvent<HTMLButtonElement>) => {
|
|
26
|
-
|
|
26
|
+
onMrtToggleShowFilters?.({
|
|
27
27
|
event,
|
|
28
28
|
showFilters: !showFilters,
|
|
29
29
|
tableInstance,
|
|
@@ -14,10 +14,10 @@ export const MRT_ToggleGlobalFilterButton: FC<Props> = ({
|
|
|
14
14
|
getState,
|
|
15
15
|
options: {
|
|
16
16
|
icons: { SearchIcon, SearchOffIcon },
|
|
17
|
-
|
|
17
|
+
tableId,
|
|
18
18
|
localization,
|
|
19
19
|
muiSearchTextFieldProps,
|
|
20
|
-
|
|
20
|
+
onMrtToggleShowGlobalFilter,
|
|
21
21
|
},
|
|
22
22
|
setShowGlobalFilter,
|
|
23
23
|
} = tableInstance;
|
|
@@ -30,7 +30,7 @@ export const MRT_ToggleGlobalFilterButton: FC<Props> = ({
|
|
|
30
30
|
: muiSearchTextFieldProps;
|
|
31
31
|
|
|
32
32
|
const handleToggleSearch = (event: MouseEvent<HTMLButtonElement>) => {
|
|
33
|
-
|
|
33
|
+
onMrtToggleShowGlobalFilter?.({
|
|
34
34
|
event,
|
|
35
35
|
showGlobalFilter: !showGlobalFilter,
|
|
36
36
|
tableInstance,
|
|
@@ -40,7 +40,7 @@ export const MRT_ToggleGlobalFilterButton: FC<Props> = ({
|
|
|
40
40
|
() =>
|
|
41
41
|
document
|
|
42
42
|
.getElementById(
|
|
43
|
-
textFieldProps?.id ?? `mrt-${
|
|
43
|
+
textFieldProps?.id ?? `mrt-${tableId}-search-text-field`,
|
|
44
44
|
)
|
|
45
45
|
?.focus(),
|
|
46
46
|
200,
|
|
@@ -67,6 +67,7 @@ export const MRT_TableHeadCellFilterLabel: FC<Props> = ({
|
|
|
67
67
|
opacity: !!column.getFilterValue() || showFilters ? 0.8 : 0,
|
|
68
68
|
p: '2px',
|
|
69
69
|
transition: 'all 0.2s ease-in-out',
|
|
70
|
+
transform: 'scale(0.66)',
|
|
70
71
|
'&:hover': {
|
|
71
72
|
backgroundColor: 'transparent',
|
|
72
73
|
opacity: 0.8,
|
|
@@ -17,11 +17,11 @@ export const MRT_EditCellTextField: FC<Props> = ({ cell, tableInstance }) => {
|
|
|
17
17
|
const {
|
|
18
18
|
getState,
|
|
19
19
|
options: {
|
|
20
|
-
|
|
20
|
+
tableId,
|
|
21
21
|
enableEditing,
|
|
22
22
|
muiTableBodyCellEditTextFieldProps,
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
onMrtCellEditBlur,
|
|
24
|
+
onMrtCellEditChange,
|
|
25
25
|
},
|
|
26
26
|
setCurrentEditingCell,
|
|
27
27
|
setCurrentEditingRow,
|
|
@@ -35,8 +35,8 @@ export const MRT_EditCellTextField: FC<Props> = ({ cell, tableInstance }) => {
|
|
|
35
35
|
|
|
36
36
|
const handleChange = (event: ChangeEvent<HTMLInputElement>) => {
|
|
37
37
|
setValue(event.target.value);
|
|
38
|
-
columnDef.
|
|
39
|
-
|
|
38
|
+
columnDef.onMrtCellEditChange?.({ event, cell, tableInstance });
|
|
39
|
+
onMrtCellEditChange?.({ event, cell, tableInstance });
|
|
40
40
|
};
|
|
41
41
|
|
|
42
42
|
const handleBlur = (event: FocusEvent<HTMLInputElement>) => {
|
|
@@ -46,8 +46,8 @@ export const MRT_EditCellTextField: FC<Props> = ({ cell, tableInstance }) => {
|
|
|
46
46
|
setCurrentEditingRow({ ...getState().currentEditingRow } as MRT_Row);
|
|
47
47
|
}
|
|
48
48
|
setCurrentEditingCell(null);
|
|
49
|
-
columnDef.
|
|
50
|
-
|
|
49
|
+
columnDef.onMrtCellEditBlur?.({ event, cell, tableInstance });
|
|
50
|
+
onMrtCellEditBlur?.({ event, cell, tableInstance });
|
|
51
51
|
};
|
|
52
52
|
|
|
53
53
|
const mTableBodyCellEditTextFieldProps =
|
|
@@ -74,7 +74,7 @@ export const MRT_EditCellTextField: FC<Props> = ({ cell, tableInstance }) => {
|
|
|
74
74
|
|
|
75
75
|
return (
|
|
76
76
|
<TextField
|
|
77
|
-
id={`mrt-${
|
|
77
|
+
id={`mrt-${tableId}-edit-cell-text-field-${cell.id}`}
|
|
78
78
|
margin="dense"
|
|
79
79
|
onBlur={handleBlur}
|
|
80
80
|
onChange={handleChange}
|
|
@@ -34,7 +34,7 @@ export const MRT_FilterTextField: FC<Props> = ({
|
|
|
34
34
|
getState,
|
|
35
35
|
options: {
|
|
36
36
|
icons: { FilterListIcon, CloseIcon },
|
|
37
|
-
|
|
37
|
+
tableId,
|
|
38
38
|
localization,
|
|
39
39
|
muiTableHeadCellFilterTextFieldProps,
|
|
40
40
|
},
|
|
@@ -118,7 +118,7 @@ export const MRT_FilterTextField: FC<Props> = ({
|
|
|
118
118
|
return <>{columnDef.Filter?.({ header, tableInstance })}</>;
|
|
119
119
|
}
|
|
120
120
|
|
|
121
|
-
const filterId = `mrt-${
|
|
121
|
+
const filterId = `mrt-${tableId}-${header.id}-filter-text-field${
|
|
122
122
|
inputIndex ?? ''
|
|
123
123
|
}`;
|
|
124
124
|
const filterFn = currentFilterFns?.[header.id];
|
|
@@ -26,10 +26,10 @@ export const MRT_SearchTextField: FC<Props> = ({ tableInstance }) => {
|
|
|
26
26
|
setGlobalFilter,
|
|
27
27
|
options: {
|
|
28
28
|
icons: { SearchIcon, CloseIcon },
|
|
29
|
-
|
|
29
|
+
tableId,
|
|
30
30
|
localization,
|
|
31
31
|
muiSearchTextFieldProps,
|
|
32
|
-
|
|
32
|
+
onMrtGlobalFilterValueChange,
|
|
33
33
|
},
|
|
34
34
|
} = tableInstance;
|
|
35
35
|
|
|
@@ -41,7 +41,7 @@ export const MRT_SearchTextField: FC<Props> = ({ tableInstance }) => {
|
|
|
41
41
|
const handleChange = useCallback(
|
|
42
42
|
debounce((event: ChangeEvent<HTMLInputElement>) => {
|
|
43
43
|
setGlobalFilter(event.target.value ?? undefined);
|
|
44
|
-
|
|
44
|
+
onMrtGlobalFilterValueChange?.({ event, tableInstance });
|
|
45
45
|
}, 200),
|
|
46
46
|
[],
|
|
47
47
|
);
|
|
@@ -63,7 +63,7 @@ export const MRT_SearchTextField: FC<Props> = ({ tableInstance }) => {
|
|
|
63
63
|
return (
|
|
64
64
|
<Collapse in={showGlobalFilter} orientation="horizontal">
|
|
65
65
|
<TextField
|
|
66
|
-
id={`mrt-${
|
|
66
|
+
id={`mrt-${tableId}-search-text-field`}
|
|
67
67
|
placeholder={localization.search}
|
|
68
68
|
onChange={(event: ChangeEvent<HTMLInputElement>) => {
|
|
69
69
|
setSearchValue(event.target.value);
|
|
@@ -20,8 +20,8 @@ export const MRT_SelectCheckbox: FC<Props> = ({
|
|
|
20
20
|
options: {
|
|
21
21
|
localization,
|
|
22
22
|
muiSelectCheckboxProps,
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
onMrtSelectRowChange,
|
|
24
|
+
onMrtSelectAllChange,
|
|
25
25
|
selectAllMode,
|
|
26
26
|
},
|
|
27
27
|
} = tableInstance;
|
|
@@ -35,14 +35,14 @@ export const MRT_SelectCheckbox: FC<Props> = ({
|
|
|
35
35
|
} else if (selectAllMode === 'page') {
|
|
36
36
|
tableInstance.getToggleAllPageRowsSelectedHandler()(event as any);
|
|
37
37
|
}
|
|
38
|
-
|
|
38
|
+
onMrtSelectAllChange?.({
|
|
39
39
|
event,
|
|
40
40
|
selectedRows: event.target.checked ? getRowModel().flatRows : [],
|
|
41
41
|
tableInstance,
|
|
42
42
|
});
|
|
43
43
|
} else if (row) {
|
|
44
44
|
row?.getToggleSelectedHandler()(event as any);
|
|
45
|
-
|
|
45
|
+
onMrtSelectRowChange?.({
|
|
46
46
|
event,
|
|
47
47
|
row,
|
|
48
48
|
selectedRows: event.target.checked
|
|
@@ -52,7 +52,7 @@ export const MRT_ColumnActionMenu: FC<Props> = ({
|
|
|
52
52
|
RestartAltIcon,
|
|
53
53
|
VisibilityOffIcon,
|
|
54
54
|
},
|
|
55
|
-
|
|
55
|
+
tableId,
|
|
56
56
|
localization,
|
|
57
57
|
},
|
|
58
58
|
setShowFilters,
|
|
@@ -119,7 +119,7 @@ export const MRT_ColumnActionMenu: FC<Props> = ({
|
|
|
119
119
|
.getElementById(
|
|
120
120
|
// @ts-ignore
|
|
121
121
|
header.muiTableHeadCellFilterTextFieldProps?.id ??
|
|
122
|
-
`mrt-${
|
|
122
|
+
`mrt-${tableId}-${header.id}-filter-text-field`,
|
|
123
123
|
)
|
|
124
124
|
?.focus(),
|
|
125
125
|
200,
|
|
@@ -46,7 +46,7 @@ export const MRT_ShowHideColumnsMenu: FC<Props> = ({
|
|
|
46
46
|
) {
|
|
47
47
|
return [
|
|
48
48
|
...getLeftLeafColumns(),
|
|
49
|
-
...
|
|
49
|
+
...Array.from(new Set(columnOrder)).map((colId) =>
|
|
50
50
|
getCenterLeafColumns().find((col) => col?.id === colId),
|
|
51
51
|
),
|
|
52
52
|
...getRightLeafColumns(),
|