material-react-table 0.4.6 → 0.4.9

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.
Files changed (53) hide show
  1. package/README.md +3 -2
  2. package/dist/MaterialReactTable.d.ts +68 -23
  3. package/dist/body/MRT_TableBodyCell.d.ts +2 -2
  4. package/dist/body/MRT_TableBodyRow.d.ts +2 -2
  5. package/dist/body/MRT_TableDetailPanel.d.ts +2 -2
  6. package/dist/buttons/MRT_EditActionButtons.d.ts +2 -2
  7. package/dist/buttons/MRT_ExpandButton.d.ts +2 -2
  8. package/dist/buttons/MRT_ToggleColumnActionMenuButton.d.ts +2 -2
  9. package/dist/buttons/MRT_ToggleRowActionMenuButton.d.ts +2 -2
  10. package/dist/footer/MRT_TableFooterCell.d.ts +2 -2
  11. package/dist/footer/MRT_TableFooterRow.d.ts +2 -2
  12. package/dist/head/MRT_TableHeadCell.d.ts +2 -2
  13. package/dist/head/MRT_TableHeadRow.d.ts +2 -2
  14. package/dist/inputs/MRT_EditCellTextField.d.ts +2 -2
  15. package/dist/inputs/MRT_FilterTextField.d.ts +2 -2
  16. package/dist/inputs/MRT_SelectCheckbox.d.ts +2 -2
  17. package/dist/material-react-table.cjs.development.js +42 -26
  18. package/dist/material-react-table.cjs.development.js.map +1 -1
  19. package/dist/material-react-table.cjs.production.min.js +1 -1
  20. package/dist/material-react-table.cjs.production.min.js.map +1 -1
  21. package/dist/material-react-table.esm.js +43 -27
  22. package/dist/material-react-table.esm.js.map +1 -1
  23. package/dist/menus/MRT_ColumnActionMenu.d.ts +2 -2
  24. package/dist/menus/MRT_RowActionMenu.d.ts +2 -2
  25. package/dist/menus/MRT_ShowHideColumnsMenu.d.ts +2 -2
  26. package/dist/useMRT.d.ts +4 -4
  27. package/package.json +1 -1
  28. package/src/@types/react-table-config.d.ts +18 -121
  29. package/src/MaterialReactTable.tsx +183 -23
  30. package/src/body/MRT_TableBody.tsx +2 -1
  31. package/src/body/MRT_TableBodyCell.tsx +2 -2
  32. package/src/body/MRT_TableBodyRow.tsx +6 -4
  33. package/src/body/MRT_TableDetailPanel.tsx +9 -16
  34. package/src/buttons/MRT_EditActionButtons.tsx +2 -2
  35. package/src/buttons/MRT_ExpandButton.tsx +2 -2
  36. package/src/buttons/MRT_ShowHideColumnsButton.tsx +2 -1
  37. package/src/buttons/MRT_ToggleColumnActionMenuButton.tsx +2 -2
  38. package/src/buttons/MRT_ToggleRowActionMenuButton.tsx +3 -3
  39. package/src/footer/MRT_TableFooter.tsx +2 -1
  40. package/src/footer/MRT_TableFooterCell.tsx +2 -2
  41. package/src/footer/MRT_TableFooterRow.tsx +3 -3
  42. package/src/head/MRT_TableHead.tsx +2 -1
  43. package/src/head/MRT_TableHeadCell.tsx +2 -2
  44. package/src/head/MRT_TableHeadRow.tsx +3 -3
  45. package/src/index.tsx +2 -0
  46. package/src/inputs/MRT_EditCellTextField.tsx +2 -2
  47. package/src/inputs/MRT_FilterTextField.tsx +3 -2
  48. package/src/inputs/MRT_SelectCheckbox.tsx +3 -3
  49. package/src/menus/MRT_ColumnActionMenu.tsx +2 -2
  50. package/src/menus/MRT_RowActionMenu.tsx +2 -2
  51. package/src/menus/MRT_ShowHideColumnsMenu.tsx +3 -2
  52. package/src/table/MRT_TableContainer.tsx +19 -1
  53. package/src/useMRT.tsx +18 -15
