{"version":3,"file":"ngx-hijri-datepicker.mjs","sources":["../../../projects/ngx-hijri-datepicker/src/lib/ngx-hijri-datepicker.component.ts","../../../projects/ngx-hijri-datepicker/src/lib/ngx-hijri-datepicker.module.ts","../../../projects/ngx-hijri-datepicker/src/public-api.ts","../../../projects/ngx-hijri-datepicker/src/ngx-hijri-datepicker.ts"],"sourcesContent":["import {\r\n  Component,\r\n  HostListener,\r\n  ElementRef,\r\n  Input,\r\n  Output,\r\n  EventEmitter,\r\n  forwardRef,\r\n  OnInit,\r\n} from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\r\nimport moment from 'moment-hijri';\r\n@Component({\r\n  selector: 'ngx-hijri-datepicker',\r\n  template:   `\r\n<div\r\n  class=\"hijri-datepicker-container\"\r\n  [ngStyle]=\"{\r\n    width: width,\r\n  }\"\r\n>\r\n  <!-- حقل الإدخال -->\r\n  <div\r\n    class=\"input-svg-wrapper\"\r\n    [ngStyle]=\"{\r\n        width: width,\r\n}\"\r\n  >\r\n    <input\r\n      type=\"text\"\r\n      [value]=\"displayedDate\"\r\n      (click)=\"toggleDatePicker()\"\r\n      readonly\r\n      [placeholder]=\"placeholder\"\r\n      class=\"datepicker-input\"\r\n      [ngStyle]=\"{\r\n        width: width,\r\n        borderColor: BorderColor,\r\n        color: InputColor,\r\n        backgroundColor: InputBackgroundColor\r\n      }\"\r\n    />\r\n    <div\r\n      class=\"iconClender\"\r\n      (click)=\"toggleDatePicker()\"\r\n      [ngStyle]=\"{\r\n        backgroundColor: IconBackgroundColor\r\n      }\"\r\n    >\r\n      <svg\r\n        [attr.fill]=\"IconColor\"\r\n        version=\"1.1\"\r\n        id=\"Capa_1\"\r\n        xmlns=\"http://www.w3.org/2000/svg\"\r\n        xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n        viewBox=\"0 0 610.398 610.398\"\r\n        class=\"datepicker-icon\"\r\n      >\r\n        <g>\r\n          <g>\r\n            <path\r\n              d=\"M159.567,0h-15.329c-1.956,0-3.811,0.411-5.608,0.995c-8.979,2.912-15.616,12.498-15.616,23.997v10.552v27.009v14.052\r\n               c0,2.611,0.435,5.078,1.066,7.44c2.702,10.146,10.653,17.552,20.158,17.552h15.329c11.724,0,21.224-11.188,21.224-24.992V62.553\r\n               V35.544V24.992C180.791,11.188,171.291,0,159.567,0z\"\r\n            />\r\n            <path\r\n              d=\"M461.288,0h-15.329c-11.724,0-21.224,11.188-21.224,24.992v10.552v27.009v14.052c0,13.804,9.5,24.992,21.224,24.992\r\n               h15.329c11.724,0,21.224-11.188,21.224-24.992V62.553V35.544V24.992C482.507,11.188,473.007,0,461.288,0z\"\r\n            />\r\n            <path\r\n              d=\"M539.586,62.553h-37.954v14.052c0,24.327-18.102,44.117-40.349,44.117h-15.329c-22.247,0-40.349-19.79-40.349-44.117\r\n               V62.553H199.916v14.052c0,24.327-18.102,44.117-40.349,44.117h-15.329c-22.248,0-40.349-19.79-40.349-44.117V62.553H70.818\r\n               c-21.066,0-38.15,16.017-38.15,35.764v476.318c0,19.784,17.083,35.764,38.15,35.764h468.763c21.085,0,38.149-15.984,38.149-35.764\r\n               V98.322C577.735,78.575,560.671,62.553,539.586,62.553z M527.757,557.9l-446.502-0.172V173.717h446.502V557.9z\"\r\n            />\r\n            <path\r\n              d=\"M353.017,266.258h117.428c10.193,0,18.437-10.179,18.437-22.759s-8.248-22.759-18.437-22.759H353.017\r\n               c-10.193,0-18.437,10.179-18.437,22.759C334.58,256.074,342.823,266.258,353.017,266.258z\"\r\n            />\r\n            <path\r\n              d=\"M353.017,348.467h117.428c10.193,0,18.437-10.179,18.437-22.759c0-12.579-8.248-22.758-18.437-22.758H353.017\r\n               c-10.193,0-18.437,10.179-18.437,22.758C334.58,338.288,342.823,348.467,353.017,348.467z\"\r\n            />\r\n            <path\r\n              d=\"M353.017,430.676h117.428c10.193,0,18.437-10.18,18.437-22.759s-8.248-22.759-18.437-22.759H353.017\r\n               c-10.193,0-18.437,10.18-18.437,22.759S342.823,430.676,353.017,430.676z\"\r\n            />\r\n            <path\r\n              d=\"M353.017,512.89h117.428c10.193,0,18.437-10.18,18.437-22.759c0-12.58-8.248-22.759-18.437-22.759H353.017\r\n               c-10.193,0-18.437,10.179-18.437,22.759C334.58,502.71,342.823,512.89,353.017,512.89z\"\r\n            />\r\n            <path\r\n              d=\"M145.032,266.258H262.46c10.193,0,18.436-10.179,18.436-22.759s-8.248-22.759-18.436-22.759H145.032\r\n               c-10.194,0-18.437,10.179-18.437,22.759C126.596,256.074,134.838,266.258,145.032,266.258z\"\r\n            />\r\n            <path\r\n              d=\"M145.032,348.467H262.46c10.193,0,18.436-10.179,18.436-22.759c0-12.579-8.248-22.758-18.436-22.758H145.032\r\n               c-10.194,0-18.437,10.179-18.437,22.758C126.596,338.288,134.838,348.467,145.032,348.467z\"\r\n            />\r\n            <path\r\n              d=\"M145.032,430.676H262.46c10.193,0,18.436-10.18,18.436-22.759s-8.248-22.759-18.436-22.759H145.032\r\n               c-10.194,0-18.437,10.18-18.437,22.759S134.838,430.676,145.032,430.676z\"\r\n            />\r\n            <path\r\n              d=\"M145.032,512.89H262.46c10.193,0,18.436-10.18,18.436-22.759c0-12.58-8.248-22.759-18.436-22.759H145.032\r\n               c-10.194,0-18.437,10.179-18.437,22.759C126.596,502.71,134.838,512.89,145.032,512.89z\"\r\n            />\r\n          </g>\r\n        </g>\r\n      </svg>\r\n    </div>\r\n  </div>\r\n  <!-- التقويم -->\r\n  <div\r\n    class=\"datepicker-popup\"\r\n    [class.open]=\"showDatePicker\"\r\n    [class.closed]=\"!showDatePicker\"\r\n    [ngStyle]=\"{\r\n    borderColor: BorderColor\r\n      }\"\r\n  >\r\n    <!-- عنوان الشهر وأزرار التنقل -->\r\n    <div class=\"header\">\r\n      <a (click)=\"prevMonth()\">&lt;</a>\r\n      <span (click)=\"toggleYearPopup()\"   [ngStyle]=\"{\r\n        color: DayColor\r\n      }\">{{ currentMonthName }}</span>\r\n      <a (click)=\"nextMonth()\">&gt;</a>\r\n    </div>\r\n<!-- Popup لاختيار السنة -->\r\n<div class=\"year-popup\" *ngIf=\"showYearPopup\">\r\n  <div class=\"year-list\">\r\n    <div *ngFor=\"let year of hijriYears\" (click)=\"selectYear(year)\">\r\n      {{ year }}\r\n    </div>\r\n  </div>\r\n</div>\r\n    <!-- أسماء أيام الأسبوع -->\r\n    <div class=\"weekdays\">\r\n      <div       [ngStyle]=\"{\r\n        color: DatepickerPopupHeaderColor\r\n      }\" *ngFor=\"let day of dayNamesMin\" class=\"weekday\">{{ day }}</div>\r\n    </div>\r\n\r\n    <!-- عرض أيام الشهر -->\r\n    <div class=\"days\">\r\n      <div\r\n        *ngFor=\"let day of daysInCurrentMonth\"\r\n        class=\"day\"\r\n        [class.selected]=\"selectedDate && day?.isSame(selectedDate, 'day')\"\r\n        (click)=\"selectDate(day)\"\r\n      >\r\n        <span *ngIf=\"day\">{{ day.iDate() }}</span>\r\n      </div>\r\n    </div>\r\n\r\n    <!-- زر لتحديد اليوم الحالي -->\r\n    <div class=\"today-button\">\r\n      <a (click)=\"selectToday()\"\r\n      >{{todayBtn}}</a>\r\n    </div>\r\n  </div>\r\n</div>\r\n\r\n  `,\r\n  styles: `\r\n  .year-popup {\r\n  position: absolute;\r\n  top: 40px;\r\n  left: 0;\r\n  width: 100%;\r\n  background: white;\r\n  border: 1px solid var(--primary-color, #000);\r\n  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);\r\n  z-index: 1000;\r\n  max-height: 200px;\r\n  overflow-y: auto;\r\n}\r\n\r\n.year-list div {\r\n  padding: 10px;\r\n  text-align: center;\r\n  cursor: pointer;\r\n  transition: background-color 0.3s;\r\n}\r\n\r\n.year-list div:hover {\r\n  background-color: var(--primary-color, #007bff);\r\n  color: white;\r\n}\r\n\r\n  .hijri-datepicker-container {\r\n    position: relative;\r\n    display: inline-block;\r\n    width: 250px;\r\n  }\r\n\r\n  .input-svg-wrapper {\r\n    display: flex;\r\n    align-items: center; /* لمحاذاة المحتوى عموديًا */\r\n    width: 100%; /* نفس عرض الحاوية */\r\n  }\r\n\r\n  .iconClender {\r\n    background-color: var(--primary-color, #000); /* استخدام لون افتراضي */\r\n    padding: 14.5px;\r\n    border-top-left-radius: 4px;\r\n    border-bottom-left-radius: 4px;\r\n    display: flex;\r\n    justify-content: center;\r\n    align-items: center;\r\n    cursor: pointer;\r\n  }\r\n\r\n  .datepicker-input {\r\n    flex: 1; /* يأخذ الإدخال كامل العرض المتبقي */\r\n    padding: 8px;\r\n    font-size: 14px;\r\n    box-sizing: border-box;\r\n    border: 1px solid var(--primary-color, #000); /* استخدام لون افتراضي */\r\n    border-top-right-radius: 4px;\r\n    border-bottom-right-radius: 4px;\r\n    transition: border-color 0.3s ease-in-out;\r\n  }\r\n\r\n  .datepicker-input:focus {\r\n    outline: none; /* إزالة الإطار الافتراضي */\r\n    border-color: var(--primary-color, #000); /* استخدام لون افتراضي */\r\n    box-shadow: 0 0 4px var(--primary-color, #000); /* تأثير خفيف عند التركيز */\r\n  }\r\n\r\n  .datepicker-icon {\r\n    width: 15px; /* يمكن ضبط الحجم حسب الحاجة */\r\n    height: 15px; /* نفس ارتفاع الإدخال */\r\n    cursor: pointer;\r\n  }\r\n\r\n  .datepicker-popup {\r\n    position: absolute;\r\n    top: 100%;\r\n    left: 0;\r\n    z-index: 1000;\r\n    background: #fff;\r\n    border: 1px solid var(--primary-color, #000); /* استخدام لون افتراضي */\r\n    box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.1);\r\n    padding: 10px;\r\n    width: 100%;\r\n    opacity: 0;\r\n    transform: scaleY(0);\r\n    transform-origin: top;\r\n    transition: all 0.3s ease-in-out;\r\n  }\r\n\r\n  .datepicker-popup.open {\r\n    opacity: 1;\r\n    transform: scaleY(1);\r\n  }\r\n\r\n  .datepicker-popup.closed {\r\n    opacity: 0;\r\n    transform: scaleY(0);\r\n  }\r\n\r\n  .header {\r\n    display: flex;\r\n    justify-content: space-between;\r\n    margin-bottom: 10px;\r\n    font-weight: bold;\r\n    color: var(--primary-color, #000); /* استخدام لون افتراضي */\r\n  }\r\n\r\n  .header a {\r\n    cursor: pointer;\r\n  }\r\n\r\n  .weekdays,\r\n  .days {\r\n    display: grid;\r\n    grid-template-columns: repeat(7, 1fr);\r\n    text-align: center;\r\n  }\r\n\r\n  .weekday {\r\n    font-weight: bold;\r\n    margin-bottom: 5px;\r\n    font-size: 12px;\r\n    color: var(--primary-color, #000); /* استخدام لون افتراضي */\r\n  }\r\n\r\n  .day {\r\n    padding: 5px;\r\n    cursor: pointer;\r\n    text-align: center;\r\n    border-radius: 4px;\r\n    transition: background-color 0.3s, color 0.3s;\r\n  }\r\n\r\n  .day:hover {\r\n    background-color: var(--primary-color, #000); /* استخدام لون افتراضي */\r\n    color: #fff;\r\n  }\r\n\r\n  .day.selected {\r\n    background-color: var(--primary-color, #000); /* استخدام لون افتراضي */\r\n    color: white;\r\n    font-weight: bold;\r\n  }\r\n\r\n  .today-button {\r\n    text-align: left;\r\n    margin-top: 10px;\r\n    border: none;\r\n  }\r\n\r\n  .today-button a {\r\n    cursor: pointer;\r\n    padding: 5px 10px;\r\n    color: #000;\r\n  }\r\n\r\n  .today-button a:hover {\r\n    background-color:  var(--primary-color, #000); /* اللون الافتراضي */\r\n    border-radius: 50px;\r\n    color: white;\r\n  }\r\n\r\n  `,\r\n\r\nproviders: [\r\n  {\r\n    provide: NG_VALUE_ACCESSOR,\r\n    useExisting: forwardRef(() => NgxHijriDatepickerComponent),\r\n    multi: true,\r\n  },\r\n],\r\n})\r\nexport class NgxHijriDatepickerComponent {\r\n  // Input properties to allow customization by the user\r\n  // المدخلات لتخصيص المكون من قبل المستخدم\r\n  @Input() value: string | null = null; // The initial value / القيمة الأولية\r\n  @Output() valueChange: EventEmitter<string> = new EventEmitter<string>(); // Emits value when it changes / إرسال القيمة عند التغيير\r\n\r\n  @Input() placeholder: string = 'اختر تاريخ هجري'; // Placeholder text / النص الافتراضي للحقل\r\n  @Input() width: string = '250px'; // Width of the input field / عرض الحقل\r\n  @Input() height: string = '40px'; // Height of the input field / ارتفاع الحقل\r\n  @Input() InputColor: string | null = null; // Input text color / لون النص في الحقل\r\n  @Input() InputBackgroundColor: string | null= null; // Input background color / لون خلفية الحقل\r\n  @Input() IconColor: string | null= null; // Icon color / لون الأيقونة\r\n  @Input() IconBackgroundColor: string| null = null; // Icon background color / لون خلفية الأيقونة\r\n  @Input() DayColor: string| null= null; // Day color in calendar / لون الأيام في التقويم\r\n  @Input() BorderColor: string | null= null; // Border color for input and popup / لون الحدود\r\n  @Input() DatepickerPopupHeaderColor: string | null= null; // Header color in the popup / لون الرأس في نافذة التقويم\r\n  @Input() displayFormat: string = 'iYYYY/iM/iD'; // تنسيق التاريخ الافتراضي\r\n  @Input() storageFormat: string | null = null; // التنسيق المستخدم للتخزين (افتراضيًا يكون null)\r\n  @Input() locale: 'en' | 'ar-SA' = 'ar-SA';  // خيار لاختيار اللغة (افتراضي: عربي)\r\n  @Input() storageLocale: 'en' | 'ar-SA' = 'en';  // لغة التخزين\r\n\r\n  selectedDate: moment.Moment | null = null; // Currently selected date / التاريخ المختار\r\n  showDatePicker = false; // To control visibility of the datepicker popup / التحكم في إظهار التقويم\r\n  showYearPopup: boolean = false;  // إضافة الخاصية هنا\r\n  currentViewDate: moment.Moment = moment().locale(this.locale);; // Currently displayed month in the popup / الشهر الحالي المعروض\r\n  todayBtn:string = 'اليوم'\r\n  onChange = (value: string) => {}; // Placeholder for Reactive Forms' change event / واجهة للتعامل مع التغييرات في Reactive Forms\r\n  onTouched = () => {}; // Placeholder for Reactive Forms' touch event / واجهة للتعامل مع لمسة الحقل في Reactive Forms\r\n\r\n  // أسماء الأيام (اختصار)\r\n  // Short names for days of the week\r\n  // Getter لتحديد أسماء الأيام بناءً على اللغة\r\n  get dayNamesMin(): string[] {\r\n    return this.locale === 'ar-SA'\r\n      ? ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س']  // عربي\r\n      : ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'];  // إنجليزي\r\n  }\r\n  constructor(private elementRef: ElementRef) {}\r\n\r\n  // **Initial setup on component load**\r\n  // **إعداد مبدئي عند تحميل المكون**\r\n  ngOnInit() {\r\n    moment.locale(this.locale);  // ضبط locale بناءً على اللغة المختارة\r\n    if (this.value) {\r\n      this.selectedDate = moment(this.value, this.displayFormat).locale(this.locale);; // Parse the initial value / تحويل القيمة الأولية لتاريخ\r\n      this.currentViewDate = this.selectedDate.clone(); // Set the view date to the selected date / عرض الشهر الخاص بالتاريخ المختار\r\n    }\r\n    if(this.locale == 'en')\r\n      this.todayBtn = 'Today'\r\n  }\r\n  // إذا لم يتم تمرير `storageFormat` من المستخدم، نستخدم `displayFormat` كقيمة افتراضية\r\n  get resolvedStorageFormat(): string {\r\n    return this.storageFormat || this.displayFormat;\r\n  }\r\n  // **Property: Display the current month's name in Hijri format**\r\n  // **خاصية: عرض اسم الشهر الحالي بالتنسيق الهجري**\r\n  get currentMonthName(): string {\r\n    return this.currentViewDate.locale(this.locale).format('iMMMM iYYYY'); // Format the current month / صيغة اسم الشهر الحالي\r\n  }\r\n\r\n  // **Property: Calculate and return days of the current month**\r\n  // **خاصية: حساب وإرجاع أيام الشهر الحالي**\r\n  get daysInCurrentMonth(): any[] {\r\n    const startOfMonth = this.currentViewDate.clone().startOf('iMonth'); // Start of the month / بداية الشهر\r\n    const endOfMonth = this.currentViewDate.clone().endOf('iMonth'); // End of the month / نهاية الشهر\r\n\r\n    const days = [];\r\n    const startDayOfWeek = startOfMonth.day(); // The first day of the month in the week / اليوم الأول من الشهر\r\n\r\n    // Add empty slots for previous month's days\r\n    // إضافة فراغات للأيام التي تسبق الشهر الحالي\r\n    for (let i = 0; i < startDayOfWeek; i++) {\r\n      days.push(null);\r\n    }\r\n\r\n    // Add actual days of the current month\r\n    // إضافة الأيام الفعلية للشهر الحالي\r\n    const totalDays = endOfMonth.iDate();\r\n    for (let d = 1; d <= totalDays; d++) {\r\n      days.push(startOfMonth.clone().iDate(d).locale(this.locale));\r\n    }\r\n\r\n    return days;\r\n  }\r\n\r\n  // **Method: Navigate to the previous month**\r\n  // **طريقة: الانتقال إلى الشهر السابق**\r\n  prevMonth() {\r\n    this.currentViewDate = this.currentViewDate.clone().subtract(1, 'iMonth').locale(this.locale);;\r\n  }\r\n\r\n  // **Method: Navigate to the next month**\r\n  // **طريقة: الانتقال إلى الشهر التالي**\r\n  nextMonth() {\r\n    this.currentViewDate = this.currentViewDate.clone().add(1, 'iMonth').locale(this.locale);;\r\n  }\r\n\r\n  // **Method: Select a specific date**\r\n  // **طريقة: اختيار تاريخ معين**\r\n  selectDate(day: moment.Moment | null) {\r\n    if (day) {\r\n      this.selectedDate = day.locale(this.locale);\r\n      const storedValue = this.selectedDate.locale(this.storageLocale).format(this.resolvedStorageFormat); // القيمة لتخزينها في قاعدة البيانات\r\n      const displayValue = this.selectedDate.locale(this.locale).format(this.displayFormat); // القيمة لعرضها\r\n\r\n      this.onChange(storedValue); // إرسال القيمة المخزنة إلى النموذج\r\n      this.valueChange.emit(storedValue); // إرسال القيمة المخزنة\r\n\r\n      this.showDatePicker = false; // إغلاق نافذة التقويم\r\n    }\r\n  }\r\n\r\n  // **Method: Toggle visibility of the datepicker**\r\n  // **طريقة: فتح/إغلاق التقويم**\r\n  toggleDatePicker() {\r\n    this.currentViewDate = this.selectedDate\r\n      ? this.selectedDate.clone().locale(this.locale)\r\n      : moment().locale(this.locale); // Set to current date if no date is selected / عرض الشهر الحالي إذا لم يتم اختيار تاريخ\r\n    this.showDatePicker = !this.showDatePicker; // Toggle visibility / تبديل الحالة\r\n  }\r\n\r\n  // **Method: Close the popup when clicking outside**\r\n  // **طريقة: إغلاق التقويم عند النقر خارج المكون**\r\n  @HostListener('document:click', ['$event.target'])\r\n  onDocumentClick(targetElement: HTMLElement) {\r\n    const clickedInside = this.elementRef.nativeElement.contains(targetElement); // Check if click is inside / التحقق إذا كان النقر داخل المكون\r\n    if (!clickedInside) {\r\n      this.showDatePicker = false; // Close the popup / إغلاق نافذة التقويم\r\n    }\r\n  }\r\n\r\n  // **Property: Display the selected date in the input field**\r\n  // **خاصية: عرض التاريخ المختار في الحقل**\r\n  get displayedDate(): string {\r\n    return this.selectedDate ? this.selectedDate.locale(this.locale).format(this.displayFormat) : ''; // Display formatted date or empty string / عرض التاريخ أو تركه فارغاً\r\n  }\r\n\r\n  // **Method: Select today's date**\r\n  // **طريقة: اختيار تاريخ اليوم**\r\n  selectToday() {\r\n    this.selectedDate = moment().locale(this.locale); // Set the date to today / تعيين التاريخ إلى اليوم\r\n    const storedValue = this.selectedDate.locale(this.storageLocale).format(this.resolvedStorageFormat);\r\n    const displayValue = this.selectedDate.locale(this.storageLocale).format(this.displayFormat);\r\n    this.onChange(storedValue); // Emit the value for Reactive Forms / إرسال القيمة إلى Reactive Forms\r\n    this.valueChange.emit(storedValue); // Emit the value for standalone usage / إرسال القيمة عند الاستخدام الفردي\r\n    this.showDatePicker = false; // Close the popup / إغلاق نافذة التقويم\r\n  }\r\n\r\n  // **ControlValueAccessor: Write a new value**\r\n  // **واجهة: تعيين قيمة جديدة**\r\n  writeValue(value: string): void {\r\n    if (value) {\r\n      this.selectedDate = moment(value, this.resolvedStorageFormat).locale(this.locale); // تحويل القيمة إلى لحظة بناءً على التنسيق\r\n      this.currentViewDate = this.selectedDate.clone(); // Set the current view date / تعيين عرض الشهر\r\n    } else {\r\n      this.selectedDate = null; // Clear the selected date / مسح التاريخ المختار\r\n    }\r\n  }\r\n\r\n  // **ControlValueAccessor: Register a change callback**\r\n  // **واجهة: تسجيل دالة تغيير القيمة**\r\n  registerOnChange(fn: any): void {\r\n    this.onChange = fn; // Store the callback function / تخزين دالة التغيير\r\n  }\r\n\r\n  // **ControlValueAccessor: Register a touched callback**\r\n  // **واجهة: تسجيل دالة اللمس**\r\n  registerOnTouched(fn: any): void {\r\n    this.onTouched = fn; // Store the callback function / تخزين دالة اللمس\r\n  }\r\n\r\n  toggleYearPopup() {\r\n    this.showYearPopup = !this.showYearPopup;\r\n  }\r\n\r\n  selectYear(year: number) {\r\n    this.currentViewDate = moment(this.currentViewDate).iYear(year);  // تحديث باستخدام moment مباشرة\r\n    this.selectedDate = this.currentViewDate.clone();  // تحديث التاريخ المختار أيضًا\r\n    this.showYearPopup = false;\r\n    this.onChange(this.selectedDate.format('iYYYY/iM/iD'));  // إرسال التغيير إلى الـ formControl\r\n  }\r\n\r\n\r\n  get hijriYears(): number[] {\r\n    const currentYear = moment().iYear();\r\n    const startYear = currentYear - 50;\r\n    const endYear = currentYear + 50;\r\n\r\n    const years = [];\r\n    for (let i = startYear; i <= endYear; i++) {\r\n      years.push(i);\r\n    }\r\n    return years;\r\n  }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgxHijriDatepickerComponent } from './ngx-hijri-datepicker.component';\r\n\r\n@NgModule({\r\n  declarations: [NgxHijriDatepickerComponent], // تعريف المكونات\r\n  imports: [CommonModule], // استيراد الوحدات المطلوبة\r\n  exports: [NgxHijriDatepickerComponent], // تصدير المكون\r\n})\r\nexport class NgxHijriDatepickerModule {}\r\n","/*\r\n * Public API Surface of ngx-hijri-datepicker\r\n */\r\n\r\nexport * from './lib/ngx-hijri-datepicker.component';\r\nexport * from './lib/ngx-hijri-datepicker.module';\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}