import { TulTooltipConfig, TulTooltipPosition, TulTooltipType } from '../../../tul-tooltip'; import { TypeColumnForms, TypeLinkForms } from '../../enums/columns/typeColumnForms.enum'; import { Data } from '../data'; export interface ValidField { invalidField: boolean; errors: any[]; } export interface ColumnForms { header: string; attribute: string; number: number; type?: TypeColumnForms; placeholder?: string; required?: boolean; disabled?: boolean; secondAttribute?: string; link?: ExternalLink | InternalLink; filter?: FilterColumnForms; defaultValue?: any; visible?: VisibleForms; error?: string | null; changeField?: (data: ChangeFieldData) => void; transformData?: any | (({ data, column }: any) => any); tooltip?: TooltipForms | TulTooltipConfig; } export interface VisibleForms { inAdd?: boolean; inEdit?: boolean; inDetails?: boolean; } export interface TooltipForms { disabled?: boolean | (({ data, column }: any) => boolean); title?: string | (({ data, column }: any) => string); icon?: string; position?: TulTooltipPosition; type?: TulTooltipType; } /** * column filter fields */ export interface FilterColumnForms { /** * filter visible */ filter: boolean; /** * attribute to send filter */ attribute?: string; /** * additional search filter field */ additionalSearchFilter?: string; /** * placeholder search field */ placeholder?: string; } export interface ChangeFieldData { data: Data; column: ColumnForms; columns: Array; } export interface LinkForms { disabled?: boolean; type: TypeLinkForms; } /** * Link optional param to render url ready to use */ export interface ExternalLink extends LinkForms { url: string | (({ data, column }: any) => string); } /** * Link optional param to render link based on uuid WIP * @experimental feature is still testing */ export interface InternalLink extends LinkForms { uuid: string; } export default ColumnForms;