UNPKG

unstyled-table

Version:

An unstyled react table component built on top of @tanstack/react-table v8

82 lines (73 loc) 3.33 kB
import { ColumnDef, InitialTableState, SortingState, ColumnFiltersState, PaginationState, VisibilityState, FilterFn, Table, Header, HeaderGroup, Row, Cell } from '@tanstack/react-table'; export { AccessorFn, Cell, CellContext, Column, ColumnDef, ColumnDefBase, ColumnFilter, ColumnFiltersState, ColumnHelper, ColumnMeta, ColumnOrderState, ColumnSort, FilterFn, Header, HeaderContext, HeaderGroup, PaginationState, Row, SortingFn, SortingState, Table, VisibilityState, createColumnHelper, flexRender } from '@tanstack/react-table'; import * as react_jsx_runtime from 'react/jsx-runtime'; import { RankingInfo } from '@tanstack/match-sorter-utils'; import { FC, InputHTMLAttributes, Dispatch, SetStateAction, ReactNode } from 'react'; type FilterInputComponent = FC<InputHTMLAttributes<HTMLInputElement>>; type FilterSelectComponent = FC<InputHTMLAttributes<HTMLSelectElement>>; type Renderer = FC<{ children: ReactNode; }>; interface UnstyledTableProps<TData extends any, TValue = any> { columns: ColumnDef<TData, TValue>[]; data: TData[]; initialState?: InitialTableState; defaultColumn?: Partial<ColumnDef<TData, unknown>>; state?: { sorting?: SortingState; columnFilters?: ColumnFiltersState; pagination?: PaginationState; columnVisibility?: VisibilityState; globalFilter?: string; }; setSorting?: Dispatch<SetStateAction<SortingState>>; setColumnFilters?: Dispatch<SetStateAction<ColumnFiltersState>>; setPagination?: Dispatch<SetStateAction<PaginationState>>; setColumnVisibility?: Dispatch<SetStateAction<VisibilityState>>; setGlobalFilter?: Dispatch<SetStateAction<string>>; manualSorting?: boolean; manualFiltering?: boolean; manualPagination?: boolean; disableGlobalFilter?: boolean; disableColumnVisibility?: boolean; pageCount?: number; showFooter?: boolean; hidePagination?: boolean; debugAll?: boolean; debugTable?: boolean; debugColumns?: boolean; debugRows?: boolean; debugHeaders?: boolean; components?: { table?: Renderer; header?: Renderer; headerRow?: Renderer; headerCell?: Renderer; body?: Renderer; bodyRow?: Renderer; bodyCell?: Renderer; footer?: Renderer; footerRow?: Renderer; footerCell?: Renderer; empty?: Renderer; loading?: Renderer; pagination?: FC; filterInput?: FilterInputComponent; filterSelect?: FilterSelectComponent; }; } declare module '@tanstack/table-core' { interface FilterFns { fuzzy: FilterFn<unknown>; } interface FilterMeta { itemRank: RankingInfo; } } declare const UnstyledTable: <TData, TValue = any>({ components, ...props }: UnstyledTableProps<TData, TValue>) => react_jsx_runtime.JSX.Element; declare function useTable<T extends unknown>(): Table<T>; declare function useHeader<T extends unknown, U = unknown>(): Header<T, U>; declare function useHeaderGroup<T extends unknown>(): HeaderGroup<T>; declare function useRow<T extends unknown>(): Row<T>; declare function useCell<T extends unknown, U = unknown>(): Cell<T, U>; export { FilterInputComponent, FilterSelectComponent, UnstyledTable, UnstyledTableProps, useCell, useHeader, useHeaderGroup, useRow, useTable };