UNPKG

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
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