UNPKG

its-just-ui

Version:

ITS Just UI - The easiest and best React UI component library. Modern, accessible, and customizable components built with TypeScript and Tailwind CSS. Simple to use, production-ready components for building beautiful user interfaces with ease.

80 lines (78 loc) 4.12 kB
import { RowData, SortDescriptor, FilterDescriptor, SelectionModel, ExpandedState, PaginationState, EditingState, TableContextValue, FilterMatchMode, ColumnDef } from './types'; export declare const useTable: <TData extends RowData = RowData>() => TableContextValue<TData>; export declare const useTableData: <TData extends RowData = RowData>(data: TData[], { sort, filters, globalFilter, groupBy, pagination, paginationMode, }: { sort: SortDescriptor[]; filters: FilterDescriptor[]; globalFilter: string; groupBy: string[]; pagination: PaginationState; paginationMode: "client" | "server"; }) => { processedData: TData[]; paginatedData: TData[]; totalCount: number; }; export declare const useTableSelection: <TData extends RowData = RowData>(data: TData[], getRowId: (row: TData, index: number) => string | number, isRowSelectable?: (row: TData) => boolean) => { selectedRows: SelectionModel; setSelectedRows: import('react').Dispatch<import('react').SetStateAction<SelectionModel>>; toggleRowSelection: (rowId: string | number) => void; toggleAllRowsSelection: () => void; }; export declare const useTableSort: (enableMultiSort?: boolean, maxMultiSortColCount?: number) => { sort: SortDescriptor[]; setSort: import('react').Dispatch<import('react').SetStateAction<SortDescriptor[]>>; toggleSort: (columnId: string, multiSort?: boolean) => void; }; export declare const useTableFilter: () => { filters: FilterDescriptor[]; setFilters: import('react').Dispatch<import('react').SetStateAction<FilterDescriptor[]>>; globalFilter: string; setGlobalFilter: import('react').Dispatch<import('react').SetStateAction<string>>; setColumnFilter: (columnId: string, value: unknown, matchMode?: FilterMatchMode) => void; clearFilters: () => void; }; export declare const useTablePagination: (totalCount: number, defaultPageSize?: number) => { pagination: PaginationState; setPagination: import('react').Dispatch<import('react').SetStateAction<PaginationState>>; pageCount: number; canPreviousPage: boolean; canNextPage: boolean; previousPage: () => void; nextPage: () => void; gotoPage: (pageIndex: number) => void; setPageSize: (pageSize: number) => void; }; export declare const useTableExpansion: () => { expandedRows: ExpandedState; setExpandedRows: import('react').Dispatch<import('react').SetStateAction<ExpandedState>>; toggleRowExpansion: (rowId: string | number) => void; expandAllRows: (rowIds: (string | number)[]) => void; collapseAllRows: () => void; }; export declare const useTableEditing: <TData extends RowData = RowData>(onEditCommit?: (rowId: string | number, columnId: string, value: unknown, row: TData) => void | Promise<void>, onEditCancel?: (rowId: string | number, columnId: string) => void) => { editingCell: EditingState | null; setEditingCell: import('react').Dispatch<import('react').SetStateAction<EditingState | null>>; startEditing: (rowId: string | number, columnId: string, initialValue?: unknown) => void; commitEdit: (value: unknown, row: TData) => Promise<void>; cancelEdit: () => void; }; export declare const useTableKeyboardNavigation: <TData extends RowData = RowData>(tableRef: React.RefObject<HTMLTableElement>, { data, columns, getRowId, selectionMode, toggleRowSelection, expandedRows, toggleRowExpansion, editMode, startEditing, }: { data: TData[]; columns: ColumnDef<TData>[]; getRowId: (row: TData, index: number) => string | number; selectionMode: "none" | "single" | "multiple"; toggleRowSelection: (rowId: string | number) => void; expandedRows: ExpandedState; toggleRowExpansion: (rowId: string | number) => void; editMode: "none" | "cell" | "row" | "inline"; startEditing: (rowId: string | number, columnId: string) => void; }) => { focusedCell: { rowIndex: number; columnIndex: number; } | null; setFocusedCell: import('react').Dispatch<import('react').SetStateAction<{ rowIndex: number; columnIndex: number; } | null>>; };