UNPKG

react-smart-data-table

Version:

A smart data table component for React.js meant to be configuration free

86 lines (85 loc) 4.38 kB
import { CSSProperties, MouseEvent, ReactNode } from 'react'; export declare type UnknownObject<T = unknown> = Record<string, T>; export declare type ParseBool = { noWord: string; yesWord: string; }; export declare type ParseImg = { style: CSSProperties; className: string; }; export declare type TransformFN<T = UnknownObject> = (value: unknown, index: number, row: T) => ReactNode; export declare type RowClickFN<T = UnknownObject> = (event: MouseEvent<HTMLElement>, { rowData, rowIndex, tableData, }: { rowData: T; rowIndex: number; tableData: T[]; }) => void; export declare type CompareFunction<T> = (a: T, b: T) => number; export declare type HeaderSortable<T> = boolean | CompareFunction<T>; export interface Column<T> { key: string; text: string; invisible: boolean; sortable: HeaderSortable<T>; filterable: boolean; isImg: boolean; transform?: TransformFN<T>; } export declare type Headers<T> = Record<string, Column<T>>; export declare type Sorting = { key: string; dir: string; }; export interface Highlight { first: string | undefined; highlight: string | undefined; last: string | undefined; value: string; } export interface RenderOptions { children?: ReactNode; content?: ReactNode; parseBool?: boolean | ParseBool; } export declare type KeyResolverFN<T = UnknownObject> = (args: T) => T[]; export interface FetchDataOptions<T = UnknownObject> { dataKey?: string; dataKeyResolver?: KeyResolverFN<T>; options?: RequestInit; } export declare const head: <T>([first]: T[]) => T; export declare const tail: <T>(arr: T[]) => T; export declare const isString: (str: unknown) => boolean; export declare const isArray: <T = unknown>(obj: T) => boolean; export declare const isObject: <T = unknown>(obj: T) => boolean; export declare const isEmpty: <T = UnknownObject<unknown>>(obj: T | unknown[]) => boolean; export declare const isFunction: (fn: (...args: unknown[]) => unknown) => boolean; export declare const isNumber: <T = unknown>(num: T) => boolean; export declare const isUndefined: <T = unknown>(undef: T) => boolean; export declare const capitalize: (str: string) => string; export declare const sortBy: <T = UnknownObject<unknown>>(arr: T[], key: string, compareFn: HeaderSortable<T>) => T[]; export declare const cleanLonelyInt: (val: string) => boolean; export declare const debugPrint: (...args: unknown[]) => void; export declare const errorPrint: (...args: unknown[]) => void; export declare function generatePagination(activePage?: number, totalPages?: number, margin?: number): { active: boolean; value: number | undefined; text: string; }[]; export declare function getNestedObject<T = UnknownObject>(nestedObj: T, pathArr: string[]): unknown; export declare function fetchData<T = UnknownObject>(data: string | unknown[], { dataKey, dataKeyResolver, options, }?: FetchDataOptions<T>): Promise<T[]>; export declare function capitalizeAll(arr: string[]): string; export declare function parseHeader(val: string): string; export declare function valueOrDefault<T = unknown>(value: T, defaultValue: T): T; export declare function columnObject<T>(key: string, headers?: Headers<T>): Column<T>; export declare function getSampleElement<T = UnknownObject>(data?: T[], dataSampling?: number): T; export declare function parseDataForColumns<T = UnknownObject>(data?: T[], headers?: Headers<T>, orderedHeaders?: string[], hideUnordered?: boolean, dataSampling?: number): Column<T>[]; export declare function parseDataForRows<T = UnknownObject>(data?: T[]): T[]; export declare function filterRowsByValue<T = UnknownObject>(value: string, rows: T[], colProperties: Headers<T>): T[]; export declare function filterRows<T = UnknownObject>(value: string, rows: T[], colProperties: Headers<T>): T[]; export declare function sliceRowsPerPage<T = UnknownObject>(rows: T[], currentPage: number, perPage: number): T[]; export declare function sortData<T = UnknownObject>(filterValue: string, colProperties: Headers<T>, sorting: Sorting, data: T[]): T[]; export declare function isDataURL(url: unknown): boolean; export declare function isImage(url: unknown): boolean; export declare function highlightValueParts(value: string, filterValue: string): Highlight; export declare function getRenderValue({ children, content, parseBool, }?: RenderOptions): string;