import { SafeUrl } from '@angular/platform-browser'; export interface DataTableHeader { text: string; customClass?: string; } export interface DefaultCell { customClass?: string; } export interface DataTableRedirect extends DefaultCell { type: 'redirect-internal' | 'redirect-external'; name: string; value: string | SafeUrl; } export interface DataTableCheckbox extends DefaultCell { type: 'checkbox'; value: boolean; disabled?: boolean; } export interface DataTableValue extends DefaultCell { type: 'value'; value: string; } export interface DataTableInput extends DefaultCell { type: 'input'; value: string; } export interface DataTableInputNumber extends DefaultCell { type: 'input-number'; value?: number; min: number; max: number; } export type DataTableCell = DataTableRedirect | DataTableCheckbox | DataTableValue | DataTableInput | DataTableInputNumber; export type DataTableRow = DataTableCell[]; export interface DataTableRowClickEvent { event: Event; row: DataTableRow; index: number; } export interface DataTableCellClickEvent extends DataTableRowClickEvent { cell: DataTableCell; } export interface DataTableCheckEvent { event: Event; row: DataTableRow; cell: DataTableCell; index: number; } export interface DatatableInputEvent { event: Event; row: DataTableRow; cell: DataTableCell; index: number; } export type DataTableClickEvent = DataTableRowClickEvent | DataTableCellClickEvent;