ngx-jalali-date-picker
Version:
This is a configurable date-picker build for Angular applications. Supports latest (Angular 18) version. This date-picker is based on ng2-date-piker and ngx-jalali-date-picker date pickers.
89 lines • 12.1 kB
JavaScript
import { Injectable } from '@angular/core';
import moment from 'jalali-moment';
import * as i0 from "@angular/core";
import * as i1 from "../common/services/utils/utils.service";
export class MonthCalendarService {
constructor(utilsService) {
this.utilsService = utilsService;
this.DEFAULT_CONFIG = {
allowMultiSelect: false,
yearFormat: 'YYYY',
format: 'MMMM-YYYY',
isNavHeaderBtnClickable: false,
monthBtnFormat: 'MMMM',
locale: 'fa',
multipleYearsNavigateBy: 10,
showMultipleYearsNavigation: false,
unSelectOnClick: true
};
this.GREGORIAN_DEFAULT_CONFIG = {
format: 'MM-YYYY',
monthBtnFormat: 'MMM',
locale: 'en'
};
}
getConfig(config) {
const _config = {
...this.DEFAULT_CONFIG,
...((config && config.locale && config.locale !== 'fa') ? this.GREGORIAN_DEFAULT_CONFIG : {}),
...this.utilsService.clearUndefined(config)
};
this.utilsService.convertPropsToMoment(_config, _config.format, ['min', 'max'], _config.locale);
// 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);
}
year.locale(config.locale);
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 '';
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MonthCalendarService, deps: [{ token: i1.UtilsService }], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MonthCalendarService }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MonthCalendarService, decorators: [{
type: Injectable
}], ctorParameters: () => [{ type: i1.UtilsService }] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9udGgtY2FsZW5kYXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1qYWxhbGktZGF0ZS1waWNrZXIvc3JjL2xpYi9tb250aC1jYWxlbmRhci9tb250aC1jYWxlbmRhci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxNQUFNLE1BQU0sZUFBZSxDQUFDOzs7QUFPbkMsTUFBTSxPQUFPLG9CQUFvQjtJQWtCL0IsWUFBb0IsWUFBMEI7UUFBMUIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFqQnJDLG1CQUFjLEdBQWlDO1lBQ3RELGdCQUFnQixFQUFFLEtBQUs7WUFDdkIsVUFBVSxFQUFFLE1BQU07WUFDbEIsTUFBTSxFQUFFLFdBQVc7WUFDbkIsdUJBQXVCLEVBQUUsS0FBSztZQUM5QixjQUFjLEVBQUUsTUFBTTtZQUN0QixNQUFNLEVBQUUsSUFBSTtZQUNaLHVCQUF1QixFQUFFLEVBQUU7WUFDM0IsMkJBQTJCLEVBQUUsS0FBSztZQUNsQyxlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDO1FBQ08sNkJBQXdCLEdBQXlCO1lBQ3hELE1BQU0sRUFBRSxTQUFTO1lBQ2pCLGNBQWMsRUFBRSxLQUFLO1lBQ3JCLE1BQU0sRUFBRSxJQUFJO1NBQ2IsQ0FBQztJQUdGLENBQUM7SUFFRCxTQUFTLENBQUMsTUFBNEI7UUFDcEMsTUFBTSxPQUFPLEdBQWlDO1lBQzVDLEdBQUcsSUFBSSxDQUFDLGNBQWM7WUFDdEIsR0FBRyxDQUFDLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDN0YsR0FBRyxJQUFJLENBQUMsWUFBWSxD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ekQsSUFBSSxNQUFNLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUM3QixPQUFPLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QyxDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsbUJBQW1CLENBQUMsTUFBNEIsRUFBRSxLQUFhO1FBQzdELElBQUksTUFBTSxDQUFDLHdCQUF3QixFQUFFLENBQUM7WUFDcEMsT0FBTyxNQUFNLENBQUMsd0JBQXdCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEQsQ0FBQztRQUVELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQzsrR0E5RlUsb0JBQW9CO21IQUFwQixvQkFBb0I7OzRGQUFwQixvQkFBb0I7a0JBRGhDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IG1vbWVudCBmcm9tICdqYWxhbGktbW9tZW50JztcbmltcG9ydCB7TW9tZW50fSBmcm9tICdqYWxhbGktbW9tZW50JztcbmltcG9ydCB7VXRpbHNTZXJ2aWNlfSBmcm9tICcuLi9jb21tb24vc2VydmljZXMvdXRpbHMvdXRpbHMuc2VydmljZSc7XG5pbXBvcnQge0lNb250aH0gZnJvbSAnLi9tb250aC5tb2RlbCc7XG5pbXBvcnQge0lNb250aENhbGVuZGFyQ29uZmlnLCBJTW9udGhDYWxlbmRhckNvbmZpZ0ludGVybmFsfSBmcm9tICcuL21vbnRoLWNhbGVuZGFyLWNvbmZpZyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBNb250aENhbGVuZGFyU2VydmljZSB7XG4gIHJlYWRvbmx5IERFRkFVTFRfQ09ORklHOiBJTW9udGhDYWxlbmRhckNvbmZpZ0ludGVybmFsID0ge1xuICAgIGFsbG93TXVsdGlTZWxlY3Q6IGZhbHNlLFxuICAgIHllYXJGb3JtYXQ6ICdZWVlZJyxcbiAgICBmb3JtYXQ6ICdNTU1NLVlZWVknLFxuICAgIGlzTmF2SGVhZGVyQnRuQ2xpY2thYmxlOiBmYWxzZSxcbiAgICBtb250aEJ0bkZvcm1hdDogJ01NTU0nLFxuICAgIGxvY2FsZTogJ2ZhJyxcbiAgICBtdWx0aXBsZVllYXJzTmF2aWdhdGVCeTogMTAsXG4gICAgc2hvd011bHRpcGxlWWVhcnNOYXZpZ2F0aW9uOiBmYWxzZSxcbiAgICB1blNlbGVjdE9uQ2xpY2s6IHRydWVcbiAgfTtcbiAgcmVhZG9ubHkgR1JFR09SSUFOX0RFRkFVTFRfQ09ORklHOiBJTW9udGhDYWxlbmRhckNvbmZpZyA9IHtcbiAgICBmb3JtYXQ6ICdNTS1ZWVlZJyxcbiAgICBtb250aEJ0bkZvcm1hdDogJ01NTScsXG4gICAgbG9jYWxlOiAnZW4nXG4gIH07XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSB1dGlsc1NlcnZpY2U6IFV0aWxzU2VydmljZSkge1xuICB9XG5cbiAgZ2V0Q29uZmlnKGNvbmZpZzogSU1vbnRoQ2FsZW5kYXJDb25maWcpOiBJTW9udGhDYWxlbmRhckNvbmZpZ0ludGVybmFsIHtcbiAgICBjb25zdCBfY29uZmlnID0gPElNb250aENhbGVuZGFyQ29uZmlnSW50ZXJuYWw+e1xuICAgICAgLi4udGhpcy5ERUZBVUxUX0NPTkZJRyxcbiAgICAgIC4uLigoY29uZmlnICYmIGNvbmZpZy5sb2NhbGUgJiYgY29uZmlnLmxvY2FsZSAhPT0gJ2ZhJykgPyB0aGlzLkdSRUdPUklBTl9ERUZBVUxUX0NPTkZJRyA6IHt9KSxcbiAgICAgIC4uLnRoaXMudXRpbHNTZXJ2aWNlLmNsZWFyVW5kZWZpbmVkKGNvbmZpZylcbiAgICB9O1xuXG4gICAgdGhpcy51dGlsc1NlcnZpY2UuY29udmVydFByb3BzVG9Nb21lbnQoX2NvbmZpZywgX2NvbmZpZy5mb3JtYXQsIFsnbWluJywgJ21heCddLCBfY29uZmlnLmxvY2FsZSk7XG5cbiAgICAvLyBtb21lbnQubG9jYWxlKF9jb25maWcubG9jYWxlKTtcblxuICAgIHJldHVybiBfY29uZmlnO1xuICB9XG5cbiAgZ2VuZXJhdGVZZWFyKGNvbmZpZzogSU1vbnRoQ2FsZW5kYXJDb25maWcsIHllYXI6IE1vbWVudCwgc2VsZWN0ZWQ6IE1vbWVudFtdID0gbnVsbCk6IElNb250aFtdW10ge1xuICAgIGNvbnN0IGluZGV4ID0geWVhci5jbG9uZSgpLnN0YXJ0T2YoJ3llYXInKTtcblxuICAgIHJldHVybiB0aGlzLnV0aWxzU2VydmljZS5jcmVhdGVBcnJheSgzKS5tYXAoKCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMudXRpbHNTZXJ2aWNlLmNyZWF0ZUFycmF5KDQpLm1hcCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGRhdGUgPSBpbmRleC5jbG9uZSgpO1xuICAgICAgICBjb25zdCBtb250aCA9IHtcbiAgICAgICAgICBkYXRlLFxuICAgICAgICAgIHNlbGVjdGVkOiAhIXNlbGVjdGVkLmZpbmQocyA9PiBpbmRleC5pc1NhbWUocywgJ21vbnRoJykpLFxuICAgICAgICAgIGN1cnJlbnRNb250aDogaW5kZXguaXNTYW1lKG1vbWVudCgpLCAnbW9udGgnKSxcbiAgICAgICAgICBkaXNhYmxlZDogdGhpcy5pc01vbnRoRGlzYWJsZWQoZGF0ZSwgY29uZmlnKSxcbiAgICAgICAgICB0ZXh0OiB0aGlzLmdldE1vbnRoQnRuVGV4dChjb25maWcsIGRhdGUpXG4gICAgICAgIH07XG5cbiAgICAgICAgaW5kZXguYWRkKDEsICdtb250aCcpO1xuXG4gICAgICAgIHJldHVybiBtb250aDtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgaXNNb250aERpc2FibGVkKGRhdGU6IE1vbWVudCwgY29uZmlnOiBJTW9udGhDYWxlbmRhckNvbmZpZykge1xuICAgIGlmIChjb25maWcubWluICYmIGRhdGUuaXNCZWZvcmUoY29uZmlnLm1pbiwgJ21vbnRoJykpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiAhIShjb25maWcubWF4ICYmIGRhdGUuaXNBZnRlcihjb25maWcubWF4LCAnbW9udGgnKSk7XG4gIH1cblxuICBzaG91bGRTaG93TGVmdChtaW46IE1vbWVudCwgY3VycmVudE1vbnRoVmlldzogTW9tZW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIG1pbiA/IG1pbi5pc0JlZm9yZShjdXJyZW50TW9udGhWaWV3LCAneWVhcicpIDogdHJ1ZTtcbiAgfVxuXG4gIHNob3VsZFNob3dSaWdodChtYXg6IE1vbWVudCwgY3VycmVudE1vbnRoVmlldzogTW9tZW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIG1heCA/IG1heC5pc0FmdGVyKGN1cnJlbnRNb250aFZpZXcsICd5ZWFyJykgOiB0cnVlO1xuICB9XG5cbiAgZ2V0SGVhZGVyTGFiZWwoY29uZmlnOiBJTW9udGhDYWxlbmRhckNvbmZpZywgeWVhcjogTW9tZW50KTogc3RyaW5nIHtcbiAgICBpZiAoY29uZmlnLnllYXJGb3JtYXR0ZXIpIHtcbiAgICAgIHJldHVybiBjb25maWcueWVhckZvcm1hdHRlcih5ZWFyKTtcbiAgICB9XG4gICAgeWVhci5sb2NhbGUoY29uZmlnLmxvY2FsZSk7XG4gICAgcmV0dXJuIHllYXIuZm9ybWF0KGNvbmZpZy55ZWFyRm9ybWF0KTtcbiAgfVxuXG4gIGdldE1vbnRoQnRuVGV4dChjb25maWc6IElNb250aENhbGVuZGFyQ29uZmlnLCBtb250aDogTW9tZW50KTogc3RyaW5nIHtcbiAgICBpZiAoY29uZmlnLm1vbnRoQnRuRm9ybWF0dGVyKSB7XG4gICAgICByZXR1cm4gY29uZmlnLm1vbnRoQnRuRm9ybWF0dGVyKG1vbnRoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbW9udGguZm9ybWF0KGNvbmZpZy5tb250aEJ0bkZvcm1hdCk7XG4gIH1cblxuICBnZXRNb250aEJ0bkNzc0NsYXNzKGNvbmZpZzogSU1vbnRoQ2FsZW5kYXJDb25maWcsIG1vbnRoOiBNb21lbnQpOiBzdHJpbmcge1xuICAgIGlmIChjb25maWcubW9udGhCdG5Dc3NDbGFzc0NhbGxiYWNrKSB7XG4gICAgICByZXR1cm4gY29uZmlnLm1vbnRoQnRuQ3NzQ2xhc3NDYWxsYmFjayhtb250aCk7XG4gICAgfVxuXG4gICAgcmV0dXJuICcnO1xuICB9XG59XG4iXX0=