ts-gantt
Version:
simple gantt chart written using typescript
205 lines (201 loc) • 6.45 kB
TypeScript
// Generated by dts-bundle-generator v7.0.0
import dayjs from 'dayjs';
export interface TsGanttRowSymbols {
expanded: string;
collapsed: string;
childless: string;
}
export declare type ChartBarType = "planned" | "actual";
export declare type ChartBarMode = ChartBarType | "both";
export declare type ChartScale = "day" | "week" | "month" | "year";
export declare type ColumnTextAlignment = "start" | "center" | "end";
export interface TsGanttTaskModel {
id: string;
parentId: string;
name: string;
progress: number;
datePlannedStart: Date;
datePlannedEnd: Date;
dateActualStart: Date;
dateActualEnd: Date;
localizedNames: {
[key: string]: string;
};
}
export declare class TsGanttTask {
readonly externalId: string;
readonly parentExternalId: string;
readonly uuid: string;
readonly parentUuid: string;
readonly nestingLvl: number;
readonly hasChildren: boolean;
readonly name: string;
readonly localizedNames: {
[key: string]: string;
};
datePlannedStart: dayjs.Dayjs;
datePlannedEnd: dayjs.Dayjs;
dateActualStart: dayjs.Dayjs;
dateActualEnd: dayjs.Dayjs;
progress: number;
shown: boolean;
expanded: boolean;
constructor(source?: Object, id?: string, parentId?: string, name?: string, localizedNames?: {
[key: string]: string;
}, progress?: number, datePlannedStart?: string | number | Date | dayjs.Dayjs, datePlannedEnd?: string | number | Date | dayjs.Dayjs, dateActualStart?: string | number | Date | dayjs.Dayjs, dateActualEnd?: string | number | Date | dayjs.Dayjs, nestingLvl?: number, hasChildren?: boolean, parentUuid?: string, uuid?: string, shown?: boolean, expanded?: boolean);
static convertModelsToTasks(taskModels: TsGanttTaskModel[], idMap?: Map<string, string>): TsGanttTask[];
static detectTaskChanges(data: TsGanttTaskUpdateResult): TsGanttTaskChangeResult;
static createTasksIdMap(tasks: TsGanttTask[]): Map<string, string>;
static checkPaternity(tasks: TsGanttTask[], parent: TsGanttTask, child: TsGanttTask): boolean;
static checkForCollapsedParent(tasks: readonly TsGanttTask[], task: TsGanttTask): boolean;
static defaultComparer: (a: TsGanttTask, b: TsGanttTask) => number;
static sortTasksRecursively(tasks: TsGanttTask[], parentUuid: string): TsGanttTask[];
static getMinMaxDates(tasks: TsGanttTask[]): {
minDate: dayjs.Dayjs;
maxDate: dayjs.Dayjs;
};
equals(another: TsGanttTask): boolean;
compareTo(another: TsGanttTask): number;
getState(): TsGanttTaskState;
toModel(): TsGanttTaskModel;
toggleExpanded(): void;
getMinMaxDates(chartBarMode: ChartBarMode): {
minDate: dayjs.Dayjs;
maxDate: dayjs.Dayjs;
};
getHorizontalOffsetPx(chartBarMode: ChartBarMode, chartMinDate: dayjs.Dayjs, dayWidthPx: number): number;
updateParents(): void;
applyChangesFrom(source: TsGanttTask): void;
clone(): TsGanttTask;
}
export interface TsGanttTaskUpdateResult {
oldTasks: TsGanttTask[];
newTasks: TsGanttTask[];
}
export interface TsGanttTaskChangeResult {
added: TsGanttTask[];
deleted: TsGanttTask[];
changed: TsGanttTask[];
all: TsGanttTask[];
}
export declare type TsGanttTaskState = "not-started" | "in-progress" | "overdue" | "completed" | "completed-late";
export declare class TsGanttOptions {
bindParentDatesToChild: boolean;
enableChartEdit: boolean;
useShadowDom: false;
multilineSelection: boolean;
useCtrlKeyForMultilineSelection: boolean;
drawTodayLine: boolean;
highlightRowsDependingOnTaskState: boolean;
columnsMinWidthPx: number[];
columnsContentAlign: (ColumnTextAlignment)[];
separatorWidthPx: number;
headerHeightPx: number;
rowHeightPx: number;
borderWidthPx: number;
barStrokeWidthPx: number;
barMarginPx: number;
barCornerRadiusPx: number;
rowSymbols: TsGanttRowSymbols;
chartShowProgress: boolean;
chartDisplayMode: ChartBarMode;
chartScale: ChartScale;
chartDateOffsetDays: {
[key: string]: number;
};
chartDateOffsetDaysMin: {
[key: string]: number;
};
chartDayWidthPx: {
[key: string]: number;
};
locale: string;
localeDecimalSeparator: {
[key: string]: string;
};
localeDateFormat: {
[key: string]: string;
};
localeFirstWeekDay: {
[key: string]: number;
};
localeDateMonths: {
[key: string]: string[];
};
localeDateDays: {
[key: string]: string[];
};
localeDateDaysShort: {
[key: string]: string[];
};
localeDateScale: {
[key: string]: string[];
};
localeFooters: {
[key: string]: string[];
};
localeHeaders: {
[key: string]: string[];
};
localeDurationFormatters: {
[key: string]: (duration: number) => string;
};
columnValueGetters: (ColumnValueGetter)[];
get dayWidthPx(): number;
taskComparer: (taskA: TsGanttTask, taskB: TsGanttTask) => number;
constructor(item?: object);
}
export declare type ColumnValueGetter = (a: TsGanttTask) => string;
export declare class TsGantt {
private readonly _data;
private get _options();
private _htmlContainer;
private _shadowRoot;
private _htmlWrapper;
private _htmlTableWrapper;
private _htmlChartWrapper;
private _separatorDragActive;
private _ignoreNextScrollEvent;
private _baseComponents;
private _table;
private _chart;
get tasks(): TsGanttTaskModel[];
set tasks(models: TsGanttTaskModel[]);
get selectedTasks(): TsGanttTaskModel[];
set selectedTasks(models: TsGanttTaskModel[]);
set locale(value: string);
set chartScale(value: ChartScale);
set chartDisplayMode(value: ChartBarMode);
onRowClickCb: (model: TsGanttTaskModel, event: MouseEvent) => void;
onRowDoubleClickCb: (model: TsGanttTaskModel, event: MouseEvent) => void;
onRowContextMenuCb: (model: TsGanttTaskModel, event: MouseEvent) => void;
onSelectionChangeCb: (models: TsGanttTaskModel[]) => void;
constructor(containerSelector: string, options?: TsGanttOptions);
destroy(): void;
expandAll(state: boolean): void;
private setCssVariables;
private createLayout;
onResize: (e: Event) => void;
private onPointerDownOnPartsSeparator;
private onPointerMoveWhileResizingParts;
private onPointerUpWhileResizingParts;
private onWrapperScroll;
private onRowClick;
private onRowContextMenu;
private onRowExpanderClick;
private onTaskChange;
private addGlobalEventListeners;
private removeGlobalEventListeners;
private toggleTaskSelection;
private refreshSelection;
private updateSelection;
private applySelectionResult;
private update;
private updateTasks;
private updateLocale;
private updateChartScale;
private updateChartDisplayMode;
private toggleTaskExpanded;
private scrollChartToTasks;
}
export {};