material-react-table 0.9.1 → 0.9.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/MaterialReactTable.d.ts +1 -0
- package/dist/body/MRT_TableBody.d.ts +2 -1
- package/dist/material-react-table.cjs.development.js +530 -9
- package/dist/material-react-table.cjs.development.js.map +1 -1
- package/dist/material-react-table.cjs.production.min.js +1 -1
- package/dist/material-react-table.cjs.production.min.js.map +1 -1
- package/dist/material-react-table.esm.js +37 -7
- package/dist/material-react-table.esm.js.map +1 -1
- package/dist/table/MRT_Table.d.ts +2 -1
- package/package.json +3 -2
- package/src/MaterialReactTable.tsx +1 -0
- package/src/body/MRT_TableBody.tsx +53 -14
- package/src/table/MRT_Table.tsx +10 -3
- package/src/table/MRT_TableContainer.tsx +8 -2
|
@@ -5,6 +5,7 @@ import { Tooltip, IconButton, Menu, MenuItem, Box, FormControlLabel, Switch, But
|
|
|
5
5
|
import { rankItem, rankings } from '@tanstack/match-sorter-utils';
|
|
6
6
|
import { useDrop, useDrag, DndProvider } from 'react-dnd';
|
|
7
7
|
import { HTML5Backend } from 'react-dnd-html5-backend';
|
|
8
|
+
import { useVirtual } from 'react-virtual';
|
|
8
9
|
|
|
9
10
|
function _extends() {
|
|
10
11
|
_extends = Object.assign ? Object.assign.bind() : function (target) {
|
|
@@ -2951,23 +2952,47 @@ var MRT_TableBodyRow = function MRT_TableBodyRow(_ref) {
|
|
|
2951
2952
|
};
|
|
2952
2953
|
|
|
2953
2954
|
var MRT_TableBody = function MRT_TableBody(_ref) {
|
|
2954
|
-
var tableInstance = _ref.tableInstance
|
|
2955
|
+
var tableInstance = _ref.tableInstance,
|
|
2956
|
+
tableContainerRef = _ref.tableContainerRef;
|
|
2955
2957
|
var getPaginationRowModel = tableInstance.getPaginationRowModel,
|
|
2956
2958
|
getPrePaginationRowModel = tableInstance.getPrePaginationRowModel,
|
|
2959
|
+
getState = tableInstance.getState,
|
|
2957
2960
|
_tableInstance$option = tableInstance.options,
|
|
2958
2961
|
enablePagination = _tableInstance$option.enablePagination,
|
|
2962
|
+
enableRowVirtualization = _tableInstance$option.enableRowVirtualization,
|
|
2959
2963
|
muiTableBodyProps = _tableInstance$option.muiTableBodyProps;
|
|
2960
|
-
|
|
2964
|
+
|
|
2965
|
+
var _getState = getState(),
|
|
2966
|
+
isDensePadding = _getState.isDensePadding;
|
|
2967
|
+
|
|
2961
2968
|
var tableBodyProps = muiTableBodyProps instanceof Function ? muiTableBodyProps({
|
|
2962
2969
|
tableInstance: tableInstance
|
|
2963
2970
|
}) : muiTableBodyProps;
|
|
2964
|
-
|
|
2971
|
+
var rows = enablePagination ? getPaginationRowModel().rows : getPrePaginationRowModel().rows;
|
|
2972
|
+
var rowVirtualizer = useVirtual({
|
|
2973
|
+
overscan: isDensePadding ? 15 : 5,
|
|
2974
|
+
size: rows.length,
|
|
2975
|
+
parentRef: tableContainerRef
|
|
2976
|
+
});
|
|
2977
|
+
var virtualRows = rowVirtualizer.virtualItems;
|
|
2978
|
+
var paddingTop = virtualRows.length > 0 ? virtualRows[0].start : 0;
|
|
2979
|
+
var paddingBottom = virtualRows.length > 0 ? rowVirtualizer.totalSize - virtualRows[virtualRows.length - 1].end : 0;
|
|
2980
|
+
return React.createElement(TableBody, Object.assign({}, tableBodyProps), enableRowVirtualization && paddingTop > 0 && React.createElement("tr", null, React.createElement("td", {
|
|
2981
|
+
style: {
|
|
2982
|
+
height: paddingTop + "px"
|
|
2983
|
+
}
|
|
2984
|
+
})), (enableRowVirtualization ? virtualRows : rows).map(function (rowOrVirtualRow) {
|
|
2985
|
+
var row = enableRowVirtualization ? rows[rowOrVirtualRow.index] : rowOrVirtualRow;
|
|
2965
2986
|
return React.createElement(MRT_TableBodyRow, {
|
|
2966
2987
|
key: row.id,
|
|
2967
2988
|
row: row,
|
|
2968
2989
|
tableInstance: tableInstance
|
|
2969
2990
|
});
|
|
2970
|
-
})
|
|
2991
|
+
}), enableRowVirtualization && paddingBottom > 0 && React.createElement("tr", null, React.createElement("td", {
|
|
2992
|
+
style: {
|
|
2993
|
+
height: paddingBottom + "px"
|
|
2994
|
+
}
|
|
2995
|
+
})));
|
|
2971
2996
|
};
|
|
2972
2997
|
|
|
2973
2998
|
var MRT_TableFooterCell = function MRT_TableFooterCell(_ref) {
|
|
@@ -3061,7 +3086,8 @@ var MRT_TableFooter = function MRT_TableFooter(_ref) {
|
|
|
3061
3086
|
};
|
|
3062
3087
|
|
|
3063
3088
|
var MRT_Table = function MRT_Table(_ref) {
|
|
3064
|
-
var
|
|
3089
|
+
var tableContainerRef = _ref.tableContainerRef,
|
|
3090
|
+
tableInstance = _ref.tableInstance;
|
|
3065
3091
|
var _tableInstance$option = tableInstance.options,
|
|
3066
3092
|
enableStickyHeader = _tableInstance$option.enableStickyHeader,
|
|
3067
3093
|
enableTableFooter = _tableInstance$option.enableTableFooter,
|
|
@@ -3075,6 +3101,7 @@ var MRT_Table = function MRT_Table(_ref) {
|
|
|
3075
3101
|
}, tableProps), enableTableHead && React.createElement(MRT_TableHead, {
|
|
3076
3102
|
tableInstance: tableInstance
|
|
3077
3103
|
}), React.createElement(MRT_TableBody, {
|
|
3104
|
+
tableContainerRef: tableContainerRef,
|
|
3078
3105
|
tableInstance: tableInstance
|
|
3079
3106
|
}), enableTableFooter && React.createElement(MRT_TableFooter, {
|
|
3080
3107
|
tableInstance: tableInstance
|
|
@@ -3087,8 +3114,8 @@ var MRT_TableContainer = function MRT_TableContainer(_ref) {
|
|
|
3087
3114
|
var getState = tableInstance.getState,
|
|
3088
3115
|
_tableInstance$option = tableInstance.options,
|
|
3089
3116
|
enableStickyHeader = _tableInstance$option.enableStickyHeader,
|
|
3090
|
-
|
|
3091
|
-
|
|
3117
|
+
muiTableContainerProps = _tableInstance$option.muiTableContainerProps,
|
|
3118
|
+
tableId = _tableInstance$option.tableId;
|
|
3092
3119
|
|
|
3093
3120
|
var _getState = getState(),
|
|
3094
3121
|
isFullScreen = _getState.isFullScreen;
|
|
@@ -3107,7 +3134,9 @@ var MRT_TableContainer = function MRT_TableContainer(_ref) {
|
|
|
3107
3134
|
var bottomToolbarHeight = typeof document !== 'undefined' ? (_document$getElementB3 = (_document2 = document) == null ? void 0 : (_document2$getElement = _document2.getElementById("mrt-" + tableId + "-toolbar-bottom")) == null ? void 0 : _document2$getElement.offsetHeight) != null ? _document$getElementB3 : 0 : 0;
|
|
3108
3135
|
setTotalToolbarHeight(topToolbarHeight + bottomToolbarHeight);
|
|
3109
3136
|
});
|
|
3137
|
+
var tableContainerRef = React.useRef(null);
|
|
3110
3138
|
return React.createElement(TableContainer, Object.assign({}, tableContainerProps, {
|
|
3139
|
+
ref: tableContainerRef,
|
|
3111
3140
|
sx: _extends({
|
|
3112
3141
|
maxWidth: '100%',
|
|
3113
3142
|
maxHeight: enableStickyHeader ? "clamp(350px, calc(100vh - " + totalToolbarHeight + "px), 2000px)" : undefined,
|
|
@@ -3117,6 +3146,7 @@ var MRT_TableContainer = function MRT_TableContainer(_ref) {
|
|
|
3117
3146
|
maxHeight: isFullScreen ? "calc(100vh - " + totalToolbarHeight + "px)" : undefined
|
|
3118
3147
|
}
|
|
3119
3148
|
}), React.createElement(MRT_Table, {
|
|
3149
|
+
tableContainerRef: tableContainerRef,
|
|
3120
3150
|
tableInstance: tableInstance
|
|
3121
3151
|
}));
|
|
3122
3152
|
};
|