ngx-hijri-gregorian-datepicker
Version:
* Lightweight **Angular** datepicker based on [ng-bootstrap](https://ng-bootstrap.github.io/#/components/datepicker/overview) that supports **Gregorian** and **Hijri** calendars. * Provides ability to swap between **Gregorian** and **Hijri** calendars
50 lines • 6.63 kB
JavaScript
import { Component, ViewEncapsulation, Input, Output, EventEmitter, ViewChild } from '@angular/core';
import { NgbCalendar, NgbCalendarIslamicUmalqura, NgbDatepickerI18n } from '@ng-bootstrap/ng-bootstrap';
import { IslamicI18n } from '../IslamicI18n';
export class HijriDatepickerComponent {
constructor() {
this.selectedDateChange = new EventEmitter();
this.readonly = false;
this.isRequired = false;
this.disabled = false;
}
changeDate() {
this.selectedDateChange.emit(this.selectedDate);
}
onBlur() {
if (!this.selectedDate) {
this.selectedDateChange.emit(null);
}
}
clear() {
this.selectedDate = undefined;
this.datePicker.close();
this.selectedDateChange.emit(null);
}
}
HijriDatepickerComponent.decorators = [
{ type: Component, args: [{
selector: 'hijri-date-picker',
template: "<div provideParentForm>\r\n<input\r\n class=\"form-control hijriInput\"\r\n [(ngModel)]=\"selectedDate\"\r\n [placeholder]=\"placeHolder ?placeHolder : 'd/M/yyyy'\"\r\n ngbDatepicker\r\n (click)=\"d.toggle()\"\r\n (dateSelect)=\"changeDate()\"\r\n #d=\"ngbDatepicker\"\r\n [readonly]=\"readonly\"\r\n [minDate]=\"min\"\r\n [maxDate]=\"max\"\r\n [required]=\"isRequired\"\r\n [name]=\"name\"\r\n (blur)=\"onBlur()\"\r\n [footerTemplate]=\"footerTemplate\"\r\n [disabled]=\"disabled\" />\r\n</div>\r\n\r\n\r\n<ng-template #footerTemplate>\r\n <hr class=\"my-0\">\r\n <button class=\"btn btn-secondary btn-sm m-2 float-right\" type=\"button\" (click)=\"d.close()\">Close</button>\r\n <button class=\"btn btn-primary btn-sm m-2 float-left\" type=\"button\" (click)=\"clear()\">Clear</button>\r\n</ng-template>\r\n",
providers: [
{ provide: NgbCalendar, useClass: NgbCalendarIslamicUmalqura },
{ provide: NgbDatepickerI18n, useClass: IslamicI18n }
],
encapsulation: ViewEncapsulation.None,
styles: [".hijriInput{border-top-left-radius:0;border-bottom-left-radius:0}.ngb-dp-weekday{width:2.1rem!important}\n"]
},] }
];
HijriDatepickerComponent.ctorParameters = () => [];
HijriDatepickerComponent.propDecorators = {
datePicker: [{ type: ViewChild, args: ['d',] }],
selectedDate: [{ type: Input }],
selectedDateChange: [{ type: Output }],
readonly: [{ type: Input }],
isRequired: [{ type: Input }],
disabled: [{ type: Input }],
min: [{ type: Input }],
max: [{ type: Input }],
name: [{ type: Input }],
placeHolder: [{ type: Input }]
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlqcmktZGF0ZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlqcmktZ3JlZ29yaWFuLWRhdGVwaWNrZXIvc3JjL2xpYi9oaWpyaS1ncmVnb3JpYW4tZGF0ZXBpY2tlci9oaWpyaS1kYXRlcGlja2VyL2hpanJpLWRhdGVwaWNrZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdHLE9BQU8sRUFBRSxXQUFXLEVBQUUsMEJBQTBCLEVBQUUsaUJBQWlCLEVBQWlCLE1BQU0sNEJBQTRCLENBQUM7QUFDdkgsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBZTdDLE1BQU0sT0FBTyx3QkFBd0I7SUFnQm5DO1FBWFUsdUJBQWtCLEdBQWdDLElBQUksWUFBWSxFQUFFLENBQUM7UUFFdEUsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLGFBQVEsR0FBRyxLQUFLLENBQUM7SUFPVixDQUFDO0lBRWpCLFVBQVU7UUFDUixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDcEM7SUFDSCxDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxZQUFZLEdBQUcsU0FBUyxDQUFDO1FBQzlCLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyQyxDQUFDOzs7WUE1Q0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxtQkFBbUI7Z0JBQzdCLHEyQkFBZ0Q7Z0JBQ2hELFNBQVMsRUFBRTtvQkFDVCxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLDBCQUEwQixFQUFFO29CQUM5RCxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFO2lCQUN0RDtnQkFJRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTs7YUFDdEM7Ozs7eUJBR0UsU0FBUyxTQUFDLEdBQUc7MkJBRWIsS0FBSztpQ0FDTCxNQUFNO3VCQUVOLEtBQUs7eUJBQ0wsS0FBSzt1QkFDTCxLQUFLO2tCQUNMLEtBQUs7a0JBQ0wsS0FBSzttQkFDTCxLQUFLOzBCQUVMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgVmlld0VuY2Fwc3VsYXRpb24sIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5nYkNhbGVuZGFyLCBOZ2JDYWxlbmRhcklzbGFtaWNVbWFscXVyYSwgTmdiRGF0ZXBpY2tlckkxOG4sIE5nYkRhdGVTdHJ1Y3QgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IElzbGFtaWNJMThuIH0gZnJvbSAnLi4vSXNsYW1pY0kxOG4nO1xyXG5pbXBvcnQgeyBDb250cm9sQ29udGFpbmVyLCBOZ0Zvcm0gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2hpanJpLWRhdGUtcGlja2VyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaGlqcmktZGF0ZXBpY2tlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7IHByb3ZpZGU6IE5nYkNhbGVuZGFyLCB1c2VDbGFzczogTmdiQ2FsZW5kYXJJc2xhbWljVW1hbHF1cmEgfSxcclxuICAgIHsgcHJvdmlkZTogTmdiRGF0ZXBpY2tlckkxOG4sIHVzZUNsYXNzOiBJc2xhbWljSTE4biB9XHJcbiAgXSxcclxuICBzdHlsZVVybHM6IFtcclxuICAgICcuL2hpanJpLWRhdGUtcGlja2VyLmNvbXBvbmVudC5jc3MnXHJcbiAgXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBIaWpyaURhdGVwaWNrZXJDb21wb25lbnQge1xyXG5cclxuICBAVmlld0NoaWxkKCdkJykgZGF0ZVBpY2tlcjogYW55O1xyXG5cclxuICBASW5wdXQoKSBzZWxlY3RlZERhdGU6IE5nYkRhdGVTdHJ1Y3Q7XHJcbiAgQE91dHB1dCgpIHNlbGVjdGVkRGF0ZUNoYW5nZTogRXZlbnRFbWl0dGVyPE5nYkRhdGVTdHJ1Y3Q+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBASW5wdXQoKSByZWFkb25seSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGlzUmVxdWlyZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIG1pbjogTmdiRGF0ZVN0cnVjdDtcclxuICBASW5wdXQoKSBtYXg6IE5nYkRhdGVTdHJ1Y3Q7XHJcbiAgQElucHV0KCkgbmFtZTogc3RyaW5nO1xyXG5cclxuICBASW5wdXQoKSBwbGFjZUhvbGRlcjogc3RyaW5nO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBjaGFuZ2VEYXRlKCkge1xyXG4gICAgdGhpcy5zZWxlY3RlZERhdGVDaGFuZ2UuZW1pdCh0aGlzLnNlbGVjdGVkRGF0ZSk7XHJcbiAgfVxyXG5cclxuICBvbkJsdXIoKSB7XHJcbiAgICBpZiAoIXRoaXMuc2VsZWN0ZWREYXRlKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRlQ2hhbmdlLmVtaXQobnVsbCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjbGVhcigpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5kYXRlUGlja2VyLmNsb3NlKCk7XHJcbiAgICB0aGlzLnNlbGVjdGVkRGF0ZUNoYW5nZS5lbWl0KG51bGwpO1xyXG4gIH1cclxuXHJcbn1cclxuIl19