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 { ChangeEvent, MouseEvent, ReactNode } from 'react';
|
|
1
|
+
import { ChangeEvent, FC, MouseEvent, ReactNode } from 'react';
|
|
2
2
|
import { AlertProps, TableBodyProps, TableCellProps, TableContainerProps, TableFooterProps, TableHeadProps, TablePaginationProps, TableProps, TableRowProps, TextFieldProps, ToolbarProps } from '@mui/material';
|
|
3
3
|
import { Cell, Column, HeaderGroup, Row, TableInstance, TableOptions, UseExpandedOptions, UseFiltersOptions, UseGlobalFiltersOptions, UseGroupByOptions, UsePaginationOptions, UseResizeColumnsOptions, UseRowSelectOptions, UseRowStateOptions, UseSortByOptions, UseTableOptions } from 'react-table';
|
|
4
4
|
import { MRT_Localization } from './utils/localization';
|
|
@@ -24,7 +24,7 @@ export declare type MaterialReactTableProps<D extends {} = {}> = TableOptions<D>
|
|
|
24
24
|
enableSelection?: boolean;
|
|
25
25
|
hideTableFooter?: boolean;
|
|
26
26
|
hideTableHead?: boolean;
|
|
27
|
-
|
|
27
|
+
hideToolbarInternalActions?: boolean;
|
|
28
28
|
hideToolbarBottom?: boolean;
|
|
29
29
|
hideToolbarTop?: boolean;
|
|
30
30
|
isFetching?: boolean;
|
|
@@ -65,6 +65,13 @@ export declare type MaterialReactTableProps<D extends {} = {}> = TableOptions<D>
|
|
|
65
65
|
renderRowActionMenuItems?: (rowData: Row<D>, tableInstance: TableInstance<D>, closeMenu: () => void) => ReactNode[];
|
|
66
66
|
renderRowActions?: (row: Row<D>, tableInstance: TableInstance<D>) => ReactNode;
|
|
67
67
|
renderToolbarCustomActions?: (tableInstance: TableInstance<D>) => ReactNode;
|
|
68
|
+
renderToolbarInternalActions?: (tableInstance: TableInstance<D>, { MRT_ToggleSearchButton, MRT_ToggleFiltersButton, MRT_ShowHideColumnsButton, MRT_ToggleDensePaddingButton, MRT_FullScreenToggleButton, }: {
|
|
69
|
+
MRT_ToggleSearchButton: FC;
|
|
70
|
+
MRT_ToggleFiltersButton: FC;
|
|
71
|
+
MRT_ShowHideColumnsButton: FC;
|
|
72
|
+
MRT_ToggleDensePaddingButton: FC;
|
|
73
|
+
MRT_FullScreenToggleButton: FC;
|
|
74
|
+
}) => ReactNode;
|
|
68
75
|
};
|
|
69
76
|
declare const _default: <D extends {}>({ defaultColumn, localization, positionActionsColumn, positionPagination, positionToolbarActions, positionToolbarAlertBanner, ...rest }: MaterialReactTableProps<D>) => JSX.Element;
|
|
70
77
|
export default _default;
|
|
@@ -24,6 +24,8 @@ var CancelIcon = _interopDefault(require('@mui/icons-material/Cancel'));
|
|
|
24
24
|
var SearchIcon = _interopDefault(require('@mui/icons-material/Search'));
|
|
25
25
|
var FilterListOffIcon = _interopDefault(require('@mui/icons-material/FilterListOff'));
|
|
26
26
|
var ViewColumnIcon = _interopDefault(require('@mui/icons-material/ViewColumn'));
|
|
27
|
+
var DensityMediumIcon = _interopDefault(require('@mui/icons-material/DensityMedium'));
|
|
28
|
+
var DensitySmallIcon = _interopDefault(require('@mui/icons-material/DensitySmall'));
|
|
27
29
|
var SearchOffIcon = _interopDefault(require('@mui/icons-material/SearchOff'));
|
|
28
30
|
var FilterListIcon = _interopDefault(require('@mui/icons-material/Fullscreen'));
|
|
29
31
|
var FilterListOffIcon$1 = _interopDefault(require('@mui/icons-material/FullscreenExit'));
|
|
@@ -2083,8 +2085,8 @@ var MRT_ShowHideColumnsButton = function MRT_ShowHideColumnsButton() {
|
|
|
2083
2085
|
})));
|
|
2084
2086
|
};
|
|
2085
2087
|
|
|
2086
|
-
var
|
|
2087
|
-
var _localization$toggleD
|
|
2088
|
+
var MRT_ToggleDensePaddingButton = function MRT_ToggleDensePaddingButton() {
|
|
2089
|
+
var _localization$toggleD;
|
|
2088
2090
|
|
|
2089
2091
|
var _useMRT = useMRT(),
|
|
2090
2092
|
densePadding = _useMRT.densePadding,
|
|
@@ -2094,17 +2096,13 @@ var MRT_DensePaddingSwitch = function MRT_DensePaddingSwitch() {
|
|
|
2094
2096
|
return React__default.createElement(material.Tooltip, {
|
|
2095
2097
|
arrow: true,
|
|
2096
2098
|
title: (_localization$toggleD = localization == null ? void 0 : localization.toggleDensePaddingSwitchTitle) != null ? _localization$toggleD : ''
|
|
2097
|
-
}, React__default.createElement(material.
|
|
2098
|
-
|
|
2099
|
-
|
|
2100
|
-
},
|
|
2101
|
-
color: "default",
|
|
2102
|
-
checked: densePadding,
|
|
2103
|
-
size: "small",
|
|
2104
|
-
onChange: function onChange() {
|
|
2099
|
+
}, React__default.createElement(material.IconButton, {
|
|
2100
|
+
"aria-label": localization == null ? void 0 : localization.toggleDensePaddingSwitchTitle,
|
|
2101
|
+
onClick: function onClick() {
|
|
2105
2102
|
return setDensePadding(!densePadding);
|
|
2106
|
-
}
|
|
2107
|
-
|
|
2103
|
+
},
|
|
2104
|
+
size: "small"
|
|
2105
|
+
}, densePadding ? React__default.createElement(DensitySmallIcon, null) : React__default.createElement(DensityMediumIcon, null)));
|
|
2108
2106
|
};
|
|
2109
2107
|
|
|
2110
2108
|
var MRT_ToggleSearchButton = function MRT_ToggleSearchButton() {
|
|
@@ -2165,9 +2163,21 @@ var MRT_ToolbarInternalButtons = function MRT_ToolbarInternalButtons() {
|
|
|
2165
2163
|
disableColumnHiding = _useMRT.disableColumnHiding,
|
|
2166
2164
|
disableDensePaddingToggle = _useMRT.disableDensePaddingToggle,
|
|
2167
2165
|
disableGlobalFilter = _useMRT.disableGlobalFilter,
|
|
2168
|
-
disableFullScreenToggle = _useMRT.disableFullScreenToggle
|
|
2166
|
+
disableFullScreenToggle = _useMRT.disableFullScreenToggle,
|
|
2167
|
+
renderToolbarInternalActions = _useMRT.renderToolbarInternalActions,
|
|
2168
|
+
tableInstance = _useMRT.tableInstance;
|
|
2169
2169
|
|
|
2170
|
-
|
|
2170
|
+
if (renderToolbarInternalActions) {
|
|
2171
|
+
return React__default.createElement(React__default.Fragment, null, renderToolbarInternalActions(tableInstance, {
|
|
2172
|
+
MRT_ToggleSearchButton: MRT_ToggleSearchButton,
|
|
2173
|
+
MRT_ToggleFiltersButton: MRT_ToggleFiltersButton,
|
|
2174
|
+
MRT_ShowHideColumnsButton: MRT_ShowHideColumnsButton,
|
|
2175
|
+
MRT_ToggleDensePaddingButton: MRT_ToggleDensePaddingButton,
|
|
2176
|
+
MRT_FullScreenToggleButton: MRT_FullScreenToggleButton
|
|
2177
|
+
}));
|
|
2178
|
+
}
|
|
2179
|
+
|
|
2180
|
+
return React__default.createElement(ToolbarButtonsContainer, null, !disableGlobalFilter && React__default.createElement(MRT_ToggleSearchButton, null), !disableFilters && React__default.createElement(MRT_ToggleFiltersButton, null), !disableColumnHiding && React__default.createElement(MRT_ShowHideColumnsButton, null), !disableDensePaddingToggle && React__default.createElement(MRT_ToggleDensePaddingButton, null), !disableFullScreenToggle && React__default.createElement(MRT_FullScreenToggleButton, null));
|
|
2171
2181
|
};
|
|
2172
2182
|
|
|
2173
2183
|
var MRT_TablePagination = function MRT_TablePagination() {
|
|
@@ -2261,12 +2271,26 @@ var MRT_ToolbarAlertBanner = function MRT_ToolbarAlertBanner() {
|
|
|
2261
2271
|
}, alertProps), selectMessage, groupedByMessage));
|
|
2262
2272
|
};
|
|
2263
2273
|
|
|
2264
|
-
var Toolbar = /*#__PURE__*/material.styled(material.Toolbar
|
|
2265
|
-
|
|
2266
|
-
|
|
2274
|
+
var Toolbar = /*#__PURE__*/material.styled(material.Toolbar, {
|
|
2275
|
+
shouldForwardProp: function shouldForwardProp(prop) {
|
|
2276
|
+
return prop !== 'fullScreen';
|
|
2277
|
+
}
|
|
2278
|
+
})(function (_ref) {
|
|
2279
|
+
var fullScreen = _ref.fullScreen,
|
|
2280
|
+
theme = _ref.theme;
|
|
2281
|
+
return {
|
|
2282
|
+
backgroundColor: theme.palette.background["default"],
|
|
2283
|
+
backgroundImage: "linear-gradient(" + material.alpha(theme.palette.common.white, 0.05) + "," + material.alpha(theme.palette.common.white, 0.05) + ")",
|
|
2284
|
+
display: 'grid',
|
|
2285
|
+
padding: '0 0.5rem !important',
|
|
2286
|
+
position: fullScreen ? 'sticky' : undefined,
|
|
2287
|
+
top: fullScreen ? '0' : undefined,
|
|
2288
|
+
width: 'calc(100% - 1rem)',
|
|
2289
|
+
zIndex: 1
|
|
2290
|
+
};
|
|
2267
2291
|
});
|
|
2268
2292
|
var ToolbarTopRow = /*#__PURE__*/material.styled('div')({
|
|
2269
|
-
padding: '
|
|
2293
|
+
padding: '0.5rem',
|
|
2270
2294
|
display: 'flex',
|
|
2271
2295
|
justifyContent: 'space-between'
|
|
2272
2296
|
});
|
|
@@ -2281,41 +2305,59 @@ var MRT_ToolbarTop = function MRT_ToolbarTop() {
|
|
|
2281
2305
|
|
|
2282
2306
|
var _useMRT = useMRT(),
|
|
2283
2307
|
disableGlobalFilter = _useMRT.disableGlobalFilter,
|
|
2284
|
-
|
|
2308
|
+
hideToolbarInternalActions = _useMRT.hideToolbarInternalActions,
|
|
2285
2309
|
manualPagination = _useMRT.manualPagination,
|
|
2286
2310
|
muiTableToolbarTopProps = _useMRT.muiTableToolbarTopProps,
|
|
2287
2311
|
positionPagination = _useMRT.positionPagination,
|
|
2288
2312
|
positionToolbarActions = _useMRT.positionToolbarActions,
|
|
2313
|
+
fullScreen = _useMRT.fullScreen,
|
|
2289
2314
|
positionToolbarAlertBanner = _useMRT.positionToolbarAlertBanner,
|
|
2290
2315
|
renderToolbarCustomActions = _useMRT.renderToolbarCustomActions,
|
|
2291
2316
|
tableInstance = _useMRT.tableInstance;
|
|
2292
2317
|
|
|
2293
2318
|
var toolbarProps = muiTableToolbarTopProps instanceof Function ? muiTableToolbarTopProps(tableInstance) : muiTableToolbarTopProps;
|
|
2294
2319
|
return React__default.createElement(Toolbar, Object.assign({
|
|
2320
|
+
fullScreen: fullScreen,
|
|
2295
2321
|
variant: "dense"
|
|
2296
|
-
}, toolbarProps), positionToolbarAlertBanner === 'top' && React__default.createElement(MRT_ToolbarAlertBanner, null), React__default.createElement(ToolbarTopRow, null, (_renderToolbarCustomA = renderToolbarCustomActions == null ? void 0 : renderToolbarCustomActions(tableInstance)) != null ? _renderToolbarCustomA : React__default.createElement("span", null), React__default.createElement(ToolbarActionsContainer, null, !disableGlobalFilter && React__default.createElement(MRT_SearchTextField, null), !
|
|
2322
|
+
}, toolbarProps), positionToolbarAlertBanner === 'top' && React__default.createElement(MRT_ToolbarAlertBanner, null), React__default.createElement(ToolbarTopRow, null, (_renderToolbarCustomA = renderToolbarCustomActions == null ? void 0 : renderToolbarCustomActions(tableInstance)) != null ? _renderToolbarCustomA : React__default.createElement("span", null), React__default.createElement(ToolbarActionsContainer, null, !disableGlobalFilter && React__default.createElement(MRT_SearchTextField, null), !hideToolbarInternalActions && positionToolbarActions === 'top' && React__default.createElement(MRT_ToolbarInternalButtons, null))), React__default.createElement("div", null, !manualPagination && ['top', 'both'].includes(positionPagination != null ? positionPagination : '') && React__default.createElement(MRT_TablePagination, null)));
|
|
2297
2323
|
};
|
|
2298
2324
|
|
|
2299
|
-
var Toolbar$1 = /*#__PURE__*/material.styled(material.Toolbar
|
|
2300
|
-
|
|
2301
|
-
|
|
2302
|
-
|
|
2303
|
-
|
|
2325
|
+
var Toolbar$1 = /*#__PURE__*/material.styled(material.Toolbar, {
|
|
2326
|
+
shouldForwardProp: function shouldForwardProp(prop) {
|
|
2327
|
+
return prop !== 'fullScreen';
|
|
2328
|
+
}
|
|
2329
|
+
})(function (_ref) {
|
|
2330
|
+
var fullScreen = _ref.fullScreen,
|
|
2331
|
+
theme = _ref.theme;
|
|
2332
|
+
return {
|
|
2333
|
+
backgroundColor: theme.palette.background["default"],
|
|
2334
|
+
backgroundImage: "linear-gradient(" + material.alpha(theme.palette.common.white, 0.05) + "," + material.alpha(theme.palette.common.white, 0.05) + ")",
|
|
2335
|
+
bottom: fullScreen ? '0' : undefined,
|
|
2336
|
+
display: 'flex',
|
|
2337
|
+
justifyContent: 'space-between',
|
|
2338
|
+
overflowY: 'hidden',
|
|
2339
|
+
padding: '0 0.5rem !important',
|
|
2340
|
+
position: fullScreen ? 'fixed' : undefined,
|
|
2341
|
+
width: 'calc(100% - 1rem)',
|
|
2342
|
+
zIndex: 1
|
|
2343
|
+
};
|
|
2304
2344
|
});
|
|
2305
2345
|
var MRT_ToolbarBottom = function MRT_ToolbarBottom() {
|
|
2306
2346
|
var _useMRT = useMRT(),
|
|
2307
|
-
|
|
2347
|
+
hideToolbarInternalActions = _useMRT.hideToolbarInternalActions,
|
|
2308
2348
|
manualPagination = _useMRT.manualPagination,
|
|
2309
2349
|
muiTableToolbarBottomProps = _useMRT.muiTableToolbarBottomProps,
|
|
2310
2350
|
positionPagination = _useMRT.positionPagination,
|
|
2351
|
+
fullScreen = _useMRT.fullScreen,
|
|
2311
2352
|
positionToolbarActions = _useMRT.positionToolbarActions,
|
|
2312
2353
|
positionToolbarAlertBanner = _useMRT.positionToolbarAlertBanner,
|
|
2313
2354
|
tableInstance = _useMRT.tableInstance;
|
|
2314
2355
|
|
|
2315
2356
|
var toolbarProps = muiTableToolbarBottomProps instanceof Function ? muiTableToolbarBottomProps(tableInstance) : muiTableToolbarBottomProps;
|
|
2316
2357
|
return React__default.createElement(Toolbar$1, Object.assign({
|
|
2358
|
+
fullScreen: fullScreen,
|
|
2317
2359
|
variant: "dense"
|
|
2318
|
-
}, toolbarProps), !
|
|
2360
|
+
}, toolbarProps), !hideToolbarInternalActions && positionToolbarActions === 'bottom' ? React__default.createElement(MRT_ToolbarInternalButtons, null) : React__default.createElement("span", null), positionToolbarAlertBanner === 'bottom' && React__default.createElement(MRT_ToolbarAlertBanner, null), !manualPagination && ['bottom', 'both'].includes(positionPagination != null ? positionPagination : '') && React__default.createElement(MRT_TablePagination, null));
|
|
2319
2361
|
};
|
|
2320
2362
|
|
|
2321
2363
|
var TableContainer = /*#__PURE__*/material.styled(material.TableContainer, {
|
|
@@ -2329,12 +2371,12 @@ var TableContainer = /*#__PURE__*/material.styled(material.TableContainer, {
|
|
|
2329
2371
|
height: fullScreen ? '100%' : undefined,
|
|
2330
2372
|
left: fullScreen ? '0' : undefined,
|
|
2331
2373
|
margin: fullScreen ? '0' : undefined,
|
|
2332
|
-
position: fullScreen ? '
|
|
2374
|
+
position: fullScreen ? 'fixed' : undefined,
|
|
2333
2375
|
right: fullScreen ? '0' : undefined,
|
|
2334
2376
|
top: fullScreen ? '0' : undefined,
|
|
2335
2377
|
transition: 'all 0.2s ease-in-out',
|
|
2336
2378
|
width: fullScreen ? '100vw' : undefined,
|
|
2337
|
-
zIndex: fullScreen ? 1200 :
|
|
2379
|
+
zIndex: fullScreen ? 1200 : 1
|
|
2338
2380
|
};
|
|
2339
2381
|
});
|
|
2340
2382
|
var CircularProgressWrapper = /*#__PURE__*/material.styled('div')(function (_ref2) {
|
|
@@ -2360,6 +2402,13 @@ var MRT_TableContainer = function MRT_TableContainer() {
|
|
|
2360
2402
|
muiTableContainerProps = _useMRT.muiTableContainerProps,
|
|
2361
2403
|
tableInstance = _useMRT.tableInstance;
|
|
2362
2404
|
|
|
2405
|
+
React.useEffect(function () {
|
|
2406
|
+
if (fullScreen) {
|
|
2407
|
+
document.body.style.overflow = 'hidden';
|
|
2408
|
+
} else {
|
|
2409
|
+
document.body.style.overflow = 'auto';
|
|
2410
|
+
}
|
|
2411
|
+
}, [fullScreen]);
|
|
2363
2412
|
var tableContainerProps = muiTableContainerProps instanceof Function ? muiTableContainerProps(tableInstance) : muiTableContainerProps;
|
|
2364
2413
|
return React__default.createElement(TableContainer, Object.assign({
|
|
2365
2414
|
component: material.Paper,
|