import { EsTableSpecialCell } from "./cell-type.enum"; import { EsButton } from "@eurosat/buttons"; export interface EsTable { options?: EsTableOptions; columns?: EsTableColumn[]; gridUrl?: string; } export interface EsTableColumn { id: string; label: string; sortable: boolean; visibility: number; width?: number; tooltipVisible?: string; classes?: string; } export interface EsTableOptions { url: string; multiselect: boolean; grouping?: boolean; groupingView?: { groupField: string[]; groupFieldTitle: string[]; groupDataSorted: boolean; groupColumnShow: boolean[]; }; selectable?: boolean; autoSelectFirstRow?: boolean; pager?: string; appendable?: boolean; appendableInterval?: number; } export interface EsTableSetup { columns: EsTableSetupColumn[]; options: EsTableSetupOptions; records: number; } export interface EsTableSetupColumn { id: string; label: string; search: boolean; sortable: boolean; hidden: boolean; detailHidden: boolean; resizeable: boolean; anVisibility: number; filter: EsTableSetupFilter; width?: number; tooltipVisible?: boolean; classes?: string; } export interface EsTableSetupFilter { render: boolean; } export interface EsTableSetupOptions { selectable: boolean; autoSelectFirstRow: boolean; multiselect: boolean; } export type EsTableRow = { [k: string]: number | string | EsTableSpecialCell; rowClass?: string; }; export interface EsTablePageData { rows: EsTableRow[]; records: number; page: number; } export interface TableRowButton { row: any; button: EsButton; }