mui-universal-table 2.1.20 → 2.1.21

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.
@@ -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\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":["_jsxDEV","UniversalTable","_Fragment","Paper"],"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":["_jsx","_jsxs","UniversalTable","_Fragment","Paper"],"mappings":";;;;;;;;;AAGA,MAAM,oBAAoB,GAAG,CAAC;EAAE,IAAI;EAAE,WAAW;AAAE,EAAA;AAAW,CAAC,KAAK;AAClE,EAAA,oBACEA,IAAC,QAAQ,EAAA;AAAC,IAAA,EAAE,EAAE,IAAK;AAAC,IAAA,OAAO,EAAC,MAAM;IAAC,aAAa,EAAA,IAAA;AAAA,IAAA,QAAA,eAC9CC,KAAC,GAAG,EAAA;AAAC,MAAA,EAAE,EAAE;AAAE,QAAA,KAAK,EAAE,MAAM;AAAE,QAAA,CAAC,EAAE;OAAI;AAAA,MAAA,QAAA,EAAA,cAC/BA,KAAC,UAAU,EAAA;AAAC,QAAA,OAAO,EAAC,OAAO;AAAC,QAAA,KAAK,EAAC,gBAAgB;AAAC,QAAA,EAAE,EAAE;AAAE,UAAA,EAAE,EAAE;SAAI;QAAA,QAAA,EAAA,CAAC,eACnD,EAAC,WAAW,EAAC,MAAI,EAAC,UAAU,EAAC,KAC5C;OAAY,CAAC,eACbD,GAAA,CAAC,cAAc,EAAA;AACb,QAAA,OAAO,EAAC,aAAa;AACrB,QAAA,KAAK,EAAG,WAAW,GAAG,UAAU,GAAI;AAAI,OACzC,CAAC;KACC;AAAC,GACE,CAAC;AAEf,CAAC;AAED,oBAAoB,CAAC,SAAS,GAAG;AAC/B,EAAA,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU;EAC/B,WAAW,EAAE,SAAS,CAAC,MAAM;EAC7B,UAAU,EAAE,SAAS,CAAC;AACxB,CAAC;;ACvBD;AACA;AACA;AACA;AACA;AACO,MAAM,cAAc,GAAG;AAC5B,EAAA,MAAM,EAAE,CAAC;AACT,EAAA,IAAI,EAAE,eAAe;AACrB,EAAA,MAAM,EAAE,KAAK;EACb,MAAM,EAAE,EAAE;AACV,EAAA,QAAQ,EAAE,QAAQ;AAClB,EAAA,OAAO,EAAE,CAAC;AACV,EAAA,QAAQ,EAAE,UAAU;AACpB,EAAA,UAAU,EAAE,QAAQ;AACpB,EAAA,KAAK,EAAE;AACT,CAAC;AAEM,SAAS,kBAAkB,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE;AACvD,EAAA,OAAO,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,KAAK;AACzC;AAEO,SAAS,sBAAsB,CAAC,OAAO,EAAE;AAC9C,EAAA,OAAO,OAAO,CACX,MAAM,CAAE,MAAM,IAAK,MAAM,CAAC,UAAU,CAAC,CACrC,GAAG,CAAE,MAAM,IAAK,MAAM,CAAC,EAAE,CAAC;AAC/B;AAEO,SAAS,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,aAAa,EAAE;EAC1D,IAAI,CAAC,UAAU,EAAE;AACf,IAAA,OAAO,IAAI;AACb,EAAA;AAEA,EAAA,MAAM,IAAI,GAAG,UAAU,CAAC,iBAAiB,EAAE;AAC3C,EAAA,OAAO,IAAI,CAAC,MAAM,CAAE,GAAG,IACrB,aAAa,CAAC,IAAI,CAAE,YAAY,IAC9B,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC,QAAQ,CAAC,IAAI,CAC7D,CACF,CAAC;AACH;AAEO,SAAS,cAAc,CAAC,QAAQ,EAAE;AACvC,EAAA,IAAI,QAAQ,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;EAC7B,IAAI,QAAQ,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,QAAQ,CAAC;EACxC,IAAI,QAAQ,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC;AAC5C,EAAA,IAAI,QAAQ,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,QAAQ,CAAC;AAC/C,EAAA,IAAI,QAAQ,GAAG,GAAG,EAAE,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,QAAQ,CAAC;AACpD,EAAA,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,QAAQ,CAAC;AACvC;AAEO,SAAS,YAAY,CAAC,OAAO,EAAE;EACpC,OAAO,OAAO,CAAC,MAAM,CACnB,CAAC,MAAM,EAAE,MAAM,KAAK;IAClB,IAAI,MAAM,CAAC,MAAM,EAAE;AACjB,MAAA,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;AAC/B,IAAA,CAAC,MAAM;AACL,MAAA,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;AAC7B,IAAA;AAEA,IAAA,OAAO,MAAM;AACf,EAAA,CAAC,EACD;AAAE,IAAA,SAAS,EAAE,EAAE;AAAE,IAAA,OAAO,EAAE;AAAG,GAC/B,CAAC;AACH;AAEO,SAAS,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE;EAClD,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE;AAC3B,IAAA,OAAO,EAAE;AACX,EAAA;EACA,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE;AAC3B,IAAA,OAAO,CAAC;AACV,EAAA;AACA,EAAA,OAAO,CAAC;AACV;AAEO,SAAS,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE;AAC5C,EAAA,OAAO,KAAK,KAAK,MAAM,GACnB,CAAC,CAAC,EAAE,CAAC,KAAK,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,GAC7C,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;AACpD;AAEA,MAAM,wBAAwB,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE;AAClE,EAAA,IAAI,EAAE,SAAS;AACf,EAAA,KAAK,EAAE,OAAO;AACd,EAAA,GAAG,EAAE,SAAS;AACd,EAAA,IAAI,EAAE,SAAS;AACf,EAAA,MAAM,EAAE,SAAS;AACjB,EAAA,MAAM,EAAE;AACV,CAAC,CAAC;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE;AACjD,EAAA,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;AAChC,EAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;AAChB,IAAA,OAAO,GAAG;AACZ,EAAA;;AAEA;AACA,EAAA,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE;AACrC,IAAA,OAAO,GAAG;AACZ,EAAA;AAEA,EAAA,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC;EACvB,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE;AAC7B,IAAA,OAAO,GAAG;AACZ,EAAA;AAEA,EAAA,OAAO,wBAAwB,CAAC,MAAM,CAAC,CAAC,CAAC;AAC3C;AAEO,SAAS,UAAU,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE;EAC9D,MAAM,WAAW,GAAG,IAAI,GAAG,CACzB,OAAO,CAAC,MAAM,CAAE,MAAM,IAAK,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAE,KAAK,IAAK,KAAK,CAAC,EAAE,CACjE,CAAC;AACD,EAAA,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAE,MAAM,IAAK,MAAM,CAAC,EAAE,KAAK,OAAO,CAAC;;AAElE;AACA;AACA;AACA;AACA;EACA,MAAM,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,KAAK,KAAK;AAC9C,IAAA,MAAM,OAAO,GAAG;MAAE,GAAG;KAAI;AACzB,IAAA,KAAK,MAAM,QAAQ,IAAI,OAAO,EAAE;AAC9B,MAAA,IAAI,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;AAC7B,QAAA,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;AAClD;AACA;AACA,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;AACzB,UAAA,OAAO,CAAC,QAAQ,CAAC,GAAG,MAAM;AAC5B,QAAA;AACF,MAAA;AACF,IAAA;AACA,IAAA,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC;AAC7B,EAAA,CAAC,CAAC;EAEF,IAAI,UAAU,EAAE,QAAQ,KAAK,SAAS,IAAI,UAAU,EAAE,QAAQ,KAAK,KAAK,EAAE;AACxE,IAAA,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK;AAC5B,MAAA,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACpC,MAAA,IAAI,KAAK,KAAK,CAAC,EAAE,OAAO,KAAK;MAC7B,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACpB,IAAA,CAAC,CAAC;AACJ,EAAA;EACA,OAAO,cAAc,CAAC,GAAG,CAAE,EAAE,IAAK,EAAE,CAAC,CAAC,CAAC,CAAC;AAC1C;;ACpJe,SAAS,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE;EAC9D,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;AAEtD,EAAA,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CACjC,MAAM,sBAAsB,CAAC,OAAO,CAAC,EACrC,CAAC,OAAO,CACV,CAAC;AAED,EAAA,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CACxB,MAAO,KAAK,GAAG,IAAI,GAAG,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,aAAa,CAAE,EAClE,CAAC,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,CACzC,CAAC;EAED,OAAO;IACL,IAAI;IACJ,UAAU;AACV,IAAA;GACD;AACH;;AClBe,SAAS,iBAAiB,CAAC;EAAE,IAAI;EAAE,UAAU;AAAE,EAAA;AAAS,CAAC,EAAE;EACxE,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;AAElD,EAAA,MAAM,cAAc,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM;IAC7C,WAAW,CAAC,EAAE,CAAC;EACjB,CAAC,EAAE,EAAE,CAAC;AAEN,EAAA,MAAM,oBAAoB,GAAG,KAAK,CAAC,WAAW,CAC3C,KAAK,IAAK;AACT,IAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE;MACzB,WAAW,CAAC,EAAE,CAAC;AACf,MAAA;AACF,IAAA;AAEA,IAAA,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,KACtC,kBAAkB,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,CACzC,CAAC;IACD,WAAW,CAAC,WAAW,CAAC;AAC1B,EAAA,CAAC,EACD,CAAC,IAAI,EAAE,QAAQ,CACjB,CAAC;EAED,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CACnC,CAAC,KAAK,EAAE,EAAE,KAAK;IACb,IAAI,CAAC,UAAU,EAAE;AACf,MAAA;AACF,IAAA;IAEA,WAAW,CAAE,QAAQ,IACnB,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,GACjB,QAAQ,CAAC,MAAM,CAAE,UAAU,IAAK,UAAU,KAAK,EAAE,CAAC,GAClD,CAAC,GAAG,QAAQ,EAAE,EAAE,CACtB,CAAC;AACH,EAAA,CAAC,EACD,CAAC,UAAU,CACb,CAAC;EAED,OAAO;IACL,QAAQ;IACR,cAAc;IACd,oBAAoB;AACpB,IAAA;GACD;AACH;;ACzCA,SAAS,oBAAoB,CAAC;EAAE,QAAQ;EAAE,WAAW;AAAE,EAAA;AAAW,CAAC,EAAE;AACnE,EAAA,oBACEA,IAAC,QAAQ,EAAA;AAAC,IAAA,EAAE,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAE;IAAC,aAAa,EAAA,IAAA;AAAA,IAAA,QAAA,eAC9CC,KAAC,GAAG,EAAA;AACF,MAAA,EAAE,EAAE;AACF,QAAA,CAAC,EAAE,CAAC;AACJ,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,cAAc,EAAE,eAAe;QAC/B,OAAO,EAAG,KAAK,IACb,KAAK,CACH,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAC1B,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,gBACvB,CAAC;AACH,QAAA,YAAY,EAAE,CAAC;AACf,QAAA,sBAAsB,EAAE,CAAC;AACzB,QAAA,uBAAuB,EAAE;OACzB;AAAA,MAAA,QAAA,EAAA,cAEFA,KAAC,UAAU,EAAA;AAAC,QAAA,OAAO,EAAC,IAAI;AAAC,QAAA,EAAE,EAAC,YAAY;AAAC,QAAA,SAAS,EAAC,KAAK;AAAA,QAAA,QAAA,EAAA,CACrD,QAAQ,CAAC,MAAM,EAAC,WACnB;OAAY,CAAC,eAEbD,GAAA,CAAC,UAAU,EAAA;AAAC,QAAA,OAAO,EAAE,MAAM,WAAW,CAAC,QAAQ,CAAE;AAAA,QAAA,QAAA,EAC9C,UAAU,iBAAIA,GAAA,CAAC,IAAI,EAAA,EAAE;AAAC,OACb,CAAC;KACV;AAAC,GACE,CAAC;AAEf;AAEA,oBAAoB,CAAC,SAAS,GAAG;AAC/B,EAAA,QAAQ,EAAE,SAAS,CAAC,KAAK,CAAC,UAAU;EACpC,WAAW,EAAE,SAAS,CAAC,IAAI;EAC3B,UAAU,EAAE,SAAS,CAAC;AACxB,CAAC;;ACpCD,SAAS,UAAU,CAAC;EAAE,IAAI;AAAE,EAAA;AAAS,CAAC,EAAE;AACtC,EAAA,oBACEA,IAAC,UAAU,EAAA;AACT,IAAA,OAAO,EAAE,QAAQ,GAAG,IAAI,GAAG,IAAK;AAChC,IAAA,KAAK,EAAE,QAAQ,GAAG,WAAW,GAAG,SAAU;AAC1C,IAAA,EAAE,EAAE;AAAE,MAAA,CAAC,EAAE;KAAI;IAAA,QAAA,EAEZ;AAAI,GACK,CAAC;AAEjB;AAEA,UAAU,CAAC,SAAS,GAAG;EACrB,IAAI,EAAE,SAAS,CAAC,MAAM;EACtB,QAAQ,EAAE,SAAS,CAAC;AACtB,CAAC;;ACdD,SAAS,SAAS,CAAC;EAAE,OAAO;AAAE,EAAA;AAAS,CAAC,EAAE;AACxC,EAAA,MAAM,SAAS,GAAG,OAAO,QAAQ,KAAK,UAAU;EAEhD,IAAI,CAAC,SAAS,EAAE;AACd,IAAA,OAAO,IAAI;AACb,EAAA;EAEA,MAAM,WAAW,GAAG,MAAM;AACxB,IAAA,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;AAClC,MAAA,QAAQ,EAAE;AACZ,IAAA;EACF,CAAC;AAED,EAAA,oBACEA,IAAC,OAAO,EAAA;AAAC,IAAA,KAAK,EAAC,QAAQ;AAAA,IAAA,QAAA,eACrBA,IAAC,MAAM,EAAA;AACL,MAAA,OAAO,EAAC,WAAW;AACnB,MAAA,KAAK,EAAC,SAAS;AACf,MAAA,OAAO,EAAE,WAAY;AACrB,MAAA,QAAQ,EAAE,OAAQ;MAAA,QAAA,eAElBA,GAAA,CAAC,WAAW,EAAA,EAAE;KACR;AAAC,GACF,CAAC;AAEd;AAEA,SAAS,CAAC,SAAS,GAAG;EACpB,OAAO,EAAE,SAAS,CAAC,IAAI;AACvB;EACA,QAAQ,EAAE,SAAS,CAAC;AACtB,CAAC;;ACvBc,SAAS,WAAW,CAAC;EAAE,KAAK;AAAE,EAAA;AAAS,CAAC,EAAE;AACvD,EAAA,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACxD,EAAA,MAAM,QAAQ,GAAG,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC;EAExC,MAAM,YAAY,GAAI,CAAC,IAAK;IAC1B,CAAC,CAAC,cAAc,EAAE;IAClB,QAAQ,CAAC,KAAK,CAAC;EACjB,CAAC;EAED,MAAM,cAAc,GAAG,MAAM;IAC3B,QAAQ,CAAC,KAAK,CAAC;EACjB,CAAC;;AAED;AACA;AACA;AACA,EAAA,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;EAE3C,oBACEA,GAAA,CAAA,MAAA,EAAA;AAAM,IAAA,QAAQ,EAAE,YAAa;AAAA,IAAA,QAAA,eAC3BC,KAAC,KAAK,EAAA;AACJ,MAAA,SAAS,EAAE,CAAE;AACb,MAAA,EAAE,EAAE;AACF,QAAA,YAAY,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM;AACxC,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,UAAU,EAAE,QAAQ;AACpB,QAAA,UAAU,EAAE,sBAAsB;AAClC,QAAA,CAAC,EAAE,QAAQ,GAAG,CAAC,GAAG,GAAG;AACrB,QAAA,KAAK,EAAE,aAAa;QACpB,MAAM,EAAG,KAAK,IAAK,CAAA,UAAA,EAAa,KAAK,CAAC,OAAO,CAAC,OAAO,CAAA,CAAE;AACvD,QAAA,EAAE,EAAE;OACJ;AACF,MAAA,YAAY,EAAE,MAAM,QAAQ,CAAC,IAAI,CAAE;AACnC,MAAA,YAAY,EAAE,cAAe;AAC7B,MAAA,SAAS,EAAG,CAAC,IAAK,CAAC,CAAC,GAAG,KAAK,OAAO,IAAI,YAAY,CAAC,CAAC,CAAE;AAAA,MAAA,QAAA,EAAA,cAEvDD,IAAC,SAAS,EAAA;AACR,QAAA,WAAW,EAAC,QAAQ;AACpB,QAAA,KAAK,EAAE,KAAM;QACb,QAAQ,EAAG,CAAC,IAAK;UACf,eAAe,CAAC,OAAO,GAAG,IAAI;AAC9B,UAAA,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QAC1B,CAAE;AACF,QAAA,EAAE,EAAE;AACF,UAAA,EAAE,EAAE,CAAC;AACL,UAAA,KAAK,EAAE,QAAQ,GAAG,MAAM,GAAG,CAAC;AAC5B,UAAA,UAAU,EAAE,wBAAwB;AACpC,UAAA,IAAI,QAAQ,GAAG,EAAE,GAAG;AAAE,YAAA,MAAM,EAAE;WAAG;SACjC;AACF,QAAA,MAAM,EAAE;OACT,CAAC,eAEFA,GAAA,CAAC,QAAQ,EAAA;AAAC,QAAA,EAAE,EAAE,OAAO,CAAC,KAAK,CAAE;AAAC,QAAA,WAAW,EAAC,YAAY;QAAC,aAAa,EAAA,IAAA;AAAA,QAAA,QAAA,eAClEC,KAAC,KAAK,EAAA;AAAC,UAAA,SAAS,EAAC,KAAK;AAAC,UAAA,OAAO,EAAE,CAAE;AAAC,UAAA,EAAE,EAAE;AAAE,YAAA,EAAE,EAAE,CAAC;AAAE,YAAA,UAAU,EAAE;WAAW;AAAA,UAAA,QAAA,EAAA,cACrED,IAAC,UAAU,EAAA;AACT,YAAA,OAAO,EAAE,MAAM;cACb,eAAe,CAAC,OAAO,GAAG,KAAK;AAC/B;cACA,QAAQ,CAAC,EAAE,CAAC;YACd,CAAE;YAAA,QAAA,eAEFA,GAAA,CAAC,KAAK,EAAA,EAAE;WACE,CAAC,eACbA,GAAA,CAAC,OAAO,EAAA;AAAC,YAAA,WAAW,EAAC,UAAU;YAAC,QAAQ,EAAA;AAAA,WAAE,CAAC;SACtC;OACC,CAAC,eAEXA,GAAA,CAAC,UAAU,EAAA;AAAC,QAAA,OAAO,EAAE,YAAa;AAAC,QAAA,IAAI,EAAC,QAAQ;QAAA,QAAA,eAC9CA,GAAA,CAAC,MAAM,EAAA,EAAE;AAAC,OACA,CAAC;KACR;AAAC,GACJ,CAAC;AAEX;AAEA,WAAW,CAAC,SAAS,GAAG;EACtB,KAAK,EAAE,SAAS,CAAC,MAAM;AACvB,EAAA,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC;AAC3B,CAAC;;ACtFD,SAAS,UAAU,CAAC,KAAK,EAAE;EACzB,MAAM;IAAE,OAAO;IAAE,WAAW;IAAE,UAAU;AAAE,IAAA;AAAc,GAAC,GAAG,KAAK;AAEjE,EAAA,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM;IACpC,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,IAAI,EAAE,OAAO,OAAO;IAC7D,IAAI,aAAa,IAAI,UAAU,EAAE;MAC/B,OAAO,cAAc,CAAC,OAAO,CAAC,aAAa,UAAU,CAAA,CAAE,CAAC,IAAI,EAAE;AAChE,IAAA;AACA,IAAA,OAAO,EAAE;EACX,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC;EAExC,oBACEA,GAAA,CAAA,KAAA,EAAA;AAAA,IAAA,QAAA,eACEA,IAAC,WAAW,EAAA;AAAC,MAAA,KAAK,EAAE,SAAU;AAAC,MAAA,QAAQ,EAAE;KAAc;AAAC,GAAA,EADjD,YAEJ,CAAC;AAEV;AAEA,UAAU,CAAC,SAAS,GAAG;EACrB,OAAO,EAAE,SAAS,CAAC,MAAM;AACzB,EAAA,WAAW,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU;EACtC,UAAU,EAAE,SAAS,CAAC,MAAM;AAC5B;EACA,aAAa,EAAE,SAAS,CAAC;AAC3B,CAAC;;ACvBD,SAAS,mBAAmB,CAAC;EAC3B,QAAQ;EACR,gBAAgB;EAChB,UAAU;EACV,cAAc;EACd,IAAI;AACJ,EAAA;AACF,CAAC,EAAE;AACD,EAAA,oBACEA,IAAC,OAAO,EAAA;AACN,IAAA,EAAE,EAAE;AACF,MAAA,EAAE,EAAE;AAAE,QAAA,EAAE,EAAE;OAAG;AACb,MAAA,EAAE,EAAE;AAAE,QAAA,EAAE,EAAE,CAAC;AAAE,QAAA,EAAE,EAAE;OAAG;AACpB,MAAA,EAAE,EAAE;KACJ;AAAA,IAAA,QAAA,eAEFC,KAAC,KAAK,EAAA;AACJ,MAAA,OAAO,EAAE,CAAE;AACX,MAAA,SAAS,EAAE;AAAE,QAAA,EAAE,EAAE,QAAQ;AAAE,QAAA,EAAE,EAAE;OAAQ;AACvC,MAAA,EAAE,EAAE;AACF,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,UAAU,EAAE;AAAE,UAAA,EAAE,EAAE,YAAY;AAAE,UAAA,EAAE,EAAE;AAAS;OAC7C;AAAA,MAAA,QAAA,EAAA,cAEFD,IAAC,GAAG,EAAA;AAAC,QAAA,EAAE,EAAE;AAAE,UAAA,IAAI,EAAE;SAAa;AAAC,QAAA,EAAE,EAAC,YAAY;AAAA,QAAA,QAAA,eAC5CA,IAAC,SAAS,EAAA;AAAC,UAAA,QAAQ,EAAE,QAAS;AAAC,UAAA,OAAO,EAAE;SAAmB;OACxD,CAAC,eACNA,GAAA,CAAC,UAAU,EAAA;AACT,QAAA,OAAO,EAAE,UAAW;AACpB,QAAA,WAAW,EAAE,cAAe;AAC5B,QAAA,UAAU,EAAE,IAAK;AACjB,QAAA,aAAa,EAAE;AAAc,OAC9B,CAAC;KACG;AAAC,GACD,CAAC;AAEd;AAEA,mBAAmB,CAAC,SAAS,GAAG;EAC9B,QAAQ,EAAE,SAAS,CAAC,IAAI;EACxB,gBAAgB,EAAE,SAAS,CAAC,IAAI;EAChC,UAAU,EAAE,SAAS,CAAC,MAAM;AAC5B,EAAA,cAAc,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU;EACzC,IAAI,EAAE,SAAS,CAAC,MAAM;EACtB,aAAa,EAAE,SAAS,CAAC;AAC3B,CAAC;;AChDD,SAAS,qBAAqB,CAAC;EAAE,IAAI;EAAE,QAAQ;AAAE,EAAA;AAAgB,CAAC,EAAE;AAClE,EAAA,IAAI,QAAQ,EAAE,OAAO,IAAI,CAAC,MAAM;AAChC,EAAA,IAAI,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;IAChE,OAAO,eAAe,CAAC,CAAC,CAAC;AAC3B,EAAA;AACA,EAAA,OAAO,CAAC;AACV;AAEe,SAAS,qBAAqB,CAAC;EAC5C,IAAI;EACJ,QAAQ;EACR,eAAe;EACf,SAAS;EACT,OAAO;EACP,UAAU;EACV,QAAQ;EACR,UAAU;EACV,KAAK;EACL,OAAO;AACP,EAAA;AACF,CAAC,EAAE;EACD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO;AACxD,IAAA,IAAI,EAAE,CAAC;IACP,WAAW,EAAE,qBAAqB,CAAC;MAAE,IAAI;MAAE,QAAQ;AAAE,MAAA;AAAgB,KAAC,CAAC;AACvE,IAAA;AACF,GAAC,CAAC,CAAC;EAEH,KAAK,CAAC,SAAS,CAAC,MAAM;AACpB;AACA;AACA;IACA,aAAa,CAAE,QAAQ,IAAK;AAC1B,MAAA,IAAI,QAAQ,CAAC,SAAS,KAAK,SAAS,EAAE;AACpC,QAAA,OAAO,QAAQ;AACjB,MAAA;MAEA,OAAO;AACL,QAAA,GAAG,QAAQ;AACX,QAAA,IAAI,EAAE,CAAC;AACP,QAAA;OACD;AACH,IAAA,CAAC,CAAC;AACJ,EAAA,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;AAEf,EAAA,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI;EAC5B,MAAM,WAAW,GAAG,QAAQ,GAAG,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,WAAW;AAEnE,EAAA,MAAM,iBAAiB,GAAG,KAAK,CAAC,WAAW,CACxC,QAAQ,IAAK;IACZ,MAAM,KAAK,GAAG,OAAO,KAAK,QAAQ,IAAI,KAAK,KAAK,KAAK;AACrD,IAAA,QAAQ,CAAC,KAAK,GAAG,MAAM,GAAG,KAAK,CAAC;IAChC,UAAU,CAAC,QAAQ,CAAC;EACtB,CAAC,EACD,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,CACvC,CAAC;EAED,MAAM,gBAAgB,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,OAAO,KAAK;IAC7D,aAAa,CAAE,QAAQ,KAAM;AAC3B,MAAA,GAAG,QAAQ;AACX,MAAA,IAAI,EAAE;AACR,KAAC,CAAC,CAAC;EACL,CAAC,EAAE,EAAE,CAAC;AAEN,EAAA,MAAM,uBAAuB,GAAG,KAAK,CAAC,WAAW,CAAE,KAAK,IAAK;IAC3D,aAAa,CAAE,QAAQ,KAAM;AAC3B,MAAA,GAAG,QAAQ;AACX,MAAA,IAAI,EAAE,CAAC;MACP,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE;AACrD,KAAC,CAAC,CAAC;EACL,CAAC,EAAE,EAAE,CAAC;AAEN,EAAA,MAAM,UAAU,GAAG,CAAC,MAAM,EAAE,WAAW,KAAK;AAC1C,IAAA,IAAI,WAAW,EAAE;MACf,MAAM,SAAS,GAAG,KAAK,KAAK,KAAK,GAAG,MAAM,GAAG,KAAK;AAClD,MAAA,OAAO,CAAC;QAAE,UAAU;QAAE,MAAM;QAAE,SAAS;QAAE,KAAK,EAAE,UAAU,IAAI;AAAE,OAAC,CAAC;MAClE,QAAQ,CAAC,SAAS,CAAC;MACnB,UAAU,CAAC,MAAM,CAAC;AAClB,MAAA;AACF,IAAA;IACA,iBAAiB,CAAC,MAAM,CAAC;EAC3B,CAAC;EAED,OAAO;IACL,KAAK;IACL,OAAO;IACP,IAAI;IACJ,WAAW;IACX,gBAAgB;IAChB,uBAAuB;AACvB,IAAA;GACD;AACH;;ACjFA,SAAS,iBAAiB,CAAC,KAAK,EAAE;EAChC,MAAM;IACJ,KAAK;IACL,OAAO;IACP,aAAa;IACb,UAAU;IACV,WAAW;IACX,QAAQ;IACR,gBAAgB;AAChB,IAAA;AACF,GAAC,GAAG,KAAK;AAET,EAAA,oBACEA,IAAC,SAAS,EAAA;AAAA,IAAA,QAAA,eACRC,KAAC,QAAQ,EAAA;MAAA,QAAA,EAAA,CACN,UAAU,iBACTD,GAAA,CAAC,SAAS,EAAA;AAAC,QAAA,OAAO,EAAC,UAAU;AAAA,QAAA,QAAA,eAC3BA,IAAC,QAAQ,EAAA;AACP,UAAA,KAAK,EAAC,SAAS;AACf,UAAA,aAAa,EAAE,WAAW,GAAG,CAAC,IAAI,WAAW,GAAG,QAAS;AACzD,UAAA,OAAO,EAAE,QAAQ,GAAG,CAAC,IAAI,WAAW,KAAK,QAAS;AAClD,UAAA,QAAQ,EAAE;SACX;OACQ,CACZ,EACA,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAE,QAAQ,iBAC3BA,GAAA,CAAC,SAAS,EAAA;AAER,QAAA,KAAK,EAAE,QAAQ,CAAC,OAAO,GAAG,OAAO,GAAG,MAAO;AAC3C,QAAA,OAAO,EAAC,QAAQ;QAChB,aAAa,EAAE,OAAO,KAAK,QAAQ,CAAC,EAAE,GAAG,KAAK,GAAG,KAAM;AAAA,QAAA,QAAA,eAEvDC,KAAC,cAAc,EAAA;AACb,UAAA,MAAM,EAAE,OAAO,KAAK,QAAQ,CAAC,EAAG;UAChC,SAAS,EAAE,OAAO,KAAK,QAAQ,CAAC,EAAE,GAAG,KAAK,GAAG,KAAM;AACnD,UAAA,OAAO,EAAE,MACP,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,IAAI,KAAK,CACtD;UACD,QAAQ,EAAE,QAAQ,CAAC,MAAO;UAAA,QAAA,EAAA,CAEzB,QAAQ,CAAC,KAAK,EACd,OAAO,KAAK,QAAQ,CAAC,EAAE,gBACtBD,GAAA,CAAC,GAAG,EAAA;AAAC,YAAA,SAAS,EAAC,MAAM;AAAC,YAAA,EAAE,EAAE,cAAe;AAAA,YAAA,QAAA,EACtC,KAAK,KAAK,MAAM,GAAG,mBAAmB,GAAG;WACvC,CAAC,GACJ,SAAS;SACC;AAAC,OAAA,EAnBZ,QAAQ,CAAC,EAoBL,CACZ,CAAC;KACM;AAAC,GACF,CAAC;AAEhB;AAEA,iBAAiB,CAAC,SAAS,GAAG;AAC5B,EAAA,aAAa,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU;AACxC,EAAA,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,UAAU;AAClD,EAAA,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,UAAU;AACpC,EAAA,QAAQ,EAAE,SAAS,CAAC,KAAK,CAAC,UAAU;EACpC,UAAU,EAAE,SAAS,CAAC,IAAI;EAC1B,WAAW,EAAE,SAAS,CAAC,MAAM;EAC7B,QAAQ,EAAE,SAAS,CAAC,MAAM;EAC1B,gBAAgB,EAAE,SAAS,CAAC,IAAI;EAChC,KAAK,EAAE,SAAS,CAAC;AACnB,CAAC;;AC1DD,MAAME,gBAAc,gBAAG,KAAK,CAAC,IAAI,CAAC,MAAM,gEAA2B,CAAC;;AAEpE;AACA;AACA;;AAEO,SAAS,gBAAgB,CAAC;EAAE,MAAM;EAAE,MAAM;EAAE,QAAQ;EAAE,SAAS;AAAE,EAAA;AAAU,CAAC,EAAE;AACnF,EAAA,oBACEF,IAAC,SAAS,EAAA;AAAA,IAAA,QAAA,eACRA,IAAC,OAAO,EAAA;AAAC,MAAA,KAAK,EAAE,MAAM,GAAG,CAAA,KAAA,EAAQ,MAAM,CAAC,EAAE,CAAA,CAAE,GAAG,CAAA,KAAA,EAAQ,MAAM,CAAC,EAAE,CAAA,CAAG;AAAA,MAAA,QAAA,eACjEA,IAAC,GAAG,EAAA;AAAA,QAAA,QAAA,eACFA,IAAC,UAAU,EAAA;UACT,OAAO,EAAG,KAAK,IAAK;YAClB,KAAK,CAAC,eAAe,EAAE;AACvB,YAAA,QAAQ,EAAE;UACZ,CAAE;UACF,QAAQ,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,CAAE;AAC5C,UAAA,KAAK,EAAE,MAAM,CAAC,SAAS,IAAI,WAAY;AAAA,UAAA,QAAA,eAEvCA,IAAC,KAAK,EAAA;YACJ,YAAY,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAO;AAC1C,YAAA,SAAS,EAAE,SAAU;AACrB,YAAA,YAAY,EAAE;AACZ,cAAA,QAAQ,EAAE,QAAQ;AAClB,cAAA,UAAU,EAAE;aACZ;AACF,YAAA,EAAE,EAAE;AACF,cAAA,mBAAmB,EAAE;gBACnB,KAAK,EAAG,KAAK,IAAK,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;AACvC;aACA;AAAA,YAAA,QAAA,EAED,MAAM,GACH,MAAM,EAAE,SAAS,iBAAIA,GAAA,CAAC,YAAY,EAAA,EAAE,CAAC,GACrC,MAAM,EAAE,QAAQ,iBAAIA,GAAA,CAAC,SAAS,EAAA,EAAE;WAC/B;SACG;OACT;KACE;AAAC,GACD,CAAC;AAEhB;AAEA,gBAAgB,CAAC,SAAS,GAAG;AAC3B,EAAA,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,UAAU;AACnC,EAAA,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU;AACjC,EAAA,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU;AACnC,EAAA,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,UAAU;EACtC,SAAS,EAAE,SAAS,CAAC;AACvB,CAAC;;AAED;AACA;AACA;;AAEO,SAAS,WAAW,CAAC;EAAE,KAAK;EAAE,MAAM;EAAE,SAAS;AAAE,EAAA;AAAQ,CAAC,EAAE;AACjE,EAAA,oBACEA,IAAC,QAAQ,EAAA;AAAA,IAAA,QAAA,eACPA,IAAC,SAAS,EAAA;AAAC,MAAA,OAAO,EAAE,OAAQ;AAAC,MAAA,KAAK,EAAE;AAAE,QAAA,aAAa,EAAE,CAAC;AAAE,QAAA,UAAU,EAAE;OAAI;AAAA,MAAA,QAAA,eACtEA,IAAC,QAAQ,EAAA;AAAC,QAAA,EAAE,EAAE,MAAO;AAAC,QAAA,OAAO,EAAC,MAAM;QAAC,aAAa,EAAA,IAAA;QAAA,QAAA,eAChDA,GAAA,CAAC,KAAK,CAAC,QAAQ,EAAA;AAAC,UAAA,QAAQ,EAAE,IAAK;AAAA,UAAA,QAAA,eAC7BA,IAACE,gBAAc,EAAA;YACb,OAAO,EAAE,KAAK,CAAC,OAAQ;YACvB,UAAU,EAAE,KAAK,CAAC,UAAW;YAC7B,QAAQ,EAAE,KAAK,CAAC,QAAS;AACzB,YAAA,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAE;YAC1B,OAAO,EAAE,KAAK,CAAC,OAAQ;YACvB,IAAI,EAAE,KAAK,CAAC,QAAS;YACrB,QAAQ,EAAA;WACT;SACa;OACR;KACD;AAAC,GACJ,CAAC;AAEf;AAEA,WAAW,CAAC,SAAS,GAAG;AACtB,EAAA,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,UAAU;AAClC,EAAA,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU;AACjC,EAAA,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,UAAU;AACtC,EAAA,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC;AAC5B,CAAC;;AC1FD,SAAS,eAAe,CAAC,OAAO,EAAE,SAAS,EAAE;AAC3C,EAAA,OAAO,OAAO,CAAC,GAAG,CAAE,MAAM,iBACxBF,IAAC,SAAS,EAAA;IAAA,GAAqC,MAAM,CAAC,SAAS;AAAA,IAAA,QAAA,EAC5D,MAAM,CAAC,SAAS,GACb,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,GAC3B,eAAe,CAAC,MAAM,EAAE,SAAS;GAAC,EAHxB,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,KAIzB,CACZ,CAAC;AACJ;AAEA,MAAM,OAAO,gBAAG,KAAK,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,KAAK,EAAE;EACjD,MAAM;IAAE,SAAS;IAAE,OAAO;IAAE,UAAU;IAAE,UAAU;AAAE,IAAA;AAAY,GAAC,GAAG,KAAK;EACzE,MAAM;IAAE,SAAS;AAAE,IAAA;AAAQ,GAAC,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,YAAY,CAAC,OAAO,CAAC,EAAE,CACxE,OAAO,CACR,CAAC;AACF,EAAA,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,KAAK;AAC1C,EAAA,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC;AAC9C,EAAA,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,QAAQ,CACxC,KAAK,CAAC,IAAI,CAAC;IAAE,MAAM,EAAE,SAAS,CAAC;AAAO,GAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CACrD,CAAC;AAED,EAAA,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CAAE,KAAK,IAAK;IAChD,SAAS,CAAE,QAAQ,IAAK;AACtB,MAAA,MAAM,IAAI,GAAG,CAAC,GAAG,QAAQ,CAAC;MAC1B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;AAC1B,MAAA,OAAO,IAAI;AACb,IAAA,CAAC,CAAC;EACJ,CAAC,EAAE,EAAE,CAAC;AAEN,EAAA,MAAM,gBAAgB,GAAG,KAAK,CAAC,WAAW,CACvC,KAAK,IAAK;AACT,IAAA,IAAI,UAAU,KAAK,KAAK,CAAC,GAAG,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,CAAC,EAAE;MAC9D,KAAK,CAAC,cAAc,EAAE;AACtB,MAAA,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC;AACjC,IAAA;EACF,CAAC,EACD,CAAC,UAAU,EAAE,WAAW,EAAE,KAAK,CAAC,KAAK,CACvC,CAAC;EAED,oBACEC,IAAA,CAAAE,QAAA,EAAA;AAAA,IAAA,QAAA,EAAA,cACEF,KAAC,QAAQ,EAAA;AACP,MAAA,QAAQ,EAAE,UAAU,GAAG,CAAC,GAAG,EAAG;AAC9B,MAAA,KAAK,EAAE,UAAW;AAClB,MAAA,IAAI,EAAE,UAAU,GAAG,UAAU,GAAG,KAAM;AACtC,MAAA,QAAQ,EAAE,cAAe;AACzB,MAAA,cAAA,EAAc,cAAe;AAC7B,MAAA,SAAS,EAAE,gBAAiB;MAAA,QAAA,EAAA,CAE3B,UAAU,iBACTD,GAAA,CAAC,SAAS,EAAA;AAAC,QAAA,OAAO,EAAC,UAAU;AAAA,QAAA,QAAA,eAC3BA,IAAC,QAAQ,EAAA;AACP,UAAA,KAAK,EAAC,SAAS;AACf,UAAA,OAAO,EAAE,cAAe;UACxB,OAAO,EAAG,KAAK,IAAK,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK;SACnD;AAAC,OACO,CACZ,EACA,SAAS,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,kBAC3BA,GAAA,CAAC,gBAAgB,EAAA;AAEf,QAAA,MAAM,EAAE,MAAO;AACf,QAAA,MAAM,EAAE,MAAM,CAAC,KAAK,CAAE;AACtB,QAAA,QAAQ,EAAE,MAAM,YAAY,CAAC,KAAK,CAAE;AACpC,QAAA,SAAS,EAAE,SAAU;AACrB,QAAA,SAAS,EAAE;AAAU,OAAA,EALhB,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,KAM1B,CACF,CAAC,EACD,eAAe,CAAC,OAAO,EAAE,SAAS,CAAC;AAAA,KAC5B,CAAC,EACV,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,kBAC1BA,GAAA,CAAC,WAAW,EAAA;AAEV,MAAA,KAAK,EAAE,KAAM;AACb,MAAA,MAAM,EAAE,MAAM,CAAC,KAAK,CAAE;AACtB,MAAA,SAAS,EAAE,SAAU;AACrB,MAAA,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG;KAAE,EAJ7B,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,KAKxB,CACF,CAAC;AAAA,GACF,CAAC;AAEP,CAAC,CAAC;AAEF,OAAO,CAAC,SAAS,GAAG;AAClB,EAAA,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,UAAU;AACtC,EAAA,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC,UAAU;EACnC,UAAU,EAAE,SAAS,CAAC,IAAI;AAC1B,EAAA,UAAU,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU;EACrC,WAAW,EAAE,SAAS,CAAC,IAAI;EAC3B,SAAS,EAAE,SAAS,CAAC,IAAI;AACzB,EAAA,KAAK,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;AACnE,CAAC;;AC7FD,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;AAClE,MAAM,aAAa,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;AAE9D,MAAM,WAAW,GAAG,MAAM;EACxB,oBACEC,IAAA,CAAAE,QAAA,EAAA;AAAA,IAAA,QAAA,EAAA,cACEH,IAAC,SAAS,EAAA,EAAE,CAAC,eACbA,IAAC,SAAS,EAAA;AAAA,MAAA,QAAA,EACP,YAAY,CAAC,GAAG,CAAE,MAAM,iBACvBA,IAAC,QAAQ,EAAA;AAAA,QAAA,QAAA,EACN,aAAa,CAAC,GAAG,CAAE,OAAO,iBACzBA,IAAC,SAAS,EAAA;AAAA,UAAA,QAAA,eACRA,IAAC,QAAQ,EAAA;AAAC,YAAA,MAAM,EAAE;WAAK;AAAC,SAAA,EADV,OAEL,CACZ;AAAC,OAAA,EALW,MAML,CACX;AAAC,KACO,CAAC;AAAA,GACZ,CAAC;AAEP,CAAC;;ACND,SAAS,aAAa,CAAC,KAAK,EAAE;EAC5B,MAAM;IACJ,OAAO;IACP,IAAI;IACJ,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,UAAU;IACV,UAAU;IACV,QAAQ;IACR,UAAU;IACV,KAAK;IACL,OAAO;IACP,KAAK;AACL,IAAA;AACF,GAAC,GAAG,KAAK;EAET,MAAM;IACJ,IAAI;IACJ,WAAW;IACX,UAAU;IACV,gBAAgB;AAChB,IAAA;GACD,GAAG,qBAAqB,CAAC;IACxB,IAAI;IACJ,QAAQ;IACR,eAAe,EAAE,KAAK,CAAC,eAAe;IACtC,SAAS,EAAE,KAAK,CAAC,SAAS;AAC1B,IAAA,OAAO,EAAE,UAAU;IACnB,UAAU;IACV,QAAQ;IACR,UAAU;IACV,KAAK;IACL,OAAO;AACP,IAAA;AACF,GAAC,CAAC;EAEF,MAAM,oBAAoB,GAAG,WAAW,KAAK,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,WAAW;EAE3E,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CACxB,CAAC,EACD,oBAAoB,GAClB,IAAI,CAAC,GAAG,CAAC,oBAAoB,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,oBAAoB,CAC5E,CAAC;AAED,EAAA,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,CACjC,EAAE,IAAK,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,EAC7B,CAAC,QAAQ,CACX,CAAC;AAED,EAAA,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM;IACtC,OAAO,UAAU,CACf,IAAI,EACJ,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,EAC7B,OAAO,EACP,OACF,CAAC,CAAC,KAAK,CACL,IAAI,GAAG,oBAAoB,EAC3B,IAAI,GAAG,oBAAoB,GAAG,oBAChC,CAAC;AACH,EAAA,CAAC,EAAE,CAAC,oBAAoB,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAE/D,EAAA,oBACEC,KAAC,cAAc,EAAA;AAAA,IAAA,QAAA,EAAA,cACbD,IAAC,KAAK,EAAA;AACJ,MAAA,EAAE,EAAE;AAAE,QAAA,QAAQ,EAAE;OAAM;AACtB,MAAA,IAAI,EAAU,OAAO,CAAY;AACjC,MAAA,YAAA,EAAY,KAAK,CAAC,IAAI,IAAI,YAAa;MAAA,QAAA,EAEtC,KAAK,CAAC,OAAO,gBACZA,IAAC,WAAW,EAAA,EAAE,CAAC,gBAEfC,IAAA,CAAAE,QAAA,EAAA;AAAA,QAAA,QAAA,EAAA,cACEH,IAAC,iBAAiB,EAAA;AAChB,UAAA,KAAK,EAAE,KAAM;AACb,UAAA,OAAO,EAAE,OAAQ;AACjB,UAAA,aAAa,EAAE,UAAW;AAC1B,UAAA,QAAQ,EAAE,OAAQ;UAClB,UAAU,EAAE,KAAK,CAAC,UAAW;UAC7B,WAAW,EAAE,QAAQ,CAAC,MAAO;UAC7B,QAAQ,EAAE,IAAI,CAAC,MAAO;UACtB,gBAAgB,EAAE,KAAK,CAAC,oBAAqB;AAC7C,UAAA,KAAK,EAAE;SACR,CAAC,eAEFC,IAAA,CAAC,SAAS,EAAA;UAAA,QAAA,EAAA,CACP,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,KAAK;AAC/B,YAAA,MAAM,MAAM,GAAG,QAAQ,GACnB,GAAG,CAAC,QAAQ,CAAC,GACb,OAAO,IAAI,GAAG,oBAAoB,GAAG,KAAK,CAAA,CAAE;YAChD,MAAM,KAAK,GAAG,kBAAkB,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC;AAEtD,YAAA,oBACED,IAAC,OAAO,EAAA;AAEN,cAAA,KAAK,EAAE,KAAM;AACb,cAAA,OAAO,EAAE,OAAQ;AACjB,cAAA,SAAS,EAAE,GAAI;cACf,SAAS,EAAE,KAAK,CAAC,SAAU;cAC3B,UAAU,EAAE,KAAK,CAAC,UAAW;cAC7B,WAAW,EAAE,KAAK,CAAC,WAAY;AAC/B,cAAA,UAAU,EAAE;AAAW,aAAA,EAPlB,MAQN,CAAC;UAEN,CAAC,CAAC,EACD,CAAC,QAAQ,IAAI,SAAS,GAAG,CAAC,iBACzBA,GAAA,CAAC,QAAQ,EAAA;AAAC,YAAA,KAAK,EAAE;AAAE,cAAA,MAAM,EAAE,CAAS,EAAE,CAAK,IAAI;aAAY;AAAA,YAAA,QAAA,eACzDA,IAAC,SAAS,EAAA;cAAC,OAAO,EAAE,OAAO,CAAC;aAAS;AAAC,WAC9B,CACX;AAAA,SACQ,CAAC;OACZ;AACH,KACI,CAAC,EACP,QAAQ,gBACPA,IAAC,GAAG,EAAA;AAAC,MAAA,EAAE,EAAE;AAAE,QAAA,EAAE,EAAE;AAAE;KAAI,CAAC,gBAEtBA,GAAA,CAAC,eAAe,EAAA;MACd,kBAAkB,EAChB,KAAK,CAAC,eAAe,IAAI,cAAc,CAAC,IAAI,CAAC,MAAM,CACpD;AACD,MAAA,SAAS,EAAC,KAAK;MACf,KAAK,EAAE,IAAI,CAAC,MAAO;AACnB,MAAA,WAAW,EAAE,WAAY;AACzB,MAAA,IAAI,EAAE,IAAK;AACX,MAAA,YAAY,EAAE,gBAAiB;AAC/B,MAAA,mBAAmB,EAAE,uBAAwB;AAC7C,MAAA,EAAE,EAAE;AAAE,QAAA,QAAQ,EAAE;OAAY;MAC5B,eAAe,EAAA,IAAA;MACf,cAAc,EAAA;AAAA,KACf,CACF;AAAA,GACa,CAAC;AAErB;AAEA,aAAa,CAAC,SAAS,GAAG;AACxB,EAAA,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC,UAAU;AACnC,EAAA,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,UAAU;EAChC,QAAQ,EAAE,SAAS,CAAC,IAAI;EACxB,SAAS,EAAE,SAAS,CAAC,IAAI;EACzB,OAAO,EAAE,SAAS,CAAC,IAAI;EACvB,UAAU,EAAE,SAAS,CAAC,IAAI;EAC1B,oBAAoB,EAAE,SAAS,CAAC,IAAI;EACpC,WAAW,EAAE,SAAS,CAAC,IAAI;EAC3B,QAAQ,EAAE,SAAS,CAAC,KAAK;EACzB,QAAQ,EAAE,SAAS,CAAC,MAAM;EAC1B,KAAK,EAAE,SAAS,CAAC,IAAI;EACrB,SAAS,EAAE,SAAS,CAAC,MAAM;EAC3B,eAAe,EAAE,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC;EACpD,IAAI,EAAE,SAAS,CAAC,MAAM;EACtB,UAAU,EAAE,SAAS,CAAC,IAAI;EAC1B,UAAU,EAAE,SAAS,CAAC,MAAM;EAC5B,QAAQ,EAAE,SAAS,CAAC,IAAI;EACxB,UAAU,EAAE,SAAS,CAAC,IAAI;EAC1B,KAAK,EAAE,SAAS,CAAC,MAAM;EACvB,OAAO,EAAE,SAAS,CAAC,MAAM;EACzB,UAAU,EAAE,SAAS,CAAC;AACxB,CAAC;;ACzKc,SAAS,cAAc,CAAC;EACrC,OAAO;EACP,UAAU;EACV,QAAQ;AACR,EAAA,WAAW,GAAG,KAAK;EACnB,WAAW;EACX,UAAU;EACV,IAAI;EACJ,OAAO;EACP,IAAI;EACJ,gBAAgB;AAChB,EAAA,QAAQ,GAAG,KAAK;AAChB,EAAA,SAAS,GAAG,KAAK;AACjB,EAAA,UAAU,GAAG,KAAK;EAClB,QAAQ;EACR,UAAU;EACV,WAAW;EACX,eAAe;EACf,aAAa;AACb,EAAA;AACF,CAAC,EAAE;AACD,EAAA,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;AACtC,EAAA,MAAM,4BAA4B,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;EAExD,MAAM,KAAK,GAAG,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,GAAG,CAAC;AAE9D,EAAA,MAAM,IAAI,GAAG,OAAO,IAAI,EAAE;EAC1B,MAAM;IAAE,IAAI;IAAE,UAAU;AAAE,IAAA;GAAe,GAAG,iBAAiB,CAC3D,IAAI,EACJ,IAAI,EACJ,KACF,CAAC;EACD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;EAC/C,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;EAChD,MAAM;IAAE,QAAQ;IAAE,cAAc;IAAE,oBAAoB;AAAE,IAAA;GAAa,GACnE,iBAAiB,CAAC;IAChB,IAAI;IACJ,UAAU;AACV,IAAA;AACF,GAAC,CAAC;AAEJ,EAAA,MAAM,kBAAkB,GAAG,KAAK,CAAC,WAAW,CACzC,KAAK,IAAK;AACT,IAAA,cAAc,EAAE;IAChB,aAAa,CAAC,KAAK,CAAC;AACtB,EAAA,CAAC,EACD,CAAC,cAAc,EAAE,aAAa,CAChC,CAAC;AAED,EAAA,MAAM,eAAe,GAAG,KAAK,CAAC,WAAW,CACtC,WAAW,IAAK;AACf,IAAA,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE;AACrC,MAAA;AACF,IAAA;AACA,IAAA,MAAM,MAAM,GAAG,WAAW,CAAC,WAAW,CAAC;IACvC,IAAI,MAAM,YAAY,OAAO,EAAE;AAC7B,MAAA,MAAM,CAAC,IAAI,CAAC,MAAM,cAAc,EAAE,CAAC;AACnC,MAAA;AACF,IAAA;AACA,IAAA,cAAc,EAAE;AAClB,EAAA,CAAC,EACD,CAAC,WAAW,EAAE,cAAc,CAC9B,CAAC;EAED,MAAM,YAAY,GAAI,WAAW,IAAK;AACpC,IAAA,IAAI,KAAK,EAAE;MACT,aAAa,CAAC,WAAW,CAAC;AAC1B,MAAA,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC;AAEjC,MAAA,WAAW,CAAC,OAAO,GAAG,UAAU,CAAC,MAAM;AACrC,QAAA,UAAU,CAAC;AACT,UAAA,UAAU,EAAE,WAAW;AACvB,UAAA,SAAS,EAAE,KAAK;AAChB,UAAA,MAAM,EAAE,OAAO;AACf,UAAA,KAAK,EAAE;AACT,SAAC,CAAC;MACJ,CAAC,EAAE,GAAG,CAAC;AACT,IAAA,CAAC,MAAM;MACL,kBAAkB,CAAC,WAAW,CAAC;AACjC,IAAA;EACF,CAAC;EAED,KAAK,CAAC,SAAS,CAAC,MAAM;AACpB,IAAA,OAAO,MAAM,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC;EAChD,CAAC,EAAE,EAAE,CAAC;EAEN,KAAK,CAAC,SAAS,CAAC,MAAM;AACpB,IAAA,IAAI,CAAC,KAAK,IAAI,4BAA4B,CAAC,OAAO,EAAE;AAClD,MAAA;AACF,IAAA;IAEA,4BAA4B,CAAC,OAAO,GAAG,IAAI;AAC3C,IAAA,UAAU,CAAC;MACT,UAAU;AACV,MAAA,SAAS,EAAE,KAAK;AAChB,MAAA,MAAM,EAAE,OAAO;AACf,MAAA,KAAK,EAAE;AACT,KAAC,CAAC;AACJ,EAAA,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;AAE/D,EAAA,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM;AAC3C,IAAA,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;AAClC,MAAA,QAAQ,EAAE;AACV,MAAA;AACF,IAAA;AACA,IAAA,IAAI,OAAO,UAAU,KAAK,UAAU,EAAE;MACpC,UAAU,CACR,KAAK,GACD;QAAE,UAAU;AAAE,QAAA,SAAS,EAAE,KAAK;AAAE,QAAA,MAAM,EAAE,OAAO;AAAE,QAAA,KAAK,EAAE;OAAY,GACpE,IACN,CAAC;AACH,IAAA;AACF,EAAA,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;EAEzE,oBACEC,IAAA,CAAAE,QAAA,EAAA;AAAA,IAAA,QAAA,EAAA,cACEH,IAAC,oBAAoB,EAAA;AACnB,MAAA,IAAI,EAAE,WAAY;AAClB,MAAA,WAAW,EAAE,WAAY;AACzB,MAAA,UAAU,EAAE;KACb,CAAC,eACFC,IAAA,CAACG,OAAK,EAAA;AACJ,MAAA,EAAE,EAAE;AACF,QAAA,IAAI,QAAQ,IAAI;AAAE,UAAA,SAAS,EAAE;SAAQ;OACrC;AAAA,MAAA,QAAA,EAAA,cAEFJ,IAAC,oBAAoB,EAAA;AACnB,QAAA,QAAQ,EAAE,QAAS;AACnB,QAAA,WAAW,EAAE,eAAgB;AAC7B,QAAA,UAAU,EAAE;OACb,CAAC,eACFA,GAAA,CAAC,UAAU,EAAA;AAAC,QAAA,IAAI,EAAE,IAAK;AAAC,QAAA,QAAQ,EAAE;AAAS,OAAE,CAAC,EAC7C,CAAC,QAAQ,iBACRA,IAAC,mBAAmB,EAAA;AAClB,QAAA,QAAQ,EACN,OAAO,QAAQ,KAAK,UAAU,IAAI,OAAO,UAAU,KAAK,UAAU,GAC9D,YAAY,GACZ,SACL;AACD,QAAA,gBAAgB,EAAE,gBAAiB;AACnC,QAAA,UAAU,EAAE,UAAW;AACvB,QAAA,cAAc,EAAE,YAAa;AAC7B,QAAA,IAAI,EAAE,IAAK;AACX,QAAA,aAAa,EAAE;OAChB,CACF,eACDA,GAAA,CAAC,aAAa,EAAA;AACZ,QAAA,OAAO,EAAE,IAAK;AACd,QAAA,IAAI,EAAE,IAAK;AACX,QAAA,SAAS,EAAE,UAAW;AACtB,QAAA,UAAU,EAAE,UAAW;AACvB,QAAA,QAAQ,EAAE,QAAS;AACnB,QAAA,SAAS,EAAE,SAAU;AACrB,QAAA,OAAO,EAAE,OAAQ;AACjB,QAAA,UAAU,EAAE,UAAW;AACvB,QAAA,oBAAoB,EAAE,oBAAqB;AAC3C,QAAA,WAAW,EAAE,WAAY;AACzB,QAAA,QAAQ,EAAE,QAAS;AACnB,QAAA,QAAQ,EAAE,QAAS;AACnB,QAAA,eAAe,EAAE,eAAgB;AACjC,QAAA,IAAI,EAAE,IAAK;AACX,QAAA,UAAU,EAAE,UAAW;AACvB,QAAA,KAAK,EAAE,KAAM;AACb,QAAA,OAAO,EAAE,OAAQ;AACjB,QAAA,QAAQ,EAAE,QAAS;AACnB,QAAA,UAAU,EAAE,UAAW;AACvB,QAAA,UAAU,EAAE,UAAW;AACvB,QAAA,KAAK,EAAE;AAAM,OACd,CAAC;AAAA,KACG,CAAC;AAAA,GACR,CAAC;AAEP;AAEA,cAAc,CAAC,SAAS,GAAG;EACzB,OAAO,EAAE,SAAS,CAAC,IAAI;EACvB,UAAU,EAAE,SAAS,CAAC,IAAI;AAC1B;EACA,QAAQ,EAAE,SAAS,CAAC,IAAI;EACxB,WAAW,EAAE,SAAS,CAAC,IAAI;EAC3B,WAAW,EAAE,SAAS,CAAC,MAAM;EAC7B,UAAU,EAAE,SAAS,CAAC,MAAM;AAC5B,EAAA,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,UAAU;AAChC,EAAA,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC,UAAU;EACnC,IAAI,EAAE,SAAS,CAAC,MAAM;EACtB,gBAAgB,EAAE,SAAS,CAAC,IAAI;EAChC,QAAQ,EAAE,SAAS,CAAC,IAAI;EACxB,SAAS,EAAE,SAAS,CAAC,IAAI;EACzB,UAAU,EAAE,SAAS,CAAC,IAAI;EAC1B,QAAQ,EAAE,SAAS,CAAC,MAAM;EAC1B,UAAU,EAAE,SAAS,CAAC,OAAO;EAC7B,WAAW,EAAE,SAAS,CAAC,IAAI;AAC3B;EACA,eAAe,EAAE,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC;AACpD;EACA,aAAa,EAAE,SAAS,CAAC,IAAI;EAC7B,UAAU,EAAE,SAAS,CAAC;AACxB,CAAC;;;;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mui-universal-table",
3
- "version": "2.1.20",
3
+ "version": "2.1.21",
4
4
  "description": "A universal table component built with Material UI for React applications",
5
5
  "keywords": [
6
6
  "react",
@@ -43,6 +43,7 @@
43
43
  "lint:fix": "eslint src --fix",
44
44
  "test:unit": "npm test -- --runInBand",
45
45
  "test:smoke": "npm run build && node test/smoke-test.mjs",
46
+ "test:consumer": "npm run build && node test/consumer-build-test.mjs",
46
47
  "test:types": "tsc --noEmit --project tsconfig.test.json"
47
48
  },
48
49
  "peerDependencies": {