material-react-table 2.10.0 → 2.11.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 +3 -2
- package/dist/index.d.ts +144 -125
- package/dist/index.esm.js +201 -152
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +201 -149
- 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 +26 -33
- 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 +179 -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,
|
|
@@ -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: {
|
|
@@ -10,7 +10,8 @@ import {
|
|
|
10
10
|
import { getMRTTheme } from '../../utils/style.utils';
|
|
11
11
|
import { parseFromValuesOrFunc } from '../../utils/utils';
|
|
12
12
|
|
|
13
|
-
interface
|
|
13
|
+
export interface MRT_RowActionMenuProps<TData extends MRT_RowData>
|
|
14
|
+
extends Partial<MenuProps> {
|
|
14
15
|
anchorEl: HTMLElement | null;
|
|
15
16
|
handleEdit: (event: MouseEvent) => void;
|
|
16
17
|
row: MRT_Row<TData>;
|
|
@@ -27,7 +28,7 @@ export const MRT_RowActionMenu = <TData extends MRT_RowData>({
|
|
|
27
28
|
staticRowIndex,
|
|
28
29
|
table,
|
|
29
30
|
...rest
|
|
30
|
-
}:
|
|
31
|
+
}: MRT_RowActionMenuProps<TData>) => {
|
|
31
32
|
const {
|
|
32
33
|
getState,
|
|
33
34
|
options: {
|