import { Component, EventEmitter, Input, Output } from '@angular/core';
import { yearsPerCalendar } from '../../engine/format-years-calendar';
import {
BsDatepickerViewMode,
BsNavigationDirection,
BsNavigationEvent,
CalendarCellViewModel,
CellHoverEvent,
YearsCalendarViewModel
} from '../../models';
@Component({
selector: 'bs-years-calendar-view',
template: `
`
})
export class BsYearsCalendarViewComponent {
@Input() calendar!: YearsCalendarViewModel;
@Output() onNavigate = new EventEmitter();
@Output() onViewMode = new EventEmitter();
@Output() onSelect = new EventEmitter();
@Output() onHover = new EventEmitter();
navigateTo(event: BsNavigationDirection): void {
const step = BsNavigationDirection.DOWN === event ? -1 : 1;
this.onNavigate.emit({ step: { year: step * yearsPerCalendar } });
}
viewYear(year: CalendarCellViewModel) {
this.onSelect.emit(year);
}
hoverYear(cell: CalendarCellViewModel, isHovered: boolean) {
this.onHover.emit({ cell, isHovered });
}
changeViewMode(event: BsDatepickerViewMode): void {
this.onViewMode.emit(event);
}
}