UNPKG

date-picker-custom

Version:

A simple customizable date picker for Angular

98 lines 11.4 kB
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