material-react-table 0.17.0 → 0.18.1
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/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
|
|