UNPKG

@stanfordspezi/spezi-web-design-system

Version:

Stanford Biodesign Digital Health Spezi Web Design System

62 lines (61 loc) 2.19 kB
import { RankingInfo } from '@tanstack/match-sorter-utils'; import { CellContext, FilterFn, RowData } from '@tanstack/react-table'; import { TableOptions } from '@tanstack/table-core'; import { PartialSome } from '../../utils/misc'; declare module "@tanstack/react-table" { interface FilterFns { fuzzy: FilterFn<unknown>; } interface FilterMeta { itemRank: RankingInfo; } interface ColumnMeta<TData extends RowData, TValue> { /** * Applies custom CSS classes to the cell's `<td>` element. * Can be a static string or a function that receives the cell context * and returns a class string (or undefined for no classes). * * @example * ```ts * // Static * meta: { cellClassName: "bg-success/10 text-success" } * * // Dynamic * meta: { * cellClassName: (ctx) => ctx.getValue() > 50 * ? "bg-destructive/10 text-destructive" * : undefined, * } * ``` */ cellClassName?: string | ((context: CellContext<TData, TValue>) => string | undefined); } } /** * Default fuzzyFilter implementation, used for global text filtering. */ export declare const fuzzyFilter: FilterFn<unknown>; export interface UseDataTableProps<Data> extends PartialSome<TableOptions<Data>, "getCoreRowModel" | "filterFns"> { /** * Defines how many items are displayed per one page. * * @default 50 */ pageSize?: number; } /** * Composes useReactTable usage, contains core data table logic. */ export declare const useDataTable: <Data>({ columns, data, pageSize, state, initialState, ...props }: UseDataTableProps<Data>) => { globalFilter: string; setGlobalFilter: import('react').Dispatch<import('react').SetStateAction<string>>; setGlobalFilterDebounced: import('use-debounce').DebouncedState<(value: string) => void>; table: import('@tanstack/table-core').Table<Data>; rows: import('@tanstack/table-core').Row<Data>[]; emptyProps: { show: boolean; textFilter: string | undefined; hasFilters: boolean; }; isEmpty: boolean; };