material-react-table 0.3.5 → 0.4.3
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 -1
- package/dist/buttons/MRT_ToggleDensePaddingButton.d.ts +5 -0
- package/dist/material-react-table.cjs.development.js +68 -28
- 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 +69 -29
- package/dist/material-react-table.esm.js.map +1 -1
- package/package.json +7 -7
- package/src/MaterialReactTable.tsx +3 -1
- package/src/buttons/MRT_ToggleDensePaddingButton.tsx +23 -0
- package/src/table/MRT_TableContainer.tsx +22 -7
- package/src/toolbar/MRT_ToolbarBottom.tsx +17 -5
- package/src/toolbar/MRT_ToolbarInternalButtons.tsx +2 -2
- package/src/toolbar/MRT_ToolbarTop.tsx +17 -5
- package/dist/inputs/MRT_DensePaddingSwitch.d.ts +0 -5
- package/src/inputs/MRT_DensePaddingSwitch.tsx +0 -23
|
@@ -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() {
|
|
@@ -2160,7 +2158,7 @@ var MRT_ToolbarInternalButtons = function MRT_ToolbarInternalButtons() {
|
|
|
2160
2158
|
disableGlobalFilter = _useMRT.disableGlobalFilter,
|
|
2161
2159
|
disableFullScreenToggle = _useMRT.disableFullScreenToggle;
|
|
2162
2160
|
|
|
2163
|
-
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(
|
|
2161
|
+
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
2162
|
};
|
|
2165
2163
|
|
|
2166
2164
|
var MRT_TablePagination = function MRT_TablePagination() {
|
|
@@ -2254,12 +2252,26 @@ var MRT_ToolbarAlertBanner = function MRT_ToolbarAlertBanner() {
|
|
|
2254
2252
|
}, alertProps), selectMessage, groupedByMessage));
|
|
2255
2253
|
};
|
|
2256
2254
|
|
|
2257
|
-
var Toolbar = /*#__PURE__*/styled(Toolbar$2
|
|
2258
|
-
|
|
2259
|
-
|
|
2255
|
+
var Toolbar = /*#__PURE__*/styled(Toolbar$2, {
|
|
2256
|
+
shouldForwardProp: function shouldForwardProp(prop) {
|
|
2257
|
+
return prop !== 'fullScreen';
|
|
2258
|
+
}
|
|
2259
|
+
})(function (_ref) {
|
|
2260
|
+
var fullScreen = _ref.fullScreen,
|
|
2261
|
+
theme = _ref.theme;
|
|
2262
|
+
return {
|
|
2263
|
+
backgroundColor: theme.palette.background["default"],
|
|
2264
|
+
backgroundImage: "linear-gradient(" + alpha(theme.palette.common.white, 0.05) + "," + alpha(theme.palette.common.white, 0.05) + ")",
|
|
2265
|
+
display: 'grid',
|
|
2266
|
+
padding: '0 0.5rem !important',
|
|
2267
|
+
position: fullScreen ? 'sticky' : undefined,
|
|
2268
|
+
top: fullScreen ? '0' : undefined,
|
|
2269
|
+
width: 'calc(100% - 1rem)',
|
|
2270
|
+
zIndex: 1
|
|
2271
|
+
};
|
|
2260
2272
|
});
|
|
2261
2273
|
var ToolbarTopRow = /*#__PURE__*/styled('div')({
|
|
2262
|
-
padding: '
|
|
2274
|
+
padding: '0.5rem',
|
|
2263
2275
|
display: 'flex',
|
|
2264
2276
|
justifyContent: 'space-between'
|
|
2265
2277
|
});
|
|
@@ -2279,21 +2291,37 @@ var MRT_ToolbarTop = function MRT_ToolbarTop() {
|
|
|
2279
2291
|
muiTableToolbarTopProps = _useMRT.muiTableToolbarTopProps,
|
|
2280
2292
|
positionPagination = _useMRT.positionPagination,
|
|
2281
2293
|
positionToolbarActions = _useMRT.positionToolbarActions,
|
|
2294
|
+
fullScreen = _useMRT.fullScreen,
|
|
2282
2295
|
positionToolbarAlertBanner = _useMRT.positionToolbarAlertBanner,
|
|
2283
2296
|
renderToolbarCustomActions = _useMRT.renderToolbarCustomActions,
|
|
2284
2297
|
tableInstance = _useMRT.tableInstance;
|
|
2285
2298
|
|
|
2286
2299
|
var toolbarProps = muiTableToolbarTopProps instanceof Function ? muiTableToolbarTopProps(tableInstance) : muiTableToolbarTopProps;
|
|
2287
2300
|
return React.createElement(Toolbar, Object.assign({
|
|
2301
|
+
fullScreen: fullScreen,
|
|
2288
2302
|
variant: "dense"
|
|
2289
2303
|
}, 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), !hideToolbarActions && positionToolbarActions === 'top' && React.createElement(MRT_ToolbarInternalButtons, null))), React.createElement("div", null, !manualPagination && ['top', 'both'].includes(positionPagination != null ? positionPagination : '') && React.createElement(MRT_TablePagination, null)));
|
|
2290
2304
|
};
|
|
2291
2305
|
|
|
2292
|
-
var Toolbar$1 = /*#__PURE__*/styled(Toolbar$2
|
|
2293
|
-
|
|
2294
|
-
|
|
2295
|
-
|
|
2296
|
-
|
|
2306
|
+
var Toolbar$1 = /*#__PURE__*/styled(Toolbar$2, {
|
|
2307
|
+
shouldForwardProp: function shouldForwardProp(prop) {
|
|
2308
|
+
return prop !== 'fullScreen';
|
|
2309
|
+
}
|
|
2310
|
+
})(function (_ref) {
|
|
2311
|
+
var fullScreen = _ref.fullScreen,
|
|
2312
|
+
theme = _ref.theme;
|
|
2313
|
+
return {
|
|
2314
|
+
backgroundColor: theme.palette.background["default"],
|
|
2315
|
+
backgroundImage: "linear-gradient(" + alpha(theme.palette.common.white, 0.05) + "," + alpha(theme.palette.common.white, 0.05) + ")",
|
|
2316
|
+
bottom: fullScreen ? '0' : undefined,
|
|
2317
|
+
display: 'flex',
|
|
2318
|
+
justifyContent: 'space-between',
|
|
2319
|
+
overflowY: 'hidden',
|
|
2320
|
+
padding: '0 0.5rem !important',
|
|
2321
|
+
position: fullScreen ? 'fixed' : undefined,
|
|
2322
|
+
width: 'calc(100% - 1rem)',
|
|
2323
|
+
zIndex: 1
|
|
2324
|
+
};
|
|
2297
2325
|
});
|
|
2298
2326
|
var MRT_ToolbarBottom = function MRT_ToolbarBottom() {
|
|
2299
2327
|
var _useMRT = useMRT(),
|
|
@@ -2301,12 +2329,14 @@ var MRT_ToolbarBottom = function MRT_ToolbarBottom() {
|
|
|
2301
2329
|
manualPagination = _useMRT.manualPagination,
|
|
2302
2330
|
muiTableToolbarBottomProps = _useMRT.muiTableToolbarBottomProps,
|
|
2303
2331
|
positionPagination = _useMRT.positionPagination,
|
|
2332
|
+
fullScreen = _useMRT.fullScreen,
|
|
2304
2333
|
positionToolbarActions = _useMRT.positionToolbarActions,
|
|
2305
2334
|
positionToolbarAlertBanner = _useMRT.positionToolbarAlertBanner,
|
|
2306
2335
|
tableInstance = _useMRT.tableInstance;
|
|
2307
2336
|
|
|
2308
2337
|
var toolbarProps = muiTableToolbarBottomProps instanceof Function ? muiTableToolbarBottomProps(tableInstance) : muiTableToolbarBottomProps;
|
|
2309
2338
|
return React.createElement(Toolbar$1, Object.assign({
|
|
2339
|
+
fullScreen: fullScreen,
|
|
2310
2340
|
variant: "dense"
|
|
2311
2341
|
}, toolbarProps), !hideToolbarActions && 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
2342
|
};
|
|
@@ -2326,7 +2356,8 @@ var TableContainer = /*#__PURE__*/styled(TableContainer$1, {
|
|
|
2326
2356
|
right: fullScreen ? '0' : undefined,
|
|
2327
2357
|
top: fullScreen ? '0' : undefined,
|
|
2328
2358
|
transition: 'all 0.2s ease-in-out',
|
|
2329
|
-
width: fullScreen ? '100vw' : undefined
|
|
2359
|
+
width: fullScreen ? '100vw' : undefined,
|
|
2360
|
+
zIndex: fullScreen ? 1200 : 1
|
|
2330
2361
|
};
|
|
2331
2362
|
});
|
|
2332
2363
|
var CircularProgressWrapper = /*#__PURE__*/styled('div')(function (_ref2) {
|
|
@@ -2344,17 +2375,26 @@ var CircularProgressWrapper = /*#__PURE__*/styled('div')(function (_ref2) {
|
|
|
2344
2375
|
});
|
|
2345
2376
|
var MRT_TableContainer = function MRT_TableContainer() {
|
|
2346
2377
|
var _useMRT = useMRT(),
|
|
2347
|
-
muiTableContainerProps = _useMRT.muiTableContainerProps,
|
|
2348
|
-
hideToolbarTop = _useMRT.hideToolbarTop,
|
|
2349
|
-
hideToolbarBottom = _useMRT.hideToolbarBottom,
|
|
2350
2378
|
fullScreen = _useMRT.fullScreen,
|
|
2379
|
+
hideToolbarBottom = _useMRT.hideToolbarBottom,
|
|
2380
|
+
hideToolbarTop = _useMRT.hideToolbarTop,
|
|
2381
|
+
isFetching = _useMRT.isFetching,
|
|
2351
2382
|
isLoading = _useMRT.isLoading,
|
|
2352
|
-
|
|
2383
|
+
muiTableContainerProps = _useMRT.muiTableContainerProps,
|
|
2384
|
+
tableInstance = _useMRT.tableInstance;
|
|
2353
2385
|
|
|
2386
|
+
useEffect(function () {
|
|
2387
|
+
if (fullScreen) {
|
|
2388
|
+
document.body.style.overflow = 'hidden';
|
|
2389
|
+
} else {
|
|
2390
|
+
document.body.style.overflow = 'auto';
|
|
2391
|
+
}
|
|
2392
|
+
}, [fullScreen]);
|
|
2393
|
+
var tableContainerProps = muiTableContainerProps instanceof Function ? muiTableContainerProps(tableInstance) : muiTableContainerProps;
|
|
2354
2394
|
return React.createElement(TableContainer, Object.assign({
|
|
2355
2395
|
component: Paper,
|
|
2356
2396
|
fullScreen: fullScreen
|
|
2357
|
-
},
|
|
2397
|
+
}, tableContainerProps), !hideToolbarTop && React.createElement(MRT_ToolbarTop, null), isFetching && React.createElement(LinearProgress, null), isLoading && React.createElement(CircularProgressWrapper, null, React.createElement(CircularProgress, {
|
|
2358
2398
|
"aria-busy": "true",
|
|
2359
2399
|
"aria-label": "Loading data"
|
|
2360
2400
|
})), React.createElement(MRT_Table, null), !hideToolbarBottom && React.createElement(MRT_ToolbarBottom, null));
|