@milpan/svelte-gantt
Version:
Interactive JavaScript Gantt chart/resource booking component
52 lines (51 loc) • 1.32 kB
TypeScript
/// <reference types="svelte" />
import type { DownDropEvent } from './draggable';
import type { SvelteTask } from '../task';
import type { SvelteRow } from '../row';
import type { Readable } from 'svelte/store';
export interface DragContext {
rootState: Readable<{
[taskId: PropertyKey]: State;
}>;
off(taskId: PropertyKey): any;
save(start: {
x: number;
y: number;
width: number;
}, task: SvelteTask, event: DownDropEvent): any;
dropAll(event: DownDropEvent): void;
moveAll(data: {
x?: number;
y?: number;
width?: number;
event?: MouseEvent;
}, task: SvelteTask, state: State): any;
setState(task: SvelteTask, state: State): any;
dragAllowed(task: SvelteTask): boolean;
resizeAllowed(task: SvelteTask): boolean;
mouseUp(task: SvelteTask): any;
}
export type Position = {
left: number;
top: number;
width: number;
from: number;
to: number;
};
export type DragChange = {
valid: boolean;
task: SvelteTask;
current: Position;
previous: Position;
sourceRow: SvelteRow;
targetRow: SvelteRow;
};
export type State = Partial<{
dragging: boolean;
resizing: boolean;
x: number;
y: number;
width: number;
/** @deprecated */
ignoreClick: boolean;
}>;