novo-elements
Version:
Bullhorn's NOVO Element Repository for Angular 2
72 lines (57 loc) • 1.9 kB
text/typescript
import { Component, EventEmitter, Inject, Input, LOCALE_ID, Output } from '@angular/core';
import * as dateFns from 'date-fns';
export class NovoCalendarDateChangeElement {
/**
* The current view
*/
view: string;
/**
* The current view date
*/
viewDate: Date;
locale: string;
/**
* Called when the view date is changed
*/
viewDateChange: EventEmitter<Date> = new EventEmitter();
constructor( locale: string) {
this.locale = locale;
}
/**
* @hidden
*/
subtractDate(): void {
this.changeDate(-1);
}
addDate(): void {
this.changeDate(1);
}
changeDate(unit: number): void {
const addFn: any = {
day: dateFns.addDays,
week: dateFns.addWeeks,
month: dateFns.addMonths
}[this.view];
this.viewDateChange.emit(addFn(this.viewDate, unit));
}
get startOfWeek() {
return dateFns.startOfWeek(this.viewDate);
}
get endOfWeek() {
return dateFns.endOfWeek(this.viewDate);
}
}