export interface TableColumn { prop: string; label: string; columnType: ColumnType; hasFilter: boolean; resizeable: boolean; draggable: boolean; translateValue?: boolean; booleanFormat?: BooleanFormat; showBooleanText?: boolean; showBooleanIcons?: boolean; width?: number; ignoreHeaders?: boolean; defaultValue?: any; numberFormat?: string; dateFormat?: string; timeFormat?: string; enumIconOptions?: EnumIconOptions[]; centerAlign?: boolean; } export interface TableSort { column: string; sortDirection: SortDirection; } export interface TableFilter { column: TableColumn; searchText: string } export interface ActionColumn { actionName: string; actionIcon: string; columnType: ActionColumnType; class?: string; width?: number; hoverText?: string; disabledProp?: string; disabledPropHoverText?: string; columnDisabled?: boolean; showSpinnerOnClick?: boolean; showSpinner?: boolean; rowClicked?: any; } export interface EnumIconOptions { matIcon: string; enumValue: any; displayValue?: string; translateDisplayValue?: boolean; color?: string; } export enum ActionColumnType { MATERIAL = 'MATERIAL', CUSTOM = 'CUSTOM' } export enum ColumnType { TEXT = 'TEXT', BOOLEAN = 'BOOLEAN', NUMBER = 'NUMBER', DATE = 'DATE', ENUM_ICON = 'ENUM_ICON', TIME_SINCE = 'TIME_SINCE' } export enum BooleanFormat { YESNO = 'YESNO', TRUEFALSE = 'TRUEFALSE', SUCCESSERROR = 'SUCCESSERROR' } export enum SortDirection { ASCENDING = 'asc', DESCENDING = 'desc' } export interface TableToggleEvent { enabled: boolean; row: any; } export enum SelectionType { single = 'single', multi = 'multi', multiClick = 'multiClick', cell = 'cell', checkbox = 'checkbox' }