react-gantt-svg
Version:
A React Gantt chart component library
28 lines (27 loc) • 1.51 kB
TypeScript
import type { Task, BarTask } from '../types';
import { ViewMode } from '../types';
export declare function isKeyboardEvent(event: React.MouseEvent | React.KeyboardEvent | React.FocusEvent): event is React.KeyboardEvent;
export declare function isMouseEvent(event: React.MouseEvent | React.KeyboardEvent | React.FocusEvent): event is React.MouseEvent;
export declare function isBarTask(task: Task | BarTask): task is BarTask;
export declare function removeHiddenTasks(tasks: Task[]): Task[];
export declare const sortTasks: (taskA: Task, taskB: Task) => number;
/**
* 根据拖拽的方向与位移,对任务列表进行级联时间偏移。
* 规则:
* - 当 deltaMs > 0(向后/未来拖动)时:将位于 draggedTask 之后的任务整体向后偏移 deltaMs。
* - 当 deltaMs < 0(向前/过去拖动)时:将位于 draggedTask 之前的任务整体向前偏移 deltaMs。
* - draggedTask 自身应用 deltaMs。
* 顺序依据传入的 tasks 数组顺序。
*/
/**
* 递归查找任务,支持在嵌套的 children 中查找
* @param tasks 任务列表
* @param taskId 要查找的任务ID
* @returns 找到的任务和其父任务,如果没找到则返回 undefined
*/
export declare const findTaskRecursively: (tasks: Task[], taskId: string) => {
task: Task;
parentTask?: Task;
} | undefined;
export declare const applyCascadeShift: (tasks: Task[], draggedTaskId: string, deltaMs: number) => Task[];
export declare const calculateTimeStep: (viewMode: ViewMode) => number;