@visactor/vtable-gantt
Version:
canvas table width high performance
182 lines (181 loc) • 8.57 kB
TypeScript
import { Scenegraph } from './scenegraph/scenegraph';
import type { ITaskBarStyle, GanttConstructorOptions, IGrid, ITimelineHeaderStyle, IMarkLine, ITaskBarLabelText, ITaskBarLabelTextStyle, IScrollStyle, IFrameStyle, ITableColumnsDefine, ITaskBarCustomLayout, ITimelineDateInfo, ITimelineScale, ILineStyle, ITaskCreationCustomLayout, ITaskLink, ITaskBarSelectedStyle, ITaskBarHoverStyle, ITaskLinkSelectedStyle, IPointStyle, TaskBarInteractionArgumentType, IEventOptions, IMilestoneStyle, IKeyboardOptions, IMarkLineCreateOptions } from './ts-types';
import { TasksShowMode } from './ts-types';
import type { ListTableConstructorOptions } from '@visactor/vtable';
import { ListTable } from '@visactor/vtable';
import { EventManager } from './event/event-manager';
import { StateManager } from './state/state-manager';
import { EventTarget } from './event/EventTarget';
import { DataSource } from './data/DataSource';
import { PluginManager } from './plugins/plugin-manager';
export declare function createRootElement(padding: any, className?: string): HTMLElement;
export declare class Gantt extends EventTarget {
options: GanttConstructorOptions;
container: HTMLElement;
tableNoFrameWidth: number;
tableNoFrameHeight: number;
tableX: number;
tableY: number;
scenegraph: Scenegraph;
stateManager: StateManager;
eventManager: EventManager;
taskListTableInstance?: ListTable;
canvas: HTMLCanvasElement;
element: HTMLElement;
verticalSplitResizeLine: HTMLDivElement;
horizontalSplitLine: HTMLDivElement;
context: CanvasRenderingContext2D;
timeLineHeaderLevel: number;
itemCount: number;
drawHeight: number;
headerHeight: number;
gridHeight: number;
pluginManager: PluginManager;
parsedOptions: {
timeLineHeaderRowHeights: number[];
rowHeight: number;
timelineColWidth: number;
scrollStyle: IScrollStyle;
timelineHeaderVerticalLineStyle: ILineStyle;
timelineHeaderHorizontalLineStyle: ILineStyle;
timelineHeaderBackgroundColor: string;
timelineHeaderStyles: ITimelineHeaderStyle[];
sortedTimelineScales: (ITimelineScale & {
timelineDates?: ITimelineDateInfo[];
})[];
reverseSortedTimelineScales: (ITimelineScale & {
timelineDates?: ITimelineDateInfo[];
})[];
timeScaleIncludeHour: boolean;
grid: IGrid;
taskBarStyle: ITaskBarStyle | ((interactionArgs: TaskBarInteractionArgumentType) => ITaskBarStyle);
taskBarMilestoneStyle: IMilestoneStyle;
projectBarStyle: ITaskBarStyle | ((interactionArgs: TaskBarInteractionArgumentType) => ITaskBarStyle);
taskBarMilestoneHypotenuse: number;
taskBarHoverStyle: ITaskBarHoverStyle;
taskBarSelectedStyle: ITaskBarSelectedStyle;
taskBarSelectable: boolean;
taskBarLabelText: ITaskBarLabelText;
taskBarMoveable: boolean | ((interactionArgs: TaskBarInteractionArgumentType) => boolean);
moveTaskBarToExtendDateRange: boolean;
taskBarResizable: boolean | [boolean, boolean] | ((interactionArgs: TaskBarInteractionArgumentType) => boolean | [boolean, boolean]);
taskBarDragOrder: boolean;
taskBarLabelStyle: ITaskBarLabelTextStyle;
taskBarCustomLayout: ITaskBarCustomLayout;
taskBarCreatable: boolean | ((interactionArgs: TaskBarInteractionArgumentType) => boolean);
taskBarCreationButtonStyle: ILineStyle & {
cornerRadius?: number;
backgroundColor?: string;
};
taskBarCreationCustomLayout: ITaskCreationCustomLayout;
taskBarCreationMaxWidth: number;
taskBarCreationMinWidth: number;
outerFrameStyle: IFrameStyle;
pixelRatio: number;
tasksShowMode: TasksShowMode;
projectSubTasksExpandable: boolean;
startDateField: string;
endDateField: string;
progressField: string;
minDate: Date;
maxDate: Date;
_minDateTime: number;
_maxDateTime: number;
markLine: IMarkLine[];
scrollToMarkLineDate: Date;
horizontalSplitLine: ILineStyle;
verticalSplitLine: ILineStyle;
verticalSplitLineHighlight: ILineStyle;
verticalSplitLineMoveable?: boolean;
overscrollBehavior: 'auto' | 'none';
dateFormat?: 'yyyy-mm-dd' | 'dd-mm-yyyy' | 'mm/dd/yyyy' | 'yyyy/mm/dd' | 'dd/mm/yyyy' | 'yyyy.mm.dd' | 'dd.mm.yyyy' | 'mm.dd.yyyy';
taskKeyField: string;
dependencyLinks?: ITaskLink[];
dependencyLinkCreatable: boolean;
dependencyLinkSelectable: boolean;
dependencyLinkDeletable: boolean;
dependencyLinkLineStyle: ILineStyle;
dependencyLinkSelectedLineStyle: ITaskLinkSelectedStyle;
dependencyLinkLineCreatePointStyle: IPointStyle;
dependencyLinkLineCreatingPointStyle: IPointStyle;
dependencyLinkLineCreatingStyle?: ILineStyle;
underlayBackgroundColor: string;
eventOptions: IEventOptions;
keyboardOptions: IKeyboardOptions;
markLineCreateOptions: IMarkLineCreateOptions;
};
taskTableWidth: number;
taskTableColumns: ITableColumnsDefine;
records: any[];
data: DataSource;
constructor(container: HTMLElement, options: GanttConstructorOptions);
renderTaskBarsTable(): void;
_updateSize(): void;
_updateListTableSize(taskListTableInstance: ListTable): void;
_generateListTable(): void;
_generateListTableOptions(): ListTableConstructorOptions;
getElement(): HTMLElement;
getContainer(): HTMLElement;
_sortScales(): void;
_generateTimeLineDateMap(): void;
getRowHeightByIndex(index: number): number;
getRowsHeightByIndex(startIndex: number, endIndex: number): number;
getAllRowsHeight(): number;
getAllHeaderRowsHeight(): number;
getAllDateColsWidth(): number;
getAllTaskBarsHeight(): number;
getRecordIndexByTaskShowIndex(showIndex: number): number | number[];
getTaskShowIndexByRecordIndex(index: number | number[]): number;
getRecordByIndex(taskShowIndex: number, sub_task_index?: number | number[]): any;
_refreshTaskBar(taskShowIndex: number, sub_task_index?: number): void;
_updateRecordToListTable(record: any, index: number | number[]): void;
getTaskInfoByTaskListIndex(taskShowIndex: number, sub_task_index?: number | number[]): {
taskRecord: any;
taskDays: number;
startDate: Date;
endDate: Date;
progress: number;
};
_updateStartDateToTaskRecord(startDate: Date, index: number, sub_task_index?: number | number[]): void;
_updateEndDateToTaskRecord(endDate: Date, index: number, sub_task_index?: number): void;
_updateStartEndDateToTaskRecord(startDate: Date, endDate: Date, index: number, sub_task_index?: number): void;
_dragOrderTaskRecord(source_index: number, source_sub_task_index: number, target_index: number, target_sub_task_index: number): void;
updateTaskRecord(record: any, task_index: number | number[]): void;
updateTaskRecord(record: any, task_index: number, sub_task_index: number): void;
setPixelRatio(pixelRatio: number): void;
updateTasksShowMode(tasksShowMode: TasksShowMode): void;
_resize(): void;
_syncPropsFromTable(): void;
getContext(): CanvasRenderingContext2D;
release(): void;
updateOption(options: GanttConstructorOptions): void;
setRecords(records: any[]): void;
updateScales(scales: ITimelineScale[]): void;
updateDateRange(minDate: string, maxDate: string): void;
updateMarkLine(markLine: IMarkLine[]): void;
addMarkLine(markLine: IMarkLine): void;
updateCurrentMarkLine(markLine: IMarkLine): void;
_scrollToMarkLine(): void;
scrollToMarkLine(date: Date): void;
addLink(link: ITaskLink): void;
deleteLink(link: ITaskLink): void;
get scrollTop(): number;
set scrollTop(value: number);
get scrollLeft(): number;
set scrollLeft(value: number);
getTaskBarRelativeRect(index: number): {
left: number;
top: number;
width: number;
height: number;
};
getDateColWidth(dateIndex: number): number;
getDateColsWidth(startDateIndex: number, endDateIndex: number): number;
getDateRangeByIndex(index: number): {
startDate: Date;
endDate: Date;
};
parseTimeFormat(date: string): string;
getTaskBarStyle(task_index: number, sub_task_index?: number | number[]): ITaskBarStyle;
formatDate(date: Date | string, format: string): string;
}