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
package/dist/cjs/index.js
CHANGED
@@ -305,10 +305,10 @@ const getIsFirstRightPinnedColumn = (column) => {
|
|
305
305
|
return column.getIsPinned() === 'right' && column.getPinnedIndex() === 0;
|
306
306
|
};
|
307
307
|
const getTotalRight = (table, column) => {
|
308
|
-
return ((table.getRightLeafHeaders().length - 1 - column.getPinnedIndex()) *
|
308
|
+
return ((table.getRightLeafHeaders().length - 1 - column.getPinnedIndex()) * 200);
|
309
309
|
};
|
310
310
|
const getCommonCellStyles = ({ column, header, table, tableCellProps, theme, }) => {
|
311
|
-
var _a, _b, _c, _d;
|
311
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
312
312
|
return (Object.assign(Object.assign({ backgroundColor: column.getIsPinned() && column.columnDef.columnDefType !== 'group'
|
313
313
|
? styles.alpha(styles.lighten(theme.palette.background.default, 0.04), 0.97)
|
314
314
|
: 'inherit', backgroundImage: 'inherit', boxShadow: getIsLastLeftPinnedColumn(table, column)
|
@@ -317,18 +317,32 @@ const getCommonCellStyles = ({ column, header, table, tableCellProps, theme, })
|
|
317
317
|
? `4px 0 8px -6px ${styles.alpha(theme.palette.common.black, 0.2)} inset`
|
318
318
|
: undefined, display: table.options.layoutMode === 'grid' ? 'flex' : 'table-cell', left: column.getIsPinned() === 'left'
|
319
319
|
? `${column.getStart('left')}px`
|
320
|
-
: undefined,
|
321
|
-
|
320
|
+
: undefined, ml: table.options.enableColumnVirtualization &&
|
321
|
+
column.getIsPinned() === 'left' &&
|
322
|
+
column.getPinnedIndex() === 0
|
323
|
+
? `-${column.getSize() *
|
324
|
+
((_b = (_a = table.getState().columnPinning.left) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 1) *
|
325
|
+
1.2}px`
|
326
|
+
: undefined, mr: table.options.enableColumnVirtualization &&
|
327
|
+
column.getIsPinned() === 'right' &&
|
328
|
+
column.getPinnedIndex() === table.getVisibleLeafColumns().length - 1
|
329
|
+
? `-${column.getSize() *
|
330
|
+
((_d = (_c = table.getState().columnPinning.right) === null || _c === void 0 ? void 0 : _c.length) !== null && _d !== void 0 ? _d : 1) *
|
331
|
+
1.2}px`
|
332
|
+
: undefined, opacity: ((_e = table.getState().draggingColumn) === null || _e === void 0 ? void 0 : _e.id) === column.id ||
|
333
|
+
((_f = table.getState().hoveredColumn) === null || _f === void 0 ? void 0 : _f.id) === column.id
|
322
334
|
? 0.5
|
323
335
|
: 1, position: column.getIsPinned() && column.columnDef.columnDefType !== 'group'
|
324
336
|
? 'sticky'
|
325
337
|
: undefined, right: column.getIsPinned() === 'right'
|
326
338
|
? `${getTotalRight(table, column)}px`
|
327
|
-
: undefined, transition:
|
339
|
+
: undefined, transition: table.options.enableColumnVirtualization || column.getIsResizing()
|
340
|
+
? 'none'
|
341
|
+
: `all 150ms ease-in-out` }, ((tableCellProps === null || tableCellProps === void 0 ? void 0 : tableCellProps.sx) instanceof Function
|
328
342
|
? tableCellProps.sx(theme)
|
329
343
|
: tableCellProps === null || tableCellProps === void 0 ? void 0 : tableCellProps.sx)), { flex: table.options.layoutMode === 'grid'
|
330
344
|
? `${column.getSize()} 0 auto`
|
331
|
-
: undefined, minWidth: `max(${column.getSize()}px, ${(
|
345
|
+
: 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() }));
|
332
346
|
};
|
333
347
|
const MRT_DefaultColumn = {
|
334
348
|
minSize: 40,
|
@@ -1909,7 +1923,7 @@ const MRT_TableHeadCellSortLabel = ({ header, table, tableCellProps, }) => {
|
|
1909
1923
|
}, IconComponent: ArrowDownwardIcon })));
|
1910
1924
|
};
|
1911
1925
|
|
1912
|
-
const MRT_TableHeadCell = ({ header, table
|
1926
|
+
const MRT_TableHeadCell = ({ header, table }) => {
|
1913
1927
|
var _a, _b, _c, _d;
|
1914
1928
|
const theme = styles.useTheme();
|
1915
1929
|
const { getState, options: { enableColumnActions, enableColumnDragging, enableColumnOrdering, enableGrouping, enableMultiSort, layoutMode, muiTableHeadCellProps, }, refs: { tableHeadCellRefs }, setHoveredColumn, } = table;
|
@@ -2516,7 +2530,7 @@ const MRT_TableBody = ({ columnVirtualizer, table, virtualColumns, virtualPaddin
|
|
2516
2530
|
};
|
2517
2531
|
const Memo_MRT_TableBody = React.memo(MRT_TableBody, (prev, next) => prev.table.options.data === next.table.options.data);
|
2518
2532
|
|
2519
|
-
const MRT_TableFooterCell = ({ footer, table
|
2533
|
+
const MRT_TableFooterCell = ({ footer, table }) => {
|
2520
2534
|
var _a, _b, _c;
|
2521
2535
|
const { getState, options: { layoutMode, muiTableFooterCellProps }, } = table;
|
2522
2536
|
const { density } = getState();
|
@@ -2592,7 +2606,7 @@ const MRT_TableFooter = ({ table, virtualColumns, virtualPaddingLeft, virtualPad
|
|
2592
2606
|
};
|
2593
2607
|
|
2594
2608
|
const MRT_Table = ({ table }) => {
|
2595
|
-
var _a, _b;
|
2609
|
+
var _a, _b, _c, _d;
|
2596
2610
|
const { getState, options: { columnVirtualizerInstanceRef, columnVirtualizerProps, enableColumnResizing, enableColumnVirtualization, enablePinning, enableStickyHeader, enableTableFooter, enableTableHead, layoutMode, memoMode, muiTableProps, }, refs: { tableContainerRef }, } = table;
|
2597
2611
|
const { isFullScreen, columnPinning, columnVisibility } = getState();
|
2598
2612
|
const tableProps = muiTableProps instanceof Function
|
@@ -2606,26 +2620,25 @@ const MRT_Table = ({ table }) => {
|
|
2606
2620
|
var _a, _b, _c, _d;
|
2607
2621
|
const columnsWidths = (_d = (_c = (_b = (_a = table
|
2608
2622
|
.getRowModel()
|
2609
|
-
.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.
|
2623
|
+
.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 : [];
|
2610
2624
|
return columnsWidths.reduce((a, b) => a + b, 0) / columnsWidths.length;
|
2611
2625
|
}, [table.getRowModel().rows, columnPinning, columnVisibility]);
|
2612
|
-
const
|
2626
|
+
const [leftPinnedIndexes, rightPinnedIndexes] = React.useMemo(() => enableColumnVirtualization && enablePinning
|
2613
2627
|
? [
|
2614
|
-
|
2615
|
-
|
2616
|
-
.
|
2617
|
-
.map((
|
2618
|
-
h.column.getPinnedIndex() -
|
2619
|
-
1),
|
2628
|
+
table.getLeftLeafColumns().map((c) => c.getPinnedIndex()),
|
2629
|
+
table
|
2630
|
+
.getRightLeafColumns()
|
2631
|
+
.map((c) => table.getVisibleLeafColumns().length - c.getPinnedIndex() - 1),
|
2620
2632
|
]
|
2621
|
-
: [], [columnPinning, enableColumnVirtualization, enablePinning]);
|
2633
|
+
: [[], []], [columnPinning, enableColumnVirtualization, enablePinning]);
|
2622
2634
|
const columnVirtualizer = enableColumnVirtualization
|
2623
|
-
? reactVirtual.useVirtualizer(Object.assign({ count: table.
|
2635
|
+
? reactVirtual.useVirtualizer(Object.assign({ count: table.getVisibleLeafColumns().length, estimateSize: () => averageColumnWidth, getScrollElement: () => tableContainerRef.current, horizontal: true, overscan: 3, rangeExtractor: React.useCallback((range) => [
|
2624
2636
|
...new Set([
|
2625
|
-
...
|
2637
|
+
...leftPinnedIndexes,
|
2626
2638
|
...reactVirtual.defaultRangeExtractor(range),
|
2639
|
+
...rightPinnedIndexes,
|
2627
2640
|
]),
|
2628
|
-
]
|
2641
|
+
], [leftPinnedIndexes, rightPinnedIndexes]) }, vProps))
|
2629
2642
|
: undefined;
|
2630
2643
|
if (columnVirtualizerInstanceRef && columnVirtualizer) {
|
2631
2644
|
columnVirtualizerInstanceRef.current = columnVirtualizer;
|
@@ -2636,13 +2649,10 @@ const MRT_Table = ({ table }) => {
|
|
2636
2649
|
let virtualPaddingLeft;
|
2637
2650
|
let virtualPaddingRight;
|
2638
2651
|
if (columnVirtualizer && (virtualColumns === null || virtualColumns === void 0 ? void 0 : virtualColumns.length)) {
|
2639
|
-
virtualPaddingLeft = (virtualColumns === null ||
|
2640
|
-
|
2641
|
-
|
2642
|
-
|
2643
|
-
? columnVirtualizer.getTotalSize() -
|
2644
|
-
(((_b = virtualColumns[virtualColumns.length - 1]) === null || _b === void 0 ? void 0 : _b.end) || 0)
|
2645
|
-
: 0;
|
2652
|
+
virtualPaddingLeft = (_b = (_a = virtualColumns[leftPinnedIndexes.length]) === null || _a === void 0 ? void 0 : _a.start) !== null && _b !== void 0 ? _b : 0;
|
2653
|
+
virtualPaddingRight =
|
2654
|
+
columnVirtualizer.getTotalSize() -
|
2655
|
+
((_d = (_c = virtualColumns[virtualColumns.length - 1 - rightPinnedIndexes.length]) === null || _c === void 0 ? void 0 : _c.end) !== null && _d !== void 0 ? _d : 0);
|
2646
2656
|
}
|
2647
2657
|
const props = {
|
2648
2658
|
table,
|
@@ -2848,12 +2858,9 @@ const MRT_TableRoot = (props) => {
|
|
2848
2858
|
...Array(((_d = (_c = props.state) === null || _c === void 0 ? void 0 : _c.pagination) === null || _d === void 0 ? void 0 : _d.pageSize) ||
|
2849
2859
|
((_e = initialState === null || initialState === void 0 ? void 0 : initialState.pagination) === null || _e === void 0 ? void 0 : _e.pageSize) ||
|
2850
2860
|
10).fill(null),
|
2851
|
-
].map(() => Object.assign({}, ...getAllLeafColumnDefs(props.columns).map((col) => {
|
2852
|
-
|
2853
|
-
|
2854
|
-
[(_b = (_a = col.id) !== null && _a !== void 0 ? _a : col.accessorKey) !== null && _b !== void 0 ? _b : '']: null,
|
2855
|
-
});
|
2856
|
-
})))
|
2861
|
+
].map(() => Object.assign({}, ...getAllLeafColumnDefs(props.columns).map((col) => ({
|
2862
|
+
[getColumnId(col)]: null,
|
2863
|
+
}))))
|
2857
2864
|
: props.data;
|
2858
2865
|
}, [props.data, (_s = props.state) === null || _s === void 0 ? void 0 : _s.isLoading, (_t = props.state) === null || _t === void 0 ? void 0 : _t.showSkeletons]);
|
2859
2866
|
//@ts-ignore
|
@@ -3002,19 +3009,26 @@ const MRT_Localization_EN = {
|
|
3002
3009
|
};
|
3003
3010
|
|
3004
3011
|
const MaterialReactTable = (_a) => {
|
3005
|
-
var
|
3006
|
-
|
3012
|
+
var _b;
|
3013
|
+
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"]);
|
3014
|
+
const _icons = React.useMemo(() => (Object.assign(Object.assign({}, MRT_Default_Icons), icons)), [icons]);
|
3007
3015
|
const _localization = React.useMemo(() => (Object.assign(Object.assign({}, MRT_Localization_EN), localization)), [localization]);
|
3008
3016
|
const _aggregationFns = React.useMemo(() => (Object.assign(Object.assign({}, MRT_AggregationFns), aggregationFns)), []);
|
3009
3017
|
const _filterFns = React.useMemo(() => (Object.assign(Object.assign({}, MRT_FilterFns), filterFns)), []);
|
3010
3018
|
const _sortingFns = React.useMemo(() => (Object.assign(Object.assign({}, MRT_SortingFns), sortingFns)), []);
|
3011
|
-
const _defaultColumn = React.useMemo(() => (Object.assign(Object.assign({}, MRT_DefaultColumn), defaultColumn)), []);
|
3012
|
-
const _defaultDisplayColumn = React.useMemo(() => (Object.assign(Object.assign({}, MRT_DefaultDisplayColumn), defaultDisplayColumn)), []);
|
3019
|
+
const _defaultColumn = React.useMemo(() => (Object.assign(Object.assign({}, MRT_DefaultColumn), defaultColumn)), [defaultColumn]);
|
3020
|
+
const _defaultDisplayColumn = React.useMemo(() => (Object.assign(Object.assign({}, MRT_DefaultDisplayColumn), defaultDisplayColumn)), [defaultDisplayColumn]);
|
3013
3021
|
if (rest.enableRowVirtualization || rest.enableColumnVirtualization) {
|
3014
3022
|
layoutMode = 'grid';
|
3015
3023
|
enableStickyHeader = true;
|
3016
3024
|
}
|
3017
|
-
|
3025
|
+
if (!((_b = rest.data) === null || _b === void 0 ? void 0 : _b.length)) {
|
3026
|
+
manualFiltering = true;
|
3027
|
+
manualGrouping = true;
|
3028
|
+
manualPagination = true;
|
3029
|
+
manualSorting = true;
|
3030
|
+
}
|
3031
|
+
return (React__default["default"].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)));
|
3018
3032
|
};
|
3019
3033
|
|
3020
3034
|
exports.MRT_CopyButton = MRT_CopyButton;
|