UNPKG

bbl-gantt

Version:

一个框架无关的JS甘特图库,支持resize、拖拽新建、支持自定义样式、以及支持duration模式等功能。A framework-independent JS Gantt chart library, supporting resize, drag-and-drop to create new tasks, custom styling, and duration mode functionalities.

91 lines (90 loc) 3.2 kB
import { G } from '@svgdotjs/svg.js'; import { default as Gantt, _GanttEventItem, GanttEventItem, GanttEventItemTime, GanttItem } from '../index'; import { PartRender } from './index'; import { Render } from '../render'; import { EventItemRender } from './eventItem/eventItemRender'; import { default as dayjs, Dayjs } from 'dayjs'; import { DeepPartial } from 'utility-types'; export declare enum EventShapeType { rect = "rect", line = "line" } export type RenderItemOptions = { event: _GanttEventItem; index: number; eventIndex: number; addTo: G; gClassName?: string; bodyClassName?: string; bindEvent?: boolean; }; export type EventItemOperateType = 'left-resize' | 'right-resize' | 'body-move'; export type FindOptionEventItemResult = { item: GanttItem; parent: GanttItem | null; event: _GanttEventItem; eventOrigin?: GanttEventItem; eventIndex: number; }; export declare class EventsRender extends PartRender { gantt: Gantt; renderer: Render; constructor(gantt: Gantt, renderer: Render); map: WeakMap<_GanttEventItem, EventItemRender>; renderEvent(event: _GanttEventItem, index: number, eventIndex: number, g: G): EventItemRender | null; findOptionDataEvent(event: _GanttEventItem): null | FindOptionEventItemResult; deleteEvent(event: _GanttEventItem, emit?: boolean): void; removeEvent(event: _GanttEventItem): void; bindEvent(): void; unbindEvent(): void; private startEvent; private itemRender; private tmpItem; private operateType; isHovering: boolean; onEventItemBodyMouseEnter(args: { event: MouseEvent; itemRender: EventItemRender; }): void; onEventItemBodyMouseMove(args: { event: MouseEvent; itemRender: EventItemRender; }): void; cancelHovering(): void; onEventItemBodyMouseLeave(args: { event: MouseEvent; itemRender: EventItemRender; }): void; onEventItemLeftResizeMouseDown(args: { event: MouseEvent; itemRender: EventItemRender; }): void; onEventItemRightResizeMouseDown(args: { event: MouseEvent; itemRender: EventItemRender; }): void; onEventItemBodyMouseDown(args: { event: MouseEvent; itemRender: EventItemRender; }): void; onContainerMouseMove(event: MouseEvent): void; onContainerMouseUp(): void; onContainerMouseLeave(): void; g: G | null; render(): void; destroy(): void; private createTmpItem; private caculateDiffXTime; findNearTick(diffX: number, currentTime: Dayjs): dayjs.Dayjs; private caculateTmpItemFinalX; onTypeResizeMouseMove(event: MouseEvent, start?: boolean): void; updateEventItem(eventOrId: _GanttEventItem | string, newData: DeepPartial<Omit<_GanttEventItem | GanttEventItem, 'id'>>, needRender?: boolean): void; formatEventDataTime(newData: DeepPartial<Omit<_GanttEventItem, 'id'>>): { start?: GanttEventItemTime; end?: GanttEventItemTime; }; onTypeResizeMouseUp(): void; fixOutOfEdge(type: EventItemOperateType): void; onTypeBodyMoveMouseMove(event: MouseEvent): void; onTypeBodyMoveMouseUp(): void; }