@xyo-network/react-payload-table 2.64.0 → 2.64.3
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/components/DynamicTable/DynamicTableRow.js +41 -5
- package/dist/browser/components/DynamicTable/DynamicTableRow.js.map +1 -1
- package/dist/browser/components/DynamicTable/PayloadDynamicTableColumnConfig.js +2 -1
- package/dist/browser/components/DynamicTable/PayloadDynamicTableColumnConfig.js.map +1 -1
- package/dist/browser/components/DynamicTable/Table.js +129 -20
- package/dist/browser/components/DynamicTable/Table.js.map +1 -1
- package/dist/browser/components/DynamicTable/index.js +236 -3
- package/dist/browser/components/DynamicTable/index.js.map +1 -1
- package/dist/browser/components/Table/PayloadTableColumnConfig.js +3 -2
- package/dist/browser/components/Table/PayloadTableColumnConfig.js.map +1 -1
- package/dist/browser/components/Table/Table.js +259 -11
- package/dist/browser/components/Table/Table.js.map +1 -1
- package/dist/browser/components/Table/TableBody.js +93 -11
- package/dist/browser/components/Table/TableBody.js.map +1 -1
- package/dist/browser/components/Table/TableFooter.js +52 -6
- package/dist/browser/components/Table/TableFooter.js.map +1 -1
- package/dist/browser/components/Table/TableHead.js +20 -3
- package/dist/browser/components/Table/TableHead.js.map +1 -1
- package/dist/browser/components/Table/TablePagination.js +2 -1
- package/dist/browser/components/Table/TablePagination.js.map +1 -1
- package/dist/browser/components/Table/TableRow.js +15 -3
- package/dist/browser/components/Table/TableRow.js.map +1 -1
- package/dist/browser/components/Table/TableRowNoData.js +4 -3
- package/dist/browser/components/Table/TableRowNoData.js.map +1 -1
- package/dist/browser/components/Table/index.js +351 -6
- package/dist/browser/components/Table/index.js.map +1 -1
- package/dist/browser/components/Table/types/index.js +0 -4
- package/dist/browser/components/Table/types/index.js.map +1 -1
- package/dist/browser/components/index.js +586 -2
- package/dist/browser/components/index.js.map +1 -1
- package/dist/browser/index.js +586 -1
- package/dist/browser/index.js.map +1 -1
- package/dist/docs.json +116 -116
- package/package.json +18 -18
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Table/Table.tsx"],"sourcesContent":["import { 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 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 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(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 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"],"mappings":"AAuGM,SACE,KADF;AAtGN,SAAS,eAA6B;AACtC,SAAwB,YAAY,WAAW,SAAS,gBAAgB;AAGxE,SAAS,wBAAwB;AACjC,SAAS,0BAA0B;AACnC,SAAS,wBAAwB;AACjC,SAAS,sBAAsB;AAsBxB,MAAM,sBAAsB;AAAA,EACjC,CACE;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,aAAa,kBAAkB;AAAA,IAC/B;AAAA,IACA;AAAA,IACA,4BAA4B;AAAA,IAC5B,4BAA4B;AAAA,IAC5B,8BAA8B;AAAA,IAC9B;AAAA,IACA,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,UAAU;AAAA,IACV,GAAG;AAAA,EACL,GACA,QACG;AACH,UAAM,CAAC,MAAM,OAAO,IAAI,SAAS,CAAC;AAClC,UAAM,CAAC,aAAa,cAAc,IAAI,SAAS,eAAe;AAC9D,UAAM,CAAC,iBAAiB,kBAAkB,IAAI,SAAoB,CAAC,CAAC;AAGpE,UAAM,YAAY,OAAO,IAAI,KAAK,IAAI,IAAI,IAAI,QAAQ,cAAc,SAAS,CAAC,IAAI;AAElF,cAAU,MAAM;AACd,qBAAe,eAAe;AAAA,IAChC,GAAG,CAAC,eAAe,CAAC;AAIpB,cAAU,MAAM;AACd,UAAI,UAAU;AACZ,2BAAmB,SAAS,MAAM,OAAO,aAAa,OAAO,cAAc,WAAW,CAAC;AAAA,MACzF;AAAA,IACF,GAAG,CAAC,OAAO,MAAM,UAAU,WAAW,CAAC;AAGvC,cAAU,MAAM;AACd,cAAQ,CAAC;AAAA,IACX,GAAG,CAAC,QAAQ,CAAC;AAEb,UAAM,2BAA2B,MAAM;AACrC,UAAI,qBAAqB,UAAU;AACjC,cAAM,SAAS,cAAc;AAC7B,cAAM,qBAAqB,iBAAiB,GAAG,EAAE;AACjD,YAAI,oBAAoB;AACtB,gBAAM,mBAAmB,UAAU,QAAQ,kBAAkB;AAC7D,cAAI,qBAAqB,UAAa,SAAS,UAAU,mBAAmB,MAAM,QAAQ;AACxF,8BAAkB;AAAA,UACpB;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAEA,UAAM,mBAAmB,CAAC,QAAoD,YAAoB;AAChG,+BAAyB;AACzB,cAAQ,OAAO;AAAA,IACjB;AAEA,UAAM,0BAA0B,CAAC,UAAqE;AACpG,qBAAe,SAAS,MAAM,OAAO,OAAO,EAAE,CAAC;AAC/C,cAAQ,CAAC;AAAA,IACX;AAEA,UAAM,YAAY,QAAQ,MAAM;AAC9B,aAAO,CAAC,YAAY,CAAC,mBAAmB,gBAAgB,WAAW;AAAA,IACrE,GAAG,CAAC,SAAS,eAAe,CAAC;AAE7B,WACE,qBAAC,WAAQ,SAAkB,KAAW,GAAG,OACvC;AAAA,0BAAC,6BAA0B,SAAkB;AAAA,MAC7C;AAAA,QAAC;AAAA;AAAA,UACC,UAAU;AAAA,UACV;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA,sBAAsB;AAAA;AAAA,MACxB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA;AAAA,MACF;AAAA,OACF;AAAA,EAEJ;AACF;AAEA,oBAAoB,cAAc;AAE3B,MAAM,eAAe;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Table/Table.tsx","../../../../src/components/Table/TableBody.tsx","../../../../src/components/Table/TableRow.tsx","../../../../src/components/Table/PayloadTableColumnConfig.ts","../../../../src/components/Table/TableFooter.tsx","../../../../src/components/Table/TablePagination.tsx","../../../../src/components/Table/TableHead.tsx","../../../../src/components/Table/TableRowNoData.tsx"],"sourcesContent":["import { 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 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 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(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 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'\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 onRowClick,\n emptyRows,\n noResults,\n NoResultRowComponent,\n ...props\n}) => {\n const payloadPairs = usePayloadHashes(payloads)\n\n return (\n <TableBody {...props}>\n {noResults && NoResultRowComponent ? <NoResultRowComponent /> : 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 exploreDomain={exploreDomain}\n payload={payload}\n />\n </ThrownErrorBoundary>\n )\n })}\n {children}\n {(emptyRows ?? 0) > 0 && Array(emptyRows).fill(<PayloadTableRow />)}\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 { 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 payload?: Payload\n}\n\nexport const PayloadTableRow: React.FC<PayloadTableRowProps> = ({\n archive,\n columns = payloadTableColumnConfigDefaults(),\n exploreDomain,\n maxSchemaDepth,\n network: networkProp,\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 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 {`${parts.slice(partsToRemove).reduce((previousValue, part) => `${previousValue}.${part}`)}`}\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 ) : (\n //to keep row height consistent when no data provided, may need fix later\n <ErrorOutlineRoundedIcon sx={{ color: alpha('#fff', 0) }} fontSize=\"small\" />\n )}\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","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 { 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 = () => undefined,\n handleChangeRowsPerPage = () => undefined,\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 ? <CircularProgress size={'small'} sx={{ height: theme.spacing(2), position: 'absolute', width: theme.spacing(2) }} /> : null}\n <Box sx={{ flexShrink: 0, ml: 2.5 }}>\n <IconButton onClick={handleFirstPageButtonClick} disabled={page === 0} aria-label=\"first page\">\n {theme.direction === 'rtl' ? <LastPageIcon /> : <FirstPageIcon />}\n </IconButton>\n <IconButton ref={paginationRef} onClick={handleBackButtonClick} disabled={page === 0} aria-label=\"previous page\">\n {theme.direction === 'rtl' ? <KeyboardArrowRight /> : <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' ? <KeyboardArrowLeft /> : <KeyboardArrowRight />}\n </IconButton>\n <IconButton onClick={handleLastPageButtonClick} disabled={page >= Math.ceil(count / rowsPerPage) - 1} aria-label=\"last page\">\n {theme.direction === 'rtl' ? <FirstPageIcon /> : <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(additionalCells)\n .fill(undefined)\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":["Typography","props","schema","maxSchemaDepth","jsx","jsxs","Typography","TableRow","Fragment","jsx","jsxs","jsx","TableRow","TableCell","TableRow","Typography","useBreakpoint","jsx","useBreakpoint","TableRow","TableCell","Typography","styled","TableCell","TableRow","Typography","jsx","jsxs","jsx","jsxs"]}
|
|
@@ -1,9 +1,91 @@
|
|
|
1
|
-
|
|
2
|
-
import { Alert, TableBody, Typography } from "@mui/material";
|
|
1
|
+
// src/components/Table/TableBody.tsx
|
|
2
|
+
import { Alert, TableBody, Typography as Typography2 } from "@mui/material";
|
|
3
3
|
import { ThrownErrorBoundary } from "@xyo-network/react-error";
|
|
4
4
|
import { usePayloadHashes } from "@xyo-network/react-shared";
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
|
|
6
|
+
// src/components/Table/TableRow.tsx
|
|
7
|
+
import {
|
|
8
|
+
CheckCircleOutlineRounded as CheckCircleOutlineRoundedIcon,
|
|
9
|
+
ErrorOutlineRounded as ErrorOutlineRoundedIcon,
|
|
10
|
+
WarningAmberRounded as WarningAmberRoundedIcon
|
|
11
|
+
} from "@mui/icons-material";
|
|
12
|
+
import { alpha, TableCell, TableRow, Typography } from "@mui/material";
|
|
13
|
+
import { usePromise } from "@xylabs/react-promise";
|
|
14
|
+
import { useBreakpoint } from "@xylabs/react-shared";
|
|
15
|
+
import { PayloadValidator } from "@xyo-network/payload-validator";
|
|
16
|
+
import { useNetwork } from "@xyo-network/react-network";
|
|
17
|
+
import { HashTableCell, usePayloadHash } from "@xyo-network/react-shared";
|
|
18
|
+
|
|
19
|
+
// src/components/Table/PayloadTableColumnConfig.ts
|
|
20
|
+
var payloadTableColumnConfigDefaults = () => {
|
|
21
|
+
const xs = ["hash", "schema", "valid"];
|
|
22
|
+
const sm = ["hash", "schema", "valid"];
|
|
23
|
+
const md = ["hash", "schema", "valid"];
|
|
24
|
+
const lg = ["hash", "schema", "valid"];
|
|
25
|
+
const xl = ["hash", "schema", "valid"];
|
|
26
|
+
return { lg, md, sm, xl, xs };
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
// src/components/Table/TableRow.tsx
|
|
30
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
31
|
+
var PayloadTableRow = ({
|
|
32
|
+
archive,
|
|
33
|
+
columns = payloadTableColumnConfigDefaults(),
|
|
34
|
+
exploreDomain,
|
|
35
|
+
maxSchemaDepth,
|
|
36
|
+
network: networkProp,
|
|
37
|
+
payload,
|
|
38
|
+
...props
|
|
39
|
+
}) => {
|
|
40
|
+
const breakPoint = useBreakpoint();
|
|
41
|
+
const payloadHash = usePayloadHash(payload);
|
|
42
|
+
const { network } = useNetwork();
|
|
43
|
+
const [errors = []] = usePromise(async () => payload ? await new PayloadValidator(payload).validate() : void 0, [payload]);
|
|
44
|
+
const isValid = errors.length === 0;
|
|
45
|
+
const hash = (props2) => /* @__PURE__ */ jsx(
|
|
46
|
+
HashTableCell,
|
|
47
|
+
{
|
|
48
|
+
archive,
|
|
49
|
+
width: "100%",
|
|
50
|
+
value: payloadHash,
|
|
51
|
+
dataType: "payload",
|
|
52
|
+
exploreDomain,
|
|
53
|
+
network: networkProp ?? network?.slug,
|
|
54
|
+
...props2
|
|
55
|
+
},
|
|
56
|
+
"hash"
|
|
57
|
+
);
|
|
58
|
+
const reduceSchemaDepth = (schema2, maxSchemaDepth2) => {
|
|
59
|
+
if (maxSchemaDepth2) {
|
|
60
|
+
const parts = schema2?.split(".") ?? [];
|
|
61
|
+
const partsToRemove = parts.length - maxSchemaDepth2 > 0 ? parts.length - maxSchemaDepth2 : 0;
|
|
62
|
+
if (partsToRemove > 0) {
|
|
63
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
64
|
+
/* @__PURE__ */ jsx(Fragment, { children: "\u2026" }),
|
|
65
|
+
`${parts.slice(partsToRemove).reduce((previousValue, part) => `${previousValue}.${part}`)}`
|
|
66
|
+
] });
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
return schema2;
|
|
70
|
+
};
|
|
71
|
+
const schema = (props2) => /* @__PURE__ */ jsx(TableCell, { title: payload?.schema, align: "center", ...props2, children: /* @__PURE__ */ jsx(Typography, { fontFamily: "monospace", variant: "body2", noWrap: true, children: reduceSchemaDepth(payload?.schema, maxSchemaDepth) }) }, "payloads");
|
|
72
|
+
const valid = (props2) => /* @__PURE__ */ jsx(TableCell, { align: "center", ...props2, children: isValid === void 0 && payload != void 0 ? /* @__PURE__ */ jsx(WarningAmberRoundedIcon, { fontSize: "small", color: "warning" }) : isValid === true ? /* @__PURE__ */ jsx(CheckCircleOutlineRoundedIcon, { fontSize: "small", color: "success" }) : isValid === false ? /* @__PURE__ */ jsx(ErrorOutlineRoundedIcon, { color: "error", fontSize: "small" }) : (
|
|
73
|
+
//to keep row height consistent when no data provided, may need fix later
|
|
74
|
+
/* @__PURE__ */ jsx(ErrorOutlineRoundedIcon, { sx: { color: alpha("#fff", 0) }, fontSize: "small" })
|
|
75
|
+
) }, "valid");
|
|
76
|
+
const tableCells = {
|
|
77
|
+
hash,
|
|
78
|
+
schema,
|
|
79
|
+
valid
|
|
80
|
+
};
|
|
81
|
+
return breakPoint ? /* @__PURE__ */ jsx(TableRow, { style: { maxWidth: "100vw" }, ...props, children: columns[breakPoint]?.map((column) => {
|
|
82
|
+
return tableCells[column]({});
|
|
83
|
+
}) }) : null;
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
// src/components/Table/TableBody.tsx
|
|
87
|
+
import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
88
|
+
var PayloadTableBody = ({
|
|
7
89
|
children,
|
|
8
90
|
exploreDomain,
|
|
9
91
|
payloads,
|
|
@@ -16,18 +98,18 @@ const PayloadTableBody = ({
|
|
|
16
98
|
...props
|
|
17
99
|
}) => {
|
|
18
100
|
const payloadPairs = usePayloadHashes(payloads);
|
|
19
|
-
return /* @__PURE__ */
|
|
20
|
-
noResults && NoResultRowComponent ? /* @__PURE__ */
|
|
101
|
+
return /* @__PURE__ */ jsxs2(TableBody, { ...props, children: [
|
|
102
|
+
noResults && NoResultRowComponent ? /* @__PURE__ */ jsx2(NoResultRowComponent, {}) : null,
|
|
21
103
|
payloadPairs?.map(([payload, hash], index) => {
|
|
22
|
-
return /* @__PURE__ */
|
|
104
|
+
return /* @__PURE__ */ jsx2(
|
|
23
105
|
ThrownErrorBoundary,
|
|
24
106
|
{
|
|
25
107
|
boundaryName: "PayloadTableBody",
|
|
26
|
-
errorComponent: (e) => /* @__PURE__ */
|
|
108
|
+
errorComponent: (e) => /* @__PURE__ */ jsxs2(Alert, { severity: "error", children: [
|
|
27
109
|
"Error Loading Payload: ",
|
|
28
|
-
/* @__PURE__ */
|
|
110
|
+
/* @__PURE__ */ jsx2(Typography2, { fontWeight: "bold", children: e.message })
|
|
29
111
|
] }),
|
|
30
|
-
children: /* @__PURE__ */
|
|
112
|
+
children: /* @__PURE__ */ jsx2(
|
|
31
113
|
PayloadTableRow,
|
|
32
114
|
{
|
|
33
115
|
maxSchemaDepth,
|
|
@@ -44,7 +126,7 @@ const PayloadTableBody = ({
|
|
|
44
126
|
);
|
|
45
127
|
}),
|
|
46
128
|
children,
|
|
47
|
-
(emptyRows ?? 0) > 0 && Array(emptyRows).fill(/* @__PURE__ */
|
|
129
|
+
(emptyRows ?? 0) > 0 && Array(emptyRows).fill(/* @__PURE__ */ jsx2(PayloadTableRow, {}))
|
|
48
130
|
] });
|
|
49
131
|
};
|
|
50
132
|
export {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Table/TableBody.tsx"],"sourcesContent":["import { Alert, TableBody, Typography } from '@mui/material'\nimport { ThrownErrorBoundary } from '@xyo-network/react-error'\nimport { usePayloadHashes } from '@xyo-network/react-shared'\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 onRowClick,\n emptyRows,\n noResults,\n NoResultRowComponent,\n ...props\n}) => {\n const payloadPairs = usePayloadHashes(payloads)\n\n return (\n <TableBody {...props}>\n {noResults && NoResultRowComponent ? <NoResultRowComponent /> : 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 exploreDomain={exploreDomain}\n payload={payload}\n />\n </ThrownErrorBoundary>\n )\n })}\n {children}\n {(emptyRows ?? 0) > 0 && Array(emptyRows).fill(<PayloadTableRow />)}\n </TableBody>\n )\n}\n"],"
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Table/TableBody.tsx","../../../../src/components/Table/TableRow.tsx","../../../../src/components/Table/PayloadTableColumnConfig.ts"],"sourcesContent":["import { Alert, TableBody, Typography } from '@mui/material'\nimport { ThrownErrorBoundary } from '@xyo-network/react-error'\nimport { usePayloadHashes } from '@xyo-network/react-shared'\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 onRowClick,\n emptyRows,\n noResults,\n NoResultRowComponent,\n ...props\n}) => {\n const payloadPairs = usePayloadHashes(payloads)\n\n return (\n <TableBody {...props}>\n {noResults && NoResultRowComponent ? <NoResultRowComponent /> : 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 exploreDomain={exploreDomain}\n payload={payload}\n />\n </ThrownErrorBoundary>\n )\n })}\n {children}\n {(emptyRows ?? 0) > 0 && Array(emptyRows).fill(<PayloadTableRow />)}\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 { 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 payload?: Payload\n}\n\nexport const PayloadTableRow: React.FC<PayloadTableRowProps> = ({\n archive,\n columns = payloadTableColumnConfigDefaults(),\n exploreDomain,\n maxSchemaDepth,\n network: networkProp,\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 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 {`${parts.slice(partsToRemove).reduce((previousValue, part) => `${previousValue}.${part}`)}`}\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 ) : (\n //to keep row height consistent when no data provided, may need fix later\n <ErrorOutlineRoundedIcon sx={{ color: alpha('#fff', 0) }} fontSize=\"small\" />\n )}\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","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"],"mappings":"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","names":["Typography","props","schema","maxSchemaDepth","jsx","jsxs","Typography"]}
|
|
@@ -1,8 +1,54 @@
|
|
|
1
|
-
|
|
1
|
+
// src/components/Table/TableFooter.tsx
|
|
2
2
|
import { styled, TablePagination, TableRow } from "@mui/material";
|
|
3
3
|
import { TableFooterEx } from "@xyo-network/react-table";
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
|
|
5
|
+
// src/components/Table/TablePagination.tsx
|
|
6
|
+
import { FirstPage as FirstPageIcon, KeyboardArrowLeft, KeyboardArrowRight, LastPage as LastPageIcon } from "@mui/icons-material";
|
|
7
|
+
import { Box, CircularProgress, IconButton, useTheme } from "@mui/material";
|
|
8
|
+
import { useEvent } from "@xyo-network/react-event";
|
|
9
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
10
|
+
function TablePaginationActions({ count, enableNextPage, loading, onPageChange, page, rowsPerPage }) {
|
|
11
|
+
const theme = useTheme();
|
|
12
|
+
const [paginationRef, paginationDispatch] = useEvent();
|
|
13
|
+
const handleFirstPageButtonClick = (event) => {
|
|
14
|
+
paginationDispatch("firstPage", "click", "true");
|
|
15
|
+
onPageChange(event, 0);
|
|
16
|
+
};
|
|
17
|
+
const handleBackButtonClick = (event) => {
|
|
18
|
+
paginationDispatch("previousPage", "click", (page - 1)?.toString());
|
|
19
|
+
onPageChange(event, page - 1);
|
|
20
|
+
};
|
|
21
|
+
const handleNextButtonClick = (event) => {
|
|
22
|
+
paginationDispatch("nextPage", "click", (page + 1)?.toString());
|
|
23
|
+
onPageChange(event, page + 1);
|
|
24
|
+
};
|
|
25
|
+
const handleLastPageButtonClick = (event) => {
|
|
26
|
+
paginationDispatch("lastPage", "click", "true");
|
|
27
|
+
onPageChange(event, Math.max(0, Math.ceil(count / rowsPerPage) - 1));
|
|
28
|
+
};
|
|
29
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
30
|
+
loading ? /* @__PURE__ */ jsx(CircularProgress, { size: "small", sx: { height: theme.spacing(2), position: "absolute", width: theme.spacing(2) } }) : null,
|
|
31
|
+
/* @__PURE__ */ jsxs(Box, { sx: { flexShrink: 0, ml: 2.5 }, children: [
|
|
32
|
+
/* @__PURE__ */ jsx(IconButton, { onClick: handleFirstPageButtonClick, disabled: page === 0, "aria-label": "first page", children: theme.direction === "rtl" ? /* @__PURE__ */ jsx(LastPageIcon, {}) : /* @__PURE__ */ jsx(FirstPageIcon, {}) }),
|
|
33
|
+
/* @__PURE__ */ jsx(IconButton, { ref: paginationRef, onClick: handleBackButtonClick, disabled: page === 0, "aria-label": "previous page", children: theme.direction === "rtl" ? /* @__PURE__ */ jsx(KeyboardArrowRight, {}) : /* @__PURE__ */ jsx(KeyboardArrowLeft, {}) }),
|
|
34
|
+
/* @__PURE__ */ jsx(
|
|
35
|
+
IconButton,
|
|
36
|
+
{
|
|
37
|
+
ref: paginationRef,
|
|
38
|
+
onClick: handleNextButtonClick,
|
|
39
|
+
disabled: !enableNextPage && page >= Math.ceil(count / rowsPerPage) - 1,
|
|
40
|
+
"aria-label": "next page",
|
|
41
|
+
children: theme.direction === "rtl" ? /* @__PURE__ */ jsx(KeyboardArrowLeft, {}) : /* @__PURE__ */ jsx(KeyboardArrowRight, {})
|
|
42
|
+
}
|
|
43
|
+
),
|
|
44
|
+
/* @__PURE__ */ jsx(IconButton, { onClick: handleLastPageButtonClick, disabled: page >= Math.ceil(count / rowsPerPage) - 1, "aria-label": "last page", children: theme.direction === "rtl" ? /* @__PURE__ */ jsx(FirstPageIcon, {}) : /* @__PURE__ */ jsx(LastPageIcon, {}) })
|
|
45
|
+
] })
|
|
46
|
+
] });
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
// src/components/Table/TableFooter.tsx
|
|
50
|
+
import { jsx as jsx2 } from "react/jsx-runtime";
|
|
51
|
+
var PayloadTableFooter = ({
|
|
6
52
|
count,
|
|
7
53
|
variant,
|
|
8
54
|
page,
|
|
@@ -11,7 +57,7 @@ const PayloadTableFooter = ({
|
|
|
11
57
|
handleChangeRowsPerPage = () => void 0,
|
|
12
58
|
fetchMorePayloads,
|
|
13
59
|
loading
|
|
14
|
-
}) => /* @__PURE__ */
|
|
60
|
+
}) => /* @__PURE__ */ jsx2(TableFooterEx, { variant, children: /* @__PURE__ */ jsx2(TableRow, { children: /* @__PURE__ */ jsx2(
|
|
15
61
|
StyledTablePagination,
|
|
16
62
|
{
|
|
17
63
|
rowsPerPageOptions: [5, 10, 25, { label: "All", value: -1 }],
|
|
@@ -26,10 +72,10 @@ const PayloadTableFooter = ({
|
|
|
26
72
|
},
|
|
27
73
|
onPageChange: handleChangePage,
|
|
28
74
|
onRowsPerPageChange: handleChangeRowsPerPage,
|
|
29
|
-
ActionsComponent: (props) => /* @__PURE__ */
|
|
75
|
+
ActionsComponent: (props) => /* @__PURE__ */ jsx2(TablePaginationActions, { enableNextPage: !!fetchMorePayloads, loading, ...props })
|
|
30
76
|
}
|
|
31
77
|
) }) });
|
|
32
|
-
|
|
78
|
+
var StyledTablePagination = styled(TablePagination)(({ theme }) => ({
|
|
33
79
|
"& > .MuiToolbar-root": {
|
|
34
80
|
paddingLeft: theme.spacing(1)
|
|
35
81
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Table/TableFooter.tsx"],"sourcesContent":["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 = () => undefined,\n handleChangeRowsPerPage = () => undefined,\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"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Table/TableFooter.tsx","../../../../src/components/Table/TablePagination.tsx"],"sourcesContent":["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 = () => undefined,\n handleChangeRowsPerPage = () => undefined,\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 ? <CircularProgress size={'small'} sx={{ height: theme.spacing(2), position: 'absolute', width: theme.spacing(2) }} /> : null}\n <Box sx={{ flexShrink: 0, ml: 2.5 }}>\n <IconButton onClick={handleFirstPageButtonClick} disabled={page === 0} aria-label=\"first page\">\n {theme.direction === 'rtl' ? <LastPageIcon /> : <FirstPageIcon />}\n </IconButton>\n <IconButton ref={paginationRef} onClick={handleBackButtonClick} disabled={page === 0} aria-label=\"previous page\">\n {theme.direction === 'rtl' ? <KeyboardArrowRight /> : <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' ? <KeyboardArrowLeft /> : <KeyboardArrowRight />}\n </IconButton>\n <IconButton onClick={handleLastPageButtonClick} disabled={page >= Math.ceil(count / rowsPerPage) - 1} aria-label=\"last page\">\n {theme.direction === 'rtl' ? <FirstPageIcon /> : <LastPageIcon />}\n </IconButton>\n </Box>\n </>\n )\n}\n"],"mappings":"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","names":["jsx"]}
|
|
@@ -1,8 +1,25 @@
|
|
|
1
|
-
|
|
1
|
+
// src/components/Table/TableHead.tsx
|
|
2
2
|
import { TableCell, TableHead, TableRow, Typography } from "@mui/material";
|
|
3
3
|
import { useBreakpoint } from "@xylabs/react-shared";
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
|
|
5
|
+
// src/components/Table/PayloadTableColumnConfig.ts
|
|
6
|
+
var payloadColumnNames = {
|
|
7
|
+
hash: "Hash",
|
|
8
|
+
schema: "Schema",
|
|
9
|
+
valid: "Valid"
|
|
10
|
+
};
|
|
11
|
+
var payloadTableColumnConfigDefaults = () => {
|
|
12
|
+
const xs = ["hash", "schema", "valid"];
|
|
13
|
+
const sm = ["hash", "schema", "valid"];
|
|
14
|
+
const md = ["hash", "schema", "valid"];
|
|
15
|
+
const lg = ["hash", "schema", "valid"];
|
|
16
|
+
const xl = ["hash", "schema", "valid"];
|
|
17
|
+
return { lg, md, sm, xl, xs };
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
// src/components/Table/TableHead.tsx
|
|
21
|
+
import { jsx } from "react/jsx-runtime";
|
|
22
|
+
var PayloadTableHead = ({ columns = payloadTableColumnConfigDefaults(), ...props }) => {
|
|
6
23
|
const breakPoint = useBreakpoint();
|
|
7
24
|
return /* @__PURE__ */ jsx(TableHead, { ...props, children: /* @__PURE__ */ jsx(TableRow, { children: breakPoint && columns ? columns[breakPoint]?.map((column, index) => {
|
|
8
25
|
return /* @__PURE__ */ jsx(TableCell, { width: index === 0 ? "100%" : void 0, align: index === 0 ? "left" : "center", children: /* @__PURE__ */ jsx(Typography, { variant: "body2", noWrap: true, children: payloadColumnNames[column] }) }, index);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Table/TableHead.tsx"],"sourcesContent":["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"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Table/TableHead.tsx","../../../../src/components/Table/PayloadTableColumnConfig.ts"],"sourcesContent":["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","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"],"mappings":";AAAA,SAAS,WAAW,WAAW,UAAU,kBAAkB;AAC3D,SAAS,qBAAqB;;;ACYvB,IAAM,qBAA6D;AAAA,EACxE,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,OAAO;AACT;AAEO,IAAM,mCAAmC,MAAgC;AAC9E,QAAM,KAA+B,CAAC,QAAQ,UAAU,OAAO;AAC/D,QAAM,KAA+B,CAAC,QAAQ,UAAU,OAAO;AAC/D,QAAM,KAA+B,CAAC,QAAQ,UAAU,OAAO;AAC/D,QAAM,KAA+B,CAAC,QAAQ,UAAU,OAAO;AAC/D,QAAM,KAA+B,CAAC,QAAQ,UAAU,OAAO;AAC/D,SAAO,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG;AAC9B;;;ADXkB;AATX,IAAM,mBAAoD,CAAC,EAAE,UAAU,iCAAiC,GAAG,GAAG,MAAM,MAAM;AAC/H,QAAM,aAAa,cAAc;AACjC,SACE,oBAAC,aAAW,GAAG,OACb,8BAAC,YACE,wBAAc,UACX,QAAQ,UAAU,GAAG,IAAI,CAAC,QAAQ,UAAU;AAC1C,WACE,oBAAC,aAAsB,OAAO,UAAU,IAAI,SAAS,QAAW,OAAO,UAAU,IAAI,SAAS,UAC5F,8BAAC,cAAW,SAAQ,SAAQ,QAAM,MAC/B,6BAAmB,MAAM,GAC5B,KAHc,KAIhB;AAAA,EAEJ,CAAC,IACD,MACN,GACF;AAEJ;","names":[]}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
// src/components/Table/TablePagination.tsx
|
|
2
2
|
import { FirstPage as FirstPageIcon, KeyboardArrowLeft, KeyboardArrowRight, LastPage as LastPageIcon } from "@mui/icons-material";
|
|
3
3
|
import { Box, CircularProgress, IconButton, useTheme } from "@mui/material";
|
|
4
4
|
import { useEvent } from "@xyo-network/react-event";
|
|
5
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
5
6
|
function TablePaginationActions({ count, enableNextPage, loading, onPageChange, page, rowsPerPage }) {
|
|
6
7
|
const theme = useTheme();
|
|
7
8
|
const [paginationRef, paginationDispatch] = useEvent();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Table/TablePagination.tsx"],"sourcesContent":["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 ? <CircularProgress size={'small'} sx={{ height: theme.spacing(2), position: 'absolute', width: theme.spacing(2) }} /> : null}\n <Box sx={{ flexShrink: 0, ml: 2.5 }}>\n <IconButton onClick={handleFirstPageButtonClick} disabled={page === 0} aria-label=\"first page\">\n {theme.direction === 'rtl' ? <LastPageIcon /> : <FirstPageIcon />}\n </IconButton>\n <IconButton ref={paginationRef} onClick={handleBackButtonClick} disabled={page === 0} aria-label=\"previous page\">\n {theme.direction === 'rtl' ? <KeyboardArrowRight /> : <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' ? <KeyboardArrowLeft /> : <KeyboardArrowRight />}\n </IconButton>\n <IconButton onClick={handleLastPageButtonClick} disabled={page >= Math.ceil(count / rowsPerPage) - 1} aria-label=\"last page\">\n {theme.direction === 'rtl' ? <FirstPageIcon /> : <LastPageIcon />}\n </IconButton>\n </Box>\n </>\n )\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Table/TablePagination.tsx"],"sourcesContent":["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 ? <CircularProgress size={'small'} sx={{ height: theme.spacing(2), position: 'absolute', width: theme.spacing(2) }} /> : null}\n <Box sx={{ flexShrink: 0, ml: 2.5 }}>\n <IconButton onClick={handleFirstPageButtonClick} disabled={page === 0} aria-label=\"first page\">\n {theme.direction === 'rtl' ? <LastPageIcon /> : <FirstPageIcon />}\n </IconButton>\n <IconButton ref={paginationRef} onClick={handleBackButtonClick} disabled={page === 0} aria-label=\"previous page\">\n {theme.direction === 'rtl' ? <KeyboardArrowRight /> : <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' ? <KeyboardArrowLeft /> : <KeyboardArrowRight />}\n </IconButton>\n <IconButton onClick={handleLastPageButtonClick} disabled={page >= Math.ceil(count / rowsPerPage) - 1} aria-label=\"last page\">\n {theme.direction === 'rtl' ? <FirstPageIcon /> : <LastPageIcon />}\n </IconButton>\n </Box>\n </>\n )\n}\n"],"mappings":";AAAA,SAAS,aAAa,eAAe,mBAAmB,oBAAoB,YAAY,oBAAoB;AAC5G,SAAS,KAAK,kBAAkB,YAAY,gBAAgB;AAC5D,SAAS,gBAAgB;AAsCrB,mBACa,KACX,YAFF;AAzBG,SAAS,uBAAuB,EAAE,OAAO,gBAAgB,SAAS,cAAc,MAAM,YAAY,GAAgC;AACvI,QAAM,QAAQ,SAAS;AACvB,QAAM,CAAC,eAAe,kBAAkB,IAAI,SAA6C;AAEzF,QAAM,6BAA6B,CAAC,UAA+C;AACjF,uBAAmB,aAAa,SAAS,MAAM;AAC/C,iBAAa,OAAO,CAAC;AAAA,EACvB;AAEA,QAAM,wBAAwB,CAAC,UAA+C;AAC5E,uBAAmB,gBAAgB,UAAU,OAAO,IAAI,SAAS,CAAC;AAClE,iBAAa,OAAO,OAAO,CAAC;AAAA,EAC9B;AAEA,QAAM,wBAAwB,CAAC,UAA+C;AAC5E,uBAAmB,YAAY,UAAU,OAAO,IAAI,SAAS,CAAC;AAC9D,iBAAa,OAAO,OAAO,CAAC;AAAA,EAC9B;AAEA,QAAM,4BAA4B,CAAC,UAA+C;AAChF,uBAAmB,YAAY,SAAS,MAAM;AAC9C,iBAAa,OAAO,KAAK,IAAI,GAAG,KAAK,KAAK,QAAQ,WAAW,IAAI,CAAC,CAAC;AAAA,EACrE;AAEA,SACE,iCACG;AAAA,cAAU,oBAAC,oBAAiB,MAAM,SAAS,IAAI,EAAE,QAAQ,MAAM,QAAQ,CAAC,GAAG,UAAU,YAAY,OAAO,MAAM,QAAQ,CAAC,EAAE,GAAG,IAAK;AAAA,IAClI,qBAAC,OAAI,IAAI,EAAE,YAAY,GAAG,IAAI,IAAI,GAChC;AAAA,0BAAC,cAAW,SAAS,4BAA4B,UAAU,SAAS,GAAG,cAAW,cAC/E,gBAAM,cAAc,QAAQ,oBAAC,gBAAa,IAAK,oBAAC,iBAAc,GACjE;AAAA,MACA,oBAAC,cAAW,KAAK,eAAe,SAAS,uBAAuB,UAAU,SAAS,GAAG,cAAW,iBAC9F,gBAAM,cAAc,QAAQ,oBAAC,sBAAmB,IAAK,oBAAC,qBAAkB,GAC3E;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,KAAK;AAAA,UACL,SAAS;AAAA,UACT,UAAU,CAAC,kBAAkB,QAAQ,KAAK,KAAK,QAAQ,WAAW,IAAI;AAAA,UACtE,cAAW;AAAA,UAEV,gBAAM,cAAc,QAAQ,oBAAC,qBAAkB,IAAK,oBAAC,sBAAmB;AAAA;AAAA,MAC3E;AAAA,MACA,oBAAC,cAAW,SAAS,2BAA2B,UAAU,QAAQ,KAAK,KAAK,QAAQ,WAAW,IAAI,GAAG,cAAW,aAC9G,gBAAM,cAAc,QAAQ,oBAAC,iBAAc,IAAK,oBAAC,gBAAa,GACjE;AAAA,OACF;AAAA,KACF;AAEJ;","names":[]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
// src/components/Table/TableRow.tsx
|
|
2
2
|
import {
|
|
3
3
|
CheckCircleOutlineRounded as CheckCircleOutlineRoundedIcon,
|
|
4
4
|
ErrorOutlineRounded as ErrorOutlineRoundedIcon,
|
|
@@ -10,8 +10,20 @@ import { useBreakpoint } from "@xylabs/react-shared";
|
|
|
10
10
|
import { PayloadValidator } from "@xyo-network/payload-validator";
|
|
11
11
|
import { useNetwork } from "@xyo-network/react-network";
|
|
12
12
|
import { HashTableCell, usePayloadHash } from "@xyo-network/react-shared";
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
|
|
14
|
+
// src/components/Table/PayloadTableColumnConfig.ts
|
|
15
|
+
var payloadTableColumnConfigDefaults = () => {
|
|
16
|
+
const xs = ["hash", "schema", "valid"];
|
|
17
|
+
const sm = ["hash", "schema", "valid"];
|
|
18
|
+
const md = ["hash", "schema", "valid"];
|
|
19
|
+
const lg = ["hash", "schema", "valid"];
|
|
20
|
+
const xl = ["hash", "schema", "valid"];
|
|
21
|
+
return { lg, md, sm, xl, xs };
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
// src/components/Table/TableRow.tsx
|
|
25
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
26
|
+
var PayloadTableRow = ({
|
|
15
27
|
archive,
|
|
16
28
|
columns = payloadTableColumnConfigDefaults(),
|
|
17
29
|
exploreDomain,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Table/TableRow.tsx"],"sourcesContent":["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 { 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 payload?: Payload\n}\n\nexport const PayloadTableRow: React.FC<PayloadTableRowProps> = ({\n archive,\n columns = payloadTableColumnConfigDefaults(),\n exploreDomain,\n maxSchemaDepth,\n network: networkProp,\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 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 {`${parts.slice(partsToRemove).reduce((previousValue, part) => `${previousValue}.${part}`)}`}\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 ) : (\n //to keep row height consistent when no data provided, may need fix later\n <ErrorOutlineRoundedIcon sx={{ color: alpha('#fff', 0) }} fontSize=\"small\" />\n )}\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"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Table/TableRow.tsx","../../../../src/components/Table/PayloadTableColumnConfig.ts"],"sourcesContent":["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 { 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 payload?: Payload\n}\n\nexport const PayloadTableRow: React.FC<PayloadTableRowProps> = ({\n archive,\n columns = payloadTableColumnConfigDefaults(),\n exploreDomain,\n maxSchemaDepth,\n network: networkProp,\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 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 {`${parts.slice(partsToRemove).reduce((previousValue, part) => `${previousValue}.${part}`)}`}\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 ) : (\n //to keep row height consistent when no data provided, may need fix later\n <ErrorOutlineRoundedIcon sx={{ color: alpha('#fff', 0) }} fontSize=\"small\" />\n )}\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","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"],"mappings":"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","names":["props","schema","maxSchemaDepth"]}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
|
|
1
|
+
// src/components/Table/TableRowNoData.tsx
|
|
2
2
|
import { styled, TableCell, TableRow, Typography } from "@mui/material";
|
|
3
|
-
|
|
3
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4
|
+
var TableRowNoData = ({ additionalCells, hideBorder = false, typographyProps, ...props }) => {
|
|
4
5
|
return /* @__PURE__ */ jsxs(TableRow, { ...props, children: [
|
|
5
6
|
/* @__PURE__ */ jsx(StyledTableCell, { hideBorder, children: /* @__PURE__ */ jsx(Typography, { variant: "body2", ...typographyProps, children: "No Data To Display..." }) }),
|
|
6
7
|
additionalCells ? Array(additionalCells).fill(void 0).map((_fill, index) => /* @__PURE__ */ jsx(StyledTableCell, { hideBorder }, index)) : null
|
|
7
8
|
] });
|
|
8
9
|
};
|
|
9
|
-
|
|
10
|
+
var StyledTableCell = styled(TableCell, {
|
|
10
11
|
name: "StyledTableCell",
|
|
11
12
|
shouldForwardProp: (prop) => prop !== "hideBorder"
|
|
12
13
|
})(({ hideBorder }) => ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Table/TableRowNoData.tsx"],"sourcesContent":["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(additionalCells)\n .fill(undefined)\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":"
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Table/TableRowNoData.tsx"],"sourcesContent":["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(additionalCells)\n .fill(undefined)\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":";AAAA,SAAS,QAAQ,WAAW,UAAyB,kBAAmC;AAUpF,SAEI,KAFJ;AAFG,IAAM,iBAAgD,CAAC,EAAE,iBAAiB,aAAa,OAAO,iBAAiB,GAAG,MAAM,MAAM;AACnI,SACE,qBAAC,YAAU,GAAG,OACZ;AAAA,wBAAC,mBAAgB,YACf,8BAAC,cAAW,SAAQ,SAAS,GAAG,iBAAiB,mCAEjD,GACF;AAAA,IACC,kBACG,MAAM,eAAe,EAClB,KAAK,MAAS,EACd,IAAI,CAAC,OAAO,UAAU,oBAAC,mBAA4B,cAAP,KAA+B,CAAE,IAChF;AAAA,KACN;AAEJ;AAMA,IAAM,kBAAkB,OAAO,WAAW;AAAA,EACxC,MAAM;AAAA,EACN,mBAAmB,CAAC,SAAiB,SAAS;AAChD,CAAC,EAAwB,CAAC,EAAE,WAAW,OAAO;AAAA,EAC5C,GAAI,cAAc,EAAE,QAAQ,OAAO;AACrC,EAAE;","names":[]}
|