UNPKG

blumjs

Version:
44 lines (35 loc) 1.18 kB
import {DateUnit} from "./dateunit"; import {Row} from "./elements"; export interface CalendarBase { weekDayNames: string[]; monthNames: string[]; weekFirstDay: number; getMonthLength(date: DateUnit): number; weekHeaders(): Row; dayNumberOfMonthFirst(date: DateUnit): number; dateToDateUnit(date: Date): DateUnit; dateToString(date: Date, format: string): string; dateUnitToDate(date: DateUnit): Date; getNameOfMonth(num: number): string; } export class Calendar<T extends CalendarBase> { calendar: T; constructor(TCreator: {new (): T;}) { this.calendar = new TCreator(); } nameOfMonth(num: number): string { return this.calendar.getNameOfMonth(num); } dateToString(date: Date, format: string): string { return this.calendar.dateToString(date, format); } monthLength(date: DateUnit) { return this.calendar.getMonthLength(date); } weekHeaders() { return this.calendar.weekHeaders(); } dayNumberofMonthFirst(date: DateUnit): number { return this.calendar.dayNumberOfMonthFirst(date); } }