ng2-bootstrap-base-modified
Version:
Native Angular Bootstrap Components Typeahead modified
97 lines (84 loc) • 3.6 kB
text/typescript
import { Component, OnInit } from '@angular/core';
import { isBs3 } from '../utils/ng2-bootstrap-config';
import { DatePickerInnerComponent } from './datepicker-inner.component';
export class YearPickerComponent implements OnInit {
public datePicker:DatePickerInnerComponent;
public title:string;
public rows:any[] = [];
public constructor(datePicker:DatePickerInnerComponent) {
this.datePicker = datePicker;
}
public get isBs4():boolean {
return !isBs3();
}
public ngOnInit():void {
let self = this;
this.datePicker.stepYear = {years: this.datePicker.yearRange};
this.datePicker.setRefreshViewHandler(function ():void {
let years:any[] = new Array(this.yearRange);
let date:Date;
let start = self.getStartingYear(this.activeDate.getFullYear());
for (let i = 0; i < this.yearRange; i++) {
date = new Date(start + i, 0, 1);
date = this.fixTimeZone(date);
years[i] = this.createDateObject(date, this.formatYear);
years[i].uid = this.uniqueId + '-' + i;
}
self.title = [years[0].label,
years[this.yearRange - 1].label].join(' - ');
self.rows = this.split(years, self.datePicker.yearColLimit);
}, 'year');
this.datePicker.setCompareHandler(function (date1:Date, date2:Date):number {
return date1.getFullYear() - date2.getFullYear();
}, 'year');
this.datePicker.refreshView();
}
protected getStartingYear(year:number):number {
// todo: parseInt
return ((year - 1) / this.datePicker.yearRange) * this.datePicker.yearRange + 1;
}
}