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: `
{{ year.label }}
` }) 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); } }