UNPKG

norma-library

Version:

Olos/Norma-DS. Design System based on Material UI, developed with TypeScript and Styled Components to create reusable and consistent components in web applications.

65 lines (64 loc) 1.64 kB
import { ColumnDef } from '@tanstack/react-table'; import { JSX } from 'react'; type Labels = { orderAsc?: string; orderDesc?: string; filter?: string; clearFilter?: string; columns?: string; }; interface Pagination { pageIndex: number; pageSize: number; } interface Sticky { enabled: boolean; top: number; } export interface TableList { id: string; label: string | JSX.Element; onClick?: (id: string) => void; checked?: () => boolean | boolean; disabled?: boolean; } export interface TableButton { render: () => JSX.Element; list?: { options: TableList[]; toggleableList?: boolean; closeOnClick?: boolean; }; disabled?: boolean; onClick?: () => void; } export interface UncontrolledTableProps { data: any; columns: ColumnDef<ColumnsTable>[]; pagination?: Pagination; totalPages?: number; labels?: Labels; tableClassName?: string; sticky?: Sticky; draggable?: boolean; buttons?: TableButton[]; configs?: TableButton[]; hideColumns?: string[]; onClick?: () => void; onMouseOver?: () => void; onMouseOut?: () => void; onColumnVisibilityChange?: (column: string, value: boolean) => void; onChangePage?: (pagination: Pagination) => void; onFilterClick?: (column: string) => void; onSortClick?: (column: string, direction: string) => void; onDragEnd?: (data: any[]) => void; } export interface ColumnsTable { header: string; accessorKey: string; type: string; enableColumnFilter: boolean; filterFn: string; nofilter?: boolean; } export {};