material-react-table 1.6.6 → 1.7.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/cjs/index.js +28 -16
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/column.utils.d.ts +2 -3
- package/dist/esm/material-react-table.esm.js +28 -16
- package/dist/esm/material-react-table.esm.js.map +1 -1
- package/dist/esm/types/column.utils.d.ts +2 -3
- package/locales/zh-Hant.esm.js +3 -3
- package/locales/zh-Hant.esm.js.map +1 -1
- package/locales/zh-Hant.js +3 -3
- package/locales/zh-Hant.js.map +1 -1
- package/package.json +1 -1
- package/src/MaterialReactTable.tsx +1 -1
- package/src/_locales/zh-Hant.ts +3 -3
- package/src/column.utils.ts +10 -10
- package/src/head/MRT_TableHeadCell.tsx +0 -1
- package/src/head/MRT_TableHeadCellResizeHandle.tsx +8 -1
- package/src/menus/MRT_ColumnActionMenu.tsx +2 -0
- package/src/table/MRT_Table.tsx +21 -2
@@ -4,7 +4,7 @@ import { MRT_FilterFns } from './filterFns';
|
|
4
4
|
import { MRT_SortingFns } from './sortingFns';
|
5
5
|
import type { TableCellProps } from '@mui/material/TableCell';
|
6
6
|
import type { Theme } from '@mui/material/styles';
|
7
|
-
import type { MaterialReactTableProps, MRT_Column, MRT_ColumnDef, MRT_DefinedColumnDef, MRT_DisplayColumnIds, MRT_FilterOption,
|
7
|
+
import type { MaterialReactTableProps, MRT_Column, MRT_ColumnDef, MRT_DefinedColumnDef, MRT_DisplayColumnIds, MRT_FilterOption, MRT_TableInstance } from '.';
|
8
8
|
export declare const getColumnId: <TData extends Record<string, any> = {}>(columnDef: MRT_ColumnDef<TData>) => string;
|
9
9
|
export declare const getAllLeafColumnDefs: <TData extends Record<string, any> = {}>(columns: MRT_ColumnDef<TData>[]) => MRT_ColumnDef<TData>[];
|
10
10
|
export declare const prepareColumns: <TData extends Record<string, any> = {}>({ aggregationFns, columnDefs, columnFilterFns, defaultDisplayColumn, filterFns, sortingFns, }: {
|
@@ -111,9 +111,8 @@ export declare const getIsLastColumn: (column: MRT_Column, table: MRT_TableInsta
|
|
111
111
|
export declare const getIsLastLeftPinnedColumn: (table: MRT_TableInstance, column: MRT_Column) => boolean;
|
112
112
|
export declare const getIsFirstRightPinnedColumn: (column: MRT_Column) => boolean;
|
113
113
|
export declare const getTotalRight: (table: MRT_TableInstance, column: MRT_Column) => number;
|
114
|
-
export declare const getCommonCellStyles: ({ column,
|
114
|
+
export declare const getCommonCellStyles: ({ column, table, tableCellProps, theme, }: {
|
115
115
|
column: MRT_Column;
|
116
|
-
header?: MRT_Header<{}> | undefined;
|
117
116
|
table: MRT_TableInstance;
|
118
117
|
tableCellProps: TableCellProps;
|
119
118
|
theme: Theme;
|
@@ -234,15 +234,17 @@ const getIsFirstRightPinnedColumn = (column) => {
|
|
234
234
|
const getTotalRight = (table, column) => {
|
235
235
|
return ((table.getRightLeafHeaders().length - 1 - column.getPinnedIndex()) * 200);
|
236
236
|
};
|
237
|
-
const getCommonCellStyles = ({ column,
|
238
|
-
var _a, _b, _c, _d, _e, _f, _g
|
237
|
+
const getCommonCellStyles = ({ column, table, tableCellProps, theme, }) => {
|
238
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
239
239
|
return (Object.assign(Object.assign({ backgroundColor: column.getIsPinned() && column.columnDef.columnDefType !== 'group'
|
240
240
|
? alpha(lighten(theme.palette.background.default, 0.04), 0.97)
|
241
241
|
: 'inherit', backgroundImage: 'inherit', boxShadow: getIsLastLeftPinnedColumn(table, column)
|
242
242
|
? `-4px 0 8px -6px ${alpha(theme.palette.common.black, 0.2)} inset`
|
243
243
|
: getIsFirstRightPinnedColumn(column)
|
244
244
|
? `4px 0 8px -6px ${alpha(theme.palette.common.black, 0.2)} inset`
|
245
|
-
: undefined, display: table.options.layoutMode === 'grid' ? 'flex' : 'table-cell',
|
245
|
+
: undefined, display: table.options.layoutMode === 'grid' ? 'flex' : 'table-cell', flex: table.options.layoutMode === 'grid'
|
246
|
+
? `var(--col-${column.id.replaceAll('.', '_')}-size) 0 auto`
|
247
|
+
: undefined, left: column.getIsPinned() === 'left'
|
246
248
|
? `${column.getStart('left')}px`
|
247
249
|
: undefined, ml: table.options.enableColumnVirtualization &&
|
248
250
|
column.getIsPinned() === 'left' &&
|
@@ -263,11 +265,9 @@ const getCommonCellStyles = ({ column, header, table, tableCellProps, theme, })
|
|
263
265
|
? `${getTotalRight(table, column)}px`
|
264
266
|
: undefined, transition: table.options.enableColumnVirtualization || column.getIsResizing()
|
265
267
|
? 'none'
|
266
|
-
: `
|
268
|
+
: `padding 150ms ease-in-out` }, ((tableCellProps === null || tableCellProps === void 0 ? void 0 : tableCellProps.sx) instanceof Function
|
267
269
|
? tableCellProps.sx(theme)
|
268
|
-
: tableCellProps === null || tableCellProps === void 0 ? void 0 : tableCellProps.sx)), {
|
269
|
-
? `${column.getSize()} 0 auto`
|
270
|
-
: undefined, minWidth: `max(${column.getSize()}px, ${(_g = column.columnDef.minSize) !== null && _g !== void 0 ? _g : 30}px)`, width: (_h = header === null || header === void 0 ? void 0 : header.getSize()) !== null && _h !== void 0 ? _h : column.getSize() }));
|
270
|
+
: tableCellProps === null || tableCellProps === void 0 ? void 0 : tableCellProps.sx)), { minWidth: `max(calc(var(--col-${column.id.replaceAll('.', '_')}-size) * 1px), ${(_g = column.columnDef.minSize) !== null && _g !== void 0 ? _g : 30}px)`, width: `calc(var(--col-${column.id.replaceAll('.', '_')}-size) * 1px)` }));
|
271
271
|
};
|
272
272
|
const MRT_DefaultColumn = {
|
273
273
|
filterVariant: 'text',
|
@@ -798,7 +798,7 @@ const commonListItemStyles = {
|
|
798
798
|
};
|
799
799
|
const MRT_ColumnActionMenu = ({ anchorEl, header, setAnchorEl, table, }) => {
|
800
800
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
801
|
-
const { getState, toggleAllColumnsVisible, setColumnOrder, options: { columnFilterModeOptions, enableColumnFilterModes, enableColumnFilters, enableColumnResizing, enableGrouping, enableHiding, enablePinning, enableSorting, icons: { ArrowRightIcon, ClearAllIcon, ViewColumnIcon, DynamicFeedIcon, FilterListIcon, FilterListOffIcon, PushPinIcon, SortIcon, RestartAltIcon, VisibilityOffIcon, }, localization, renderColumnActionsMenuItems, }, refs: { filterInputRefs }, setShowFilters, } = table;
|
801
|
+
const { getState, toggleAllColumnsVisible, setColumnOrder, options: { columnFilterModeOptions, enableColumnFilterModes, enableColumnFilters, enableColumnResizing, enableGrouping, enableHiding, enablePinning, enableSorting, icons: { ArrowRightIcon, ClearAllIcon, ViewColumnIcon, DynamicFeedIcon, FilterListIcon, FilterListOffIcon, PushPinIcon, SortIcon, RestartAltIcon, VisibilityOffIcon, }, localization, renderColumnActionsMenuItems, }, refs: { filterInputRefs }, setColumnSizingInfo, setShowFilters, } = table;
|
802
802
|
const { column } = header;
|
803
803
|
const { columnDef } = column;
|
804
804
|
const { columnSizing, columnVisibility, density } = getState();
|
@@ -817,6 +817,7 @@ const MRT_ColumnActionMenu = ({ anchorEl, header, setAnchorEl, table, }) => {
|
|
817
817
|
setAnchorEl(null);
|
818
818
|
};
|
819
819
|
const handleResetColumnSize = () => {
|
820
|
+
setColumnSizingInfo((old) => (Object.assign(Object.assign({}, old), { isResizingColumn: false })));
|
820
821
|
column.resetSize();
|
821
822
|
setAnchorEl(null);
|
822
823
|
};
|
@@ -1812,12 +1813,15 @@ const MRT_TableHeadCellGrabHandle = ({ column, table, tableHeadCellRef, }) => {
|
|
1812
1813
|
|
1813
1814
|
const MRT_TableHeadCellResizeHandle = ({ header, table }) => {
|
1814
1815
|
var _a;
|
1815
|
-
const { getState, options: { columnResizeMode }, } = table;
|
1816
|
+
const { getState, options: { columnResizeMode }, setColumnSizingInfo, } = table;
|
1816
1817
|
const { density, showColumnFilters } = getState();
|
1817
1818
|
const { column } = header;
|
1818
1819
|
const { columnDef } = column;
|
1819
1820
|
const { columnDefType } = columnDef;
|
1820
|
-
return (React.createElement(Box, { onDoubleClick: () =>
|
1821
|
+
return (React.createElement(Box, { onDoubleClick: () => {
|
1822
|
+
setColumnSizingInfo((old) => (Object.assign(Object.assign({}, old), { isResizingColumn: false })));
|
1823
|
+
column.resetSize();
|
1824
|
+
}, onMouseDown: header.getResizeHandler(), onTouchStart: header.getResizeHandler(), sx: (theme) => ({
|
1821
1825
|
cursor: 'col-resize',
|
1822
1826
|
mr: density === 'compact' ? '-0.5rem' : '-1rem',
|
1823
1827
|
position: 'absolute',
|
@@ -1953,7 +1957,6 @@ const MRT_TableHeadCell = ({ header, table }) => {
|
|
1953
1957
|
? 2
|
1954
1958
|
: 1 }, getCommonCellStyles({
|
1955
1959
|
column,
|
1956
|
-
header,
|
1957
1960
|
table,
|
1958
1961
|
tableCellProps,
|
1959
1962
|
theme,
|
@@ -2616,14 +2619,23 @@ const MRT_TableFooter = ({ table, virtualColumns, virtualPaddingLeft, virtualPad
|
|
2616
2619
|
|
2617
2620
|
const MRT_Table = ({ table }) => {
|
2618
2621
|
var _a, _b, _c, _d;
|
2619
|
-
const { getState, options: { columnVirtualizerInstanceRef, columnVirtualizerProps, enableColumnResizing, enableColumnVirtualization, enablePinning, enableStickyHeader, enableTableFooter, enableTableHead, layoutMode, memoMode, muiTableProps, }, refs: { tableContainerRef }, } = table;
|
2620
|
-
const {
|
2622
|
+
const { getFlatHeaders, getState, options: { columns, columnVirtualizerInstanceRef, columnVirtualizerProps, enableColumnResizing, enableColumnVirtualization, enablePinning, enableStickyHeader, enableTableFooter, enableTableHead, layoutMode, memoMode, muiTableProps, }, refs: { tableContainerRef }, } = table;
|
2623
|
+
const { columnPinning, columnSizing, columnSizingInfo, columnVisibility, isFullScreen, } = getState();
|
2621
2624
|
const tableProps = muiTableProps instanceof Function
|
2622
2625
|
? muiTableProps({ table })
|
2623
2626
|
: muiTableProps;
|
2624
2627
|
const vProps = columnVirtualizerProps instanceof Function
|
2625
2628
|
? columnVirtualizerProps({ table })
|
2626
2629
|
: columnVirtualizerProps;
|
2630
|
+
const columnSizeVars = useMemo(() => {
|
2631
|
+
const headers = getFlatHeaders();
|
2632
|
+
const colSizes = {};
|
2633
|
+
for (let i = 0; i < headers.length; i++) {
|
2634
|
+
const h = headers[i];
|
2635
|
+
colSizes[`--col-${h.column.id}-size`.replaceAll('.', '_')] = h.getSize();
|
2636
|
+
}
|
2637
|
+
return colSizes;
|
2638
|
+
}, [columns, columnSizing, columnSizingInfo]);
|
2627
2639
|
//get first 16 column widths and average them
|
2628
2640
|
const averageColumnWidth = useMemo(() => {
|
2629
2641
|
var _a, _b, _c, _d;
|
@@ -2673,9 +2685,9 @@ const MRT_Table = ({ table }) => {
|
|
2673
2685
|
};
|
2674
2686
|
return (React.createElement(Table, Object.assign({ stickyHeader: enableStickyHeader || isFullScreen }, tableProps, { sx: (theme) => (Object.assign({ borderCollapse: 'separate', display: layoutMode === 'grid' ? 'grid' : 'table', tableLayout: layoutMode !== 'grid' && enableColumnResizing ? 'fixed' : undefined }, ((tableProps === null || tableProps === void 0 ? void 0 : tableProps.sx) instanceof Function
|
2675
2687
|
? tableProps.sx(theme)
|
2676
|
-
: tableProps === null || tableProps === void 0 ? void 0 : tableProps.sx))) }),
|
2688
|
+
: tableProps === null || tableProps === void 0 ? void 0 : tableProps.sx))), style: Object.assign(Object.assign({}, columnSizeVars), tableProps === null || tableProps === void 0 ? void 0 : tableProps.style) }),
|
2677
2689
|
enableTableHead && React.createElement(MRT_TableHead, Object.assign({}, props)),
|
2678
|
-
memoMode === 'table-body' ? (React.createElement(Memo_MRT_TableBody, Object.assign({ columnVirtualizer: columnVirtualizer }, props))) : (React.createElement(MRT_TableBody, Object.assign({ columnVirtualizer: columnVirtualizer }, props))),
|
2690
|
+
memoMode === 'table-body' || columnSizingInfo.isResizingColumn ? (React.createElement(Memo_MRT_TableBody, Object.assign({ columnVirtualizer: columnVirtualizer }, props))) : (React.createElement(MRT_TableBody, Object.assign({ columnVirtualizer: columnVirtualizer }, props))),
|
2679
2691
|
enableTableFooter && React.createElement(MRT_TableFooter, Object.assign({}, props))));
|
2680
2692
|
};
|
2681
2693
|
|
@@ -3023,7 +3035,7 @@ const MRT_Localization_EN = {
|
|
3023
3035
|
|
3024
3036
|
const MaterialReactTable = (_a) => {
|
3025
3037
|
var _b;
|
3026
|
-
var { aggregationFns, autoResetExpanded = false, columnResizeMode = '
|
3038
|
+
var { aggregationFns, autoResetExpanded = false, columnResizeMode = 'onChange', defaultColumn, defaultDisplayColumn, editingMode = 'modal', enableBottomToolbar = true, enableColumnActions = true, enableColumnFilters = true, enableColumnOrdering = false, enableColumnResizing = false, enableDensityToggle = true, enableExpandAll = true, enableFilterMatchHighlighting = true, enableFilters = true, enableFullScreenToggle = true, enableGlobalFilter = true, enableGlobalFilterRankedResults = true, enableGrouping = false, enableHiding = true, enableMultiRowSelection = true, enableMultiSort = true, enablePagination = true, enablePinning = false, enableRowSelection = false, enableSelectAll = true, enableSorting = true, enableStickyHeader = false, enableTableFooter = true, enableTableHead = true, enableToolbarInternalActions = true, enableTopToolbar = true, filterFns, icons, layoutMode = 'semantic', localization, manualFiltering, manualGrouping, manualPagination, manualSorting, positionActionsColumn = 'first', positionExpandColumn = 'first', positionGlobalFilter = 'right', positionPagination = 'bottom', positionToolbarAlertBanner = 'top', positionToolbarDropZone = 'top', rowNumberMode = 'original', selectAllMode = 'page', sortingFns } = _a, rest = __rest(_a, ["aggregationFns", "autoResetExpanded", "columnResizeMode", "defaultColumn", "defaultDisplayColumn", "editingMode", "enableBottomToolbar", "enableColumnActions", "enableColumnFilters", "enableColumnOrdering", "enableColumnResizing", "enableDensityToggle", "enableExpandAll", "enableFilterMatchHighlighting", "enableFilters", "enableFullScreenToggle", "enableGlobalFilter", "enableGlobalFilterRankedResults", "enableGrouping", "enableHiding", "enableMultiRowSelection", "enableMultiSort", "enablePagination", "enablePinning", "enableRowSelection", "enableSelectAll", "enableSorting", "enableStickyHeader", "enableTableFooter", "enableTableHead", "enableToolbarInternalActions", "enableTopToolbar", "filterFns", "icons", "layoutMode", "localization", "manualFiltering", "manualGrouping", "manualPagination", "manualSorting", "positionActionsColumn", "positionExpandColumn", "positionGlobalFilter", "positionPagination", "positionToolbarAlertBanner", "positionToolbarDropZone", "rowNumberMode", "selectAllMode", "sortingFns"]);
|
3027
3039
|
const _icons = useMemo(() => (Object.assign(Object.assign({}, MRT_Default_Icons), icons)), [icons]);
|
3028
3040
|
const _localization = useMemo(() => (Object.assign(Object.assign({}, MRT_Localization_EN), localization)), [localization]);
|
3029
3041
|
const _aggregationFns = useMemo(() => (Object.assign(Object.assign({}, MRT_AggregationFns), aggregationFns)), []);
|