{"version":3,"file":"hijri-gregorian.mjs","sources":["../../../projects/ngx-hijri-gregorian-datepicker/src/lib/hijri-date/islamic-i18n.service.ts","../../../projects/ngx-hijri-gregorian-datepicker/src/lib/hijri-date/hijri-date.component.ts","../../../projects/ngx-hijri-gregorian-datepicker/src/lib/hijri-date/hijri-date.component.html","../../../projects/ngx-hijri-gregorian-datepicker/src/lib/date-picker.component.ts","../../../projects/ngx-hijri-gregorian-datepicker/src/lib/date-picker.component.html","../../../projects/ngx-hijri-gregorian-datepicker/src/public-api.ts","../../../projects/ngx-hijri-gregorian-datepicker/src/hijri-gregorian.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\nimport { NgbDatepickerI18n } from '@ng-bootstrap/ng-bootstrap';\r\nimport { NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n\r\n@Injectable()\r\nexport class IslamicI18n extends NgbDatepickerI18n{\r\n\r\n\r\n  get WEEKDAYS(): string[] {\r\n    return ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su'];\r\n  }\r\n\r\n  get MONTHS(): string[] {\r\n    return ['محرم', 'صفر', 'ربيع الأول', 'ربيع الآخر', 'جمادى الأولى', 'جمادى الآخرة', 'رجب', 'شعبان', 'رمضان', 'شوال', 'ذو القعدة', 'ذو الحجة'];\r\n  }\r\n\r\n  getMonthShortName(month: number): string {\r\n    return this.MONTHS[month - 1];\r\n  }\r\n\r\n  getMonthFullName(month: number): string {\r\n    return this.MONTHS[month - 1];\r\n  }\r\n\r\n  getWeekdayLabel(weekday: number): string {\r\n    return this.WEEKDAYS[weekday - 1];\r\n  }\r\n\r\n  getDayAriaLabel(date: NgbDateStruct): string {\r\n    return `${date.day}-${date.month}-${date.year}`;\r\n  }\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { NgbCalendar, NgbCalendarIslamicCivil, NgbDatepickerI18n, NgbDatepickerModule, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\r\nimport { toGregorian } from 'hijri-converter';\r\nimport { IslamicI18n } from './islamic-i18n.service';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n@Component({\r\n  selector: 'app-hijri-date',\r\n  templateUrl: './hijri-date.component.html',\r\n  standalone: true,\r\n  imports: [NgbDatepickerModule, FormsModule],\r\n  providers: [\r\n    { provide: NgbCalendar, useClass: NgbCalendarIslamicCivil },\r\n    { provide: NgbDatepickerI18n, useClass: IslamicI18n },\r\n  ],\r\n})\r\nexport class HijriDateComponent implements OnInit{\r\n  @Input() showDatePicker:boolean = false;\r\n  @Input() hijriCurrentDate:any;\r\n  @Input() minDateHijri:NgbDateStruct;\r\n  @Input() maxDateHijri:NgbDateStruct;\r\n  @Input() max!:string;\r\n  @Output() dateSelected = new EventEmitter<NgbDateStruct>();\r\n  hijriDate!: NgbDateStruct;\r\n\r\n  ngOnInit(): void {\r\n    this.hijriDate = this.hijriCurrentDate;\r\n  }\r\n\r\n  onModelChange() {\r\n    this.dateSelected.emit(this.hijriDate);\r\n    this.showDatePicker = false;\r\n\r\n  }\r\n}\r\n","<ngb-datepicker class=\"rtl\" #dp [(ngModel)]=\"hijriDate\" [startDate]=\"hijriDate\" [firstDayOfWeek]=\"7\" (ngModelChange)=\"onModelChange()\" [minDate]=\"minDateHijri\" [maxDate]=\"maxDateHijri\"/>\r\n","import { Component, EventEmitter, forwardRef, HostListener, Input, OnChanges, OnInit, Output, Renderer2, SimpleChanges, ViewEncapsulation } from '@angular/core';\r\nimport { ControlValueAccessor, FormControl, FormsModule, NG_VALUE_ACCESSOR, NgModel } from '@angular/forms';\r\nimport { NgbDatepickerModule, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\r\nimport { toGregorian, toHijri } from 'hijri-converter';\r\nimport { HijriDateComponent } from './hijri-date/hijri-date.component';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n  selector: 'hijri-gregorian',\r\n  standalone: true,\r\n  imports: [CommonModule, NgbDatepickerModule, FormsModule, HijriDateComponent],\r\n  templateUrl: './date-picker.component.html',\r\n  styleUrls: ['./date-picker.component.scss'],\r\n  encapsulation: ViewEncapsulation.None,\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      useExisting: forwardRef(() => HijriGregorianDatePicker ),\r\n      multi: true\r\n    }\r\n  ]\r\n})\r\nexport class HijriGregorianDatePicker  implements OnInit, OnChanges, ControlValueAccessor{\r\n  documentClickListener: () => void;\r\n  @Input() currentDate:any;\r\n  @Input() minDate:string;\r\n  @Input() maxDate:string;\r\n  @Input() returnedValue: 'gregorian' | 'hijri' = 'gregorian';\r\n  @Input() isHijri:boolean = false;\r\n  @Input() readOnly:boolean = false;\r\n  @Output() dateSelected = new EventEmitter<{}>();\r\n  showDatePicker:boolean = false;\r\n  hijriCurrentDate:any;\r\n  model: NgbDateStruct;\r\n  minGregorianDate: NgbDateStruct;\r\n  minDateHijri: NgbDateStruct;\r\n  maxGregorianDate: NgbDateStruct;\r\n  maxDateHijri: NgbDateStruct;\r\n  date:any = {};\r\n  changePosition:boolean=false;\r\n\r\n  constructor(private renderer: Renderer2){}\r\n\r\n  ngOnInit(): void {\r\n    this.model = null;\r\n    this.minGregorianDate = null;\r\n    this.maxGregorianDate = null;\r\n    this.minDateHijri = null;\r\n    this.maxDateHijri = null;\r\n    this.date = {};\r\n    this.showDatePicker = false;\r\n    this.hijriCurrentDate = null;\r\n    if (this.currentDate) {\r\n      let currentDate = this.formatDate(this.currentDate);\r\n      const [year, month, day] = currentDate.split('-').map(Number);\r\n      this.model = {year,month,day};\r\n      this.hijriCurrentDate = this.convertToHijriModel(this.model);\r\n      if (this.isHijri) {\r\n        this.date['value'] = this.convertModelDateToString(this.hijriCurrentDate);\r\n      } else {\r\n        this.date['value'] = this.convertModelDateToString(this.model);\r\n      }\r\n      this.selectDate();\r\n      if (this.readOnly) {\r\n        if (this.readOnly) {\r\n          this.minDate = currentDate;\r\n          this.maxDate = currentDate;\r\n        }\r\n      }\r\n    }\r\n    if (this.minDate && this.maxDate && this.maxDate < this.minDate) {\r\n      const temp = this.minDate;\r\n      this.minDate = this.maxDate;\r\n      this.maxDate = temp;\r\n\r\n    }\r\n    if (this.minDate) {\r\n      const [year, month, day] = this.minDate.split('-').map(Number);\r\n      this.minGregorianDate = {year,month,day};\r\n      this.minDateHijri = this.convertToHijriModel(this.minGregorianDate);\r\n    } else {\r\n      this.minGregorianDate = {year:1950,month:1,day:1};\r\n      this.minDateHijri = this.convertToHijriModel(this.minGregorianDate);\r\n    }\r\n    if (this.maxDate) {\r\n      const [year, month, day] = this.maxDate.split('-').map(Number);\r\n      this.maxGregorianDate = {year,month,day};\r\n      this.maxDateHijri = this.convertToHijriModel(this.maxGregorianDate);\r\n    }\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges): void {\r\n    this.ngOnInit();\r\n  }\r\n\r\n  formatDate(date: Date): string {\r\n    const d = new Date(date);\r\n    const month = ('0' + (d.getMonth() + 1)).slice(-2);\r\n    const day = ('0' + d.getDate()).slice(-2);\r\n    const year = d.getFullYear();\r\n    return `${year}-${month}-${day}`;\r\n  }\r\n\r\n  onModelChange() {\r\n    this.hijriCurrentDate = this.convertToHijriModel(this.model);\r\n    this.selectDate();\r\n    this.showDatePicker = false;\r\n  }\r\n\r\n  dateObj(){\r\n    return this.date = {\r\n      value : this.isHijri ? this.convertModelDateToString(this.hijriCurrentDate):this.convertModelDateToString(this.model),\r\n      gregorian : this.convertModelDateToString(this.model),\r\n      hijri : this.convertModelDateToString(this.hijriCurrentDate),\r\n    }\r\n  }\r\n\r\n  convertModelDateToString(date: NgbDateStruct): string {\r\n    if (!date) return '';\r\n\r\n    const year = date.year;\r\n    const month = date.month.toString().padStart(2, '0');\r\n    const day = date.day.toString().padStart(2, '0');\r\n\r\n    return `${year}-${month}-${day}`;\r\n  }\r\n\r\n  convertToHijriModel(date:NgbDateStruct){\r\n    let hijriDate= toHijri(date.year, date.month , date.day);\r\n    return {year:hijriDate.hy, month:hijriDate.hm, day:hijriDate.hd};\r\n  }\r\n\r\n  convertToGregorianModel(hijriDate):NgbDateStruct{\r\n    let date = toGregorian(hijriDate.year , hijriDate.month , hijriDate.day);\r\n    return {year:date.gy,month:date.gm,day:date.gd }\r\n  }\r\n\r\n  toggleDateType(){\r\n    this.isHijri = !this.isHijri;\r\n    if (this.isHijri && this.model) {\r\n      this.date['value'] = this.convertModelDateToString(this.hijriCurrentDate);\r\n    } else if (!this.isHijri && this.model){\r\n      this.date['value'] = this.convertModelDateToString(this.model);\r\n    }\r\n  }\r\n\r\n  onDatePicked(date:NgbDateStruct){\r\n    this.hijriCurrentDate = date;\r\n    this.model = this.convertToGregorianModel(date);\r\n    this.selectDate();\r\n    this.showDatePicker = false;\r\n  }\r\n\r\n  inputFocus(input: HTMLInputElement, event: Event) {\r\n    event.stopPropagation();\r\n    if (!this.showDatePicker) {\r\n      this.showDatePicker = true;\r\n      this.documentClickListener = this.renderer.listen('document', 'click', (clickEvent: any) => {\r\n        if (!clickEvent.target.closest('.date-container') && clickEvent.target !== input) {\r\n          this.showDatePicker = false;\r\n          this.documentClickListener();\r\n          this.documentClickListener = null;\r\n        }\r\n      });\r\n    }\r\n  }\r\n\r\n  private onChange: any = () => {};\r\n  private onTouched: any = () => {};\r\n\r\n  writeValue(data: any): void {\r\n    if (typeof data == 'string') {\r\n      this.currentDate = data\r\n    } else if (data.value) {\r\n      this.currentDate = data.value\r\n    }\r\n    if (data.disabled) {\r\n      delete data.minDate;\r\n      delete data.maxDate;\r\n      this.minDate = this.currentDate;\r\n      this.maxDate = this.currentDate;\r\n    }\r\n    if (data.minDate) {\r\n      this.minDate = data.minDate;\r\n    }\r\n    if (data.maxDate) {\r\n      this.maxDate = data.maxDate;\r\n    }\r\n    this.ngOnInit();\r\n  }\r\n\r\n  registerOnChange(fn: any): void {\r\n    this.onChange = fn;\r\n  }\r\n\r\n  registerOnTouched(fn: any): void {\r\n    this.onTouched = fn;\r\n  }\r\n\r\n  setDisabledState?(isDisabled: boolean): void {\r\n    this.readOnly = isDisabled;\r\n    this.ngOnInit();\r\n  }\r\n\r\n  selectDate() {\r\n    let date = '';\r\n    if (this.returnedValue === 'gregorian') {\r\n      date = this.dateObj().gregorian;\r\n    } else {\r\n      date = this.dateObj().hijri;\r\n    }\r\n    this.onChange(date);\r\n    this.onTouched();\r\n    this.dateSelected.emit(this.dateObj());\r\n  }\r\n\r\n\r\n}\r\n","<div id=\"date-picker-container\">\r\n    <input type=\"text\" class=\"form-control date-picker-input\" style=\"cursor: pointer; box-shadow: none;\" placeholder=\"Select Date\"\r\n      readonly\r\n      [value]=\"date?.value ?? ''\" #input\r\n      (focus)=\"inputFocus(input, $event)\"\r\n    >\r\n\r\n  <div class=\"date-container\">\r\n    <div *ngIf=\"showDatePicker\" style=\"position: static; z-index: 9999; background-color: white;\" >\r\n      <ngb-datepicker [minDate]=\"minGregorianDate\" [maxDate]=\"maxGregorianDate\" *ngIf=\"!isHijri\" #dp [(ngModel)]=\"model\" [startDate]=\"model\" (ngModelChange)=\"onModelChange()\"/>\r\n      <app-hijri-date *ngIf=\"isHijri\" (dateSelected)=\"onDatePicked($event)\" [hijriCurrentDate]=\"hijriCurrentDate\" [minDateHijri]=\"minDateHijri\" [maxDateHijri]=\"maxDateHijri\"></app-hijri-date>\r\n      <div class=\"switch\">\r\n        <input type=\"checkbox\" [checked]=\"isHijri\" (click)=\"toggleDateType()\">\r\n      </div>\r\n  </div>\r\n</div>\r\n","/*\r\n * Public API Surface of ngx-hijri-gregorian-datepicker\r\n */\r\n\r\nexport * from './lib/date-picker.component';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2"],"mappings":"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"}