wx-gantt-store
Version:
121 lines (120 loc) • 2.88 kB
TypeScript
import { Store, EventBus } from "@wx/lib-state";
import type { TDataConfig, TWritableCreator, TID } from "@wx/lib-state";
import type { IData, IDataConfig, ITask, TMethodsConfig, ILink, IVisibleArea, IParsedTask } from "./types";
export default class DataStore extends Store<IData> {
in: EventBus<TMethodsConfig, keyof TMethodsConfig>;
private _router;
constructor(w: TWritableCreator);
init(state: Partial<IDataConfig>): void;
setState(state: Partial<IData>, ctx?: TDataConfig): import("@wx/lib-state/dist/types/types").TAsyncSignals;
setStateAsync(state: Partial<IData>): void;
getTask(id: TID): IParsedTask;
private changeScale;
private resetSummaryDates;
private moveSummaryKids;
private calcScaleDate;
}
type CombineTypes<T, N> = {
[P in keyof T]: T[P] & N;
};
export type IDataMethodsConfig = CombineTypes<{
["add-task"]: {
id?: TID;
task: Partial<ITask>;
target?: TID;
mode?: "before" | "after" | "child";
};
["update-task"]: {
id: TID;
task: Partial<ITask>;
diff?: number;
inProgress?: boolean;
eventSource?: string;
};
["delete-task"]: {
id: TID;
source?: TID;
};
["open-task"]: {
id: TID;
mode: boolean;
};
["select-task"]: {
id: TID;
toggle?: boolean;
range?: boolean;
show?: boolean;
};
["drag-task"]: {
id: TID;
width?: number;
left?: number;
top?: number;
inProgress?: boolean;
};
["copy-task"]: {
id: TID;
target?: TID;
mode?: "before" | "after" | "child";
source?: TID;
lazy?: boolean;
eventSource?: string;
};
["move-task"]: {
id: TID;
target?: TID;
mode?: "before" | "after" | "up" | "down" | "child";
inProgress?: boolean;
source?: TID;
};
["indent-task"]: {
id: TID;
mode: boolean;
};
["show-editor"]: {
id: TID;
};
["add-link"]: {
id?: TID;
link: Partial<ILink>;
};
["update-link"]: {
id: TID;
link: Partial<ILink>;
};
["delete-link"]: {
id: TID;
};
["scroll-chart"]: {
left?: number;
top?: number;
};
["render-data"]: IVisibleArea;
["request-data"]: {
id: TID;
};
["provide-data"]: {
id: TID;
data: {
tasks?: Array<ITask>;
links?: Array<ILink>;
};
};
["zoom-scale"]: {
dir: number;
date: Date;
offset?: number;
};
["expand-scale"]: {
minWidth: number;
date?: Date;
offset?: number;
};
["sort-tasks"]: {
key: string;
order: "asc" | "desc";
};
}, {
skipProvider?: boolean;
}>;
export {};