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