UNPKG

@circe/table

Version:
110 lines (109 loc) 3.83 kB
import { NpaIconOld, NpaId, NpaOption, NpaStatuses } from '@circe/core'; import { SelectConfig } from '@circe/select'; import { NpaActionConfig } from './table-actions/table-actions.types'; import { Observable } from 'rxjs'; import { NpaDropdownConfig } from '@circe/dropdown'; export declare type NpaTableColumnType = 'date' | 'radio' | 'select' | 'checkbox' | 'link' | 'badge' | 'icon' | 'action'; export declare type NpaTableRowValue<T> = { npaTableDataSource: T; [key: string]: any; }; export declare type NpaTableLinkAction<T> = (row: NpaTableRowValue<T>) => void; export declare type NpaActionConfigSource<T> = (row: NpaTableRowValue<T>) => NpaActionConfig<T>[]; export declare type NpaTableIconSource<T> = (row: NpaTableRowValue<T>) => NpaIconOld; export declare type NpaTableStatusSource<T> = (row: NpaTableRowValue<T>) => NpaStatuses; export declare type NpaTableSortSource<T> = (sortType: 'asc' | 'desc', columnId: NpaId, rows: NpaTableRowValue<T>[]) => Observable<NpaTableRowValue<T>[]>; export declare type NpaTableSortType = 'asc' | 'desc'; export declare type NpaTableActionType = 'button' | 'iconButton' | 'link'; export interface NpaTableConfigModel<T> { keyColumnParam: string; columns: NpaTableColumnConfigurationModel<T>[]; actionsConfig?: NpaTableActionsConfigurationModel<T>; defaultActionColumnId?: string; hoverRows?: boolean; showHeader?: boolean; sortTable?: boolean; truncateTexts?: boolean; tableHeight?: number; minColumnWidth?: number; initialSort?: NpaTableSort; sortSource?: NpaTableSortSource<T>; emitOnScroll?: boolean; } export interface NpaTableActionsConfigurationModel<T> { actionsType: NpaTableActionType; dropdownConfig?: NpaDropdownConfig; defaultActionId?: NpaId; columnName?: string; showOnHover?: boolean; columnWidth?: number; group?: boolean; hideColumn?: boolean; actions?: NpaActionConfig<T>[] | NpaActionConfigSource<T>; } export interface NpaTableColumnConfigurationModel<T> { id?: NpaId; sortable?: boolean; defaultActionColumn?: boolean; columnName?: string; param?: string; type?: NpaTableColumnType; columnWidth?: number; typeConfig?: NpaRadioColumnConfig | NpaCheckboxColumnConfig | NpaSelectColumnConfig | NpaLinkColumnConfig<T> | NpaIconColumnConfig<T> | NpaBadgeColumnConfig<T> | NpaDateColumnConfig; } export interface NpaRadioColumnConfig { label?: string; defaultValue?: number; } export interface NpaCheckboxColumnConfig { label?: string; checkboxInHeader?: boolean; defaultValue?: boolean; } export interface NpaSelectColumnConfig { options: NpaOption[]; multilevel?: boolean; multilevelButtonLabel?: string; placeholder?: string; defaultValue?: NpaId[]; selectConfig?: SelectConfig; } export interface NpaLinkColumnConfig<T> { label: string; linkAction?: NpaTableLinkAction<T>; } export interface NpaIconColumnConfig<T> { icon: NpaIconOld | NpaTableIconSource<T>; onlyIcon?: boolean; } export interface NpaBadgeColumnConfig<T> { type?: NpaStatuses | NpaTableStatusSource<T>; } export interface NpaDateColumnConfig { dateMask?: string; } export interface NpaTableColumn<T> extends Omit<NpaTableColumnConfigurationModel<T>, 'type'> { type?: NpaTableColumnType | 'action'; rowId?: NpaId; value?: any; icon?: string; onlyIcon?: boolean; badgeType?: string; dateMask?: string; selectConfig?: SelectConfig; actions?: NpaActionConfig<T>[]; } export interface NpaTableSort { columnId: NpaId; sortType: NpaTableSortType; } export interface NpaTableFilter { columns: NpaId[]; value: any; searchExactly?: boolean; } export interface NpaTableCheckboxSelection { checkAll: boolean; checkNone: boolean; model: boolean; }