UNPKG

@netdata/netdata-ui

Version:

netdata UI kit

71 lines (65 loc) 2.19 kB
import { ColumnDef, FilterFnOption, PaginationState, ColumnPinningState, VisibilityTableState, Table, } from "@tanstack/table-core" import { supportedBulkActions } from "./header/actions/useActions" import { supportedRowActions } from "./useColumns/useRowActions" type NetdataCoreColumns<T = any> = Pick<ColumnDef<T>, "id" | "header" | "cell" | "filterFn"> export type TableProps<T = any, D = any> = { data: Array<D> dataColumns: Array<NetdataCoreColumns<T>> enableSorting?: boolean paginationOptions?: PaginationState columnPinningOptions?: ColumnPinningState enableSelection?: boolean enablePagination?: boolean bulkActions?: { [K in keyof typeof supportedBulkActions]?: { handleAction: (rowData: D, instance: Table<D>) => void icon?: string confirmation?: boolean tooltipText?: string confirmationTitle?: string confirmationMessage?: string confirmLabel?: string declineLabel?: string actionButtonDirection?: "default" | "reverse" } } rowActions?: { [K in keyof typeof supportedRowActions]?: { handleAction: (rowData: D, instance: Table<D>) => void icon?: string confirmation?: boolean tooltipText?: string confirmationTitle?: string confirmationMessage?: string confirmLabel?: string declineLabel?: string actionButtonDirection?: "default" | "reverse" isDisabled?: boolean | ((rowData: D) => boolean) isVisible?: boolean | ((rowData: D) => boolean) } } testPrefix?: string globalFilterFn?: FilterFnOption<T> columnVisibility?: VisibilityTableState enableColumnVisibility?: boolean enableColumnPinning?: boolean onGlobalSearchChange?: (value: any) => void onRowSelected?: (value: any) => void onClickRow?: (value: any) => void onHoverCell?: (value: any) => void disableClickRow?: (value: any) => void /**This is an escape hatch test id generator, we use this when we want to have * dynamic generator tesids depending on the row values */ testPrefixCallback?: (rowData: D) => string } declare const Table: (props: TableProps) => JSX.Element export { Table } export default Table