mui-universal-table 2.0.11 → 2.1.1
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/index.cjs +99 -96
- package/dist/index.cjs.map +1 -1
- package/dist/index.esm.js +99 -96
- package/dist/index.esm.js.map +1 -1
- package/package.json +4 -7
package/dist/index.esm.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React from 'react';
|
|
1
|
+
import React$1 from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import Paper$1 from '@mui/material/Paper';
|
|
4
4
|
import { Collapse, Box, Typography, LinearProgress, IconButton, Tooltip, Button, Paper, InputBase, Stack, Divider, Toolbar, TableHead, TableRow, TableCell, Checkbox, TableSortLabel, Badge, TableBody, Skeleton, TableContainer, Table, TablePagination } from '@mui/material';
|
|
@@ -296,14 +296,14 @@ function stableSort(array, comparator, headers, orderBy) {
|
|
|
296
296
|
}
|
|
297
297
|
|
|
298
298
|
function useSearchableRows(data, headers, async) {
|
|
299
|
-
var _React$useState = React.useState(""),
|
|
299
|
+
var _React$useState = React$1.useState(""),
|
|
300
300
|
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
301
301
|
searchTerm = _React$useState2[0],
|
|
302
302
|
setSearchTerm = _React$useState2[1];
|
|
303
|
-
var filterOptions = React.useMemo(function () {
|
|
303
|
+
var filterOptions = React$1.useMemo(function () {
|
|
304
304
|
return getSearchableColumnIds(headers);
|
|
305
305
|
}, [headers]);
|
|
306
|
-
var rows = React.useMemo(function () {
|
|
306
|
+
var rows = React$1.useMemo(function () {
|
|
307
307
|
return async ? data : filterRows(data, searchTerm, filterOptions);
|
|
308
308
|
}, [async, data, filterOptions, searchTerm]);
|
|
309
309
|
return {
|
|
@@ -317,14 +317,14 @@ function useSelectableRows(_ref) {
|
|
|
317
317
|
var rows = _ref.rows,
|
|
318
318
|
selectRows = _ref.selectRows,
|
|
319
319
|
selectID = _ref.selectID;
|
|
320
|
-
var _React$useState = React.useState([]),
|
|
320
|
+
var _React$useState = React$1.useState([]),
|
|
321
321
|
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
322
322
|
selected = _React$useState2[0],
|
|
323
323
|
setSelected = _React$useState2[1];
|
|
324
|
-
var clearSelection = React.useCallback(function () {
|
|
324
|
+
var clearSelection = React$1.useCallback(function () {
|
|
325
325
|
setSelected([]);
|
|
326
326
|
}, []);
|
|
327
|
-
var handleSelectAllClick = React.useCallback(function (event) {
|
|
327
|
+
var handleSelectAllClick = React$1.useCallback(function (event) {
|
|
328
328
|
if (!event.target.checked) {
|
|
329
329
|
setSelected([]);
|
|
330
330
|
return;
|
|
@@ -334,7 +334,7 @@ function useSelectableRows(_ref) {
|
|
|
334
334
|
});
|
|
335
335
|
setSelected(newSelected);
|
|
336
336
|
}, [rows, selectID]);
|
|
337
|
-
var handleClick = React.useCallback(function (event, id) {
|
|
337
|
+
var handleClick = React$1.useCallback(function (event, id) {
|
|
338
338
|
if (!selectRows) {
|
|
339
339
|
return;
|
|
340
340
|
}
|
|
@@ -433,7 +433,7 @@ ReloadBtn.propTypes = {
|
|
|
433
433
|
function FancySearch(_ref) {
|
|
434
434
|
var value = _ref.value,
|
|
435
435
|
onSubmit = _ref.onSubmit;
|
|
436
|
-
var _React$useState = React.useState(Boolean(value)),
|
|
436
|
+
var _React$useState = React$1.useState(Boolean(value)),
|
|
437
437
|
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
438
438
|
hover = _React$useState2[0],
|
|
439
439
|
setHover = _React$useState2[1];
|
|
@@ -449,10 +449,10 @@ function FancySearch(_ref) {
|
|
|
449
449
|
// Sync internal state when the parent clears/changes the search term.
|
|
450
450
|
// A ref tracks whether this sync came from the user typing or from a parent
|
|
451
451
|
// update, so the debounce only fires for genuine user input.
|
|
452
|
-
var
|
|
453
|
-
return /*#__PURE__*/React.createElement("form", {
|
|
452
|
+
var isUserTypingRef = React$1.useRef(false);
|
|
453
|
+
return /*#__PURE__*/React$1.createElement("form", {
|
|
454
454
|
onSubmit: handleSubmit
|
|
455
|
-
}, /*#__PURE__*/React.createElement(Paper, {
|
|
455
|
+
}, /*#__PURE__*/React$1.createElement(Paper, {
|
|
456
456
|
elevation: 0,
|
|
457
457
|
sx: {
|
|
458
458
|
borderRadius: expanded ? "24px" : "50px",
|
|
@@ -473,11 +473,11 @@ function FancySearch(_ref) {
|
|
|
473
473
|
onKeyDown: function onKeyDown(e) {
|
|
474
474
|
return e.key === "Enter" && handleSubmit(e);
|
|
475
475
|
}
|
|
476
|
-
}, /*#__PURE__*/React.createElement(InputBase, {
|
|
476
|
+
}, /*#__PURE__*/React$1.createElement(InputBase, {
|
|
477
477
|
placeholder: "Search",
|
|
478
478
|
value: value,
|
|
479
479
|
onChange: function onChange(e) {
|
|
480
|
-
|
|
480
|
+
isUserTypingRef.current = true;
|
|
481
481
|
onSubmit(e.target.value);
|
|
482
482
|
},
|
|
483
483
|
sx: _objectSpread2({
|
|
@@ -488,30 +488,30 @@ function FancySearch(_ref) {
|
|
|
488
488
|
margin: 0
|
|
489
489
|
}),
|
|
490
490
|
onBlur: handleEndHover
|
|
491
|
-
}), /*#__PURE__*/React.createElement(Collapse, {
|
|
491
|
+
}), /*#__PURE__*/React$1.createElement(Collapse, {
|
|
492
492
|
"in": Boolean(value),
|
|
493
493
|
orientation: "horizontal",
|
|
494
494
|
unmountOnExit: true
|
|
495
|
-
}, /*#__PURE__*/React.createElement(Stack, {
|
|
495
|
+
}, /*#__PURE__*/React$1.createElement(Stack, {
|
|
496
496
|
direction: "row",
|
|
497
497
|
spacing: 0,
|
|
498
498
|
sx: {
|
|
499
499
|
mr: 3,
|
|
500
500
|
alignItems: "center"
|
|
501
501
|
}
|
|
502
|
-
}, /*#__PURE__*/React.createElement(IconButton, {
|
|
502
|
+
}, /*#__PURE__*/React$1.createElement(IconButton, {
|
|
503
503
|
onClick: function onClick() {
|
|
504
|
-
|
|
504
|
+
isUserTypingRef.current = false;
|
|
505
505
|
// Immediately clear instead of waiting for the debounce
|
|
506
506
|
onSubmit("");
|
|
507
507
|
}
|
|
508
|
-
}, /*#__PURE__*/React.createElement(Clear, null)), /*#__PURE__*/React.createElement(Divider, {
|
|
508
|
+
}, /*#__PURE__*/React$1.createElement(Clear, null)), /*#__PURE__*/React$1.createElement(Divider, {
|
|
509
509
|
orientation: "vertical",
|
|
510
510
|
flexItem: true
|
|
511
|
-
}))), /*#__PURE__*/React.createElement(IconButton, {
|
|
511
|
+
}))), /*#__PURE__*/React$1.createElement(IconButton, {
|
|
512
512
|
onClick: handleSubmit,
|
|
513
513
|
type: "submit"
|
|
514
|
-
}, /*#__PURE__*/React.createElement(Search, null))));
|
|
514
|
+
}, /*#__PURE__*/React$1.createElement(Search, null))));
|
|
515
515
|
}
|
|
516
516
|
FancySearch.propTypes = {
|
|
517
517
|
value: PropTypes.string,
|
|
@@ -523,7 +523,7 @@ function SearchArea(props) {
|
|
|
523
523
|
setFinalVal = props.setFinalVal,
|
|
524
524
|
searchName = props.searchName,
|
|
525
525
|
persistSearch = props.persistSearch;
|
|
526
|
-
var searchVal = React.useMemo(function () {
|
|
526
|
+
var searchVal = React$1.useMemo(function () {
|
|
527
527
|
if (current !== undefined && current !== null) return current;
|
|
528
528
|
if (persistSearch && searchName) {
|
|
529
529
|
var _sessionStorage$getIt;
|
|
@@ -531,9 +531,9 @@ function SearchArea(props) {
|
|
|
531
531
|
}
|
|
532
532
|
return "";
|
|
533
533
|
}, [current, persistSearch, searchName]);
|
|
534
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
534
|
+
return /*#__PURE__*/React$1.createElement("div", {
|
|
535
535
|
key: "SearchArea"
|
|
536
|
-
}, /*#__PURE__*/React.createElement(FancySearch, {
|
|
536
|
+
}, /*#__PURE__*/React$1.createElement(FancySearch, {
|
|
537
537
|
value: searchVal,
|
|
538
538
|
onSubmit: setFinalVal
|
|
539
539
|
}));
|
|
@@ -623,7 +623,7 @@ function useEnhancedTableState(_ref2) {
|
|
|
623
623
|
order = _ref2.order,
|
|
624
624
|
orderBy = _ref2.orderBy,
|
|
625
625
|
asyncPages = _ref2.asyncPages;
|
|
626
|
-
var _React$useState = React.useState(function () {
|
|
626
|
+
var _React$useState = React$1.useState(function () {
|
|
627
627
|
return {
|
|
628
628
|
page: 0,
|
|
629
629
|
rowsPerPage: getInitialRowsPerPage({
|
|
@@ -637,8 +637,10 @@ function useEnhancedTableState(_ref2) {
|
|
|
637
637
|
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
638
638
|
pagination = _React$useState2[0],
|
|
639
639
|
setPagination = _React$useState2[1];
|
|
640
|
-
React.useEffect(function () {
|
|
641
|
-
//
|
|
640
|
+
React$1.useEffect(function () {
|
|
641
|
+
// Resetting derived pagination state here intentionally preserves the
|
|
642
|
+
// current rows-per-page choice while jumping back to the first page.
|
|
643
|
+
// eslint-disable-next-line @eslint-react/set-state-in-effect
|
|
642
644
|
setPagination(function (previous) {
|
|
643
645
|
if (previous.resetFlag === resetFlag) {
|
|
644
646
|
return previous;
|
|
@@ -651,19 +653,19 @@ function useEnhancedTableState(_ref2) {
|
|
|
651
653
|
}, [resetFlag]);
|
|
652
654
|
var page = pagination.page;
|
|
653
655
|
var rowsPerPage = subTable ? rows.length : pagination.rowsPerPage;
|
|
654
|
-
var handleRequestSort = React.useCallback(function (property) {
|
|
656
|
+
var handleRequestSort = React$1.useCallback(function (property) {
|
|
655
657
|
var isAsc = orderBy === property && order === "asc";
|
|
656
658
|
setOrder(isAsc ? "desc" : "asc");
|
|
657
659
|
setOrderBy(property);
|
|
658
660
|
}, [order, orderBy, setOrder, setOrderBy]);
|
|
659
|
-
var handleChangePage = React.useCallback(function (event, newPage) {
|
|
661
|
+
var handleChangePage = React$1.useCallback(function (event, newPage) {
|
|
660
662
|
setPagination(function (previous) {
|
|
661
663
|
return _objectSpread2(_objectSpread2({}, previous), {}, {
|
|
662
664
|
page: newPage
|
|
663
665
|
});
|
|
664
666
|
});
|
|
665
667
|
}, []);
|
|
666
|
-
var handleChangeRowsPerPage = React.useCallback(function (event) {
|
|
668
|
+
var handleChangeRowsPerPage = React$1.useCallback(function (event) {
|
|
667
669
|
setPagination(function (previous) {
|
|
668
670
|
return _objectSpread2(_objectSpread2({}, previous), {}, {
|
|
669
671
|
page: 0,
|
|
@@ -749,7 +751,7 @@ EnhancedTableHead.propTypes = {
|
|
|
749
751
|
* UniversalTable → EnhancedTable → DataRow → SubTableRow → UniversalTable
|
|
750
752
|
* React.lazy resolves the import at render time, so the module graph stays acyclic.
|
|
751
753
|
*/
|
|
752
|
-
var UniversalTable$2 = /*#__PURE__*/React.lazy(function () {
|
|
754
|
+
var UniversalTable$2 = /*#__PURE__*/React$1.lazy(function () {
|
|
753
755
|
return Promise.resolve().then(function () { return UniversalTable$1; });
|
|
754
756
|
});
|
|
755
757
|
|
|
@@ -763,16 +765,16 @@ function SubRowToggleCell(_ref) {
|
|
|
763
765
|
onToggle = _ref.onToggle,
|
|
764
766
|
rowValues = _ref.rowValues,
|
|
765
767
|
hideBadge = _ref.hideBadge;
|
|
766
|
-
return /*#__PURE__*/React.createElement(TableCell, null, /*#__PURE__*/React.createElement(Tooltip, {
|
|
768
|
+
return /*#__PURE__*/React$1.createElement(TableCell, null, /*#__PURE__*/React$1.createElement(Tooltip, {
|
|
767
769
|
title: isOpen ? "Hide ".concat(header.id) : "Show ".concat(header.id)
|
|
768
|
-
}, /*#__PURE__*/React.createElement(Box, null, /*#__PURE__*/React.createElement(IconButton, {
|
|
770
|
+
}, /*#__PURE__*/React$1.createElement(Box, null, /*#__PURE__*/React$1.createElement(IconButton, {
|
|
769
771
|
onClick: function onClick(event) {
|
|
770
772
|
event.stopPropagation();
|
|
771
773
|
onToggle();
|
|
772
774
|
},
|
|
773
775
|
disabled: rowValues[header.id].length === 0,
|
|
774
776
|
color: header.iconColor || "secondary"
|
|
775
|
-
}, /*#__PURE__*/React.createElement(Badge, {
|
|
777
|
+
}, /*#__PURE__*/React$1.createElement(Badge, {
|
|
776
778
|
badgeContent: rowValues[header.id].length,
|
|
777
779
|
invisible: hideBadge,
|
|
778
780
|
anchorOrigin: {
|
|
@@ -786,7 +788,7 @@ function SubRowToggleCell(_ref) {
|
|
|
786
788
|
}
|
|
787
789
|
}
|
|
788
790
|
}
|
|
789
|
-
}, isOpen ? (header === null || header === void 0 ? void 0 : header.closeIcon) || /*#__PURE__*/React.createElement(RemoveCircle, null) : (header === null || header === void 0 ? void 0 : header.openIcon) || /*#__PURE__*/React.createElement(AddCircle, null))))));
|
|
791
|
+
}, isOpen ? (header === null || header === void 0 ? void 0 : header.closeIcon) || /*#__PURE__*/React$1.createElement(RemoveCircle, null) : (header === null || header === void 0 ? void 0 : header.openIcon) || /*#__PURE__*/React$1.createElement(AddCircle, null))))));
|
|
790
792
|
}
|
|
791
793
|
SubRowToggleCell.propTypes = {
|
|
792
794
|
header: PropTypes.object.isRequired,
|
|
@@ -805,19 +807,19 @@ function SubTableRow(_ref2) {
|
|
|
805
807
|
isOpen = _ref2.isOpen,
|
|
806
808
|
rowValues = _ref2.rowValues,
|
|
807
809
|
colSpan = _ref2.colSpan;
|
|
808
|
-
return /*#__PURE__*/React.createElement(TableRow, null, /*#__PURE__*/React.createElement(TableCell, {
|
|
810
|
+
return /*#__PURE__*/React$1.createElement(TableRow, null, /*#__PURE__*/React$1.createElement(TableCell, {
|
|
809
811
|
colSpan: colSpan,
|
|
810
812
|
style: {
|
|
811
813
|
paddingBottom: 0,
|
|
812
814
|
paddingTop: 0
|
|
813
815
|
}
|
|
814
|
-
}, /*#__PURE__*/React.createElement(Collapse, {
|
|
816
|
+
}, /*#__PURE__*/React$1.createElement(Collapse, {
|
|
815
817
|
"in": isOpen,
|
|
816
818
|
timeout: "auto",
|
|
817
819
|
unmountOnExit: true
|
|
818
|
-
}, /*#__PURE__*/React.createElement(React.Suspense, {
|
|
820
|
+
}, /*#__PURE__*/React$1.createElement(React$1.Suspense, {
|
|
819
821
|
fallback: null
|
|
820
|
-
}, /*#__PURE__*/React.createElement(UniversalTable$2, {
|
|
822
|
+
}, /*#__PURE__*/React$1.createElement(UniversalTable$2, {
|
|
821
823
|
loading: table.loading,
|
|
822
824
|
setLoading: table.setLoading,
|
|
823
825
|
onReload: table.onReload,
|
|
@@ -835,62 +837,64 @@ SubTableRow.propTypes = {
|
|
|
835
837
|
};
|
|
836
838
|
|
|
837
839
|
function renderDataCells(headers, rowValues) {
|
|
838
|
-
return headers.map(function (header
|
|
839
|
-
|
|
840
|
-
|
|
840
|
+
return headers.map(function (header) {
|
|
841
|
+
var _header$id;
|
|
842
|
+
return /*#__PURE__*/React$1.createElement(TableCell, _extends({
|
|
843
|
+
key: (_header$id = header.id) !== null && _header$id !== void 0 ? _header$id : header.label
|
|
841
844
|
}, header.cellProps), header.component ? header.component(rowValues) : formatCellValue(header, rowValues));
|
|
842
845
|
});
|
|
843
846
|
}
|
|
844
|
-
var DataRow = /*#__PURE__*/React.memo(function DataRow(props) {
|
|
847
|
+
var DataRow = /*#__PURE__*/React$1.memo(function DataRow(props) {
|
|
845
848
|
var rowValues = props.rowValues,
|
|
846
849
|
headers = props.headers,
|
|
847
850
|
selectRows = props.selectRows,
|
|
848
851
|
isSelected = props.isSelected,
|
|
849
852
|
handleClick = props.handleClick;
|
|
850
|
-
var _React$useMemo = React.useMemo(function () {
|
|
853
|
+
var _React$useMemo = React$1.useMemo(function () {
|
|
851
854
|
return splitHeaders(headers);
|
|
852
855
|
}, [headers]),
|
|
853
856
|
subTables = _React$useMemo.subTables,
|
|
854
857
|
columns = _React$useMemo.columns;
|
|
855
858
|
var hideBadge = props.hideBadge || false;
|
|
856
859
|
var isItemSelected = isSelected(props.rowID);
|
|
857
|
-
var _React$useState = React.useState(Array.from({
|
|
860
|
+
var _React$useState = React$1.useState(Array.from({
|
|
858
861
|
length: subTables.length
|
|
859
862
|
}).fill(false)),
|
|
860
863
|
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
861
864
|
reveal = _React$useState2[0],
|
|
862
865
|
setReveal = _React$useState2[1];
|
|
863
|
-
var toggleSubRow = React.useCallback(function (index) {
|
|
866
|
+
var toggleSubRow = React$1.useCallback(function (index) {
|
|
864
867
|
setReveal(function (previous) {
|
|
865
868
|
var next = _toConsumableArray(previous);
|
|
866
869
|
next[index] = !next[index];
|
|
867
870
|
return next;
|
|
868
871
|
});
|
|
869
872
|
}, []);
|
|
870
|
-
var handleRowKeyDown = React.useCallback(function (event) {
|
|
873
|
+
var handleRowKeyDown = React$1.useCallback(function (event) {
|
|
871
874
|
if (selectRows && (event.key === " " || event.key === "Enter")) {
|
|
872
875
|
event.preventDefault();
|
|
873
876
|
handleClick(event, props.rowID);
|
|
874
877
|
}
|
|
875
878
|
}, [selectRows, handleClick, props.rowID]);
|
|
876
|
-
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(TableRow, {
|
|
879
|
+
return /*#__PURE__*/React$1.createElement(React$1.Fragment, null, /*#__PURE__*/React$1.createElement(TableRow, {
|
|
877
880
|
tabIndex: selectRows ? 0 : -1,
|
|
878
881
|
hover: selectRows,
|
|
879
882
|
role: selectRows ? "checkbox" : "row",
|
|
880
883
|
selected: isItemSelected,
|
|
881
884
|
"aria-checked": isItemSelected,
|
|
882
885
|
onKeyDown: handleRowKeyDown
|
|
883
|
-
}, selectRows && /*#__PURE__*/React.createElement(TableCell, {
|
|
886
|
+
}, selectRows && /*#__PURE__*/React$1.createElement(TableCell, {
|
|
884
887
|
padding: "checkbox"
|
|
885
|
-
}, /*#__PURE__*/React.createElement(Checkbox, {
|
|
888
|
+
}, /*#__PURE__*/React$1.createElement(Checkbox, {
|
|
886
889
|
color: "primary",
|
|
887
890
|
checked: isItemSelected,
|
|
888
891
|
onClick: function onClick(event) {
|
|
889
892
|
return handleClick(event, props.rowID);
|
|
890
893
|
}
|
|
891
894
|
})), subTables.map(function (header, index) {
|
|
892
|
-
|
|
893
|
-
|
|
895
|
+
var _header$id2;
|
|
896
|
+
return /*#__PURE__*/React$1.createElement(SubRowToggleCell, {
|
|
897
|
+
key: (_header$id2 = header.id) !== null && _header$id2 !== void 0 ? _header$id2 : header.label,
|
|
894
898
|
header: header,
|
|
895
899
|
isOpen: reveal[index],
|
|
896
900
|
onToggle: function onToggle() {
|
|
@@ -900,8 +904,9 @@ var DataRow = /*#__PURE__*/React.memo(function DataRow(props) {
|
|
|
900
904
|
hideBadge: hideBadge
|
|
901
905
|
});
|
|
902
906
|
}), renderDataCells(columns, rowValues)), subTables.map(function (table, index) {
|
|
903
|
-
|
|
904
|
-
|
|
907
|
+
var _table$id;
|
|
908
|
+
return /*#__PURE__*/React$1.createElement(SubTableRow, {
|
|
909
|
+
key: (_table$id = table.id) !== null && _table$id !== void 0 ? _table$id : table.label,
|
|
905
910
|
table: table,
|
|
906
911
|
isOpen: reveal[index],
|
|
907
912
|
rowValues: rowValues,
|
|
@@ -919,17 +924,15 @@ DataRow.propTypes = {
|
|
|
919
924
|
rowID: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired
|
|
920
925
|
};
|
|
921
926
|
|
|
927
|
+
var skeletonRows = ["row-1", "row-2", "row-3", "row-4", "row-5"];
|
|
928
|
+
var skeletonCells = ["cell-1", "cell-2", "cell-3", "cell-4"];
|
|
922
929
|
var TableLoader = function TableLoader() {
|
|
923
|
-
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(TableHead, null), /*#__PURE__*/React.createElement(TableBody, null,
|
|
924
|
-
length: 5
|
|
925
|
-
}).map(function (_, index) {
|
|
930
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(TableHead, null), /*#__PURE__*/React.createElement(TableBody, null, skeletonRows.map(function (rowKey) {
|
|
926
931
|
return /*#__PURE__*/React.createElement(TableRow, {
|
|
927
|
-
key:
|
|
928
|
-
},
|
|
929
|
-
length: 4
|
|
930
|
-
}).map(function (_, cellIndex) {
|
|
932
|
+
key: rowKey
|
|
933
|
+
}, skeletonCells.map(function (cellKey) {
|
|
931
934
|
return /*#__PURE__*/React.createElement(TableCell, {
|
|
932
|
-
key:
|
|
935
|
+
key: cellKey
|
|
933
936
|
}, /*#__PURE__*/React.createElement(Skeleton, {
|
|
934
937
|
height: 30
|
|
935
938
|
}));
|
|
@@ -971,19 +974,19 @@ function EnhancedTable(props) {
|
|
|
971
974
|
handleChangeRowsPerPage = _useEnhancedTableStat.handleChangeRowsPerPage;
|
|
972
975
|
var effectiveRowsPerPage = rowsPerPage === -1 ? rows.length : rowsPerPage;
|
|
973
976
|
var emptyRows = Math.max(0, effectiveRowsPerPage - Math.min(effectiveRowsPerPage, rows.length - page * effectiveRowsPerPage));
|
|
974
|
-
var isSelected = React.useCallback(function (id) {
|
|
977
|
+
var isSelected = React$1.useCallback(function (id) {
|
|
975
978
|
return selected.includes(id);
|
|
976
979
|
}, [selected]);
|
|
977
|
-
var visibleRows = React.useMemo(function () {
|
|
980
|
+
var visibleRows = React$1.useMemo(function () {
|
|
978
981
|
return stableSort(rows, getComparator(order, orderBy), headers, orderBy).slice(page * effectiveRowsPerPage, page * effectiveRowsPerPage + effectiveRowsPerPage);
|
|
979
982
|
}, [effectiveRowsPerPage, headers, order, orderBy, page, rows]);
|
|
980
|
-
return /*#__PURE__*/React.createElement(TableContainer, null, /*#__PURE__*/React.createElement(Table, {
|
|
983
|
+
return /*#__PURE__*/React$1.createElement(TableContainer, null, /*#__PURE__*/React$1.createElement(Table, {
|
|
981
984
|
sx: {
|
|
982
985
|
minWidth: 750
|
|
983
986
|
},
|
|
984
987
|
size: "small" ,
|
|
985
988
|
"aria-label": props.name || "data table"
|
|
986
|
-
}, props.loading ? /*#__PURE__*/React.createElement(TableLoader, null) : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(EnhancedTableHead, {
|
|
989
|
+
}, props.loading ? /*#__PURE__*/React$1.createElement(TableLoader, null) : /*#__PURE__*/React$1.createElement(React$1.Fragment, null, /*#__PURE__*/React$1.createElement(EnhancedTableHead, {
|
|
987
990
|
order: order,
|
|
988
991
|
orderBy: orderBy,
|
|
989
992
|
onRequestSort: handleSort,
|
|
@@ -993,10 +996,10 @@ function EnhancedTable(props) {
|
|
|
993
996
|
rowCount: rows.length,
|
|
994
997
|
onSelectAllClick: props.handleSelectAllClick,
|
|
995
998
|
async: async
|
|
996
|
-
}), /*#__PURE__*/React.createElement(TableBody, null, visibleRows.map(function (row, index) {
|
|
999
|
+
}), /*#__PURE__*/React$1.createElement(TableBody, null, visibleRows.map(function (row, index) {
|
|
997
1000
|
var rowKey = selectID ? row[selectID] : "row-".concat(page * effectiveRowsPerPage + index);
|
|
998
1001
|
var rowID = getSelectableRowId(row, index, selectID);
|
|
999
|
-
return /*#__PURE__*/React.createElement(DataRow, {
|
|
1002
|
+
return /*#__PURE__*/React$1.createElement(DataRow, {
|
|
1000
1003
|
key: rowKey,
|
|
1001
1004
|
rowID: rowID,
|
|
1002
1005
|
headers: headers,
|
|
@@ -1006,17 +1009,17 @@ function EnhancedTable(props) {
|
|
|
1006
1009
|
handleClick: props.handleClick,
|
|
1007
1010
|
isSelected: isSelected
|
|
1008
1011
|
});
|
|
1009
|
-
}), !subTable && emptyRows > 0 && /*#__PURE__*/React.createElement(TableRow, {
|
|
1012
|
+
}), !subTable && emptyRows > 0 && /*#__PURE__*/React$1.createElement(TableRow, {
|
|
1010
1013
|
style: {
|
|
1011
1014
|
height: (33 ) * emptyRows
|
|
1012
1015
|
}
|
|
1013
|
-
}, /*#__PURE__*/React.createElement(TableCell, {
|
|
1016
|
+
}, /*#__PURE__*/React$1.createElement(TableCell, {
|
|
1014
1017
|
colSpan: headers.length
|
|
1015
|
-
}))))), subTable ? /*#__PURE__*/React.createElement(Box, {
|
|
1018
|
+
}))))), subTable ? /*#__PURE__*/React$1.createElement(Box, {
|
|
1016
1019
|
sx: {
|
|
1017
1020
|
mb: 3
|
|
1018
1021
|
}
|
|
1019
|
-
}) : /*#__PURE__*/React.createElement(TablePagination, {
|
|
1022
|
+
}) : /*#__PURE__*/React$1.createElement(TablePagination, {
|
|
1020
1023
|
rowsPerPageOptions: props.pageSizeOptions || getPageOptions(rows.length),
|
|
1021
1024
|
component: "div",
|
|
1022
1025
|
count: rows.length,
|
|
@@ -1079,18 +1082,19 @@ function UniversalTable(_ref) {
|
|
|
1079
1082
|
pageSizeOptions = _ref.pageSizeOptions,
|
|
1080
1083
|
persistSearch = _ref.persistSearch,
|
|
1081
1084
|
asyncPages = _ref.asyncPages;
|
|
1082
|
-
var debounceRef = React.useRef(null);
|
|
1085
|
+
var debounceRef = React$1.useRef(null);
|
|
1086
|
+
var hasLoadedInitialAsyncPageRef = React$1.useRef(false);
|
|
1083
1087
|
var async = typeof asyncPages === "number" && asyncPages > 0;
|
|
1084
1088
|
var head = headers || [];
|
|
1085
1089
|
var _useSearchableRows = useSearchableRows(data, head, async),
|
|
1086
1090
|
rows = _useSearchableRows.rows,
|
|
1087
1091
|
searchTerm = _useSearchableRows.searchTerm,
|
|
1088
1092
|
setSearchTerm = _useSearchableRows.setSearchTerm;
|
|
1089
|
-
var _React$useState = React.useState("asc"),
|
|
1093
|
+
var _React$useState = React$1.useState("asc"),
|
|
1090
1094
|
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
1091
1095
|
order = _React$useState2[0],
|
|
1092
1096
|
setOrder = _React$useState2[1];
|
|
1093
|
-
var _React$useState3 = React.useState(""),
|
|
1097
|
+
var _React$useState3 = React$1.useState(""),
|
|
1094
1098
|
_React$useState4 = _slicedToArray(_React$useState3, 2),
|
|
1095
1099
|
orderBy = _React$useState4[0],
|
|
1096
1100
|
setOrderBy = _React$useState4[1];
|
|
@@ -1103,7 +1107,7 @@ function UniversalTable(_ref) {
|
|
|
1103
1107
|
clearSelection = _useSelectableRows.clearSelection,
|
|
1104
1108
|
handleSelectAllClick = _useSelectableRows.handleSelectAllClick,
|
|
1105
1109
|
handleClick = _useSelectableRows.handleClick;
|
|
1106
|
-
var handleSearchChange = React.useCallback(function (value) {
|
|
1110
|
+
var handleSearchChange = React$1.useCallback(function (value) {
|
|
1107
1111
|
clearSelection();
|
|
1108
1112
|
setSearchTerm(value);
|
|
1109
1113
|
}, [clearSelection, setSearchTerm]);
|
|
@@ -1123,25 +1127,24 @@ function UniversalTable(_ref) {
|
|
|
1123
1127
|
handleSearchChange(searchValue);
|
|
1124
1128
|
}
|
|
1125
1129
|
};
|
|
1126
|
-
React.useEffect(function () {
|
|
1130
|
+
React$1.useEffect(function () {
|
|
1127
1131
|
return function () {
|
|
1128
1132
|
return clearTimeout(debounceRef.current);
|
|
1129
1133
|
};
|
|
1130
1134
|
}, []);
|
|
1131
|
-
React.useEffect(function () {
|
|
1132
|
-
if (async) {
|
|
1133
|
-
|
|
1134
|
-
searchTerm: searchTerm,
|
|
1135
|
-
direction: order,
|
|
1136
|
-
column: orderBy,
|
|
1137
|
-
pages: asyncPages
|
|
1138
|
-
});
|
|
1135
|
+
React$1.useEffect(function () {
|
|
1136
|
+
if (!async || hasLoadedInitialAsyncPageRef.current) {
|
|
1137
|
+
return;
|
|
1139
1138
|
}
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
|
|
1139
|
+
hasLoadedInitialAsyncPageRef.current = true;
|
|
1140
|
+
setLoading({
|
|
1141
|
+
searchTerm: searchTerm,
|
|
1142
|
+
direction: order,
|
|
1143
|
+
column: orderBy,
|
|
1144
|
+
pages: asyncPages
|
|
1145
|
+
});
|
|
1146
|
+
}, [async, asyncPages, order, orderBy, searchTerm, setLoading]);
|
|
1147
|
+
var handleReload = React$1.useCallback(function () {
|
|
1145
1148
|
if (typeof onReload === "function") {
|
|
1146
1149
|
onReload();
|
|
1147
1150
|
return;
|
|
@@ -1155,29 +1158,29 @@ function UniversalTable(_ref) {
|
|
|
1155
1158
|
} : true);
|
|
1156
1159
|
}
|
|
1157
1160
|
}, [async, onReload, setLoading, searchTerm, order, orderBy, asyncPages]);
|
|
1158
|
-
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(LazyLoadingIndicator, {
|
|
1161
|
+
return /*#__PURE__*/React$1.createElement(React$1.Fragment, null, /*#__PURE__*/React$1.createElement(LazyLoadingIndicator, {
|
|
1159
1162
|
show: lazyloading,
|
|
1160
1163
|
currentPage: currentPage,
|
|
1161
1164
|
totalPages: totalPages
|
|
1162
|
-
}), /*#__PURE__*/React.createElement(Paper$1, {
|
|
1165
|
+
}), /*#__PURE__*/React$1.createElement(Paper$1, {
|
|
1163
1166
|
sx: _objectSpread2({}, subTable && {
|
|
1164
1167
|
boxShadow: "none"
|
|
1165
1168
|
})
|
|
1166
|
-
}, /*#__PURE__*/React.createElement(TableSelectionBanner, {
|
|
1169
|
+
}, /*#__PURE__*/React$1.createElement(TableSelectionBanner, {
|
|
1167
1170
|
selected: selected,
|
|
1168
1171
|
onSelection: onSelection,
|
|
1169
1172
|
selectIcon: selectIcon
|
|
1170
|
-
}), /*#__PURE__*/React.createElement(TableTitle, {
|
|
1173
|
+
}), /*#__PURE__*/React$1.createElement(TableTitle, {
|
|
1171
1174
|
name: name,
|
|
1172
1175
|
subTable: subTable
|
|
1173
|
-
}), !subTable && /*#__PURE__*/React.createElement(TableToolbarContent, {
|
|
1176
|
+
}), !subTable && /*#__PURE__*/React$1.createElement(TableToolbarContent, {
|
|
1174
1177
|
onReload: typeof onReload === "function" || typeof setLoading === "function" ? handleReload : undefined,
|
|
1175
1178
|
reloadBtnLoading: reloadBtnLoading,
|
|
1176
1179
|
searchTerm: searchTerm,
|
|
1177
1180
|
onSearchChange: handleSearch,
|
|
1178
1181
|
name: name,
|
|
1179
1182
|
persistSearch: persistSearch
|
|
1180
|
-
}), /*#__PURE__*/React.createElement(EnhancedTable, {
|
|
1183
|
+
}), /*#__PURE__*/React$1.createElement(EnhancedTable, {
|
|
1181
1184
|
headers: head,
|
|
1182
1185
|
rows: rows,
|
|
1183
1186
|
resetFlag: searchTerm,
|