ng2-date-picker
Version:
[](https://travis-ci.org/vlio20/angular-datepicker) [](#backers) [![Sponsor
80 lines • 10.8 kB
JavaScript
import * as tslib_1 from "tslib";
import { Injectable } from '@angular/core';
import * as momentNs from 'moment';
import { UtilsService } from '../common/services/utils/utils.service';
const moment = momentNs;
let MonthCalendarService = class MonthCalendarService {
constructor(utilsService) {
this.utilsService = utilsService;
this.DEFAULT_CONFIG = {
allowMultiSelect: false,
yearFormat: 'YYYY',
format: 'MM-YYYY',
isNavHeaderBtnClickable: false,
monthBtnFormat: 'MMM',
locale: moment.locale(),
multipleYearsNavigateBy: 10,
showMultipleYearsNavigation: false,
unSelectOnClick: true
};
}
getConfig(config) {
const _config = Object.assign({}, this.DEFAULT_CONFIG, this.utilsService.clearUndefined(config));
this.utilsService.convertPropsToMoment(_config, _config.format, ['min', 'max']);
moment.locale(_config.locale);
return _config;
}
generateYear(config, year, selected = null) {
const index = year.clone().startOf('year');
return this.utilsService.createArray(3).map(() => {
return this.utilsService.createArray(4).map(() => {
const date = index.clone();
const month = {
date,
selected: !!selected.find(s => index.isSame(s, 'month')),
currentMonth: index.isSame(moment(), 'month'),
disabled: this.isMonthDisabled(date, config),
text: this.getMonthBtnText(config, date)
};
index.add(1, 'month');
return month;
});
});
}
isMonthDisabled(date, config) {
if (config.min && date.isBefore(config.min, 'month')) {
return true;
}
return !!(config.max && date.isAfter(config.max, 'month'));
}
shouldShowLeft(min, currentMonthView) {
return min ? min.isBefore(currentMonthView, 'year') : true;
}
shouldShowRight(max, currentMonthView) {
return max ? max.isAfter(currentMonthView, 'year') : true;
}
getHeaderLabel(config, year) {
if (config.yearFormatter) {
return config.yearFormatter(year);
}
return year.format(config.yearFormat);
}
getMonthBtnText(config, month) {
if (config.monthBtnFormatter) {
return config.monthBtnFormatter(month);
}
return month.format(config.monthBtnFormat);
}
getMonthBtnCssClass(config, month) {
if (config.monthBtnCssClassCallback) {
return config.monthBtnCssClassCallback(month);
}
return '';
}
};
MonthCalendarService = tslib_1.__decorate([
Injectable(),
tslib_1.__metadata("design:paramtypes", [UtilsService])
], MonthCalendarService);
export { MonthCalendarService };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9udGgtY2FsZW5kYXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nMi1kYXRlLXBpY2tlci8iLCJzb3VyY2VzIjpbIm1vbnRoLWNhbGVuZGFyL21vbnRoLWNhbGVuZGFyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxLQUFLLFFBQVEsTUFBTSxRQUFRLENBQUM7QUFFbkMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBR3BFLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQztBQUd4QixJQUFhLG9CQUFvQixHQUFqQyxNQUFhLG9CQUFvQjtJQWEvQixZQUFvQixZQUEwQjtRQUExQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQVpyQyxtQkFBYyxHQUFpQztZQUN0RCxnQkFBZ0IsRUFBRSxLQUFLO1lBQ3ZCLFVBQVUsRUFBRSxNQUFNO1lBQ2xCLE1BQU0sRUFBRSxTQUFTO1lBQ2pCLHVCQUF1QixFQUFFLEtBQUs7WUFDOUIsY0FBYyxFQUFFLEtBQUs7WUFDckIsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUU7WUFDdkIsdUJBQXVCLEVBQUUsRUFBRTtZQUMzQiwyQkFBMkIsRUFBRSxLQUFLO1lBQ2xDLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUM7SUFHRixDQUFDO0lBRUQsU0FBUyxDQUFDLE1BQTRCO1FBQ3BDLE1BQU0sT0FBTyxHQUFHLGtCQUNYLElBQUksQ0FBQyxjQUFjLEVBQ25CLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUM1QyxDQUFDO1FBRUYsSUFBSSxDQUFDLFlBQVksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBRWhGLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxD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T0FBTyxNQUFNLENBQUMsd0JBQXdCLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDL0M7UUFFRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7Q0FDRixDQUFBO0FBekZZLG9CQUFvQjtJQURoQyxVQUFVLEVBQUU7NkNBY3VCLFlBQVk7R0FibkMsb0JBQW9CLENBeUZoQztTQXpGWSxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0ICogYXMgbW9tZW50TnMgZnJvbSAnbW9tZW50JztcbmltcG9ydCB7TW9tZW50fSBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHtVdGlsc1NlcnZpY2V9IGZyb20gJy4uL2NvbW1vbi9zZXJ2aWNlcy91dGlscy91dGlscy5zZXJ2aWNlJztcbmltcG9ydCB7SU1vbnRofSBmcm9tICcuL21vbnRoLm1vZGVsJztcbmltcG9ydCB7SU1vbnRoQ2FsZW5kYXJDb25maWcsIElNb250aENhbGVuZGFyQ29uZmlnSW50ZXJuYWx9IGZyb20gJy4vbW9udGgtY2FsZW5kYXItY29uZmlnJztcbmNvbnN0IG1vbWVudCA9IG1vbWVudE5zO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTW9udGhDYWxlbmRhclNlcnZpY2Uge1xuICByZWFkb25seSBERUZBVUxUX0NPTkZJRzogSU1vbnRoQ2FsZW5kYXJDb25maWdJbnRlcm5hbCA9IHtcbiAgICBhbGxvd011bHRpU2VsZWN0OiBmYWxzZSxcbiAgICB5ZWFyRm9ybWF0OiAnWVlZWScsXG4gICAgZm9ybWF0OiAnTU0tWVlZWScsXG4gICAgaXNOYXZIZWFkZXJCdG5DbGlja2FibGU6IGZhbHNlLFxuICAgIG1vbnRoQnRuRm9ybWF0OiAnTU1NJyxcbiAgICBsb2NhbGU6IG1vbWVudC5sb2NhbGUoKSxcbiAgICBtdWx0aXBsZVllYXJzTmF2aWdhdGVCeTogMTAsXG4gICAgc2hvd011bHRpcGxlWWVhcnNOYXZpZ2F0aW9uOiBmYWxzZSxcbiAgICB1blNlbGVjdE9uQ2xpY2s6IHRydWVcbiAgfTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHV0aWxzU2VydmljZTogVXRpbHNTZXJ2aWNlKSB7XG4gIH1cblxuICBnZXRDb25maWcoY29uZmlnOiBJTW9udGhDYWxlbmRhckNvbmZpZyk6IElNb250aENhbGVuZGFyQ29uZmlnSW50ZXJuYWwge1xuICAgIGNvbnN0IF9jb25maWcgPSA8SU1vbnRoQ2FsZW5kYXJDb25maWdJbnRlcm5hbD57XG4gICAgICAuLi50aGlzLkRFRkFVTFRfQ09ORklHLFxuICAgICAgLi4udGhpcy51dGlsc1NlcnZpY2UuY2xlYXJVbmRlZmluZWQoY29uZmlnKVxuICAgIH07XG5cbiAgICB0aGlzLnV0aWxzU2VydmljZS5jb252ZXJ0UHJvcHNUb01vbWVudChfY29uZmlnLCBfY29uZmlnLmZvcm1hdCwgWydtaW4nLCAnbWF4J10pO1xuXG4gICAgbW9tZW50LmxvY2FsZShfY29uZmlnLmxvY2FsZSk7XG5cbiAgICByZXR1cm4gX2NvbmZpZztcbiAgfVxuXG4gIGdlbmVyYXRlWWVhcihjb25maWc6IElNb250aENhbGVuZGFyQ29uZmlnLCB5ZWFyOiBNb21lbnQsIHNlbGVjdGVkOiBNb21lbnRbXSA9IG51bGwpOiBJTW9udGhbXVtdIHtcbiAgICBjb25zdCBpbmRleCA9IHllYXIuY2xvbmUoKS5zdGFydE9mKCd5ZWFyJyk7XG5cbiAgICByZXR1cm4gdGhpcy51dGlsc1NlcnZpY2UuY3JlYXRlQXJyYXkoMykubWFwKCgpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLnV0aWxzU2VydmljZS5jcmVhdGVBcnJheSg0KS5tYXAoKCkgPT4ge1xuICAgICAgICBjb25zdCBkYXRlID0gaW5kZXguY2xvbmUoKTtcbiAgICAgICAgY29uc3QgbW9udGggPSB7XG4gICAgICAgICAgZGF0ZSxcbiAgICAgICAgICBzZWxlY3RlZDogISFzZWxlY3RlZC5maW5kKHMgPT4gaW5kZXguaXNTYW1lKHMsICdtb250aCcpKSxcbiAgICAgICAgICBjdXJyZW50TW9udGg6IGluZGV4LmlzU2FtZShtb21lbnQoKSwgJ21vbnRoJyksXG4gICAgICAgICAgZGlzYWJsZWQ6IHRoaXMuaXNNb250aERpc2FibGVkKGRhdGUsIGNvbmZpZyksXG4gICAgICAgICAgdGV4dDogdGhpcy5nZXRNb250aEJ0blRleHQoY29uZmlnLCBkYXRlKVxuICAgICAgICB9O1xuXG4gICAgICAgIGluZGV4LmFkZCgxLCAnbW9udGgnKTtcblxuICAgICAgICByZXR1cm4gbW9udGg7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIGlzTW9udGhEaXNhYmxlZChkYXRlOiBNb21lbnQsIGNvbmZpZzogSU1vbnRoQ2FsZW5kYXJDb25maWcpIHtcbiAgICBpZiAoY29uZmlnLm1pbiAmJiBkYXRlLmlzQmVmb3JlKGNvbmZpZy5taW4sICdtb250aCcpKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gISEoY29uZmlnLm1heCAmJiBkYXRlLmlzQWZ0ZXIoY29uZmlnLm1heCwgJ21vbnRoJykpO1xuICB9XG5cbiAgc2hvdWxkU2hvd0xlZnQobWluOiBNb21lbnQsIGN1cnJlbnRNb250aFZpZXc6IE1vbWVudCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBtaW4gPyBtaW4uaXNCZWZvcmUoY3VycmVudE1vbnRoVmlldywgJ3llYXInKSA6IHRydWU7XG4gIH1cblxuICBzaG91bGRTaG93UmlnaHQobWF4OiBNb21lbnQsIGN1cnJlbnRNb250aFZpZXc6IE1vbWVudCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBtYXggPyBtYXguaXNBZnRlcihjdXJyZW50TW9udGhWaWV3LCAneWVhcicpIDogdHJ1ZTtcbiAgfVxuXG4gIGdldEhlYWRlckxhYmVsKGNvbmZpZzogSU1vbnRoQ2FsZW5kYXJDb25maWcsIHllYXI6IE1vbWVudCk6IHN0cmluZyB7XG4gICAgaWYgKGNvbmZpZy55ZWFyRm9ybWF0dGVyKSB7XG4gICAgICByZXR1cm4gY29uZmlnLnllYXJGb3JtYXR0ZXIoeWVhcik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHllYXIuZm9ybWF0KGNvbmZpZy55ZWFyRm9ybWF0KTtcbiAgfVxuXG4gIGdldE1vbnRoQnRuVGV4dChjb25maWc6IElNb250aENhbGVuZGFyQ29uZmlnLCBtb250aDogTW9tZW50KTogc3RyaW5nIHtcbiAgICBpZiAoY29uZmlnLm1vbnRoQnRuRm9ybWF0dGVyKSB7XG4gICAgICByZXR1cm4gY29uZmlnLm1vbnRoQnRuRm9ybWF0dGVyKG1vbnRoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbW9udGguZm9ybWF0KGNvbmZpZy5tb250aEJ0bkZvcm1hdCk7XG4gIH1cblxuICBnZXRNb250aEJ0bkNzc0NsYXNzKGNvbmZpZzogSU1vbnRoQ2FsZW5kYXJDb25maWcsIG1vbnRoOiBNb21lbnQpOiBzdHJpbmcge1xuICAgIGlmIChjb25maWcubW9udGhCdG5Dc3NDbGFzc0NhbGxiYWNrKSB7XG4gICAgICByZXR1cm4gY29uZmlnLm1vbnRoQnRuQ3NzQ2xhc3NDYWxsYmFjayhtb250aCk7XG4gICAgfVxuXG4gICAgcmV0dXJuICcnO1xuICB9XG59XG4iXX0=