material-react-table 0.17.0 → 0.18.1
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/MaterialReactTable.d.ts +7 -100
- package/dist/material-react-table.cjs.development.js +40 -162
- 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 +41 -163
- package/dist/material-react-table.esm.js.map +1 -1
- package/package.json +1 -1
- package/src/MaterialReactTable.tsx +5 -178
- package/src/body/MRT_TableBodyCell.tsx +1 -9
- package/src/body/MRT_TableBodyRow.tsx +2 -5
- package/src/body/MRT_TableDetailPanel.tsx +1 -5
- package/src/buttons/MRT_ExpandButton.tsx +2 -4
- package/src/buttons/MRT_FullScreenToggleButton.tsx +2 -8
- package/src/buttons/MRT_ToggleDensePaddingButton.tsx +2 -8
- package/src/buttons/MRT_ToggleFiltersButton.tsx +2 -8
- package/src/buttons/MRT_ToggleGlobalFilterButton.tsx +2 -8
- package/src/head/MRT_TableHeadCellResizeHandle.tsx +3 -2
- package/src/inputs/MRT_EditCellTextField.tsx +3 -3
- package/src/inputs/MRT_FilterTextField.tsx +0 -26
- package/src/inputs/MRT_GlobalFilterTextField.tsx +0 -4
- package/src/inputs/MRT_SelectCheckbox.tsx +0 -24
- package/src/table/MRT_TableRoot.tsx +5 -24
- package/src/toolbar/MRT_ToolbarAlertBanner.tsx +9 -4
package/package.json
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
{
|
2
|
-
"version": "0.
|
2
|
+
"version": "0.18.1",
|
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.",
|
@@ -3,7 +3,6 @@ import React, {
|
|
3
3
|
Dispatch,
|
4
4
|
FC,
|
5
5
|
FocusEvent,
|
6
|
-
MouseEvent,
|
7
6
|
ReactNode,
|
8
7
|
SetStateAction,
|
9
8
|
} from 'react';
|
@@ -30,8 +29,6 @@ import {
|
|
30
29
|
Cell,
|
31
30
|
Column,
|
32
31
|
ColumnDef,
|
33
|
-
ColumnOrderState,
|
34
|
-
ColumnPinningState,
|
35
32
|
FilterFn,
|
36
33
|
FilterFnOption,
|
37
34
|
Header,
|
@@ -46,7 +43,6 @@ import {
|
|
46
43
|
TableInstance,
|
47
44
|
TableState,
|
48
45
|
UseTableInstanceOptions,
|
49
|
-
VisibilityState,
|
50
46
|
} from '@tanstack/react-table';
|
51
47
|
import { Options as VirtualizerOptions } from 'react-virtual';
|
52
48
|
import { MRT_Localization, MRT_DefaultLocalization_EN } from './localization';
|
@@ -128,6 +124,7 @@ export type MRT_TableInstance<D extends Record<string, any> = {}> = Omit<
|
|
128
124
|
setCurrentGlobalFilterFn: Dispatch<SetStateAction<MRT_FilterFn>>;
|
129
125
|
setDensity: Dispatch<SetStateAction<'comfortable' | 'compact' | 'spacious'>>;
|
130
126
|
setIsFullScreen: Dispatch<SetStateAction<boolean>>;
|
127
|
+
setShowAlertBanner: Dispatch<SetStateAction<boolean>>;
|
131
128
|
setShowFilters: Dispatch<SetStateAction<boolean>>;
|
132
129
|
setShowGlobalFilter: Dispatch<SetStateAction<boolean>>;
|
133
130
|
};
|
@@ -140,6 +137,7 @@ export type MRT_TableState<D extends Record<string, any> = {}> = TableState & {
|
|
140
137
|
density: 'comfortable' | 'compact' | 'spacious';
|
141
138
|
isLoading: boolean;
|
142
139
|
isFullScreen: boolean;
|
140
|
+
showAlertBanner: boolean;
|
143
141
|
showFilters: boolean;
|
144
142
|
showGlobalFilter: boolean;
|
145
143
|
showProgressBars: boolean;
|
@@ -288,7 +286,7 @@ export type MRT_ColumnDef<D extends Record<string, any> = {}> = Omit<
|
|
288
286
|
cell: MRT_Cell<D>;
|
289
287
|
instance: MRT_TableInstance<D>;
|
290
288
|
}) => void;
|
291
|
-
|
289
|
+
onCellEditChange?: ({
|
292
290
|
cell,
|
293
291
|
event,
|
294
292
|
instance,
|
@@ -297,28 +295,6 @@ export type MRT_ColumnDef<D extends Record<string, any> = {}> = Omit<
|
|
297
295
|
cell: MRT_Cell<D>;
|
298
296
|
instance: MRT_TableInstance<D>;
|
299
297
|
}) => void;
|
300
|
-
onColumnFilterValueChanged?: ({
|
301
|
-
column,
|
302
|
-
event,
|
303
|
-
filterValue,
|
304
|
-
instance,
|
305
|
-
}: {
|
306
|
-
column: MRT_Column<D>;
|
307
|
-
event: ChangeEvent<HTMLInputElement>;
|
308
|
-
filterValue: any;
|
309
|
-
instance: MRT_TableInstance<D>;
|
310
|
-
}) => void;
|
311
|
-
onColumnFilterValueChangedDebounced?: ({
|
312
|
-
column,
|
313
|
-
event,
|
314
|
-
filterValue,
|
315
|
-
instance,
|
316
|
-
}: {
|
317
|
-
column: MRT_Column<D>;
|
318
|
-
event: ChangeEvent<HTMLInputElement>;
|
319
|
-
filterValue: any;
|
320
|
-
instance: MRT_TableInstance<D>;
|
321
|
-
}) => void;
|
322
298
|
sortingFn?: MRT_SortingFn;
|
323
299
|
};
|
324
300
|
|
@@ -598,15 +574,6 @@ export type MaterialReactTableProps<D extends Record<string, any> = {}> =
|
|
598
574
|
muiTableToolbarTopProps?:
|
599
575
|
| ToolbarProps
|
600
576
|
| (({ instance }: { instance: MRT_TableInstance<D> }) => ToolbarProps);
|
601
|
-
onCellClick?: ({
|
602
|
-
cell,
|
603
|
-
event,
|
604
|
-
instance,
|
605
|
-
}: {
|
606
|
-
cell: MRT_Cell<D>;
|
607
|
-
instance: MRT_TableInstance<D>;
|
608
|
-
event: MouseEvent<HTMLTableCellElement>;
|
609
|
-
}) => void;
|
610
577
|
onCellEditBlur?: ({
|
611
578
|
cell,
|
612
579
|
event,
|
@@ -616,7 +583,7 @@ export type MaterialReactTableProps<D extends Record<string, any> = {}> =
|
|
616
583
|
cell: MRT_Cell<D>;
|
617
584
|
instance: MRT_TableInstance<D>;
|
618
585
|
}) => void;
|
619
|
-
|
586
|
+
onCellEditChange?: ({
|
620
587
|
cell,
|
621
588
|
event,
|
622
589
|
instance,
|
@@ -625,64 +592,10 @@ export type MaterialReactTableProps<D extends Record<string, any> = {}> =
|
|
625
592
|
cell: MRT_Cell<D>;
|
626
593
|
instance: MRT_TableInstance<D>;
|
627
594
|
}) => void;
|
628
|
-
onColumnFilterValueChanged?: ({
|
629
|
-
column,
|
630
|
-
event,
|
631
|
-
filterValue,
|
632
|
-
instance,
|
633
|
-
}: {
|
634
|
-
column: MRT_Column<D>;
|
635
|
-
event: ChangeEvent<HTMLInputElement>;
|
636
|
-
filterValue: any;
|
637
|
-
instance: MRT_TableInstance<D>;
|
638
|
-
}) => void;
|
639
|
-
onColumnFilterValueChangedDebounced?: ({
|
640
|
-
column,
|
641
|
-
event,
|
642
|
-
filterValue,
|
643
|
-
instance,
|
644
|
-
}: {
|
645
|
-
column: MRT_Column<D>;
|
646
|
-
event: ChangeEvent<HTMLInputElement>;
|
647
|
-
filterValue: any;
|
648
|
-
instance: MRT_TableInstance<D>;
|
649
|
-
}) => void;
|
650
|
-
onColumnOrderChanged?: ({
|
651
|
-
columnOrder,
|
652
|
-
instance,
|
653
|
-
}: {
|
654
|
-
columnOrder: ColumnOrderState;
|
655
|
-
instance: MRT_TableInstance<D>;
|
656
|
-
}) => void;
|
657
|
-
onColumnPinningChanged?: ({
|
658
|
-
columnPinning,
|
659
|
-
instance,
|
660
|
-
}: {
|
661
|
-
columnPinning: ColumnPinningState;
|
662
|
-
instance: MRT_TableInstance<D>;
|
663
|
-
}) => void;
|
664
|
-
onColumnVisibilityChanged?: ({
|
665
|
-
column,
|
666
|
-
columnVisibility,
|
667
|
-
instance,
|
668
|
-
}: {
|
669
|
-
column: MRT_Column<D>;
|
670
|
-
columnVisibility: VisibilityState;
|
671
|
-
instance: MRT_TableInstance<D>;
|
672
|
-
}) => void;
|
673
595
|
onCurrentEditingCellChange?: OnChangeFn<MRT_Cell>;
|
674
596
|
onCurrentEditingRowChange?: OnChangeFn<MRT_Row>;
|
675
597
|
onCurrentFilterFnsChange?: OnChangeFn<{ [key: string]: MRT_FilterFn }>;
|
676
598
|
onCurrentGlobalFilterFnChange?: OnChangeFn<MRT_FilterFn>;
|
677
|
-
onDetailPanelClick?: ({
|
678
|
-
event,
|
679
|
-
row,
|
680
|
-
instance,
|
681
|
-
}: {
|
682
|
-
event: MouseEvent<HTMLTableCellElement>;
|
683
|
-
row: MRT_Row<D>;
|
684
|
-
instance: MRT_TableInstance<D>;
|
685
|
-
}) => void;
|
686
599
|
onEditRowSubmit?: ({
|
687
600
|
row,
|
688
601
|
instance,
|
@@ -690,97 +603,11 @@ export type MaterialReactTableProps<D extends Record<string, any> = {}> =
|
|
690
603
|
row: MRT_Row<D>;
|
691
604
|
instance: MRT_TableInstance<D>;
|
692
605
|
}) => Promise<void> | void;
|
693
|
-
onExpandChanged?: ({
|
694
|
-
event,
|
695
|
-
row,
|
696
|
-
}: {
|
697
|
-
event: MouseEvent<HTMLButtonElement>;
|
698
|
-
row: MRT_Row<D>;
|
699
|
-
instance: MRT_TableInstance<D>;
|
700
|
-
}) => void;
|
701
|
-
onGlobalFilterValueChanged?: ({
|
702
|
-
event,
|
703
|
-
instance,
|
704
|
-
}: {
|
705
|
-
event: ChangeEvent<HTMLInputElement>;
|
706
|
-
instance: MRT_TableInstance<D>;
|
707
|
-
}) => void;
|
708
|
-
onGlobalFilterValueChangedDebounced?: ({
|
709
|
-
event,
|
710
|
-
instance,
|
711
|
-
}: {
|
712
|
-
event: ChangeEvent<HTMLInputElement>;
|
713
|
-
instance: MRT_TableInstance<D>;
|
714
|
-
}) => void;
|
715
606
|
onDensityChange?: OnChangeFn<boolean>;
|
716
|
-
onDensityChanged?: ({
|
717
|
-
event,
|
718
|
-
density,
|
719
|
-
instance,
|
720
|
-
}: {
|
721
|
-
event: MouseEvent<HTMLButtonElement>;
|
722
|
-
density: 'comfortable' | 'compact' | 'spacious';
|
723
|
-
instance: MRT_TableInstance<D>;
|
724
|
-
}) => void;
|
725
607
|
onIsFullScreenChange?: OnChangeFn<boolean>;
|
726
|
-
|
727
|
-
event,
|
728
|
-
isFullScreen,
|
729
|
-
instance,
|
730
|
-
}: {
|
731
|
-
event: MouseEvent<HTMLButtonElement>;
|
732
|
-
isFullScreen: boolean;
|
733
|
-
instance: MRT_TableInstance<D>;
|
734
|
-
}) => void;
|
735
|
-
onRowClick?: ({
|
736
|
-
event,
|
737
|
-
row,
|
738
|
-
instance,
|
739
|
-
}: {
|
740
|
-
event: MouseEvent<HTMLTableRowElement>;
|
741
|
-
row: MRT_Row<D>;
|
742
|
-
instance: MRT_TableInstance<D>;
|
743
|
-
}) => void;
|
744
|
-
onRowSelectAllChanged?: ({
|
745
|
-
event,
|
746
|
-
selectedRows,
|
747
|
-
instance,
|
748
|
-
}: {
|
749
|
-
event: ChangeEvent;
|
750
|
-
selectedRows: MRT_Row<D>[];
|
751
|
-
instance: MRT_TableInstance<D>;
|
752
|
-
}) => void;
|
753
|
-
onRowSelectionChanged?: ({
|
754
|
-
event,
|
755
|
-
row,
|
756
|
-
selectedRows,
|
757
|
-
instance,
|
758
|
-
}: {
|
759
|
-
event: ChangeEvent;
|
760
|
-
row: MRT_Row<D>;
|
761
|
-
selectedRows: MRT_Row<D>[];
|
762
|
-
instance: MRT_TableInstance<D>;
|
763
|
-
}) => void;
|
608
|
+
onShowAlertBannerChange?: OnChangeFn<boolean>;
|
764
609
|
onShowFiltersChange?: OnChangeFn<boolean>;
|
765
|
-
onShowFiltersChanged?: ({
|
766
|
-
event,
|
767
|
-
instance,
|
768
|
-
showFilters,
|
769
|
-
}: {
|
770
|
-
event: MouseEvent<HTMLButtonElement>;
|
771
|
-
instance: MRT_TableInstance<D>;
|
772
|
-
showFilters: boolean;
|
773
|
-
}) => void;
|
774
610
|
onShowGlobalFilterChange?: OnChangeFn<boolean>;
|
775
|
-
onShowGlobalFilterChanged?: ({
|
776
|
-
event,
|
777
|
-
instance,
|
778
|
-
showGlobalFilter,
|
779
|
-
}: {
|
780
|
-
event: MouseEvent<HTMLButtonElement>;
|
781
|
-
instance: MRT_TableInstance<D>;
|
782
|
-
showGlobalFilter: boolean;
|
783
|
-
}) => void;
|
784
611
|
positionActionsColumn?: 'first' | 'last';
|
785
612
|
positionGlobalFilter?: 'left' | 'right';
|
786
613
|
positionPagination?: 'bottom' | 'top' | 'both';
|
@@ -29,8 +29,6 @@ export const MRT_TableBodyCell: FC<Props> = ({
|
|
29
29
|
enableRowNumbers,
|
30
30
|
muiTableBodyCellProps,
|
31
31
|
muiTableBodyCellSkeletonProps,
|
32
|
-
onCellClick,
|
33
|
-
onRowClick,
|
34
32
|
rowNumberMode,
|
35
33
|
tableId,
|
36
34
|
},
|
@@ -132,9 +130,6 @@ export const MRT_TableBodyCell: FC<Props> = ({
|
|
132
130
|
|
133
131
|
return (
|
134
132
|
<TableCell
|
135
|
-
onClick={(event: MouseEvent<HTMLTableCellElement>) =>
|
136
|
-
onCellClick?.({ event, cell, instance })
|
137
|
-
}
|
138
133
|
onDoubleClick={handleDoubleClick}
|
139
134
|
{...tableCellProps}
|
140
135
|
ref={
|
@@ -149,10 +144,7 @@ export const MRT_TableBodyCell: FC<Props> = ({
|
|
149
144
|
: getIsFirstRightPinnedColumn()
|
150
145
|
? `-4px 0 4px -2px ${alpha(theme.palette.common.black, 0.1)}`
|
151
146
|
: undefined,
|
152
|
-
cursor:
|
153
|
-
(isEditable && editingMode === 'cell') || onRowClick || onCellClick
|
154
|
-
? 'pointer'
|
155
|
-
: 'text',
|
147
|
+
cursor: isEditable && editingMode === 'cell' ? 'pointer' : 'text',
|
156
148
|
left:
|
157
149
|
column.getIsPinned() === 'left'
|
158
150
|
? `${column.getStart('left')}px`
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import React, { FC
|
1
|
+
import React, { FC } from 'react';
|
2
2
|
import { darken, lighten, TableRow } from '@mui/material';
|
3
3
|
import { MRT_TableBodyCell } from './MRT_TableBodyCell';
|
4
4
|
import { MRT_TableDetailPanel } from './MRT_TableDetailPanel';
|
@@ -13,7 +13,7 @@ interface Props {
|
|
13
13
|
export const MRT_TableBodyRow: FC<Props> = ({ row, rowIndex, instance }) => {
|
14
14
|
const {
|
15
15
|
getIsSomeColumnsPinned,
|
16
|
-
options: { muiTableBodyRowProps,
|
16
|
+
options: { muiTableBodyRowProps, renderDetailPanel },
|
17
17
|
} = instance;
|
18
18
|
|
19
19
|
const tableRowProps =
|
@@ -25,9 +25,6 @@ export const MRT_TableBodyRow: FC<Props> = ({ row, rowIndex, instance }) => {
|
|
25
25
|
<>
|
26
26
|
<TableRow
|
27
27
|
hover
|
28
|
-
onClick={(event: MouseEvent<HTMLTableRowElement>) =>
|
29
|
-
onRowClick?.({ event, row, instance })
|
30
|
-
}
|
31
28
|
selected={row.getIsSelected()}
|
32
29
|
{...tableRowProps}
|
33
30
|
sx={(theme) => ({
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import React, { FC
|
1
|
+
import React, { FC } from 'react';
|
2
2
|
import { Collapse, TableCell, TableRow } from '@mui/material';
|
3
3
|
import type { MRT_Row, MRT_TableInstance } from '..';
|
4
4
|
|
@@ -13,7 +13,6 @@ export const MRT_TableDetailPanel: FC<Props> = ({ row, instance }) => {
|
|
13
13
|
options: {
|
14
14
|
muiTableBodyRowProps,
|
15
15
|
muiTableDetailPanelProps,
|
16
|
-
onDetailPanelClick,
|
17
16
|
renderDetailPanel,
|
18
17
|
},
|
19
18
|
} = instance;
|
@@ -32,9 +31,6 @@ export const MRT_TableDetailPanel: FC<Props> = ({ row, instance }) => {
|
|
32
31
|
<TableRow {...tableRowProps}>
|
33
32
|
<TableCell
|
34
33
|
colSpan={getVisibleLeafColumns().length}
|
35
|
-
onClick={(event: MouseEvent<HTMLTableCellElement>) =>
|
36
|
-
onDetailPanelClick?.({ event, row, instance })
|
37
|
-
}
|
38
34
|
{...tableCellProps}
|
39
35
|
sx={{
|
40
36
|
borderBottom: !row.getIsExpanded() ? 'none' : undefined,
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import React, { FC
|
1
|
+
import React, { FC } from 'react';
|
2
2
|
import { IconButton, Tooltip } from '@mui/material';
|
3
3
|
import type { MRT_Row, MRT_TableInstance } from '..';
|
4
4
|
|
@@ -14,7 +14,6 @@ export const MRT_ExpandButton: FC<Props> = ({ row, instance }) => {
|
|
14
14
|
icons: { ExpandMoreIcon },
|
15
15
|
localization,
|
16
16
|
muiExpandButtonProps,
|
17
|
-
onExpandChanged,
|
18
17
|
renderDetailPanel,
|
19
18
|
},
|
20
19
|
} = instance;
|
@@ -26,9 +25,8 @@ export const MRT_ExpandButton: FC<Props> = ({ row, instance }) => {
|
|
26
25
|
? muiExpandButtonProps({ instance, row })
|
27
26
|
: muiExpandButtonProps;
|
28
27
|
|
29
|
-
const handleToggleExpand = (
|
28
|
+
const handleToggleExpand = () => {
|
30
29
|
row.toggleExpanded();
|
31
|
-
onExpandChanged?.({ event, row, instance });
|
32
30
|
};
|
33
31
|
|
34
32
|
return (
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import React, { FC
|
1
|
+
import React, { FC } from 'react';
|
2
2
|
import { IconButton, IconButtonProps, Tooltip } from '@mui/material';
|
3
3
|
import { MRT_TableInstance } from '..';
|
4
4
|
|
@@ -15,19 +15,13 @@ export const MRT_FullScreenToggleButton: FC<Props> = ({
|
|
15
15
|
options: {
|
16
16
|
icons: { FullscreenExitIcon, FullscreenIcon },
|
17
17
|
localization,
|
18
|
-
onIsFullScreenChanged,
|
19
18
|
},
|
20
19
|
setIsFullScreen,
|
21
20
|
} = instance;
|
22
21
|
|
23
22
|
const { isFullScreen } = getState();
|
24
23
|
|
25
|
-
const handleToggleFullScreen = (
|
26
|
-
onIsFullScreenChanged?.({
|
27
|
-
event,
|
28
|
-
isFullScreen: !isFullScreen,
|
29
|
-
instance,
|
30
|
-
});
|
24
|
+
const handleToggleFullScreen = () => {
|
31
25
|
setIsFullScreen(!isFullScreen);
|
32
26
|
};
|
33
27
|
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import React, { FC
|
1
|
+
import React, { FC } from 'react';
|
2
2
|
import { IconButton, IconButtonProps, Tooltip } from '@mui/material';
|
3
3
|
import { MRT_TableInstance } from '..';
|
4
4
|
|
@@ -15,25 +15,19 @@ export const MRT_ToggleDensePaddingButton: FC<Props> = ({
|
|
15
15
|
options: {
|
16
16
|
icons: { DensityLargeIcon, DensityMediumIcon, DensitySmallIcon },
|
17
17
|
localization,
|
18
|
-
onDensityChanged,
|
19
18
|
},
|
20
19
|
setDensity,
|
21
20
|
} = instance;
|
22
21
|
|
23
22
|
const { density } = getState();
|
24
23
|
|
25
|
-
const handleToggleDensePadding = (
|
24
|
+
const handleToggleDensePadding = () => {
|
26
25
|
const nextDensity =
|
27
26
|
density === 'comfortable'
|
28
27
|
? 'compact'
|
29
28
|
: density === 'compact'
|
30
29
|
? 'spacious'
|
31
30
|
: 'comfortable';
|
32
|
-
onDensityChanged?.({
|
33
|
-
event,
|
34
|
-
density: nextDensity,
|
35
|
-
instance,
|
36
|
-
});
|
37
31
|
setDensity(nextDensity);
|
38
32
|
};
|
39
33
|
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import React, { FC
|
1
|
+
import React, { FC } from 'react';
|
2
2
|
import { IconButton, IconButtonProps, Tooltip } from '@mui/material';
|
3
3
|
import { MRT_TableInstance } from '..';
|
4
4
|
|
@@ -12,19 +12,13 @@ export const MRT_ToggleFiltersButton: FC<Props> = ({ instance, ...rest }) => {
|
|
12
12
|
options: {
|
13
13
|
icons: { FilterListIcon, FilterListOffIcon },
|
14
14
|
localization,
|
15
|
-
onShowFiltersChanged,
|
16
15
|
},
|
17
16
|
setShowFilters,
|
18
17
|
} = instance;
|
19
18
|
|
20
19
|
const { showFilters } = getState();
|
21
20
|
|
22
|
-
const handleToggleShowFilters = (
|
23
|
-
onShowFiltersChanged?.({
|
24
|
-
event,
|
25
|
-
showFilters: !showFilters,
|
26
|
-
instance,
|
27
|
-
});
|
21
|
+
const handleToggleShowFilters = () => {
|
28
22
|
setShowFilters(!showFilters);
|
29
23
|
};
|
30
24
|
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import React, { FC
|
1
|
+
import React, { FC } from 'react';
|
2
2
|
import { IconButton, IconButtonProps, Tooltip } from '@mui/material';
|
3
3
|
import { MRT_TableInstance } from '..';
|
4
4
|
|
@@ -17,7 +17,6 @@ export const MRT_ToggleGlobalFilterButton: FC<Props> = ({
|
|
17
17
|
tableId,
|
18
18
|
localization,
|
19
19
|
muiSearchTextFieldProps,
|
20
|
-
onShowGlobalFilterChanged,
|
21
20
|
},
|
22
21
|
setShowGlobalFilter,
|
23
22
|
} = instance;
|
@@ -29,12 +28,7 @@ export const MRT_ToggleGlobalFilterButton: FC<Props> = ({
|
|
29
28
|
? muiSearchTextFieldProps({ instance })
|
30
29
|
: muiSearchTextFieldProps;
|
31
30
|
|
32
|
-
const handleToggleSearch = (
|
33
|
-
onShowGlobalFilterChanged?.({
|
34
|
-
event,
|
35
|
-
showGlobalFilter: !showGlobalFilter,
|
36
|
-
instance,
|
37
|
-
});
|
31
|
+
const handleToggleSearch = () => {
|
38
32
|
setShowGlobalFilter(!showGlobalFilter);
|
39
33
|
setTimeout(
|
40
34
|
() =>
|
@@ -13,7 +13,7 @@ export const MRT_TableHeadCellResizeHandle: FC<Props> = ({
|
|
13
13
|
}) => {
|
14
14
|
const { getState } = instance;
|
15
15
|
|
16
|
-
const { showFilters } = getState();
|
16
|
+
const { density, showFilters } = getState();
|
17
17
|
|
18
18
|
const { column } = header;
|
19
19
|
|
@@ -29,13 +29,14 @@ export const MRT_TableHeadCellResizeHandle: FC<Props> = ({
|
|
29
29
|
borderRightWidth: '2px',
|
30
30
|
cursor: 'col-resize',
|
31
31
|
height: showFilters && columnDefType === 'data' ? '4rem' : '2rem',
|
32
|
+
mr: density === 'compact' ? '-0.5rem' : '-1rem',
|
32
33
|
opacity: 0.8,
|
33
34
|
position: 'absolute',
|
34
|
-
mr: '-1rem',
|
35
35
|
right: '1px',
|
36
36
|
touchAction: 'none',
|
37
37
|
transition: column.getIsResizing() ? undefined : 'all 0.2s ease-in-out',
|
38
38
|
userSelect: 'none',
|
39
|
+
zIndex: 4,
|
39
40
|
'&:active': {
|
40
41
|
backgroundColor: theme.palette.info.main,
|
41
42
|
opacity: 1,
|
@@ -21,7 +21,7 @@ export const MRT_EditCellTextField: FC<Props> = ({ cell, instance }) => {
|
|
21
21
|
enableEditing,
|
22
22
|
muiTableBodyCellEditTextFieldProps,
|
23
23
|
onCellEditBlur,
|
24
|
-
|
24
|
+
onCellEditChange,
|
25
25
|
},
|
26
26
|
setCurrentEditingCell,
|
27
27
|
setCurrentEditingRow,
|
@@ -35,8 +35,8 @@ export const MRT_EditCellTextField: FC<Props> = ({ cell, instance }) => {
|
|
35
35
|
|
36
36
|
const handleChange = (event: ChangeEvent<HTMLInputElement>) => {
|
37
37
|
setValue(event.target.value);
|
38
|
-
columnDef.
|
39
|
-
|
38
|
+
columnDef.onCellEditChange?.({ event, cell, instance });
|
39
|
+
onCellEditChange?.({ event, cell, instance });
|
40
40
|
};
|
41
41
|
|
42
42
|
const handleBlur = (event: FocusEvent<HTMLInputElement>) => {
|
@@ -37,8 +37,6 @@ export const MRT_FilterTextField: FC<Props> = ({
|
|
37
37
|
icons: { FilterListIcon, CloseIcon },
|
38
38
|
localization,
|
39
39
|
muiTableHeadCellFilterTextFieldProps,
|
40
|
-
onColumnFilterValueChanged,
|
41
|
-
onColumnFilterValueChangedDebounced,
|
42
40
|
tableId,
|
43
41
|
},
|
44
42
|
setCurrentFilterFns,
|
@@ -87,18 +85,6 @@ export const MRT_FilterTextField: FC<Props> = ({
|
|
87
85
|
} else {
|
88
86
|
column.setFilterValue(event.target.value ?? undefined);
|
89
87
|
}
|
90
|
-
onColumnFilterValueChangedDebounced?.({
|
91
|
-
column,
|
92
|
-
event,
|
93
|
-
filterValue: event.target.value,
|
94
|
-
instance,
|
95
|
-
});
|
96
|
-
columnDef.onColumnFilterValueChangedDebounced?.({
|
97
|
-
column,
|
98
|
-
event,
|
99
|
-
filterValue: event.target.value,
|
100
|
-
instance,
|
101
|
-
});
|
102
88
|
}, 200),
|
103
89
|
[],
|
104
90
|
);
|
@@ -106,18 +92,6 @@ export const MRT_FilterTextField: FC<Props> = ({
|
|
106
92
|
const handleChange = (event: ChangeEvent<HTMLInputElement>) => {
|
107
93
|
setFilterValue(event.target.value);
|
108
94
|
handleChangeDebounced(event);
|
109
|
-
onColumnFilterValueChanged?.({
|
110
|
-
column,
|
111
|
-
event,
|
112
|
-
filterValue: event.target.value,
|
113
|
-
instance,
|
114
|
-
});
|
115
|
-
columnDef.onColumnFilterValueChanged?.({
|
116
|
-
column,
|
117
|
-
event,
|
118
|
-
filterValue: event.target.value,
|
119
|
-
instance,
|
120
|
-
});
|
121
95
|
};
|
122
96
|
|
123
97
|
const handleFilterMenuOpen = (event: MouseEvent<HTMLElement>) => {
|
@@ -29,8 +29,6 @@ export const MRT_GlobalFilterTextField: FC<Props> = ({ instance }) => {
|
|
29
29
|
icons: { SearchIcon, CloseIcon },
|
30
30
|
localization,
|
31
31
|
muiSearchTextFieldProps,
|
32
|
-
onGlobalFilterValueChanged,
|
33
|
-
onGlobalFilterValueChangedDebounced,
|
34
32
|
tableId,
|
35
33
|
},
|
36
34
|
} = instance;
|
@@ -43,7 +41,6 @@ export const MRT_GlobalFilterTextField: FC<Props> = ({ instance }) => {
|
|
43
41
|
const handleChangeDebounced = useCallback(
|
44
42
|
debounce((event: ChangeEvent<HTMLInputElement>) => {
|
45
43
|
setGlobalFilter(event.target.value ?? undefined);
|
46
|
-
onGlobalFilterValueChangedDebounced?.({ event, instance });
|
47
44
|
}, 250),
|
48
45
|
[],
|
49
46
|
);
|
@@ -51,7 +48,6 @@ export const MRT_GlobalFilterTextField: FC<Props> = ({ instance }) => {
|
|
51
48
|
const handleChange = (event: ChangeEvent<HTMLInputElement>) => {
|
52
49
|
setSearchValue(event.target.value);
|
53
50
|
handleChangeDebounced(event);
|
54
|
-
onGlobalFilterValueChanged?.({ event, instance });
|
55
51
|
};
|
56
52
|
|
57
53
|
const handleGlobalFilterMenuOpen = (event: MouseEvent<HTMLElement>) => {
|
@@ -10,16 +10,11 @@ interface Props {
|
|
10
10
|
|
11
11
|
export const MRT_SelectCheckbox: FC<Props> = ({ row, selectAll, instance }) => {
|
12
12
|
const {
|
13
|
-
getRowModel,
|
14
|
-
getPaginationRowModel,
|
15
|
-
getSelectedRowModel,
|
16
13
|
getState,
|
17
14
|
options: {
|
18
15
|
localization,
|
19
16
|
muiSelectCheckboxProps,
|
20
17
|
muiSelectAllCheckboxProps,
|
21
|
-
onRowSelectionChanged,
|
22
|
-
onRowSelectAllChanged,
|
23
18
|
selectAllMode,
|
24
19
|
},
|
25
20
|
} = instance;
|
@@ -33,27 +28,8 @@ export const MRT_SelectCheckbox: FC<Props> = ({ row, selectAll, instance }) => {
|
|
33
28
|
} else if (selectAllMode === 'page') {
|
34
29
|
instance.getToggleAllPageRowsSelectedHandler()(event as any);
|
35
30
|
}
|
36
|
-
onRowSelectAllChanged?.({
|
37
|
-
event,
|
38
|
-
selectedRows: event.target.checked
|
39
|
-
? selectAllMode === 'all'
|
40
|
-
? getRowModel().flatRows
|
41
|
-
: getPaginationRowModel().flatRows
|
42
|
-
: [],
|
43
|
-
instance,
|
44
|
-
});
|
45
31
|
} else if (row) {
|
46
32
|
row?.getToggleSelectedHandler()(event as any);
|
47
|
-
onRowSelectionChanged?.({
|
48
|
-
event,
|
49
|
-
row,
|
50
|
-
selectedRows: event.target.checked
|
51
|
-
? [...getSelectedRowModel().flatRows, row]
|
52
|
-
: getSelectedRowModel().flatRows.filter(
|
53
|
-
(selectedRow) => selectedRow.id !== row.id,
|
54
|
-
),
|
55
|
-
instance,
|
56
|
-
});
|
57
33
|
}
|
58
34
|
};
|
59
35
|
|