@xyo-network/react-payload-table 2.77.2 → 2.78.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/index.cjs +591 -1
- package/dist/browser/index.cjs.map +1 -1
- package/dist/browser/index.js +589 -1
- package/dist/browser/index.js.map +1 -1
- package/dist/neutral/index.cjs +591 -1
- package/dist/neutral/index.cjs.map +1 -1
- package/dist/neutral/index.js +589 -1
- package/dist/neutral/index.js.map +1 -1
- package/dist/node/index.cjs +612 -1
- package/dist/node/index.cjs.map +1 -1
- package/dist/node/index.js +597 -1
- package/dist/node/index.js.map +1 -1
- package/package.json +20 -20
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/DynamicTable/DynamicTableRow.tsx","../../src/components/DynamicTable/PayloadDynamicTableColumnConfig.ts","../../src/components/DynamicTable/Table.tsx","../../src/components/Table/PayloadTableColumnConfig.ts","../../src/components/Table/Table.tsx","../../src/components/Table/TableBody.tsx","../../src/components/Table/TableRow.tsx","../../src/components/Table/TableFooter.tsx","../../src/components/Table/TablePagination.tsx","../../src/components/Table/TableHead.tsx","../../src/components/Table/TableRowNoData.tsx"],"sourcesContent":["import {\n CheckCircleOutlineRounded as CheckCircleOutlineRoundedIcon,\n ErrorOutlineRounded as ErrorOutlineRoundedIcon,\n WarningAmberRounded as WarningAmberRoundedIcon,\n} from '@mui/icons-material'\nimport { AvatarProps, TableCell, TableCellProps, TableRow, TableRowProps, Typography } from '@mui/material'\nimport { usePromise } from '@xylabs/react-promise'\nimport { useBreakpoint } from '@xylabs/react-shared'\nimport { PayloadHasher } from '@xyo-network/hash'\nimport { Payload } from '@xyo-network/payload-model'\nimport { PayloadValidator } from '@xyo-network/payload-validator'\nimport { useNetwork } from '@xyo-network/react-network'\nimport { PayloadRenderProps } from '@xyo-network/react-payload-plugin'\nimport { usePayloadRenderPluginResolver } from '@xyo-network/react-payload-plugin-resolver'\nimport { HashTableCell, HashTableCellProps, usePayloadHash } from '@xyo-network/react-shared'\nimport { ComponentType } from 'react'\n\nimport {\n PayloadDynamicTableColumnConfig,\n payloadDynamicTableColumnConfigDefaults,\n PayloadDynamicTableColumnSlug,\n} from './PayloadDynamicTableColumnConfig'\n\nexport interface PayloadDynamicTableRowProps extends TableRowProps {\n archive?: string\n columns?: PayloadDynamicTableColumnConfig\n exploreDomain?: string\n network?: string\n payload?: Payload & { sources?: string[] }\n}\n\nexport const PayloadDynamicTableRow: React.FC<PayloadDynamicTableRowProps> = ({\n archive,\n columns = payloadDynamicTableColumnConfigDefaults(),\n exploreDomain,\n network: networkProp,\n payload,\n ...props\n}) => {\n const breakPoint = useBreakpoint()\n const payloadHash = usePayloadHash(payload)\n const { network } = useNetwork()\n const { resolver } = usePayloadRenderPluginResolver()\n const [validationErrors = []] = usePromise(async () => (payload ? await new PayloadValidator(payload).validate() : undefined), [payload])\n const isValid = validationErrors.length === 0\n const payloadFieldCount = payload ? Object.keys(PayloadHasher.hashFields(payload)).length : 0\n const hash: React.FC<HashTableCellProps> = (props) => (\n <HashTableCell\n key=\"hash\"\n align=\"left\"\n archive={archive}\n value={payloadHash}\n dataType=\"payload\"\n exploreDomain={exploreDomain}\n network={networkProp ?? network?.slug}\n {...props}\n />\n )\n\n const schema: React.FC<TableCellProps> = (props) => (\n <TableCell key=\"payloads\" align=\"left\" {...props}>\n <Typography fontFamily=\"monospace\" variant=\"body2\" noWrap>\n {payload?.schema}\n </Typography>\n </TableCell>\n )\n\n const details: React.FC<TableCellProps> = (props) => (\n <TableCell key=\"payloads\" align=\"left\" {...props}>\n <Typography fontFamily=\"monospace\" variant=\"body2\" noWrap>\n {payloadFieldCount}\n </Typography>\n </TableCell>\n )\n\n const render: React.FC<TableCellProps> = (props) => {\n const Render: ComponentType<PayloadRenderProps & TableCellProps> | undefined =\n payload ? resolver?.resolve(payload)?.components.table.cell : undefined\n return Render ? <Render payload={payload} {...props} /> : <TableCell key=\"payloads\" align=\"left\" {...props}></TableCell>\n }\n\n const icon: React.FC<TableCellProps> = (props) => {\n const Avatar: ComponentType<PayloadRenderProps & AvatarProps> | undefined =\n payload ? resolver?.resolve(payload)?.components.avatar.image : undefined\n\n return (\n <TableCell key=\"payloads\" align=\"left\" {...props}>\n {Avatar ?\n <Avatar payload={payload} />\n : null}\n </TableCell>\n )\n }\n\n const valid: React.FC<TableCellProps> = (props) => (\n <TableCell key=\"valid\" align=\"center\" {...props}>\n {isValid === undefined && payload != undefined ?\n <WarningAmberRoundedIcon fontSize=\"small\" color=\"warning\" />\n : isValid === true ?\n <CheckCircleOutlineRoundedIcon fontSize=\"small\" color=\"success\" />\n : isValid === false ?\n <ErrorOutlineRoundedIcon color=\"error\" fontSize=\"small\" />\n //nbsp to keep row height consistent even when no data is provided for the row\n : <Typography> </Typography>}\n </TableCell>\n )\n\n const tableCells: Record<PayloadDynamicTableColumnSlug, React.FC<TableCellProps>> = {\n details,\n hash,\n icon,\n render,\n schema,\n valid,\n }\n\n return breakPoint ?\n <TableRow style={{ maxWidth: '100vw' }} {...props}>\n {columns[breakPoint]?.map((column) => {\n return column.slug ? tableCells[column.slug]({}) : null\n })}\n </TableRow>\n : null\n}\n","export type PayloadDynamicTableColumnSlug = 'hash' | 'schema' | 'valid' | 'details' | 'render' | 'icon'\n\nexport interface PayloadDynamicTableColumnHeadData {\n alignment?: 'left' | 'center' | 'right'\n name?: string\n slug?: 'hash' | 'schema' | 'valid' | 'details' | 'render' | 'icon'\n width?: string | number\n}\n\nexport interface PayloadDynamicTableColumnConfig {\n xs?: PayloadDynamicTableColumnHeadData[]\n // eslint-disable-next-line @typescript-eslint/member-ordering\n sm?: PayloadDynamicTableColumnHeadData[]\n // eslint-disable-next-line @typescript-eslint/member-ordering\n md?: PayloadDynamicTableColumnHeadData[]\n // eslint-disable-next-line @typescript-eslint/member-ordering\n lg?: PayloadDynamicTableColumnHeadData[]\n xl?: PayloadDynamicTableColumnHeadData[]\n}\n\nexport const payloadDynamicTableColumnConfigDefaults = (): PayloadDynamicTableColumnConfig => {\n const xs: PayloadDynamicTableColumnHeadData[] = [\n { alignment: 'left', name: 'Hash', slug: 'hash', width: '100%' },\n { alignment: 'left', name: 'Schema', slug: 'schema', width: '50px' },\n { alignment: 'left', name: 'Valid', slug: 'valid', width: '50px' },\n ]\n const sm: PayloadDynamicTableColumnHeadData[] = [\n { alignment: 'left', name: 'Icon', slug: 'icon', width: '50px' },\n { alignment: 'left', name: 'Hash', slug: 'hash', width: '100%' },\n { alignment: 'left', name: 'Schema', slug: 'schema', width: '50px' },\n { alignment: 'left', name: 'Valid', slug: 'valid', width: '50px' },\n ]\n const md: PayloadDynamicTableColumnHeadData[] = [\n { alignment: 'left', name: 'Icon', slug: 'icon', width: '50px' },\n { alignment: 'left', name: 'Hash', slug: 'hash', width: '100%' },\n { alignment: 'left', name: 'Schema', slug: 'schema', width: '50px' },\n { alignment: 'left', name: 'Valid', slug: 'valid', width: '50px' },\n ]\n const lg: PayloadDynamicTableColumnHeadData[] = [\n { alignment: 'left', name: 'Icon', slug: 'icon', width: '50px' },\n { alignment: 'left', name: 'Hash', slug: 'hash', width: '100%' },\n { alignment: 'left', name: 'Schema', slug: 'schema', width: '50px' },\n { alignment: 'left', name: 'Render', slug: 'render', width: '50px' },\n { alignment: 'left', name: 'Valid', slug: 'valid', width: '50px' },\n ]\n const xl: PayloadDynamicTableColumnHeadData[] = [\n { alignment: 'left', name: 'Icon', slug: 'icon', width: '50px' },\n { alignment: 'left', name: 'Hash', slug: 'hash', width: '100%' },\n { alignment: 'left', name: 'Schema', slug: 'schema', width: '50px' },\n { alignment: 'left', name: 'Render', slug: 'render', width: '50px' },\n { alignment: 'left', name: 'Valid', slug: 'valid', width: '50px' },\n ]\n return { lg, md, sm, xl, xs }\n}\n","import { FirstPage as FirstPageIcon, KeyboardArrowLeft, KeyboardArrowRight, LastPage as LastPageIcon } from '@mui/icons-material'\nimport {\n Alert,\n Box,\n IconButton,\n Table,\n TableBody,\n TableCell,\n TableFooter,\n TableHead,\n TablePagination,\n TableProps,\n TableRow,\n Typography,\n useTheme,\n} from '@mui/material'\nimport { useBreakpoint } from '@xylabs/react-shared'\nimport { Payload } from '@xyo-network/payload-model'\nimport { ThrownErrorBoundary } from '@xyo-network/react-error'\nimport { usePayloadHashes } from '@xyo-network/react-shared'\nimport { ReactNode, useEffect, useMemo, useState } from 'react'\n\nimport { PayloadDynamicTableRow } from './DynamicTableRow'\nimport { PayloadDynamicTableColumnConfig, payloadDynamicTableColumnConfigDefaults } from './PayloadDynamicTableColumnConfig'\n\nexport interface PayloadDynamicTableProps extends TableProps {\n archive?: string\n columns?: PayloadDynamicTableColumnConfig\n exploreDomain?: string\n onRowClick?: (value: Payload) => void\n payloads?: Payload[] | null\n rowsPerPage?: number\n}\n\ninterface TablePaginationActionsProps {\n count: number\n onPageChange: (event: React.MouseEvent<HTMLButtonElement>, newPage: number) => void\n page: number\n rowsPerPage: number\n}\n\nfunction TablePaginationActions(props: TablePaginationActionsProps) {\n const theme = useTheme()\n const { count, page, rowsPerPage, onPageChange } = props\n\n const handleFirstPageButtonClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n onPageChange(event, 0)\n }\n\n const handleBackButtonClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n onPageChange(event, page - 1)\n }\n\n const handleNextButtonClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n onPageChange(event, page + 1)\n }\n\n const handleLastPageButtonClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n onPageChange(event, Math.max(0, Math.ceil(count / rowsPerPage) - 1))\n }\n\n return (\n <Box sx={{ flexShrink: 0, ml: 2.5 }}>\n <IconButton onClick={handleFirstPageButtonClick} disabled={page === 0} aria-label=\"first page\">\n {theme.direction === 'rtl' ?\n <LastPageIcon />\n : <FirstPageIcon />}\n </IconButton>\n <IconButton onClick={handleBackButtonClick} disabled={page === 0} aria-label=\"previous page\">\n {theme.direction === 'rtl' ?\n <KeyboardArrowRight />\n : <KeyboardArrowLeft />}\n </IconButton>\n <IconButton onClick={handleNextButtonClick} disabled={page >= Math.ceil(count / rowsPerPage) - 1} aria-label=\"next page\">\n {theme.direction === 'rtl' ?\n <KeyboardArrowLeft />\n : <KeyboardArrowRight />}\n </IconButton>\n <IconButton onClick={handleLastPageButtonClick} disabled={page >= Math.ceil(count / rowsPerPage) - 1} aria-label=\"last page\">\n {theme.direction === 'rtl' ?\n <FirstPageIcon />\n : <LastPageIcon />}\n </IconButton>\n </Box>\n )\n}\n\nexport const PayloadDynamicTable: React.FC<PayloadDynamicTableProps> = ({\n archive,\n children,\n columns = payloadDynamicTableColumnConfigDefaults(),\n exploreDomain,\n onRowClick,\n rowsPerPage: rowsPerPageProp = 10,\n payloads,\n ...props\n}) => {\n const breakPoint = useBreakpoint()\n const [page, setPage] = useState(0)\n const [rowsPerPage, setRowsPerPage] = useState(rowsPerPageProp)\n const payloadCount = payloads ? payloads.length : 0\n // Avoid a layout jump when reaching the last page with empty rows.\n const emptyRows = page > 0 ? Math.max(0, (1 + page) * rowsPerPage - payloadCount) : 0\n\n const pagedPayloads = useMemo(() => payloads?.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage), [payloads, page, rowsPerPage])\n\n const payloadPairs = usePayloadHashes(pagedPayloads)\n\n useEffect(() => {\n setRowsPerPage(rowsPerPageProp)\n }, [rowsPerPageProp])\n\n const handleChangePage = (event: React.MouseEvent<HTMLButtonElement> | null, newPage: number) => {\n setPage(newPage)\n }\n\n const handleChangeRowsPerPage = (event: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => {\n setRowsPerPage(Number.parseInt(event.target.value, 10))\n setPage(0)\n }\n\n return breakPoint ?\n <Table stickyHeader {...props}>\n <TableHead>\n <TableRow>\n {columns[breakPoint]?.map((column, index) => {\n return (\n <TableCell key={index} align={column.alignment ?? 'left'} width={column.width}>\n <Typography variant=\"body2\" noWrap>\n {column.name}\n </Typography>\n </TableCell>\n )\n })}\n </TableRow>\n </TableHead>\n <TableBody sx={{ overflowY: 'scroll ' }}>\n {payloadPairs?.map(([payload, hash], index) => {\n return (\n <ThrownErrorBoundary\n boundaryName=\"PayloadTableBody\"\n key={`${hash}-${index}`}\n errorComponent={(e) => (\n <Alert severity=\"error\">\n Error Loading Payload: <Typography fontWeight=\"bold\">{e.message}</Typography>\n </Alert>\n )}\n >\n <PayloadDynamicTableRow\n archive={archive}\n onClick={\n onRowClick ?\n () => {\n onRowClick(payload)\n }\n : undefined\n }\n exploreDomain={exploreDomain}\n payload={payload}\n />\n </ThrownErrorBoundary>\n )\n })}\n {children}\n {emptyRows ? (Array.from({ length: emptyRows }).fill(<PayloadDynamicTableRow />) as ReactNode[]) : null}\n </TableBody>\n <TableFooter>\n <TableRow>\n <TablePagination\n rowsPerPageOptions={[5, 10, 25, { label: 'All', value: -1 }]}\n colSpan={5}\n count={payloadCount}\n rowsPerPage={rowsPerPage}\n page={page}\n SelectProps={{\n inputProps: {\n 'aria-label': 'rows per page',\n },\n native: true,\n }}\n onPageChange={handleChangePage}\n onRowsPerPageChange={handleChangeRowsPerPage}\n ActionsComponent={TablePaginationActions}\n />\n </TableRow>\n </TableFooter>\n </Table>\n : null\n}\n","export type PayloadTableColumnSlug = 'hash' | 'schema' | 'valid'\n\nexport interface PayloadTableColumnConfig<T = PayloadTableColumnSlug> {\n xs?: T[]\n // eslint-disable-next-line @typescript-eslint/member-ordering\n sm?: T[]\n // eslint-disable-next-line @typescript-eslint/member-ordering\n md?: T[]\n // eslint-disable-next-line @typescript-eslint/member-ordering\n lg?: T[]\n xl?: T[]\n}\n\nexport const payloadColumnNames: Record<PayloadTableColumnSlug, string> = {\n hash: 'Hash',\n schema: 'Schema',\n valid: 'Valid',\n}\n\nexport const payloadTableColumnConfigDefaults = (): PayloadTableColumnConfig => {\n const xs: PayloadTableColumnSlug[] = ['hash', 'schema', 'valid']\n const sm: PayloadTableColumnSlug[] = ['hash', 'schema', 'valid']\n const md: PayloadTableColumnSlug[] = ['hash', 'schema', 'valid']\n const lg: PayloadTableColumnSlug[] = ['hash', 'schema', 'valid']\n const xl: PayloadTableColumnSlug[] = ['hash', 'schema', 'valid']\n return { lg, md, sm, xl, xs }\n}\n","import { Hash } from '@xylabs/hex'\nimport { Payload } from '@xyo-network/payload-model'\nimport { TableEx, TableExProps } from '@xyo-network/react-table'\nimport { ComponentType, forwardRef, useEffect, useMemo, useState } from 'react'\n\nimport { PayloadTableColumnConfig } from './PayloadTableColumnConfig'\nimport { PayloadTableBody } from './TableBody'\nimport { PayloadTableFooter } from './TableFooter'\nimport { PayloadTableHead } from './TableHead'\nimport { TableRowNoData } from './TableRowNoData'\nimport { PayloadTableBodyProps, PayloadTableFooterProps, PayloadTableHeadProps } from './types'\n\nexport interface PayloadTableProps extends TableExProps {\n PayloadTableBodyComponent?: ComponentType<PayloadTableBodyProps>\n PayloadTableFooterComponent?: ComponentType<PayloadTableFooterProps>\n PayloadTableHeadComponent?: ComponentType<PayloadTableHeadProps>\n archive?: string\n columns?: PayloadTableColumnConfig\n /** Total number of payloads passed */\n count?: number\n exploreDomain?: string\n /** External trigger to fetch more payloads */\n fetchMorePayloads?: () => void\n loading?: boolean\n /** set number of schema parts to display starting from the end */\n maxSchemaDepth?: number\n onHashClick?: (value: Hash) => void\n onRowClick?: (value: Payload) => void\n payloads?: Payload[] | null\n rowsPerPage?: number\n}\n\nexport const PayloadTableWithRef = forwardRef<HTMLTableElement, PayloadTableProps>(\n (\n {\n exploreDomain,\n archive,\n onHashClick,\n onRowClick,\n fetchMorePayloads,\n rowsPerPage: rowsPerPageProp = 25,\n payloads,\n columns,\n PayloadTableHeadComponent = PayloadTableHead,\n PayloadTableBodyComponent = PayloadTableBody,\n PayloadTableFooterComponent = PayloadTableFooter,\n maxSchemaDepth,\n count = 0,\n loading = false,\n variant = 'scrollable',\n ...props\n },\n ref,\n ) => {\n const [page, setPage] = useState(0)\n const [rowsPerPage, setRowsPerPage] = useState(rowsPerPageProp)\n const [visiblePayloads, setVisiblePayloads] = useState<Payload[]>([])\n\n // Avoid a layout jump when reaching the last page with empty rows.\n const emptyRows = page > 0 ? Math.max(0, (1 + page) * rowsPerPage - count || 0) : 0\n\n useEffect(() => {\n setRowsPerPage(rowsPerPageProp)\n }, [rowsPerPageProp])\n\n // React to various prop changes to derive new visible payloads\n // count is needed to show initial payloads added async to the same payloads reference\n useEffect(() => {\n if (payloads) {\n setVisiblePayloads(payloads.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage))\n }\n }, [count, page, payloads, rowsPerPage])\n\n // If the payload reference changes, assume we have a new list and reset current page\n useEffect(() => {\n setPage(0)\n }, [payloads])\n\n const handleAdditionalPayloads = () => {\n if (fetchMorePayloads && payloads) {\n const buffer = rowsPerPage * 2\n const lastVisiblePayload = visiblePayloads?.at(-1)\n if (lastVisiblePayload) {\n const lastVisibleIndex = payloads?.indexOf(lastVisiblePayload)\n if (lastVisibleIndex !== undefined && payloads.length - (lastVisibleIndex + 1) <= buffer) {\n fetchMorePayloads()\n }\n }\n }\n }\n\n const handleChangePage = (_event: React.MouseEvent<HTMLButtonElement> | null, newPage: number) => {\n handleAdditionalPayloads()\n setPage(newPage)\n }\n\n const handleChangeRowsPerPage = (event: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => {\n setRowsPerPage(Number.parseInt(event.target.value, 10))\n setPage(0)\n }\n\n const noResults = useMemo(() => {\n return !loading && (!visiblePayloads || visiblePayloads.length === 0)\n }, [loading, visiblePayloads])\n\n return (\n <TableEx variant={variant} ref={ref} {...props}>\n <PayloadTableHeadComponent columns={columns} />\n <PayloadTableBodyComponent\n payloads={visiblePayloads}\n exploreDomain={exploreDomain}\n archive={archive}\n maxSchemaDepth={maxSchemaDepth}\n onRowClick={onRowClick}\n onHashClick={onHashClick}\n emptyRows={emptyRows}\n noResults={noResults}\n NoResultRowComponent={TableRowNoData}\n />\n <PayloadTableFooterComponent\n count={count}\n variant={variant}\n rowsPerPage={rowsPerPage}\n handleChangePage={handleChangePage}\n handleChangeRowsPerPage={handleChangeRowsPerPage}\n fetchMorePayloads={fetchMorePayloads}\n loading={loading}\n page={page}\n />\n </TableEx>\n )\n },\n)\n\nPayloadTableWithRef.displayName = 'PayloadTable'\n\nexport const PayloadTable = PayloadTableWithRef\n","import { Alert, TableBody, Typography } from '@mui/material'\nimport { ThrownErrorBoundary } from '@xyo-network/react-error'\nimport { usePayloadHashes } from '@xyo-network/react-shared'\nimport { ReactNode } from 'react'\n\nimport { PayloadTableRow } from './TableRow'\nimport { PayloadTableBodyProps } from './types'\n\nexport const PayloadTableBody: React.FC<PayloadTableBodyProps> = ({\n children,\n exploreDomain,\n payloads,\n archive,\n maxSchemaDepth,\n onHashClick,\n onRowClick,\n emptyRows,\n noResults,\n NoResultRowComponent,\n ...props\n}) => {\n const payloadPairs = usePayloadHashes(payloads)\n\n return (\n <TableBody {...props}>\n {noResults && NoResultRowComponent ?\n <NoResultRowComponent />\n : null}\n {payloadPairs?.map(([payload, hash], index) => {\n return (\n <ThrownErrorBoundary\n boundaryName=\"PayloadTableBody\"\n key={`${hash}-${index}`}\n errorComponent={(e) => (\n <Alert severity=\"error\">\n Error Loading Payload: <Typography fontWeight=\"bold\">{e.message}</Typography>\n </Alert>\n )}\n >\n <PayloadTableRow\n maxSchemaDepth={maxSchemaDepth}\n archive={archive}\n onClick={\n onRowClick ?\n () => {\n onRowClick(payload)\n }\n : undefined\n }\n onHashClick={onHashClick}\n exploreDomain={exploreDomain}\n payload={payload}\n />\n </ThrownErrorBoundary>\n )\n })}\n {children}\n {emptyRows ? (Array.from({ length: emptyRows }).fill(<PayloadTableRow />) as ReactNode[]) : null}\n </TableBody>\n )\n}\n","import {\n CheckCircleOutlineRounded as CheckCircleOutlineRoundedIcon,\n ErrorOutlineRounded as ErrorOutlineRoundedIcon,\n WarningAmberRounded as WarningAmberRoundedIcon,\n} from '@mui/icons-material'\nimport { alpha, TableCell, TableCellProps, TableRow, TableRowProps, Typography } from '@mui/material'\nimport { Hash } from '@xylabs/hex'\nimport { usePromise } from '@xylabs/react-promise'\nimport { useBreakpoint } from '@xylabs/react-shared'\nimport { Payload } from '@xyo-network/payload-model'\nimport { PayloadValidator } from '@xyo-network/payload-validator'\nimport { useNetwork } from '@xyo-network/react-network'\nimport { HashTableCell, usePayloadHash } from '@xyo-network/react-shared'\n\nimport { PayloadTableColumnConfig, payloadTableColumnConfigDefaults, PayloadTableColumnSlug } from './PayloadTableColumnConfig'\n\nexport interface PayloadTableRowProps extends TableRowProps {\n archive?: string\n columns?: PayloadTableColumnConfig\n exploreDomain?: string\n maxSchemaDepth?: number\n network?: string\n onHashClick?: (value: Hash) => void\n payload?: Payload\n}\n\nexport const PayloadTableRow: React.FC<PayloadTableRowProps> = ({\n archive,\n columns = payloadTableColumnConfigDefaults(),\n exploreDomain,\n maxSchemaDepth,\n network: networkProp,\n onHashClick,\n payload,\n ...props\n}) => {\n const breakPoint = useBreakpoint()\n const payloadHash = usePayloadHash(payload)\n const { network } = useNetwork()\n const [errors = []] = usePromise(async () => (payload ? await new PayloadValidator(payload).validate() : undefined), [payload])\n const isValid = errors.length === 0\n\n const hash: React.FC<TableCellProps> = (props) => (\n <HashTableCell\n key=\"hash\"\n archive={archive}\n width=\"100%\"\n value={payloadHash}\n onHashClick={onHashClick}\n dataType=\"payload\"\n exploreDomain={exploreDomain}\n network={networkProp ?? network?.slug}\n {...props}\n />\n )\n\n const reduceSchemaDepth = (schema?: string, maxSchemaDepth?: number) => {\n if (maxSchemaDepth) {\n const parts = schema?.split('.') ?? []\n const partsToRemove = parts.length - maxSchemaDepth > 0 ? parts.length - maxSchemaDepth : 0\n if (partsToRemove > 0) {\n return (\n <>\n <>…</>\n {\n // eslint-disable-next-line unicorn/no-array-reduce\n `${parts.slice(partsToRemove).reduce((previousValue, part) => `${previousValue}.${part}`)}`\n }\n </>\n )\n }\n }\n return schema\n }\n\n const schema: React.FC<TableCellProps> = (props) => (\n <TableCell title={payload?.schema} key=\"payloads\" align=\"center\" {...props}>\n <Typography fontFamily=\"monospace\" variant=\"body2\" noWrap>\n {reduceSchemaDepth(payload?.schema, maxSchemaDepth)}\n </Typography>\n </TableCell>\n )\n\n const valid: React.FC<TableCellProps> = (props) => (\n <TableCell key=\"valid\" align=\"center\" {...props}>\n {isValid === undefined && payload != undefined ?\n <WarningAmberRoundedIcon fontSize=\"small\" color=\"warning\" />\n : isValid === true ?\n <CheckCircleOutlineRoundedIcon fontSize=\"small\" color=\"success\" />\n : isValid === false ?\n <ErrorOutlineRoundedIcon color=\"error\" fontSize=\"small\" />\n //to keep row height consistent when no data provided, may need fix later\n : <ErrorOutlineRoundedIcon sx={{ color: alpha('#fff', 0) }} fontSize=\"small\" />}\n </TableCell>\n )\n\n const tableCells: Record<PayloadTableColumnSlug, React.FC<TableCellProps>> = {\n hash,\n schema,\n valid,\n }\n\n return breakPoint ?\n <TableRow style={{ maxWidth: '100vw' }} {...props}>\n {columns[breakPoint]?.map((column) => {\n return tableCells[column]({})\n })}\n </TableRow>\n : null\n}\n","import { styled, TablePagination, TableRow } from '@mui/material'\nimport { TableFooterEx } from '@xyo-network/react-table'\n\nimport { TablePaginationActions } from './TablePagination'\nimport { PayloadTableFooterProps } from './types'\n\nexport const PayloadTableFooter: React.FC<PayloadTableFooterProps> = ({\n count,\n variant,\n page,\n rowsPerPage,\n handleChangePage = () => {},\n handleChangeRowsPerPage = () => {},\n fetchMorePayloads,\n loading,\n}) => (\n <TableFooterEx variant={variant}>\n <TableRow>\n <StyledTablePagination\n rowsPerPageOptions={[5, 10, 25, { label: 'All', value: -1 }]}\n count={count ?? 0}\n rowsPerPage={rowsPerPage ?? 10}\n page={page ?? 0}\n SelectProps={{\n inputProps: {\n 'aria-label': 'rows per page',\n },\n native: true,\n }}\n onPageChange={handleChangePage}\n onRowsPerPageChange={handleChangeRowsPerPage}\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ActionsComponent={(props: any) => <TablePaginationActions enableNextPage={!!fetchMorePayloads} loading={loading} {...props} />}\n />\n </TableRow>\n </TableFooterEx>\n)\n\nconst StyledTablePagination = styled(TablePagination)(({ theme }) => ({\n '& > .MuiToolbar-root': {\n paddingLeft: theme.spacing(1),\n },\n borderTop: '1px solid',\n borderTopColor: theme.palette.divider,\n}))\n","import { FirstPage as FirstPageIcon, KeyboardArrowLeft, KeyboardArrowRight, LastPage as LastPageIcon } from '@mui/icons-material'\nimport { Box, CircularProgress, IconButton, useTheme } from '@mui/material'\nimport { useEvent } from '@xyo-network/react-event'\n\nimport { PaginationNouns } from './types'\n\nexport interface TablePaginationActionsProps {\n count: number\n enableNextPage?: boolean\n loading?: boolean\n onPageChange: (event: React.MouseEvent<HTMLButtonElement>, newPage: number) => void\n page: number\n rowsPerPage: number\n}\n\nexport function TablePaginationActions({ count, enableNextPage, loading, onPageChange, page, rowsPerPage }: TablePaginationActionsProps) {\n const theme = useTheme()\n const [paginationRef, paginationDispatch] = useEvent<HTMLButtonElement, PaginationNouns>()\n\n const handleFirstPageButtonClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n paginationDispatch('firstPage', 'click', 'true')\n onPageChange(event, 0)\n }\n\n const handleBackButtonClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n paginationDispatch('previousPage', 'click', (page - 1)?.toString())\n onPageChange(event, page - 1)\n }\n\n const handleNextButtonClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n paginationDispatch('nextPage', 'click', (page + 1)?.toString())\n onPageChange(event, page + 1)\n }\n\n const handleLastPageButtonClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n paginationDispatch('lastPage', 'click', 'true')\n onPageChange(event, Math.max(0, Math.ceil(count / rowsPerPage) - 1))\n }\n\n return (\n <>\n {loading ?\n <CircularProgress size={'small'} sx={{ height: theme.spacing(2), position: 'absolute', width: theme.spacing(2) }} />\n : null}\n <Box sx={{ flexShrink: 0, ml: 2.5 }}>\n <IconButton onClick={handleFirstPageButtonClick} disabled={page === 0} aria-label=\"first page\">\n {theme.direction === 'rtl' ?\n <LastPageIcon />\n : <FirstPageIcon />}\n </IconButton>\n <IconButton ref={paginationRef} onClick={handleBackButtonClick} disabled={page === 0} aria-label=\"previous page\">\n {theme.direction === 'rtl' ?\n <KeyboardArrowRight />\n : <KeyboardArrowLeft />}\n </IconButton>\n <IconButton\n ref={paginationRef}\n onClick={handleNextButtonClick}\n disabled={!enableNextPage && page >= Math.ceil(count / rowsPerPage) - 1}\n aria-label=\"next page\"\n >\n {theme.direction === 'rtl' ?\n <KeyboardArrowLeft />\n : <KeyboardArrowRight />}\n </IconButton>\n <IconButton onClick={handleLastPageButtonClick} disabled={page >= Math.ceil(count / rowsPerPage) - 1} aria-label=\"last page\">\n {theme.direction === 'rtl' ?\n <FirstPageIcon />\n : <LastPageIcon />}\n </IconButton>\n </Box>\n </>\n )\n}\n","import { TableCell, TableHead, TableRow, Typography } from '@mui/material'\nimport { useBreakpoint } from '@xylabs/react-shared'\n\nimport { payloadColumnNames, payloadTableColumnConfigDefaults } from './PayloadTableColumnConfig'\nimport { PayloadTableHeadProps } from './types'\n\nexport const PayloadTableHead: React.FC<PayloadTableHeadProps> = ({ columns = payloadTableColumnConfigDefaults(), ...props }) => {\n const breakPoint = useBreakpoint()\n return (\n <TableHead {...props}>\n <TableRow>\n {breakPoint && columns ?\n columns[breakPoint]?.map((column, index) => {\n return (\n <TableCell key={index} width={index === 0 ? '100%' : undefined} align={index === 0 ? 'left' : 'center'}>\n <Typography variant=\"body2\" noWrap>\n {payloadColumnNames[column]}\n </Typography>\n </TableCell>\n )\n })\n : null}\n </TableRow>\n </TableHead>\n )\n}\n","import { styled, TableCell, TableRow, TableRowProps, Typography, TypographyProps } from '@mui/material'\n\nexport interface TableRowNoDataProps extends TableRowProps {\n additionalCells?: number\n hideBorder?: boolean\n typographyProps?: TypographyProps\n}\n\nexport const TableRowNoData: React.FC<TableRowNoDataProps> = ({ additionalCells, hideBorder = false, typographyProps, ...props }) => {\n return (\n <TableRow {...props}>\n <StyledTableCell hideBorder={hideBorder}>\n <Typography variant=\"body2\" {...typographyProps}>\n No Data To Display...\n </Typography>\n </StyledTableCell>\n {additionalCells ?\n Array.from({ length: additionalCells })\n .fill(null)\n .map((_fill, index) => <StyledTableCell key={index} hideBorder={hideBorder} />)\n : null}\n </TableRow>\n )\n}\n\ninterface StyledTableCellProps {\n hideBorder?: boolean\n}\n\nconst StyledTableCell = styled(TableCell, {\n name: 'StyledTableCell',\n shouldForwardProp: (prop: string) => prop !== 'hideBorder',\n})<StyledTableCellProps>(({ hideBorder }) => ({\n ...(hideBorder && { border: 'none' }),\n}))\n"],"mappings":"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","names":["CheckCircleOutlineRoundedIcon","ErrorOutlineRoundedIcon","WarningAmberRoundedIcon","TableCell","TableRow","Typography","usePromise","useBreakpoint","PayloadHasher","PayloadValidator","useNetwork","usePayloadRenderPluginResolver","HashTableCell","usePayloadHash","payloadDynamicTableColumnConfigDefaults","jsx","PayloadDynamicTableRow","archive","columns","payloadDynamicTableColumnConfigDefaults","exploreDomain","networkProp","payload","props","breakPoint","useBreakpoint","payloadHash","usePayloadHash","network","useNetwork","resolver","usePayloadRenderPluginResolver","validationErrors","usePromise","PayloadValidator","isValid","payloadFieldCount","PayloadHasher","tableCells","TableCell","Typography","HashTableCell","Avatar","Render","WarningAmberRoundedIcon","CheckCircleOutlineRoundedIcon","ErrorOutlineRoundedIcon","TableRow","column","FirstPageIcon","KeyboardArrowLeft","KeyboardArrowRight","LastPageIcon","Alert","Box","IconButton","Table","TableBody","TableCell","TableFooter","TableHead","TablePagination","TableRow","Typography","useTheme","useBreakpoint","ThrownErrorBoundary","usePayloadHashes","useEffect","useMemo","useState","jsx","jsxs","TablePaginationActions","props","theme","useTheme","count","page","rowsPerPage","onPageChange","handleFirstPageButtonClick","event","handleBackButtonClick","handleNextButtonClick","handleLastPageButtonClick","Box","IconButton","LastPageIcon","FirstPageIcon","KeyboardArrowRight","KeyboardArrowLeft","PayloadDynamicTable","archive","children","columns","payloadDynamicTableColumnConfigDefaults","exploreDomain","onRowClick","rowsPerPageProp","payloads","breakPoint","useBreakpoint","setPage","useState","setRowsPerPage","payloadCount","emptyRows","pagedPayloads","useMemo","payloadPairs","usePayloadHashes","useEffect","handleChangePage","newPage","handleChangeRowsPerPage","Table","TableHead","TableRow","column","index","TableCell","Typography","TableBody","payload","hash","ThrownErrorBoundary","e","Alert","PayloadDynamicTableRow","TableFooter","TablePagination","payloadColumnNames","payloadTableColumnConfigDefaults","TableEx","forwardRef","useEffect","useMemo","useState","Alert","TableBody","Typography","ThrownErrorBoundary","usePayloadHashes","CheckCircleOutlineRoundedIcon","ErrorOutlineRoundedIcon","WarningAmberRoundedIcon","alpha","TableCell","TableRow","Typography","usePromise","useBreakpoint","PayloadValidator","useNetwork","HashTableCell","usePayloadHash","Fragment","jsx","jsxs","PayloadTableRow","archive","columns","payloadTableColumnConfigDefaults","exploreDomain","maxSchemaDepth","networkProp","onHashClick","payload","props","breakPoint","useBreakpoint","payloadHash","usePayloadHash","network","useNetwork","errors","usePromise","PayloadValidator","isValid","hash","HashTableCell","reduceSchemaDepth","schema","parts","partsToRemove","previousValue","part","tableCells","TableCell","Typography","WarningAmberRoundedIcon","CheckCircleOutlineRoundedIcon","ErrorOutlineRoundedIcon","alpha","TableRow","column","jsx","jsxs","PayloadTableBody","children","exploreDomain","payloads","archive","maxSchemaDepth","onHashClick","onRowClick","emptyRows","noResults","NoResultRowComponent","props","payloadPairs","usePayloadHashes","TableBody","payload","hash","index","ThrownErrorBoundary","e","Alert","Typography","PayloadTableRow","styled","TablePagination","TableRow","TableFooterEx","FirstPageIcon","KeyboardArrowLeft","KeyboardArrowRight","LastPageIcon","Box","CircularProgress","IconButton","useTheme","useEvent","Fragment","jsx","jsxs","TablePaginationActions","count","enableNextPage","loading","onPageChange","page","rowsPerPage","theme","paginationRef","paginationDispatch","handleFirstPageButtonClick","event","handleBackButtonClick","handleNextButtonClick","handleLastPageButtonClick","jsx","PayloadTableFooter","count","variant","page","rowsPerPage","handleChangePage","handleChangeRowsPerPage","fetchMorePayloads","loading","TableFooterEx","TableRow","StyledTablePagination","props","TablePaginationActions","styled","TablePagination","theme","TableCell","TableHead","TableRow","Typography","useBreakpoint","jsx","PayloadTableHead","columns","payloadTableColumnConfigDefaults","props","breakPoint","useBreakpoint","TableHead","TableRow","column","index","TableCell","Typography","payloadColumnNames","styled","TableCell","TableRow","Typography","jsx","jsxs","TableRowNoData","additionalCells","hideBorder","typographyProps","props","StyledTableCell","_fill","index","prop","jsx","jsxs","PayloadTableWithRef","forwardRef","exploreDomain","archive","onHashClick","onRowClick","fetchMorePayloads","rowsPerPageProp","payloads","columns","PayloadTableHeadComponent","PayloadTableHead","PayloadTableBodyComponent","PayloadTableBody","PayloadTableFooterComponent","PayloadTableFooter","maxSchemaDepth","count","loading","variant","props","ref","page","setPage","useState","rowsPerPage","setRowsPerPage","visiblePayloads","setVisiblePayloads","emptyRows","useEffect","handleAdditionalPayloads","buffer","lastVisiblePayload","lastVisibleIndex","handleChangePage","_event","newPage","handleChangeRowsPerPage","event","noResults","useMemo","TableEx","TableRowNoData","PayloadTable"]}
|
|
1
|
+
{"version":3,"sources":["../../src/components/DynamicTable/DynamicTableRow.tsx","../../src/components/DynamicTable/PayloadDynamicTableColumnConfig.ts","../../src/components/DynamicTable/Table.tsx","../../src/components/Table/PayloadTableColumnConfig.ts","../../src/components/Table/Table.tsx","../../src/components/Table/TableBody.tsx","../../src/components/Table/TableRow.tsx","../../src/components/Table/TableFooter.tsx","../../src/components/Table/TablePagination.tsx","../../src/components/Table/TableHead.tsx","../../src/components/Table/TableRowNoData.tsx"],"sourcesContent":["import {\n CheckCircleOutlineRounded as CheckCircleOutlineRoundedIcon,\n ErrorOutlineRounded as ErrorOutlineRoundedIcon,\n WarningAmberRounded as WarningAmberRoundedIcon,\n} from '@mui/icons-material'\nimport { AvatarProps, TableCell, TableCellProps, TableRow, TableRowProps, Typography } from '@mui/material'\nimport { usePromise } from '@xylabs/react-promise'\nimport { useBreakpoint } from '@xylabs/react-shared'\nimport { PayloadHasher } from '@xyo-network/hash'\nimport { Payload } from '@xyo-network/payload-model'\nimport { PayloadValidator } from '@xyo-network/payload-validator'\nimport { useNetwork } from '@xyo-network/react-network'\nimport { PayloadRenderProps } from '@xyo-network/react-payload-plugin'\nimport { usePayloadRenderPluginResolver } from '@xyo-network/react-payload-plugin-resolver'\nimport { HashTableCell, HashTableCellProps, usePayloadHash } from '@xyo-network/react-shared'\nimport { ComponentType } from 'react'\n\nimport {\n PayloadDynamicTableColumnConfig,\n payloadDynamicTableColumnConfigDefaults,\n PayloadDynamicTableColumnSlug,\n} from './PayloadDynamicTableColumnConfig'\n\nexport interface PayloadDynamicTableRowProps extends TableRowProps {\n archive?: string\n columns?: PayloadDynamicTableColumnConfig\n exploreDomain?: string\n network?: string\n payload?: Payload & { sources?: string[] }\n}\n\nexport const PayloadDynamicTableRow: React.FC<PayloadDynamicTableRowProps> = ({\n archive,\n columns = payloadDynamicTableColumnConfigDefaults(),\n exploreDomain,\n network: networkProp,\n payload,\n ...props\n}) => {\n const breakPoint = useBreakpoint()\n const payloadHash = usePayloadHash(payload)\n const { network } = useNetwork()\n const { resolver } = usePayloadRenderPluginResolver()\n const [validationErrors = []] = usePromise(async () => (payload ? await new PayloadValidator(payload).validate() : undefined), [payload])\n const isValid = validationErrors.length === 0\n const payloadFieldCount = payload ? Object.keys(PayloadHasher.hashFields(payload)).length : 0\n const hash: React.FC<HashTableCellProps> = (props) => (\n <HashTableCell\n key=\"hash\"\n align=\"left\"\n archive={archive}\n value={payloadHash}\n dataType=\"payload\"\n exploreDomain={exploreDomain}\n network={networkProp ?? network?.slug}\n {...props}\n />\n )\n\n const schema: React.FC<TableCellProps> = (props) => (\n <TableCell key=\"payloads\" align=\"left\" {...props}>\n <Typography fontFamily=\"monospace\" variant=\"body2\" noWrap>\n {payload?.schema}\n </Typography>\n </TableCell>\n )\n\n const details: React.FC<TableCellProps> = (props) => (\n <TableCell key=\"payloads\" align=\"left\" {...props}>\n <Typography fontFamily=\"monospace\" variant=\"body2\" noWrap>\n {payloadFieldCount}\n </Typography>\n </TableCell>\n )\n\n const render: React.FC<TableCellProps> = (props) => {\n const Render: ComponentType<PayloadRenderProps & TableCellProps> | undefined =\n payload ? resolver?.resolve(payload)?.components.table.cell : undefined\n return Render ? <Render payload={payload} {...props} /> : <TableCell key=\"payloads\" align=\"left\" {...props}></TableCell>\n }\n\n const icon: React.FC<TableCellProps> = (props) => {\n const Avatar: ComponentType<PayloadRenderProps & AvatarProps> | undefined =\n payload ? resolver?.resolve(payload)?.components.avatar.image : undefined\n\n return (\n <TableCell key=\"payloads\" align=\"left\" {...props}>\n {Avatar ?\n <Avatar payload={payload} />\n : null}\n </TableCell>\n )\n }\n\n const valid: React.FC<TableCellProps> = (props) => (\n <TableCell key=\"valid\" align=\"center\" {...props}>\n {isValid === undefined && payload != undefined ?\n <WarningAmberRoundedIcon fontSize=\"small\" color=\"warning\" />\n : isValid === true ?\n <CheckCircleOutlineRoundedIcon fontSize=\"small\" color=\"success\" />\n : isValid === false ?\n <ErrorOutlineRoundedIcon color=\"error\" fontSize=\"small\" />\n //nbsp to keep row height consistent even when no data is provided for the row\n : <Typography> </Typography>}\n </TableCell>\n )\n\n const tableCells: Record<PayloadDynamicTableColumnSlug, React.FC<TableCellProps>> = {\n details,\n hash,\n icon,\n render,\n schema,\n valid,\n }\n\n return breakPoint ?\n <TableRow style={{ maxWidth: '100vw' }} {...props}>\n {columns[breakPoint]?.map((column) => {\n return column.slug ? tableCells[column.slug]({}) : null\n })}\n </TableRow>\n : null\n}\n","export type PayloadDynamicTableColumnSlug = 'hash' | 'schema' | 'valid' | 'details' | 'render' | 'icon'\n\nexport interface PayloadDynamicTableColumnHeadData {\n alignment?: 'left' | 'center' | 'right'\n name?: string\n slug?: 'hash' | 'schema' | 'valid' | 'details' | 'render' | 'icon'\n width?: string | number\n}\n\nexport interface PayloadDynamicTableColumnConfig {\n xs?: PayloadDynamicTableColumnHeadData[]\n // eslint-disable-next-line @typescript-eslint/member-ordering\n sm?: PayloadDynamicTableColumnHeadData[]\n // eslint-disable-next-line @typescript-eslint/member-ordering\n md?: PayloadDynamicTableColumnHeadData[]\n // eslint-disable-next-line @typescript-eslint/member-ordering\n lg?: PayloadDynamicTableColumnHeadData[]\n xl?: PayloadDynamicTableColumnHeadData[]\n}\n\nexport const payloadDynamicTableColumnConfigDefaults = (): PayloadDynamicTableColumnConfig => {\n const xs: PayloadDynamicTableColumnHeadData[] = [\n { alignment: 'left', name: 'Hash', slug: 'hash', width: '100%' },\n { alignment: 'left', name: 'Schema', slug: 'schema', width: '50px' },\n { alignment: 'left', name: 'Valid', slug: 'valid', width: '50px' },\n ]\n const sm: PayloadDynamicTableColumnHeadData[] = [\n { alignment: 'left', name: 'Icon', slug: 'icon', width: '50px' },\n { alignment: 'left', name: 'Hash', slug: 'hash', width: '100%' },\n { alignment: 'left', name: 'Schema', slug: 'schema', width: '50px' },\n { alignment: 'left', name: 'Valid', slug: 'valid', width: '50px' },\n ]\n const md: PayloadDynamicTableColumnHeadData[] = [\n { alignment: 'left', name: 'Icon', slug: 'icon', width: '50px' },\n { alignment: 'left', name: 'Hash', slug: 'hash', width: '100%' },\n { alignment: 'left', name: 'Schema', slug: 'schema', width: '50px' },\n { alignment: 'left', name: 'Valid', slug: 'valid', width: '50px' },\n ]\n const lg: PayloadDynamicTableColumnHeadData[] = [\n { alignment: 'left', name: 'Icon', slug: 'icon', width: '50px' },\n { alignment: 'left', name: 'Hash', slug: 'hash', width: '100%' },\n { alignment: 'left', name: 'Schema', slug: 'schema', width: '50px' },\n { alignment: 'left', name: 'Render', slug: 'render', width: '50px' },\n { alignment: 'left', name: 'Valid', slug: 'valid', width: '50px' },\n ]\n const xl: PayloadDynamicTableColumnHeadData[] = [\n { alignment: 'left', name: 'Icon', slug: 'icon', width: '50px' },\n { alignment: 'left', name: 'Hash', slug: 'hash', width: '100%' },\n { alignment: 'left', name: 'Schema', slug: 'schema', width: '50px' },\n { alignment: 'left', name: 'Render', slug: 'render', width: '50px' },\n { alignment: 'left', name: 'Valid', slug: 'valid', width: '50px' },\n ]\n return { lg, md, sm, xl, xs }\n}\n","import { FirstPage as FirstPageIcon, KeyboardArrowLeft, KeyboardArrowRight, LastPage as LastPageIcon } from '@mui/icons-material'\nimport {\n Alert,\n Box,\n IconButton,\n Table,\n TableBody,\n TableCell,\n TableFooter,\n TableHead,\n TablePagination,\n TableProps,\n TableRow,\n Typography,\n useTheme,\n} from '@mui/material'\nimport { useBreakpoint } from '@xylabs/react-shared'\nimport { Payload } from '@xyo-network/payload-model'\nimport { ThrownErrorBoundary } from '@xyo-network/react-error'\nimport { usePayloadHashes } from '@xyo-network/react-shared'\nimport { ReactNode, useEffect, useMemo, useState } from 'react'\n\nimport { PayloadDynamicTableRow } from './DynamicTableRow'\nimport { PayloadDynamicTableColumnConfig, payloadDynamicTableColumnConfigDefaults } from './PayloadDynamicTableColumnConfig'\n\nexport interface PayloadDynamicTableProps extends TableProps {\n archive?: string\n columns?: PayloadDynamicTableColumnConfig\n exploreDomain?: string\n onRowClick?: (value: Payload) => void\n payloads?: Payload[] | null\n rowsPerPage?: number\n}\n\ninterface TablePaginationActionsProps {\n count: number\n onPageChange: (event: React.MouseEvent<HTMLButtonElement>, newPage: number) => void\n page: number\n rowsPerPage: number\n}\n\nfunction TablePaginationActions(props: TablePaginationActionsProps) {\n const theme = useTheme()\n const { count, page, rowsPerPage, onPageChange } = props\n\n const handleFirstPageButtonClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n onPageChange(event, 0)\n }\n\n const handleBackButtonClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n onPageChange(event, page - 1)\n }\n\n const handleNextButtonClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n onPageChange(event, page + 1)\n }\n\n const handleLastPageButtonClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n onPageChange(event, Math.max(0, Math.ceil(count / rowsPerPage) - 1))\n }\n\n return (\n <Box sx={{ flexShrink: 0, ml: 2.5 }}>\n <IconButton onClick={handleFirstPageButtonClick} disabled={page === 0} aria-label=\"first page\">\n {theme.direction === 'rtl' ?\n <LastPageIcon />\n : <FirstPageIcon />}\n </IconButton>\n <IconButton onClick={handleBackButtonClick} disabled={page === 0} aria-label=\"previous page\">\n {theme.direction === 'rtl' ?\n <KeyboardArrowRight />\n : <KeyboardArrowLeft />}\n </IconButton>\n <IconButton onClick={handleNextButtonClick} disabled={page >= Math.ceil(count / rowsPerPage) - 1} aria-label=\"next page\">\n {theme.direction === 'rtl' ?\n <KeyboardArrowLeft />\n : <KeyboardArrowRight />}\n </IconButton>\n <IconButton onClick={handleLastPageButtonClick} disabled={page >= Math.ceil(count / rowsPerPage) - 1} aria-label=\"last page\">\n {theme.direction === 'rtl' ?\n <FirstPageIcon />\n : <LastPageIcon />}\n </IconButton>\n </Box>\n )\n}\n\nexport const PayloadDynamicTable: React.FC<PayloadDynamicTableProps> = ({\n archive,\n children,\n columns = payloadDynamicTableColumnConfigDefaults(),\n exploreDomain,\n onRowClick,\n rowsPerPage: rowsPerPageProp = 10,\n payloads,\n ...props\n}) => {\n const breakPoint = useBreakpoint()\n const [page, setPage] = useState(0)\n const [rowsPerPage, setRowsPerPage] = useState(rowsPerPageProp)\n const payloadCount = payloads ? payloads.length : 0\n // Avoid a layout jump when reaching the last page with empty rows.\n const emptyRows = page > 0 ? Math.max(0, (1 + page) * rowsPerPage - payloadCount) : 0\n\n const pagedPayloads = useMemo(() => payloads?.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage), [payloads, page, rowsPerPage])\n\n const payloadPairs = usePayloadHashes(pagedPayloads)\n\n useEffect(() => {\n setRowsPerPage(rowsPerPageProp)\n }, [rowsPerPageProp])\n\n const handleChangePage = (event: React.MouseEvent<HTMLButtonElement> | null, newPage: number) => {\n setPage(newPage)\n }\n\n const handleChangeRowsPerPage = (event: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => {\n setRowsPerPage(Number.parseInt(event.target.value, 10))\n setPage(0)\n }\n\n return breakPoint ?\n <Table stickyHeader {...props}>\n <TableHead>\n <TableRow>\n {columns[breakPoint]?.map((column, index) => {\n return (\n <TableCell key={index} align={column.alignment ?? 'left'} width={column.width}>\n <Typography variant=\"body2\" noWrap>\n {column.name}\n </Typography>\n </TableCell>\n )\n })}\n </TableRow>\n </TableHead>\n <TableBody sx={{ overflowY: 'scroll ' }}>\n {payloadPairs?.map(([payload, hash], index) => {\n return (\n <ThrownErrorBoundary\n boundaryName=\"PayloadTableBody\"\n key={`${hash}-${index}`}\n errorComponent={(e) => (\n <Alert severity=\"error\">\n Error Loading Payload: <Typography fontWeight=\"bold\">{e.message}</Typography>\n </Alert>\n )}\n >\n <PayloadDynamicTableRow\n archive={archive}\n onClick={\n onRowClick ?\n () => {\n onRowClick(payload)\n }\n : undefined\n }\n exploreDomain={exploreDomain}\n payload={payload}\n />\n </ThrownErrorBoundary>\n )\n })}\n {children}\n {emptyRows ? (Array.from({ length: emptyRows }).fill(<PayloadDynamicTableRow />) as ReactNode[]) : null}\n </TableBody>\n <TableFooter>\n <TableRow>\n <TablePagination\n rowsPerPageOptions={[5, 10, 25, { label: 'All', value: -1 }]}\n colSpan={5}\n count={payloadCount}\n rowsPerPage={rowsPerPage}\n page={page}\n SelectProps={{\n inputProps: {\n 'aria-label': 'rows per page',\n },\n native: true,\n }}\n onPageChange={handleChangePage}\n onRowsPerPageChange={handleChangeRowsPerPage}\n ActionsComponent={TablePaginationActions}\n />\n </TableRow>\n </TableFooter>\n </Table>\n : null\n}\n","export type PayloadTableColumnSlug = 'hash' | 'schema' | 'valid'\n\nexport interface PayloadTableColumnConfig<T = PayloadTableColumnSlug> {\n xs?: T[]\n // eslint-disable-next-line @typescript-eslint/member-ordering\n sm?: T[]\n // eslint-disable-next-line @typescript-eslint/member-ordering\n md?: T[]\n // eslint-disable-next-line @typescript-eslint/member-ordering\n lg?: T[]\n xl?: T[]\n}\n\nexport const payloadColumnNames: Record<PayloadTableColumnSlug, string> = {\n hash: 'Hash',\n schema: 'Schema',\n valid: 'Valid',\n}\n\nexport const payloadTableColumnConfigDefaults = (): PayloadTableColumnConfig => {\n const xs: PayloadTableColumnSlug[] = ['hash', 'schema', 'valid']\n const sm: PayloadTableColumnSlug[] = ['hash', 'schema', 'valid']\n const md: PayloadTableColumnSlug[] = ['hash', 'schema', 'valid']\n const lg: PayloadTableColumnSlug[] = ['hash', 'schema', 'valid']\n const xl: PayloadTableColumnSlug[] = ['hash', 'schema', 'valid']\n return { lg, md, sm, xl, xs }\n}\n","import { Hash } from '@xylabs/hex'\nimport { Payload } from '@xyo-network/payload-model'\nimport { TableEx, TableExProps } from '@xyo-network/react-table'\nimport { ComponentType, forwardRef, useEffect, useMemo, useState } from 'react'\n\nimport { PayloadTableColumnConfig } from './PayloadTableColumnConfig'\nimport { PayloadTableBody } from './TableBody'\nimport { PayloadTableFooter } from './TableFooter'\nimport { PayloadTableHead } from './TableHead'\nimport { TableRowNoData } from './TableRowNoData'\nimport { PayloadTableBodyProps, PayloadTableFooterProps, PayloadTableHeadProps } from './types'\n\nexport interface PayloadTableProps extends TableExProps {\n PayloadTableBodyComponent?: ComponentType<PayloadTableBodyProps>\n PayloadTableFooterComponent?: ComponentType<PayloadTableFooterProps>\n PayloadTableHeadComponent?: ComponentType<PayloadTableHeadProps>\n archive?: string\n columns?: PayloadTableColumnConfig\n /** Total number of payloads passed */\n count?: number\n exploreDomain?: string\n /** External trigger to fetch more payloads */\n fetchMorePayloads?: () => void\n loading?: boolean\n /** set number of schema parts to display starting from the end */\n maxSchemaDepth?: number\n onHashClick?: (value: Hash) => void\n onRowClick?: (value: Payload) => void\n payloads?: Payload[] | null\n rowsPerPage?: number\n}\n\nexport const PayloadTableWithRef = forwardRef<HTMLTableElement, PayloadTableProps>(\n (\n {\n exploreDomain,\n archive,\n onHashClick,\n onRowClick,\n fetchMorePayloads,\n rowsPerPage: rowsPerPageProp = 25,\n payloads,\n columns,\n PayloadTableHeadComponent = PayloadTableHead,\n PayloadTableBodyComponent = PayloadTableBody,\n PayloadTableFooterComponent = PayloadTableFooter,\n maxSchemaDepth,\n count = 0,\n loading = false,\n variant = 'scrollable',\n ...props\n },\n ref,\n ) => {\n const [page, setPage] = useState(0)\n const [rowsPerPage, setRowsPerPage] = useState(rowsPerPageProp)\n const [visiblePayloads, setVisiblePayloads] = useState<Payload[]>([])\n\n // Avoid a layout jump when reaching the last page with empty rows.\n const emptyRows = page > 0 ? Math.max(0, (1 + page) * rowsPerPage - count || 0) : 0\n\n useEffect(() => {\n setRowsPerPage(rowsPerPageProp)\n }, [rowsPerPageProp])\n\n // React to various prop changes to derive new visible payloads\n // count is needed to show initial payloads added async to the same payloads reference\n useEffect(() => {\n if (payloads) {\n setVisiblePayloads(payloads.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage))\n }\n }, [count, page, payloads, rowsPerPage])\n\n // If the payload reference changes, assume we have a new list and reset current page\n useEffect(() => {\n setPage(0)\n }, [payloads])\n\n const handleAdditionalPayloads = () => {\n if (fetchMorePayloads && payloads) {\n const buffer = rowsPerPage * 2\n const lastVisiblePayload = visiblePayloads?.at(-1)\n if (lastVisiblePayload) {\n const lastVisibleIndex = payloads?.indexOf(lastVisiblePayload)\n if (lastVisibleIndex !== undefined && payloads.length - (lastVisibleIndex + 1) <= buffer) {\n fetchMorePayloads()\n }\n }\n }\n }\n\n const handleChangePage = (_event: React.MouseEvent<HTMLButtonElement> | null, newPage: number) => {\n handleAdditionalPayloads()\n setPage(newPage)\n }\n\n const handleChangeRowsPerPage = (event: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => {\n setRowsPerPage(Number.parseInt(event.target.value, 10))\n setPage(0)\n }\n\n const noResults = useMemo(() => {\n return !loading && (!visiblePayloads || visiblePayloads.length === 0)\n }, [loading, visiblePayloads])\n\n return (\n <TableEx variant={variant} ref={ref} {...props}>\n <PayloadTableHeadComponent columns={columns} />\n <PayloadTableBodyComponent\n payloads={visiblePayloads}\n exploreDomain={exploreDomain}\n archive={archive}\n maxSchemaDepth={maxSchemaDepth}\n onRowClick={onRowClick}\n onHashClick={onHashClick}\n emptyRows={emptyRows}\n noResults={noResults}\n NoResultRowComponent={TableRowNoData}\n />\n <PayloadTableFooterComponent\n count={count}\n variant={variant}\n rowsPerPage={rowsPerPage}\n handleChangePage={handleChangePage}\n handleChangeRowsPerPage={handleChangeRowsPerPage}\n fetchMorePayloads={fetchMorePayloads}\n loading={loading}\n page={page}\n />\n </TableEx>\n )\n },\n)\n\nPayloadTableWithRef.displayName = 'PayloadTable'\n\nexport const PayloadTable = PayloadTableWithRef\n","import { Alert, TableBody, Typography } from '@mui/material'\nimport { ThrownErrorBoundary } from '@xyo-network/react-error'\nimport { usePayloadHashes } from '@xyo-network/react-shared'\nimport { ReactNode } from 'react'\n\nimport { PayloadTableRow } from './TableRow'\nimport { PayloadTableBodyProps } from './types'\n\nexport const PayloadTableBody: React.FC<PayloadTableBodyProps> = ({\n children,\n exploreDomain,\n payloads,\n archive,\n maxSchemaDepth,\n onHashClick,\n onRowClick,\n emptyRows,\n noResults,\n NoResultRowComponent,\n ...props\n}) => {\n const payloadPairs = usePayloadHashes(payloads)\n\n return (\n <TableBody {...props}>\n {noResults && NoResultRowComponent ?\n <NoResultRowComponent />\n : null}\n {payloadPairs?.map(([payload, hash], index) => {\n return (\n <ThrownErrorBoundary\n boundaryName=\"PayloadTableBody\"\n key={`${hash}-${index}`}\n errorComponent={(e) => (\n <Alert severity=\"error\">\n Error Loading Payload: <Typography fontWeight=\"bold\">{e.message}</Typography>\n </Alert>\n )}\n >\n <PayloadTableRow\n maxSchemaDepth={maxSchemaDepth}\n archive={archive}\n onClick={\n onRowClick ?\n () => {\n onRowClick(payload)\n }\n : undefined\n }\n onHashClick={onHashClick}\n exploreDomain={exploreDomain}\n payload={payload}\n />\n </ThrownErrorBoundary>\n )\n })}\n {children}\n {emptyRows ? (Array.from({ length: emptyRows }).fill(<PayloadTableRow />) as ReactNode[]) : null}\n </TableBody>\n )\n}\n","import {\n CheckCircleOutlineRounded as CheckCircleOutlineRoundedIcon,\n ErrorOutlineRounded as ErrorOutlineRoundedIcon,\n WarningAmberRounded as WarningAmberRoundedIcon,\n} from '@mui/icons-material'\nimport { alpha, TableCell, TableCellProps, TableRow, TableRowProps, Typography } from '@mui/material'\nimport { Hash } from '@xylabs/hex'\nimport { usePromise } from '@xylabs/react-promise'\nimport { useBreakpoint } from '@xylabs/react-shared'\nimport { Payload } from '@xyo-network/payload-model'\nimport { PayloadValidator } from '@xyo-network/payload-validator'\nimport { useNetwork } from '@xyo-network/react-network'\nimport { HashTableCell, usePayloadHash } from '@xyo-network/react-shared'\n\nimport { PayloadTableColumnConfig, payloadTableColumnConfigDefaults, PayloadTableColumnSlug } from './PayloadTableColumnConfig'\n\nexport interface PayloadTableRowProps extends TableRowProps {\n archive?: string\n columns?: PayloadTableColumnConfig\n exploreDomain?: string\n maxSchemaDepth?: number\n network?: string\n onHashClick?: (value: Hash) => void\n payload?: Payload\n}\n\nexport const PayloadTableRow: React.FC<PayloadTableRowProps> = ({\n archive,\n columns = payloadTableColumnConfigDefaults(),\n exploreDomain,\n maxSchemaDepth,\n network: networkProp,\n onHashClick,\n payload,\n ...props\n}) => {\n const breakPoint = useBreakpoint()\n const payloadHash = usePayloadHash(payload)\n const { network } = useNetwork()\n const [errors = []] = usePromise(async () => (payload ? await new PayloadValidator(payload).validate() : undefined), [payload])\n const isValid = errors.length === 0\n\n const hash: React.FC<TableCellProps> = (props) => (\n <HashTableCell\n key=\"hash\"\n archive={archive}\n width=\"100%\"\n value={payloadHash}\n onHashClick={onHashClick}\n dataType=\"payload\"\n exploreDomain={exploreDomain}\n network={networkProp ?? network?.slug}\n {...props}\n />\n )\n\n const reduceSchemaDepth = (schema?: string, maxSchemaDepth?: number) => {\n if (maxSchemaDepth) {\n const parts = schema?.split('.') ?? []\n const partsToRemove = parts.length - maxSchemaDepth > 0 ? parts.length - maxSchemaDepth : 0\n if (partsToRemove > 0) {\n return (\n <>\n <>…</>\n {\n // eslint-disable-next-line unicorn/no-array-reduce\n `${parts.slice(partsToRemove).reduce((previousValue, part) => `${previousValue}.${part}`)}`\n }\n </>\n )\n }\n }\n return schema\n }\n\n const schema: React.FC<TableCellProps> = (props) => (\n <TableCell title={payload?.schema} key=\"payloads\" align=\"center\" {...props}>\n <Typography fontFamily=\"monospace\" variant=\"body2\" noWrap>\n {reduceSchemaDepth(payload?.schema, maxSchemaDepth)}\n </Typography>\n </TableCell>\n )\n\n const valid: React.FC<TableCellProps> = (props) => (\n <TableCell key=\"valid\" align=\"center\" {...props}>\n {isValid === undefined && payload != undefined ?\n <WarningAmberRoundedIcon fontSize=\"small\" color=\"warning\" />\n : isValid === true ?\n <CheckCircleOutlineRoundedIcon fontSize=\"small\" color=\"success\" />\n : isValid === false ?\n <ErrorOutlineRoundedIcon color=\"error\" fontSize=\"small\" />\n //to keep row height consistent when no data provided, may need fix later\n : <ErrorOutlineRoundedIcon sx={{ color: alpha('#fff', 0) }} fontSize=\"small\" />}\n </TableCell>\n )\n\n const tableCells: Record<PayloadTableColumnSlug, React.FC<TableCellProps>> = {\n hash,\n schema,\n valid,\n }\n\n return breakPoint ?\n <TableRow style={{ maxWidth: '100vw' }} {...props}>\n {columns[breakPoint]?.map((column) => {\n return tableCells[column]({})\n })}\n </TableRow>\n : null\n}\n","import { styled, TablePagination, TableRow } from '@mui/material'\nimport { TableFooterEx } from '@xyo-network/react-table'\n\nimport { TablePaginationActions } from './TablePagination'\nimport { PayloadTableFooterProps } from './types'\n\nexport const PayloadTableFooter: React.FC<PayloadTableFooterProps> = ({\n count,\n variant,\n page,\n rowsPerPage,\n handleChangePage = () => {},\n handleChangeRowsPerPage = () => {},\n fetchMorePayloads,\n loading,\n}) => (\n <TableFooterEx variant={variant}>\n <TableRow>\n <StyledTablePagination\n rowsPerPageOptions={[5, 10, 25, { label: 'All', value: -1 }]}\n count={count ?? 0}\n rowsPerPage={rowsPerPage ?? 10}\n page={page ?? 0}\n SelectProps={{\n inputProps: {\n 'aria-label': 'rows per page',\n },\n native: true,\n }}\n onPageChange={handleChangePage}\n onRowsPerPageChange={handleChangeRowsPerPage}\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ActionsComponent={(props: any) => <TablePaginationActions enableNextPage={!!fetchMorePayloads} loading={loading} {...props} />}\n />\n </TableRow>\n </TableFooterEx>\n)\n\nconst StyledTablePagination = styled(TablePagination)(({ theme }) => ({\n '& > .MuiToolbar-root': {\n paddingLeft: theme.spacing(1),\n },\n borderTop: '1px solid',\n borderTopColor: theme.palette.divider,\n}))\n","import { FirstPage as FirstPageIcon, KeyboardArrowLeft, KeyboardArrowRight, LastPage as LastPageIcon } from '@mui/icons-material'\nimport { Box, CircularProgress, IconButton, useTheme } from '@mui/material'\nimport { useEvent } from '@xyo-network/react-event'\n\nimport { PaginationNouns } from './types'\n\nexport interface TablePaginationActionsProps {\n count: number\n enableNextPage?: boolean\n loading?: boolean\n onPageChange: (event: React.MouseEvent<HTMLButtonElement>, newPage: number) => void\n page: number\n rowsPerPage: number\n}\n\nexport function TablePaginationActions({ count, enableNextPage, loading, onPageChange, page, rowsPerPage }: TablePaginationActionsProps) {\n const theme = useTheme()\n const [paginationRef, paginationDispatch] = useEvent<HTMLButtonElement, PaginationNouns>()\n\n const handleFirstPageButtonClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n paginationDispatch('firstPage', 'click', 'true')\n onPageChange(event, 0)\n }\n\n const handleBackButtonClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n paginationDispatch('previousPage', 'click', (page - 1)?.toString())\n onPageChange(event, page - 1)\n }\n\n const handleNextButtonClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n paginationDispatch('nextPage', 'click', (page + 1)?.toString())\n onPageChange(event, page + 1)\n }\n\n const handleLastPageButtonClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n paginationDispatch('lastPage', 'click', 'true')\n onPageChange(event, Math.max(0, Math.ceil(count / rowsPerPage) - 1))\n }\n\n return (\n <>\n {loading ?\n <CircularProgress size={'small'} sx={{ height: theme.spacing(2), position: 'absolute', width: theme.spacing(2) }} />\n : null}\n <Box sx={{ flexShrink: 0, ml: 2.5 }}>\n <IconButton onClick={handleFirstPageButtonClick} disabled={page === 0} aria-label=\"first page\">\n {theme.direction === 'rtl' ?\n <LastPageIcon />\n : <FirstPageIcon />}\n </IconButton>\n <IconButton ref={paginationRef} onClick={handleBackButtonClick} disabled={page === 0} aria-label=\"previous page\">\n {theme.direction === 'rtl' ?\n <KeyboardArrowRight />\n : <KeyboardArrowLeft />}\n </IconButton>\n <IconButton\n ref={paginationRef}\n onClick={handleNextButtonClick}\n disabled={!enableNextPage && page >= Math.ceil(count / rowsPerPage) - 1}\n aria-label=\"next page\"\n >\n {theme.direction === 'rtl' ?\n <KeyboardArrowLeft />\n : <KeyboardArrowRight />}\n </IconButton>\n <IconButton onClick={handleLastPageButtonClick} disabled={page >= Math.ceil(count / rowsPerPage) - 1} aria-label=\"last page\">\n {theme.direction === 'rtl' ?\n <FirstPageIcon />\n : <LastPageIcon />}\n </IconButton>\n </Box>\n </>\n )\n}\n","import { TableCell, TableHead, TableRow, Typography } from '@mui/material'\nimport { useBreakpoint } from '@xylabs/react-shared'\n\nimport { payloadColumnNames, payloadTableColumnConfigDefaults } from './PayloadTableColumnConfig'\nimport { PayloadTableHeadProps } from './types'\n\nexport const PayloadTableHead: React.FC<PayloadTableHeadProps> = ({ columns = payloadTableColumnConfigDefaults(), ...props }) => {\n const breakPoint = useBreakpoint()\n return (\n <TableHead {...props}>\n <TableRow>\n {breakPoint && columns ?\n columns[breakPoint]?.map((column, index) => {\n return (\n <TableCell key={index} width={index === 0 ? '100%' : undefined} align={index === 0 ? 'left' : 'center'}>\n <Typography variant=\"body2\" noWrap>\n {payloadColumnNames[column]}\n </Typography>\n </TableCell>\n )\n })\n : null}\n </TableRow>\n </TableHead>\n )\n}\n","import { styled, TableCell, TableRow, TableRowProps, Typography, TypographyProps } from '@mui/material'\n\nexport interface TableRowNoDataProps extends TableRowProps {\n additionalCells?: number\n hideBorder?: boolean\n typographyProps?: TypographyProps\n}\n\nexport const TableRowNoData: React.FC<TableRowNoDataProps> = ({ additionalCells, hideBorder = false, typographyProps, ...props }) => {\n return (\n <TableRow {...props}>\n <StyledTableCell hideBorder={hideBorder}>\n <Typography variant=\"body2\" {...typographyProps}>\n No Data To Display...\n </Typography>\n </StyledTableCell>\n {additionalCells ?\n Array.from({ length: additionalCells })\n .fill(null)\n .map((_fill, index) => <StyledTableCell key={index} hideBorder={hideBorder} />)\n : null}\n </TableRow>\n )\n}\n\ninterface StyledTableCellProps {\n hideBorder?: boolean\n}\n\nconst StyledTableCell = styled(TableCell, {\n name: 'StyledTableCell',\n shouldForwardProp: (prop: string) => prop !== 'hideBorder',\n})<StyledTableCellProps>(({ hideBorder }) => ({\n ...(hideBorder && { border: 'none' }),\n}))\n"],"mappings":"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","names":["props","TableCell","TableRow","Typography","useBreakpoint","jsx","useBreakpoint","TableRow","TableCell","Typography","useEffect","useMemo","useState","Alert","TableBody","Typography","ThrownErrorBoundary","usePayloadHashes","CheckCircleOutlineRoundedIcon","ErrorOutlineRoundedIcon","WarningAmberRoundedIcon","TableCell","TableRow","Typography","usePromise","useBreakpoint","PayloadValidator","useNetwork","HashTableCell","usePayloadHash","jsx","jsxs","useBreakpoint","usePayloadHash","useNetwork","usePromise","PayloadValidator","props","HashTableCell","schema","maxSchemaDepth","TableCell","Typography","WarningAmberRoundedIcon","CheckCircleOutlineRoundedIcon","ErrorOutlineRoundedIcon","TableRow","jsx","jsxs","usePayloadHashes","TableBody","ThrownErrorBoundary","Alert","Typography","TablePagination","TableRow","FirstPageIcon","KeyboardArrowLeft","KeyboardArrowRight","LastPageIcon","Box","IconButton","useTheme","Fragment","jsx","jsxs","TablePaginationActions","jsx","TableRow","TablePaginationActions","TablePagination","TableCell","TableHead","TableRow","Typography","useBreakpoint","jsx","useBreakpoint","TableHead","TableRow","TableCell","Typography","styled","TableCell","TableRow","Typography","jsx","jsxs","jsx","jsxs","useState","useEffect","useMemo"]}
|