import { LabelOptions, SelectOptions, CellDropdownT } from './cellDropdown'; import { DEFAULT_COLUMN_TYPES_STR } from '../enums/defaultColumnTypes'; import { CustomTextProcessing } from './customTextProcessing'; import { IconSettings } from './dropdownButtonItem'; import { Calendar } from './calendarFunctionality'; import { TextValidation } from './textValidation'; import { InterfacesUnion } from './utilityTypes'; import { Sorting } from './sorting'; export type ColumnIconSettings = InterfacesUnion<{ reusableIconName: DEFAULT_COLUMN_TYPES_STR; } | IconSettings>; interface Parent { name: string; textValidation?: TextValidation; customTextProcessing?: CustomTextProcessing; sorting?: Sorting; iconSettings?: ColumnIconSettings; } interface Label extends Omit { label: CellDropdownT | true; } interface Select extends Omit { select: CellDropdownT | true; } interface CalendarT extends Omit { calendar: Calendar; } interface Checkbox extends Omit { checkbox: true; } export type ColumnType = InterfacesUnion