@visactor/vtable-gantt
Version:
canvas table width high performance
107 lines (106 loc) • 3.03 kB
TypeScript
import type { FederatedPointerEvent } from '@visactor/vtable/es/vrender';
import type { IMarkLine, ITaskLink, ITimelineDateInfo } from './gantt-engine';
import type { IPosition } from './common';
export type TableEventListener<TYPE extends keyof TableEventHandlersEventArgumentMap> = (args: TableEventHandlersEventArgumentMap[TYPE]) => TableEventHandlersReturnMap[TYPE];
export type EventListenerId = number;
export interface TableEventHandlersEventArgumentMap {
scroll: {
scrollLeft: number;
scrollTop: number;
scrollDirection: 'horizontal' | 'vertical';
scrollRatioX?: number;
scrollRatioY?: number;
};
mouseenter_task_bar: {
index: number;
sub_task_index?: number;
record: any;
event: Event;
federatedEvent: FederatedPointerEvent;
};
mouseleave_task_bar: {
index: number;
sub_task_index?: number;
record: any;
event: Event;
federatedEvent: FederatedPointerEvent;
};
click_task_bar: {
index: number;
sub_task_index?: number;
record: any;
event: Event;
federatedEvent: FederatedPointerEvent;
};
contextmenu_task_bar: {
index: number;
sub_task_index?: number;
record: any;
event: Event;
federatedEvent: FederatedPointerEvent;
};
change_date_range: {
index: number;
sub_task_index?: number;
startDate: Date;
endDate: Date;
oldStartDate: Date;
oldEndDate: Date;
record: any;
};
create_task_schedule: {
federatedEvent: FederatedPointerEvent;
event: Event;
index: number;
sub_task_index?: number;
startDate: string;
endDate: string;
record: any;
parentRecord?: any;
};
create_dependency_link: {
federatedEvent: FederatedPointerEvent;
event: Event;
link: ITaskLink;
};
delete_dependency_link: {
event: KeyboardEvent;
link: ITaskLink;
};
click_dependency_link_point: {
event: Event;
point: 'start' | 'end';
index: number;
sub_task_index?: number;
record: any;
};
contextmenu_dependency_link: {
federatedEvent: FederatedPointerEvent;
event: Event;
link: ITaskLink;
};
click_markline_create: {
event: Event;
data: ITimelineDateInfo;
position: IPosition;
};
click_markline_content: {
event: Event;
data: IMarkLine;
position: IPosition;
};
}
export interface TableEventHandlersReturnMap {
scroll: void;
mouseenter_task_bar: void;
mouseleave_task_bar: void;
click_task_bar: void;
contextmenu_task_bar: void;
change_date_range: void;
create_task_schedule: void;
create_dependency_link: void;
delete_dependency_link: void;
contextmenu_dependency_link: void;
click_markline_create: void;
click_markline_content: void;
}