@@ -1,4 +1,4 @@
1
- import React, { useMemo, useState, useContext, createContext, Fragment } from 'react';
1
+ import React, { useMemo, useState, useContext, createContext, Fragment, useRef, 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 CancelIcon from '@mui/icons-material/Cancel';
@@ -98,17 +98,19 @@ var MaterialReactTableContext = /*#__PURE__*/function () {
98
98
  }();
99
99
 
100
100
  var MaterialReactTableProvider = function MaterialReactTableProvider(props) {
101
- var _props$defaultDensePa, _props$defaultFullScr, _props$defaultShowFil, _props$defaultShowSea;
101
+ var _props$initialState$d, _props$initialState, _props$initialState$f, _props$initialState2, _props$initialState$s, _props$initialState3, _props$initialState$s2, _props$initialState4;
102
102
 
103
103
  var hooks = [useFilters, useGlobalFilter, useGroupBy, useSortBy, useExpanded, usePagination, useRowSelect];
104
104
  if (props.enableColumnResizing) hooks.unshift(useResizeColumns, useFlexLayout);
105
105
  var tableInstance = useTable.apply(void 0, [props].concat(hooks));
106
- var anyRowsCanExpand = useMemo(function () {
106
+ var anyRowsCanExpand = useMemo( // @ts-ignore
107
+ function () {
107
108
  return tableInstance.rows.some(function (row) {
108
109
  return row.canExpand;
109
110
  });
110
111
  }, [tableInstance.rows]);
111
- var anyRowsExpanded = useMemo(function () {
112
+ var anyRowsExpanded = useMemo( // @ts-ignore
113
+ function () {
112
114
  return tableInstance.rows.some(function (row) {
113
115
  return row.isExpanded;
114
116
  });
@@ -118,19 +120,19 @@ var MaterialReactTableProvider = function MaterialReactTableProvider(props) {
118
120
  currentEditingRow = _useState[0],
119
121
  setCurrentEditingRow = _useState[1];
120
122
 
121
- var _useState2 = useState((_props$defaultDensePa = props.defaultDensePadding) != null ? _props$defaultDensePa : false),
123
+ var _useState2 = useState((_props$initialState$d = (_props$initialState = props.initialState) == null ? void 0 : _props$initialState.densePadding) != null ? _props$initialState$d : false),
122
124
  densePadding = _useState2[0],
123
125
  setDensePadding = _useState2[1];
124
126
 
125
- var _useState3 = useState((_props$defaultFullScr = props.defaultFullScreen) != null ? _props$defaultFullScr : false),
127
+ var _useState3 = useState((_props$initialState$f = (_props$initialState2 = props.initialState) == null ? void 0 : _props$initialState2.fullScreen) != null ? _props$initialState$f : false),
126
128
  fullScreen = _useState3[0],
127
129
  setFullScreen = _useState3[1];
128
130
 
129
- var _useState4 = useState((_props$defaultShowFil = props.defaultShowFilters) != null ? _props$defaultShowFil : false),
131
+ var _useState4 = useState((_props$initialState$s = (_props$initialState3 = props.initialState) == null ? void 0 : _props$initialState3.showFilters) != null ? _props$initialState$s : false),
130
132
  showFilters = _useState4[0],
131
133
  setShowFilters = _useState4[1];
132
134
 
133
- var _useState5 = useState((_props$defaultShowSea = props.defaultShowSearchTextField) != null ? _props$defaultShowSea : false),
135
+ var _useState5 = useState((_props$initialState$s2 = (_props$initialState4 = props.initialState) == null ? void 0 : _props$initialState4.showSearchTextField) != null ? _props$initialState$s2 : false),
134
136
  showSearch = _useState5[0],
135
137
  setShowSearch = _useState5[1];
136
138
 
@@ -154,7 +156,7 @@ var MaterialReactTableProvider = function MaterialReactTableProvider(props) {
154
156
  }, props.children);
155
157
  };
156
158
  var useMRT = function useMRT() {
157
- return (//@ts-ignore
159
+ return (// @ts-ignore
158
160
  useContext(MaterialReactTableContext)
159
161
  );
160
162
  };
@@ -495,8 +497,10 @@ var MRT_SelectCheckbox = function MRT_SelectCheckbox(_ref) {
495
497
 
496
498
  var onSelectChange = function onSelectChange(event) {
497
499
  if (selectAll) {
500
+ var _tableInstance$getTog;
501
+
502
+ tableInstance == null ? void 0 : tableInstance.getToggleAllRowsSelectedProps == null ? void 0 : (_tableInstance$getTog = tableInstance.getToggleAllRowsSelectedProps()) == null ? void 0 : _tableInstance$getTog.onChange == null ? void 0 : _tableInstance$getTog.onChange(event);
498
503
  onSelectAllChange == null ? void 0 : onSelectAllChange(event, tableInstance.selectedFlatRows);
499
- tableInstance.toggleAllRowsSelected(event.target.checked);
500
504
  } else if (row) {
501
505
  var _row$getToggleRowSele;
502
506
 
@@ -733,32 +737,25 @@ var TableCell = /*#__PURE__*/styled(TableCell$3, {
733
737
  };
734
738
  });
735
739
  var MRT_TableDetailPanel = function MRT_TableDetailPanel(_ref2) {
736
- var _mTableBodyRowProps$s, _mTableDetailPanelPro;
740
+ var _mTableBodyRowProps$s;
737
741
 
738
742
  var row = _ref2.row;
739
743
 
740
744
  var _useMRT = useMRT(),
741
- tableInstance = _useMRT.tableInstance,
742
- renderDetailPanel = _useMRT.renderDetailPanel,
743
- muiTableDetailPanelProps = _useMRT.muiTableDetailPanelProps,
744
745
  muiTableBodyRowProps = _useMRT.muiTableBodyRowProps,
745
- onDetailPanelClick = _useMRT.onDetailPanelClick;
746
+ muiTableDetailPanelProps = _useMRT.muiTableDetailPanelProps,
747
+ onDetailPanelClick = _useMRT.onDetailPanelClick,
748
+ renderDetailPanel = _useMRT.renderDetailPanel,
749
+ tableInstance = _useMRT.tableInstance;
746
750
 
747
751
  var mTableBodyRowProps = muiTableBodyRowProps instanceof Function ? muiTableBodyRowProps(row) : muiTableBodyRowProps;
748
752
 
749
- var tableRowProps = _extends({}, mTableBodyRowProps, row.getToggleRowExpandedProps(), {
750
- style: _extends({}, row.getToggleRowExpandedProps().style, (_mTableBodyRowProps$s = mTableBodyRowProps == null ? void 0 : mTableBodyRowProps.style) != null ? _mTableBodyRowProps$s : {})
751
- });
752
-
753
- var mTableDetailPanelProps = muiTableDetailPanelProps instanceof Function ? muiTableDetailPanelProps(row) : muiTableDetailPanelProps;
754
-
755
- var tableCellProps = _extends({}, mTableDetailPanelProps, {
756
- style: _extends({}, (_mTableDetailPanelPro = mTableDetailPanelProps == null ? void 0 : mTableDetailPanelProps.style) != null ? _mTableDetailPanelPro : {})
753
+ var tableRowProps = _extends({}, mTableBodyRowProps, row.getRowProps(), {
754
+ style: _extends({}, row.getRowProps().style, (_mTableBodyRowProps$s = mTableBodyRowProps == null ? void 0 : mTableBodyRowProps.style) != null ? _mTableBodyRowProps$s : {})
757
755
  });
758
756
 
759
- return React.createElement(TableRow$1, Object.assign({
760
- hover: true
761
- }, tableRowProps), React.createElement(TableCell, Object.assign({
757
+ var tableCellProps = muiTableDetailPanelProps instanceof Function ? muiTableDetailPanelProps(row) : muiTableDetailPanelProps;
758
+ return React.createElement(TableRow$1, Object.assign({}, tableRowProps), React.createElement(TableCell, Object.assign({
762
759
  colSpan: tableInstance.visibleColumns.length + 10,
763
760
  isExpanded: row.isExpanded,
764
761
  onClick: function onClick(event) {
@@ -1775,7 +1772,7 @@ var MRT_TableBodyRow = function MRT_TableBodyRow(_ref2) {
1775
1772
  });
1776
1773
  }), (enableRowActions || enableRowEditing) && positionActionsColumn === 'last' && React.createElement(MRT_ToggleRowActionMenuButton, {
1777
1774
  row: row
1778
- })), renderDetailPanel && React.createElement(MRT_TableDetailPanel, {
1775
+ })), renderDetailPanel && !row.isGrouped && React.createElement(MRT_TableDetailPanel, {
1779
1776
  row: row
1780
1777
  }));
1781
1778
  };
@@ -2424,6 +2421,25 @@ var MRT_TableContainer = function MRT_TableContainer() {
2424
2421
  muiTableContainerProps = _useMRT.muiTableContainerProps,
2425
2422
  tableInstance = _useMRT.tableInstance;
2426
2423
 
2424
+ var originalBodyOverflowStyle = useRef();
2425
+ useEffect(function () {
2426
+ if (typeof window !== 'undefined') {
2427
+ var _document, _document$body, _document$body$style;
2428
+
2429
+ originalBodyOverflowStyle.current = (_document = document) == null ? void 0 : (_document$body = _document.body) == null ? void 0 : (_document$body$style = _document$body.style) == null ? void 0 : _document$body$style.overflow;
2430
+ }
2431
+ }, []);
2432
+ useEffect(function () {
2433
+ if (typeof window !== 'undefined') {
2434
+ if (fullScreen) {
2435
+ document.body.style.overflow = 'hidden';
2436
+ } else {
2437
+ var _originalBodyOverflow;
2438
+
2439
+ document.body.style.overflow = (_originalBodyOverflow = originalBodyOverflowStyle.current) != null ? _originalBodyOverflow : 'auto';
2440
+ }
2441
+ }
2442
+ }, [fullScreen]);
2427
2443
  var tableContainerProps = muiTableContainerProps instanceof Function ? muiTableContainerProps(tableInstance) : muiTableContainerProps;
2428
2444
  return React.createElement(TableContainer, Object.assign({
2429
2445
  component: Paper,