mui-universal-table 2.0.10 → 2.0.11

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 CHANGED
@@ -498,10 +498,10 @@ function FancySearch(_ref) {
498
498
  unmountOnExit: true
499
499
  }, /*#__PURE__*/React.createElement(material.Stack, {
500
500
  direction: "row",
501
- alignItems: "center",
502
501
  spacing: 0,
503
502
  sx: {
504
- mr: 3
503
+ mr: 3,
504
+ alignItems: "center"
505
505
  }
506
506
  }, /*#__PURE__*/React.createElement(material.IconButton, {
507
507
  onClick: function onClick() {
@@ -605,21 +605,36 @@ TableToolbarContent.propTypes = {
605
605
  persistSearch: PropTypes.bool
606
606
  };
607
607
 
608
- function useEnhancedTableState(_ref) {
608
+ function getInitialRowsPerPage(_ref) {
609
609
  var rows = _ref.rows,
610
610
  subTable = _ref.subTable,
611
- resetFlag = _ref.resetFlag,
612
- apiCall = _ref.apiCall,
613
- searchTerm = _ref.searchTerm,
614
- setOrder = _ref.setOrder,
615
- setOrderBy = _ref.setOrderBy,
616
- order = _ref.order,
617
- orderBy = _ref.orderBy,
618
- asyncPages = _ref.asyncPages;
611
+ pageSizeOptions = _ref.pageSizeOptions;
612
+ if (subTable) return rows.length;
613
+ if (Array.isArray(pageSizeOptions) && pageSizeOptions.length > 0) {
614
+ return pageSizeOptions[0];
615
+ }
616
+ return 5;
617
+ }
618
+ function useEnhancedTableState(_ref2) {
619
+ var rows = _ref2.rows,
620
+ subTable = _ref2.subTable,
621
+ pageSizeOptions = _ref2.pageSizeOptions,
622
+ resetFlag = _ref2.resetFlag,
623
+ apiCall = _ref2.apiCall,
624
+ searchTerm = _ref2.searchTerm,
625
+ setOrder = _ref2.setOrder,
626
+ setOrderBy = _ref2.setOrderBy,
627
+ order = _ref2.order,
628
+ orderBy = _ref2.orderBy,
629
+ asyncPages = _ref2.asyncPages;
619
630
  var _React$useState = React.useState(function () {
620
631
  return {
621
632
  page: 0,
622
- rowsPerPage: subTable ? rows.length : 5,
633
+ rowsPerPage: getInitialRowsPerPage({
634
+ rows: rows,
635
+ subTable: subTable,
636
+ pageSizeOptions: pageSizeOptions
637
+ }),
623
638
  resetFlag: resetFlag
624
639
  };
625
640
  }),
@@ -943,6 +958,7 @@ function EnhancedTable(props) {
943
958
  var _useEnhancedTableStat = useEnhancedTableState({
944
959
  rows: rows,
945
960
  subTable: subTable,
961
+ pageSizeOptions: props.pageSizeOptions,
946
962
  resetFlag: props.resetFlag,
947
963
  apiCall: setLoading,
948
964
  searchTerm: searchTerm,
@@ -957,13 +973,14 @@ function EnhancedTable(props) {
957
973
  handleSort = _useEnhancedTableStat.handleSort,
958
974
  handleChangePage = _useEnhancedTableStat.handleChangePage,
959
975
  handleChangeRowsPerPage = _useEnhancedTableStat.handleChangeRowsPerPage;
960
- var emptyRows = Math.max(0, rowsPerPage - Math.min(rowsPerPage, rows.length - page * rowsPerPage));
976
+ var effectiveRowsPerPage = rowsPerPage === -1 ? rows.length : rowsPerPage;
977
+ var emptyRows = Math.max(0, effectiveRowsPerPage - Math.min(effectiveRowsPerPage, rows.length - page * effectiveRowsPerPage));
961
978
  var isSelected = React.useCallback(function (id) {
962
979
  return selected.includes(id);
963
980
  }, [selected]);
964
981
  var visibleRows = React.useMemo(function () {
965
- return stableSort(rows, getComparator(order, orderBy), headers, orderBy).slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage);
966
- }, [headers, order, orderBy, page, rows, rowsPerPage]);
982
+ return stableSort(rows, getComparator(order, orderBy), headers, orderBy).slice(page * effectiveRowsPerPage, page * effectiveRowsPerPage + effectiveRowsPerPage);
983
+ }, [effectiveRowsPerPage, headers, order, orderBy, page, rows]);
967
984
  return /*#__PURE__*/React.createElement(material.TableContainer, null, /*#__PURE__*/React.createElement(material.Table, {
968
985
  sx: {
969
986
  minWidth: 750
@@ -981,7 +998,7 @@ function EnhancedTable(props) {
981
998
  onSelectAllClick: props.handleSelectAllClick,
982
999
  async: async
983
1000
  }), /*#__PURE__*/React.createElement(material.TableBody, null, visibleRows.map(function (row, index) {
984
- var rowKey = selectID ? row[selectID] : "row-".concat(page * rowsPerPage + index);
1001
+ var rowKey = selectID ? row[selectID] : "row-".concat(page * effectiveRowsPerPage + index);
985
1002
  var rowID = getSelectableRowId(row, index, selectID);
986
1003
  return /*#__PURE__*/React.createElement(DataRow, {
987
1004
  key: rowKey,
@@ -1124,6 +1141,9 @@ function UniversalTable(_ref) {
1124
1141
  pages: asyncPages
1125
1142
  });
1126
1143
  }
1144
+ // Run the initial async load once on mount; search/sort/reload handlers
1145
+ // send their own payloads after user interaction.
1146
+ // eslint-disable-next-line react-hooks/exhaustive-deps
1127
1147
  }, []);
1128
1148
  var handleReload = React.useCallback(function () {
1129
1149
  if (typeof onReload === "function") {
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../src/components/LazyLoadingIndicator.jsx","../src/utils/tableUtils.js","../src/hooks/useSearchableRows.js","../src/hooks/useSelectableRows.js","../src/components/TableSelectionBanner.jsx","../src/components/TableTitle.jsx","../src/components/ReloadBtn.jsx","../src/components/FancySearch.jsx","../src/components/SearchArea.jsx","../src/components/TableToolbarContent.jsx","../src/hooks/useEnhancedTableState.js","../src/components/EnhancedTableHead.jsx","../src/components/SubTableRow.jsx","../src/components/DataRow.jsx","../src/components/TableLoader.jsx","../src/components/EnhancedTable.jsx","../src/UniversalTable.jsx"],"sourcesContent":["import React from \"react\";\nimport { Box, LinearProgress, Typography, Collapse } from \"@mui/material\";\nimport PropTypes from \"prop-types\";\n\nconst LazyLoadingIndicator = ({ show, currentPage, totalPages }) => {\n return (\n <Collapse in={show} timeout=\"auto\" unmountOnExit>\n <Box sx={{ width: \"100%\", p: 2 }}>\n <Typography variant=\"body2\" color=\"text.secondary\" sx={{ mb: 1 }}>\n Loading page {currentPage} of {totalPages}...\n </Typography>\n <LinearProgress\n variant=\"determinate\"\n value={(currentPage / totalPages) * 100}\n />\n </Box>\n </Collapse>\n );\n};\n\nLazyLoadingIndicator.propTypes = {\n show: PropTypes.bool.isRequired,\n currentPage: PropTypes.number,\n totalPages: PropTypes.number,\n};\n\nexport default LazyLoadingIndicator;\n","/**\n * Standard visually-hidden style: content is accessible to screen readers\n * but invisible on screen. Defined locally to avoid importing from\n * @mui/utils which is not a declared peer dependency.\n */\nexport const visuallyHidden = {\n border: 0,\n clip: \"rect(0 0 0 0)\",\n height: \"1px\",\n margin: -1,\n overflow: \"hidden\",\n padding: 0,\n position: \"absolute\",\n whiteSpace: \"nowrap\",\n width: \"1px\",\n};\n\nexport function getSelectableRowId(row, index, selectID) {\n return selectID ? row[selectID] : index;\n}\n\nexport function getSearchableColumnIds(headers) {\n return headers\n .filter((column) => column.searchable)\n .map((column) => column.id);\n}\n\nexport function filterRows(data, searchTerm, filterOptions) {\n if (!searchTerm) {\n return data;\n }\n\n const term = searchTerm.toLocaleLowerCase();\n return data.filter((row) =>\n filterOptions.some((filterOption) =>\n String(row[filterOption]).toLocaleLowerCase().includes(term),\n ),\n );\n}\n\nexport function getPageOptions(rowCount) {\n if (rowCount <= 5) return [5];\n if (rowCount <= 10) return [5, rowCount];\n if (rowCount <= 25) return [5, 10, rowCount];\n if (rowCount < 50) return [5, 10, 25, rowCount];\n if (rowCount < 100) return [5, 10, 25, 50, rowCount];\n return [5, 10, 25, 50, 100, rowCount];\n}\n\nexport function splitHeaders(headers) {\n return headers.reduce(\n (groups, header) => {\n if (header.subRow) {\n groups.subTables.push(header);\n } else {\n groups.columns.push(header);\n }\n\n return groups;\n },\n { subTables: [], columns: [] },\n );\n}\n\nexport function descendingComparator(a, b, orderBy) {\n if (b[orderBy] < a[orderBy]) {\n return -1;\n }\n if (b[orderBy] > a[orderBy]) {\n return 1;\n }\n return 0;\n}\n\nexport function getComparator(order, orderBy) {\n return order === \"desc\"\n ? (a, b) => descendingComparator(a, b, orderBy)\n : (a, b) => -descendingComparator(a, b, orderBy);\n}\n\nconst browserDateTimeFormatter = new Intl.DateTimeFormat(undefined, {\n year: \"numeric\",\n month: \"short\",\n day: \"numeric\",\n hour: \"numeric\",\n minute: \"2-digit\",\n hour12: true,\n});\n\n/**\n * Format a cell value for display. Handles dates safely:\n * returns the raw value for non-date headers, and a formatted\n * date string for date headers (guards against invalid dates).\n *\n * Uses `new Date(raw)` directly rather than `Date.parse(raw)` to\n * handle epoch-millisecond numbers, Date objects, and string\n * formats that Date.parse may reject.\n */\nexport function formatCellValue(header, rowValues) {\n const raw = rowValues[header.id];\n if (!header.date) {\n return raw;\n }\n\n // null and undefined produce a valid epoch-0 Date, not Invalid Date\n if (raw === null || raw === undefined) {\n return raw;\n }\n\n const d = new Date(raw);\n if (Number.isNaN(d.getTime())) {\n return raw;\n }\n\n return browserDateTimeFormatter.format(d);\n}\n\nexport function stableSort(array, comparator, headers, orderBy) {\n const dateColumns = new Set(\n headers.filter((object) => object.date).map((value) => value.id),\n );\n const findHeader = headers.find((header) => header.id === orderBy);\n\n // Build stable entries — compare pre-computed sort keys so we never\n // mutate the original data or its shallow copies.\n // Each entry is [originalRow, sortKey, index] so that the comparator\n // works on numeric-converted date values while the original rows are\n // returned unchanged (preserving the data seen by header.component).\n const stabilizedThis = array.map((el, index) => {\n const sortKey = { ...el };\n for (const property in sortKey) {\n if (dateColumns.has(property)) {\n const parsed = Number(new Date(sortKey[property]));\n // Preserve the original value for invalid dates so formatCellValue\n // can display the fallback instead of passing NaN to React children.\n if (!Number.isNaN(parsed)) {\n sortKey[property] = parsed;\n }\n }\n }\n return [el, sortKey, index];\n });\n\n if (findHeader?.sortable === undefined || findHeader?.sortable === false) {\n stabilizedThis.sort((a, b) => {\n const order = comparator(a[1], b[1]);\n if (order !== 0) return order;\n return a[2] - b[2];\n });\n }\n return stabilizedThis.map((el) => el[0]);\n}\n","import React from \"react\";\nimport { getSearchableColumnIds, filterRows } from \"../utils/tableUtils\";\n\nexport default function useSearchableRows(data, headers, async) {\n const [searchTerm, setSearchTerm] = React.useState(\"\");\n\n const filterOptions = React.useMemo(\n () => getSearchableColumnIds(headers),\n [headers],\n );\n\n const rows = React.useMemo(\n () => (async ? data : filterRows(data, searchTerm, filterOptions)),\n [async, data, filterOptions, searchTerm],\n );\n\n return {\n rows,\n searchTerm,\n setSearchTerm,\n };\n}\n","import React from \"react\";\nimport { getSelectableRowId } from \"../utils/tableUtils\";\n\nexport default function useSelectableRows({ rows, selectRows, selectID }) {\n const [selected, setSelected] = React.useState([]);\n\n const clearSelection = React.useCallback(() => {\n setSelected([]);\n }, []);\n\n const handleSelectAllClick = React.useCallback(\n (event) => {\n if (!event.target.checked) {\n setSelected([]);\n return;\n }\n\n const newSelected = rows.map((row, index) =>\n getSelectableRowId(row, index, selectID),\n );\n setSelected(newSelected);\n },\n [rows, selectID],\n );\n\n const handleClick = React.useCallback(\n (event, id) => {\n if (!selectRows) {\n return;\n }\n\n setSelected((previous) =>\n previous.includes(id)\n ? previous.filter((selectedId) => selectedId !== id)\n : [...previous, id],\n );\n },\n [selectRows],\n );\n\n return {\n selected,\n clearSelection,\n handleSelectAllClick,\n handleClick,\n };\n}\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { Box, Collapse, IconButton, Typography } from \"@mui/material\";\nimport { alpha } from \"@mui/material/styles\";\nimport { Task } from \"@mui/icons-material\";\n\nfunction TableSelectionBanner({ selected, onSelection, selectIcon }) {\n return (\n <Collapse in={selected.length > 0} unmountOnExit>\n <Box\n sx={{\n p: 2,\n display: \"flex\",\n justifyContent: \"space-between\",\n bgcolor: (theme) =>\n alpha(\n theme.palette.primary.main,\n theme.palette.action.activatedOpacity,\n ),\n borderRadius: 1,\n borderBottomLeftRadius: 0,\n borderBottomRightRadius: 0,\n }}\n >\n <Typography variant=\"h6\" id=\"tableTitle\" component=\"div\">\n {selected.length} selected\n </Typography>\n\n <IconButton onClick={() => onSelection(selected)}>\n {selectIcon || <Task />}\n </IconButton>\n </Box>\n </Collapse>\n );\n}\n\nTableSelectionBanner.propTypes = {\n selected: PropTypes.array.isRequired,\n onSelection: PropTypes.func,\n selectIcon: PropTypes.element,\n};\n\nexport default TableSelectionBanner;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { Typography } from \"@mui/material\";\n\nfunction TableTitle({ name, subTable }) {\n return (\n <Typography\n variant={subTable ? \"h6\" : \"h5\"}\n color={subTable ? \"secondary\" : \"primary\"}\n sx={{ p: 2 }}\n >\n {name}\n </Typography>\n );\n}\n\nTableTitle.propTypes = {\n name: PropTypes.string,\n subTable: PropTypes.bool,\n};\n\nexport default TableTitle;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { Button, Tooltip } from \"@mui/material\";\nimport RefreshIcon from \"@mui/icons-material/Refresh\";\n\nfunction ReloadBtn({ loading, onReload }) {\n const canReload = typeof onReload === \"function\";\n\n if (!canReload) {\n return null;\n }\n\n const handleClick = () => {\n if (typeof onReload === \"function\") {\n onReload();\n }\n };\n\n return (\n <Tooltip title=\"Reload\">\n <Button\n variant=\"contained\"\n color=\"primary\"\n onClick={handleClick}\n disabled={loading}\n >\n <RefreshIcon />\n </Button>\n </Tooltip>\n );\n}\n\nReloadBtn.propTypes = {\n loading: PropTypes.bool,\n /** Preferred callback — fires when the user clicks reload. */\n onReload: PropTypes.func,\n};\n\nexport default ReloadBtn;\n","import React from \"react\";\nimport {\n Collapse,\n Divider,\n IconButton,\n InputBase,\n Paper,\n Stack,\n} from \"@mui/material\";\nimport { Clear, Search } from \"@mui/icons-material\";\nimport PropTypes from \"prop-types\";\n\nexport default function FancySearch({ value, onSubmit }) {\n const [hover, setHover] = React.useState(Boolean(value));\n const expanded = hover || Boolean(value);\n\n const handleSubmit = (e) => {\n e.preventDefault();\n onSubmit(value);\n };\n\n const handleEndHover = () => {\n setHover(false);\n };\n\n // Sync internal state when the parent clears/changes the search term.\n // A ref tracks whether this sync came from the user typing or from a parent\n // update, so the debounce only fires for genuine user input.\n const isUserType = React.useRef(false);\n\n return (\n <form onSubmit={handleSubmit}>\n <Paper\n elevation={0}\n sx={{\n borderRadius: expanded ? \"24px\" : \"50px\",\n display: \"flex\",\n alignItems: \"center\",\n transition: \"all 0.5s ease-in-out\",\n p: expanded ? 1 : 0.5,\n width: \"fit-content\",\n border: (theme) => `1px solid ${theme.palette.divider}`,\n mb: 1,\n }}\n onMouseEnter={() => setHover(true)}\n onMouseLeave={handleEndHover}\n onKeyDown={(e) => e.key === \"Enter\" && handleSubmit(e)}\n >\n <InputBase\n placeholder=\"Search\"\n value={value}\n onChange={(e) => {\n isUserType.current = true;\n onSubmit(e.target.value);\n }}\n sx={{\n ml: 1,\n width: expanded ? \"100%\" : 0,\n transition: \"width 0.5s ease-in-out\",\n ...(expanded ? {} : { margin: 0 }),\n }}\n onBlur={handleEndHover}\n />\n\n <Collapse in={Boolean(value)} orientation=\"horizontal\" unmountOnExit>\n <Stack direction=\"row\" alignItems=\"center\" spacing={0} sx={{ mr: 3 }}>\n <IconButton\n onClick={() => {\n isUserType.current = false;\n // Immediately clear instead of waiting for the debounce\n onSubmit(\"\");\n }}\n >\n <Clear />\n </IconButton>\n <Divider orientation=\"vertical\" flexItem />\n </Stack>\n </Collapse>\n\n <IconButton onClick={handleSubmit} type=\"submit\">\n <Search />\n </IconButton>\n </Paper>\n </form>\n );\n}\n\nFancySearch.propTypes = {\n value: PropTypes.string,\n onSubmit: PropTypes.func.isRequired,\n};\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport FancySearch from \"./FancySearch\";\n\nfunction SearchArea(props) {\n const { current, setFinalVal, searchName, persistSearch } = props;\n\n const searchVal = React.useMemo(() => {\n if (current !== undefined && current !== null) return current;\n if (persistSearch && searchName) {\n return sessionStorage.getItem(`searchVal:${searchName}`) ?? \"\";\n }\n return \"\";\n }, [current, persistSearch, searchName]);\n\n return (\n <div key=\"SearchArea\">\n <FancySearch value={searchVal} onSubmit={setFinalVal} />\n </div>\n );\n}\n\nSearchArea.propTypes = {\n current: PropTypes.string,\n setFinalVal: PropTypes.func.isRequired,\n searchName: PropTypes.string,\n /** Persist search term to sessionStorage (requires searchName). Default: false */\n persistSearch: PropTypes.bool,\n};\n\nexport default SearchArea;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { Box, Stack, Toolbar } from \"@mui/material\";\nimport ReloadBtn from \"./ReloadBtn\";\nimport SearchArea from \"./SearchArea\";\n\nfunction TableToolbarContent({\n onReload,\n reloadBtnLoading,\n searchTerm,\n onSearchChange,\n name,\n persistSearch,\n}) {\n return (\n <Toolbar\n sx={{\n pl: { sm: 2 },\n pr: { xs: 1, sm: 1 },\n pt: 2,\n }}\n >\n <Stack\n spacing={2}\n direction={{ xs: \"column\", md: \"row\" }}\n sx={{\n width: \"100%\",\n alignItems: { xs: \"flex-start\", md: \"center\" },\n }}\n >\n <Box sx={{ flex: \"1 1 100%\" }} id=\"tableTitle\">\n <ReloadBtn onReload={onReload} loading={reloadBtnLoading} />\n </Box>\n <SearchArea\n current={searchTerm}\n setFinalVal={onSearchChange}\n searchName={name}\n persistSearch={persistSearch}\n />\n </Stack>\n </Toolbar>\n );\n}\n\nTableToolbarContent.propTypes = {\n onReload: PropTypes.func,\n reloadBtnLoading: PropTypes.bool,\n searchTerm: PropTypes.string,\n onSearchChange: PropTypes.func.isRequired,\n name: PropTypes.string,\n persistSearch: PropTypes.bool,\n};\n\nexport default TableToolbarContent;\n","import React from \"react\";\n\nexport default function useEnhancedTableState({\n rows,\n subTable,\n resetFlag,\n apiCall,\n searchTerm,\n setOrder,\n setOrderBy,\n order,\n orderBy,\n asyncPages,\n}) {\n const [pagination, setPagination] = React.useState(() => ({\n page: 0,\n rowsPerPage: subTable ? rows.length : 5,\n resetFlag,\n }));\n\n React.useEffect(() => {\n // eslint-disable-next-line react-hooks/set-state-in-effect\n setPagination((previous) => {\n if (previous.resetFlag === resetFlag) {\n return previous;\n }\n\n return {\n ...previous,\n page: 0,\n resetFlag,\n };\n });\n }, [resetFlag]);\n\n const page = pagination.page;\n const rowsPerPage = subTable ? rows.length : pagination.rowsPerPage;\n\n const handleRequestSort = React.useCallback(\n (property) => {\n const isAsc = orderBy === property && order === \"asc\";\n setOrder(isAsc ? \"desc\" : \"asc\");\n setOrderBy(property);\n },\n [order, orderBy, setOrder, setOrderBy],\n );\n\n const handleChangePage = React.useCallback((event, newPage) => {\n setPagination((previous) => ({\n ...previous,\n page: newPage,\n }));\n }, []);\n\n const handleChangeRowsPerPage = React.useCallback((event) => {\n setPagination((previous) => ({\n ...previous,\n page: 0,\n rowsPerPage: Number.parseInt(event.target.value, 10),\n }));\n }, []);\n\n const handleSort = (column, apiSortable) => {\n if (apiSortable) {\n const direction = order === \"asc\" ? \"desc\" : \"asc\";\n apiCall({ searchTerm, column, direction, pages: asyncPages ?? 1 });\n setOrder(direction);\n setOrderBy(column);\n return;\n }\n handleRequestSort(column);\n };\n\n return {\n order,\n orderBy,\n page,\n rowsPerPage,\n handleChangePage,\n handleChangeRowsPerPage,\n handleSort,\n };\n}\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport {\n Box,\n Checkbox,\n TableCell,\n TableHead,\n TableRow,\n TableSortLabel,\n} from \"@mui/material\";\n\nimport { visuallyHidden } from \"../utils/tableUtils\";\n\nfunction EnhancedTableHead(props) {\n const {\n order,\n orderBy,\n onRequestSort,\n selectRows,\n numSelected,\n rowCount,\n onSelectAllClick,\n async,\n } = props;\n\n return (\n <TableHead>\n <TableRow>\n {selectRows && (\n <TableCell padding=\"checkbox\">\n <Checkbox\n color=\"primary\"\n indeterminate={numSelected > 0 && numSelected < rowCount}\n checked={rowCount > 0 && numSelected === rowCount}\n onChange={onSelectAllClick}\n />\n </TableCell>\n )}\n {props.headings.map((headCell) => (\n <TableCell\n key={headCell.id}\n align={headCell.numeric ? \"right\" : \"left\"}\n padding=\"normal\"\n sortDirection={orderBy === headCell.id ? order : false}\n >\n <TableSortLabel\n active={orderBy === headCell.id}\n direction={orderBy === headCell.id ? order : \"asc\"}\n onClick={() =>\n onRequestSort(headCell.id, headCell.sortable && async)\n }\n disabled={headCell.subRow}\n >\n {headCell.label}\n {orderBy === headCell.id ? (\n <Box component=\"span\" sx={visuallyHidden}>\n {order === \"desc\" ? \"sorted descending\" : \"sorted ascending\"}\n </Box>\n ) : undefined}\n </TableSortLabel>\n </TableCell>\n ))}\n </TableRow>\n </TableHead>\n );\n}\n\nEnhancedTableHead.propTypes = {\n onRequestSort: PropTypes.func.isRequired,\n order: PropTypes.oneOf([\"asc\", \"desc\"]).isRequired,\n orderBy: PropTypes.string.isRequired,\n headings: PropTypes.array.isRequired,\n selectRows: PropTypes.bool,\n numSelected: PropTypes.number,\n rowCount: PropTypes.number,\n onSelectAllClick: PropTypes.func,\n async: PropTypes.bool,\n};\n\nexport default EnhancedTableHead;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport {\n Badge,\n Box,\n Collapse,\n IconButton,\n TableCell,\n TableRow,\n Tooltip,\n} from \"@mui/material\";\nimport { AddCircle, RemoveCircle } from \"@mui/icons-material\";\n\n/**\n * Lazily import UniversalTable to statically break the circular dependency:\n * UniversalTable → EnhancedTable → DataRow → SubTableRow → UniversalTable\n * React.lazy resolves the import at render time, so the module graph stays acyclic.\n */\nconst UniversalTable = React.lazy(() => import(\"../UniversalTable\"));\n\n// ---------------------------------------------------------------------------\n// SubRowToggleCell\n// ---------------------------------------------------------------------------\n\nexport function SubRowToggleCell({ header, isOpen, onToggle, rowValues, hideBadge }) {\n return (\n <TableCell>\n <Tooltip title={isOpen ? `Hide ${header.id}` : `Show ${header.id}`}>\n <Box>\n <IconButton\n onClick={(event) => {\n event.stopPropagation();\n onToggle();\n }}\n disabled={rowValues[header.id].length === 0}\n color={header.iconColor || \"secondary\"}\n >\n <Badge\n badgeContent={rowValues[header.id].length}\n invisible={hideBadge}\n anchorOrigin={{\n vertical: \"bottom\",\n horizontal: \"right\",\n }}\n sx={{\n \"& .MuiBadge-badge\": {\n color: (theme) => theme.palette.text.primary,\n },\n }}\n >\n {isOpen\n ? header?.closeIcon || <RemoveCircle />\n : header?.openIcon || <AddCircle />}\n </Badge>\n </IconButton>\n </Box>\n </Tooltip>\n </TableCell>\n );\n}\n\nSubRowToggleCell.propTypes = {\n header: PropTypes.object.isRequired,\n isOpen: PropTypes.bool.isRequired,\n onToggle: PropTypes.func.isRequired,\n rowValues: PropTypes.object.isRequired,\n hideBadge: PropTypes.bool,\n};\n\n// ---------------------------------------------------------------------------\n// SubTableRow\n// ---------------------------------------------------------------------------\n\nexport function SubTableRow({ table, isOpen, rowValues, colSpan }) {\n return (\n <TableRow>\n <TableCell colSpan={colSpan} style={{ paddingBottom: 0, paddingTop: 0 }}>\n <Collapse in={isOpen} timeout=\"auto\" unmountOnExit>\n <React.Suspense fallback={null}>\n <UniversalTable\n loading={table.loading}\n setLoading={table.setLoading}\n onReload={table.onReload}\n data={rowValues[table.id]}\n headers={table.headers}\n name={table.subTitle}\n subTable\n />\n </React.Suspense>\n </Collapse>\n </TableCell>\n </TableRow>\n );\n}\n\nSubTableRow.propTypes = {\n table: PropTypes.object.isRequired,\n isOpen: PropTypes.bool.isRequired,\n rowValues: PropTypes.object.isRequired,\n colSpan: PropTypes.number.isRequired,\n};\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport {\n Checkbox,\n TableCell,\n TableRow,\n} from \"@mui/material\";\nimport { SubRowToggleCell, SubTableRow } from \"./SubTableRow\";\nimport { splitHeaders, formatCellValue } from \"../utils/tableUtils\";\n\nfunction renderDataCells(headers, rowValues) {\n return headers.map((header, index) => (\n <TableCell key={header.id || index} {...header.cellProps}>\n {header.component\n ? header.component(rowValues)\n : formatCellValue(header, rowValues)}\n </TableCell>\n ));\n}\n\nconst DataRow = React.memo(function DataRow(props) {\n const { rowValues, headers, selectRows, isSelected, handleClick } = props;\n const { subTables, columns } = React.useMemo(() => splitHeaders(headers), [\n headers,\n ]);\n const hideBadge = props.hideBadge || false;\n const isItemSelected = isSelected(props.rowID);\n const [reveal, setReveal] = React.useState(\n Array.from({ length: subTables.length }).fill(false),\n );\n\n const toggleSubRow = React.useCallback((index) => {\n setReveal((previous) => {\n const next = [...previous];\n next[index] = !next[index];\n return next;\n });\n }, []);\n\n const handleRowKeyDown = React.useCallback(\n (event) => {\n if (selectRows && (event.key === \" \" || event.key === \"Enter\")) {\n event.preventDefault();\n handleClick(event, props.rowID);\n }\n },\n [selectRows, handleClick, props.rowID],\n );\n\n return (\n <>\n <TableRow\n tabIndex={selectRows ? 0 : -1}\n hover={selectRows}\n role={selectRows ? \"checkbox\" : \"row\"}\n selected={isItemSelected}\n aria-checked={isItemSelected}\n onKeyDown={handleRowKeyDown}\n >\n {selectRows && (\n <TableCell padding=\"checkbox\">\n <Checkbox\n color=\"primary\"\n checked={isItemSelected}\n onClick={(event) => handleClick(event, props.rowID)}\n />\n </TableCell>\n )}\n {subTables.map((header, index) => (\n <SubRowToggleCell\n key={header.id || index}\n header={header}\n isOpen={reveal[index]}\n onToggle={() => toggleSubRow(index)}\n rowValues={rowValues}\n hideBadge={hideBadge}\n />\n ))}\n {renderDataCells(columns, rowValues)}\n </TableRow>\n {subTables.map((table, index) => (\n <SubTableRow\n key={table.id || index}\n table={table}\n isOpen={reveal[index]}\n rowValues={rowValues}\n colSpan={props.headers.length + 1}\n />\n ))}\n </>\n );\n});\n\nDataRow.propTypes = {\n rowValues: PropTypes.object.isRequired,\n headers: PropTypes.array.isRequired,\n selectRows: PropTypes.bool,\n isSelected: PropTypes.func.isRequired,\n handleClick: PropTypes.func,\n hideBadge: PropTypes.bool,\n rowID: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n};\n\nexport default DataRow;\n","import React from \"react\";\nimport {\n TableBody,\n TableCell,\n TableRow,\n Skeleton,\n TableHead,\n} from \"@mui/material\";\n\nconst TableLoader = () => {\n return (\n <>\n <TableHead />\n <TableBody>\n {Array.from({ length: 5 }).map((_, index) => (\n <TableRow key={index}>\n {Array.from({ length: 4 }).map((_, cellIndex) => (\n <TableCell key={cellIndex}>\n <Skeleton height={30} />\n </TableCell>\n ))}\n </TableRow>\n ))}\n </TableBody>\n </>\n );\n};\n\nexport default TableLoader;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport {\n Box,\n Table,\n TableBody,\n TableCell,\n TableContainer,\n TablePagination,\n TableRow,\n} from \"@mui/material\";\nimport useEnhancedTableState from \"../hooks/useEnhancedTableState\";\nimport {\n getComparator,\n getPageOptions,\n getSelectableRowId,\n stableSort,\n} from \"../utils/tableUtils\";\nimport EnhancedTableHead from \"./EnhancedTableHead\";\nimport DataRow from \"./DataRow\";\nimport TableLoader from \"./TableLoader\";\n\nfunction EnhancedTable(props) {\n const {\n headers,\n rows,\n subTable,\n selected,\n selectID,\n setLoading,\n searchTerm,\n setOrder,\n setOrderBy,\n order,\n orderBy,\n async,\n asyncPages,\n } = props;\n const dense = true;\n const {\n page,\n rowsPerPage,\n handleSort,\n handleChangePage,\n handleChangeRowsPerPage,\n } = useEnhancedTableState({\n rows,\n subTable,\n resetFlag: props.resetFlag,\n apiCall: setLoading,\n searchTerm,\n setOrder,\n setOrderBy,\n order,\n orderBy,\n asyncPages,\n });\n\n const emptyRows = Math.max(\n 0,\n rowsPerPage - Math.min(rowsPerPage, rows.length - page * rowsPerPage),\n );\n\n const isSelected = React.useCallback(\n (id) => selected.includes(id),\n [selected],\n );\n\n const visibleRows = React.useMemo(() => {\n return stableSort(\n rows,\n getComparator(order, orderBy),\n headers,\n orderBy,\n ).slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage);\n }, [headers, order, orderBy, page, rows, rowsPerPage]);\n\n return (\n <TableContainer>\n <Table\n sx={{ minWidth: 750 }}\n size={dense ? \"small\" : \"medium\"}\n aria-label={props.name || \"data table\"}\n >\n {props.loading ? (\n <TableLoader />\n ) : (\n <>\n <EnhancedTableHead\n order={order}\n orderBy={orderBy}\n onRequestSort={handleSort}\n headings={headers}\n selectRows={props.selectRows}\n numSelected={selected.length}\n rowCount={rows.length}\n onSelectAllClick={props.handleSelectAllClick}\n async={async}\n />\n\n <TableBody>\n {visibleRows.map((row, index) => {\n const rowKey = selectID\n ? row[selectID]\n : `row-${page * rowsPerPage + index}`;\n const rowID = getSelectableRowId(row, index, selectID);\n\n return (\n <DataRow\n key={rowKey}\n rowID={rowID}\n headers={headers}\n rowValues={row}\n hideBadge={props.hideBadge}\n selectRows={props.selectRows}\n handleClick={props.handleClick}\n isSelected={isSelected}\n />\n );\n })}\n {!subTable && emptyRows > 0 && (\n <TableRow style={{ height: (dense ? 33 : 53) * emptyRows }}>\n <TableCell colSpan={headers.length} />\n </TableRow>\n )}\n </TableBody>\n </>\n )}\n </Table>\n {subTable ? (\n <Box sx={{ mb: 3 }} />\n ) : (\n <TablePagination\n rowsPerPageOptions={\n props.pageSizeOptions || getPageOptions(rows.length)\n }\n component=\"div\"\n count={rows.length}\n rowsPerPage={rowsPerPage}\n page={page}\n onPageChange={handleChangePage}\n onRowsPerPageChange={handleChangeRowsPerPage}\n sx={{ overflow: \"visible\" }}\n showFirstButton\n showLastButton\n />\n )}\n </TableContainer>\n );\n}\n\nEnhancedTable.propTypes = {\n headers: PropTypes.array.isRequired,\n rows: PropTypes.array.isRequired,\n subTable: PropTypes.bool,\n hideBadge: PropTypes.bool,\n loading: PropTypes.bool,\n selectRows: PropTypes.bool,\n handleSelectAllClick: PropTypes.func,\n handleClick: PropTypes.func,\n selected: PropTypes.array,\n selectID: PropTypes.string,\n async: PropTypes.bool,\n resetFlag: PropTypes.string,\n pageSizeOptions: PropTypes.arrayOf(PropTypes.number),\n name: PropTypes.string,\n setLoading: PropTypes.func,\n searchTerm: PropTypes.string,\n setOrder: PropTypes.func,\n setOrderBy: PropTypes.func,\n order: PropTypes.string,\n orderBy: PropTypes.string,\n asyncPages: PropTypes.number,\n};\n\nexport default EnhancedTable;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport Paper from \"@mui/material/Paper\";\nimport LazyLoadingIndicator from \"./components/LazyLoadingIndicator\";\nimport useSearchableRows from \"./hooks/useSearchableRows\";\nimport useSelectableRows from \"./hooks/useSelectableRows\";\nimport TableSelectionBanner from \"./components/TableSelectionBanner\";\nimport TableTitle from \"./components/TableTitle\";\nimport TableToolbarContent from \"./components/TableToolbarContent\";\nimport EnhancedTable from \"./components/EnhancedTable\";\n\nexport default function UniversalTable({\n loading,\n setLoading,\n onReload,\n lazyloading = false,\n currentPage,\n totalPages,\n data,\n headers,\n name,\n reloadBtnLoading,\n subTable = false,\n hideBadge = false,\n selectRows = false,\n selectID,\n selectIcon,\n onSelection,\n pageSizeOptions,\n persistSearch,\n asyncPages,\n}) {\n const debounceRef = React.useRef(null);\n\n const async = typeof asyncPages === \"number\" && asyncPages > 0;\n\n const head = headers || [];\n const { rows, searchTerm, setSearchTerm } = useSearchableRows(\n data,\n head,\n async,\n );\n const [order, setOrder] = React.useState(\"asc\");\n const [orderBy, setOrderBy] = React.useState(\"\");\n const { selected, clearSelection, handleSelectAllClick, handleClick } =\n useSelectableRows({\n rows,\n selectRows,\n selectID,\n });\n\n const handleSearchChange = React.useCallback(\n (value) => {\n clearSelection();\n setSearchTerm(value);\n },\n [clearSelection, setSearchTerm],\n );\n const handleSearch = (searchValue) => {\n if (async) {\n setSearchTerm(searchValue);\n clearTimeout(debounceRef.current);\n\n debounceRef.current = setTimeout(() => {\n setLoading({\n searchTerm: searchValue,\n direction: order,\n column: orderBy,\n pages: asyncPages,\n });\n }, 500);\n } else {\n handleSearchChange(searchValue);\n }\n };\n\n React.useEffect(() => {\n return () => clearTimeout(debounceRef.current);\n }, []);\n\n React.useEffect(() => {\n if (async) {\n setLoading({\n searchTerm,\n direction: order,\n column: orderBy,\n pages: asyncPages,\n });\n }\n }, []);\n\n const handleReload = React.useCallback(() => {\n if (typeof onReload === \"function\") {\n onReload();\n return;\n }\n if (typeof setLoading === \"function\") {\n setLoading(\n async\n ? { searchTerm, direction: order, column: orderBy, pages: asyncPages }\n : true,\n );\n }\n }, [async, onReload, setLoading, searchTerm, order, orderBy, asyncPages]);\n\n return (\n <>\n <LazyLoadingIndicator\n show={lazyloading}\n currentPage={currentPage}\n totalPages={totalPages}\n />\n <Paper\n sx={{\n ...(subTable && { boxShadow: \"none\" }),\n }}\n >\n <TableSelectionBanner\n selected={selected}\n onSelection={onSelection}\n selectIcon={selectIcon}\n />\n <TableTitle name={name} subTable={subTable} />\n {!subTable && (\n <TableToolbarContent\n onReload={\n typeof onReload === \"function\" || typeof setLoading === \"function\"\n ? handleReload\n : undefined\n }\n reloadBtnLoading={reloadBtnLoading}\n searchTerm={searchTerm}\n onSearchChange={handleSearch}\n name={name}\n persistSearch={persistSearch}\n />\n )}\n <EnhancedTable\n headers={head}\n rows={rows}\n resetFlag={searchTerm}\n searchTerm={searchTerm}\n subTable={subTable}\n hideBadge={hideBadge}\n loading={loading}\n selectRows={selectRows}\n handleSelectAllClick={handleSelectAllClick}\n handleClick={handleClick}\n selected={selected}\n selectID={selectID}\n pageSizeOptions={pageSizeOptions}\n name={name}\n setLoading={setLoading}\n order={order}\n orderBy={orderBy}\n setOrder={setOrder}\n setOrderBy={setOrderBy}\n asyncPages={asyncPages}\n async={async}\n />\n </Paper>\n </>\n );\n}\n\nUniversalTable.propTypes = {\n loading: PropTypes.bool,\n setLoading: PropTypes.func,\n /** Preferred callback — fires when the user clicks reload. */\n onReload: PropTypes.func,\n lazyloading: PropTypes.bool,\n currentPage: PropTypes.number,\n totalPages: PropTypes.number,\n data: PropTypes.array.isRequired,\n headers: PropTypes.array.isRequired,\n name: PropTypes.string,\n reloadBtnLoading: PropTypes.bool,\n subTable: PropTypes.bool,\n hideBadge: PropTypes.bool,\n selectRows: PropTypes.bool,\n selectID: PropTypes.string,\n selectIcon: PropTypes.element,\n onSelection: PropTypes.func,\n /** Override default page size options (e.g. [10, 25, 50]). Default auto-computed. */\n pageSizeOptions: PropTypes.arrayOf(PropTypes.number),\n /** Persist search term to sessionStorage (requires name prop). Default: false */\n persistSearch: PropTypes.bool,\n asyncPages: PropTypes.number,\n};\n"],"names":["LazyLoadingIndicator","_ref","show","currentPage","totalPages","React","createElement","Collapse","timeout","unmountOnExit","Box","sx","width","p","Typography","variant","color","mb","LinearProgress","value","propTypes","PropTypes","bool","isRequired","number","visuallyHidden","border","clip","height","margin","overflow","padding","position","whiteSpace","getSelectableRowId","row","index","selectID","getSearchableColumnIds","headers","filter","column","searchable","map","id","filterRows","data","searchTerm","filterOptions","term","toLocaleLowerCase","some","filterOption","String","includes","getPageOptions","rowCount","splitHeaders","reduce","groups","header","subRow","subTables","push","columns","descendingComparator","a","b","orderBy","getComparator","order","browserDateTimeFormatter","Intl","DateTimeFormat","undefined","year","month","day","hour","minute","hour12","formatCellValue","rowValues","raw","date","d","Date","Number","isNaN","getTime","format","stableSort","array","comparator","dateColumns","Set","object","findHeader","find","stabilizedThis","el","sortKey","_objectSpread","property","has","parsed","sortable","sort","useSearchableRows","async","_React$useState","useState","_React$useState2","_slicedToArray","setSearchTerm","useMemo","rows","useSelectableRows","selectRows","selected","setSelected","clearSelection","useCallback","handleSelectAllClick","event","target","checked","newSelected","handleClick","previous","selectedId","concat","_toConsumableArray","TableSelectionBanner","onSelection","selectIcon","length","display","justifyContent","bgcolor","theme","alpha","palette","primary","main","action","activatedOpacity","borderRadius","borderBottomLeftRadius","borderBottomRightRadius","component","IconButton","onClick","Task","func","element","TableTitle","name","subTable","string","ReloadBtn","loading","onReload","canReload","Tooltip","title","Button","disabled","RefreshIcon","FancySearch","onSubmit","Boolean","hover","setHover","expanded","handleSubmit","e","preventDefault","handleEndHover","isUserType","useRef","Paper","elevation","alignItems","transition","divider","onMouseEnter","onMouseLeave","onKeyDown","key","InputBase","placeholder","onChange","current","ml","onBlur","orientation","Stack","direction","spacing","mr","Clear","Divider","flexItem","type","Search","SearchArea","props","setFinalVal","searchName","persistSearch","searchVal","_sessionStorage$getIt","sessionStorage","getItem","TableToolbarContent","reloadBtnLoading","onSearchChange","Toolbar","pl","sm","pr","xs","pt","md","flex","useEnhancedTableState","resetFlag","apiCall","setOrder","setOrderBy","asyncPages","page","rowsPerPage","pagination","setPagination","useEffect","handleRequestSort","isAsc","handleChangePage","newPage","handleChangeRowsPerPage","parseInt","handleSort","apiSortable","pages","EnhancedTableHead","onRequestSort","numSelected","onSelectAllClick","TableHead","TableRow","TableCell","Checkbox","indeterminate","headings","headCell","align","numeric","sortDirection","TableSortLabel","active","label","oneOf","UniversalTable","lazy","SubRowToggleCell","isOpen","onToggle","hideBadge","stopPropagation","iconColor","Badge","badgeContent","invisible","anchorOrigin","vertical","horizontal","text","closeIcon","RemoveCircle","openIcon","AddCircle","SubTableRow","_ref2","table","colSpan","style","paddingBottom","paddingTop","Suspense","fallback","setLoading","subTitle","renderDataCells","_extends","cellProps","DataRow","memo","isSelected","_React$useMemo","isItemSelected","rowID","Array","from","fill","reveal","setReveal","toggleSubRow","next","handleRowKeyDown","Fragment","tabIndex","role","oneOfType","TableLoader","TableBody","_","cellIndex","Skeleton","EnhancedTable","_useEnhancedTableStat","emptyRows","Math","max","min","visibleRows","slice","TableContainer","Table","minWidth","size","rowKey","TablePagination","rowsPerPageOptions","pageSizeOptions","count","onPageChange","onRowsPerPageChange","showFirstButton","showLastButton","arrayOf","_ref$lazyloading","lazyloading","_ref$subTable","_ref$hideBadge","_ref$selectRows","debounceRef","head","_useSearchableRows","_React$useState3","_React$useState4","_useSelectableRows","handleSearchChange","handleSearch","searchValue","clearTimeout","setTimeout","handleReload","boxShadow"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../src/components/LazyLoadingIndicator.jsx","../src/utils/tableUtils.js","../src/hooks/useSearchableRows.js","../src/hooks/useSelectableRows.js","../src/components/TableSelectionBanner.jsx","../src/components/TableTitle.jsx","../src/components/ReloadBtn.jsx","../src/components/FancySearch.jsx","../src/components/SearchArea.jsx","../src/components/TableToolbarContent.jsx","../src/hooks/useEnhancedTableState.js","../src/components/EnhancedTableHead.jsx","../src/components/SubTableRow.jsx","../src/components/DataRow.jsx","../src/components/TableLoader.jsx","../src/components/EnhancedTable.jsx","../src/UniversalTable.jsx"],"sourcesContent":["import React from \"react\";\nimport { Box, LinearProgress, Typography, Collapse } from \"@mui/material\";\nimport PropTypes from \"prop-types\";\n\nconst LazyLoadingIndicator = ({ show, currentPage, totalPages }) => {\n return (\n <Collapse in={show} timeout=\"auto\" unmountOnExit>\n <Box sx={{ width: \"100%\", p: 2 }}>\n <Typography variant=\"body2\" color=\"text.secondary\" sx={{ mb: 1 }}>\n Loading page {currentPage} of {totalPages}...\n </Typography>\n <LinearProgress\n variant=\"determinate\"\n value={(currentPage / totalPages) * 100}\n />\n </Box>\n </Collapse>\n );\n};\n\nLazyLoadingIndicator.propTypes = {\n show: PropTypes.bool.isRequired,\n currentPage: PropTypes.number,\n totalPages: PropTypes.number,\n};\n\nexport default LazyLoadingIndicator;\n","/**\n * Standard visually-hidden style: content is accessible to screen readers\n * but invisible on screen. Defined locally to avoid importing from\n * @mui/utils which is not a declared peer dependency.\n */\nexport const visuallyHidden = {\n border: 0,\n clip: \"rect(0 0 0 0)\",\n height: \"1px\",\n margin: -1,\n overflow: \"hidden\",\n padding: 0,\n position: \"absolute\",\n whiteSpace: \"nowrap\",\n width: \"1px\",\n};\n\nexport function getSelectableRowId(row, index, selectID) {\n return selectID ? row[selectID] : index;\n}\n\nexport function getSearchableColumnIds(headers) {\n return headers\n .filter((column) => column.searchable)\n .map((column) => column.id);\n}\n\nexport function filterRows(data, searchTerm, filterOptions) {\n if (!searchTerm) {\n return data;\n }\n\n const term = searchTerm.toLocaleLowerCase();\n return data.filter((row) =>\n filterOptions.some((filterOption) =>\n String(row[filterOption]).toLocaleLowerCase().includes(term),\n ),\n );\n}\n\nexport function getPageOptions(rowCount) {\n if (rowCount <= 5) return [5];\n if (rowCount <= 10) return [5, rowCount];\n if (rowCount <= 25) return [5, 10, rowCount];\n if (rowCount < 50) return [5, 10, 25, rowCount];\n if (rowCount < 100) return [5, 10, 25, 50, rowCount];\n return [5, 10, 25, 50, 100, rowCount];\n}\n\nexport function splitHeaders(headers) {\n return headers.reduce(\n (groups, header) => {\n if (header.subRow) {\n groups.subTables.push(header);\n } else {\n groups.columns.push(header);\n }\n\n return groups;\n },\n { subTables: [], columns: [] },\n );\n}\n\nexport function descendingComparator(a, b, orderBy) {\n if (b[orderBy] < a[orderBy]) {\n return -1;\n }\n if (b[orderBy] > a[orderBy]) {\n return 1;\n }\n return 0;\n}\n\nexport function getComparator(order, orderBy) {\n return order === \"desc\"\n ? (a, b) => descendingComparator(a, b, orderBy)\n : (a, b) => -descendingComparator(a, b, orderBy);\n}\n\nconst browserDateTimeFormatter = new Intl.DateTimeFormat(undefined, {\n year: \"numeric\",\n month: \"short\",\n day: \"numeric\",\n hour: \"numeric\",\n minute: \"2-digit\",\n hour12: true,\n});\n\n/**\n * Format a cell value for display. Handles dates safely:\n * returns the raw value for non-date headers, and a formatted\n * date string for date headers (guards against invalid dates).\n *\n * Uses `new Date(raw)` directly rather than `Date.parse(raw)` to\n * handle epoch-millisecond numbers, Date objects, and string\n * formats that Date.parse may reject.\n */\nexport function formatCellValue(header, rowValues) {\n const raw = rowValues[header.id];\n if (!header.date) {\n return raw;\n }\n\n // null and undefined produce a valid epoch-0 Date, not Invalid Date\n if (raw === null || raw === undefined) {\n return raw;\n }\n\n const d = new Date(raw);\n if (Number.isNaN(d.getTime())) {\n return raw;\n }\n\n return browserDateTimeFormatter.format(d);\n}\n\nexport function stableSort(array, comparator, headers, orderBy) {\n const dateColumns = new Set(\n headers.filter((object) => object.date).map((value) => value.id),\n );\n const findHeader = headers.find((header) => header.id === orderBy);\n\n // Build stable entries — compare pre-computed sort keys so we never\n // mutate the original data or its shallow copies.\n // Each entry is [originalRow, sortKey, index] so that the comparator\n // works on numeric-converted date values while the original rows are\n // returned unchanged (preserving the data seen by header.component).\n const stabilizedThis = array.map((el, index) => {\n const sortKey = { ...el };\n for (const property in sortKey) {\n if (dateColumns.has(property)) {\n const parsed = Number(new Date(sortKey[property]));\n // Preserve the original value for invalid dates so formatCellValue\n // can display the fallback instead of passing NaN to React children.\n if (!Number.isNaN(parsed)) {\n sortKey[property] = parsed;\n }\n }\n }\n return [el, sortKey, index];\n });\n\n if (findHeader?.sortable === undefined || findHeader?.sortable === false) {\n stabilizedThis.sort((a, b) => {\n const order = comparator(a[1], b[1]);\n if (order !== 0) return order;\n return a[2] - b[2];\n });\n }\n return stabilizedThis.map((el) => el[0]);\n}\n","import React from \"react\";\nimport { getSearchableColumnIds, filterRows } from \"../utils/tableUtils\";\n\nexport default function useSearchableRows(data, headers, async) {\n const [searchTerm, setSearchTerm] = React.useState(\"\");\n\n const filterOptions = React.useMemo(\n () => getSearchableColumnIds(headers),\n [headers],\n );\n\n const rows = React.useMemo(\n () => (async ? data : filterRows(data, searchTerm, filterOptions)),\n [async, data, filterOptions, searchTerm],\n );\n\n return {\n rows,\n searchTerm,\n setSearchTerm,\n };\n}\n","import React from \"react\";\nimport { getSelectableRowId } from \"../utils/tableUtils\";\n\nexport default function useSelectableRows({ rows, selectRows, selectID }) {\n const [selected, setSelected] = React.useState([]);\n\n const clearSelection = React.useCallback(() => {\n setSelected([]);\n }, []);\n\n const handleSelectAllClick = React.useCallback(\n (event) => {\n if (!event.target.checked) {\n setSelected([]);\n return;\n }\n\n const newSelected = rows.map((row, index) =>\n getSelectableRowId(row, index, selectID),\n );\n setSelected(newSelected);\n },\n [rows, selectID],\n );\n\n const handleClick = React.useCallback(\n (event, id) => {\n if (!selectRows) {\n return;\n }\n\n setSelected((previous) =>\n previous.includes(id)\n ? previous.filter((selectedId) => selectedId !== id)\n : [...previous, id],\n );\n },\n [selectRows],\n );\n\n return {\n selected,\n clearSelection,\n handleSelectAllClick,\n handleClick,\n };\n}\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { Box, Collapse, IconButton, Typography } from \"@mui/material\";\nimport { alpha } from \"@mui/material/styles\";\nimport { Task } from \"@mui/icons-material\";\n\nfunction TableSelectionBanner({ selected, onSelection, selectIcon }) {\n return (\n <Collapse in={selected.length > 0} unmountOnExit>\n <Box\n sx={{\n p: 2,\n display: \"flex\",\n justifyContent: \"space-between\",\n bgcolor: (theme) =>\n alpha(\n theme.palette.primary.main,\n theme.palette.action.activatedOpacity,\n ),\n borderRadius: 1,\n borderBottomLeftRadius: 0,\n borderBottomRightRadius: 0,\n }}\n >\n <Typography variant=\"h6\" id=\"tableTitle\" component=\"div\">\n {selected.length} selected\n </Typography>\n\n <IconButton onClick={() => onSelection(selected)}>\n {selectIcon || <Task />}\n </IconButton>\n </Box>\n </Collapse>\n );\n}\n\nTableSelectionBanner.propTypes = {\n selected: PropTypes.array.isRequired,\n onSelection: PropTypes.func,\n selectIcon: PropTypes.element,\n};\n\nexport default TableSelectionBanner;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { Typography } from \"@mui/material\";\n\nfunction TableTitle({ name, subTable }) {\n return (\n <Typography\n variant={subTable ? \"h6\" : \"h5\"}\n color={subTable ? \"secondary\" : \"primary\"}\n sx={{ p: 2 }}\n >\n {name}\n </Typography>\n );\n}\n\nTableTitle.propTypes = {\n name: PropTypes.string,\n subTable: PropTypes.bool,\n};\n\nexport default TableTitle;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { Button, Tooltip } from \"@mui/material\";\nimport RefreshIcon from \"@mui/icons-material/Refresh\";\n\nfunction ReloadBtn({ loading, onReload }) {\n const canReload = typeof onReload === \"function\";\n\n if (!canReload) {\n return null;\n }\n\n const handleClick = () => {\n if (typeof onReload === \"function\") {\n onReload();\n }\n };\n\n return (\n <Tooltip title=\"Reload\">\n <Button\n variant=\"contained\"\n color=\"primary\"\n onClick={handleClick}\n disabled={loading}\n >\n <RefreshIcon />\n </Button>\n </Tooltip>\n );\n}\n\nReloadBtn.propTypes = {\n loading: PropTypes.bool,\n /** Preferred callback — fires when the user clicks reload. */\n onReload: PropTypes.func,\n};\n\nexport default ReloadBtn;\n","import React from \"react\";\nimport {\n Collapse,\n Divider,\n IconButton,\n InputBase,\n Paper,\n Stack,\n} from \"@mui/material\";\nimport { Clear, Search } from \"@mui/icons-material\";\nimport PropTypes from \"prop-types\";\n\nexport default function FancySearch({ value, onSubmit }) {\n const [hover, setHover] = React.useState(Boolean(value));\n const expanded = hover || Boolean(value);\n\n const handleSubmit = (e) => {\n e.preventDefault();\n onSubmit(value);\n };\n\n const handleEndHover = () => {\n setHover(false);\n };\n\n // Sync internal state when the parent clears/changes the search term.\n // A ref tracks whether this sync came from the user typing or from a parent\n // update, so the debounce only fires for genuine user input.\n const isUserType = React.useRef(false);\n\n return (\n <form onSubmit={handleSubmit}>\n <Paper\n elevation={0}\n sx={{\n borderRadius: expanded ? \"24px\" : \"50px\",\n display: \"flex\",\n alignItems: \"center\",\n transition: \"all 0.5s ease-in-out\",\n p: expanded ? 1 : 0.5,\n width: \"fit-content\",\n border: (theme) => `1px solid ${theme.palette.divider}`,\n mb: 1,\n }}\n onMouseEnter={() => setHover(true)}\n onMouseLeave={handleEndHover}\n onKeyDown={(e) => e.key === \"Enter\" && handleSubmit(e)}\n >\n <InputBase\n placeholder=\"Search\"\n value={value}\n onChange={(e) => {\n isUserType.current = true;\n onSubmit(e.target.value);\n }}\n sx={{\n ml: 1,\n width: expanded ? \"100%\" : 0,\n transition: \"width 0.5s ease-in-out\",\n ...(expanded ? {} : { margin: 0 }),\n }}\n onBlur={handleEndHover}\n />\n\n <Collapse in={Boolean(value)} orientation=\"horizontal\" unmountOnExit>\n <Stack direction=\"row\" spacing={0} sx={{ mr: 3, alignItems: \"center\" }}>\n <IconButton\n onClick={() => {\n isUserType.current = false;\n // Immediately clear instead of waiting for the debounce\n onSubmit(\"\");\n }}\n >\n <Clear />\n </IconButton>\n <Divider orientation=\"vertical\" flexItem />\n </Stack>\n </Collapse>\n\n <IconButton onClick={handleSubmit} type=\"submit\">\n <Search />\n </IconButton>\n </Paper>\n </form>\n );\n}\n\nFancySearch.propTypes = {\n value: PropTypes.string,\n onSubmit: PropTypes.func.isRequired,\n};\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport FancySearch from \"./FancySearch\";\n\nfunction SearchArea(props) {\n const { current, setFinalVal, searchName, persistSearch } = props;\n\n const searchVal = React.useMemo(() => {\n if (current !== undefined && current !== null) return current;\n if (persistSearch && searchName) {\n return sessionStorage.getItem(`searchVal:${searchName}`) ?? \"\";\n }\n return \"\";\n }, [current, persistSearch, searchName]);\n\n return (\n <div key=\"SearchArea\">\n <FancySearch value={searchVal} onSubmit={setFinalVal} />\n </div>\n );\n}\n\nSearchArea.propTypes = {\n current: PropTypes.string,\n setFinalVal: PropTypes.func.isRequired,\n searchName: PropTypes.string,\n /** Persist search term to sessionStorage (requires searchName). Default: false */\n persistSearch: PropTypes.bool,\n};\n\nexport default SearchArea;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { Box, Stack, Toolbar } from \"@mui/material\";\nimport ReloadBtn from \"./ReloadBtn\";\nimport SearchArea from \"./SearchArea\";\n\nfunction TableToolbarContent({\n onReload,\n reloadBtnLoading,\n searchTerm,\n onSearchChange,\n name,\n persistSearch,\n}) {\n return (\n <Toolbar\n sx={{\n pl: { sm: 2 },\n pr: { xs: 1, sm: 1 },\n pt: 2,\n }}\n >\n <Stack\n spacing={2}\n direction={{ xs: \"column\", md: \"row\" }}\n sx={{\n width: \"100%\",\n alignItems: { xs: \"flex-start\", md: \"center\" },\n }}\n >\n <Box sx={{ flex: \"1 1 100%\" }} id=\"tableTitle\">\n <ReloadBtn onReload={onReload} loading={reloadBtnLoading} />\n </Box>\n <SearchArea\n current={searchTerm}\n setFinalVal={onSearchChange}\n searchName={name}\n persistSearch={persistSearch}\n />\n </Stack>\n </Toolbar>\n );\n}\n\nTableToolbarContent.propTypes = {\n onReload: PropTypes.func,\n reloadBtnLoading: PropTypes.bool,\n searchTerm: PropTypes.string,\n onSearchChange: PropTypes.func.isRequired,\n name: PropTypes.string,\n persistSearch: PropTypes.bool,\n};\n\nexport default TableToolbarContent;\n","import React from \"react\";\n\nfunction getInitialRowsPerPage({ rows, subTable, pageSizeOptions }) {\n if (subTable) return rows.length;\n if (Array.isArray(pageSizeOptions) && pageSizeOptions.length > 0) {\n return pageSizeOptions[0];\n }\n return 5;\n}\n\nexport default function useEnhancedTableState({\n rows,\n subTable,\n pageSizeOptions,\n resetFlag,\n apiCall,\n searchTerm,\n setOrder,\n setOrderBy,\n order,\n orderBy,\n asyncPages,\n}) {\n const [pagination, setPagination] = React.useState(() => ({\n page: 0,\n rowsPerPage: getInitialRowsPerPage({ rows, subTable, pageSizeOptions }),\n resetFlag,\n }));\n\n React.useEffect(() => {\n // eslint-disable-next-line react-hooks/set-state-in-effect\n setPagination((previous) => {\n if (previous.resetFlag === resetFlag) {\n return previous;\n }\n\n return {\n ...previous,\n page: 0,\n resetFlag,\n };\n });\n }, [resetFlag]);\n\n const page = pagination.page;\n const rowsPerPage = subTable ? rows.length : pagination.rowsPerPage;\n\n const handleRequestSort = React.useCallback(\n (property) => {\n const isAsc = orderBy === property && order === \"asc\";\n setOrder(isAsc ? \"desc\" : \"asc\");\n setOrderBy(property);\n },\n [order, orderBy, setOrder, setOrderBy],\n );\n\n const handleChangePage = React.useCallback((event, newPage) => {\n setPagination((previous) => ({\n ...previous,\n page: newPage,\n }));\n }, []);\n\n const handleChangeRowsPerPage = React.useCallback((event) => {\n setPagination((previous) => ({\n ...previous,\n page: 0,\n rowsPerPage: Number.parseInt(event.target.value, 10),\n }));\n }, []);\n\n const handleSort = (column, apiSortable) => {\n if (apiSortable) {\n const direction = order === \"asc\" ? \"desc\" : \"asc\";\n apiCall({ searchTerm, column, direction, pages: asyncPages ?? 1 });\n setOrder(direction);\n setOrderBy(column);\n return;\n }\n handleRequestSort(column);\n };\n\n return {\n order,\n orderBy,\n page,\n rowsPerPage,\n handleChangePage,\n handleChangeRowsPerPage,\n handleSort,\n };\n}\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport {\n Box,\n Checkbox,\n TableCell,\n TableHead,\n TableRow,\n TableSortLabel,\n} from \"@mui/material\";\n\nimport { visuallyHidden } from \"../utils/tableUtils\";\n\nfunction EnhancedTableHead(props) {\n const {\n order,\n orderBy,\n onRequestSort,\n selectRows,\n numSelected,\n rowCount,\n onSelectAllClick,\n async,\n } = props;\n\n return (\n <TableHead>\n <TableRow>\n {selectRows && (\n <TableCell padding=\"checkbox\">\n <Checkbox\n color=\"primary\"\n indeterminate={numSelected > 0 && numSelected < rowCount}\n checked={rowCount > 0 && numSelected === rowCount}\n onChange={onSelectAllClick}\n />\n </TableCell>\n )}\n {props.headings.map((headCell) => (\n <TableCell\n key={headCell.id}\n align={headCell.numeric ? \"right\" : \"left\"}\n padding=\"normal\"\n sortDirection={orderBy === headCell.id ? order : false}\n >\n <TableSortLabel\n active={orderBy === headCell.id}\n direction={orderBy === headCell.id ? order : \"asc\"}\n onClick={() =>\n onRequestSort(headCell.id, headCell.sortable && async)\n }\n disabled={headCell.subRow}\n >\n {headCell.label}\n {orderBy === headCell.id ? (\n <Box component=\"span\" sx={visuallyHidden}>\n {order === \"desc\" ? \"sorted descending\" : \"sorted ascending\"}\n </Box>\n ) : undefined}\n </TableSortLabel>\n </TableCell>\n ))}\n </TableRow>\n </TableHead>\n );\n}\n\nEnhancedTableHead.propTypes = {\n onRequestSort: PropTypes.func.isRequired,\n order: PropTypes.oneOf([\"asc\", \"desc\"]).isRequired,\n orderBy: PropTypes.string.isRequired,\n headings: PropTypes.array.isRequired,\n selectRows: PropTypes.bool,\n numSelected: PropTypes.number,\n rowCount: PropTypes.number,\n onSelectAllClick: PropTypes.func,\n async: PropTypes.bool,\n};\n\nexport default EnhancedTableHead;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport {\n Badge,\n Box,\n Collapse,\n IconButton,\n TableCell,\n TableRow,\n Tooltip,\n} from \"@mui/material\";\nimport { AddCircle, RemoveCircle } from \"@mui/icons-material\";\n\n/**\n * Lazily import UniversalTable to statically break the circular dependency:\n * UniversalTable → EnhancedTable → DataRow → SubTableRow → UniversalTable\n * React.lazy resolves the import at render time, so the module graph stays acyclic.\n */\nconst UniversalTable = React.lazy(() => import(\"../UniversalTable\"));\n\n// ---------------------------------------------------------------------------\n// SubRowToggleCell\n// ---------------------------------------------------------------------------\n\nexport function SubRowToggleCell({ header, isOpen, onToggle, rowValues, hideBadge }) {\n return (\n <TableCell>\n <Tooltip title={isOpen ? `Hide ${header.id}` : `Show ${header.id}`}>\n <Box>\n <IconButton\n onClick={(event) => {\n event.stopPropagation();\n onToggle();\n }}\n disabled={rowValues[header.id].length === 0}\n color={header.iconColor || \"secondary\"}\n >\n <Badge\n badgeContent={rowValues[header.id].length}\n invisible={hideBadge}\n anchorOrigin={{\n vertical: \"bottom\",\n horizontal: \"right\",\n }}\n sx={{\n \"& .MuiBadge-badge\": {\n color: (theme) => theme.palette.text.primary,\n },\n }}\n >\n {isOpen\n ? header?.closeIcon || <RemoveCircle />\n : header?.openIcon || <AddCircle />}\n </Badge>\n </IconButton>\n </Box>\n </Tooltip>\n </TableCell>\n );\n}\n\nSubRowToggleCell.propTypes = {\n header: PropTypes.object.isRequired,\n isOpen: PropTypes.bool.isRequired,\n onToggle: PropTypes.func.isRequired,\n rowValues: PropTypes.object.isRequired,\n hideBadge: PropTypes.bool,\n};\n\n// ---------------------------------------------------------------------------\n// SubTableRow\n// ---------------------------------------------------------------------------\n\nexport function SubTableRow({ table, isOpen, rowValues, colSpan }) {\n return (\n <TableRow>\n <TableCell colSpan={colSpan} style={{ paddingBottom: 0, paddingTop: 0 }}>\n <Collapse in={isOpen} timeout=\"auto\" unmountOnExit>\n <React.Suspense fallback={null}>\n <UniversalTable\n loading={table.loading}\n setLoading={table.setLoading}\n onReload={table.onReload}\n data={rowValues[table.id]}\n headers={table.headers}\n name={table.subTitle}\n subTable\n />\n </React.Suspense>\n </Collapse>\n </TableCell>\n </TableRow>\n );\n}\n\nSubTableRow.propTypes = {\n table: PropTypes.object.isRequired,\n isOpen: PropTypes.bool.isRequired,\n rowValues: PropTypes.object.isRequired,\n colSpan: PropTypes.number.isRequired,\n};\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport {\n Checkbox,\n TableCell,\n TableRow,\n} from \"@mui/material\";\nimport { SubRowToggleCell, SubTableRow } from \"./SubTableRow\";\nimport { splitHeaders, formatCellValue } from \"../utils/tableUtils\";\n\nfunction renderDataCells(headers, rowValues) {\n return headers.map((header, index) => (\n <TableCell key={header.id || index} {...header.cellProps}>\n {header.component\n ? header.component(rowValues)\n : formatCellValue(header, rowValues)}\n </TableCell>\n ));\n}\n\nconst DataRow = React.memo(function DataRow(props) {\n const { rowValues, headers, selectRows, isSelected, handleClick } = props;\n const { subTables, columns } = React.useMemo(() => splitHeaders(headers), [\n headers,\n ]);\n const hideBadge = props.hideBadge || false;\n const isItemSelected = isSelected(props.rowID);\n const [reveal, setReveal] = React.useState(\n Array.from({ length: subTables.length }).fill(false),\n );\n\n const toggleSubRow = React.useCallback((index) => {\n setReveal((previous) => {\n const next = [...previous];\n next[index] = !next[index];\n return next;\n });\n }, []);\n\n const handleRowKeyDown = React.useCallback(\n (event) => {\n if (selectRows && (event.key === \" \" || event.key === \"Enter\")) {\n event.preventDefault();\n handleClick(event, props.rowID);\n }\n },\n [selectRows, handleClick, props.rowID],\n );\n\n return (\n <>\n <TableRow\n tabIndex={selectRows ? 0 : -1}\n hover={selectRows}\n role={selectRows ? \"checkbox\" : \"row\"}\n selected={isItemSelected}\n aria-checked={isItemSelected}\n onKeyDown={handleRowKeyDown}\n >\n {selectRows && (\n <TableCell padding=\"checkbox\">\n <Checkbox\n color=\"primary\"\n checked={isItemSelected}\n onClick={(event) => handleClick(event, props.rowID)}\n />\n </TableCell>\n )}\n {subTables.map((header, index) => (\n <SubRowToggleCell\n key={header.id || index}\n header={header}\n isOpen={reveal[index]}\n onToggle={() => toggleSubRow(index)}\n rowValues={rowValues}\n hideBadge={hideBadge}\n />\n ))}\n {renderDataCells(columns, rowValues)}\n </TableRow>\n {subTables.map((table, index) => (\n <SubTableRow\n key={table.id || index}\n table={table}\n isOpen={reveal[index]}\n rowValues={rowValues}\n colSpan={props.headers.length + 1}\n />\n ))}\n </>\n );\n});\n\nDataRow.propTypes = {\n rowValues: PropTypes.object.isRequired,\n headers: PropTypes.array.isRequired,\n selectRows: PropTypes.bool,\n isSelected: PropTypes.func.isRequired,\n handleClick: PropTypes.func,\n hideBadge: PropTypes.bool,\n rowID: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n};\n\nexport default DataRow;\n","import React from \"react\";\nimport {\n TableBody,\n TableCell,\n TableRow,\n Skeleton,\n TableHead,\n} from \"@mui/material\";\n\nconst TableLoader = () => {\n return (\n <>\n <TableHead />\n <TableBody>\n {Array.from({ length: 5 }).map((_, index) => (\n <TableRow key={index}>\n {Array.from({ length: 4 }).map((_, cellIndex) => (\n <TableCell key={cellIndex}>\n <Skeleton height={30} />\n </TableCell>\n ))}\n </TableRow>\n ))}\n </TableBody>\n </>\n );\n};\n\nexport default TableLoader;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport {\n Box,\n Table,\n TableBody,\n TableCell,\n TableContainer,\n TablePagination,\n TableRow,\n} from \"@mui/material\";\nimport useEnhancedTableState from \"../hooks/useEnhancedTableState\";\nimport {\n getComparator,\n getPageOptions,\n getSelectableRowId,\n stableSort,\n} from \"../utils/tableUtils\";\nimport EnhancedTableHead from \"./EnhancedTableHead\";\nimport DataRow from \"./DataRow\";\nimport TableLoader from \"./TableLoader\";\n\nfunction EnhancedTable(props) {\n const {\n headers,\n rows,\n subTable,\n selected,\n selectID,\n setLoading,\n searchTerm,\n setOrder,\n setOrderBy,\n order,\n orderBy,\n async,\n asyncPages,\n } = props;\n const dense = true;\n const {\n page,\n rowsPerPage,\n handleSort,\n handleChangePage,\n handleChangeRowsPerPage,\n } = useEnhancedTableState({\n rows,\n subTable,\n pageSizeOptions: props.pageSizeOptions,\n resetFlag: props.resetFlag,\n apiCall: setLoading,\n searchTerm,\n setOrder,\n setOrderBy,\n order,\n orderBy,\n asyncPages,\n });\n\n const effectiveRowsPerPage = rowsPerPage === -1 ? rows.length : rowsPerPage;\n\n const emptyRows = Math.max(\n 0,\n effectiveRowsPerPage -\n Math.min(effectiveRowsPerPage, rows.length - page * effectiveRowsPerPage),\n );\n\n const isSelected = React.useCallback(\n (id) => selected.includes(id),\n [selected],\n );\n\n const visibleRows = React.useMemo(() => {\n return stableSort(\n rows,\n getComparator(order, orderBy),\n headers,\n orderBy,\n ).slice(\n page * effectiveRowsPerPage,\n page * effectiveRowsPerPage + effectiveRowsPerPage,\n );\n }, [effectiveRowsPerPage, headers, order, orderBy, page, rows]);\n\n return (\n <TableContainer>\n <Table\n sx={{ minWidth: 750 }}\n size={dense ? \"small\" : \"medium\"}\n aria-label={props.name || \"data table\"}\n >\n {props.loading ? (\n <TableLoader />\n ) : (\n <>\n <EnhancedTableHead\n order={order}\n orderBy={orderBy}\n onRequestSort={handleSort}\n headings={headers}\n selectRows={props.selectRows}\n numSelected={selected.length}\n rowCount={rows.length}\n onSelectAllClick={props.handleSelectAllClick}\n async={async}\n />\n\n <TableBody>\n {visibleRows.map((row, index) => {\n const rowKey = selectID\n ? row[selectID]\n : `row-${page * effectiveRowsPerPage + index}`;\n const rowID = getSelectableRowId(row, index, selectID);\n\n return (\n <DataRow\n key={rowKey}\n rowID={rowID}\n headers={headers}\n rowValues={row}\n hideBadge={props.hideBadge}\n selectRows={props.selectRows}\n handleClick={props.handleClick}\n isSelected={isSelected}\n />\n );\n })}\n {!subTable && emptyRows > 0 && (\n <TableRow style={{ height: (dense ? 33 : 53) * emptyRows }}>\n <TableCell colSpan={headers.length} />\n </TableRow>\n )}\n </TableBody>\n </>\n )}\n </Table>\n {subTable ? (\n <Box sx={{ mb: 3 }} />\n ) : (\n <TablePagination\n rowsPerPageOptions={\n props.pageSizeOptions || getPageOptions(rows.length)\n }\n component=\"div\"\n count={rows.length}\n rowsPerPage={rowsPerPage}\n page={page}\n onPageChange={handleChangePage}\n onRowsPerPageChange={handleChangeRowsPerPage}\n sx={{ overflow: \"visible\" }}\n showFirstButton\n showLastButton\n />\n )}\n </TableContainer>\n );\n}\n\nEnhancedTable.propTypes = {\n headers: PropTypes.array.isRequired,\n rows: PropTypes.array.isRequired,\n subTable: PropTypes.bool,\n hideBadge: PropTypes.bool,\n loading: PropTypes.bool,\n selectRows: PropTypes.bool,\n handleSelectAllClick: PropTypes.func,\n handleClick: PropTypes.func,\n selected: PropTypes.array,\n selectID: PropTypes.string,\n async: PropTypes.bool,\n resetFlag: PropTypes.string,\n pageSizeOptions: PropTypes.arrayOf(PropTypes.number),\n name: PropTypes.string,\n setLoading: PropTypes.func,\n searchTerm: PropTypes.string,\n setOrder: PropTypes.func,\n setOrderBy: PropTypes.func,\n order: PropTypes.string,\n orderBy: PropTypes.string,\n asyncPages: PropTypes.number,\n};\n\nexport default EnhancedTable;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport Paper from \"@mui/material/Paper\";\nimport LazyLoadingIndicator from \"./components/LazyLoadingIndicator\";\nimport useSearchableRows from \"./hooks/useSearchableRows\";\nimport useSelectableRows from \"./hooks/useSelectableRows\";\nimport TableSelectionBanner from \"./components/TableSelectionBanner\";\nimport TableTitle from \"./components/TableTitle\";\nimport TableToolbarContent from \"./components/TableToolbarContent\";\nimport EnhancedTable from \"./components/EnhancedTable\";\n\nexport default function UniversalTable({\n loading,\n setLoading,\n onReload,\n lazyloading = false,\n currentPage,\n totalPages,\n data,\n headers,\n name,\n reloadBtnLoading,\n subTable = false,\n hideBadge = false,\n selectRows = false,\n selectID,\n selectIcon,\n onSelection,\n pageSizeOptions,\n persistSearch,\n asyncPages,\n}) {\n const debounceRef = React.useRef(null);\n\n const async = typeof asyncPages === \"number\" && asyncPages > 0;\n\n const head = headers || [];\n const { rows, searchTerm, setSearchTerm } = useSearchableRows(\n data,\n head,\n async,\n );\n const [order, setOrder] = React.useState(\"asc\");\n const [orderBy, setOrderBy] = React.useState(\"\");\n const { selected, clearSelection, handleSelectAllClick, handleClick } =\n useSelectableRows({\n rows,\n selectRows,\n selectID,\n });\n\n const handleSearchChange = React.useCallback(\n (value) => {\n clearSelection();\n setSearchTerm(value);\n },\n [clearSelection, setSearchTerm],\n );\n const handleSearch = (searchValue) => {\n if (async) {\n setSearchTerm(searchValue);\n clearTimeout(debounceRef.current);\n\n debounceRef.current = setTimeout(() => {\n setLoading({\n searchTerm: searchValue,\n direction: order,\n column: orderBy,\n pages: asyncPages,\n });\n }, 500);\n } else {\n handleSearchChange(searchValue);\n }\n };\n\n React.useEffect(() => {\n return () => clearTimeout(debounceRef.current);\n }, []);\n\n React.useEffect(() => {\n if (async) {\n setLoading({\n searchTerm,\n direction: order,\n column: orderBy,\n pages: asyncPages,\n });\n }\n // Run the initial async load once on mount; search/sort/reload handlers\n // send their own payloads after user interaction.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const handleReload = React.useCallback(() => {\n if (typeof onReload === \"function\") {\n onReload();\n return;\n }\n if (typeof setLoading === \"function\") {\n setLoading(\n async\n ? { searchTerm, direction: order, column: orderBy, pages: asyncPages }\n : true,\n );\n }\n }, [async, onReload, setLoading, searchTerm, order, orderBy, asyncPages]);\n\n return (\n <>\n <LazyLoadingIndicator\n show={lazyloading}\n currentPage={currentPage}\n totalPages={totalPages}\n />\n <Paper\n sx={{\n ...(subTable && { boxShadow: \"none\" }),\n }}\n >\n <TableSelectionBanner\n selected={selected}\n onSelection={onSelection}\n selectIcon={selectIcon}\n />\n <TableTitle name={name} subTable={subTable} />\n {!subTable && (\n <TableToolbarContent\n onReload={\n typeof onReload === \"function\" || typeof setLoading === \"function\"\n ? handleReload\n : undefined\n }\n reloadBtnLoading={reloadBtnLoading}\n searchTerm={searchTerm}\n onSearchChange={handleSearch}\n name={name}\n persistSearch={persistSearch}\n />\n )}\n <EnhancedTable\n headers={head}\n rows={rows}\n resetFlag={searchTerm}\n searchTerm={searchTerm}\n subTable={subTable}\n hideBadge={hideBadge}\n loading={loading}\n selectRows={selectRows}\n handleSelectAllClick={handleSelectAllClick}\n handleClick={handleClick}\n selected={selected}\n selectID={selectID}\n pageSizeOptions={pageSizeOptions}\n name={name}\n setLoading={setLoading}\n order={order}\n orderBy={orderBy}\n setOrder={setOrder}\n setOrderBy={setOrderBy}\n asyncPages={asyncPages}\n async={async}\n />\n </Paper>\n </>\n );\n}\n\nUniversalTable.propTypes = {\n loading: PropTypes.bool,\n setLoading: PropTypes.func,\n /** Preferred callback — fires when the user clicks reload. */\n onReload: PropTypes.func,\n lazyloading: PropTypes.bool,\n currentPage: PropTypes.number,\n totalPages: PropTypes.number,\n data: PropTypes.array.isRequired,\n headers: PropTypes.array.isRequired,\n name: PropTypes.string,\n reloadBtnLoading: PropTypes.bool,\n subTable: PropTypes.bool,\n hideBadge: PropTypes.bool,\n selectRows: PropTypes.bool,\n selectID: PropTypes.string,\n selectIcon: PropTypes.element,\n onSelection: PropTypes.func,\n /** Override default page size options (e.g. [10, 25, 50]). Default auto-computed. */\n pageSizeOptions: PropTypes.arrayOf(PropTypes.number),\n /** Persist search term to sessionStorage (requires name prop). Default: false */\n persistSearch: PropTypes.bool,\n asyncPages: PropTypes.number,\n};\n"],"names":["LazyLoadingIndicator","_ref","show","currentPage","totalPages","React","createElement","Collapse","timeout","unmountOnExit","Box","sx","width","p","Typography","variant","color","mb","LinearProgress","value","propTypes","PropTypes","bool","isRequired","number","visuallyHidden","border","clip","height","margin","overflow","padding","position","whiteSpace","getSelectableRowId","row","index","selectID","getSearchableColumnIds","headers","filter","column","searchable","map","id","filterRows","data","searchTerm","filterOptions","term","toLocaleLowerCase","some","filterOption","String","includes","getPageOptions","rowCount","splitHeaders","reduce","groups","header","subRow","subTables","push","columns","descendingComparator","a","b","orderBy","getComparator","order","browserDateTimeFormatter","Intl","DateTimeFormat","undefined","year","month","day","hour","minute","hour12","formatCellValue","rowValues","raw","date","d","Date","Number","isNaN","getTime","format","stableSort","array","comparator","dateColumns","Set","object","findHeader","find","stabilizedThis","el","sortKey","_objectSpread","property","has","parsed","sortable","sort","useSearchableRows","async","_React$useState","useState","_React$useState2","_slicedToArray","setSearchTerm","useMemo","rows","useSelectableRows","selectRows","selected","setSelected","clearSelection","useCallback","handleSelectAllClick","event","target","checked","newSelected","handleClick","previous","selectedId","concat","_toConsumableArray","TableSelectionBanner","onSelection","selectIcon","length","display","justifyContent","bgcolor","theme","alpha","palette","primary","main","action","activatedOpacity","borderRadius","borderBottomLeftRadius","borderBottomRightRadius","component","IconButton","onClick","Task","func","element","TableTitle","name","subTable","string","ReloadBtn","loading","onReload","canReload","Tooltip","title","Button","disabled","RefreshIcon","FancySearch","onSubmit","Boolean","hover","setHover","expanded","handleSubmit","e","preventDefault","handleEndHover","isUserType","useRef","Paper","elevation","alignItems","transition","divider","onMouseEnter","onMouseLeave","onKeyDown","key","InputBase","placeholder","onChange","current","ml","onBlur","orientation","Stack","direction","spacing","mr","Clear","Divider","flexItem","type","Search","SearchArea","props","setFinalVal","searchName","persistSearch","searchVal","_sessionStorage$getIt","sessionStorage","getItem","TableToolbarContent","reloadBtnLoading","onSearchChange","Toolbar","pl","sm","pr","xs","pt","md","flex","getInitialRowsPerPage","pageSizeOptions","Array","isArray","useEnhancedTableState","_ref2","resetFlag","apiCall","setOrder","setOrderBy","asyncPages","page","rowsPerPage","pagination","setPagination","useEffect","handleRequestSort","isAsc","handleChangePage","newPage","handleChangeRowsPerPage","parseInt","handleSort","apiSortable","pages","EnhancedTableHead","onRequestSort","numSelected","onSelectAllClick","TableHead","TableRow","TableCell","Checkbox","indeterminate","headings","headCell","align","numeric","sortDirection","TableSortLabel","active","label","oneOf","UniversalTable","lazy","SubRowToggleCell","isOpen","onToggle","hideBadge","stopPropagation","iconColor","Badge","badgeContent","invisible","anchorOrigin","vertical","horizontal","text","closeIcon","RemoveCircle","openIcon","AddCircle","SubTableRow","table","colSpan","style","paddingBottom","paddingTop","Suspense","fallback","setLoading","subTitle","renderDataCells","_extends","cellProps","DataRow","memo","isSelected","_React$useMemo","isItemSelected","rowID","from","fill","reveal","setReveal","toggleSubRow","next","handleRowKeyDown","Fragment","tabIndex","role","oneOfType","TableLoader","TableBody","_","cellIndex","Skeleton","EnhancedTable","_useEnhancedTableStat","effectiveRowsPerPage","emptyRows","Math","max","min","visibleRows","slice","TableContainer","Table","minWidth","size","rowKey","TablePagination","rowsPerPageOptions","count","onPageChange","onRowsPerPageChange","showFirstButton","showLastButton","arrayOf","_ref$lazyloading","lazyloading","_ref$subTable","_ref$hideBadge","_ref$selectRows","debounceRef","head","_useSearchableRows","_React$useState3","_React$useState4","_useSelectableRows","handleSearchChange","handleSearch","searchValue","clearTimeout","setTimeout","handleReload","boxShadow"],"mappings":"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"}
package/dist/index.esm.js CHANGED
@@ -494,10 +494,10 @@ function FancySearch(_ref) {
494
494
  unmountOnExit: true
495
495
  }, /*#__PURE__*/React.createElement(Stack, {
496
496
  direction: "row",
497
- alignItems: "center",
498
497
  spacing: 0,
499
498
  sx: {
500
- mr: 3
499
+ mr: 3,
500
+ alignItems: "center"
501
501
  }
502
502
  }, /*#__PURE__*/React.createElement(IconButton, {
503
503
  onClick: function onClick() {
@@ -601,21 +601,36 @@ TableToolbarContent.propTypes = {
601
601
  persistSearch: PropTypes.bool
602
602
  };
603
603
 
604
- function useEnhancedTableState(_ref) {
604
+ function getInitialRowsPerPage(_ref) {
605
605
  var rows = _ref.rows,
606
606
  subTable = _ref.subTable,
607
- resetFlag = _ref.resetFlag,
608
- apiCall = _ref.apiCall,
609
- searchTerm = _ref.searchTerm,
610
- setOrder = _ref.setOrder,
611
- setOrderBy = _ref.setOrderBy,
612
- order = _ref.order,
613
- orderBy = _ref.orderBy,
614
- asyncPages = _ref.asyncPages;
607
+ pageSizeOptions = _ref.pageSizeOptions;
608
+ if (subTable) return rows.length;
609
+ if (Array.isArray(pageSizeOptions) && pageSizeOptions.length > 0) {
610
+ return pageSizeOptions[0];
611
+ }
612
+ return 5;
613
+ }
614
+ function useEnhancedTableState(_ref2) {
615
+ var rows = _ref2.rows,
616
+ subTable = _ref2.subTable,
617
+ pageSizeOptions = _ref2.pageSizeOptions,
618
+ resetFlag = _ref2.resetFlag,
619
+ apiCall = _ref2.apiCall,
620
+ searchTerm = _ref2.searchTerm,
621
+ setOrder = _ref2.setOrder,
622
+ setOrderBy = _ref2.setOrderBy,
623
+ order = _ref2.order,
624
+ orderBy = _ref2.orderBy,
625
+ asyncPages = _ref2.asyncPages;
615
626
  var _React$useState = React.useState(function () {
616
627
  return {
617
628
  page: 0,
618
- rowsPerPage: subTable ? rows.length : 5,
629
+ rowsPerPage: getInitialRowsPerPage({
630
+ rows: rows,
631
+ subTable: subTable,
632
+ pageSizeOptions: pageSizeOptions
633
+ }),
619
634
  resetFlag: resetFlag
620
635
  };
621
636
  }),
@@ -939,6 +954,7 @@ function EnhancedTable(props) {
939
954
  var _useEnhancedTableStat = useEnhancedTableState({
940
955
  rows: rows,
941
956
  subTable: subTable,
957
+ pageSizeOptions: props.pageSizeOptions,
942
958
  resetFlag: props.resetFlag,
943
959
  apiCall: setLoading,
944
960
  searchTerm: searchTerm,
@@ -953,13 +969,14 @@ function EnhancedTable(props) {
953
969
  handleSort = _useEnhancedTableStat.handleSort,
954
970
  handleChangePage = _useEnhancedTableStat.handleChangePage,
955
971
  handleChangeRowsPerPage = _useEnhancedTableStat.handleChangeRowsPerPage;
956
- var emptyRows = Math.max(0, rowsPerPage - Math.min(rowsPerPage, rows.length - page * rowsPerPage));
972
+ var effectiveRowsPerPage = rowsPerPage === -1 ? rows.length : rowsPerPage;
973
+ var emptyRows = Math.max(0, effectiveRowsPerPage - Math.min(effectiveRowsPerPage, rows.length - page * effectiveRowsPerPage));
957
974
  var isSelected = React.useCallback(function (id) {
958
975
  return selected.includes(id);
959
976
  }, [selected]);
960
977
  var visibleRows = React.useMemo(function () {
961
- return stableSort(rows, getComparator(order, orderBy), headers, orderBy).slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage);
962
- }, [headers, order, orderBy, page, rows, rowsPerPage]);
978
+ return stableSort(rows, getComparator(order, orderBy), headers, orderBy).slice(page * effectiveRowsPerPage, page * effectiveRowsPerPage + effectiveRowsPerPage);
979
+ }, [effectiveRowsPerPage, headers, order, orderBy, page, rows]);
963
980
  return /*#__PURE__*/React.createElement(TableContainer, null, /*#__PURE__*/React.createElement(Table, {
964
981
  sx: {
965
982
  minWidth: 750
@@ -977,7 +994,7 @@ function EnhancedTable(props) {
977
994
  onSelectAllClick: props.handleSelectAllClick,
978
995
  async: async
979
996
  }), /*#__PURE__*/React.createElement(TableBody, null, visibleRows.map(function (row, index) {
980
- var rowKey = selectID ? row[selectID] : "row-".concat(page * rowsPerPage + index);
997
+ var rowKey = selectID ? row[selectID] : "row-".concat(page * effectiveRowsPerPage + index);
981
998
  var rowID = getSelectableRowId(row, index, selectID);
982
999
  return /*#__PURE__*/React.createElement(DataRow, {
983
1000
  key: rowKey,
@@ -1120,6 +1137,9 @@ function UniversalTable(_ref) {
1120
1137
  pages: asyncPages
1121
1138
  });
1122
1139
  }
1140
+ // Run the initial async load once on mount; search/sort/reload handlers
1141
+ // send their own payloads after user interaction.
1142
+ // eslint-disable-next-line react-hooks/exhaustive-deps
1123
1143
  }, []);
1124
1144
  var handleReload = React.useCallback(function () {
1125
1145
  if (typeof onReload === "function") {
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../src/components/LazyLoadingIndicator.jsx","../src/utils/tableUtils.js","../src/hooks/useSearchableRows.js","../src/hooks/useSelectableRows.js","../src/components/TableSelectionBanner.jsx","../src/components/TableTitle.jsx","../src/components/ReloadBtn.jsx","../src/components/FancySearch.jsx","../src/components/SearchArea.jsx","../src/components/TableToolbarContent.jsx","../src/hooks/useEnhancedTableState.js","../src/components/EnhancedTableHead.jsx","../src/components/SubTableRow.jsx","../src/components/DataRow.jsx","../src/components/TableLoader.jsx","../src/components/EnhancedTable.jsx","../src/UniversalTable.jsx"],"sourcesContent":["import React from \"react\";\nimport { Box, LinearProgress, Typography, Collapse } from \"@mui/material\";\nimport PropTypes from \"prop-types\";\n\nconst LazyLoadingIndicator = ({ show, currentPage, totalPages }) => {\n return (\n <Collapse in={show} timeout=\"auto\" unmountOnExit>\n <Box sx={{ width: \"100%\", p: 2 }}>\n <Typography variant=\"body2\" color=\"text.secondary\" sx={{ mb: 1 }}>\n Loading page {currentPage} of {totalPages}...\n </Typography>\n <LinearProgress\n variant=\"determinate\"\n value={(currentPage / totalPages) * 100}\n />\n </Box>\n </Collapse>\n );\n};\n\nLazyLoadingIndicator.propTypes = {\n show: PropTypes.bool.isRequired,\n currentPage: PropTypes.number,\n totalPages: PropTypes.number,\n};\n\nexport default LazyLoadingIndicator;\n","/**\n * Standard visually-hidden style: content is accessible to screen readers\n * but invisible on screen. Defined locally to avoid importing from\n * @mui/utils which is not a declared peer dependency.\n */\nexport const visuallyHidden = {\n border: 0,\n clip: \"rect(0 0 0 0)\",\n height: \"1px\",\n margin: -1,\n overflow: \"hidden\",\n padding: 0,\n position: \"absolute\",\n whiteSpace: \"nowrap\",\n width: \"1px\",\n};\n\nexport function getSelectableRowId(row, index, selectID) {\n return selectID ? row[selectID] : index;\n}\n\nexport function getSearchableColumnIds(headers) {\n return headers\n .filter((column) => column.searchable)\n .map((column) => column.id);\n}\n\nexport function filterRows(data, searchTerm, filterOptions) {\n if (!searchTerm) {\n return data;\n }\n\n const term = searchTerm.toLocaleLowerCase();\n return data.filter((row) =>\n filterOptions.some((filterOption) =>\n String(row[filterOption]).toLocaleLowerCase().includes(term),\n ),\n );\n}\n\nexport function getPageOptions(rowCount) {\n if (rowCount <= 5) return [5];\n if (rowCount <= 10) return [5, rowCount];\n if (rowCount <= 25) return [5, 10, rowCount];\n if (rowCount < 50) return [5, 10, 25, rowCount];\n if (rowCount < 100) return [5, 10, 25, 50, rowCount];\n return [5, 10, 25, 50, 100, rowCount];\n}\n\nexport function splitHeaders(headers) {\n return headers.reduce(\n (groups, header) => {\n if (header.subRow) {\n groups.subTables.push(header);\n } else {\n groups.columns.push(header);\n }\n\n return groups;\n },\n { subTables: [], columns: [] },\n );\n}\n\nexport function descendingComparator(a, b, orderBy) {\n if (b[orderBy] < a[orderBy]) {\n return -1;\n }\n if (b[orderBy] > a[orderBy]) {\n return 1;\n }\n return 0;\n}\n\nexport function getComparator(order, orderBy) {\n return order === \"desc\"\n ? (a, b) => descendingComparator(a, b, orderBy)\n : (a, b) => -descendingComparator(a, b, orderBy);\n}\n\nconst browserDateTimeFormatter = new Intl.DateTimeFormat(undefined, {\n year: \"numeric\",\n month: \"short\",\n day: \"numeric\",\n hour: \"numeric\",\n minute: \"2-digit\",\n hour12: true,\n});\n\n/**\n * Format a cell value for display. Handles dates safely:\n * returns the raw value for non-date headers, and a formatted\n * date string for date headers (guards against invalid dates).\n *\n * Uses `new Date(raw)` directly rather than `Date.parse(raw)` to\n * handle epoch-millisecond numbers, Date objects, and string\n * formats that Date.parse may reject.\n */\nexport function formatCellValue(header, rowValues) {\n const raw = rowValues[header.id];\n if (!header.date) {\n return raw;\n }\n\n // null and undefined produce a valid epoch-0 Date, not Invalid Date\n if (raw === null || raw === undefined) {\n return raw;\n }\n\n const d = new Date(raw);\n if (Number.isNaN(d.getTime())) {\n return raw;\n }\n\n return browserDateTimeFormatter.format(d);\n}\n\nexport function stableSort(array, comparator, headers, orderBy) {\n const dateColumns = new Set(\n headers.filter((object) => object.date).map((value) => value.id),\n );\n const findHeader = headers.find((header) => header.id === orderBy);\n\n // Build stable entries — compare pre-computed sort keys so we never\n // mutate the original data or its shallow copies.\n // Each entry is [originalRow, sortKey, index] so that the comparator\n // works on numeric-converted date values while the original rows are\n // returned unchanged (preserving the data seen by header.component).\n const stabilizedThis = array.map((el, index) => {\n const sortKey = { ...el };\n for (const property in sortKey) {\n if (dateColumns.has(property)) {\n const parsed = Number(new Date(sortKey[property]));\n // Preserve the original value for invalid dates so formatCellValue\n // can display the fallback instead of passing NaN to React children.\n if (!Number.isNaN(parsed)) {\n sortKey[property] = parsed;\n }\n }\n }\n return [el, sortKey, index];\n });\n\n if (findHeader?.sortable === undefined || findHeader?.sortable === false) {\n stabilizedThis.sort((a, b) => {\n const order = comparator(a[1], b[1]);\n if (order !== 0) return order;\n return a[2] - b[2];\n });\n }\n return stabilizedThis.map((el) => el[0]);\n}\n","import React from \"react\";\nimport { getSearchableColumnIds, filterRows } from \"../utils/tableUtils\";\n\nexport default function useSearchableRows(data, headers, async) {\n const [searchTerm, setSearchTerm] = React.useState(\"\");\n\n const filterOptions = React.useMemo(\n () => getSearchableColumnIds(headers),\n [headers],\n );\n\n const rows = React.useMemo(\n () => (async ? data : filterRows(data, searchTerm, filterOptions)),\n [async, data, filterOptions, searchTerm],\n );\n\n return {\n rows,\n searchTerm,\n setSearchTerm,\n };\n}\n","import React from \"react\";\nimport { getSelectableRowId } from \"../utils/tableUtils\";\n\nexport default function useSelectableRows({ rows, selectRows, selectID }) {\n const [selected, setSelected] = React.useState([]);\n\n const clearSelection = React.useCallback(() => {\n setSelected([]);\n }, []);\n\n const handleSelectAllClick = React.useCallback(\n (event) => {\n if (!event.target.checked) {\n setSelected([]);\n return;\n }\n\n const newSelected = rows.map((row, index) =>\n getSelectableRowId(row, index, selectID),\n );\n setSelected(newSelected);\n },\n [rows, selectID],\n );\n\n const handleClick = React.useCallback(\n (event, id) => {\n if (!selectRows) {\n return;\n }\n\n setSelected((previous) =>\n previous.includes(id)\n ? previous.filter((selectedId) => selectedId !== id)\n : [...previous, id],\n );\n },\n [selectRows],\n );\n\n return {\n selected,\n clearSelection,\n handleSelectAllClick,\n handleClick,\n };\n}\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { Box, Collapse, IconButton, Typography } from \"@mui/material\";\nimport { alpha } from \"@mui/material/styles\";\nimport { Task } from \"@mui/icons-material\";\n\nfunction TableSelectionBanner({ selected, onSelection, selectIcon }) {\n return (\n <Collapse in={selected.length > 0} unmountOnExit>\n <Box\n sx={{\n p: 2,\n display: \"flex\",\n justifyContent: \"space-between\",\n bgcolor: (theme) =>\n alpha(\n theme.palette.primary.main,\n theme.palette.action.activatedOpacity,\n ),\n borderRadius: 1,\n borderBottomLeftRadius: 0,\n borderBottomRightRadius: 0,\n }}\n >\n <Typography variant=\"h6\" id=\"tableTitle\" component=\"div\">\n {selected.length} selected\n </Typography>\n\n <IconButton onClick={() => onSelection(selected)}>\n {selectIcon || <Task />}\n </IconButton>\n </Box>\n </Collapse>\n );\n}\n\nTableSelectionBanner.propTypes = {\n selected: PropTypes.array.isRequired,\n onSelection: PropTypes.func,\n selectIcon: PropTypes.element,\n};\n\nexport default TableSelectionBanner;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { Typography } from \"@mui/material\";\n\nfunction TableTitle({ name, subTable }) {\n return (\n <Typography\n variant={subTable ? \"h6\" : \"h5\"}\n color={subTable ? \"secondary\" : \"primary\"}\n sx={{ p: 2 }}\n >\n {name}\n </Typography>\n );\n}\n\nTableTitle.propTypes = {\n name: PropTypes.string,\n subTable: PropTypes.bool,\n};\n\nexport default TableTitle;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { Button, Tooltip } from \"@mui/material\";\nimport RefreshIcon from \"@mui/icons-material/Refresh\";\n\nfunction ReloadBtn({ loading, onReload }) {\n const canReload = typeof onReload === \"function\";\n\n if (!canReload) {\n return null;\n }\n\n const handleClick = () => {\n if (typeof onReload === \"function\") {\n onReload();\n }\n };\n\n return (\n <Tooltip title=\"Reload\">\n <Button\n variant=\"contained\"\n color=\"primary\"\n onClick={handleClick}\n disabled={loading}\n >\n <RefreshIcon />\n </Button>\n </Tooltip>\n );\n}\n\nReloadBtn.propTypes = {\n loading: PropTypes.bool,\n /** Preferred callback — fires when the user clicks reload. */\n onReload: PropTypes.func,\n};\n\nexport default ReloadBtn;\n","import React from \"react\";\nimport {\n Collapse,\n Divider,\n IconButton,\n InputBase,\n Paper,\n Stack,\n} from \"@mui/material\";\nimport { Clear, Search } from \"@mui/icons-material\";\nimport PropTypes from \"prop-types\";\n\nexport default function FancySearch({ value, onSubmit }) {\n const [hover, setHover] = React.useState(Boolean(value));\n const expanded = hover || Boolean(value);\n\n const handleSubmit = (e) => {\n e.preventDefault();\n onSubmit(value);\n };\n\n const handleEndHover = () => {\n setHover(false);\n };\n\n // Sync internal state when the parent clears/changes the search term.\n // A ref tracks whether this sync came from the user typing or from a parent\n // update, so the debounce only fires for genuine user input.\n const isUserType = React.useRef(false);\n\n return (\n <form onSubmit={handleSubmit}>\n <Paper\n elevation={0}\n sx={{\n borderRadius: expanded ? \"24px\" : \"50px\",\n display: \"flex\",\n alignItems: \"center\",\n transition: \"all 0.5s ease-in-out\",\n p: expanded ? 1 : 0.5,\n width: \"fit-content\",\n border: (theme) => `1px solid ${theme.palette.divider}`,\n mb: 1,\n }}\n onMouseEnter={() => setHover(true)}\n onMouseLeave={handleEndHover}\n onKeyDown={(e) => e.key === \"Enter\" && handleSubmit(e)}\n >\n <InputBase\n placeholder=\"Search\"\n value={value}\n onChange={(e) => {\n isUserType.current = true;\n onSubmit(e.target.value);\n }}\n sx={{\n ml: 1,\n width: expanded ? \"100%\" : 0,\n transition: \"width 0.5s ease-in-out\",\n ...(expanded ? {} : { margin: 0 }),\n }}\n onBlur={handleEndHover}\n />\n\n <Collapse in={Boolean(value)} orientation=\"horizontal\" unmountOnExit>\n <Stack direction=\"row\" alignItems=\"center\" spacing={0} sx={{ mr: 3 }}>\n <IconButton\n onClick={() => {\n isUserType.current = false;\n // Immediately clear instead of waiting for the debounce\n onSubmit(\"\");\n }}\n >\n <Clear />\n </IconButton>\n <Divider orientation=\"vertical\" flexItem />\n </Stack>\n </Collapse>\n\n <IconButton onClick={handleSubmit} type=\"submit\">\n <Search />\n </IconButton>\n </Paper>\n </form>\n );\n}\n\nFancySearch.propTypes = {\n value: PropTypes.string,\n onSubmit: PropTypes.func.isRequired,\n};\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport FancySearch from \"./FancySearch\";\n\nfunction SearchArea(props) {\n const { current, setFinalVal, searchName, persistSearch } = props;\n\n const searchVal = React.useMemo(() => {\n if (current !== undefined && current !== null) return current;\n if (persistSearch && searchName) {\n return sessionStorage.getItem(`searchVal:${searchName}`) ?? \"\";\n }\n return \"\";\n }, [current, persistSearch, searchName]);\n\n return (\n <div key=\"SearchArea\">\n <FancySearch value={searchVal} onSubmit={setFinalVal} />\n </div>\n );\n}\n\nSearchArea.propTypes = {\n current: PropTypes.string,\n setFinalVal: PropTypes.func.isRequired,\n searchName: PropTypes.string,\n /** Persist search term to sessionStorage (requires searchName). Default: false */\n persistSearch: PropTypes.bool,\n};\n\nexport default SearchArea;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { Box, Stack, Toolbar } from \"@mui/material\";\nimport ReloadBtn from \"./ReloadBtn\";\nimport SearchArea from \"./SearchArea\";\n\nfunction TableToolbarContent({\n onReload,\n reloadBtnLoading,\n searchTerm,\n onSearchChange,\n name,\n persistSearch,\n}) {\n return (\n <Toolbar\n sx={{\n pl: { sm: 2 },\n pr: { xs: 1, sm: 1 },\n pt: 2,\n }}\n >\n <Stack\n spacing={2}\n direction={{ xs: \"column\", md: \"row\" }}\n sx={{\n width: \"100%\",\n alignItems: { xs: \"flex-start\", md: \"center\" },\n }}\n >\n <Box sx={{ flex: \"1 1 100%\" }} id=\"tableTitle\">\n <ReloadBtn onReload={onReload} loading={reloadBtnLoading} />\n </Box>\n <SearchArea\n current={searchTerm}\n setFinalVal={onSearchChange}\n searchName={name}\n persistSearch={persistSearch}\n />\n </Stack>\n </Toolbar>\n );\n}\n\nTableToolbarContent.propTypes = {\n onReload: PropTypes.func,\n reloadBtnLoading: PropTypes.bool,\n searchTerm: PropTypes.string,\n onSearchChange: PropTypes.func.isRequired,\n name: PropTypes.string,\n persistSearch: PropTypes.bool,\n};\n\nexport default TableToolbarContent;\n","import React from \"react\";\n\nexport default function useEnhancedTableState({\n rows,\n subTable,\n resetFlag,\n apiCall,\n searchTerm,\n setOrder,\n setOrderBy,\n order,\n orderBy,\n asyncPages,\n}) {\n const [pagination, setPagination] = React.useState(() => ({\n page: 0,\n rowsPerPage: subTable ? rows.length : 5,\n resetFlag,\n }));\n\n React.useEffect(() => {\n // eslint-disable-next-line react-hooks/set-state-in-effect\n setPagination((previous) => {\n if (previous.resetFlag === resetFlag) {\n return previous;\n }\n\n return {\n ...previous,\n page: 0,\n resetFlag,\n };\n });\n }, [resetFlag]);\n\n const page = pagination.page;\n const rowsPerPage = subTable ? rows.length : pagination.rowsPerPage;\n\n const handleRequestSort = React.useCallback(\n (property) => {\n const isAsc = orderBy === property && order === \"asc\";\n setOrder(isAsc ? \"desc\" : \"asc\");\n setOrderBy(property);\n },\n [order, orderBy, setOrder, setOrderBy],\n );\n\n const handleChangePage = React.useCallback((event, newPage) => {\n setPagination((previous) => ({\n ...previous,\n page: newPage,\n }));\n }, []);\n\n const handleChangeRowsPerPage = React.useCallback((event) => {\n setPagination((previous) => ({\n ...previous,\n page: 0,\n rowsPerPage: Number.parseInt(event.target.value, 10),\n }));\n }, []);\n\n const handleSort = (column, apiSortable) => {\n if (apiSortable) {\n const direction = order === \"asc\" ? \"desc\" : \"asc\";\n apiCall({ searchTerm, column, direction, pages: asyncPages ?? 1 });\n setOrder(direction);\n setOrderBy(column);\n return;\n }\n handleRequestSort(column);\n };\n\n return {\n order,\n orderBy,\n page,\n rowsPerPage,\n handleChangePage,\n handleChangeRowsPerPage,\n handleSort,\n };\n}\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport {\n Box,\n Checkbox,\n TableCell,\n TableHead,\n TableRow,\n TableSortLabel,\n} from \"@mui/material\";\n\nimport { visuallyHidden } from \"../utils/tableUtils\";\n\nfunction EnhancedTableHead(props) {\n const {\n order,\n orderBy,\n onRequestSort,\n selectRows,\n numSelected,\n rowCount,\n onSelectAllClick,\n async,\n } = props;\n\n return (\n <TableHead>\n <TableRow>\n {selectRows && (\n <TableCell padding=\"checkbox\">\n <Checkbox\n color=\"primary\"\n indeterminate={numSelected > 0 && numSelected < rowCount}\n checked={rowCount > 0 && numSelected === rowCount}\n onChange={onSelectAllClick}\n />\n </TableCell>\n )}\n {props.headings.map((headCell) => (\n <TableCell\n key={headCell.id}\n align={headCell.numeric ? \"right\" : \"left\"}\n padding=\"normal\"\n sortDirection={orderBy === headCell.id ? order : false}\n >\n <TableSortLabel\n active={orderBy === headCell.id}\n direction={orderBy === headCell.id ? order : \"asc\"}\n onClick={() =>\n onRequestSort(headCell.id, headCell.sortable && async)\n }\n disabled={headCell.subRow}\n >\n {headCell.label}\n {orderBy === headCell.id ? (\n <Box component=\"span\" sx={visuallyHidden}>\n {order === \"desc\" ? \"sorted descending\" : \"sorted ascending\"}\n </Box>\n ) : undefined}\n </TableSortLabel>\n </TableCell>\n ))}\n </TableRow>\n </TableHead>\n );\n}\n\nEnhancedTableHead.propTypes = {\n onRequestSort: PropTypes.func.isRequired,\n order: PropTypes.oneOf([\"asc\", \"desc\"]).isRequired,\n orderBy: PropTypes.string.isRequired,\n headings: PropTypes.array.isRequired,\n selectRows: PropTypes.bool,\n numSelected: PropTypes.number,\n rowCount: PropTypes.number,\n onSelectAllClick: PropTypes.func,\n async: PropTypes.bool,\n};\n\nexport default EnhancedTableHead;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport {\n Badge,\n Box,\n Collapse,\n IconButton,\n TableCell,\n TableRow,\n Tooltip,\n} from \"@mui/material\";\nimport { AddCircle, RemoveCircle } from \"@mui/icons-material\";\n\n/**\n * Lazily import UniversalTable to statically break the circular dependency:\n * UniversalTable → EnhancedTable → DataRow → SubTableRow → UniversalTable\n * React.lazy resolves the import at render time, so the module graph stays acyclic.\n */\nconst UniversalTable = React.lazy(() => import(\"../UniversalTable\"));\n\n// ---------------------------------------------------------------------------\n// SubRowToggleCell\n// ---------------------------------------------------------------------------\n\nexport function SubRowToggleCell({ header, isOpen, onToggle, rowValues, hideBadge }) {\n return (\n <TableCell>\n <Tooltip title={isOpen ? `Hide ${header.id}` : `Show ${header.id}`}>\n <Box>\n <IconButton\n onClick={(event) => {\n event.stopPropagation();\n onToggle();\n }}\n disabled={rowValues[header.id].length === 0}\n color={header.iconColor || \"secondary\"}\n >\n <Badge\n badgeContent={rowValues[header.id].length}\n invisible={hideBadge}\n anchorOrigin={{\n vertical: \"bottom\",\n horizontal: \"right\",\n }}\n sx={{\n \"& .MuiBadge-badge\": {\n color: (theme) => theme.palette.text.primary,\n },\n }}\n >\n {isOpen\n ? header?.closeIcon || <RemoveCircle />\n : header?.openIcon || <AddCircle />}\n </Badge>\n </IconButton>\n </Box>\n </Tooltip>\n </TableCell>\n );\n}\n\nSubRowToggleCell.propTypes = {\n header: PropTypes.object.isRequired,\n isOpen: PropTypes.bool.isRequired,\n onToggle: PropTypes.func.isRequired,\n rowValues: PropTypes.object.isRequired,\n hideBadge: PropTypes.bool,\n};\n\n// ---------------------------------------------------------------------------\n// SubTableRow\n// ---------------------------------------------------------------------------\n\nexport function SubTableRow({ table, isOpen, rowValues, colSpan }) {\n return (\n <TableRow>\n <TableCell colSpan={colSpan} style={{ paddingBottom: 0, paddingTop: 0 }}>\n <Collapse in={isOpen} timeout=\"auto\" unmountOnExit>\n <React.Suspense fallback={null}>\n <UniversalTable\n loading={table.loading}\n setLoading={table.setLoading}\n onReload={table.onReload}\n data={rowValues[table.id]}\n headers={table.headers}\n name={table.subTitle}\n subTable\n />\n </React.Suspense>\n </Collapse>\n </TableCell>\n </TableRow>\n );\n}\n\nSubTableRow.propTypes = {\n table: PropTypes.object.isRequired,\n isOpen: PropTypes.bool.isRequired,\n rowValues: PropTypes.object.isRequired,\n colSpan: PropTypes.number.isRequired,\n};\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport {\n Checkbox,\n TableCell,\n TableRow,\n} from \"@mui/material\";\nimport { SubRowToggleCell, SubTableRow } from \"./SubTableRow\";\nimport { splitHeaders, formatCellValue } from \"../utils/tableUtils\";\n\nfunction renderDataCells(headers, rowValues) {\n return headers.map((header, index) => (\n <TableCell key={header.id || index} {...header.cellProps}>\n {header.component\n ? header.component(rowValues)\n : formatCellValue(header, rowValues)}\n </TableCell>\n ));\n}\n\nconst DataRow = React.memo(function DataRow(props) {\n const { rowValues, headers, selectRows, isSelected, handleClick } = props;\n const { subTables, columns } = React.useMemo(() => splitHeaders(headers), [\n headers,\n ]);\n const hideBadge = props.hideBadge || false;\n const isItemSelected = isSelected(props.rowID);\n const [reveal, setReveal] = React.useState(\n Array.from({ length: subTables.length }).fill(false),\n );\n\n const toggleSubRow = React.useCallback((index) => {\n setReveal((previous) => {\n const next = [...previous];\n next[index] = !next[index];\n return next;\n });\n }, []);\n\n const handleRowKeyDown = React.useCallback(\n (event) => {\n if (selectRows && (event.key === \" \" || event.key === \"Enter\")) {\n event.preventDefault();\n handleClick(event, props.rowID);\n }\n },\n [selectRows, handleClick, props.rowID],\n );\n\n return (\n <>\n <TableRow\n tabIndex={selectRows ? 0 : -1}\n hover={selectRows}\n role={selectRows ? \"checkbox\" : \"row\"}\n selected={isItemSelected}\n aria-checked={isItemSelected}\n onKeyDown={handleRowKeyDown}\n >\n {selectRows && (\n <TableCell padding=\"checkbox\">\n <Checkbox\n color=\"primary\"\n checked={isItemSelected}\n onClick={(event) => handleClick(event, props.rowID)}\n />\n </TableCell>\n )}\n {subTables.map((header, index) => (\n <SubRowToggleCell\n key={header.id || index}\n header={header}\n isOpen={reveal[index]}\n onToggle={() => toggleSubRow(index)}\n rowValues={rowValues}\n hideBadge={hideBadge}\n />\n ))}\n {renderDataCells(columns, rowValues)}\n </TableRow>\n {subTables.map((table, index) => (\n <SubTableRow\n key={table.id || index}\n table={table}\n isOpen={reveal[index]}\n rowValues={rowValues}\n colSpan={props.headers.length + 1}\n />\n ))}\n </>\n );\n});\n\nDataRow.propTypes = {\n rowValues: PropTypes.object.isRequired,\n headers: PropTypes.array.isRequired,\n selectRows: PropTypes.bool,\n isSelected: PropTypes.func.isRequired,\n handleClick: PropTypes.func,\n hideBadge: PropTypes.bool,\n rowID: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n};\n\nexport default DataRow;\n","import React from \"react\";\nimport {\n TableBody,\n TableCell,\n TableRow,\n Skeleton,\n TableHead,\n} from \"@mui/material\";\n\nconst TableLoader = () => {\n return (\n <>\n <TableHead />\n <TableBody>\n {Array.from({ length: 5 }).map((_, index) => (\n <TableRow key={index}>\n {Array.from({ length: 4 }).map((_, cellIndex) => (\n <TableCell key={cellIndex}>\n <Skeleton height={30} />\n </TableCell>\n ))}\n </TableRow>\n ))}\n </TableBody>\n </>\n );\n};\n\nexport default TableLoader;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport {\n Box,\n Table,\n TableBody,\n TableCell,\n TableContainer,\n TablePagination,\n TableRow,\n} from \"@mui/material\";\nimport useEnhancedTableState from \"../hooks/useEnhancedTableState\";\nimport {\n getComparator,\n getPageOptions,\n getSelectableRowId,\n stableSort,\n} from \"../utils/tableUtils\";\nimport EnhancedTableHead from \"./EnhancedTableHead\";\nimport DataRow from \"./DataRow\";\nimport TableLoader from \"./TableLoader\";\n\nfunction EnhancedTable(props) {\n const {\n headers,\n rows,\n subTable,\n selected,\n selectID,\n setLoading,\n searchTerm,\n setOrder,\n setOrderBy,\n order,\n orderBy,\n async,\n asyncPages,\n } = props;\n const dense = true;\n const {\n page,\n rowsPerPage,\n handleSort,\n handleChangePage,\n handleChangeRowsPerPage,\n } = useEnhancedTableState({\n rows,\n subTable,\n resetFlag: props.resetFlag,\n apiCall: setLoading,\n searchTerm,\n setOrder,\n setOrderBy,\n order,\n orderBy,\n asyncPages,\n });\n\n const emptyRows = Math.max(\n 0,\n rowsPerPage - Math.min(rowsPerPage, rows.length - page * rowsPerPage),\n );\n\n const isSelected = React.useCallback(\n (id) => selected.includes(id),\n [selected],\n );\n\n const visibleRows = React.useMemo(() => {\n return stableSort(\n rows,\n getComparator(order, orderBy),\n headers,\n orderBy,\n ).slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage);\n }, [headers, order, orderBy, page, rows, rowsPerPage]);\n\n return (\n <TableContainer>\n <Table\n sx={{ minWidth: 750 }}\n size={dense ? \"small\" : \"medium\"}\n aria-label={props.name || \"data table\"}\n >\n {props.loading ? (\n <TableLoader />\n ) : (\n <>\n <EnhancedTableHead\n order={order}\n orderBy={orderBy}\n onRequestSort={handleSort}\n headings={headers}\n selectRows={props.selectRows}\n numSelected={selected.length}\n rowCount={rows.length}\n onSelectAllClick={props.handleSelectAllClick}\n async={async}\n />\n\n <TableBody>\n {visibleRows.map((row, index) => {\n const rowKey = selectID\n ? row[selectID]\n : `row-${page * rowsPerPage + index}`;\n const rowID = getSelectableRowId(row, index, selectID);\n\n return (\n <DataRow\n key={rowKey}\n rowID={rowID}\n headers={headers}\n rowValues={row}\n hideBadge={props.hideBadge}\n selectRows={props.selectRows}\n handleClick={props.handleClick}\n isSelected={isSelected}\n />\n );\n })}\n {!subTable && emptyRows > 0 && (\n <TableRow style={{ height: (dense ? 33 : 53) * emptyRows }}>\n <TableCell colSpan={headers.length} />\n </TableRow>\n )}\n </TableBody>\n </>\n )}\n </Table>\n {subTable ? (\n <Box sx={{ mb: 3 }} />\n ) : (\n <TablePagination\n rowsPerPageOptions={\n props.pageSizeOptions || getPageOptions(rows.length)\n }\n component=\"div\"\n count={rows.length}\n rowsPerPage={rowsPerPage}\n page={page}\n onPageChange={handleChangePage}\n onRowsPerPageChange={handleChangeRowsPerPage}\n sx={{ overflow: \"visible\" }}\n showFirstButton\n showLastButton\n />\n )}\n </TableContainer>\n );\n}\n\nEnhancedTable.propTypes = {\n headers: PropTypes.array.isRequired,\n rows: PropTypes.array.isRequired,\n subTable: PropTypes.bool,\n hideBadge: PropTypes.bool,\n loading: PropTypes.bool,\n selectRows: PropTypes.bool,\n handleSelectAllClick: PropTypes.func,\n handleClick: PropTypes.func,\n selected: PropTypes.array,\n selectID: PropTypes.string,\n async: PropTypes.bool,\n resetFlag: PropTypes.string,\n pageSizeOptions: PropTypes.arrayOf(PropTypes.number),\n name: PropTypes.string,\n setLoading: PropTypes.func,\n searchTerm: PropTypes.string,\n setOrder: PropTypes.func,\n setOrderBy: PropTypes.func,\n order: PropTypes.string,\n orderBy: PropTypes.string,\n asyncPages: PropTypes.number,\n};\n\nexport default EnhancedTable;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport Paper from \"@mui/material/Paper\";\nimport LazyLoadingIndicator from \"./components/LazyLoadingIndicator\";\nimport useSearchableRows from \"./hooks/useSearchableRows\";\nimport useSelectableRows from \"./hooks/useSelectableRows\";\nimport TableSelectionBanner from \"./components/TableSelectionBanner\";\nimport TableTitle from \"./components/TableTitle\";\nimport TableToolbarContent from \"./components/TableToolbarContent\";\nimport EnhancedTable from \"./components/EnhancedTable\";\n\nexport default function UniversalTable({\n loading,\n setLoading,\n onReload,\n lazyloading = false,\n currentPage,\n totalPages,\n data,\n headers,\n name,\n reloadBtnLoading,\n subTable = false,\n hideBadge = false,\n selectRows = false,\n selectID,\n selectIcon,\n onSelection,\n pageSizeOptions,\n persistSearch,\n asyncPages,\n}) {\n const debounceRef = React.useRef(null);\n\n const async = typeof asyncPages === \"number\" && asyncPages > 0;\n\n const head = headers || [];\n const { rows, searchTerm, setSearchTerm } = useSearchableRows(\n data,\n head,\n async,\n );\n const [order, setOrder] = React.useState(\"asc\");\n const [orderBy, setOrderBy] = React.useState(\"\");\n const { selected, clearSelection, handleSelectAllClick, handleClick } =\n useSelectableRows({\n rows,\n selectRows,\n selectID,\n });\n\n const handleSearchChange = React.useCallback(\n (value) => {\n clearSelection();\n setSearchTerm(value);\n },\n [clearSelection, setSearchTerm],\n );\n const handleSearch = (searchValue) => {\n if (async) {\n setSearchTerm(searchValue);\n clearTimeout(debounceRef.current);\n\n debounceRef.current = setTimeout(() => {\n setLoading({\n searchTerm: searchValue,\n direction: order,\n column: orderBy,\n pages: asyncPages,\n });\n }, 500);\n } else {\n handleSearchChange(searchValue);\n }\n };\n\n React.useEffect(() => {\n return () => clearTimeout(debounceRef.current);\n }, []);\n\n React.useEffect(() => {\n if (async) {\n setLoading({\n searchTerm,\n direction: order,\n column: orderBy,\n pages: asyncPages,\n });\n }\n }, []);\n\n const handleReload = React.useCallback(() => {\n if (typeof onReload === \"function\") {\n onReload();\n return;\n }\n if (typeof setLoading === \"function\") {\n setLoading(\n async\n ? { searchTerm, direction: order, column: orderBy, pages: asyncPages }\n : true,\n );\n }\n }, [async, onReload, setLoading, searchTerm, order, orderBy, asyncPages]);\n\n return (\n <>\n <LazyLoadingIndicator\n show={lazyloading}\n currentPage={currentPage}\n totalPages={totalPages}\n />\n <Paper\n sx={{\n ...(subTable && { boxShadow: \"none\" }),\n }}\n >\n <TableSelectionBanner\n selected={selected}\n onSelection={onSelection}\n selectIcon={selectIcon}\n />\n <TableTitle name={name} subTable={subTable} />\n {!subTable && (\n <TableToolbarContent\n onReload={\n typeof onReload === \"function\" || typeof setLoading === \"function\"\n ? handleReload\n : undefined\n }\n reloadBtnLoading={reloadBtnLoading}\n searchTerm={searchTerm}\n onSearchChange={handleSearch}\n name={name}\n persistSearch={persistSearch}\n />\n )}\n <EnhancedTable\n headers={head}\n rows={rows}\n resetFlag={searchTerm}\n searchTerm={searchTerm}\n subTable={subTable}\n hideBadge={hideBadge}\n loading={loading}\n selectRows={selectRows}\n handleSelectAllClick={handleSelectAllClick}\n handleClick={handleClick}\n selected={selected}\n selectID={selectID}\n pageSizeOptions={pageSizeOptions}\n name={name}\n setLoading={setLoading}\n order={order}\n orderBy={orderBy}\n setOrder={setOrder}\n setOrderBy={setOrderBy}\n asyncPages={asyncPages}\n async={async}\n />\n </Paper>\n </>\n );\n}\n\nUniversalTable.propTypes = {\n loading: PropTypes.bool,\n setLoading: PropTypes.func,\n /** Preferred callback — fires when the user clicks reload. */\n onReload: PropTypes.func,\n lazyloading: PropTypes.bool,\n currentPage: PropTypes.number,\n totalPages: PropTypes.number,\n data: PropTypes.array.isRequired,\n headers: PropTypes.array.isRequired,\n name: PropTypes.string,\n reloadBtnLoading: PropTypes.bool,\n subTable: PropTypes.bool,\n hideBadge: PropTypes.bool,\n selectRows: PropTypes.bool,\n selectID: PropTypes.string,\n selectIcon: PropTypes.element,\n onSelection: PropTypes.func,\n /** Override default page size options (e.g. [10, 25, 50]). Default auto-computed. */\n pageSizeOptions: PropTypes.arrayOf(PropTypes.number),\n /** Persist search term to sessionStorage (requires name prop). Default: false */\n persistSearch: PropTypes.bool,\n asyncPages: PropTypes.number,\n};\n"],"names":["LazyLoadingIndicator","_ref","show","currentPage","totalPages","React","createElement","Collapse","timeout","unmountOnExit","Box","sx","width","p","Typography","variant","color","mb","LinearProgress","value","propTypes","PropTypes","bool","isRequired","number","visuallyHidden","border","clip","height","margin","overflow","padding","position","whiteSpace","getSelectableRowId","row","index","selectID","getSearchableColumnIds","headers","filter","column","searchable","map","id","filterRows","data","searchTerm","filterOptions","term","toLocaleLowerCase","some","filterOption","String","includes","getPageOptions","rowCount","splitHeaders","reduce","groups","header","subRow","subTables","push","columns","descendingComparator","a","b","orderBy","getComparator","order","browserDateTimeFormatter","Intl","DateTimeFormat","undefined","year","month","day","hour","minute","hour12","formatCellValue","rowValues","raw","date","d","Date","Number","isNaN","getTime","format","stableSort","array","comparator","dateColumns","Set","object","findHeader","find","stabilizedThis","el","sortKey","_objectSpread","property","has","parsed","sortable","sort","useSearchableRows","async","_React$useState","useState","_React$useState2","_slicedToArray","setSearchTerm","useMemo","rows","useSelectableRows","selectRows","selected","setSelected","clearSelection","useCallback","handleSelectAllClick","event","target","checked","newSelected","handleClick","previous","selectedId","concat","_toConsumableArray","TableSelectionBanner","onSelection","selectIcon","length","display","justifyContent","bgcolor","theme","alpha","palette","primary","main","action","activatedOpacity","borderRadius","borderBottomLeftRadius","borderBottomRightRadius","component","IconButton","onClick","Task","func","element","TableTitle","name","subTable","string","ReloadBtn","loading","onReload","canReload","Tooltip","title","Button","disabled","RefreshIcon","FancySearch","onSubmit","Boolean","hover","setHover","expanded","handleSubmit","e","preventDefault","handleEndHover","isUserType","useRef","Paper","elevation","alignItems","transition","divider","onMouseEnter","onMouseLeave","onKeyDown","key","InputBase","placeholder","onChange","current","ml","onBlur","orientation","Stack","direction","spacing","mr","Clear","Divider","flexItem","type","Search","SearchArea","props","setFinalVal","searchName","persistSearch","searchVal","_sessionStorage$getIt","sessionStorage","getItem","TableToolbarContent","reloadBtnLoading","onSearchChange","Toolbar","pl","sm","pr","xs","pt","md","flex","useEnhancedTableState","resetFlag","apiCall","setOrder","setOrderBy","asyncPages","page","rowsPerPage","pagination","setPagination","useEffect","handleRequestSort","isAsc","handleChangePage","newPage","handleChangeRowsPerPage","parseInt","handleSort","apiSortable","pages","EnhancedTableHead","onRequestSort","numSelected","onSelectAllClick","TableHead","TableRow","TableCell","Checkbox","indeterminate","headings","headCell","align","numeric","sortDirection","TableSortLabel","active","label","oneOf","UniversalTable","lazy","SubRowToggleCell","isOpen","onToggle","hideBadge","stopPropagation","iconColor","Badge","badgeContent","invisible","anchorOrigin","vertical","horizontal","text","closeIcon","RemoveCircle","openIcon","AddCircle","SubTableRow","_ref2","table","colSpan","style","paddingBottom","paddingTop","Suspense","fallback","setLoading","subTitle","renderDataCells","_extends","cellProps","DataRow","memo","isSelected","_React$useMemo","isItemSelected","rowID","Array","from","fill","reveal","setReveal","toggleSubRow","next","handleRowKeyDown","Fragment","tabIndex","role","oneOfType","TableLoader","TableBody","_","cellIndex","Skeleton","EnhancedTable","_useEnhancedTableStat","emptyRows","Math","max","min","visibleRows","slice","TableContainer","Table","minWidth","size","rowKey","TablePagination","rowsPerPageOptions","pageSizeOptions","count","onPageChange","onRowsPerPageChange","showFirstButton","showLastButton","arrayOf","_ref$lazyloading","lazyloading","_ref$subTable","_ref$hideBadge","_ref$selectRows","debounceRef","head","_useSearchableRows","_React$useState3","_React$useState4","_useSelectableRows","handleSearchChange","handleSearch","searchValue","clearTimeout","setTimeout","handleReload","boxShadow"],"mappings":"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"}
1
+ {"version":3,"file":"index.esm.js","sources":["../src/components/LazyLoadingIndicator.jsx","../src/utils/tableUtils.js","../src/hooks/useSearchableRows.js","../src/hooks/useSelectableRows.js","../src/components/TableSelectionBanner.jsx","../src/components/TableTitle.jsx","../src/components/ReloadBtn.jsx","../src/components/FancySearch.jsx","../src/components/SearchArea.jsx","../src/components/TableToolbarContent.jsx","../src/hooks/useEnhancedTableState.js","../src/components/EnhancedTableHead.jsx","../src/components/SubTableRow.jsx","../src/components/DataRow.jsx","../src/components/TableLoader.jsx","../src/components/EnhancedTable.jsx","../src/UniversalTable.jsx"],"sourcesContent":["import React from \"react\";\nimport { Box, LinearProgress, Typography, Collapse } from \"@mui/material\";\nimport PropTypes from \"prop-types\";\n\nconst LazyLoadingIndicator = ({ show, currentPage, totalPages }) => {\n return (\n <Collapse in={show} timeout=\"auto\" unmountOnExit>\n <Box sx={{ width: \"100%\", p: 2 }}>\n <Typography variant=\"body2\" color=\"text.secondary\" sx={{ mb: 1 }}>\n Loading page {currentPage} of {totalPages}...\n </Typography>\n <LinearProgress\n variant=\"determinate\"\n value={(currentPage / totalPages) * 100}\n />\n </Box>\n </Collapse>\n );\n};\n\nLazyLoadingIndicator.propTypes = {\n show: PropTypes.bool.isRequired,\n currentPage: PropTypes.number,\n totalPages: PropTypes.number,\n};\n\nexport default LazyLoadingIndicator;\n","/**\n * Standard visually-hidden style: content is accessible to screen readers\n * but invisible on screen. Defined locally to avoid importing from\n * @mui/utils which is not a declared peer dependency.\n */\nexport const visuallyHidden = {\n border: 0,\n clip: \"rect(0 0 0 0)\",\n height: \"1px\",\n margin: -1,\n overflow: \"hidden\",\n padding: 0,\n position: \"absolute\",\n whiteSpace: \"nowrap\",\n width: \"1px\",\n};\n\nexport function getSelectableRowId(row, index, selectID) {\n return selectID ? row[selectID] : index;\n}\n\nexport function getSearchableColumnIds(headers) {\n return headers\n .filter((column) => column.searchable)\n .map((column) => column.id);\n}\n\nexport function filterRows(data, searchTerm, filterOptions) {\n if (!searchTerm) {\n return data;\n }\n\n const term = searchTerm.toLocaleLowerCase();\n return data.filter((row) =>\n filterOptions.some((filterOption) =>\n String(row[filterOption]).toLocaleLowerCase().includes(term),\n ),\n );\n}\n\nexport function getPageOptions(rowCount) {\n if (rowCount <= 5) return [5];\n if (rowCount <= 10) return [5, rowCount];\n if (rowCount <= 25) return [5, 10, rowCount];\n if (rowCount < 50) return [5, 10, 25, rowCount];\n if (rowCount < 100) return [5, 10, 25, 50, rowCount];\n return [5, 10, 25, 50, 100, rowCount];\n}\n\nexport function splitHeaders(headers) {\n return headers.reduce(\n (groups, header) => {\n if (header.subRow) {\n groups.subTables.push(header);\n } else {\n groups.columns.push(header);\n }\n\n return groups;\n },\n { subTables: [], columns: [] },\n );\n}\n\nexport function descendingComparator(a, b, orderBy) {\n if (b[orderBy] < a[orderBy]) {\n return -1;\n }\n if (b[orderBy] > a[orderBy]) {\n return 1;\n }\n return 0;\n}\n\nexport function getComparator(order, orderBy) {\n return order === \"desc\"\n ? (a, b) => descendingComparator(a, b, orderBy)\n : (a, b) => -descendingComparator(a, b, orderBy);\n}\n\nconst browserDateTimeFormatter = new Intl.DateTimeFormat(undefined, {\n year: \"numeric\",\n month: \"short\",\n day: \"numeric\",\n hour: \"numeric\",\n minute: \"2-digit\",\n hour12: true,\n});\n\n/**\n * Format a cell value for display. Handles dates safely:\n * returns the raw value for non-date headers, and a formatted\n * date string for date headers (guards against invalid dates).\n *\n * Uses `new Date(raw)` directly rather than `Date.parse(raw)` to\n * handle epoch-millisecond numbers, Date objects, and string\n * formats that Date.parse may reject.\n */\nexport function formatCellValue(header, rowValues) {\n const raw = rowValues[header.id];\n if (!header.date) {\n return raw;\n }\n\n // null and undefined produce a valid epoch-0 Date, not Invalid Date\n if (raw === null || raw === undefined) {\n return raw;\n }\n\n const d = new Date(raw);\n if (Number.isNaN(d.getTime())) {\n return raw;\n }\n\n return browserDateTimeFormatter.format(d);\n}\n\nexport function stableSort(array, comparator, headers, orderBy) {\n const dateColumns = new Set(\n headers.filter((object) => object.date).map((value) => value.id),\n );\n const findHeader = headers.find((header) => header.id === orderBy);\n\n // Build stable entries — compare pre-computed sort keys so we never\n // mutate the original data or its shallow copies.\n // Each entry is [originalRow, sortKey, index] so that the comparator\n // works on numeric-converted date values while the original rows are\n // returned unchanged (preserving the data seen by header.component).\n const stabilizedThis = array.map((el, index) => {\n const sortKey = { ...el };\n for (const property in sortKey) {\n if (dateColumns.has(property)) {\n const parsed = Number(new Date(sortKey[property]));\n // Preserve the original value for invalid dates so formatCellValue\n // can display the fallback instead of passing NaN to React children.\n if (!Number.isNaN(parsed)) {\n sortKey[property] = parsed;\n }\n }\n }\n return [el, sortKey, index];\n });\n\n if (findHeader?.sortable === undefined || findHeader?.sortable === false) {\n stabilizedThis.sort((a, b) => {\n const order = comparator(a[1], b[1]);\n if (order !== 0) return order;\n return a[2] - b[2];\n });\n }\n return stabilizedThis.map((el) => el[0]);\n}\n","import React from \"react\";\nimport { getSearchableColumnIds, filterRows } from \"../utils/tableUtils\";\n\nexport default function useSearchableRows(data, headers, async) {\n const [searchTerm, setSearchTerm] = React.useState(\"\");\n\n const filterOptions = React.useMemo(\n () => getSearchableColumnIds(headers),\n [headers],\n );\n\n const rows = React.useMemo(\n () => (async ? data : filterRows(data, searchTerm, filterOptions)),\n [async, data, filterOptions, searchTerm],\n );\n\n return {\n rows,\n searchTerm,\n setSearchTerm,\n };\n}\n","import React from \"react\";\nimport { getSelectableRowId } from \"../utils/tableUtils\";\n\nexport default function useSelectableRows({ rows, selectRows, selectID }) {\n const [selected, setSelected] = React.useState([]);\n\n const clearSelection = React.useCallback(() => {\n setSelected([]);\n }, []);\n\n const handleSelectAllClick = React.useCallback(\n (event) => {\n if (!event.target.checked) {\n setSelected([]);\n return;\n }\n\n const newSelected = rows.map((row, index) =>\n getSelectableRowId(row, index, selectID),\n );\n setSelected(newSelected);\n },\n [rows, selectID],\n );\n\n const handleClick = React.useCallback(\n (event, id) => {\n if (!selectRows) {\n return;\n }\n\n setSelected((previous) =>\n previous.includes(id)\n ? previous.filter((selectedId) => selectedId !== id)\n : [...previous, id],\n );\n },\n [selectRows],\n );\n\n return {\n selected,\n clearSelection,\n handleSelectAllClick,\n handleClick,\n };\n}\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { Box, Collapse, IconButton, Typography } from \"@mui/material\";\nimport { alpha } from \"@mui/material/styles\";\nimport { Task } from \"@mui/icons-material\";\n\nfunction TableSelectionBanner({ selected, onSelection, selectIcon }) {\n return (\n <Collapse in={selected.length > 0} unmountOnExit>\n <Box\n sx={{\n p: 2,\n display: \"flex\",\n justifyContent: \"space-between\",\n bgcolor: (theme) =>\n alpha(\n theme.palette.primary.main,\n theme.palette.action.activatedOpacity,\n ),\n borderRadius: 1,\n borderBottomLeftRadius: 0,\n borderBottomRightRadius: 0,\n }}\n >\n <Typography variant=\"h6\" id=\"tableTitle\" component=\"div\">\n {selected.length} selected\n </Typography>\n\n <IconButton onClick={() => onSelection(selected)}>\n {selectIcon || <Task />}\n </IconButton>\n </Box>\n </Collapse>\n );\n}\n\nTableSelectionBanner.propTypes = {\n selected: PropTypes.array.isRequired,\n onSelection: PropTypes.func,\n selectIcon: PropTypes.element,\n};\n\nexport default TableSelectionBanner;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { Typography } from \"@mui/material\";\n\nfunction TableTitle({ name, subTable }) {\n return (\n <Typography\n variant={subTable ? \"h6\" : \"h5\"}\n color={subTable ? \"secondary\" : \"primary\"}\n sx={{ p: 2 }}\n >\n {name}\n </Typography>\n );\n}\n\nTableTitle.propTypes = {\n name: PropTypes.string,\n subTable: PropTypes.bool,\n};\n\nexport default TableTitle;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { Button, Tooltip } from \"@mui/material\";\nimport RefreshIcon from \"@mui/icons-material/Refresh\";\n\nfunction ReloadBtn({ loading, onReload }) {\n const canReload = typeof onReload === \"function\";\n\n if (!canReload) {\n return null;\n }\n\n const handleClick = () => {\n if (typeof onReload === \"function\") {\n onReload();\n }\n };\n\n return (\n <Tooltip title=\"Reload\">\n <Button\n variant=\"contained\"\n color=\"primary\"\n onClick={handleClick}\n disabled={loading}\n >\n <RefreshIcon />\n </Button>\n </Tooltip>\n );\n}\n\nReloadBtn.propTypes = {\n loading: PropTypes.bool,\n /** Preferred callback — fires when the user clicks reload. */\n onReload: PropTypes.func,\n};\n\nexport default ReloadBtn;\n","import React from \"react\";\nimport {\n Collapse,\n Divider,\n IconButton,\n InputBase,\n Paper,\n Stack,\n} from \"@mui/material\";\nimport { Clear, Search } from \"@mui/icons-material\";\nimport PropTypes from \"prop-types\";\n\nexport default function FancySearch({ value, onSubmit }) {\n const [hover, setHover] = React.useState(Boolean(value));\n const expanded = hover || Boolean(value);\n\n const handleSubmit = (e) => {\n e.preventDefault();\n onSubmit(value);\n };\n\n const handleEndHover = () => {\n setHover(false);\n };\n\n // Sync internal state when the parent clears/changes the search term.\n // A ref tracks whether this sync came from the user typing or from a parent\n // update, so the debounce only fires for genuine user input.\n const isUserType = React.useRef(false);\n\n return (\n <form onSubmit={handleSubmit}>\n <Paper\n elevation={0}\n sx={{\n borderRadius: expanded ? \"24px\" : \"50px\",\n display: \"flex\",\n alignItems: \"center\",\n transition: \"all 0.5s ease-in-out\",\n p: expanded ? 1 : 0.5,\n width: \"fit-content\",\n border: (theme) => `1px solid ${theme.palette.divider}`,\n mb: 1,\n }}\n onMouseEnter={() => setHover(true)}\n onMouseLeave={handleEndHover}\n onKeyDown={(e) => e.key === \"Enter\" && handleSubmit(e)}\n >\n <InputBase\n placeholder=\"Search\"\n value={value}\n onChange={(e) => {\n isUserType.current = true;\n onSubmit(e.target.value);\n }}\n sx={{\n ml: 1,\n width: expanded ? \"100%\" : 0,\n transition: \"width 0.5s ease-in-out\",\n ...(expanded ? {} : { margin: 0 }),\n }}\n onBlur={handleEndHover}\n />\n\n <Collapse in={Boolean(value)} orientation=\"horizontal\" unmountOnExit>\n <Stack direction=\"row\" spacing={0} sx={{ mr: 3, alignItems: \"center\" }}>\n <IconButton\n onClick={() => {\n isUserType.current = false;\n // Immediately clear instead of waiting for the debounce\n onSubmit(\"\");\n }}\n >\n <Clear />\n </IconButton>\n <Divider orientation=\"vertical\" flexItem />\n </Stack>\n </Collapse>\n\n <IconButton onClick={handleSubmit} type=\"submit\">\n <Search />\n </IconButton>\n </Paper>\n </form>\n );\n}\n\nFancySearch.propTypes = {\n value: PropTypes.string,\n onSubmit: PropTypes.func.isRequired,\n};\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport FancySearch from \"./FancySearch\";\n\nfunction SearchArea(props) {\n const { current, setFinalVal, searchName, persistSearch } = props;\n\n const searchVal = React.useMemo(() => {\n if (current !== undefined && current !== null) return current;\n if (persistSearch && searchName) {\n return sessionStorage.getItem(`searchVal:${searchName}`) ?? \"\";\n }\n return \"\";\n }, [current, persistSearch, searchName]);\n\n return (\n <div key=\"SearchArea\">\n <FancySearch value={searchVal} onSubmit={setFinalVal} />\n </div>\n );\n}\n\nSearchArea.propTypes = {\n current: PropTypes.string,\n setFinalVal: PropTypes.func.isRequired,\n searchName: PropTypes.string,\n /** Persist search term to sessionStorage (requires searchName). Default: false */\n persistSearch: PropTypes.bool,\n};\n\nexport default SearchArea;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { Box, Stack, Toolbar } from \"@mui/material\";\nimport ReloadBtn from \"./ReloadBtn\";\nimport SearchArea from \"./SearchArea\";\n\nfunction TableToolbarContent({\n onReload,\n reloadBtnLoading,\n searchTerm,\n onSearchChange,\n name,\n persistSearch,\n}) {\n return (\n <Toolbar\n sx={{\n pl: { sm: 2 },\n pr: { xs: 1, sm: 1 },\n pt: 2,\n }}\n >\n <Stack\n spacing={2}\n direction={{ xs: \"column\", md: \"row\" }}\n sx={{\n width: \"100%\",\n alignItems: { xs: \"flex-start\", md: \"center\" },\n }}\n >\n <Box sx={{ flex: \"1 1 100%\" }} id=\"tableTitle\">\n <ReloadBtn onReload={onReload} loading={reloadBtnLoading} />\n </Box>\n <SearchArea\n current={searchTerm}\n setFinalVal={onSearchChange}\n searchName={name}\n persistSearch={persistSearch}\n />\n </Stack>\n </Toolbar>\n );\n}\n\nTableToolbarContent.propTypes = {\n onReload: PropTypes.func,\n reloadBtnLoading: PropTypes.bool,\n searchTerm: PropTypes.string,\n onSearchChange: PropTypes.func.isRequired,\n name: PropTypes.string,\n persistSearch: PropTypes.bool,\n};\n\nexport default TableToolbarContent;\n","import React from \"react\";\n\nfunction getInitialRowsPerPage({ rows, subTable, pageSizeOptions }) {\n if (subTable) return rows.length;\n if (Array.isArray(pageSizeOptions) && pageSizeOptions.length > 0) {\n return pageSizeOptions[0];\n }\n return 5;\n}\n\nexport default function useEnhancedTableState({\n rows,\n subTable,\n pageSizeOptions,\n resetFlag,\n apiCall,\n searchTerm,\n setOrder,\n setOrderBy,\n order,\n orderBy,\n asyncPages,\n}) {\n const [pagination, setPagination] = React.useState(() => ({\n page: 0,\n rowsPerPage: getInitialRowsPerPage({ rows, subTable, pageSizeOptions }),\n resetFlag,\n }));\n\n React.useEffect(() => {\n // eslint-disable-next-line react-hooks/set-state-in-effect\n setPagination((previous) => {\n if (previous.resetFlag === resetFlag) {\n return previous;\n }\n\n return {\n ...previous,\n page: 0,\n resetFlag,\n };\n });\n }, [resetFlag]);\n\n const page = pagination.page;\n const rowsPerPage = subTable ? rows.length : pagination.rowsPerPage;\n\n const handleRequestSort = React.useCallback(\n (property) => {\n const isAsc = orderBy === property && order === \"asc\";\n setOrder(isAsc ? \"desc\" : \"asc\");\n setOrderBy(property);\n },\n [order, orderBy, setOrder, setOrderBy],\n );\n\n const handleChangePage = React.useCallback((event, newPage) => {\n setPagination((previous) => ({\n ...previous,\n page: newPage,\n }));\n }, []);\n\n const handleChangeRowsPerPage = React.useCallback((event) => {\n setPagination((previous) => ({\n ...previous,\n page: 0,\n rowsPerPage: Number.parseInt(event.target.value, 10),\n }));\n }, []);\n\n const handleSort = (column, apiSortable) => {\n if (apiSortable) {\n const direction = order === \"asc\" ? \"desc\" : \"asc\";\n apiCall({ searchTerm, column, direction, pages: asyncPages ?? 1 });\n setOrder(direction);\n setOrderBy(column);\n return;\n }\n handleRequestSort(column);\n };\n\n return {\n order,\n orderBy,\n page,\n rowsPerPage,\n handleChangePage,\n handleChangeRowsPerPage,\n handleSort,\n };\n}\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport {\n Box,\n Checkbox,\n TableCell,\n TableHead,\n TableRow,\n TableSortLabel,\n} from \"@mui/material\";\n\nimport { visuallyHidden } from \"../utils/tableUtils\";\n\nfunction EnhancedTableHead(props) {\n const {\n order,\n orderBy,\n onRequestSort,\n selectRows,\n numSelected,\n rowCount,\n onSelectAllClick,\n async,\n } = props;\n\n return (\n <TableHead>\n <TableRow>\n {selectRows && (\n <TableCell padding=\"checkbox\">\n <Checkbox\n color=\"primary\"\n indeterminate={numSelected > 0 && numSelected < rowCount}\n checked={rowCount > 0 && numSelected === rowCount}\n onChange={onSelectAllClick}\n />\n </TableCell>\n )}\n {props.headings.map((headCell) => (\n <TableCell\n key={headCell.id}\n align={headCell.numeric ? \"right\" : \"left\"}\n padding=\"normal\"\n sortDirection={orderBy === headCell.id ? order : false}\n >\n <TableSortLabel\n active={orderBy === headCell.id}\n direction={orderBy === headCell.id ? order : \"asc\"}\n onClick={() =>\n onRequestSort(headCell.id, headCell.sortable && async)\n }\n disabled={headCell.subRow}\n >\n {headCell.label}\n {orderBy === headCell.id ? (\n <Box component=\"span\" sx={visuallyHidden}>\n {order === \"desc\" ? \"sorted descending\" : \"sorted ascending\"}\n </Box>\n ) : undefined}\n </TableSortLabel>\n </TableCell>\n ))}\n </TableRow>\n </TableHead>\n );\n}\n\nEnhancedTableHead.propTypes = {\n onRequestSort: PropTypes.func.isRequired,\n order: PropTypes.oneOf([\"asc\", \"desc\"]).isRequired,\n orderBy: PropTypes.string.isRequired,\n headings: PropTypes.array.isRequired,\n selectRows: PropTypes.bool,\n numSelected: PropTypes.number,\n rowCount: PropTypes.number,\n onSelectAllClick: PropTypes.func,\n async: PropTypes.bool,\n};\n\nexport default EnhancedTableHead;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport {\n Badge,\n Box,\n Collapse,\n IconButton,\n TableCell,\n TableRow,\n Tooltip,\n} from \"@mui/material\";\nimport { AddCircle, RemoveCircle } from \"@mui/icons-material\";\n\n/**\n * Lazily import UniversalTable to statically break the circular dependency:\n * UniversalTable → EnhancedTable → DataRow → SubTableRow → UniversalTable\n * React.lazy resolves the import at render time, so the module graph stays acyclic.\n */\nconst UniversalTable = React.lazy(() => import(\"../UniversalTable\"));\n\n// ---------------------------------------------------------------------------\n// SubRowToggleCell\n// ---------------------------------------------------------------------------\n\nexport function SubRowToggleCell({ header, isOpen, onToggle, rowValues, hideBadge }) {\n return (\n <TableCell>\n <Tooltip title={isOpen ? `Hide ${header.id}` : `Show ${header.id}`}>\n <Box>\n <IconButton\n onClick={(event) => {\n event.stopPropagation();\n onToggle();\n }}\n disabled={rowValues[header.id].length === 0}\n color={header.iconColor || \"secondary\"}\n >\n <Badge\n badgeContent={rowValues[header.id].length}\n invisible={hideBadge}\n anchorOrigin={{\n vertical: \"bottom\",\n horizontal: \"right\",\n }}\n sx={{\n \"& .MuiBadge-badge\": {\n color: (theme) => theme.palette.text.primary,\n },\n }}\n >\n {isOpen\n ? header?.closeIcon || <RemoveCircle />\n : header?.openIcon || <AddCircle />}\n </Badge>\n </IconButton>\n </Box>\n </Tooltip>\n </TableCell>\n );\n}\n\nSubRowToggleCell.propTypes = {\n header: PropTypes.object.isRequired,\n isOpen: PropTypes.bool.isRequired,\n onToggle: PropTypes.func.isRequired,\n rowValues: PropTypes.object.isRequired,\n hideBadge: PropTypes.bool,\n};\n\n// ---------------------------------------------------------------------------\n// SubTableRow\n// ---------------------------------------------------------------------------\n\nexport function SubTableRow({ table, isOpen, rowValues, colSpan }) {\n return (\n <TableRow>\n <TableCell colSpan={colSpan} style={{ paddingBottom: 0, paddingTop: 0 }}>\n <Collapse in={isOpen} timeout=\"auto\" unmountOnExit>\n <React.Suspense fallback={null}>\n <UniversalTable\n loading={table.loading}\n setLoading={table.setLoading}\n onReload={table.onReload}\n data={rowValues[table.id]}\n headers={table.headers}\n name={table.subTitle}\n subTable\n />\n </React.Suspense>\n </Collapse>\n </TableCell>\n </TableRow>\n );\n}\n\nSubTableRow.propTypes = {\n table: PropTypes.object.isRequired,\n isOpen: PropTypes.bool.isRequired,\n rowValues: PropTypes.object.isRequired,\n colSpan: PropTypes.number.isRequired,\n};\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport {\n Checkbox,\n TableCell,\n TableRow,\n} from \"@mui/material\";\nimport { SubRowToggleCell, SubTableRow } from \"./SubTableRow\";\nimport { splitHeaders, formatCellValue } from \"../utils/tableUtils\";\n\nfunction renderDataCells(headers, rowValues) {\n return headers.map((header, index) => (\n <TableCell key={header.id || index} {...header.cellProps}>\n {header.component\n ? header.component(rowValues)\n : formatCellValue(header, rowValues)}\n </TableCell>\n ));\n}\n\nconst DataRow = React.memo(function DataRow(props) {\n const { rowValues, headers, selectRows, isSelected, handleClick } = props;\n const { subTables, columns } = React.useMemo(() => splitHeaders(headers), [\n headers,\n ]);\n const hideBadge = props.hideBadge || false;\n const isItemSelected = isSelected(props.rowID);\n const [reveal, setReveal] = React.useState(\n Array.from({ length: subTables.length }).fill(false),\n );\n\n const toggleSubRow = React.useCallback((index) => {\n setReveal((previous) => {\n const next = [...previous];\n next[index] = !next[index];\n return next;\n });\n }, []);\n\n const handleRowKeyDown = React.useCallback(\n (event) => {\n if (selectRows && (event.key === \" \" || event.key === \"Enter\")) {\n event.preventDefault();\n handleClick(event, props.rowID);\n }\n },\n [selectRows, handleClick, props.rowID],\n );\n\n return (\n <>\n <TableRow\n tabIndex={selectRows ? 0 : -1}\n hover={selectRows}\n role={selectRows ? \"checkbox\" : \"row\"}\n selected={isItemSelected}\n aria-checked={isItemSelected}\n onKeyDown={handleRowKeyDown}\n >\n {selectRows && (\n <TableCell padding=\"checkbox\">\n <Checkbox\n color=\"primary\"\n checked={isItemSelected}\n onClick={(event) => handleClick(event, props.rowID)}\n />\n </TableCell>\n )}\n {subTables.map((header, index) => (\n <SubRowToggleCell\n key={header.id || index}\n header={header}\n isOpen={reveal[index]}\n onToggle={() => toggleSubRow(index)}\n rowValues={rowValues}\n hideBadge={hideBadge}\n />\n ))}\n {renderDataCells(columns, rowValues)}\n </TableRow>\n {subTables.map((table, index) => (\n <SubTableRow\n key={table.id || index}\n table={table}\n isOpen={reveal[index]}\n rowValues={rowValues}\n colSpan={props.headers.length + 1}\n />\n ))}\n </>\n );\n});\n\nDataRow.propTypes = {\n rowValues: PropTypes.object.isRequired,\n headers: PropTypes.array.isRequired,\n selectRows: PropTypes.bool,\n isSelected: PropTypes.func.isRequired,\n handleClick: PropTypes.func,\n hideBadge: PropTypes.bool,\n rowID: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n};\n\nexport default DataRow;\n","import React from \"react\";\nimport {\n TableBody,\n TableCell,\n TableRow,\n Skeleton,\n TableHead,\n} from \"@mui/material\";\n\nconst TableLoader = () => {\n return (\n <>\n <TableHead />\n <TableBody>\n {Array.from({ length: 5 }).map((_, index) => (\n <TableRow key={index}>\n {Array.from({ length: 4 }).map((_, cellIndex) => (\n <TableCell key={cellIndex}>\n <Skeleton height={30} />\n </TableCell>\n ))}\n </TableRow>\n ))}\n </TableBody>\n </>\n );\n};\n\nexport default TableLoader;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport {\n Box,\n Table,\n TableBody,\n TableCell,\n TableContainer,\n TablePagination,\n TableRow,\n} from \"@mui/material\";\nimport useEnhancedTableState from \"../hooks/useEnhancedTableState\";\nimport {\n getComparator,\n getPageOptions,\n getSelectableRowId,\n stableSort,\n} from \"../utils/tableUtils\";\nimport EnhancedTableHead from \"./EnhancedTableHead\";\nimport DataRow from \"./DataRow\";\nimport TableLoader from \"./TableLoader\";\n\nfunction EnhancedTable(props) {\n const {\n headers,\n rows,\n subTable,\n selected,\n selectID,\n setLoading,\n searchTerm,\n setOrder,\n setOrderBy,\n order,\n orderBy,\n async,\n asyncPages,\n } = props;\n const dense = true;\n const {\n page,\n rowsPerPage,\n handleSort,\n handleChangePage,\n handleChangeRowsPerPage,\n } = useEnhancedTableState({\n rows,\n subTable,\n pageSizeOptions: props.pageSizeOptions,\n resetFlag: props.resetFlag,\n apiCall: setLoading,\n searchTerm,\n setOrder,\n setOrderBy,\n order,\n orderBy,\n asyncPages,\n });\n\n const effectiveRowsPerPage = rowsPerPage === -1 ? rows.length : rowsPerPage;\n\n const emptyRows = Math.max(\n 0,\n effectiveRowsPerPage -\n Math.min(effectiveRowsPerPage, rows.length - page * effectiveRowsPerPage),\n );\n\n const isSelected = React.useCallback(\n (id) => selected.includes(id),\n [selected],\n );\n\n const visibleRows = React.useMemo(() => {\n return stableSort(\n rows,\n getComparator(order, orderBy),\n headers,\n orderBy,\n ).slice(\n page * effectiveRowsPerPage,\n page * effectiveRowsPerPage + effectiveRowsPerPage,\n );\n }, [effectiveRowsPerPage, headers, order, orderBy, page, rows]);\n\n return (\n <TableContainer>\n <Table\n sx={{ minWidth: 750 }}\n size={dense ? \"small\" : \"medium\"}\n aria-label={props.name || \"data table\"}\n >\n {props.loading ? (\n <TableLoader />\n ) : (\n <>\n <EnhancedTableHead\n order={order}\n orderBy={orderBy}\n onRequestSort={handleSort}\n headings={headers}\n selectRows={props.selectRows}\n numSelected={selected.length}\n rowCount={rows.length}\n onSelectAllClick={props.handleSelectAllClick}\n async={async}\n />\n\n <TableBody>\n {visibleRows.map((row, index) => {\n const rowKey = selectID\n ? row[selectID]\n : `row-${page * effectiveRowsPerPage + index}`;\n const rowID = getSelectableRowId(row, index, selectID);\n\n return (\n <DataRow\n key={rowKey}\n rowID={rowID}\n headers={headers}\n rowValues={row}\n hideBadge={props.hideBadge}\n selectRows={props.selectRows}\n handleClick={props.handleClick}\n isSelected={isSelected}\n />\n );\n })}\n {!subTable && emptyRows > 0 && (\n <TableRow style={{ height: (dense ? 33 : 53) * emptyRows }}>\n <TableCell colSpan={headers.length} />\n </TableRow>\n )}\n </TableBody>\n </>\n )}\n </Table>\n {subTable ? (\n <Box sx={{ mb: 3 }} />\n ) : (\n <TablePagination\n rowsPerPageOptions={\n props.pageSizeOptions || getPageOptions(rows.length)\n }\n component=\"div\"\n count={rows.length}\n rowsPerPage={rowsPerPage}\n page={page}\n onPageChange={handleChangePage}\n onRowsPerPageChange={handleChangeRowsPerPage}\n sx={{ overflow: \"visible\" }}\n showFirstButton\n showLastButton\n />\n )}\n </TableContainer>\n );\n}\n\nEnhancedTable.propTypes = {\n headers: PropTypes.array.isRequired,\n rows: PropTypes.array.isRequired,\n subTable: PropTypes.bool,\n hideBadge: PropTypes.bool,\n loading: PropTypes.bool,\n selectRows: PropTypes.bool,\n handleSelectAllClick: PropTypes.func,\n handleClick: PropTypes.func,\n selected: PropTypes.array,\n selectID: PropTypes.string,\n async: PropTypes.bool,\n resetFlag: PropTypes.string,\n pageSizeOptions: PropTypes.arrayOf(PropTypes.number),\n name: PropTypes.string,\n setLoading: PropTypes.func,\n searchTerm: PropTypes.string,\n setOrder: PropTypes.func,\n setOrderBy: PropTypes.func,\n order: PropTypes.string,\n orderBy: PropTypes.string,\n asyncPages: PropTypes.number,\n};\n\nexport default EnhancedTable;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport Paper from \"@mui/material/Paper\";\nimport LazyLoadingIndicator from \"./components/LazyLoadingIndicator\";\nimport useSearchableRows from \"./hooks/useSearchableRows\";\nimport useSelectableRows from \"./hooks/useSelectableRows\";\nimport TableSelectionBanner from \"./components/TableSelectionBanner\";\nimport TableTitle from \"./components/TableTitle\";\nimport TableToolbarContent from \"./components/TableToolbarContent\";\nimport EnhancedTable from \"./components/EnhancedTable\";\n\nexport default function UniversalTable({\n loading,\n setLoading,\n onReload,\n lazyloading = false,\n currentPage,\n totalPages,\n data,\n headers,\n name,\n reloadBtnLoading,\n subTable = false,\n hideBadge = false,\n selectRows = false,\n selectID,\n selectIcon,\n onSelection,\n pageSizeOptions,\n persistSearch,\n asyncPages,\n}) {\n const debounceRef = React.useRef(null);\n\n const async = typeof asyncPages === \"number\" && asyncPages > 0;\n\n const head = headers || [];\n const { rows, searchTerm, setSearchTerm } = useSearchableRows(\n data,\n head,\n async,\n );\n const [order, setOrder] = React.useState(\"asc\");\n const [orderBy, setOrderBy] = React.useState(\"\");\n const { selected, clearSelection, handleSelectAllClick, handleClick } =\n useSelectableRows({\n rows,\n selectRows,\n selectID,\n });\n\n const handleSearchChange = React.useCallback(\n (value) => {\n clearSelection();\n setSearchTerm(value);\n },\n [clearSelection, setSearchTerm],\n );\n const handleSearch = (searchValue) => {\n if (async) {\n setSearchTerm(searchValue);\n clearTimeout(debounceRef.current);\n\n debounceRef.current = setTimeout(() => {\n setLoading({\n searchTerm: searchValue,\n direction: order,\n column: orderBy,\n pages: asyncPages,\n });\n }, 500);\n } else {\n handleSearchChange(searchValue);\n }\n };\n\n React.useEffect(() => {\n return () => clearTimeout(debounceRef.current);\n }, []);\n\n React.useEffect(() => {\n if (async) {\n setLoading({\n searchTerm,\n direction: order,\n column: orderBy,\n pages: asyncPages,\n });\n }\n // Run the initial async load once on mount; search/sort/reload handlers\n // send their own payloads after user interaction.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const handleReload = React.useCallback(() => {\n if (typeof onReload === \"function\") {\n onReload();\n return;\n }\n if (typeof setLoading === \"function\") {\n setLoading(\n async\n ? { searchTerm, direction: order, column: orderBy, pages: asyncPages }\n : true,\n );\n }\n }, [async, onReload, setLoading, searchTerm, order, orderBy, asyncPages]);\n\n return (\n <>\n <LazyLoadingIndicator\n show={lazyloading}\n currentPage={currentPage}\n totalPages={totalPages}\n />\n <Paper\n sx={{\n ...(subTable && { boxShadow: \"none\" }),\n }}\n >\n <TableSelectionBanner\n selected={selected}\n onSelection={onSelection}\n selectIcon={selectIcon}\n />\n <TableTitle name={name} subTable={subTable} />\n {!subTable && (\n <TableToolbarContent\n onReload={\n typeof onReload === \"function\" || typeof setLoading === \"function\"\n ? handleReload\n : undefined\n }\n reloadBtnLoading={reloadBtnLoading}\n searchTerm={searchTerm}\n onSearchChange={handleSearch}\n name={name}\n persistSearch={persistSearch}\n />\n )}\n <EnhancedTable\n headers={head}\n rows={rows}\n resetFlag={searchTerm}\n searchTerm={searchTerm}\n subTable={subTable}\n hideBadge={hideBadge}\n loading={loading}\n selectRows={selectRows}\n handleSelectAllClick={handleSelectAllClick}\n handleClick={handleClick}\n selected={selected}\n selectID={selectID}\n pageSizeOptions={pageSizeOptions}\n name={name}\n setLoading={setLoading}\n order={order}\n orderBy={orderBy}\n setOrder={setOrder}\n setOrderBy={setOrderBy}\n asyncPages={asyncPages}\n async={async}\n />\n </Paper>\n </>\n );\n}\n\nUniversalTable.propTypes = {\n loading: PropTypes.bool,\n setLoading: PropTypes.func,\n /** Preferred callback — fires when the user clicks reload. */\n onReload: PropTypes.func,\n lazyloading: PropTypes.bool,\n currentPage: PropTypes.number,\n totalPages: PropTypes.number,\n data: PropTypes.array.isRequired,\n headers: PropTypes.array.isRequired,\n name: PropTypes.string,\n reloadBtnLoading: PropTypes.bool,\n subTable: PropTypes.bool,\n hideBadge: PropTypes.bool,\n selectRows: PropTypes.bool,\n selectID: PropTypes.string,\n selectIcon: PropTypes.element,\n onSelection: PropTypes.func,\n /** Override default page size options (e.g. [10, 25, 50]). Default auto-computed. */\n pageSizeOptions: PropTypes.arrayOf(PropTypes.number),\n /** Persist search term to sessionStorage (requires name prop). Default: false */\n persistSearch: PropTypes.bool,\n asyncPages: PropTypes.number,\n};\n"],"names":["LazyLoadingIndicator","_ref","show","currentPage","totalPages","React","createElement","Collapse","timeout","unmountOnExit","Box","sx","width","p","Typography","variant","color","mb","LinearProgress","value","propTypes","PropTypes","bool","isRequired","number","visuallyHidden","border","clip","height","margin","overflow","padding","position","whiteSpace","getSelectableRowId","row","index","selectID","getSearchableColumnIds","headers","filter","column","searchable","map","id","filterRows","data","searchTerm","filterOptions","term","toLocaleLowerCase","some","filterOption","String","includes","getPageOptions","rowCount","splitHeaders","reduce","groups","header","subRow","subTables","push","columns","descendingComparator","a","b","orderBy","getComparator","order","browserDateTimeFormatter","Intl","DateTimeFormat","undefined","year","month","day","hour","minute","hour12","formatCellValue","rowValues","raw","date","d","Date","Number","isNaN","getTime","format","stableSort","array","comparator","dateColumns","Set","object","findHeader","find","stabilizedThis","el","sortKey","_objectSpread","property","has","parsed","sortable","sort","useSearchableRows","async","_React$useState","useState","_React$useState2","_slicedToArray","setSearchTerm","useMemo","rows","useSelectableRows","selectRows","selected","setSelected","clearSelection","useCallback","handleSelectAllClick","event","target","checked","newSelected","handleClick","previous","selectedId","concat","_toConsumableArray","TableSelectionBanner","onSelection","selectIcon","length","display","justifyContent","bgcolor","theme","alpha","palette","primary","main","action","activatedOpacity","borderRadius","borderBottomLeftRadius","borderBottomRightRadius","component","IconButton","onClick","Task","func","element","TableTitle","name","subTable","string","ReloadBtn","loading","onReload","canReload","Tooltip","title","Button","disabled","RefreshIcon","FancySearch","onSubmit","Boolean","hover","setHover","expanded","handleSubmit","e","preventDefault","handleEndHover","isUserType","useRef","Paper","elevation","alignItems","transition","divider","onMouseEnter","onMouseLeave","onKeyDown","key","InputBase","placeholder","onChange","current","ml","onBlur","orientation","Stack","direction","spacing","mr","Clear","Divider","flexItem","type","Search","SearchArea","props","setFinalVal","searchName","persistSearch","searchVal","_sessionStorage$getIt","sessionStorage","getItem","TableToolbarContent","reloadBtnLoading","onSearchChange","Toolbar","pl","sm","pr","xs","pt","md","flex","getInitialRowsPerPage","pageSizeOptions","Array","isArray","useEnhancedTableState","_ref2","resetFlag","apiCall","setOrder","setOrderBy","asyncPages","page","rowsPerPage","pagination","setPagination","useEffect","handleRequestSort","isAsc","handleChangePage","newPage","handleChangeRowsPerPage","parseInt","handleSort","apiSortable","pages","EnhancedTableHead","onRequestSort","numSelected","onSelectAllClick","TableHead","TableRow","TableCell","Checkbox","indeterminate","headings","headCell","align","numeric","sortDirection","TableSortLabel","active","label","oneOf","UniversalTable","lazy","SubRowToggleCell","isOpen","onToggle","hideBadge","stopPropagation","iconColor","Badge","badgeContent","invisible","anchorOrigin","vertical","horizontal","text","closeIcon","RemoveCircle","openIcon","AddCircle","SubTableRow","table","colSpan","style","paddingBottom","paddingTop","Suspense","fallback","setLoading","subTitle","renderDataCells","_extends","cellProps","DataRow","memo","isSelected","_React$useMemo","isItemSelected","rowID","from","fill","reveal","setReveal","toggleSubRow","next","handleRowKeyDown","Fragment","tabIndex","role","oneOfType","TableLoader","TableBody","_","cellIndex","Skeleton","EnhancedTable","_useEnhancedTableStat","effectiveRowsPerPage","emptyRows","Math","max","min","visibleRows","slice","TableContainer","Table","minWidth","size","rowKey","TablePagination","rowsPerPageOptions","count","onPageChange","onRowsPerPageChange","showFirstButton","showLastButton","arrayOf","_ref$lazyloading","lazyloading","_ref$subTable","_ref$hideBadge","_ref$selectRows","debounceRef","head","_useSearchableRows","_React$useState3","_React$useState4","_useSelectableRows","handleSearchChange","handleSearch","searchValue","clearTimeout","setTimeout","handleReload","boxShadow"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mui-universal-table",
3
- "version": "2.0.10",
3
+ "version": "2.0.11",
4
4
  "description": "A universal table component built with Material UI for React applications",
5
5
  "keywords": [
6
6
  "react",
@@ -42,7 +42,8 @@
42
42
  "lint": "eslint src",
43
43
  "lint:fix": "eslint src --fix",
44
44
  "test:unit": "npm test -- --runInBand",
45
- "test:smoke": "npm run build && node test/smoke-test.mjs"
45
+ "test:smoke": "npm run build && node test/smoke-test.mjs",
46
+ "test:types": "tsc --noEmit --project tsconfig.test.json"
46
47
  },
47
48
  "peerDependencies": {
48
49
  "@emotion/react": "^11.5.0",
package/src/index.d.ts CHANGED
@@ -1,16 +1,24 @@
1
- import { ReactElement } from "react";
1
+ /* eslint-disable no-unused-vars */
2
+ import { FC, ReactElement } from "react";
2
3
 
3
4
  export interface TableRowData {
4
5
  [key: string]: unknown;
5
6
  }
6
7
 
8
+ export interface AsyncLoadingPayload {
9
+ searchTerm: string;
10
+ direction: "asc" | "desc";
11
+ column: string;
12
+ pages: number;
13
+ }
14
+
7
15
  export interface TableHeader {
8
16
  id: string;
9
17
  label: string;
10
18
  searchable?: boolean;
11
19
  numeric?: boolean;
12
20
  date?: boolean;
13
- // eslint-disable-next-line no-unused-vars
21
+ sortable?: boolean;
14
22
  component?: (rowData: TableRowData) => ReactElement;
15
23
  cellProps?: Record<string, unknown>;
16
24
  subRow?: boolean;
@@ -19,15 +27,13 @@ export interface TableHeader {
19
27
  closeIcon?: ReactElement;
20
28
  headers?: TableHeader[];
21
29
  loading?: boolean;
22
- // eslint-disable-next-line no-unused-vars
23
30
  setLoading?: (loading: boolean) => void;
24
31
  /** Preferred callback — fires when the user clicks reload on a sub-table. */
25
- // eslint-disable-next-line no-unused-vars
26
32
  onReload?: () => void;
27
33
  subTitle?: string;
28
34
  }
29
35
 
30
- export interface UniversalTableProps {
36
+ interface UniversalTableCommonProps {
31
37
  /** Array of data objects to display */
32
38
  data: TableRowData[];
33
39
  /** Array of header configuration objects */
@@ -36,11 +42,7 @@ export interface UniversalTableProps {
36
42
  name?: string;
37
43
  /** Shows loading state */
38
44
  loading?: boolean;
39
- /** Function to control loading state (legacy — prefer onReload) */
40
- // eslint-disable-next-line no-unused-vars
41
- setLoading?: (loading: boolean) => void;
42
45
  /** Fires when the user clicks the reload button */
43
- // eslint-disable-next-line no-unused-vars
44
46
  onReload?: () => void;
45
47
  /** Enable lazy loading indicator */
46
48
  lazyloading?: boolean;
@@ -61,7 +63,6 @@ export interface UniversalTableProps {
61
63
  /** Custom icon for selection action */
62
64
  selectIcon?: ReactElement;
63
65
  /** Callback when rows are selected */
64
- // eslint-disable-next-line no-unused-vars
65
66
  onSelection?: (selectedIds: unknown[]) => void;
66
67
  /** Override default page size options (e.g. [10, 25, 50]) */
67
68
  pageSizeOptions?: number[];
@@ -69,7 +70,22 @@ export interface UniversalTableProps {
69
70
  persistSearch?: boolean;
70
71
  }
71
72
 
72
- declare const UniversalTable: React.FC<UniversalTableProps>;
73
+ export interface UniversalTableSyncProps extends UniversalTableCommonProps {
74
+ /** Function to control loading state in synchronous mode (legacy — prefer onReload) */
75
+ setLoading?: (loading: boolean) => void;
76
+ asyncPages?: undefined;
77
+ }
78
+
79
+ export interface UniversalTableAsyncProps extends UniversalTableCommonProps {
80
+ /** Function to request async search/sort/reload data */
81
+ setLoading: (loading: AsyncLoadingPayload) => void;
82
+ /** Enables async search/sort payload mode and supplies total async pages */
83
+ asyncPages: number;
84
+ }
85
+
86
+ export type UniversalTableProps = UniversalTableSyncProps | UniversalTableAsyncProps;
87
+
88
+ declare const UniversalTable: FC<UniversalTableProps>;
73
89
 
74
90
  export { UniversalTable };
75
91
  export default UniversalTable;