material-react-table 2.10.0 → 2.11.1
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +3 -2
- package/dist/index.d.ts +144 -125
- package/dist/index.esm.js +213 -154
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +213 -151
- package/dist/index.js.map +1 -1
- package/locales/ar/index.esm.js +1 -0
- package/locales/ar/index.js +1 -0
- package/locales/az/index.esm.js +1 -0
- package/locales/az/index.js +1 -0
- package/locales/bg/index.esm.js +1 -0
- package/locales/bg/index.js +1 -0
- package/locales/cs/index.esm.js +1 -0
- package/locales/cs/index.js +1 -0
- package/locales/da/index.esm.js +1 -0
- package/locales/da/index.js +1 -0
- package/locales/de/index.esm.js +1 -0
- package/locales/de/index.js +1 -0
- package/locales/en/index.esm.js +1 -0
- package/locales/en/index.js +1 -0
- package/locales/es/index.esm.js +1 -0
- package/locales/es/index.js +1 -0
- package/locales/et/index.esm.js +1 -0
- package/locales/et/index.js +1 -0
- package/locales/fa/index.esm.js +1 -0
- package/locales/fa/index.js +1 -0
- package/locales/fi/index.esm.js +1 -0
- package/locales/fi/index.js +1 -0
- package/locales/fr/index.esm.js +1 -0
- package/locales/fr/index.js +1 -0
- package/locales/he/index.esm.js +1 -0
- package/locales/he/index.js +1 -0
- package/locales/hu/index.esm.js +1 -0
- package/locales/hu/index.js +1 -0
- package/locales/hy/index.esm.js +1 -0
- package/locales/hy/index.js +1 -0
- package/locales/id/index.esm.js +1 -0
- package/locales/id/index.js +1 -0
- package/locales/it/index.esm.js +1 -0
- package/locales/it/index.js +1 -0
- package/locales/ja/index.esm.js +1 -0
- package/locales/ja/index.js +1 -0
- package/locales/ko/index.esm.js +1 -0
- package/locales/ko/index.js +1 -0
- package/locales/nl/index.esm.js +1 -0
- package/locales/nl/index.js +1 -0
- package/locales/no/index.esm.js +1 -0
- package/locales/no/index.js +1 -0
- package/locales/np/index.esm.js +1 -0
- package/locales/np/index.js +1 -0
- package/locales/pl/index.esm.js +1 -0
- package/locales/pl/index.js +1 -0
- package/locales/pt/index.esm.js +1 -0
- package/locales/pt/index.js +1 -0
- package/locales/pt-BR/index.esm.js +1 -0
- package/locales/pt-BR/index.js +1 -0
- package/locales/ro/index.esm.js +1 -0
- package/locales/ro/index.js +1 -0
- package/locales/ru/index.esm.js +1 -0
- package/locales/ru/index.js +1 -0
- package/locales/sk/index.esm.js +1 -0
- package/locales/sk/index.js +1 -0
- package/locales/sr-Cyrl-RS/index.esm.js +1 -0
- package/locales/sr-Cyrl-RS/index.js +1 -0
- package/locales/sr-Latn-RS/index.esm.js +1 -0
- package/locales/sr-Latn-RS/index.js +1 -0
- package/locales/sv/index.esm.js +1 -0
- package/locales/sv/index.js +1 -0
- package/locales/tr/index.esm.js +1 -0
- package/locales/tr/index.js +1 -0
- package/locales/uk/index.esm.js +1 -0
- package/locales/uk/index.js +1 -0
- package/locales/vi/index.esm.js +1 -0
- package/locales/vi/index.js +1 -0
- package/locales/zh-Hans/index.esm.js +1 -0
- package/locales/zh-Hans/index.js +1 -0
- package/locales/zh-Hant/index.esm.js +1 -0
- package/locales/zh-Hant/index.js +1 -0
- package/package.json +18 -18
- package/src/components/MaterialReactTable.tsx +3 -3
- package/src/components/body/MRT_TableBody.tsx +3 -2
- package/src/components/body/MRT_TableBodyCell.tsx +4 -2
- package/src/components/body/MRT_TableBodyCellValue.tsx +5 -2
- package/src/components/body/MRT_TableBodyRow.tsx +13 -8
- package/src/components/body/MRT_TableBodyRowGrabHandle.tsx +4 -3
- package/src/components/body/MRT_TableBodyRowPinButton.tsx +3 -2
- package/src/components/body/MRT_TableDetailPanel.tsx +3 -2
- package/src/components/buttons/MRT_ColumnPinningButtons.tsx +3 -2
- package/src/components/buttons/MRT_CopyButton.tsx +3 -2
- package/src/components/buttons/MRT_EditActionButtons.tsx +3 -2
- package/src/components/buttons/MRT_ExpandAllButton.tsx +3 -2
- package/src/components/buttons/MRT_ExpandButton.tsx +3 -2
- package/src/components/buttons/MRT_GrabHandleButton.tsx +9 -15
- package/src/components/buttons/MRT_RowPinButton.tsx +3 -2
- package/src/components/buttons/MRT_ShowHideColumnsButton.tsx +3 -2
- package/src/components/buttons/MRT_ToggleDensePaddingButton.tsx +3 -2
- package/src/components/buttons/MRT_ToggleFiltersButton.tsx +3 -2
- package/src/components/buttons/MRT_ToggleFullScreenButton.tsx +3 -2
- package/src/components/buttons/MRT_ToggleGlobalFilterButton.tsx +3 -2
- package/src/components/buttons/MRT_ToggleRowActionMenuButton.tsx +3 -2
- package/src/components/footer/MRT_TableFooter.tsx +3 -2
- package/src/components/footer/MRT_TableFooterCell.tsx +3 -2
- package/src/components/footer/MRT_TableFooterRow.tsx +5 -3
- package/src/components/head/MRT_TableHead.tsx +3 -2
- package/src/components/head/MRT_TableHeadCell.tsx +3 -5
- package/src/components/head/MRT_TableHeadCellColumnActionsButton.tsx +4 -2
- package/src/components/head/MRT_TableHeadCellFilterContainer.tsx +4 -2
- package/src/components/head/MRT_TableHeadCellFilterLabel.tsx +3 -2
- package/src/components/head/MRT_TableHeadCellGrabHandle.tsx +4 -3
- package/src/components/head/MRT_TableHeadCellResizeHandle.tsx +3 -2
- package/src/components/head/MRT_TableHeadCellSortLabel.tsx +3 -2
- package/src/components/head/MRT_TableHeadRow.tsx +3 -2
- package/src/components/inputs/MRT_EditCellTextField.tsx +3 -2
- package/src/components/inputs/MRT_FilterCheckbox.tsx +3 -2
- package/src/components/inputs/MRT_FilterRangeFields.tsx +3 -2
- package/src/components/inputs/MRT_FilterRangeSlider.tsx +3 -2
- package/src/components/inputs/MRT_FilterTextField.tsx +15 -6
- package/src/components/inputs/MRT_GlobalFilterTextField.tsx +3 -2
- package/src/components/inputs/MRT_SelectCheckbox.tsx +28 -35
- package/src/components/menus/MRT_ActionMenuItem.tsx +3 -2
- package/src/components/menus/MRT_CellActionMenu.tsx +5 -4
- package/src/components/menus/MRT_ColumnActionMenu.tsx +5 -4
- package/src/components/menus/MRT_FilterOptionMenu.tsx +3 -2
- package/src/components/menus/MRT_RowActionMenu.tsx +3 -2
- package/src/components/menus/MRT_ShowHideColumnsMenu.tsx +8 -2
- package/src/components/menus/MRT_ShowHideColumnsMenuItems.tsx +7 -5
- package/src/components/modals/MRT_EditRowModal.tsx +3 -2
- package/src/components/table/MRT_Table.tsx +2 -2
- package/src/components/table/MRT_TableContainer.tsx +3 -2
- package/src/components/table/MRT_TableLoadingOverlay.tsx +11 -8
- package/src/components/table/MRT_TablePaper.tsx +3 -2
- package/src/components/toolbar/MRT_BottomToolbar.tsx +3 -2
- package/src/components/toolbar/MRT_LinearProgressBar.tsx +3 -2
- package/src/components/toolbar/MRT_TablePagination.tsx +2 -2
- package/src/components/toolbar/MRT_ToolbarAlertBanner.tsx +30 -13
- package/src/components/toolbar/MRT_ToolbarDropZone.tsx +3 -2
- package/src/components/toolbar/MRT_ToolbarInternalButtons.tsx +3 -2
- package/src/components/toolbar/MRT_TopToolbar.tsx +2 -2
- package/src/hooks/useMRT_Effects.ts +11 -11
- package/src/hooks/useMRT_Rows.ts +11 -79
- package/src/hooks/useMRT_TableInstance.ts +2 -0
- package/src/hooks/useMRT_TableOptions.ts +2 -0
- package/src/locales/ar.ts +1 -0
- package/src/locales/az.ts +1 -0
- package/src/locales/bg.ts +1 -0
- package/src/locales/cs.ts +1 -0
- package/src/locales/da.ts +1 -0
- package/src/locales/de.ts +1 -0
- package/src/locales/en.ts +1 -0
- package/src/locales/es.ts +1 -0
- package/src/locales/et.ts +1 -0
- package/src/locales/fa.ts +1 -0
- package/src/locales/fi.ts +1 -0
- package/src/locales/fr.ts +1 -0
- package/src/locales/he.ts +1 -0
- package/src/locales/hu.ts +1 -0
- package/src/locales/hy.ts +1 -0
- package/src/locales/id.ts +1 -0
- package/src/locales/it.ts +1 -0
- package/src/locales/ja.ts +1 -0
- package/src/locales/ko.ts +1 -0
- package/src/locales/nl.ts +1 -0
- package/src/locales/no.ts +1 -0
- package/src/locales/np.ts +1 -0
- package/src/locales/pl.ts +1 -0
- package/src/locales/pt-BR.ts +1 -0
- package/src/locales/pt.ts +1 -0
- package/src/locales/ro.ts +1 -0
- package/src/locales/ru.ts +1 -0
- package/src/locales/sk.ts +1 -0
- package/src/locales/sr-Cyrl-RS.ts +1 -0
- package/src/locales/sr-Latn-RS.ts +1 -0
- package/src/locales/sv.ts +1 -0
- package/src/locales/tr.ts +1 -0
- package/src/locales/uk.ts +1 -0
- package/src/locales/vi.ts +1 -0
- package/src/locales/zh-Hans.ts +1 -0
- package/src/locales/zh-Hant.ts +1 -0
- package/src/types.ts +10 -4
- package/src/utils/column.utils.ts +4 -6
- package/src/utils/displayColumn.utils.ts +1 -1
- package/src/utils/row.utils.ts +196 -21
- package/locales/am/index.d.ts +0 -3
- package/locales/am/index.esm.d.ts +0 -3
- package/locales/am/index.esm.js +0 -93
- package/locales/am/index.js +0 -97
- package/locales/am/package.json +0 -6
@@ -8,7 +8,8 @@ import {
|
|
8
8
|
import { getCommonMRTCellStyles } from '../../utils/style.utils';
|
9
9
|
import { parseFromValuesOrFunc } from '../../utils/utils';
|
10
10
|
|
11
|
-
interface
|
11
|
+
export interface MRT_TableFooterCellProps<TData extends MRT_RowData>
|
12
|
+
extends TableCellProps {
|
12
13
|
footer: MRT_Header<TData>;
|
13
14
|
staticColumnIndex?: number;
|
14
15
|
table: MRT_TableInstance<TData>;
|
@@ -19,7 +20,7 @@ export const MRT_TableFooterCell = <TData extends MRT_RowData>({
|
|
19
20
|
staticColumnIndex,
|
20
21
|
table,
|
21
22
|
...rest
|
22
|
-
}:
|
23
|
+
}: MRT_TableFooterCellProps<TData>) => {
|
23
24
|
const theme = useTheme();
|
24
25
|
const {
|
25
26
|
getState,
|
@@ -11,7 +11,8 @@ import {
|
|
11
11
|
import { getMRTTheme } from '../../utils/style.utils';
|
12
12
|
import { parseFromValuesOrFunc } from '../../utils/utils';
|
13
13
|
|
14
|
-
interface
|
14
|
+
export interface MRT_TableFooterRowProps<TData extends MRT_RowData>
|
15
|
+
extends TableRowProps {
|
15
16
|
columnVirtualizer?: MRT_ColumnVirtualizer;
|
16
17
|
footerGroup: MRT_HeaderGroup<TData>;
|
17
18
|
table: MRT_TableInstance<TData>;
|
@@ -22,7 +23,7 @@ export const MRT_TableFooterRow = <TData extends MRT_RowData>({
|
|
22
23
|
footerGroup,
|
23
24
|
table,
|
24
25
|
...rest
|
25
|
-
}:
|
26
|
+
}: MRT_TableFooterRowProps<TData>) => {
|
26
27
|
const {
|
27
28
|
options: { layoutMode, muiTableFooterRowProps },
|
28
29
|
} = table;
|
@@ -38,8 +39,9 @@ export const MRT_TableFooterRow = <TData extends MRT_RowData>({
|
|
38
39
|
!!header.column.columnDef.footer) ||
|
39
40
|
header.column.columnDef.Footer,
|
40
41
|
)
|
41
|
-
)
|
42
|
+
) {
|
42
43
|
return null;
|
44
|
+
}
|
43
45
|
|
44
46
|
const tableRowProps = {
|
45
47
|
...parseFromValuesOrFunc(muiTableFooterRowProps, {
|
@@ -8,7 +8,8 @@ import {
|
|
8
8
|
import { parseFromValuesOrFunc } from '../../utils/utils';
|
9
9
|
import { MRT_ToolbarAlertBanner } from '../toolbar/MRT_ToolbarAlertBanner';
|
10
10
|
|
11
|
-
interface
|
11
|
+
export interface MRT_TableHeadProps<TData extends MRT_RowData>
|
12
|
+
extends TableHeadProps {
|
12
13
|
columnVirtualizer?: MRT_ColumnVirtualizer;
|
13
14
|
table: MRT_TableInstance<TData>;
|
14
15
|
}
|
@@ -17,7 +18,7 @@ export const MRT_TableHead = <TData extends MRT_RowData>({
|
|
17
18
|
columnVirtualizer,
|
18
19
|
table,
|
19
20
|
...rest
|
20
|
-
}:
|
21
|
+
}: MRT_TableHeadProps<TData>) => {
|
21
22
|
const {
|
22
23
|
getHeaderGroups,
|
23
24
|
getSelectedRowModel,
|
@@ -18,7 +18,8 @@ import {
|
|
18
18
|
import { getCommonMRTCellStyles, getMRTTheme } from '../../utils/style.utils';
|
19
19
|
import { parseFromValuesOrFunc } from '../../utils/utils';
|
20
20
|
|
21
|
-
interface
|
21
|
+
export interface MRT_TableHeadCellProps<TData extends MRT_RowData>
|
22
|
+
extends TableCellProps {
|
22
23
|
columnVirtualizer?: MRT_ColumnVirtualizer;
|
23
24
|
header: MRT_Header<TData>;
|
24
25
|
staticColumnIndex?: number;
|
@@ -31,7 +32,7 @@ export const MRT_TableHeadCell = <TData extends MRT_RowData>({
|
|
31
32
|
staticColumnIndex,
|
32
33
|
table,
|
33
34
|
...rest
|
34
|
-
}:
|
35
|
+
}: MRT_TableHeadCellProps<TData>) => {
|
35
36
|
const theme = useTheme();
|
36
37
|
const {
|
37
38
|
getState,
|
@@ -267,9 +268,6 @@ export const MRT_TableHeadCell = <TData extends MRT_RowData>({
|
|
267
268
|
? 'nowrap'
|
268
269
|
: 'normal',
|
269
270
|
}}
|
270
|
-
title={
|
271
|
-
columnDefType === 'data' ? columnDef.header : undefined
|
272
|
-
}
|
273
271
|
>
|
274
272
|
{HeaderElement}
|
275
273
|
</Box>
|
@@ -10,7 +10,9 @@ import { getCommonTooltipProps } from '../../utils/style.utils';
|
|
10
10
|
import { parseFromValuesOrFunc } from '../../utils/utils';
|
11
11
|
import { MRT_ColumnActionMenu } from '../menus/MRT_ColumnActionMenu';
|
12
12
|
|
13
|
-
interface
|
13
|
+
export interface MRT_TableHeadCellColumnActionsButtonProps<
|
14
|
+
TData extends MRT_RowData,
|
15
|
+
> extends IconButtonProps {
|
14
16
|
header: MRT_Header<TData>;
|
15
17
|
table: MRT_TableInstance<TData>;
|
16
18
|
}
|
@@ -21,7 +23,7 @@ export const MRT_TableHeadCellColumnActionsButton = <
|
|
21
23
|
header,
|
22
24
|
table,
|
23
25
|
...rest
|
24
|
-
}:
|
26
|
+
}: MRT_TableHeadCellColumnActionsButtonProps<TData>) => {
|
25
27
|
const {
|
26
28
|
options: {
|
27
29
|
icons: { MoreVertIcon },
|
@@ -9,7 +9,9 @@ import { MRT_FilterRangeFields } from '../inputs/MRT_FilterRangeFields';
|
|
9
9
|
import { MRT_FilterRangeSlider } from '../inputs/MRT_FilterRangeSlider';
|
10
10
|
import { MRT_FilterTextField } from '../inputs/MRT_FilterTextField';
|
11
11
|
|
12
|
-
interface
|
12
|
+
export interface MRT_TableHeadCellFilterContainerProps<
|
13
|
+
TData extends MRT_RowData,
|
14
|
+
> extends CollapseProps {
|
13
15
|
header: MRT_Header<TData>;
|
14
16
|
table: MRT_TableInstance<TData>;
|
15
17
|
}
|
@@ -18,7 +20,7 @@ export const MRT_TableHeadCellFilterContainer = <TData extends MRT_RowData>({
|
|
18
20
|
header,
|
19
21
|
table,
|
20
22
|
...rest
|
21
|
-
}:
|
23
|
+
}: MRT_TableHeadCellFilterContainerProps<TData>) => {
|
22
24
|
const {
|
23
25
|
getState,
|
24
26
|
options: { columnFilterDisplayMode },
|
@@ -12,7 +12,8 @@ import {
|
|
12
12
|
} from '../../types';
|
13
13
|
import { parseFromValuesOrFunc } from '../../utils/utils';
|
14
14
|
|
15
|
-
interface
|
15
|
+
export interface MRT_TableHeadCellFilterLabelProps<TData extends MRT_RowData>
|
16
|
+
extends IconButtonProps {
|
16
17
|
header: MRT_Header<TData>;
|
17
18
|
table: MRT_TableInstance<TData>;
|
18
19
|
}
|
@@ -21,7 +22,7 @@ export const MRT_TableHeadCellFilterLabel = <TData extends MRT_RowData = {}>({
|
|
21
22
|
header,
|
22
23
|
table,
|
23
24
|
...rest
|
24
|
-
}:
|
25
|
+
}: MRT_TableHeadCellFilterLabelProps<TData>) => {
|
25
26
|
const {
|
26
27
|
options: {
|
27
28
|
columnFilterDisplayMode,
|
@@ -9,7 +9,8 @@ import { reorderColumn } from '../../utils/column.utils';
|
|
9
9
|
import { parseFromValuesOrFunc } from '../../utils/utils';
|
10
10
|
import { MRT_GrabHandleButton } from '../buttons/MRT_GrabHandleButton';
|
11
11
|
|
12
|
-
interface
|
12
|
+
export interface MRT_TableHeadCellGrabHandleProps<TData extends MRT_RowData>
|
13
|
+
extends IconButtonProps {
|
13
14
|
column: MRT_Column<TData>;
|
14
15
|
table: MRT_TableInstance<TData>;
|
15
16
|
tableHeadCellRef: RefObject<HTMLTableCellElement>;
|
@@ -20,7 +21,7 @@ export const MRT_TableHeadCellGrabHandle = <TData extends MRT_RowData>({
|
|
20
21
|
table,
|
21
22
|
tableHeadCellRef,
|
22
23
|
...rest
|
23
|
-
}:
|
24
|
+
}: MRT_TableHeadCellGrabHandleProps<TData>) => {
|
24
25
|
const {
|
25
26
|
getState,
|
26
27
|
options: { enableColumnOrdering, muiColumnDragHandleProps },
|
@@ -73,7 +74,7 @@ export const MRT_TableHeadCellGrabHandle = <TData extends MRT_RowData>({
|
|
73
74
|
|
74
75
|
return (
|
75
76
|
<MRT_GrabHandleButton
|
76
|
-
|
77
|
+
{...iconButtonProps}
|
77
78
|
onDragEnd={handleDragEnd}
|
78
79
|
onDragStart={handleDragStart}
|
79
80
|
table={table}
|
@@ -7,7 +7,8 @@ import {
|
|
7
7
|
} from '../../types';
|
8
8
|
import { parseFromValuesOrFunc } from '../../utils/utils';
|
9
9
|
|
10
|
-
interface
|
10
|
+
export interface MRT_TableHeadCellResizeHandleProps<TData extends MRT_RowData>
|
11
|
+
extends DividerProps {
|
11
12
|
header: MRT_Header<TData>;
|
12
13
|
table: MRT_TableInstance<TData>;
|
13
14
|
}
|
@@ -16,7 +17,7 @@ export const MRT_TableHeadCellResizeHandle = <TData extends MRT_RowData>({
|
|
16
17
|
header,
|
17
18
|
table,
|
18
19
|
...rest
|
19
|
-
}:
|
20
|
+
}: MRT_TableHeadCellResizeHandleProps<TData>) => {
|
20
21
|
const {
|
21
22
|
getState,
|
22
23
|
options: { columnResizeDirection, columnResizeMode },
|
@@ -10,7 +10,8 @@ import {
|
|
10
10
|
} from '../../types';
|
11
11
|
import { parseFromValuesOrFunc } from '../../utils/utils';
|
12
12
|
|
13
|
-
interface
|
13
|
+
export interface MRT_TableHeadCellSortLabelProps<TData extends MRT_RowData>
|
14
|
+
extends TableSortLabelProps {
|
14
15
|
header: MRT_Header<TData>;
|
15
16
|
table: MRT_TableInstance<TData>;
|
16
17
|
}
|
@@ -19,7 +20,7 @@ export const MRT_TableHeadCellSortLabel = <TData extends MRT_RowData>({
|
|
19
20
|
header,
|
20
21
|
table,
|
21
22
|
...rest
|
22
|
-
}:
|
23
|
+
}: MRT_TableHeadCellSortLabelProps<TData>) => {
|
23
24
|
const {
|
24
25
|
getState,
|
25
26
|
options: {
|
@@ -12,7 +12,8 @@ import {
|
|
12
12
|
import { getMRTTheme } from '../../utils/style.utils';
|
13
13
|
import { parseFromValuesOrFunc } from '../../utils/utils';
|
14
14
|
|
15
|
-
interface
|
15
|
+
export interface MRT_TableHeadRowProps<TData extends MRT_RowData>
|
16
|
+
extends TableRowProps {
|
16
17
|
columnVirtualizer?: MRT_ColumnVirtualizer;
|
17
18
|
headerGroup: MRT_HeaderGroup<TData>;
|
18
19
|
table: MRT_TableInstance<TData>;
|
@@ -23,7 +24,7 @@ export const MRT_TableHeadRow = <TData extends MRT_RowData>({
|
|
23
24
|
headerGroup,
|
24
25
|
table,
|
25
26
|
...rest
|
26
|
-
}:
|
27
|
+
}: MRT_TableHeadRowProps<TData>) => {
|
27
28
|
const {
|
28
29
|
options: { enableStickyHeader, layoutMode, muiTableHeadRowProps },
|
29
30
|
} = table;
|
@@ -14,7 +14,8 @@ import {
|
|
14
14
|
} from '../../types';
|
15
15
|
import { getValueAndLabel, parseFromValuesOrFunc } from '../../utils/utils';
|
16
16
|
|
17
|
-
interface
|
17
|
+
export interface MRT_EditCellTextFieldProps<TData extends MRT_RowData>
|
18
|
+
extends TextFieldProps<'standard'> {
|
18
19
|
cell: MRT_Cell<TData>;
|
19
20
|
table: MRT_TableInstance<TData>;
|
20
21
|
}
|
@@ -23,7 +24,7 @@ export const MRT_EditCellTextField = <TData extends MRT_RowData>({
|
|
23
24
|
cell,
|
24
25
|
table,
|
25
26
|
...rest
|
26
|
-
}:
|
27
|
+
}: MRT_EditCellTextFieldProps<TData>) => {
|
27
28
|
const {
|
28
29
|
getState,
|
29
30
|
options: { createDisplayMode, editDisplayMode, muiEditTextFieldProps },
|
@@ -9,7 +9,8 @@ import {
|
|
9
9
|
import { getCommonTooltipProps } from '../../utils/style.utils';
|
10
10
|
import { parseFromValuesOrFunc } from '../../utils/utils';
|
11
11
|
|
12
|
-
interface
|
12
|
+
export interface MRT_FilterCheckboxProps<TData extends MRT_RowData>
|
13
|
+
extends CheckboxProps {
|
13
14
|
column: MRT_Column<TData>;
|
14
15
|
table: MRT_TableInstance<TData>;
|
15
16
|
}
|
@@ -18,7 +19,7 @@ export const MRT_FilterCheckbox = <TData extends MRT_RowData>({
|
|
18
19
|
column,
|
19
20
|
table,
|
20
21
|
...rest
|
21
|
-
}:
|
22
|
+
}: MRT_FilterCheckboxProps<TData>) => {
|
22
23
|
const {
|
23
24
|
getState,
|
24
25
|
options: { localization, muiFilterCheckboxProps },
|
@@ -7,7 +7,8 @@ import {
|
|
7
7
|
} from '../../types';
|
8
8
|
import { parseFromValuesOrFunc } from '../../utils/utils';
|
9
9
|
|
10
|
-
interface
|
10
|
+
export interface MRT_FilterRangeFieldsProps<TData extends MRT_RowData>
|
11
|
+
extends BoxProps {
|
11
12
|
header: MRT_Header<TData>;
|
12
13
|
table: MRT_TableInstance<TData>;
|
13
14
|
}
|
@@ -16,7 +17,7 @@ export const MRT_FilterRangeFields = <TData extends MRT_RowData>({
|
|
16
17
|
header,
|
17
18
|
table,
|
18
19
|
...rest
|
19
|
-
}:
|
20
|
+
}: MRT_FilterRangeFieldsProps<TData>) => {
|
20
21
|
return (
|
21
22
|
<Box
|
22
23
|
{...rest}
|
@@ -9,7 +9,8 @@ import {
|
|
9
9
|
} from '../../types';
|
10
10
|
import { parseFromValuesOrFunc } from '../../utils/utils';
|
11
11
|
|
12
|
-
interface
|
12
|
+
export interface MRT_FilterRangeSliderProps<TData extends MRT_RowData>
|
13
|
+
extends SliderProps {
|
13
14
|
header: MRT_Header<TData>;
|
14
15
|
table: MRT_TableInstance<TData>;
|
15
16
|
}
|
@@ -18,7 +19,7 @@ export const MRT_FilterRangeSlider = <TData extends MRT_RowData>({
|
|
18
19
|
header,
|
19
20
|
table,
|
20
21
|
...rest
|
21
|
-
}:
|
22
|
+
}: MRT_FilterRangeSliderProps<TData>) => {
|
22
23
|
const {
|
23
24
|
options: { enableColumnFilterModes, localization, muiFilterSliderProps },
|
24
25
|
refs: { filterInputRefs },
|
@@ -30,6 +30,7 @@ import {
|
|
30
30
|
type TimePickerProps,
|
31
31
|
} from '@mui/x-date-pickers/TimePicker';
|
32
32
|
import {
|
33
|
+
type DropdownOption,
|
33
34
|
type MRT_Header,
|
34
35
|
type MRT_RowData,
|
35
36
|
type MRT_TableInstance,
|
@@ -37,7 +38,8 @@ import {
|
|
37
38
|
import { getValueAndLabel, parseFromValuesOrFunc } from '../../utils/utils';
|
38
39
|
import { MRT_FilterOptionMenu } from '../menus/MRT_FilterOptionMenu';
|
39
40
|
|
40
|
-
interface
|
41
|
+
export interface MRT_FilterTextFieldProps<TData extends MRT_RowData>
|
42
|
+
extends TextFieldProps<'standard'> {
|
41
43
|
header: MRT_Header<TData>;
|
42
44
|
rangeFilterIndex?: number;
|
43
45
|
table: MRT_TableInstance<TData>;
|
@@ -48,7 +50,7 @@ export const MRT_FilterTextField = <TData extends MRT_RowData>({
|
|
48
50
|
rangeFilterIndex,
|
49
51
|
table,
|
50
52
|
...rest
|
51
|
-
}:
|
53
|
+
}: MRT_FilterTextFieldProps<TData>) => {
|
52
54
|
const {
|
53
55
|
options: {
|
54
56
|
columnFilterModeOptions,
|
@@ -159,6 +161,10 @@ export const MRT_FilterTextField = <TData extends MRT_RowData>({
|
|
159
161
|
] || ''
|
160
162
|
: (column.getFilterValue() as string) ?? '',
|
161
163
|
);
|
164
|
+
const [autocompleteValue, setAutocompleteValue] =
|
165
|
+
useState<DropdownOption | null>(
|
166
|
+
isAutocompleteFilter ? (filterValue as DropdownOption | null) : null,
|
167
|
+
);
|
162
168
|
|
163
169
|
const handleChangeDebounced = useCallback(
|
164
170
|
debounce(
|
@@ -194,6 +200,11 @@ export const MRT_FilterTextField = <TData extends MRT_RowData>({
|
|
194
200
|
textFieldProps?.onChange?.(event);
|
195
201
|
};
|
196
202
|
|
203
|
+
const handleAutocompleteChange = (newValue: DropdownOption) => {
|
204
|
+
setAutocompleteValue(newValue);
|
205
|
+
handleChange(getValueAndLabel(newValue).value);
|
206
|
+
};
|
207
|
+
|
197
208
|
const handleClear = () => {
|
198
209
|
if (isMultiSelectFilter) {
|
199
210
|
setFilterValue([]);
|
@@ -437,9 +448,7 @@ export const MRT_FilterTextField = <TData extends MRT_RowData>({
|
|
437
448
|
<Autocomplete
|
438
449
|
freeSolo
|
439
450
|
getOptionLabel={(option) => getValueAndLabel(option).label}
|
440
|
-
onChange={(_e, newValue) =>
|
441
|
-
handleChange(getValueAndLabel(newValue).value)
|
442
|
-
}
|
451
|
+
onChange={(_e, newValue) => handleAutocompleteChange(newValue)}
|
443
452
|
options={
|
444
453
|
dropdownOptions?.map((option) => getValueAndLabel(option)) ?? []
|
445
454
|
}
|
@@ -461,7 +470,7 @@ export const MRT_FilterTextField = <TData extends MRT_RowData>({
|
|
461
470
|
onClick={(e: MouseEvent<HTMLInputElement>) => e.stopPropagation()}
|
462
471
|
/>
|
463
472
|
)}
|
464
|
-
value={
|
473
|
+
value={autocompleteValue}
|
465
474
|
/>
|
466
475
|
) : (
|
467
476
|
<TextField
|
@@ -16,14 +16,15 @@ import { type MRT_RowData, type MRT_TableInstance } from '../../types';
|
|
16
16
|
import { parseFromValuesOrFunc } from '../../utils/utils';
|
17
17
|
import { MRT_FilterOptionMenu } from '../menus/MRT_FilterOptionMenu';
|
18
18
|
|
19
|
-
interface
|
19
|
+
export interface MRT_GlobalFilterTextFieldProps<TData extends MRT_RowData>
|
20
|
+
extends TextFieldProps<'standard'> {
|
20
21
|
table: MRT_TableInstance<TData>;
|
21
22
|
}
|
22
23
|
|
23
24
|
export const MRT_GlobalFilterTextField = <TData extends MRT_RowData>({
|
24
25
|
table,
|
25
26
|
...rest
|
26
|
-
}:
|
27
|
+
}: MRT_GlobalFilterTextFieldProps<TData>) => {
|
27
28
|
const {
|
28
29
|
getState,
|
29
30
|
options: {
|
@@ -8,11 +8,15 @@ import {
|
|
8
8
|
type MRT_RowData,
|
9
9
|
type MRT_TableInstance,
|
10
10
|
} from '../../types';
|
11
|
-
import {
|
11
|
+
import {
|
12
|
+
getIsRowSelected,
|
13
|
+
getMRT_RowSelectionHandler,
|
14
|
+
} from '../../utils/row.utils';
|
12
15
|
import { getCommonTooltipProps } from '../../utils/style.utils';
|
13
16
|
import { parseFromValuesOrFunc } from '../../utils/utils';
|
14
17
|
|
15
|
-
interface
|
18
|
+
export interface MRT_SelectCheckboxProps<TData extends MRT_RowData>
|
19
|
+
extends CheckboxProps {
|
16
20
|
row?: MRT_Row<TData>;
|
17
21
|
staticRowIndex?: number;
|
18
22
|
table: MRT_TableInstance<TData>;
|
@@ -23,7 +27,7 @@ export const MRT_SelectCheckbox = <TData extends MRT_RowData>({
|
|
23
27
|
staticRowIndex,
|
24
28
|
table,
|
25
29
|
...rest
|
26
|
-
}:
|
30
|
+
}: MRT_SelectCheckboxProps<TData>) => {
|
27
31
|
const {
|
28
32
|
getState,
|
29
33
|
options: {
|
@@ -35,22 +39,12 @@ export const MRT_SelectCheckbox = <TData extends MRT_RowData>({
|
|
35
39
|
rowPinningDisplayMode,
|
36
40
|
selectAllMode,
|
37
41
|
},
|
42
|
+
refs: { lastSelectedRowId },
|
38
43
|
} = table;
|
39
44
|
const { density, isLoading } = getState();
|
40
45
|
|
41
46
|
const selectAll = !row;
|
42
47
|
|
43
|
-
const checkboxProps = {
|
44
|
-
...(!row
|
45
|
-
? parseFromValuesOrFunc(muiSelectAllCheckboxProps, { table })
|
46
|
-
: parseFromValuesOrFunc(muiSelectCheckboxProps, {
|
47
|
-
row,
|
48
|
-
staticRowIndex,
|
49
|
-
table,
|
50
|
-
})),
|
51
|
-
...rest,
|
52
|
-
};
|
53
|
-
|
54
48
|
const isStickySelection =
|
55
49
|
enableRowPinning && rowPinningDisplayMode?.includes('select');
|
56
50
|
|
@@ -60,26 +54,22 @@ export const MRT_SelectCheckbox = <TData extends MRT_RowData>({
|
|
60
54
|
: table.getIsAllRowsSelected()
|
61
55
|
: undefined;
|
62
56
|
|
63
|
-
const
|
64
|
-
|
65
|
-
|
66
|
-
) => {
|
67
|
-
if (row.getIsAllSubRowsSelected() && row.getCanSelectSubRows()) {
|
68
|
-
row.subRows?.forEach((r) => r.toggleSelected(false));
|
69
|
-
}
|
70
|
-
row.getToggleSelectedHandler()(event);
|
57
|
+
const isChecked = selectAll
|
58
|
+
? allRowsSelected
|
59
|
+
: getIsRowSelected({ row, table });
|
71
60
|
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
}
|
61
|
+
const checkboxProps = {
|
62
|
+
...(selectAll
|
63
|
+
? parseFromValuesOrFunc(muiSelectAllCheckboxProps, { table })
|
64
|
+
: parseFromValuesOrFunc(muiSelectCheckboxProps, {
|
65
|
+
row,
|
66
|
+
table,
|
67
|
+
})),
|
68
|
+
...rest,
|
81
69
|
};
|
82
70
|
|
71
|
+
const onSelectionChange = getMRT_RowSelectionHandler();
|
72
|
+
|
83
73
|
const onSelectAllChange = (event: ChangeEvent<HTMLInputElement>) => {
|
84
74
|
selectAllMode === 'all'
|
85
75
|
? table.getToggleAllRowsSelectedHandler()(event)
|
@@ -87,13 +77,14 @@ export const MRT_SelectCheckbox = <TData extends MRT_RowData>({
|
|
87
77
|
if (isStickySelection) {
|
88
78
|
table.setRowPinning({ bottom: [], top: [] });
|
89
79
|
}
|
80
|
+
lastSelectedRowId.current = null;
|
90
81
|
};
|
91
82
|
|
92
83
|
const commonProps = {
|
93
84
|
'aria-label': selectAll
|
94
85
|
? localization.toggleSelectAll
|
95
86
|
: localization.toggleSelectRow,
|
96
|
-
checked:
|
87
|
+
checked: isChecked,
|
97
88
|
disabled:
|
98
89
|
isLoading || (row && !row.getCanSelect()) || row?.id === 'mrt-row-create',
|
99
90
|
inputProps: {
|
@@ -103,7 +94,9 @@ export const MRT_SelectCheckbox = <TData extends MRT_RowData>({
|
|
103
94
|
},
|
104
95
|
onChange: (event) => {
|
105
96
|
event.stopPropagation();
|
106
|
-
row
|
97
|
+
row
|
98
|
+
? onSelectionChange({ event, row, staticRowIndex, table })
|
99
|
+
: onSelectAllChange(event);
|
107
100
|
},
|
108
101
|
size: (density === 'compact' ? 'small' : 'medium') as 'medium' | 'small',
|
109
102
|
...checkboxProps,
|
@@ -136,8 +129,8 @@ export const MRT_SelectCheckbox = <TData extends MRT_RowData>({
|
|
136
129
|
) : (
|
137
130
|
<Checkbox
|
138
131
|
indeterminate={
|
139
|
-
selectAll
|
140
|
-
? table.getIsSomeRowsSelected()
|
132
|
+
!isChecked && selectAll
|
133
|
+
? table.getIsSomeRowsSelected()
|
141
134
|
: row?.getIsSomeSelected() && row.getCanSelectSubRows()
|
142
135
|
}
|
143
136
|
{...commonProps}
|
@@ -5,7 +5,8 @@ import ListItemIcon from '@mui/material/ListItemIcon';
|
|
5
5
|
import MenuItem, { type MenuItemProps } from '@mui/material/MenuItem';
|
6
6
|
import { type MRT_RowData, type MRT_TableInstance } from '../../types';
|
7
7
|
|
8
|
-
interface
|
8
|
+
export interface MRT_ActionMenuItemProps<TData extends MRT_RowData>
|
9
|
+
extends MenuItemProps {
|
9
10
|
icon: ReactNode;
|
10
11
|
label: string;
|
11
12
|
onOpenSubMenu?: MenuItemProps['onClick'] | MenuItemProps['onMouseEnter'];
|
@@ -18,7 +19,7 @@ export const MRT_ActionMenuItem = <TData extends MRT_RowData>({
|
|
18
19
|
onOpenSubMenu,
|
19
20
|
table,
|
20
21
|
...rest
|
21
|
-
}:
|
22
|
+
}: MRT_ActionMenuItemProps<TData>) => {
|
22
23
|
const {
|
23
24
|
options: {
|
24
25
|
icons: { ArrowRightIcon },
|
@@ -6,14 +6,15 @@ import { openEditingCell } from '../../utils/cell.utils';
|
|
6
6
|
import { getMRTTheme } from '../../utils/style.utils';
|
7
7
|
import { parseFromValuesOrFunc } from '../../utils/utils';
|
8
8
|
|
9
|
-
interface
|
9
|
+
export interface MRT_CellActionMenuProps<TData extends MRT_RowData>
|
10
|
+
extends Partial<MenuProps> {
|
10
11
|
table: MRT_TableInstance<TData>;
|
11
12
|
}
|
12
13
|
|
13
14
|
export const MRT_CellActionMenu = <TData extends MRT_RowData>({
|
14
15
|
table,
|
15
16
|
...rest
|
16
|
-
}:
|
17
|
+
}: MRT_CellActionMenuProps<TData>) => {
|
17
18
|
const {
|
18
19
|
getState,
|
19
20
|
options: {
|
@@ -46,8 +47,8 @@ export const MRT_CellActionMenu = <TData extends MRT_RowData>({
|
|
46
47
|
parseFromValuesOrFunc(columnDef.enableClickToCopy, cell) ===
|
47
48
|
'context-menu') && (
|
48
49
|
<MRT_ActionMenuItem
|
49
|
-
key={'mrt-copy'}
|
50
50
|
icon={<ContentCopy />}
|
51
|
+
key={'mrt-copy'}
|
51
52
|
label={localization.copy}
|
52
53
|
onClick={(event) => {
|
53
54
|
event.stopPropagation();
|
@@ -59,8 +60,8 @@ export const MRT_CellActionMenu = <TData extends MRT_RowData>({
|
|
59
60
|
),
|
60
61
|
parseFromValuesOrFunc(enableEditing, row) && editDisplayMode === 'cell' && (
|
61
62
|
<MRT_ActionMenuItem
|
62
|
-
key={'mrt-edit'}
|
63
63
|
icon={<EditIcon />}
|
64
|
+
key={'mrt-edit'}
|
64
65
|
label={localization.edit}
|
65
66
|
onClick={() => {
|
66
67
|
openEditingCell({ cell, table });
|
@@ -1,8 +1,8 @@
|
|
1
1
|
import { type MouseEvent, useState } from 'react';
|
2
2
|
import Menu, { type MenuProps } from '@mui/material/Menu';
|
3
3
|
import { useTheme } from '@mui/material/styles';
|
4
|
-
import { MRT_FilterOptionMenu } from './MRT_FilterOptionMenu';
|
5
4
|
import { MRT_ActionMenuItem } from './MRT_ActionMenuItem';
|
5
|
+
import { MRT_FilterOptionMenu } from './MRT_FilterOptionMenu';
|
6
6
|
import {
|
7
7
|
type MRT_Header,
|
8
8
|
type MRT_RowData,
|
@@ -10,7 +10,8 @@ import {
|
|
10
10
|
} from '../../types';
|
11
11
|
import { getMRTTheme } from '../../utils/style.utils';
|
12
12
|
|
13
|
-
interface
|
13
|
+
export interface MRT_ColumnActionMenuProps<TData extends MRT_RowData>
|
14
|
+
extends Partial<MenuProps> {
|
14
15
|
anchorEl: HTMLElement | null;
|
15
16
|
header: MRT_Header<TData>;
|
16
17
|
setAnchorEl: (anchorEl: HTMLElement | null) => void;
|
@@ -23,10 +24,10 @@ export const MRT_ColumnActionMenu = <TData extends MRT_RowData>({
|
|
23
24
|
setAnchorEl,
|
24
25
|
table,
|
25
26
|
...rest
|
26
|
-
}:
|
27
|
+
}: MRT_ColumnActionMenuProps<TData>) => {
|
27
28
|
const {
|
28
|
-
getState,
|
29
29
|
getAllLeafColumns,
|
30
|
+
getState,
|
30
31
|
options: {
|
31
32
|
columnFilterDisplayMode,
|
32
33
|
columnFilterModeOptions,
|
@@ -106,7 +106,8 @@ const emptyModes = ['empty', 'notEmpty'];
|
|
106
106
|
const arrModes = ['arrIncludesSome', 'arrIncludesAll', 'arrIncludes'];
|
107
107
|
const rangeVariants = ['range-slider', 'date-range', 'datetime-range', 'range'];
|
108
108
|
|
109
|
-
interface
|
109
|
+
export interface MRT_FilterOptionMenuProps<TData extends MRT_RowData>
|
110
|
+
extends Partial<MenuProps> {
|
110
111
|
anchorEl: HTMLElement | null;
|
111
112
|
header?: MRT_Header<TData>;
|
112
113
|
onSelect?: () => void;
|
@@ -123,7 +124,7 @@ export const MRT_FilterOptionMenu = <TData extends MRT_RowData>({
|
|
123
124
|
setFilterValue,
|
124
125
|
table,
|
125
126
|
...rest
|
126
|
-
}:
|
127
|
+
}: MRT_FilterOptionMenuProps<TData>) => {
|
127
128
|
const {
|
128
129
|
getState,
|
129
130
|
options: {
|