activity-calendar
Version:
a simple activity calendar
70 lines (69 loc) • 2.29 kB
TypeScript
/// <reference types="jquery" />
/// <reference types="bootstrap" />
import Event, { EventCallback, IEventListener } from "./Event";
import IDate from "./IDate";
import IDataProvider from "./IDataProvider";
import IListenable from "./IListenable";
export interface ILangPhrases {
nextBtnText: string;
prevBtnText: string;
noActivity: string;
toCountActivity: string;
}
export interface IDrawerOptions {
selector: string | JQuery;
previousPeriodMonth?: number;
nextPeriodMonth?: number;
rtl?: boolean;
colorStep?: number;
showCalendarGuide?: boolean;
showNextPeriodBtn?: boolean;
showCurrentRangeInfo?: boolean;
showPreviousPeriodBtn?: boolean;
lang?: string;
langs?: {
[key: string]: ILangPhrases;
};
onClickPreviousPeriodBtn?: (event: Event, newTimeWindow: {
from: IDate;
to: IDate;
}, element: JQuery) => Promise<void>;
onClickNextPeriodBtn?: (event: Event, newTimeWindow: {
from: IDate;
to: IDate;
}, element: JQuery) => Promise<void>;
onClickDay?: (event: Event, element: JQuery, day: IDate) => void;
}
export default class Drawer implements IListenable {
protected dataProvider: IDataProvider;
protected today: IDate;
constructor(dataProvider: IDataProvider, today: IDate, options: IDrawerOptions);
get from(): IDate;
get to(): IDate;
clone(): Drawer;
destroy(): void;
use(dataProvider: IDataProvider, rerender?: boolean): void;
on(type: string | string[], callback: EventCallback): void;
trigger(event: string | Event, ...args: any[]): Event;
setThisDay(date: IDate, rebuildTable?: boolean): void;
goToPrevious(): void;
goToNext(): void;
protected render(): void;
protected setEvents(): void;
protected events: IEventListener[];
protected options: IDrawerOptions;
protected $element: JQuery;
protected $header: JQuery;
protected _from: IDate;
protected _to: IDate;
get element(): JQuery;
protected get o(): IDrawerOptions;
protected get dp(): IDataProvider;
private onClickPreviousPeriodBtn;
private onClickNextPeriodBtn;
private onClickDay;
private isDateLinkable;
private setHeaderEvents;
private setTableEvents;
private translate;
}