export enum ViewMode { QuarterDay = "Quarter Day", HalfDay = "Half Day", Day = "Day", /** ISO-8601 week */ Week = "Week", Month = "Month", } export interface Task { id: string; name: string; start: Date; end: Date; /** * From 0 to 100 */ progress: number; styles?: { backgroundColor?: string; backgroundSelectedColor?: string; progressColor?: string; progressSelectedColor?: string; }; isDisabled?: boolean; dependencies?: string[]; } export interface EventOption { /** * Time step value for date changes. */ timeStep?: number; onDoubleClick?: (task: Task) => void; onDateChange?: (task: Task) => void | Promise; onProgressChange?: (task: Task) => void | Promise; onTaskDelete?: (task: Task) => void | Promise; } export interface DisplayOption { viewMode?: ViewMode; /** * Specifies the month name language. Able formats: ISO 639-2, Java Locale */ locale?: string; } export interface StylingOption { headerHeight?: number; columnWidth?: number; listCellWidth?: string; rowHeight?: number; ganttHeight?: number; barCornerRadius?: number; handleWidth?: number; fontFamily?: string; fontSize?: string; /** * How many of row width can be taken by task. * From 0 to 100 */ barFill?: number; barProgressColor?: string; barProgressSelectedColor?: string; barBackgroundColor?: string; barBackgroundSelectedColor?: string; arrowColor?: string; arrowIndent?: number; todayColor?: string; TooltipContent?: React.FC<{ task: Task; fontSize: string; fontFamily: string; }>; TaskListHeader?: React.FC<{ headerHeight: number; rowWidth: string; fontFamily: string; fontSize: string; }>; TaskListTable?: React.FC<{ rowHeight: number; rowWidth: string; fontFamily: string; fontSize: string; locale: string; tasks: Task[]; }>; } export interface GanttProps extends EventOption, DisplayOption, StylingOption { tasks: Task[]; }