UNPKG

digitinary-ui

Version:

Digitinary UI Library

135 lines (134 loc) 4.2 kB
/// <reference types="react" /> import { TablePaginationProps } from '../../types'; export interface SingleSortIconProps { columnName: string; sortable: boolean; onClick: () => void; currentHeadCell: string; sort: '' | 'asc' | 'desc'; } export interface MaltiSortIconProps { columnName: string; sortable: boolean; onClick: () => void; sort: Record<string, 'asc' | 'desc' | ''>; } export interface TaskTableProps { columns: TableColoumn[]; setColumns: (columns: TableColoumn[]) => void; data: TableData; setData: (data: TableRow) => void; selectable?: boolean; expandable?: boolean; expandComponent: React.ComponentType<{ rowData: TableRow; }>; resizable?: boolean; selectedRows: Set<number>; setSelectedRows: (rows: Set<number>) => void; isDragAndDropEnabled?: boolean; paginationOptions?: TablePaginationProps; sort?: '' | 'asc' | 'desc' | Record<string, '' | 'asc' | 'desc'>; setSort?: React.Dispatch<React.SetStateAction<'' | 'asc' | 'desc' | Record<string, '' | 'asc' | 'desc'>>>; currentHeadCell?: string; setCurrentHeadCell?: React.Dispatch<React.SetStateAction<string>>; maltiSort: boolean; } export interface setSingleSortProps { headCell: { id: string; }; currentHeadCell: string; setCurrentHeadCell: (value: string) => void; sort: '' | 'asc' | 'desc'; setSort: (value: '' | 'asc' | 'desc') => void; } export interface setMaltiSortProps { headCell: { id: string; }; sort: Record<string, 'asc' | 'desc' | ''>; setSort: (value: Record<string, 'asc' | 'desc' | ''>) => void; } export type HeaderType = { getResizeHandler: () => (event: React.MouseEvent<HTMLDivElement> | React.TouchEvent<HTMLDivElement>) => void; column: { getIsResizing: () => boolean; id: string; }; }; export interface ResizableColumnProps { header: HeaderType; resizable: boolean; } export interface SortableHeaderProps { header: HeaderType; currentHeadCell: string; setCurrentHeadCell: (value: string) => void; sort: '' | 'asc' | 'desc' | Record<string, '' | 'asc' | 'desc'>; setSort: (value: '' | 'asc' | 'desc' | Record<string, '' | 'asc' | 'desc'>) => void; sortable: boolean; maltiSort: boolean; } export interface DraggableColumnProps { index: number; moveColumn: (fromIndex: number, toIndex: number) => void; children: React.ReactNode; isDragAndDropEnabled: boolean; header: HeaderType; resizable: boolean; currentHeadCell?: string; setCurrentHeadCell?: (value: string) => void; sortable: boolean; sort?: '' | 'asc' | 'desc' | Record<string, '' | 'asc' | 'desc'>; setSort?: (value: '' | 'asc' | 'desc' | Record<string, '' | 'asc' | 'desc'>) => void; maltiSort: boolean; } type CellProps = { getValue: () => void; row: { original: Record<string, string | number | boolean | Record<string, string | number | boolean>>; }; }; export type TableColoumn = { accessorKey: string | number; header: string; cell: (props: CellProps) => React.ReactNode; size?: number; sortable?: boolean; [key: string]: string | boolean | number | object | undefined; }; export type TableRow = Record<string, string | number | boolean | Object | Record<string, string | number | boolean | Object>> | any; export type TableData = TableRow[] | any; export interface SelectAllRowsProps { selectable: boolean; data: TableData; selectedRows: Set<number>; setSelectedRows: (rows: TableData) => void; } export interface SelectRowProps { rowIndex: number; selectable: boolean; selectedRows: Set<number>; setSelectedRows: (rows: TableData) => void; } export type Column = { accessorKey: string; header: string; cell: (props: { getValue: () => void; }) => React.ReactNode; }; export interface ExpandableSectionProps<TData extends { id: string; }> { expandedRows: Set<string>; selectable: boolean; columns: TableColoumn[]; expandable: boolean; row: TData; ExpandComponent: React.ComponentType<{ rowData: TData; }>; } export {};