material-react-table 1.5.0-beta.0 → 1.5.0-beta.2
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 +53 -39
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/MaterialReactTable.d.ts +1 -1
- package/dist/esm/material-react-table.esm.js +53 -39
- package/dist/esm/material-react-table.esm.js.map +1 -1
- package/dist/esm/types/MaterialReactTable.d.ts +1 -1
- package/dist/index.d.ts +1 -1
- package/package.json +1 -1
- package/src/MaterialReactTable.tsx +18 -3
- package/src/column.utils.ts +25 -2
- package/src/footer/MRT_TableFooterCell.tsx +1 -4
- package/src/footer/MRT_TableFooterRow.tsx +1 -5
- package/src/head/MRT_TableHeadCell.tsx +1 -4
- package/src/head/MRT_TableHeadRow.tsx +1 -5
- package/src/table/MRT_Table.tsx +22 -27
- package/src/table/MRT_TableRoot.tsx +1 -1
@@ -709,5 +709,5 @@ export type MaterialReactTableProps<TData extends Record<string, any> = {}> = Om
|
|
709
709
|
*/
|
710
710
|
virtualizerProps?: any;
|
711
711
|
};
|
712
|
-
declare const MaterialReactTable: <TData extends Record<string, any> = {}>({ aggregationFns, autoResetExpanded, columnResizeMode, defaultColumn, defaultDisplayColumn, editingMode, enableBottomToolbar, enableColumnActions, enableColumnFilters, enableColumnOrdering, enableColumnResizing, enableDensityToggle, enableExpandAll, enableFilters, enableFullScreenToggle, enableGlobalFilter, enableGlobalFilterRankedResults, enableGrouping, enableHiding, enableMultiRowSelection, enableMultiSort, enablePagination, enablePinning, enableRowSelection, enableSelectAll, enableSorting, enableStickyHeader, enableTableFooter, enableTableHead, enableToolbarInternalActions, enableTopToolbar, filterFns, icons, layoutMode, localization, positionActionsColumn, positionExpandColumn, positionGlobalFilter, positionPagination, positionToolbarAlertBanner, positionToolbarDropZone, rowNumberMode, selectAllMode, sortingFns, ...rest }: MaterialReactTableProps<TData>) => JSX.Element;
|
712
|
+
declare const MaterialReactTable: <TData extends Record<string, any> = {}>({ aggregationFns, autoResetExpanded, columnResizeMode, defaultColumn, defaultDisplayColumn, editingMode, enableBottomToolbar, enableColumnActions, enableColumnFilters, enableColumnOrdering, enableColumnResizing, enableDensityToggle, enableExpandAll, 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, ...rest }: MaterialReactTableProps<TData>) => JSX.Element;
|
713
713
|
export default MaterialReactTable;
|
@@ -226,10 +226,10 @@ const getIsFirstRightPinnedColumn = (column) => {
|
|
226
226
|
return column.getIsPinned() === 'right' && column.getPinnedIndex() === 0;
|
227
227
|
};
|
228
228
|
const getTotalRight = (table, column) => {
|
229
|
-
return ((table.getRightLeafHeaders().length - 1 - column.getPinnedIndex()) *
|
229
|
+
return ((table.getRightLeafHeaders().length - 1 - column.getPinnedIndex()) * 200);
|
230
230
|
};
|
231
231
|
const getCommonCellStyles = ({ column, header, table, tableCellProps, theme, }) => {
|
232
|
-
var _a, _b, _c, _d;
|
232
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
233
233
|
return (Object.assign(Object.assign({ backgroundColor: column.getIsPinned() && column.columnDef.columnDefType !== 'group'
|
234
234
|
? alpha(lighten(theme.palette.background.default, 0.04), 0.97)
|
235
235
|
: 'inherit', backgroundImage: 'inherit', boxShadow: getIsLastLeftPinnedColumn(table, column)
|
@@ -238,18 +238,32 @@ const getCommonCellStyles = ({ column, header, table, tableCellProps, theme, })
|
|
238
238
|
? `4px 0 8px -6px ${alpha(theme.palette.common.black, 0.2)} inset`
|
239
239
|
: undefined, display: table.options.layoutMode === 'grid' ? 'flex' : 'table-cell', left: column.getIsPinned() === 'left'
|
240
240
|
? `${column.getStart('left')}px`
|
241
|
-
: undefined,
|
242
|
-
|
241
|
+
: undefined, ml: table.options.enableColumnVirtualization &&
|
242
|
+
column.getIsPinned() === 'left' &&
|
243
|
+
column.getPinnedIndex() === 0
|
244
|
+
? `-${column.getSize() *
|
245
|
+
((_b = (_a = table.getState().columnPinning.left) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 1) *
|
246
|
+
1.2}px`
|
247
|
+
: undefined, mr: table.options.enableColumnVirtualization &&
|
248
|
+
column.getIsPinned() === 'right' &&
|
249
|
+
column.getPinnedIndex() === table.getVisibleLeafColumns().length - 1
|
250
|
+
? `-${column.getSize() *
|
251
|
+
((_d = (_c = table.getState().columnPinning.right) === null || _c === void 0 ? void 0 : _c.length) !== null && _d !== void 0 ? _d : 1) *
|
252
|
+
1.2}px`
|
253
|
+
: undefined, opacity: ((_e = table.getState().draggingColumn) === null || _e === void 0 ? void 0 : _e.id) === column.id ||
|
254
|
+
((_f = table.getState().hoveredColumn) === null || _f === void 0 ? void 0 : _f.id) === column.id
|
243
255
|
? 0.5
|
244
256
|
: 1, position: column.getIsPinned() && column.columnDef.columnDefType !== 'group'
|
245
257
|
? 'sticky'
|
246
258
|
: undefined, right: column.getIsPinned() === 'right'
|
247
259
|
? `${getTotalRight(table, column)}px`
|
248
|
-
: undefined, transition:
|
260
|
+
: undefined, transition: table.options.enableColumnVirtualization || column.getIsResizing()
|
261
|
+
? 'none'
|
262
|
+
: `all 150ms ease-in-out` }, ((tableCellProps === null || tableCellProps === void 0 ? void 0 : tableCellProps.sx) instanceof Function
|
249
263
|
? tableCellProps.sx(theme)
|
250
264
|
: tableCellProps === null || tableCellProps === void 0 ? void 0 : tableCellProps.sx)), { flex: table.options.layoutMode === 'grid'
|
251
265
|
? `${column.getSize()} 0 auto`
|
252
|
-
: undefined, minWidth: `max(${column.getSize()}px, ${(
|
266
|
+
: 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() }));
|
253
267
|
};
|
254
268
|
const MRT_DefaultColumn = {
|
255
269
|
minSize: 40,
|
@@ -1830,7 +1844,7 @@ const MRT_TableHeadCellSortLabel = ({ header, table, tableCellProps, }) => {
|
|
1830
1844
|
}, IconComponent: ArrowDownwardIcon })));
|
1831
1845
|
};
|
1832
1846
|
|
1833
|
-
const MRT_TableHeadCell = ({ header, table
|
1847
|
+
const MRT_TableHeadCell = ({ header, table }) => {
|
1834
1848
|
var _a, _b, _c, _d;
|
1835
1849
|
const theme = useTheme();
|
1836
1850
|
const { getState, options: { enableColumnActions, enableColumnDragging, enableColumnOrdering, enableGrouping, enableMultiSort, layoutMode, muiTableHeadCellProps, }, refs: { tableHeadCellRefs }, setHoveredColumn, } = table;
|
@@ -2437,7 +2451,7 @@ const MRT_TableBody = ({ columnVirtualizer, table, virtualColumns, virtualPaddin
|
|
2437
2451
|
};
|
2438
2452
|
const Memo_MRT_TableBody = memo(MRT_TableBody, (prev, next) => prev.table.options.data === next.table.options.data);
|
2439
2453
|
|
2440
|
-
const MRT_TableFooterCell = ({ footer, table
|
2454
|
+
const MRT_TableFooterCell = ({ footer, table }) => {
|
2441
2455
|
var _a, _b, _c;
|
2442
2456
|
const { getState, options: { layoutMode, muiTableFooterCellProps }, } = table;
|
2443
2457
|
const { density } = getState();
|
@@ -2513,7 +2527,7 @@ const MRT_TableFooter = ({ table, virtualColumns, virtualPaddingLeft, virtualPad
|
|
2513
2527
|
};
|
2514
2528
|
|
2515
2529
|
const MRT_Table = ({ table }) => {
|
2516
|
-
var _a, _b;
|
2530
|
+
var _a, _b, _c, _d;
|
2517
2531
|
const { getState, options: { columnVirtualizerInstanceRef, columnVirtualizerProps, enableColumnResizing, enableColumnVirtualization, enablePinning, enableStickyHeader, enableTableFooter, enableTableHead, layoutMode, memoMode, muiTableProps, }, refs: { tableContainerRef }, } = table;
|
2518
2532
|
const { isFullScreen, columnPinning, columnVisibility } = getState();
|
2519
2533
|
const tableProps = muiTableProps instanceof Function
|
@@ -2527,26 +2541,25 @@ const MRT_Table = ({ table }) => {
|
|
2527
2541
|
var _a, _b, _c, _d;
|
2528
2542
|
const columnsWidths = (_d = (_c = (_b = (_a = table
|
2529
2543
|
.getRowModel()
|
2530
|
-
.rows[0]) === null || _a === void 0 ? void 0 : _a.getCenterVisibleCells()) === null || _b === void 0 ? void 0 : _b.slice(0, 16)) === null || _c === void 0 ? void 0 : _c.map((cell) => cell.column.getSize() * 1.
|
2544
|
+
.rows[0]) === null || _a === void 0 ? void 0 : _a.getCenterVisibleCells()) === null || _b === void 0 ? void 0 : _b.slice(0, 16)) === null || _c === void 0 ? void 0 : _c.map((cell) => cell.column.getSize() * 1.2)) !== null && _d !== void 0 ? _d : [];
|
2531
2545
|
return columnsWidths.reduce((a, b) => a + b, 0) / columnsWidths.length;
|
2532
2546
|
}, [table.getRowModel().rows, columnPinning, columnVisibility]);
|
2533
|
-
const
|
2547
|
+
const [leftPinnedIndexes, rightPinnedIndexes] = useMemo(() => enableColumnVirtualization && enablePinning
|
2534
2548
|
? [
|
2535
|
-
|
2536
|
-
|
2537
|
-
.
|
2538
|
-
.map((
|
2539
|
-
h.column.getPinnedIndex() -
|
2540
|
-
1),
|
2549
|
+
table.getLeftLeafColumns().map((c) => c.getPinnedIndex()),
|
2550
|
+
table
|
2551
|
+
.getRightLeafColumns()
|
2552
|
+
.map((c) => table.getVisibleLeafColumns().length - c.getPinnedIndex() - 1),
|
2541
2553
|
]
|
2542
|
-
: [], [columnPinning, enableColumnVirtualization, enablePinning]);
|
2554
|
+
: [[], []], [columnPinning, enableColumnVirtualization, enablePinning]);
|
2543
2555
|
const columnVirtualizer = enableColumnVirtualization
|
2544
|
-
? useVirtualizer(Object.assign({ count: table.
|
2556
|
+
? useVirtualizer(Object.assign({ count: table.getVisibleLeafColumns().length, estimateSize: () => averageColumnWidth, getScrollElement: () => tableContainerRef.current, horizontal: true, overscan: 3, rangeExtractor: useCallback((range) => [
|
2545
2557
|
...new Set([
|
2546
|
-
...
|
2558
|
+
...leftPinnedIndexes,
|
2547
2559
|
...defaultRangeExtractor(range),
|
2560
|
+
...rightPinnedIndexes,
|
2548
2561
|
]),
|
2549
|
-
]
|
2562
|
+
], [leftPinnedIndexes, rightPinnedIndexes]) }, vProps))
|
2550
2563
|
: undefined;
|
2551
2564
|
if (columnVirtualizerInstanceRef && columnVirtualizer) {
|
2552
2565
|
columnVirtualizerInstanceRef.current = columnVirtualizer;
|
@@ -2557,13 +2570,10 @@ const MRT_Table = ({ table }) => {
|
|
2557
2570
|
let virtualPaddingLeft;
|
2558
2571
|
let virtualPaddingRight;
|
2559
2572
|
if (columnVirtualizer && (virtualColumns === null || virtualColumns === void 0 ? void 0 : virtualColumns.length)) {
|
2560
|
-
virtualPaddingLeft = (virtualColumns === null ||
|
2561
|
-
|
2562
|
-
|
2563
|
-
|
2564
|
-
? columnVirtualizer.getTotalSize() -
|
2565
|
-
(((_b = virtualColumns[virtualColumns.length - 1]) === null || _b === void 0 ? void 0 : _b.end) || 0)
|
2566
|
-
: 0;
|
2573
|
+
virtualPaddingLeft = (_b = (_a = virtualColumns[leftPinnedIndexes.length]) === null || _a === void 0 ? void 0 : _a.start) !== null && _b !== void 0 ? _b : 0;
|
2574
|
+
virtualPaddingRight =
|
2575
|
+
columnVirtualizer.getTotalSize() -
|
2576
|
+
((_d = (_c = virtualColumns[virtualColumns.length - 1 - rightPinnedIndexes.length]) === null || _c === void 0 ? void 0 : _c.end) !== null && _d !== void 0 ? _d : 0);
|
2567
2577
|
}
|
2568
2578
|
const props = {
|
2569
2579
|
table,
|
@@ -2769,12 +2779,9 @@ const MRT_TableRoot = (props) => {
|
|
2769
2779
|
...Array(((_d = (_c = props.state) === null || _c === void 0 ? void 0 : _c.pagination) === null || _d === void 0 ? void 0 : _d.pageSize) ||
|
2770
2780
|
((_e = initialState === null || initialState === void 0 ? void 0 : initialState.pagination) === null || _e === void 0 ? void 0 : _e.pageSize) ||
|
2771
2781
|
10).fill(null),
|
2772
|
-
].map(() => Object.assign({}, ...getAllLeafColumnDefs(props.columns).map((col) => {
|
2773
|
-
|
2774
|
-
|
2775
|
-
[(_b = (_a = col.id) !== null && _a !== void 0 ? _a : col.accessorKey) !== null && _b !== void 0 ? _b : '']: null,
|
2776
|
-
});
|
2777
|
-
})))
|
2782
|
+
].map(() => Object.assign({}, ...getAllLeafColumnDefs(props.columns).map((col) => ({
|
2783
|
+
[getColumnId(col)]: null,
|
2784
|
+
}))))
|
2778
2785
|
: props.data;
|
2779
2786
|
}, [props.data, (_s = props.state) === null || _s === void 0 ? void 0 : _s.isLoading, (_t = props.state) === null || _t === void 0 ? void 0 : _t.showSkeletons]);
|
2780
2787
|
//@ts-ignore
|
@@ -2923,19 +2930,26 @@ const MRT_Localization_EN = {
|
|
2923
2930
|
};
|
2924
2931
|
|
2925
2932
|
const MaterialReactTable = (_a) => {
|
2926
|
-
var
|
2927
|
-
|
2933
|
+
var _b;
|
2934
|
+
var { aggregationFns, autoResetExpanded = false, columnResizeMode = 'onEnd', defaultColumn, defaultDisplayColumn, editingMode = 'modal', enableBottomToolbar = true, enableColumnActions = true, enableColumnFilters = true, enableColumnOrdering = false, enableColumnResizing = false, enableDensityToggle = true, enableExpandAll = 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", "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"]);
|
2935
|
+
const _icons = useMemo(() => (Object.assign(Object.assign({}, MRT_Default_Icons), icons)), [icons]);
|
2928
2936
|
const _localization = useMemo(() => (Object.assign(Object.assign({}, MRT_Localization_EN), localization)), [localization]);
|
2929
2937
|
const _aggregationFns = useMemo(() => (Object.assign(Object.assign({}, MRT_AggregationFns), aggregationFns)), []);
|
2930
2938
|
const _filterFns = useMemo(() => (Object.assign(Object.assign({}, MRT_FilterFns), filterFns)), []);
|
2931
2939
|
const _sortingFns = useMemo(() => (Object.assign(Object.assign({}, MRT_SortingFns), sortingFns)), []);
|
2932
|
-
const _defaultColumn = useMemo(() => (Object.assign(Object.assign({}, MRT_DefaultColumn), defaultColumn)), []);
|
2933
|
-
const _defaultDisplayColumn = useMemo(() => (Object.assign(Object.assign({}, MRT_DefaultDisplayColumn), defaultDisplayColumn)), []);
|
2940
|
+
const _defaultColumn = useMemo(() => (Object.assign(Object.assign({}, MRT_DefaultColumn), defaultColumn)), [defaultColumn]);
|
2941
|
+
const _defaultDisplayColumn = useMemo(() => (Object.assign(Object.assign({}, MRT_DefaultDisplayColumn), defaultDisplayColumn)), [defaultDisplayColumn]);
|
2934
2942
|
if (rest.enableRowVirtualization || rest.enableColumnVirtualization) {
|
2935
2943
|
layoutMode = 'grid';
|
2936
2944
|
enableStickyHeader = true;
|
2937
2945
|
}
|
2938
|
-
|
2946
|
+
if (!((_b = rest.data) === null || _b === void 0 ? void 0 : _b.length)) {
|
2947
|
+
manualFiltering = true;
|
2948
|
+
manualGrouping = true;
|
2949
|
+
manualPagination = true;
|
2950
|
+
manualSorting = true;
|
2951
|
+
}
|
2952
|
+
return (React.createElement(MRT_TableRoot, Object.assign({ aggregationFns: _aggregationFns, autoResetExpanded: autoResetExpanded, columnResizeMode: columnResizeMode, defaultColumn: _defaultColumn, defaultDisplayColumn: _defaultDisplayColumn, editingMode: editingMode, enableBottomToolbar: enableBottomToolbar, enableColumnActions: enableColumnActions, enableColumnFilters: enableColumnFilters, enableColumnOrdering: enableColumnOrdering, enableColumnResizing: enableColumnResizing, enableDensityToggle: enableDensityToggle, enableExpandAll: enableExpandAll, enableFilters: enableFilters, enableFullScreenToggle: enableFullScreenToggle, enableGlobalFilter: enableGlobalFilter, enableGlobalFilterRankedResults: enableGlobalFilterRankedResults, enableGrouping: enableGrouping, enableHiding: enableHiding, enableMultiRowSelection: enableMultiRowSelection, enableMultiSort: enableMultiSort, enablePagination: enablePagination, enablePinning: enablePinning, enableRowSelection: enableRowSelection, enableSelectAll: enableSelectAll, enableSorting: enableSorting, enableStickyHeader: enableStickyHeader, enableTableFooter: enableTableFooter, enableTableHead: enableTableHead, enableToolbarInternalActions: enableToolbarInternalActions, enableTopToolbar: enableTopToolbar, filterFns: _filterFns, icons: _icons, layoutMode: layoutMode, localization: _localization, manualFiltering: manualFiltering, manualGrouping: manualGrouping, manualPagination: manualPagination, manualSorting: manualSorting, positionActionsColumn: positionActionsColumn, positionExpandColumn: positionExpandColumn, positionGlobalFilter: positionGlobalFilter, positionPagination: positionPagination, positionToolbarAlertBanner: positionToolbarAlertBanner, positionToolbarDropZone: positionToolbarDropZone, rowNumberMode: rowNumberMode, selectAllMode: selectAllMode, sortingFns: _sortingFns }, rest)));
|
2939
2953
|
};
|
2940
2954
|
|
2941
2955
|
export { MRT_CopyButton, MRT_FilterOptionMenu, MRT_FullScreenToggleButton, MRT_GlobalFilterTextField, MRT_ShowHideColumnsButton, MRT_TablePagination, MRT_ToggleDensePaddingButton, MRT_ToggleFiltersButton, MRT_ToggleGlobalFilterButton, MRT_ToolbarAlertBanner, MRT_ToolbarDropZone, MRT_ToolbarInternalButtons, MaterialReactTable as default };
|