date-picker-custom
Version:
A simple customizable date picker for Angular
98 lines • 11.4 kB
JavaScript
import { __decorate, __read, __spread } from "tslib";
import { Injectable } from '@angular/core';
import * as i0 from "@angular/core";
var DatePickerService = /** @class */ (function () {
function DatePickerService() {
this.monthDayMap = [
{
numberOfDays: 31,
month: 'January',
days: this.arrangeDates(0, 31) //() => { return Array(31).fill(0).map((val, ind) => ind + 1); },
},
{
numberOfDays: 28,
month: 'February',
days: this.arrangeDates(1, 28) //() => { return Array(28).fill(0).map((val, ind) => ind + 1); },
},
{
numberOfDays: 31,
month: 'March',
days: this.arrangeDates(2, 31) //() => { return Array(31).fill(0).map((val, ind) => ind + 1); },
},
{
numberOfDays: 30,
month: 'April',
days: this.arrangeDates(3, 30) //() => { return Array(30).fill(0).map((val, ind) => ind + 1); },
},
{
numberOfDays: 31,
month: 'May',
days: this.arrangeDates(4, 31) //() => { return Array(31).fill(0).map((val, ind) => ind + 1); },
},
{
numberOfDays: 30,
month: 'June',
days: this.arrangeDates(5, 30) //() => { return Array(30).fill(0).map((val, ind) => ind + 1); },
},
{
numberOfDays: 31,
month: 'July',
days: this.arrangeDates(6, 31) //() => { return Array(31).fill(0).map((val, ind) => ind + 1); },
},
{
numberOfDays: 31,
month: 'August',
days: this.arrangeDates(7, 31) //() => { return Array(31).fill(0).map((val, ind) => ind + 1); },
},
{
numberOfDays: 30,
month: 'September',
days: this.arrangeDates(8, 30) //() => { return Array(30).fill(0).map((val, ind) => ind + 1); },
},
{
numberOfDays: 31,
month: 'October',
days: this.arrangeDates(9, 31) //() => { return Array(31).fill(0).map((val, ind) => ind + 1); },
},
{
numberOfDays: 30,
month: 'November',
days: this.arrangeDates(10, 30) //() => { return Array(30).fill(0).map((val, ind) => ind + 1); },
},
{
numberOfDays: 31,
month: 'December',
days: this.arrangeDates(11, 31) //() => { return Array(31).fill(0).map((val, ind) => ind + 1); },
}
];
}
DatePickerService.prototype.arrangeDates = function (month, numberOfDays, year) {
var offsetDay = new Date(year || new Date().getFullYear(), month, 1).getDay();
var len = offsetDay + numberOfDays;
return Array(len).fill(0).map(function (val, ind) {
if (ind < offsetDay)
val = 0;
else
val = ind - offsetDay + 1;
return val;
});
};
DatePickerService.prototype.monthToName = function (month) {
return this.monthDayMap[month].month;
};
DatePickerService.prototype.nameToMonth = function (month) {
return this.monthDayMap.findIndex(function (element) { return element.month === month; });
};
DatePickerService.prototype.getMap = function () {
return __spread(this.monthDayMap);
};
DatePickerService.ɵprov = i0.ɵɵdefineInjectable({ factory: function DatePickerService_Factory() { return new DatePickerService(); }, token: DatePickerService, providedIn: "root" });
DatePickerService = __decorate([
Injectable({
providedIn: 'root'
})
], DatePickerService);
return DatePickerService;
}());
export { DatePickerService };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWRhdGUtcGlja2VyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9kYXRlLXBpY2tlci1jdXN0b20vIiwic291cmNlcyI6WyJsaWIvY3VzdG9tLWRhdGUtcGlja2VyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSzNDO0lBaUVFO1FBL0RBLGdCQUFXLEdBQUc7WUFDWjtnQkFDRSxZQUFZLEVBQUUsRUFBRTtnQkFDaEIsS0FBSyxFQUFFLFNBQVM7Z0JBQ2hCLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQSxpRUFBaUU7YUFDaEc7WUFDRDtnQkFDRSxZQUFZLEVBQUUsRUFBRTtnQkFDaEIsS0FBSyxFQUFFLFVBQVU7Z0JBQ2pCLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQSxpRUFBaUU7YUFDaEc7WUFDRDtnQkFDRSxZQUFZLEVBQUUsRUFBRTtnQkFDaEIsS0FBSyxFQUFFLE9BQU87Z0JBQ2QsSUFBSSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFBLGlFQUFpRTthQUNoRztZQUNEO2dCQUNFLFlBQVksRUFBRSxFQUFFO2dCQUNoQixLQUFLLEVBQUUsT0FBTztnQkFDZCxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUEsaUVBQWlFO2FBQ2hHO1lBQ0Q7Z0JBQ0UsWUFBWSxFQUFFLEVBQUU7Z0JBQ2hCLEtBQUssRUFBRSxLQUFLO2dCQUNaLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQSxpRUFBaUU7YUFDaEc7WUFDRDtnQkFDRSxZQUFZLEVBQUUsRUFBRTtnQkFDaEIsS0FBSyxFQUFFLE1BQU07Z0JBQ2IsSUFBSSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFBLGlFQUFpRTthQUNoRztZQUNEO2dCQUNFLFlBQVksRUFBRSxFQUFFO2dCQUNoQixLQUFLLEVBQUUsTUFBTTtnQkFDYixJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUEsaUVBQWlFO2FBQ2hHO1lBQ0Q7Z0JBQ0UsWUFBWSxFQUFFLEVBQUU7Z0JBQ2hCLEtBQUssRUFBRSxRQUFRO2dCQUNmLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQSxpRUFBaUU7YUFDaEc7WUFDRDtnQkFDRSxZQUFZLEVBQUUsRUFBRTtnQkFDaEIsS0FBSyxFQUFFLFdBQVc7Z0JBQ2xCLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQSxpRUFBaUU7YUFDaEc7WUFDRDtnQkFDRSxZQUFZLEVBQUUsRUFBRTtnQkFDaEIsS0FBSyxFQUFFLFNBQVM7Z0JBQ2hCLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQSxpRUFBaUU7YUFDaEc7WUFDRDtnQkFDRSxZQUFZLEVBQUUsRUFBRTtnQkFDaEIsS0FBSyxFQUFFLFVBQVU7Z0JBQ2pCLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQSxpRUFBaUU7YUFDakc7WUFDRDtnQkFDRSxZQUFZLEVBQUUsRUFBRTtnQkFDaEIsS0FBSyxFQUFFLFVBQVU7Z0JBQ2pCLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQSxpRUFBaUU7YUFDakc7U0FDRixDQUFDO0lBRWMsQ0FBQztJQUVqQix3Q0FBWSxHQUFaLFVBQWEsS0FBYSxFQUFFLFlBQW9CLEVBQUUsSUFBYTtRQUM3RCxJQUFJLFNBQVMsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDOUUsSUFBSSxHQUFHLEdBQUcsU0FBUyxHQUFHLFlBQVksQ0FBQztRQUNuQyxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQUMsR0FBRyxFQUFFLEdBQUc7WUFDckMsSUFBSSxHQUFHLEdBQUcsU0FBUztnQkFDakIsR0FBRyxHQUFHLENBQUMsQ0FBQzs7Z0JBRVIsR0FBRyxHQUFHLEdBQUcsR0FBRyxTQUFTLEdBQUcsQ0FBQyxDQUFDO1lBQzVCLE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsdUNBQVcsR0FBWCxVQUFZLEtBQWE7UUFDdkIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUN2QyxDQUFDO0lBRUQsdUNBQVcsR0FBWCxVQUFZLEtBQWE7UUFDdkIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxVQUFDLE9BQU8sSUFBTyxPQUFPLE9BQU8sQ0FBQyxLQUFLLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEYsQ0FBQztJQUVELGtDQUFNLEdBQU47UUFDRSxnQkFBVyxJQUFJLENBQUMsV0FBVyxFQUFFO0lBQy9CLENBQUM7O0lBekZVLGlCQUFpQjtRQUg3QixVQUFVLENBQUM7WUFDVixVQUFVLEVBQUUsTUFBTTtTQUNuQixDQUFDO09BQ1csaUJBQWlCLENBMEY3Qjs0QkEvRkQ7Q0ErRkMsQUExRkQsSUEwRkM7U0ExRlksaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBEYXRlUGlja2VyU2VydmljZSB7XG4gIFxuICBtb250aERheU1hcCA9IFtcbiAgICB7XG4gICAgICBudW1iZXJPZkRheXM6IDMxLFxuICAgICAgbW9udGg6ICdKYW51YXJ5JyxcbiAgICAgIGRheXM6IHRoaXMuYXJyYW5nZURhdGVzKDAsIDMxKS8vKCkgPT4geyByZXR1cm4gQXJyYXkoMzEpLmZpbGwoMCkubWFwKCh2YWwsIGluZCkgPT4gaW5kICsgMSk7IH0sXG4gICAgfSxcbiAgICB7XG4gICAgICBudW1iZXJPZkRheXM6IDI4LFxuICAgICAgbW9udGg6ICdGZWJydWFyeScsXG4gICAgICBkYXlzOiB0aGlzLmFycmFuZ2VEYXRlcygxLCAyOCkvLygpID0+IHsgcmV0dXJuIEFycmF5KDI4KS5maWxsKDApLm1hcCgodmFsLCBpbmQpID0+IGluZCArIDEpOyB9LFxuICAgIH0sXG4gICAge1xuICAgICAgbnVtYmVyT2ZEYXlzOiAzMSxcbiAgICAgIG1vbnRoOiAnTWFyY2gnLFxuICAgICAgZGF5czogdGhpcy5hcnJhbmdlRGF0ZXMoMiwgMzEpLy8oKSA9PiB7IHJldHVybiBBcnJheSgzMSkuZmlsbCgwKS5tYXAoKHZhbCwgaW5kKSA9PiBpbmQgKyAxKTsgfSxcbiAgICB9LFxuICAgIHtcbiAgICAgIG51bWJlck9mRGF5czogMzAsXG4gICAgICBtb250aDogJ0FwcmlsJyxcbiAgICAgIGRheXM6IHRoaXMuYXJyYW5nZURhdGVzKDMsIDMwKS8vKCkgPT4geyByZXR1cm4gQXJyYXkoMzApLmZpbGwoMCkubWFwKCh2YWwsIGluZCkgPT4gaW5kICsgMSk7IH0sXG4gICAgfSxcbiAgICB7XG4gICAgICBudW1iZXJPZkRheXM6IDMxLFxuICAgICAgbW9udGg6ICdNYXknLFxuICAgICAgZGF5czogdGhpcy5hcnJhbmdlRGF0ZXMoNCwgMzEpLy8oKSA9PiB7IHJldHVybiBBcnJheSgzMSkuZmlsbCgwKS5tYXAoKHZhbCwgaW5kKSA9PiBpbmQgKyAxKTsgfSxcbiAgICB9LFxuICAgIHtcbiAgICAgIG51bWJlck9mRGF5czogMzAsXG4gICAgICBtb250aDogJ0p1bmUnLFxuICAgICAgZGF5czogdGhpcy5hcnJhbmdlRGF0ZXMoNSwgMzApLy8oKSA9PiB7IHJldHVybiBBcnJheSgzMCkuZmlsbCgwKS5tYXAoKHZhbCwgaW5kKSA9PiBpbmQgKyAxKTsgfSxcbiAgICB9LFxuICAgIHtcbiAgICAgIG51bWJlck9mRGF5czogMzEsXG4gICAgICBtb250aDogJ0p1bHknLFxuICAgICAgZGF5czogdGhpcy5hcnJhbmdlRGF0ZXMoNiwgMzEpLy8oKSA9PiB7IHJldHVybiBBcnJheSgzMSkuZmlsbCgwKS5tYXAoKHZhbCwgaW5kKSA9PiBpbmQgKyAxKTsgfSxcbiAgICB9LFxuICAgIHtcbiAgICAgIG51bWJlck9mRGF5czogMzEsXG4gICAgICBtb250aDogJ0F1Z3VzdCcsXG4gICAgICBkYXlzOiB0aGlzLmFycmFuZ2VEYXRlcyg3LCAzMSkvLygpID0+IHsgcmV0dXJuIEFycmF5KDMxKS5maWxsKDApLm1hcCgodmFsLCBpbmQpID0+IGluZCArIDEpOyB9LFxuICAgIH0sXG4gICAge1xuICAgICAgbnVtYmVyT2ZEYXlzOiAzMCxcbiAgICAgIG1vbnRoOiAnU2VwdGVtYmVyJyxcbiAgICAgIGRheXM6IHRoaXMuYXJyYW5nZURhdGVzKDgsIDMwKS8vKCkgPT4geyByZXR1cm4gQXJyYXkoMzApLmZpbGwoMCkubWFwKCh2YWwsIGluZCkgPT4gaW5kICsgMSk7IH0sXG4gICAgfSxcbiAgICB7XG4gICAgICBudW1iZXJPZkRheXM6IDMxLFxuICAgICAgbW9udGg6ICdPY3RvYmVyJyxcbiAgICAgIGRheXM6IHRoaXMuYXJyYW5nZURhdGVzKDksIDMxKS8vKCkgPT4geyByZXR1cm4gQXJyYXkoMzEpLmZpbGwoMCkubWFwKCh2YWwsIGluZCkgPT4gaW5kICsgMSk7IH0sXG4gICAgfSxcbiAgICB7XG4gICAgICBudW1iZXJPZkRheXM6IDMwLFxuICAgICAgbW9udGg6ICdOb3ZlbWJlcicsXG4gICAgICBkYXlzOiB0aGlzLmFycmFuZ2VEYXRlcygxMCwgMzApLy8oKSA9PiB7IHJldHVybiBBcnJheSgzMCkuZmlsbCgwKS5tYXAoKHZhbCwgaW5kKSA9PiBpbmQgKyAxKTsgfSxcbiAgICB9LFxuICAgIHtcbiAgICAgIG51bWJlck9mRGF5czogMzEsXG4gICAgICBtb250aDogJ0RlY2VtYmVyJyxcbiAgICAgIGRheXM6IHRoaXMuYXJyYW5nZURhdGVzKDExLCAzMSkvLygpID0+IHsgcmV0dXJuIEFycmF5KDMxKS5maWxsKDApLm1hcCgodmFsLCBpbmQpID0+IGluZCArIDEpOyB9LFxuICAgIH1cbiAgXTtcbiAgXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgYXJyYW5nZURhdGVzKG1vbnRoOiBudW1iZXIsIG51bWJlck9mRGF5czogbnVtYmVyLCB5ZWFyPzogbnVtYmVyKTogQXJyYXk8bnVtYmVyPiB7XG4gICAgbGV0IG9mZnNldERheSA9IG5ldyBEYXRlKHllYXIgfHwgbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpLCBtb250aCwgMSkuZ2V0RGF5KCk7XG4gICAgbGV0IGxlbiA9IG9mZnNldERheSArIG51bWJlck9mRGF5cztcbiAgICByZXR1cm4gQXJyYXkobGVuKS5maWxsKDApLm1hcCgodmFsLCBpbmQpID0+IHtcbiAgICAgIGlmIChpbmQgPCBvZmZzZXREYXkpXG4gICAgICAgIHZhbCA9IDA7XG4gICAgICBlbHNlXG4gICAgICAgIHZhbCA9IGluZCAtIG9mZnNldERheSArIDE7XG4gICAgICByZXR1cm4gdmFsO1xuICAgIH0pO1xuICB9XG5cbiAgbW9udGhUb05hbWUobW9udGg6IG51bWJlcik6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubW9udGhEYXlNYXBbbW9udGhdLm1vbnRoO1xuICB9XG5cbiAgbmFtZVRvTW9udGgobW9udGg6IHN0cmluZyk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMubW9udGhEYXlNYXAuZmluZEluZGV4KChlbGVtZW50KSA9PiB7IHJldHVybiBlbGVtZW50Lm1vbnRoID09PSBtb250aDsgfSk7XG4gIH1cblxuICBnZXRNYXAoKSB7XG4gICAgcmV0dXJuIFsuLi50aGlzLm1vbnRoRGF5TWFwXTtcbiAgfVxufVxuIl19