UNPKG

mui-simple

Version:

Override mui-v7 components to simplify usage

185 lines 5.34 kB
import type { ReactNode, ReactElement, ElementType } from 'react'; import type { Theme } from '@mui/material'; import type { AvatarProps, PaginationProps } from '../../decs'; export type SORT_TYPE = '1' | '-1'; export interface TableColumn { id?: string; field?: string; label: string; numeric?: boolean; disablePadding?: boolean; align?: 'right' | 'left' | 'center'; format?: ((content: any, data: any) => string) | string; dateFormat?: string; props?: object | any; cmp?: ReactElement | ReactNode | string; image?: boolean | (Partial<AvatarProps> & { width?: string | number; height?: string | number; avatar?: boolean; }); orderBy?: SORT_TYPE; type?: string; [key: string]: any; } export type SORT_VALUE_TYPE = 'asc' | 'desc' | undefined; export interface getDataRangeProps { rows: number; total: number; page: number; rowsPerPage: number; } export interface ColorsProps { color?: string; background?: string; } export interface extractColorsProps { theme: Theme; colors: string | ColorsProps; } export interface useDataProps { page: number; independentData: any; sortColumns: TableColumn[]; data: any[]; sliceFrom: number; sliceTo: number; } export interface Pagination { total?: number; rowsPerPage?: number; page?: number; } export interface usePaginationDetailsProps { rows: number; pagination: Pagination; rowsPerPageOptions: number[]; } export interface usePaginationDetailsResult { independentData: boolean; total: number; rowsPerPage: number; page: number; emptyRows: number; sliceFrom: number; sliceTo: number; rowsPerPageList: number[]; } export interface useSortColumnsResult { sortColumns: TableColumn[]; handleRequestSort: (event: any, property: any, orderBy: any) => void; cmp: React.ReactElement; } export interface useSortColumnsProps { firstItem: any; columns: TableColumn[]; hide: boolean; onChangeSortColumns: (sort: Record<string, string | number>) => void; title: string; tooltip: string; colors: ColorsProps; } export interface useSelectionModeProps { selectionMode: boolean; hide: boolean; tooltip: string; colors: ColorsProps | string; } export interface useSelectionResult { selected: string[]; isSelected: (id: string) => boolean; handleSelectAllClick: (event: any) => void; handleSelect: (event: any, name: string) => void; } export interface useFilterColumnsProps { firstItem: Record<string, string>; columns: TableColumn[]; hide: boolean; tooltip: string; title: string; colors: ColorsProps; } export interface ToolbarAction { tooltip?: string; Cmp: React.ReactElement; } export interface EnhancedTableToolbarProps { actions: ToolbarAction[]; colorProps: ColorsProps; data: any[]; fieldId: string; filterAction: ReactNode; selected: string[]; selectedActions: ToolbarAction[]; selectedLabel: string; selectionModeAction: ReactNode; sortColumnsAction: ReactNode; title: string; } export interface EnhancedTablePaginationProps { onChangePagination: (param: { orderBy: string | boolean; pagination: Pagination; }) => void; rows: number; pagination: Pagination; paginationProps: any; paginationAlign: any; PaginationComponent: any; orderBy: any; } export interface EnhancedTableRowProps { columns: TableColumn[]; handleClick: (event: any, data: any) => void; index: number; evenRowsColor: ColorsProps; oddRowsColor: ColorsProps; actionColor: ColorsProps; onSelect: (event: any, checked?: boolean) => void; selected: boolean; selectionMode: boolean; } export interface TableProps { actionColor?: string | ColorsProps; actions?: ToolbarAction[]; addFilterColumnsAction?: boolean; addSelectionModeAction?: boolean; addSortColumnsAction?: boolean; columns?: TableColumn[]; data?: any[]; rowsPerPageOptions?: number[]; DEFAULT_EMPTY_ROW_HEIGHT?: number; dense?: boolean; elevation?: number; evenRowsColor?: string | ColorsProps; fieldId?: string; FILTER_MENU_TITLE_LABEL?: string; FILTER_TOOLTIP_LABEL?: string; headerColor?: string | ColorsProps; helperText?: string; maxHeight?: string | number; NUM_SELECTED_LABEL?: string; oddRowsColor?: string | ColorsProps; onChangePagination?: (param: { orderBy: string | boolean; pagination: Pagination; }) => void; onChangeSortColumns?: (sort: Record<string, string | number>) => void; onClickRow?: (rowId: string, rowData: any) => void; orderBy?: Record<string, string | number>; pagination?: Pagination; paginationAlign?: 'start' | 'center' | 'end'; PaginationComponent?: ElementType; EmptyResultCmp?: ReactNode | string | JSX.Element; paginationProps?: PaginationProps; selectedActions?: ToolbarAction[]; SELECTION_MODE_TOOLTIP_LABEL?: string; selectionMode?: boolean; SORT_MENU_TITLE_LABEL?: string; SORT_TOOLTIP_LABEL?: string; stickyHeader?: boolean; tableColor?: string | ColorsProps; title?: string; [key: string]: any; } //# sourceMappingURL=Table.desc.d.ts.map