fenextjs-component
Version:
59 lines (58 loc) • 2.3 kB
TypeScript
import React, { ReactNode } from "react";
import { PaginationProps } from "../Pagination";
import { TableActionCheckboxProps } from "../TableActionCheckbox";
import { _TProps } from "fenextjs-interface";
import { CollapseProps } from "../Collapse/Simple";
import { ErrorFenextjs } from "fenextjs-error";
export interface TableClassProps {
classNameContent?: string;
classNameContentTable?: string;
classNameTable?: string;
classNameTHead?: string;
classNameTBody?: string;
classNameThr?: string;
classNameTr?: string;
classNameTh?: string;
classNameTd?: string;
classNameTdLabelCollapse?: string;
classNameContentPagination?: string;
classNameLoader?: string;
}
export type TableHeader<T> = {
id: keyof T;
th: ReactNode;
thText?: string;
parse?: (data: T) => any;
columnOptions?: {
orderBy?: boolean;
};
defaultShowHidden?: "show" | "hidden";
colNewTr?: boolean;
isCollapse?: boolean;
collapseProps?: Omit<CollapseProps, "children">;
className?: string;
}[];
export interface TableBaseProps<T> extends _TProps {
name: string;
items: T[];
nItems?: number;
error?: ErrorFenextjs;
header: TableHeader<T>;
pagination?: Omit<PaginationProps, "nItems">;
loader?: boolean;
typeLoader?: "spinner" | "line";
useCheckbox?: boolean;
onChecked?: (items: T[]) => void;
onOrderBy?: (order: {
id: keyof T;
order: "ASC" | "DESC";
}) => void;
notResult?: ReactNode;
showPagination?: boolean;
actionsCheckbox?: Omit<TableActionCheckboxProps<T>, "actionAllCheckbox" | "data">;
actionsCheckboxSelectAll?: ReactNode;
restartPaginationInRenderTable?: boolean;
}
export interface TableProps<T> extends TableClassProps, TableBaseProps<T> {
}
export declare const Table: <T>({ classNameContent, classNameContentTable, classNameTable, classNameTHead, classNameTBody, classNameThr, classNameTr, classNameTh, classNameTd, classNameTdLabelCollapse, classNameContentPagination, classNameLoader, name, items, header, error, nItems, pagination, showPagination, loader, typeLoader, useCheckbox, onOrderBy, restartPaginationInRenderTable, onChecked, notResult, actionsCheckbox, actionsCheckboxSelectAll, ...props }: TableProps<T>) => React.JSX.Element;