mui-universal-table 2.1.5 → 2.1.7
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/README.md +1 -1
- package/dist/index.cjs +14 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.esm.js +14 -1
- package/dist/index.esm.js.map +1 -1
- package/package.json +1 -1
- package/src/index.d.ts +2 -2
package/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# MUI Universal Table
|
|
2
2
|
|
|
3
3
|
[](https://github.com/Skulldorom/MUI-universal-table/actions/workflows/tests.yml)
|
|
4
|
-
[](https://github.com/Skulldorom/MUI-universal-table/actions/workflows/release.yml)
|
|
5
5
|
[](https://github.com/Skulldorom/MUI-universal-table/releases)
|
|
6
6
|
|
|
7
7
|
A comprehensive, feature-rich table component built with Material-UI for React applications.
|
package/dist/index.cjs
CHANGED
|
@@ -1153,6 +1153,19 @@ function UniversalTable(_ref) {
|
|
|
1153
1153
|
clearSelection();
|
|
1154
1154
|
setSearchTerm(value);
|
|
1155
1155
|
}, [clearSelection, setSearchTerm]);
|
|
1156
|
+
var handleSelection = React.useCallback(function (selectedIds) {
|
|
1157
|
+
if (typeof onSelection !== "function") {
|
|
1158
|
+
return;
|
|
1159
|
+
}
|
|
1160
|
+
var result = onSelection(selectedIds);
|
|
1161
|
+
if (result instanceof Promise) {
|
|
1162
|
+
result.then(function () {
|
|
1163
|
+
return clearSelection();
|
|
1164
|
+
});
|
|
1165
|
+
return;
|
|
1166
|
+
}
|
|
1167
|
+
clearSelection();
|
|
1168
|
+
}, [onSelection, clearSelection]);
|
|
1156
1169
|
var handleSearch = function handleSearch(searchValue) {
|
|
1157
1170
|
if (async) {
|
|
1158
1171
|
setSearchTerm(searchValue);
|
|
@@ -1211,7 +1224,7 @@ function UniversalTable(_ref) {
|
|
|
1211
1224
|
}),
|
|
1212
1225
|
children: [/*#__PURE__*/jsxRuntime.jsx(TableSelectionBanner, {
|
|
1213
1226
|
selected: selected,
|
|
1214
|
-
onSelection:
|
|
1227
|
+
onSelection: handleSelection,
|
|
1215
1228
|
selectIcon: selectIcon
|
|
1216
1229
|
}), /*#__PURE__*/jsxRuntime.jsx(TableTitle, {
|
|
1217
1230
|
name: name,
|
package/dist/index.cjs.map
CHANGED
|
@@ -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 { 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 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 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 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 isUserTypingRef = 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 isUserTypingRef.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 isUserTypingRef.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 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 // Resetting derived pagination state here intentionally preserves the\n // current rows-per-page choice while jumping back to the first page.\n // eslint-disable-next-line @eslint-react/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 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) => (\n <TableCell key={header.id ?? header.label} {...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 ?? header.label}\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 ?? table.label}\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 {\n TableBody,\n TableCell,\n TableRow,\n Skeleton,\n TableHead,\n} from \"@mui/material\";\n\nconst skeletonRows = [\"row-1\", \"row-2\", \"row-3\", \"row-4\", \"row-5\"];\nconst skeletonCells = [\"cell-1\", \"cell-2\", \"cell-3\", \"cell-4\"];\n\nconst TableLoader = () => {\n return (\n <>\n <TableHead />\n <TableBody>\n {skeletonRows.map((rowKey) => (\n <TableRow key={rowKey}>\n {skeletonCells.map((cellKey) => (\n <TableCell key={cellKey}>\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 const hasLoadedInitialAsyncPageRef = React.useRef(false);\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 || hasLoadedInitialAsyncPageRef.current) {\n return;\n }\n\n hasLoadedInitialAsyncPageRef.current = true;\n setLoading({\n searchTerm,\n direction: order,\n column: orderBy,\n pages: asyncPages,\n });\n }, [async, asyncPages, order, orderBy, searchTerm, setLoading]);\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","_jsx","Collapse","timeout","unmountOnExit","children","_jsxs","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","React","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","isUserTypingRef","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","_header$id","cellProps","DataRow","memo","isSelected","_React$useMemo","isItemSelected","rowID","from","fill","reveal","setReveal","toggleSubRow","next","handleRowKeyDown","_Fragment","tabIndex","role","_header$id2","_table$id","oneOfType","skeletonRows","skeletonCells","TableLoader","TableBody","rowKey","cellKey","Skeleton","EnhancedTable","_useEnhancedTableStat","effectiveRowsPerPage","emptyRows","Math","max","min","visibleRows","slice","TableContainer","Table","minWidth","size","TablePagination","rowsPerPageOptions","count","onPageChange","onRowsPerPageChange","showFirstButton","showLastButton","arrayOf","_ref$lazyloading","lazyloading","_ref$subTable","_ref$hideBadge","_ref$selectRows","debounceRef","hasLoadedInitialAsyncPageRef","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 { 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 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 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 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 isUserTypingRef = 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 isUserTypingRef.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 isUserTypingRef.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 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 // Resetting derived pagination state here intentionally preserves the\n // current rows-per-page choice while jumping back to the first page.\n // eslint-disable-next-line @eslint-react/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 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) => (\n <TableCell key={header.id ?? header.label} {...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 ?? header.label}\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 ?? table.label}\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 {\n TableBody,\n TableCell,\n TableRow,\n Skeleton,\n TableHead,\n} from \"@mui/material\";\n\nconst skeletonRows = [\"row-1\", \"row-2\", \"row-3\", \"row-4\", \"row-5\"];\nconst skeletonCells = [\"cell-1\", \"cell-2\", \"cell-3\", \"cell-4\"];\n\nconst TableLoader = () => {\n return (\n <>\n <TableHead />\n <TableBody>\n {skeletonRows.map((rowKey) => (\n <TableRow key={rowKey}>\n {skeletonCells.map((cellKey) => (\n <TableCell key={cellKey}>\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 const hasLoadedInitialAsyncPageRef = React.useRef(false);\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\n const handleSelection = React.useCallback(\n (selectedIds) => {\n if (typeof onSelection !== \"function\") {\n return;\n }\n const result = onSelection(selectedIds);\n if (result instanceof Promise) {\n result.then(() => clearSelection());\n return;\n }\n clearSelection();\n },\n [onSelection, clearSelection],\n );\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 || hasLoadedInitialAsyncPageRef.current) {\n return;\n }\n\n hasLoadedInitialAsyncPageRef.current = true;\n setLoading({\n searchTerm,\n direction: order,\n column: orderBy,\n pages: asyncPages,\n });\n }, [async, asyncPages, order, orderBy, searchTerm, setLoading]);\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={handleSelection}\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","_jsx","Collapse","timeout","unmountOnExit","children","_jsxs","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","React","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","isUserTypingRef","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","_header$id","cellProps","DataRow","memo","isSelected","_React$useMemo","isItemSelected","rowID","from","fill","reveal","setReveal","toggleSubRow","next","handleRowKeyDown","_Fragment","tabIndex","role","_header$id2","_table$id","oneOfType","skeletonRows","skeletonCells","TableLoader","TableBody","rowKey","cellKey","Skeleton","EnhancedTable","_useEnhancedTableStat","effectiveRowsPerPage","emptyRows","Math","max","min","visibleRows","slice","TableContainer","Table","minWidth","size","TablePagination","rowsPerPageOptions","count","onPageChange","onRowsPerPageChange","showFirstButton","showLastButton","arrayOf","_ref$lazyloading","lazyloading","_ref$subTable","_ref$hideBadge","_ref$selectRows","debounceRef","hasLoadedInitialAsyncPageRef","head","_useSearchableRows","_React$useState3","_React$useState4","_useSelectableRows","handleSearchChange","handleSelection","selectedIds","result","Promise","then","handleSearch","searchValue","clearTimeout","setTimeout","handleReload","boxShadow"],"mappings":"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"}
|
package/dist/index.esm.js
CHANGED
|
@@ -1149,6 +1149,19 @@ function UniversalTable(_ref) {
|
|
|
1149
1149
|
clearSelection();
|
|
1150
1150
|
setSearchTerm(value);
|
|
1151
1151
|
}, [clearSelection, setSearchTerm]);
|
|
1152
|
+
var handleSelection = React.useCallback(function (selectedIds) {
|
|
1153
|
+
if (typeof onSelection !== "function") {
|
|
1154
|
+
return;
|
|
1155
|
+
}
|
|
1156
|
+
var result = onSelection(selectedIds);
|
|
1157
|
+
if (result instanceof Promise) {
|
|
1158
|
+
result.then(function () {
|
|
1159
|
+
return clearSelection();
|
|
1160
|
+
});
|
|
1161
|
+
return;
|
|
1162
|
+
}
|
|
1163
|
+
clearSelection();
|
|
1164
|
+
}, [onSelection, clearSelection]);
|
|
1152
1165
|
var handleSearch = function handleSearch(searchValue) {
|
|
1153
1166
|
if (async) {
|
|
1154
1167
|
setSearchTerm(searchValue);
|
|
@@ -1207,7 +1220,7 @@ function UniversalTable(_ref) {
|
|
|
1207
1220
|
}),
|
|
1208
1221
|
children: [/*#__PURE__*/jsx(TableSelectionBanner, {
|
|
1209
1222
|
selected: selected,
|
|
1210
|
-
onSelection:
|
|
1223
|
+
onSelection: handleSelection,
|
|
1211
1224
|
selectIcon: selectIcon
|
|
1212
1225
|
}), /*#__PURE__*/jsx(TableTitle, {
|
|
1213
1226
|
name: name,
|
package/dist/index.esm.js.map
CHANGED
|
@@ -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 { 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 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 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 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 isUserTypingRef = 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 isUserTypingRef.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 isUserTypingRef.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 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 // Resetting derived pagination state here intentionally preserves the\n // current rows-per-page choice while jumping back to the first page.\n // eslint-disable-next-line @eslint-react/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 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) => (\n <TableCell key={header.id ?? header.label} {...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 ?? header.label}\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 ?? table.label}\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 {\n TableBody,\n TableCell,\n TableRow,\n Skeleton,\n TableHead,\n} from \"@mui/material\";\n\nconst skeletonRows = [\"row-1\", \"row-2\", \"row-3\", \"row-4\", \"row-5\"];\nconst skeletonCells = [\"cell-1\", \"cell-2\", \"cell-3\", \"cell-4\"];\n\nconst TableLoader = () => {\n return (\n <>\n <TableHead />\n <TableBody>\n {skeletonRows.map((rowKey) => (\n <TableRow key={rowKey}>\n {skeletonCells.map((cellKey) => (\n <TableCell key={cellKey}>\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 const hasLoadedInitialAsyncPageRef = React.useRef(false);\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 || hasLoadedInitialAsyncPageRef.current) {\n return;\n }\n\n hasLoadedInitialAsyncPageRef.current = true;\n setLoading({\n searchTerm,\n direction: order,\n column: orderBy,\n pages: asyncPages,\n });\n }, [async, asyncPages, order, orderBy, searchTerm, setLoading]);\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","_jsx","Collapse","timeout","unmountOnExit","children","_jsxs","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","React","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","isUserTypingRef","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","_header$id","cellProps","DataRow","memo","isSelected","_React$useMemo","isItemSelected","rowID","from","fill","reveal","setReveal","toggleSubRow","next","handleRowKeyDown","_Fragment","tabIndex","role","_header$id2","_table$id","oneOfType","skeletonRows","skeletonCells","TableLoader","TableBody","rowKey","cellKey","Skeleton","EnhancedTable","_useEnhancedTableStat","effectiveRowsPerPage","emptyRows","Math","max","min","visibleRows","slice","TableContainer","Table","minWidth","size","TablePagination","rowsPerPageOptions","count","onPageChange","onRowsPerPageChange","showFirstButton","showLastButton","arrayOf","_ref$lazyloading","lazyloading","_ref$subTable","_ref$hideBadge","_ref$selectRows","debounceRef","hasLoadedInitialAsyncPageRef","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 { 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 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 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 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 isUserTypingRef = 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 isUserTypingRef.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 isUserTypingRef.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 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 // Resetting derived pagination state here intentionally preserves the\n // current rows-per-page choice while jumping back to the first page.\n // eslint-disable-next-line @eslint-react/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 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) => (\n <TableCell key={header.id ?? header.label} {...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 ?? header.label}\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 ?? table.label}\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 {\n TableBody,\n TableCell,\n TableRow,\n Skeleton,\n TableHead,\n} from \"@mui/material\";\n\nconst skeletonRows = [\"row-1\", \"row-2\", \"row-3\", \"row-4\", \"row-5\"];\nconst skeletonCells = [\"cell-1\", \"cell-2\", \"cell-3\", \"cell-4\"];\n\nconst TableLoader = () => {\n return (\n <>\n <TableHead />\n <TableBody>\n {skeletonRows.map((rowKey) => (\n <TableRow key={rowKey}>\n {skeletonCells.map((cellKey) => (\n <TableCell key={cellKey}>\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 const hasLoadedInitialAsyncPageRef = React.useRef(false);\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\n const handleSelection = React.useCallback(\n (selectedIds) => {\n if (typeof onSelection !== \"function\") {\n return;\n }\n const result = onSelection(selectedIds);\n if (result instanceof Promise) {\n result.then(() => clearSelection());\n return;\n }\n clearSelection();\n },\n [onSelection, clearSelection],\n );\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 || hasLoadedInitialAsyncPageRef.current) {\n return;\n }\n\n hasLoadedInitialAsyncPageRef.current = true;\n setLoading({\n searchTerm,\n direction: order,\n column: orderBy,\n pages: asyncPages,\n });\n }, [async, asyncPages, order, orderBy, searchTerm, setLoading]);\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={handleSelection}\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","_jsx","Collapse","timeout","unmountOnExit","children","_jsxs","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","React","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","isUserTypingRef","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","_header$id","cellProps","DataRow","memo","isSelected","_React$useMemo","isItemSelected","rowID","from","fill","reveal","setReveal","toggleSubRow","next","handleRowKeyDown","_Fragment","tabIndex","role","_header$id2","_table$id","oneOfType","skeletonRows","skeletonCells","TableLoader","TableBody","rowKey","cellKey","Skeleton","EnhancedTable","_useEnhancedTableStat","effectiveRowsPerPage","emptyRows","Math","max","min","visibleRows","slice","TableContainer","Table","minWidth","size","TablePagination","rowsPerPageOptions","count","onPageChange","onRowsPerPageChange","showFirstButton","showLastButton","arrayOf","_ref$lazyloading","lazyloading","_ref$subTable","_ref$hideBadge","_ref$selectRows","debounceRef","hasLoadedInitialAsyncPageRef","head","_useSearchableRows","_React$useState3","_React$useState4","_useSelectableRows","handleSearchChange","handleSelection","selectedIds","result","Promise","then","handleSearch","searchValue","clearTimeout","setTimeout","handleReload","boxShadow"],"mappings":"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"}
|
package/package.json
CHANGED
package/src/index.d.ts
CHANGED
|
@@ -62,8 +62,8 @@ interface UniversalTableCommonProps {
|
|
|
62
62
|
selectID?: string;
|
|
63
63
|
/** Custom icon for selection action */
|
|
64
64
|
selectIcon?: ReactElement;
|
|
65
|
-
/** Callback when rows are selected */
|
|
66
|
-
onSelection?: (selectedIds: unknown[]) => void
|
|
65
|
+
/** Callback when rows are selected — can return void or a Promise for async batch operations */
|
|
66
|
+
onSelection?: (selectedIds: unknown[]) => void | Promise<void>;
|
|
67
67
|
/** Override default page size options (e.g. [10, 25, 50]) */
|
|
68
68
|
pageSizeOptions?: number[];
|
|
69
69
|
/** Persist search term to sessionStorage (requires name prop) */
|