material-react-table 0.4.1 → 0.4.4
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 +9 -2
- package/dist/buttons/MRT_ToggleDensePaddingButton.d.ts +5 -0
- package/dist/material-react-table.cjs.development.js +78 -29
- 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 +79 -30
- package/dist/material-react-table.esm.js.map +1 -1
- package/package.json +5 -5
- package/src/MaterialReactTable.tsx +18 -2
- package/src/buttons/MRT_ToggleDensePaddingButton.tsx +23 -0
- package/src/table/MRT_TableContainer.tsx +12 -4
- package/src/toolbar/MRT_ToolbarBottom.tsx +19 -7
- package/src/toolbar/MRT_ToolbarInternalButtons.tsx +18 -2
- package/src/toolbar/MRT_ToolbarTop.tsx +19 -7
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { useMemo, useState, useContext, createContext, Fragment } from 'react';
|
|
1
|
+
import React, { useMemo, useState, useContext, createContext, Fragment, useEffect } from 'react';
|
|
2
2
|
import { useTable, useFilters, useGlobalFilter, useGroupBy, useSortBy, useExpanded, usePagination, useRowSelect, useResizeColumns, useFlexLayout, useAsyncDebounce } from 'react-table';
|
|
3
3
|
import { TextField as TextField$1, Tooltip, InputAdornment, IconButton as IconButton$2, Menu, Divider as Divider$1, styled, MenuItem as MenuItem$2, TableCell as TableCell$3, TableSortLabel, Collapse, Checkbox, TableRow as TableRow$1, TableHead, alpha, TableBody as TableBody$1, TableFooter, Table, FormControlLabel, Switch, Button, TablePagination, useMediaQuery, Chip, Alert as Alert$1, Toolbar as Toolbar$2, Paper, LinearProgress, CircularProgress, TableContainer as TableContainer$1 } from '@mui/material';
|
|
4
4
|
import CloseIcon from '@mui/icons-material/Close';
|
|
@@ -17,6 +17,8 @@ import CancelIcon from '@mui/icons-material/Cancel';
|
|
|
17
17
|
import SearchIcon from '@mui/icons-material/Search';
|
|
18
18
|
import FilterListOffIcon from '@mui/icons-material/FilterListOff';
|
|
19
19
|
import ViewColumnIcon from '@mui/icons-material/ViewColumn';
|
|
20
|
+
import DensityMediumIcon from '@mui/icons-material/DensityMedium';
|
|
21
|
+
import DensitySmallIcon from '@mui/icons-material/DensitySmall';
|
|
20
22
|
import SearchOffIcon from '@mui/icons-material/SearchOff';
|
|
21
23
|
import FilterListIcon from '@mui/icons-material/Fullscreen';
|
|
22
24
|
import FilterListOffIcon$1 from '@mui/icons-material/FullscreenExit';
|
|
@@ -2076,8 +2078,8 @@ var MRT_ShowHideColumnsButton = function MRT_ShowHideColumnsButton() {
|
|
|
2076
2078
|
})));
|
|
2077
2079
|
};
|
|
2078
2080
|
|
|
2079
|
-
var
|
|
2080
|
-
var _localization$toggleD
|
|
2081
|
+
var MRT_ToggleDensePaddingButton = function MRT_ToggleDensePaddingButton() {
|
|
2082
|
+
var _localization$toggleD;
|
|
2081
2083
|
|
|
2082
2084
|
var _useMRT = useMRT(),
|
|
2083
2085
|
densePadding = _useMRT.densePadding,
|
|
@@ -2087,17 +2089,13 @@ var MRT_DensePaddingSwitch = function MRT_DensePaddingSwitch() {
|
|
|
2087
2089
|
return React.createElement(Tooltip, {
|
|
2088
2090
|
arrow: true,
|
|
2089
2091
|
title: (_localization$toggleD = localization == null ? void 0 : localization.toggleDensePaddingSwitchTitle) != null ? _localization$toggleD : ''
|
|
2090
|
-
}, React.createElement(
|
|
2091
|
-
|
|
2092
|
-
|
|
2093
|
-
},
|
|
2094
|
-
color: "default",
|
|
2095
|
-
checked: densePadding,
|
|
2096
|
-
size: "small",
|
|
2097
|
-
onChange: function onChange() {
|
|
2092
|
+
}, React.createElement(IconButton$2, {
|
|
2093
|
+
"aria-label": localization == null ? void 0 : localization.toggleDensePaddingSwitchTitle,
|
|
2094
|
+
onClick: function onClick() {
|
|
2098
2095
|
return setDensePadding(!densePadding);
|
|
2099
|
-
}
|
|
2100
|
-
|
|
2096
|
+
},
|
|
2097
|
+
size: "small"
|
|
2098
|
+
}, densePadding ? React.createElement(DensitySmallIcon, null) : React.createElement(DensityMediumIcon, null)));
|
|
2101
2099
|
};
|
|
2102
2100
|
|
|
2103
2101
|
var MRT_ToggleSearchButton = function MRT_ToggleSearchButton() {
|
|
@@ -2158,9 +2156,21 @@ var MRT_ToolbarInternalButtons = function MRT_ToolbarInternalButtons() {
|
|
|
2158
2156
|
disableColumnHiding = _useMRT.disableColumnHiding,
|
|
2159
2157
|
disableDensePaddingToggle = _useMRT.disableDensePaddingToggle,
|
|
2160
2158
|
disableGlobalFilter = _useMRT.disableGlobalFilter,
|
|
2161
|
-
disableFullScreenToggle = _useMRT.disableFullScreenToggle
|
|
2159
|
+
disableFullScreenToggle = _useMRT.disableFullScreenToggle,
|
|
2160
|
+
renderToolbarInternalActions = _useMRT.renderToolbarInternalActions,
|
|
2161
|
+
tableInstance = _useMRT.tableInstance;
|
|
2162
2162
|
|
|
2163
|
-
|
|
2163
|
+
if (renderToolbarInternalActions) {
|
|
2164
|
+
return React.createElement(React.Fragment, null, renderToolbarInternalActions(tableInstance, {
|
|
2165
|
+
MRT_ToggleSearchButton: MRT_ToggleSearchButton,
|
|
2166
|
+
MRT_ToggleFiltersButton: MRT_ToggleFiltersButton,
|
|
2167
|
+
MRT_ShowHideColumnsButton: MRT_ShowHideColumnsButton,
|
|
2168
|
+
MRT_ToggleDensePaddingButton: MRT_ToggleDensePaddingButton,
|
|
2169
|
+
MRT_FullScreenToggleButton: MRT_FullScreenToggleButton
|
|
2170
|
+
}));
|
|
2171
|
+
}
|
|
2172
|
+
|
|
2173
|
+
return React.createElement(ToolbarButtonsContainer, null, !disableGlobalFilter && React.createElement(MRT_ToggleSearchButton, null), !disableFilters && React.createElement(MRT_ToggleFiltersButton, null), !disableColumnHiding && React.createElement(MRT_ShowHideColumnsButton, null), !disableDensePaddingToggle && React.createElement(MRT_ToggleDensePaddingButton, null), !disableFullScreenToggle && React.createElement(MRT_FullScreenToggleButton, null));
|
|
2164
2174
|
};
|
|
2165
2175
|
|
|
2166
2176
|
var MRT_TablePagination = function MRT_TablePagination() {
|
|
@@ -2254,12 +2264,26 @@ var MRT_ToolbarAlertBanner = function MRT_ToolbarAlertBanner() {
|
|
|
2254
2264
|
}, alertProps), selectMessage, groupedByMessage));
|
|
2255
2265
|
};
|
|
2256
2266
|
|
|
2257
|
-
var Toolbar = /*#__PURE__*/styled(Toolbar$2
|
|
2258
|
-
|
|
2259
|
-
|
|
2267
|
+
var Toolbar = /*#__PURE__*/styled(Toolbar$2, {
|
|
2268
|
+
shouldForwardProp: function shouldForwardProp(prop) {
|
|
2269
|
+
return prop !== 'fullScreen';
|
|
2270
|
+
}
|
|
2271
|
+
})(function (_ref) {
|
|
2272
|
+
var fullScreen = _ref.fullScreen,
|
|
2273
|
+
theme = _ref.theme;
|
|
2274
|
+
return {
|
|
2275
|
+
backgroundColor: theme.palette.background["default"],
|
|
2276
|
+
backgroundImage: "linear-gradient(" + alpha(theme.palette.common.white, 0.05) + "," + alpha(theme.palette.common.white, 0.05) + ")",
|
|
2277
|
+
display: 'grid',
|
|
2278
|
+
padding: '0 0.5rem !important',
|
|
2279
|
+
position: fullScreen ? 'sticky' : undefined,
|
|
2280
|
+
top: fullScreen ? '0' : undefined,
|
|
2281
|
+
width: 'calc(100% - 1rem)',
|
|
2282
|
+
zIndex: 1
|
|
2283
|
+
};
|
|
2260
2284
|
});
|
|
2261
2285
|
var ToolbarTopRow = /*#__PURE__*/styled('div')({
|
|
2262
|
-
padding: '
|
|
2286
|
+
padding: '0.5rem',
|
|
2263
2287
|
display: 'flex',
|
|
2264
2288
|
justifyContent: 'space-between'
|
|
2265
2289
|
});
|
|
@@ -2274,41 +2298,59 @@ var MRT_ToolbarTop = function MRT_ToolbarTop() {
|
|
|
2274
2298
|
|
|
2275
2299
|
var _useMRT = useMRT(),
|
|
2276
2300
|
disableGlobalFilter = _useMRT.disableGlobalFilter,
|
|
2277
|
-
|
|
2301
|
+
hideToolbarInternalActions = _useMRT.hideToolbarInternalActions,
|
|
2278
2302
|
manualPagination = _useMRT.manualPagination,
|
|
2279
2303
|
muiTableToolbarTopProps = _useMRT.muiTableToolbarTopProps,
|
|
2280
2304
|
positionPagination = _useMRT.positionPagination,
|
|
2281
2305
|
positionToolbarActions = _useMRT.positionToolbarActions,
|
|
2306
|
+
fullScreen = _useMRT.fullScreen,
|
|
2282
2307
|
positionToolbarAlertBanner = _useMRT.positionToolbarAlertBanner,
|
|
2283
2308
|
renderToolbarCustomActions = _useMRT.renderToolbarCustomActions,
|
|
2284
2309
|
tableInstance = _useMRT.tableInstance;
|
|
2285
2310
|
|
|
2286
2311
|
var toolbarProps = muiTableToolbarTopProps instanceof Function ? muiTableToolbarTopProps(tableInstance) : muiTableToolbarTopProps;
|
|
2287
2312
|
return React.createElement(Toolbar, Object.assign({
|
|
2313
|
+
fullScreen: fullScreen,
|
|
2288
2314
|
variant: "dense"
|
|
2289
|
-
}, toolbarProps), positionToolbarAlertBanner === 'top' && React.createElement(MRT_ToolbarAlertBanner, null), React.createElement(ToolbarTopRow, null, (_renderToolbarCustomA = renderToolbarCustomActions == null ? void 0 : renderToolbarCustomActions(tableInstance)) != null ? _renderToolbarCustomA : React.createElement("span", null), React.createElement(ToolbarActionsContainer, null, !disableGlobalFilter && React.createElement(MRT_SearchTextField, null), !
|
|
2315
|
+
}, toolbarProps), positionToolbarAlertBanner === 'top' && React.createElement(MRT_ToolbarAlertBanner, null), React.createElement(ToolbarTopRow, null, (_renderToolbarCustomA = renderToolbarCustomActions == null ? void 0 : renderToolbarCustomActions(tableInstance)) != null ? _renderToolbarCustomA : React.createElement("span", null), React.createElement(ToolbarActionsContainer, null, !disableGlobalFilter && React.createElement(MRT_SearchTextField, null), !hideToolbarInternalActions && positionToolbarActions === 'top' && React.createElement(MRT_ToolbarInternalButtons, null))), React.createElement("div", null, !manualPagination && ['top', 'both'].includes(positionPagination != null ? positionPagination : '') && React.createElement(MRT_TablePagination, null)));
|
|
2290
2316
|
};
|
|
2291
2317
|
|
|
2292
|
-
var Toolbar$1 = /*#__PURE__*/styled(Toolbar$2
|
|
2293
|
-
|
|
2294
|
-
|
|
2295
|
-
|
|
2296
|
-
|
|
2318
|
+
var Toolbar$1 = /*#__PURE__*/styled(Toolbar$2, {
|
|
2319
|
+
shouldForwardProp: function shouldForwardProp(prop) {
|
|
2320
|
+
return prop !== 'fullScreen';
|
|
2321
|
+
}
|
|
2322
|
+
})(function (_ref) {
|
|
2323
|
+
var fullScreen = _ref.fullScreen,
|
|
2324
|
+
theme = _ref.theme;
|
|
2325
|
+
return {
|
|
2326
|
+
backgroundColor: theme.palette.background["default"],
|
|
2327
|
+
backgroundImage: "linear-gradient(" + alpha(theme.palette.common.white, 0.05) + "," + alpha(theme.palette.common.white, 0.05) + ")",
|
|
2328
|
+
bottom: fullScreen ? '0' : undefined,
|
|
2329
|
+
display: 'flex',
|
|
2330
|
+
justifyContent: 'space-between',
|
|
2331
|
+
overflowY: 'hidden',
|
|
2332
|
+
padding: '0 0.5rem !important',
|
|
2333
|
+
position: fullScreen ? 'fixed' : undefined,
|
|
2334
|
+
width: 'calc(100% - 1rem)',
|
|
2335
|
+
zIndex: 1
|
|
2336
|
+
};
|
|
2297
2337
|
});
|
|
2298
2338
|
var MRT_ToolbarBottom = function MRT_ToolbarBottom() {
|
|
2299
2339
|
var _useMRT = useMRT(),
|
|
2300
|
-
|
|
2340
|
+
hideToolbarInternalActions = _useMRT.hideToolbarInternalActions,
|
|
2301
2341
|
manualPagination = _useMRT.manualPagination,
|
|
2302
2342
|
muiTableToolbarBottomProps = _useMRT.muiTableToolbarBottomProps,
|
|
2303
2343
|
positionPagination = _useMRT.positionPagination,
|
|
2344
|
+
fullScreen = _useMRT.fullScreen,
|
|
2304
2345
|
positionToolbarActions = _useMRT.positionToolbarActions,
|
|
2305
2346
|
positionToolbarAlertBanner = _useMRT.positionToolbarAlertBanner,
|
|
2306
2347
|
tableInstance = _useMRT.tableInstance;
|
|
2307
2348
|
|
|
2308
2349
|
var toolbarProps = muiTableToolbarBottomProps instanceof Function ? muiTableToolbarBottomProps(tableInstance) : muiTableToolbarBottomProps;
|
|
2309
2350
|
return React.createElement(Toolbar$1, Object.assign({
|
|
2351
|
+
fullScreen: fullScreen,
|
|
2310
2352
|
variant: "dense"
|
|
2311
|
-
}, toolbarProps), !
|
|
2353
|
+
}, toolbarProps), !hideToolbarInternalActions && positionToolbarActions === 'bottom' ? React.createElement(MRT_ToolbarInternalButtons, null) : React.createElement("span", null), positionToolbarAlertBanner === 'bottom' && React.createElement(MRT_ToolbarAlertBanner, null), !manualPagination && ['bottom', 'both'].includes(positionPagination != null ? positionPagination : '') && React.createElement(MRT_TablePagination, null));
|
|
2312
2354
|
};
|
|
2313
2355
|
|
|
2314
2356
|
var TableContainer = /*#__PURE__*/styled(TableContainer$1, {
|
|
@@ -2322,12 +2364,12 @@ var TableContainer = /*#__PURE__*/styled(TableContainer$1, {
|
|
|
2322
2364
|
height: fullScreen ? '100%' : undefined,
|
|
2323
2365
|
left: fullScreen ? '0' : undefined,
|
|
2324
2366
|
margin: fullScreen ? '0' : undefined,
|
|
2325
|
-
position: fullScreen ? '
|
|
2367
|
+
position: fullScreen ? 'fixed' : undefined,
|
|
2326
2368
|
right: fullScreen ? '0' : undefined,
|
|
2327
2369
|
top: fullScreen ? '0' : undefined,
|
|
2328
2370
|
transition: 'all 0.2s ease-in-out',
|
|
2329
2371
|
width: fullScreen ? '100vw' : undefined,
|
|
2330
|
-
zIndex: fullScreen ? 1200 :
|
|
2372
|
+
zIndex: fullScreen ? 1200 : 1
|
|
2331
2373
|
};
|
|
2332
2374
|
});
|
|
2333
2375
|
var CircularProgressWrapper = /*#__PURE__*/styled('div')(function (_ref2) {
|
|
@@ -2353,6 +2395,13 @@ var MRT_TableContainer = function MRT_TableContainer() {
|
|
|
2353
2395
|
muiTableContainerProps = _useMRT.muiTableContainerProps,
|
|
2354
2396
|
tableInstance = _useMRT.tableInstance;
|
|
2355
2397
|
|
|
2398
|
+
useEffect(function () {
|
|
2399
|
+
if (fullScreen) {
|
|
2400
|
+
document.body.style.overflow = 'hidden';
|
|
2401
|
+
} else {
|
|
2402
|
+
document.body.style.overflow = 'auto';
|
|
2403
|
+
}
|
|
2404
|
+
}, [fullScreen]);
|
|
2356
2405
|
var tableContainerProps = muiTableContainerProps instanceof Function ? muiTableContainerProps(tableInstance) : muiTableContainerProps;
|
|
2357
2406
|
return React.createElement(TableContainer, Object.assign({
|
|
2358
2407
|
component: Paper,
|