import { Store, EventBus } from "@svar-ui/lib-state"; import type { TDataConfig, TWritableCreator, TID } from "@svar-ui/lib-state"; import { HistoryManager } from "./pro/HistoryManager"; import { GroupManager } from "./pro/GroupManager"; import type { IData, IDataConfig, ITask, TMethodsConfig, IResourceColumn, ILink, IResource, IVisibleArea, IParsedTask, IExportConfig, TFilterHandler, TScrollMode, IAssignment, IGroupByConfig, TDataName, TResourceAssignment, ICalendar, TDisplayMode } from "./types"; export default class DataStore extends Store { in: EventBus; private _router; private _modules; private _prevScaleMinUnit?; private _prevConfig; constructor(w: TWritableCreator); init(state: Partial): void; private changed; private enableModule; private disableModule; setState(state: Partial, ctx?: TDataConfig): { [key: string]: () => void; }; setStateAsync(state: Partial): void; getTask(id: TID): IParsedTask; getResource(id: TID): import("./types").IParsedResource; getHistory(): HistoryManager; getCalendar(id?: TID): ICalendar | undefined; getTaskCalendar(task: Partial): ICalendar | undefined; getResourceCalendar(resource: Partial): ICalendar | undefined; private getLoadHours; getGrouping(): GroupManager; serialize(config?: { data: TDataName; }): any[]; getTaskResources(id: TID): Array; getResourceTasks(id: TID): IParsedTask[]; private changeScale; private shouldExpandScale; private isScheduled; private resetSummaryDates; private moveSummaryKids; getNextRow(id: TID): IParsedTask; getPrevRow(id: TID): IParsedTask; scrollToTask(id: TID, mode: TScrollMode): void; } type CombineTypes = { [P in keyof T]: T[P] & N; }; export type IDataMethodsConfig = CombineTypes<{ ["add-task"]: { id?: TID; task: Partial; target?: TID; mode?: "before" | "after" | "child"; show?: TScrollMode; select?: boolean; eventSource?: string; }; ["update-task"]: { id: TID; segmentIndex?: number; task: Partial; diff?: number; inProgress?: boolean; eventSource?: string; skipUndo?: boolean; }; ["delete-task"]: { id: TID; source?: TID; }; ["open-task"]: { id: TID; mode: boolean; }; ["select-task"]: { id: TID; toggle?: boolean; range?: boolean; show?: TScrollMode; focus?: "grid" | "chart"; eventSource?: string; }; ["drag-task"]: { id: TID; segmentIndex?: number; width?: number; left?: number; top?: number; inProgress?: boolean; }; ["copy-task"]: { id: TID; target?: TID; mode?: "before" | "after" | "child"; source?: TID; lazy?: boolean; eventSource?: string; skipUndo?: boolean; }; ["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; eventSource?: string; }; ["update-link"]: { id: TID; link: Partial; }; ["delete-link"]: { id: TID; }; ["scroll-chart"]: { left?: number; top?: number; date?: Date; }; ["render-data"]: IVisibleArea; ["request-data"]: { id: TID; }; ["provide-data"]: { id: TID; data: { tasks?: Array; links?: Array; assignments?: Array; }; }; ["zoom-scale"]: { dir: number; ratio?: number; offset?: number; }; ["sort-tasks"]: { key: string; order: "asc" | "desc"; add?: boolean; }; ["filter-tasks"]: { filter?: TFilterHandler; key?: string; value?: any; open?: boolean; }; ["group-tasks"]: IGroupByConfig; ["hotkey"]: { key: string; event: any; eventSource?: string; }; ["resize-chart"]: { width: number; height: number; scrollSize: number; }; ["schedule-tasks"]: { id?: TID; task?: Partial; link?: TID; }; ["undo"]: void; ["redo"]: void; ["split-task"]: { id: TID; segmentIndex?: number; }; ["export-data"]: IExportConfig; ["import-data"]: { data: string; format?: "mspx"; }; ["add-assignment"]: { id?: TID; assignment: Partial; }; ["delete-assignment"]: { id: TID; }; ["update-assignment"]: { id: TID; assignment: Partial; }; ["resize-grid"]: { width: number; }; ["set-display-mode"]: { mode: TDisplayMode; }; ["open-resource-row"]: { id: TID; mode: boolean; }; ["sort-resources"]: { key: string; order: "asc" | "desc"; add?: boolean; _columns: IResourceColumn[]; }; }, { skipProvider?: boolean; skipUndo?: boolean; [key: string]: any; }>; export {};