mod-arch-shared
Version:
Shared UI components and utilities for modular architecture micro-frontend projects
43 lines • 2.29 kB
TypeScript
import * as React from 'react';
import { PaginationProps, ToolbarGroup, ToolbarItem } from '@patternfly/react-core';
import { Tr, TableProps, TbodyProps, TrProps } from '@patternfly/react-table';
import { EitherNotBoth } from '../../types/typeHelpers';
import { GetColumnSort, SortableData } from './types';
type Props<DataType> = {
loading?: boolean;
skeletonRowCount?: number;
skeletonRowProps?: TrProps;
data: DataType[];
columns: SortableData<DataType>[];
subColumns?: SortableData<DataType>[];
hasNestedHeader?: boolean;
defaultSortColumn?: number;
rowRenderer: (data: DataType, rowIndex: number) => React.ReactNode;
enablePagination?: boolean | 'compact';
truncateRenderingAt?: number;
toolbarContent?: React.ReactElement<typeof ToolbarItem | typeof ToolbarGroup>;
onClearFilters?: () => void;
bottomToolbarContent?: React.ReactElement<typeof ToolbarItem | typeof ToolbarGroup>;
emptyTableView?: React.ReactNode;
caption?: string;
footerRow?: (pageNumber: number) => React.ReactElement<typeof Tr> | null;
selectAll?: {
onSelect: (value: boolean) => void;
selected: boolean;
disabled?: boolean;
tooltip?: string;
};
getColumnSort?: GetColumnSort;
disableItemCount?: boolean;
hasStickyColumns?: boolean;
} & EitherNotBoth<{
disableRowRenderSupport?: boolean;
}, {
tbodyProps?: TbodyProps & {
ref?: React.Ref<HTMLTableSectionElement>;
};
}> & Omit<TableProps, 'ref' | 'data'> & Pick<PaginationProps, 'itemCount' | 'onPerPageSelect' | 'onSetPage' | 'page' | 'perPage' | 'perPageOptions' | 'toggleTemplate' | 'onNextClick' | 'onPreviousClick'>;
export declare const MIN_PAGE_SIZE = 10;
declare const TableBase: <T>({ data, columns, subColumns, hasNestedHeader, rowRenderer, enablePagination, toolbarContent, onClearFilters, bottomToolbarContent, emptyTableView, caption, disableRowRenderSupport, selectAll, footerRow, tbodyProps, perPage, page, perPageOptions, onSetPage, onNextClick, onPreviousClick, onPerPageSelect, getColumnSort, itemCount, loading, skeletonRowCount, skeletonRowProps, toggleTemplate, disableItemCount, hasStickyColumns, ...props }: Props<T>) => React.ReactElement;
export default TableBase;
//# sourceMappingURL=TableBase.d.ts.map