@yoozsoft/yoozsoft-ng 5.0.2 → 5.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (28) hide show
  1. package/assets/js/UTIF.js-master/LICENSE +21 -21
  2. package/assets/js/UTIF.js-master/README.md +72 -72
  3. package/assets/js/UTIF.js-master/UTIF.js +1762 -1762
  4. package/assets/js/UTIF.js-master/package-lock.json +13 -13
  5. package/autocomplete/index.d.ts +65 -0
  6. package/fesm2022/yoozsoft-yoozsoft-ng-autocomplete.mjs +252 -0
  7. package/fesm2022/yoozsoft-yoozsoft-ng-autocomplete.mjs.map +1 -0
  8. package/fesm2022/yoozsoft-yoozsoft-ng-datepicker.mjs +12 -12
  9. package/fesm2022/yoozsoft-yoozsoft-ng-datepicker.mjs.map +1 -1
  10. package/fesm2022/yoozsoft-yoozsoft-ng-file-upload.mjs +1 -1
  11. package/fesm2022/yoozsoft-yoozsoft-ng-file-upload.mjs.map +1 -1
  12. package/fesm2022/yoozsoft-yoozsoft-ng-footer.mjs +2 -2
  13. package/fesm2022/yoozsoft-yoozsoft-ng-footer.mjs.map +1 -1
  14. package/fesm2022/yoozsoft-yoozsoft-ng-loading.mjs +2 -2
  15. package/fesm2022/yoozsoft-yoozsoft-ng-loading.mjs.map +1 -1
  16. package/fesm2022/yoozsoft-yoozsoft-ng-navbar.mjs +2 -2
  17. package/fesm2022/yoozsoft-yoozsoft-ng-navbar.mjs.map +1 -1
  18. package/fesm2022/yoozsoft-yoozsoft-ng-password-strength.mjs +2 -2
  19. package/fesm2022/yoozsoft-yoozsoft-ng-password-strength.mjs.map +1 -1
  20. package/fesm2022/yoozsoft-yoozsoft-ng-select.mjs +4 -4
  21. package/fesm2022/yoozsoft-yoozsoft-ng-select.mjs.map +1 -1
  22. package/fesm2022/yoozsoft-yoozsoft-ng-sidebar.mjs +2 -2
  23. package/fesm2022/yoozsoft-yoozsoft-ng-sidebar.mjs.map +1 -1
  24. package/fesm2022/yoozsoft-yoozsoft-ng-toast.mjs +2 -2
  25. package/fesm2022/yoozsoft-yoozsoft-ng-toast.mjs.map +1 -1
  26. package/fesm2022/yoozsoft-yoozsoft-ng.mjs.map +1 -1
  27. package/package.json +18 -13
  28. package/select/index.d.ts +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"yoozsoft-yoozsoft-ng-datepicker.mjs","sources":["../../../../projects/yoozsoft/yoozsoft-ng/datepicker/src/models/date-time-format.ts","../../../../projects/yoozsoft/yoozsoft-ng/datepicker/src/models/jalali-date.ts","../../../../projects/yoozsoft/yoozsoft-ng/datepicker/src/services/ys-date-parser-formatter.service.ts","../../../../projects/yoozsoft/yoozsoft-ng/datepicker/src/services/ys-datepicker-i18n.service.ts","../../../../projects/yoozsoft/yoozsoft-ng/datepicker/src/ys-datepicker/ys-datepicker.component.ts","../../../../projects/yoozsoft/yoozsoft-ng/datepicker/src/ys-datepicker/ys-datepicker.component.html","../../../../projects/yoozsoft/yoozsoft-ng/datepicker/src/ys-datepicker-persian/ys-datepicker-persian.component.ts","../../../../projects/yoozsoft/yoozsoft-ng/datepicker/src/ys-datepicker-persian/ys-datepicker-persian.component.html","../../../../projects/yoozsoft/yoozsoft-ng/datepicker/src/ys-datepicker-popup-persian/ys-datepicker-popup-persian.component.ts","../../../../projects/yoozsoft/yoozsoft-ng/datepicker/src/ys-datepicker-popup-persian/ys-datepicker-popup-persian.component.html","../../../../projects/yoozsoft/yoozsoft-ng/datepicker/src/ys-datepicker-popup/ys-datepicker-popup.component.ts","../../../../projects/yoozsoft/yoozsoft-ng/datepicker/src/ys-datepicker-popup/ys-datepicker-popup.component.html","../../../../projects/yoozsoft/yoozsoft-ng/datepicker/src/ys-datepicker-range-popup-persian/ys-datepicker-range-popup-persian.component.ts","../../../../projects/yoozsoft/yoozsoft-ng/datepicker/src/ys-datepicker-range-popup-persian/ys-datepicker-range-popup-persian.component.html","../../../../projects/yoozsoft/yoozsoft-ng/datepicker/src/ys-datepicker-range-popup/ys-datepicker-range-popup.component.ts","../../../../projects/yoozsoft/yoozsoft-ng/datepicker/src/ys-datepicker-range-popup/ys-datepicker-range-popup.component.html","../../../../projects/yoozsoft/yoozsoft-ng/datepicker/public-api.ts","../../../../projects/yoozsoft/yoozsoft-ng/datepicker/yoozsoft-yoozsoft-ng-datepicker.ts"],"sourcesContent":["export class DateTimeFormat {\r\n}\r\n","export class JalaliDate {\r\n\r\n private static daysInMonth = {\r\n g_days_in_month: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],\r\n j_days_in_month: [31, 31, 31, 31, 31, 31, 30, 30, 30, 30, 30, 29]\r\n };\r\n\r\n static jalaliToGregorian(jalaliYear: number, jalaliMonth: number, jalaliDay: number) {\r\n jalaliYear = parseInt(`${jalaliYear}`);\r\n jalaliMonth = parseInt(`${jalaliMonth}`);\r\n jalaliDay = parseInt(`${jalaliDay}`);\r\n var jy = jalaliYear - 979;\r\n var jm = jalaliMonth - 1;\r\n var jd = jalaliDay - 1;\r\n var j_day_no = 365 * jy + parseInt(`${jy / 33}`) * 8 + parseInt(`${(jy % 33 + 3) / 4}`);\r\n for (var i = 0; i < jm; ++i)\r\n j_day_no += this.daysInMonth.j_days_in_month[i];\r\n j_day_no += jd;\r\n var g_day_no = j_day_no + 79;\r\n var gy = 1600 + 400 * parseInt(`${g_day_no / 146097}`);\r\n g_day_no = g_day_no % 146097;\r\n var leap = true;\r\n if (g_day_no >= 36525) {\r\n g_day_no--;\r\n gy += 100 * parseInt(`${g_day_no / 36524}`);\r\n g_day_no = g_day_no % 36524;\r\n if (g_day_no >= 365)\r\n g_day_no++;\r\n else\r\n leap = false;\r\n }\r\n gy += 4 * parseInt(`${g_day_no / 1461}`);\r\n g_day_no %= 1461;\r\n if (g_day_no >= 366) {\r\n leap = false;\r\n g_day_no--;\r\n gy += parseInt(`${g_day_no / 365}`);\r\n g_day_no = g_day_no % 365;\r\n }\r\n for (var i = 0; g_day_no >= this.daysInMonth.g_days_in_month[i] + ((i == 1 && leap) ? 1 : 0); i++)\r\n g_day_no -= this.daysInMonth.g_days_in_month[i] + ((i == 1 && leap) ? 1 : 0);\r\n var gm = i + 1;\r\n var gd = g_day_no + 1;\r\n return [gy, gm, gd];\r\n }\r\n\r\n static gregorianToJalali(gregorianYear: number, gregorianMonth: number, gregorianDay: number) {\r\n gregorianYear = parseInt(`${gregorianYear}`);\r\n gregorianMonth = parseInt(`${gregorianMonth}`);\r\n gregorianDay = parseInt(`${gregorianDay}`);\r\n var gy = gregorianYear - 1600;\r\n var gm = gregorianMonth - 1;\r\n var gd = gregorianDay - 1;\r\n var g_day_no = 365 * gy + parseInt(`${(gy + 3) / 4}`) - parseInt(`${(gy + 99) / 100}`) + parseInt(`${(gy + 399) / 400}`);\r\n for (var i = 0; i < gm; ++i)\r\n g_day_no += this.daysInMonth.g_days_in_month[i];\r\n if (gm > 1 && ((gy % 4 == 0 && gy % 100 != 0) || (gy % 400 == 0)))\r\n ++g_day_no;\r\n g_day_no += gd;\r\n var j_day_no = g_day_no - 79;\r\n var j_np = parseInt(`${j_day_no / 12053}`);\r\n j_day_no %= 12053;\r\n var jy = 979 + 33 * j_np + 4 * parseInt(`${j_day_no / 1461}`);\r\n j_day_no %= 1461;\r\n if (j_day_no >= 366) {\r\n jy += parseInt(`${(j_day_no - 1) / 365}`);\r\n j_day_no = (j_day_no - 1) % 365;\r\n }\r\n for (var i = 0; i < 11 && j_day_no >= this.daysInMonth.j_days_in_month[i]; ++i) {\r\n j_day_no -= this.daysInMonth.j_days_in_month[i];\r\n }\r\n var jm = i + 1;\r\n var jd = j_day_no + 1;\r\n return [jy, jm, jd];\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { NgbDateParserFormatter, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class YsDateParserFormatterService extends NgbDateParserFormatter {\r\n readonly DELIMITER = '/';\r\n\r\n parse(value: string): NgbDateStruct | null {\r\n if (value) {\r\n const date = value.split(this.DELIMITER);\r\n return {\r\n day: parseInt(date[0], 10),\r\n month: parseInt(date[1], 10),\r\n year: parseInt(date[2], 10),\r\n };\r\n }\r\n return null;\r\n }\r\n\r\n format(date: NgbDateStruct | null): string {\r\n return date ? date.year + this.DELIMITER + date.month + this.DELIMITER + date.day : '';\r\n }\r\n}\r\n","import { Injectable, inject } from '@angular/core';\r\nimport { NgbDateStruct, NgbDatepickerI18n } from '@ng-bootstrap/ng-bootstrap';\r\n\r\nexport enum LanguageType {\r\n en,\r\n fa,\r\n fr\r\n}\r\n\r\nconst I18N_VALUES: any = {\r\n \"en\": {\r\n weekdays: ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su'],\r\n months: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\r\n weekLabel: 'week'\r\n },\r\n \"fa\": {\r\n weekdays: ['د', 'س', 'چ', 'پ', 'ج', 'ش', 'ی'],\r\n months: ['فروردین', 'اردیبهشت', 'خرداد', 'تیر', 'مرداد', 'شهریور', 'مهر', 'آبان', 'آذر', 'دی', 'بهمن', 'اسفند'],\r\n weekLabel: 'هفته'\r\n },\r\n \"fr\": {\r\n weekdays: ['Lu', 'Ma', 'Me', 'Je', 'Ve', 'Sa', 'Di'],\r\n months: ['Jan', 'Fév', 'Mar', 'Avr', 'Mai', 'Juin', 'Juil', 'Aou', 'Sep', 'Oct', 'Nov', 'Déc'],\r\n weekLabel: 'sem'\r\n }\r\n};\r\n\r\n@Injectable()\r\nexport class I18n {\r\n language: string = LanguageType[LanguageType.en];\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class YsDatepickerI18nService extends NgbDatepickerI18n {\r\n private _i18n = inject(I18n);\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n override getWeekdayLabel(weekday: number): string {\r\n return I18N_VALUES[this._i18n.language].weekdays[weekday - 1];\r\n }\r\n override getWeekLabel(): string {\r\n return I18N_VALUES[this._i18n.language].weekLabel;\r\n }\r\n override getMonthShortName(month: number): string {\r\n return I18N_VALUES[this._i18n.language].months[month - 1];\r\n }\r\n override getMonthFullName(month: number): string {\r\n return this.getMonthShortName(month);\r\n }\r\n override getDayAriaLabel(date: NgbDateStruct): string {\r\n return `${date.day}-${date.month}-${date.year}`;\r\n }\r\n}\r\n","\r\nimport { Component, forwardRef, inject, Input, TemplateRef } from '@angular/core';\r\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { NgbCalendar, NgbDate, NgbDateParserFormatter, NgbDatepickerI18n, NgbDatepickerModule, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\r\nimport { I18n, LanguageType, YsDateParserFormatterService, YsDatepickerI18nService } from '../services';\r\n\r\n@Component({\r\n selector: 'ys-datepicker',\r\n imports: [NgbDatepickerModule, FormsModule],\r\n templateUrl: './ys-datepicker.component.html',\r\n styleUrl: './ys-datepicker.component.scss',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => YsDatepickerComponent),\r\n multi: true\r\n },\r\n I18n,\r\n { provide: NgbDatepickerI18n, useClass: YsDatepickerI18nService },\r\n { provide: NgbDateParserFormatter, useClass: YsDateParserFormatterService }\r\n ]\r\n})\r\nexport class YsDatepickerComponent implements ControlValueAccessor {\r\n\r\n calendar = inject(NgbCalendar);\r\n today = inject(NgbCalendar).getToday();\r\n\r\n @Input() firstDayOfWeek: number = 1;\r\n @Input() weekend: number[] = [6, 7];\r\n\r\n private _language: string = LanguageType[LanguageType.en];\r\n @Input()\r\n get language(): string {\r\n return this._language;\r\n }\r\n set language(value: string) {\r\n this._language = value;\r\n this.i18N.language = this._language;\r\n }\r\n\r\n @Input() isFooter: boolean = true;\r\n @Input() todayLabel: string = \"Today\";\r\n @Input() footer: TemplateRef<any> | null = null;\r\n\r\n _value: NgbDateStruct | null = null;\r\n get value(): NgbDateStruct | null {\r\n return this._value;\r\n }\r\n set value(val: NgbDateStruct | null) {\r\n this._value = val;\r\n }\r\n\r\n @Input() disabled: boolean = false;\r\n onChange: any = () => { }\r\n onTouched: any = () => { }\r\n\r\n constructor(private i18N: I18n) { }\r\n\r\n writeValue(obj: any): void {\r\n if (!obj) {\r\n this.value = null;\r\n return;\r\n }\r\n\r\n var date: Date = obj;\r\n this.value = { year: date.getFullYear(), month: (date.getMonth() + 1), day: date.getDate() };\r\n }\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n markDisabled = (date: NgbDate, current?: { month: number; year: number }) => date.month !== current?.month;\r\n isWeekend = (date: NgbDate) => this.weekend.includes(this.calendar.getWeekday(date));\r\n\r\n valueChanged(newDate: NgbDateStruct | string | null) {\r\n if (newDate) {\r\n if (typeof newDate == 'string') {\r\n let temp = newDate.split('/');\r\n let res: Date = new Date(+temp[0], (+temp[1]) - 1, +temp[2]);\r\n this.onChange(res);\r\n this.onTouched(res);\r\n } else {\r\n let res: Date = new Date(newDate.year, newDate.month - 1, newDate.day);\r\n this.onChange(res);\r\n this.onTouched(res);\r\n }\r\n } else {\r\n this.onChange(null);\r\n this.onTouched(null);\r\n }\r\n }\r\n\r\n setToday() {\r\n this.value = this.today;\r\n this.valueChanged(this.value);\r\n }\r\n}\r\n","<ngb-datepicker #dp [(ngModel)]=\"value\" [firstDayOfWeek]=\"firstDayOfWeek\" [dayTemplate]=\"customDay\"\n [footerTemplate]=\"footerTemplate\" placeholder=\"yyyy/mm/dd\" [disabled]=\"disabled\"\n (ngModelChange)=\"valueChanged(value)\" />\n\n <ng-template #customDay let-date let-currentMonth=\"currentMonth\" let-selected=\"selected\" let-disabled=\"disabled\"\n let-focused=\"focused\">\n <span class=\"custom-day\" [class.weekend]=\"isWeekend(date)\" [class.focused]=\"focused\" [class.bg-info]=\"selected\"\n [class.text-white]=\"selected\" [class.hidden]=\"date.month !== currentMonth\" [class.text-muted]=\"disabled\">\n {{ date.day }}\n </span>\n </ng-template>\n\n <ng-template #footerTemplate>\n @if (isFooter) {\n <span>\n <hr class=\"my-0\" />\n @if (footer) {\n <span>\n {{footer}}\n </span>\n }\n @if (!footer) {\n <span>\n <button class=\"btn btn-primary btn-sm m-2 float-start\" (click)=\"dp.navigateTo(); setToday();\"\n [disabled]=\"disabled\">{{todayLabel}}</button>\n </span>\n }\n </span>\n }\n </ng-template>","\r\nimport { Component, forwardRef, inject, Input, TemplateRef } from '@angular/core';\r\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { NgbCalendar, NgbCalendarPersian, NgbDate, NgbDateParserFormatter, NgbDatepickerI18n, NgbDatepickerModule, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\r\nimport { JalaliDate } from '../models';\r\nimport { I18n, LanguageType, YsDateParserFormatterService, YsDatepickerI18nService } from '../services';\r\n\r\n@Component({\r\n selector: 'ys-datepicker-persian',\r\n imports: [NgbDatepickerModule, FormsModule],\r\n templateUrl: './ys-datepicker-persian.component.html',\r\n styleUrl: './ys-datepicker-persian.component.scss',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => YsDatepickerPersianComponent),\r\n multi: true\r\n },\r\n I18n,\r\n { provide: NgbCalendar, useClass: NgbCalendarPersian },\r\n { provide: NgbDatepickerI18n, useClass: YsDatepickerI18nService },\r\n { provide: NgbDateParserFormatter, useClass: YsDateParserFormatterService }\r\n ]\r\n})\r\nexport class YsDatepickerPersianComponent implements ControlValueAccessor {\r\n\r\n calendar = inject(NgbCalendar);\r\n today = inject(NgbCalendar).getToday();\r\n\r\n @Input() firstDayOfWeek: number = 6;\r\n @Input() weekend: number[] = [5];\r\n\r\n private _language: string = LanguageType[LanguageType.fa];\r\n @Input()\r\n get language(): string {\r\n return this._language;\r\n }\r\n set language(value: string) {\r\n this._language = value;\r\n this.i18N.language = this._language;\r\n }\r\n\r\n @Input() isFooter: boolean = true;\r\n @Input() todayLabel: string = \"امروز\";\r\n @Input() footer: TemplateRef<any> | null = null;\r\n\r\n _value: NgbDateStruct | null = null;\r\n get value(): NgbDateStruct | null {\r\n return this._value;\r\n }\r\n set value(val: NgbDateStruct | null) {\r\n this._value = val;\r\n }\r\n\r\n @Input() disabled: boolean = false;\r\n onChange: any = () => { }\r\n onTouched: any = () => { }\r\n\r\n constructor(private i18N: I18n) {\r\n this.language = LanguageType[LanguageType.fa];\r\n }\r\n\r\n writeValue(obj: any): void {\r\n if (!obj) {\r\n this.value = null;\r\n return;\r\n }\r\n\r\n var date: Date = obj;\r\n let persianDate: number[] = JalaliDate.gregorianToJalali(date.getFullYear(), date.getMonth() + 1, date.getDate());\r\n this.value = { year: persianDate[0], month: persianDate[1], day: persianDate[2] };\r\n }\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n markDisabled = (date: NgbDate, current?: { month: number; year: number }) => date.month !== current?.month;\r\n isWeekend = (date: NgbDate) => this.weekend.includes(this.calendar.getWeekday(date));\r\n\r\n valueChanged(newDate: NgbDateStruct | string | null) {\r\n if (newDate) {\r\n if (typeof newDate == 'string') {\r\n let temp = newDate.split('/');\r\n let convertedDate: number[] = JalaliDate.jalaliToGregorian(+temp[0], (+temp[1]) - 1, +temp[2]);\r\n let res: Date = new Date(+convertedDate[0], (+convertedDate[1]) - 1, +convertedDate[2]);\r\n this.onChange(res);\r\n this.onTouched(res);\r\n } else {\r\n let convertedDate: number[] = JalaliDate.jalaliToGregorian(newDate.year, newDate.month, newDate.day);\r\n var res: Date = new Date(+convertedDate[0], +convertedDate[1] - 1, +convertedDate[2]);\r\n this.onChange(res);\r\n this.onTouched(res);\r\n }\r\n } else {\r\n this.onChange(null);\r\n this.onTouched(null);\r\n }\r\n }\r\n\r\n setToday() {\r\n this.value = this.today;\r\n this.valueChanged(this.value);\r\n }\r\n\r\n}\r\n","<ngb-datepicker #dp [(ngModel)]=\"value\" [firstDayOfWeek]=\"firstDayOfWeek\" [dayTemplate]=\"customDay\"\n [footerTemplate]=\"footerTemplate\" placeholder=\"yyyy/mm/dd\" [disabled]=\"disabled\"\n (ngModelChange)=\"valueChanged(value)\" />\n\n <ng-template #customDay let-date let-currentMonth=\"currentMonth\" let-selected=\"selected\" let-disabled=\"disabled\"\n let-focused=\"focused\">\n <span class=\"custom-day\" [class.weekend]=\"isWeekend(date)\" [class.focused]=\"focused\" [class.bg-info]=\"selected\"\n [class.text-white]=\"selected\" [class.hidden]=\"date.month !== currentMonth\" [class.text-muted]=\"disabled\">\n {{ date.day }}\n </span>\n </ng-template>\n\n <ng-template #footerTemplate>\n @if (isFooter) {\n <span>\n <hr class=\"my-0\" />\n @if (footer) {\n <span>\n {{footer}}\n </span>\n }\n @if (!footer) {\n <span>\n <button class=\"btn btn-primary btn-sm m-2 float-start\" (click)=\"dp.navigateTo(); setToday();\"\n [disabled]=\"disabled\">{{todayLabel}}</button>\n </span>\n }\n </span>\n }\n </ng-template>","\r\nimport { Component, forwardRef, inject, Input, TemplateRef } from '@angular/core';\r\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { NgbCalendar, NgbCalendarPersian, NgbDate, NgbDateParserFormatter, NgbDatepickerI18n, NgbDatepickerModule, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\r\nimport { JalaliDate } from '../models';\r\nimport { I18n, LanguageType, YsDateParserFormatterService, YsDatepickerI18nService } from '../services';\r\n\r\n@Component({\r\n selector: 'ys-datepicker-popup-persian',\r\n imports: [NgbDatepickerModule, FormsModule],\r\n templateUrl: './ys-datepicker-popup-persian.component.html',\r\n styleUrl: './ys-datepicker-popup-persian.component.scss',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => YsDatepickerPopupPersianComponent),\r\n multi: true\r\n },\r\n I18n,\r\n { provide: NgbCalendar, useClass: NgbCalendarPersian },\r\n { provide: NgbDatepickerI18n, useClass: YsDatepickerI18nService },\r\n { provide: NgbDateParserFormatter, useClass: YsDateParserFormatterService }\r\n ]\r\n})\r\nexport class YsDatepickerPopupPersianComponent implements ControlValueAccessor {\r\n\r\n calendar = inject(NgbCalendar);\r\n today = inject(NgbCalendar).getToday();\r\n\r\n _value: NgbDateStruct | null = null;\r\n get value(): NgbDateStruct | null {\r\n return this._value;\r\n }\r\n set value(val: NgbDateStruct | null) {\r\n this._value = val;\r\n }\r\n\r\n @Input() container: \"body\" | null = null;\r\n @Input() firstDayOfWeek: number = 6;\r\n @Input() weekend: number[] = [5];\r\n\r\n private _language: string = LanguageType[LanguageType.fa];\r\n @Input()\r\n get language(): string {\r\n return this._language;\r\n }\r\n set language(value: string) {\r\n this._language = value;\r\n this.i18N.language = this._language;\r\n }\r\n\r\n @Input() isFooter: boolean = true;\r\n @Input() closeLabel: string = \"بستن\";\r\n @Input() todayLabel: string = \"امروز\";\r\n @Input() footer: TemplateRef<any> | null = null;\r\n @Input() calendarIconClass: string = \"fa-solid fa-calendar-days\";\r\n\r\n @Input() disabled: boolean = false;\r\n onChange: any = () => { }\r\n onTouched: any = () => { }\r\n\r\n constructor(private i18N: I18n) {\r\n this.language = LanguageType[LanguageType.fa];\r\n }\r\n\r\n writeValue(obj: any): void {\r\n if (!obj) {\r\n this.value = null;\r\n return;\r\n }\r\n\r\n var date: Date = obj;\r\n let persianDate: number[] = JalaliDate.gregorianToJalali(date.getFullYear(), date.getMonth() + 1, date.getDate());\r\n this.value = { year: persianDate[0], month: persianDate[1], day: persianDate[2] };\r\n }\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n markDisabled = (date: NgbDate, current?: { month: number; year: number }) => date.month !== current?.month;\r\n isWeekend = (date: NgbDate) => this.weekend.includes(this.calendar.getWeekday(date));\r\n\r\n valueChanged(newDate: NgbDateStruct | string | null) {\r\n if (newDate) {\r\n if (typeof newDate == 'string') {\r\n let temp = newDate.split('/');\r\n let convertedDate: number[] = JalaliDate.jalaliToGregorian(+temp[0], (+temp[1]) - 1, +temp[2]);\r\n let res: Date = new Date(+convertedDate[0], (+convertedDate[1]) - 1, +convertedDate[2]);\r\n this.onChange(res);\r\n this.onTouched(res);\r\n } else {\r\n let convertedDate: number[] = JalaliDate.jalaliToGregorian(newDate.year, newDate.month, newDate.day);\r\n var res: Date = new Date(+convertedDate[0], +convertedDate[1] - 1, +convertedDate[2]);\r\n this.onChange(res);\r\n this.onTouched(res);\r\n }\r\n } else {\r\n this.onChange(null);\r\n this.onTouched(null);\r\n }\r\n }\r\n\r\n setToday() {\r\n this.value = this.today;\r\n this.valueChanged(this.value);\r\n }\r\n\r\n}","<form class=\"row row-cols-sm-auto\">\n <div class=\"col-12\">\n <div class=\"input-group\">\n <input class=\"form-control\" placeholder=\"yyyy/mm/dd\" name=\"dp\" [(ngModel)]=\"value\" ngbDatepicker\n #datepicker=\"ngbDatepicker\" [container]=\"container\" [markDisabled]=\"markDisabled\" [disabled]=\"disabled\"\n [footerTemplate]=\"footerTemplate\" [firstDayOfWeek]=\"firstDayOfWeek\" [dayTemplate]=\"customDay\"\n (ngModelChange)=\"valueChanged(value)\" readonly />\n <button class=\"btn btn-outline-secondary\" (click)=\"datepicker.toggle()\" type=\"button\" [disabled]=\"disabled\">\n <i class=\"{{calendarIconClass}}\"></i>\n </button>\n </div>\n </div>\n </form>\n\n <ng-template #customDay let-date let-currentMonth=\"currentMonth\" let-selected=\"selected\" let-disabled=\"disabled\"\n let-focused=\"focused\">\n <span class=\"custom-day\" [class.weekend]=\"isWeekend(date)\" [class.focused]=\"focused\" [class.bg-info]=\"selected\"\n [class.text-white]=\"selected\" [class.hidden]=\"date.month !== currentMonth\" [class.text-muted]=\"disabled\">\n {{ date.day }}\n </span>\n </ng-template>\n\n <ng-template #footerTemplate>\n @if (isFooter) {\n <span>\n <hr class=\"my-0\" />\n @if (footer) {\n <span>\n {{footer}}\n </span>\n }\n @if (!footer) {\n <span>\n <button class=\"btn btn-primary btn-sm m-2 float-start\" (click)=\"datepicker.navigateTo(); setToday();\"\n [disabled]=\"disabled\">{{todayLabel}}</button>\n <button class=\"btn btn-secondary btn-sm m-2 float-end\" (click)=\"datepicker.close()\">{{closeLabel}}</button>\n </span>\n }\n </span>\n }\n </ng-template>","\r\nimport { Component, forwardRef, inject, Input, TemplateRef } from '@angular/core';\r\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { NgbCalendar, NgbDate, NgbDateParserFormatter, NgbDatepickerI18n, NgbDatepickerModule, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\r\nimport { I18n, LanguageType, YsDateParserFormatterService, YsDatepickerI18nService } from '../services';\r\n\r\n@Component({\r\n selector: 'ys-datepicker-popup',\r\n imports: [NgbDatepickerModule, FormsModule],\r\n templateUrl: './ys-datepicker-popup.component.html',\r\n styleUrl: './ys-datepicker-popup.component.scss',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => YsDatepickerPopupComponent),\r\n multi: true\r\n },\r\n I18n,\r\n { provide: NgbDatepickerI18n, useClass: YsDatepickerI18nService },\r\n { provide: NgbDateParserFormatter, useClass: YsDateParserFormatterService }\r\n ]\r\n})\r\nexport class YsDatepickerPopupComponent implements ControlValueAccessor {\r\n\r\n calendar = inject(NgbCalendar);\r\n today = inject(NgbCalendar).getToday();\r\n\r\n _value: NgbDateStruct | null = null;\r\n get value(): NgbDateStruct | null {\r\n return this._value;\r\n }\r\n set value(val: NgbDateStruct | null) {\r\n this._value = val;\r\n }\r\n\r\n @Input() container: \"body\" | null = null;\r\n @Input() firstDayOfWeek: number = 1;\r\n @Input() weekend: number[] = [6, 7];\r\n\r\n private _language: string = LanguageType[LanguageType.en];\r\n @Input()\r\n get language(): string {\r\n return this._language;\r\n }\r\n set language(value: string) {\r\n this._language = value;\r\n this.i18N.language = this._language;\r\n }\r\n\r\n @Input() isFooter: boolean = true;\r\n @Input() closeLabel: string = \"Close\";\r\n @Input() todayLabel: string = \"Today\";\r\n @Input() footer: TemplateRef<any> | null = null;\r\n @Input() calendarIconClass: string = \"fa-solid fa-calendar-days\";\r\n\r\n @Input() disabled: boolean = false;\r\n onChange: any = () => { }\r\n onTouched: any = () => { }\r\n\r\n constructor(private i18N: I18n) { }\r\n\r\n writeValue(obj: any): void {\r\n if (!obj) {\r\n this.value = null;\r\n return;\r\n }\r\n\r\n var date: Date = obj;\r\n this.value = { year: date.getFullYear(), month: (date.getMonth() + 1), day: date.getDate() };\r\n }\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n markDisabled = (date: NgbDate, current?: { month: number; year: number }) => date.month !== current?.month;\r\n isWeekend = (date: NgbDate) => this.weekend.includes(this.calendar.getWeekday(date));\r\n\r\n valueChanged(newDate: NgbDateStruct | string | null) {\r\n if (newDate) {\r\n if (typeof newDate == 'string') {\r\n let temp = newDate.split('/');\r\n let res: Date = new Date(+temp[0], (+temp[1]) - 1, +temp[2]);\r\n this.onChange(res);\r\n this.onTouched(res);\r\n } else {\r\n let res: Date = new Date(newDate.year, newDate.month - 1, newDate.day);\r\n this.onChange(res);\r\n this.onTouched(res);\r\n }\r\n } else {\r\n this.onChange(null);\r\n this.onTouched(null);\r\n }\r\n }\r\n\r\n setToday() {\r\n this.value = this.today;\r\n this.valueChanged(this.value);\r\n }\r\n\r\n}\r\n","<form class=\"row row-cols-sm-auto\">\n <div class=\"col-12\">\n <div class=\"input-group\">\n <input class=\"form-control\" placeholder=\"yyyy/mm/dd\" name=\"dp\" [(ngModel)]=\"value\" ngbDatepicker\n #datepicker=\"ngbDatepicker\" [container]=\"container\" [markDisabled]=\"markDisabled\" [disabled]=\"disabled\"\n [footerTemplate]=\"footerTemplate\" [firstDayOfWeek]=\"firstDayOfWeek\" [dayTemplate]=\"customDay\"\n (ngModelChange)=\"valueChanged(value)\" readonly />\n <button class=\"btn btn-outline-secondary\" (click)=\"datepicker.toggle()\" type=\"button\" [disabled]=\"disabled\">\n <i class=\"{{calendarIconClass}}\"></i>\n </button>\n </div>\n </div>\n </form>\n\n <ng-template #customDay let-date let-currentMonth=\"currentMonth\" let-selected=\"selected\" let-disabled=\"disabled\"\n let-focused=\"focused\">\n <span class=\"custom-day\" [class.weekend]=\"isWeekend(date)\" [class.focused]=\"focused\" [class.bg-info]=\"selected\"\n [class.text-white]=\"selected\" [class.hidden]=\"date.month !== currentMonth\" [class.text-muted]=\"disabled\">\n {{ date.day }}\n </span>\n </ng-template>\n\n <ng-template #footerTemplate>\n @if (isFooter) {\n <span>\n <hr class=\"my-0\" />\n @if (footer) {\n <span>\n {{footer}}\n </span>\n }\n @if (!footer) {\n <span>\n <button class=\"btn btn-primary btn-sm m-2 float-start\" (click)=\"datepicker.navigateTo(); setToday();\"\n [disabled]=\"disabled\">{{todayLabel}}</button>\n <button class=\"btn btn-secondary btn-sm m-2 float-end\" (click)=\"datepicker.close()\">{{closeLabel}}</button>\n </span>\n }\n </span>\n }\n </ng-template>","\r\nimport { Component, forwardRef, inject, Input, TemplateRef } from '@angular/core';\r\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { NgbCalendar, NgbCalendarPersian, NgbDate, NgbDateParserFormatter, NgbDatepickerI18n, NgbDatepickerModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { DateRange, JalaliDate } from '../models';\r\nimport { I18n, LanguageType, YsDateParserFormatterService, YsDatepickerI18nService } from '../services';\r\n\r\n@Component({\r\n selector: 'ys-datepicker-range-popup-persian',\r\n imports: [NgbDatepickerModule, FormsModule],\r\n templateUrl: './ys-datepicker-range-popup-persian.component.html',\r\n styleUrl: './ys-datepicker-range-popup-persian.component.scss',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => YsDatepickerRangePopupPersianComponent),\r\n multi: true\r\n },\r\n I18n,\r\n { provide: NgbCalendar, useClass: NgbCalendarPersian },\r\n { provide: NgbDatepickerI18n, useClass: YsDatepickerI18nService },\r\n { provide: NgbDateParserFormatter, useClass: YsDateParserFormatterService }\r\n ]\r\n})\r\nexport class YsDatepickerRangePopupPersianComponent implements ControlValueAccessor {\r\n\r\n calendar = inject(NgbCalendar);\r\n formatter = inject(NgbDateParserFormatter);\r\n today = inject(NgbCalendar).getToday();\r\n\r\n date?: { year: number; month: number };\r\n\r\n hoveredDate: NgbDate | null = null;\r\n _fromDate: NgbDate | null = null;\r\n get fromDate(): NgbDate | null { return this._fromDate; }\r\n set fromDate(value: NgbDate | null) {\r\n this._fromDate = value;\r\n }\r\n\r\n _toDate: NgbDate | null = null;\r\n get toDate(): NgbDate | null { return this._toDate; }\r\n set toDate(value: NgbDate | null) {\r\n this._toDate = value;\r\n }\r\n\r\n @Input() container: \"body\" | null = null;\r\n @Input() firstDayOfWeek: number = 6;\r\n @Input() weekend: number[] = [5];\r\n\r\n private _language: string = LanguageType[LanguageType.fa];\r\n @Input()\r\n get language(): string {\r\n return this._language;\r\n }\r\n set language(value: string) {\r\n this._language = value;\r\n this.i18N.language = this._language;\r\n }\r\n\r\n @Input() isFooter: boolean = true;\r\n @Input() closeLabel: string = \"بستن\";\r\n @Input() todayLabel: string = \"امروز\";\r\n @Input() footer: TemplateRef<any> | null = null;\r\n @Input() calendarIconClass: string = \"fa-solid fa-calendar-days\";\r\n\r\n @Input() disabled: boolean = false;\r\n onChange: any = () => { };\r\n onTouched: any = () => { };\r\n\r\n constructor(private i18N: I18n) {\r\n this.language = LanguageType[LanguageType.fa];\r\n }\r\n\r\n writeValue(obj: any): void {\r\n if (!obj) {\r\n this.fromDate = null;\r\n this.toDate = null;\r\n return;\r\n }\r\n\r\n var fDate: Date = obj.fromDate;\r\n let persianDate: number[] = JalaliDate.gregorianToJalali(fDate.getFullYear(), fDate.getMonth() + 1, fDate.getDate());\r\n this.fromDate = <NgbDate>{ year: persianDate[0], month: persianDate[1], day: persianDate[2] };\r\n\r\n var tDate: Date = obj.toDate;\r\n persianDate = JalaliDate.gregorianToJalali(tDate.getFullYear(), tDate.getMonth() + 1, tDate.getDate());\r\n this.toDate = <NgbDate>{ year: persianDate[0], month: persianDate[1], day: persianDate[2] };\r\n }\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n onDateSelection(date: NgbDate) {\r\n if (!this.fromDate && !this.toDate) {\r\n this.fromDate = date;\r\n } else if (this.fromDate && !this.toDate && date && date.after(this.fromDate)) {\r\n this.toDate = date;\r\n } else {\r\n this.toDate = null;\r\n this.fromDate = date;\r\n }\r\n\r\n this.valueChanged();\r\n }\r\n\r\n isHovered(date: NgbDate) {\r\n return (\r\n this.fromDate && !this.toDate && this.hoveredDate && date.after(this.fromDate) && date.before(this.hoveredDate)\r\n );\r\n }\r\n\r\n isInside(date: NgbDate) {\r\n return this.toDate && date.after(this.fromDate) && date.before(this.toDate);\r\n }\r\n\r\n isRange(date: NgbDate) {\r\n return (\r\n date.equals(this.fromDate) ||\r\n (this.toDate && date.equals(this.toDate)) ||\r\n this.isInside(date) ||\r\n this.isHovered(date)\r\n );\r\n }\r\n\r\n markDisabled = (date: NgbDate, current?: { month: number; year: number }) => date.month !== current?.month;\r\n isWeekend = (date: NgbDate) => this.weekend.includes(this.calendar.getWeekday(date));\r\n\r\n validateInput(currentValue: NgbDate | null, input: string): NgbDate | null {\r\n const parsed = this.formatter.parse(input);\r\n return parsed && this.calendar.isValid(NgbDate.from(parsed)) ? NgbDate.from(parsed) : currentValue;\r\n }\r\n\r\n valueChanged() {\r\n let range = <DateRange>{ fromDate: null, toDate: null };\r\n\r\n if (this.fromDate) {\r\n let fromDateConverted: number[] = JalaliDate.jalaliToGregorian(this.fromDate.year, this.fromDate.month, this.fromDate.day);\r\n range.fromDate = new Date(fromDateConverted[0], fromDateConverted[1] - 1, fromDateConverted[2]);\r\n }\r\n\r\n if (this.toDate) {\r\n let toDateConverted: number[] = JalaliDate.jalaliToGregorian(this.toDate.year, this.toDate.month, this.toDate.day);\r\n range.toDate = new Date(toDateConverted[0], toDateConverted[1] - 1, toDateConverted[2]);\r\n }\r\n\r\n this.onChange(range);\r\n this.onTouched(range)\r\n }\r\n\r\n setToday() {\r\n this.fromDate = this.today;\r\n this.toDate = this.today;\r\n this.valueChanged();\r\n }\r\n\r\n}\r\n","<form class=\"row row-cols-sm-auto\">\n <div class=\"col-12\">\n <div class=\"dp-hidden position-absolute\">\n <div class=\"input-group\">\n <input name=\"datepicker\" class=\"form-control\" ngbDatepicker #datepicker=\"ngbDatepicker\"\n [autoClose]=\"'outside'\" (dateSelect)=\"onDateSelection($event)\" [displayMonths]=\"2\"\n [dayTemplate]=\"customDay\" outsideDays=\"hidden\" [startDate]=\"fromDate!\" tabindex=\"-1\"\n [container]=\"container\" [markDisabled]=\"markDisabled\" [disabled]=\"disabled\"\n [footerTemplate]=\"footerTemplate\" [firstDayOfWeek]=\"firstDayOfWeek\" readonly />\n </div>\n </div>\n <div class=\"input-group\">\n <input #dpFromDate class=\"form-control\" placeholder=\"yyyy/mm/dd\" name=\"dpFromDate\"\n [value]=\"formatter.format(fromDate)\" (input)=\"fromDate = validateInput(fromDate, dpFromDate.value)\"\n [disabled]=\"disabled\" readonly />\n <button class=\"btn btn-outline-secondary\" (click)=\"datepicker.toggle()\" type=\"button\" [disabled]=\"disabled\">\n <i class=\"{{calendarIconClass}}\"></i>\n </button>\n </div>\n </div>\n <div class=\"col-12\">\n <div class=\"input-group\">\n <input #dpToDate class=\"form-control\" placeholder=\"yyyy/mm/dd\" name=\"dpToDate\"\n [value]=\"formatter.format(toDate)\" (input)=\"toDate = validateInput(toDate, dpToDate.value)\"\n [disabled]=\"disabled\" readonly />\n <button class=\"btn btn-outline-secondary\" (click)=\"datepicker.toggle()\" type=\"button\" [disabled]=\"disabled\">\n <i class=\"{{calendarIconClass}}\"></i>\n </button>\n </div>\n </div>\n </form>\n\n <ng-template #customDay let-date let-currentMonth=\"currentMonth\" let-selected=\"selected\" let-disabled=\"disabled\"\n let-focused=\"focused\">\n <span class=\"custom-day\" [class.weekend]=\"isWeekend(date)\" [class.focused]=\"focused\"\n [class.hidden]=\"date.month !== currentMonth\" [class.text-muted]=\"disabled\" [class.range]=\"isRange(date)\"\n [class.faded]=\"isHovered(date) || isInside(date)\" (mouseenter)=\"hoveredDate = date\"\n (mouseleave)=\"hoveredDate = null\">\n {{ date.day }}\n </span>\n </ng-template>\n\n <ng-template #footerTemplate>\n @if (isFooter) {\n <span>\n <hr class=\"my-0\" />\n @if (footer) {\n <span>\n {{footer}}\n </span>\n }\n @if (!footer) {\n <span>\n <button class=\"btn btn-primary btn-sm m-2 float-start\" (click)=\"datepicker.navigateTo(); setToday();\"\n [disabled]=\"disabled\">{{todayLabel}}</button>\n <button class=\"btn btn-secondary btn-sm m-2 float-end\" (click)=\"datepicker.close()\">{{closeLabel}}</button>\n </span>\n }\n </span>\n }\n </ng-template>","\r\nimport { Component, forwardRef, inject, Input, TemplateRef } from '@angular/core';\r\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { NgbCalendar, NgbDate, NgbDateParserFormatter, NgbDatepickerI18n, NgbDatepickerModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { DateRange } from '../models';\r\nimport { I18n, LanguageType, YsDateParserFormatterService, YsDatepickerI18nService } from '../services';\r\n\r\n@Component({\r\n selector: 'ys-datepicker-range-popup',\r\n imports: [NgbDatepickerModule, FormsModule],\r\n templateUrl: './ys-datepicker-range-popup.component.html',\r\n styleUrl: './ys-datepicker-range-popup.component.scss',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => YsDatepickerRangePopupComponent),\r\n multi: true\r\n },\r\n I18n,\r\n { provide: NgbDatepickerI18n, useClass: YsDatepickerI18nService },\r\n { provide: NgbDateParserFormatter, useClass: YsDateParserFormatterService }\r\n ]\r\n})\r\nexport class YsDatepickerRangePopupComponent implements ControlValueAccessor {\r\n\r\n calendar = inject(NgbCalendar);\r\n formatter = inject(NgbDateParserFormatter);\r\n today = inject(NgbCalendar).getToday();\r\n\r\n hoveredDate: NgbDate | null = null;\r\n\r\n _fromDate: NgbDate | null = null;\r\n get fromDate(): NgbDate | null { return this._fromDate; }\r\n set fromDate(value: NgbDate | null) {\r\n this._fromDate = value;\r\n }\r\n\r\n _toDate: NgbDate | null = null;\r\n get toDate(): NgbDate | null { return this._toDate; }\r\n set toDate(value: NgbDate | null) {\r\n this._toDate = value;\r\n }\r\n\r\n @Input() container: \"body\" | null = null;\r\n @Input() firstDayOfWeek: number = 1;\r\n @Input() weekend: number[] = [6, 7];\r\n\r\n private _language: string = LanguageType[LanguageType.en];\r\n @Input()\r\n get language(): string {\r\n return this._language;\r\n }\r\n set language(value: string) {\r\n this._language = value;\r\n this.i18N.language = this._language;\r\n }\r\n\r\n @Input() isFooter: boolean = true;\r\n @Input() closeLabel: string = \"Close\";\r\n @Input() todayLabel: string = \"Today\";\r\n @Input() footer: TemplateRef<any> | null = null;\r\n @Input() calendarIconClass: string = \"fa-solid fa-calendar-days\";\r\n\r\n @Input() disabled: boolean = false;\r\n onChange: any = () => { }\r\n onTouched: any = () => { }\r\n\r\n constructor(private i18N: I18n) { }\r\n\r\n writeValue(obj: any): void {\r\n if (!obj) {\r\n this.fromDate = null;\r\n this.toDate = null;\r\n return;\r\n }\r\n\r\n let d: DateRange = obj;\r\n\r\n var fDate: Date = d.fromDate!;\r\n this.fromDate = <NgbDate>{ year: fDate.getFullYear(), month: (fDate.getMonth() + 1), day: fDate.getDate() };\r\n\r\n var tDate: Date = d.toDate!;\r\n this.toDate = <NgbDate>{ year: tDate.getFullYear(), month: (tDate.getMonth() + 1), day: tDate.getDate() };\r\n }\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n onDateSelection(date: NgbDate) {\r\n if (!this.fromDate && !this.toDate) {\r\n this.fromDate = date;\r\n } else if (this.fromDate && !this.toDate && date && date.after(this.fromDate)) {\r\n this.toDate = date;\r\n } else {\r\n this.toDate = null;\r\n this.fromDate = date;\r\n }\r\n\r\n this.valueChanged();\r\n }\r\n\r\n isHovered(date: NgbDate) {\r\n return (\r\n this.fromDate && !this.toDate && this.hoveredDate && date.after(this.fromDate) && date.before(this.hoveredDate)\r\n );\r\n }\r\n\r\n isInside(date: NgbDate) {\r\n return this.toDate && date.after(this.fromDate) && date.before(this.toDate);\r\n }\r\n\r\n isRange(date: NgbDate) {\r\n return (\r\n date.equals(this.fromDate) ||\r\n (this.toDate && date.equals(this.toDate)) ||\r\n this.isInside(date) ||\r\n this.isHovered(date)\r\n );\r\n }\r\n\r\n markDisabled = (date: NgbDate, current?: { month: number; year: number }) => date.month !== current?.month;\r\n isWeekend = (date: NgbDate) => this.weekend.includes(this.calendar.getWeekday(date));\r\n\r\n validateInput(currentValue: NgbDate | null, input: string): NgbDate | null {\r\n const parsed = this.formatter.parse(input);\r\n return parsed && this.calendar.isValid(NgbDate.from(parsed)) ? NgbDate.from(parsed) : currentValue;\r\n }\r\n\r\n valueChanged() {\r\n const fromDateTemp: Date | null = this.fromDate ? new Date(this.fromDate.year, this.fromDate.month - 1, this.fromDate.day) : null;\r\n const toDateTemp: Date | null = this.toDate ? new Date(this.toDate.year, this.toDate.month - 1, this.toDate.day) : null;\r\n const res = <DateRange>{ fromDate: fromDateTemp, toDate: toDateTemp };\r\n this.onChange(res);\r\n this.onTouched(res);\r\n }\r\n\r\n setToday() {\r\n this.fromDate = this.today;\r\n this.toDate = this.today;\r\n this.valueChanged();\r\n }\r\n\r\n}\r\n","<form class=\"row row-cols-sm-auto\">\n <div class=\"col-12\">\n <div class=\"dp-hidden position-absolute\">\n <div class=\"input-group\">\n <input name=\"datepicker\" class=\"form-control\" ngbDatepicker #datepicker=\"ngbDatepicker\"\n [autoClose]=\"'outside'\" (dateSelect)=\"onDateSelection($event)\" [displayMonths]=\"2\"\n [dayTemplate]=\"customDay\" outsideDays=\"hidden\" [startDate]=\"fromDate!\" tabindex=\"-1\"\n [container]=\"container\" [markDisabled]=\"markDisabled\" [disabled]=\"disabled\"\n [footerTemplate]=\"footerTemplate\" [firstDayOfWeek]=\"firstDayOfWeek\" readonly />\n </div>\n </div>\n <div class=\"input-group\">\n <input #dpFromDate class=\"form-control\" placeholder=\"yyyy/mm/dd\" name=\"dpFromDate\"\n [value]=\"formatter.format(fromDate)\" (input)=\"fromDate = validateInput(fromDate, dpFromDate.value)\"\n [disabled]=\"disabled\" readonly />\n <button class=\"btn btn-outline-secondary\" (click)=\"datepicker.toggle()\" type=\"button\" [disabled]=\"disabled\">\n <i class=\"{{calendarIconClass}}\"></i>\n </button>\n </div>\n </div>\n <div class=\"col-12\">\n <div class=\"input-group\">\n <input #dpToDate class=\"form-control\" placeholder=\"yyyy/mm/dd\" name=\"dpToDate\"\n [value]=\"formatter.format(toDate)\" (input)=\"toDate = validateInput(toDate, dpToDate.value)\"\n [disabled]=\"disabled\" readonly />\n <button class=\"btn btn-outline-secondary\" (click)=\"datepicker.toggle()\" type=\"button\" [disabled]=\"disabled\">\n <i class=\"{{calendarIconClass}}\"></i>\n </button>\n </div>\n </div>\n </form>\n\n <ng-template #customDay let-date let-currentMonth=\"currentMonth\" let-selected=\"selected\" let-disabled=\"disabled\"\n let-focused=\"focused\">\n <span class=\"custom-day\" [class.weekend]=\"isWeekend(date)\" [class.focused]=\"focused\"\n [class.hidden]=\"date.month !== currentMonth\" [class.text-muted]=\"disabled\" [class.range]=\"isRange(date)\"\n [class.faded]=\"isHovered(date) || isInside(date)\" (mouseenter)=\"hoveredDate = date\"\n (mouseleave)=\"hoveredDate = null\">\n {{ date.day }}\n </span>\n </ng-template>\n\n <ng-template #footerTemplate>\n @if (isFooter) {\n <span>\n <hr class=\"my-0\" />\n @if (footer) {\n <span>\n {{footer}}\n </span>\n }\n @if (!footer) {\n <span>\n <button class=\"btn btn-primary btn-sm m-2 float-start\" (click)=\"datepicker.navigateTo(); setToday();\"\n [disabled]=\"disabled\">{{todayLabel}}</button>\n <button class=\"btn btn-secondary btn-sm m-2 float-end\" (click)=\"datepicker.close()\">{{closeLabel}}</button>\n </span>\n }\n </span>\n }\n </ng-template>","/*\r\n * Public API Surface of ys-datepicker\r\n */\r\n\r\nexport * from './src/models';\r\nexport * from './src/services';\r\nexport * from './src/ys-datepicker/ys-datepicker.component';\r\nexport * from './src/ys-datepicker-persian/ys-datepicker-persian.component';\r\nexport * from './src/ys-datepicker-popup-persian/ys-datepicker-popup-persian.component';\r\nexport * from './src/ys-datepicker-popup/ys-datepicker-popup.component';\r\nexport * from './src/ys-datepicker-range-popup-persian/ys-datepicker-range-popup-persian.component';\r\nexport * from './src/ys-datepicker-range-popup/ys-datepicker-range-popup.component';\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.I18n"],"mappings":"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"}
1
+ {"version":3,"file":"yoozsoft-yoozsoft-ng-datepicker.mjs","sources":["../../../../projects/yoozsoft/yoozsoft-ng/datepicker/src/models/date-time-format.ts","../../../../projects/yoozsoft/yoozsoft-ng/datepicker/src/models/jalali-date.ts","../../../../projects/yoozsoft/yoozsoft-ng/datepicker/src/services/ys-date-parser-formatter.service.ts","../../../../projects/yoozsoft/yoozsoft-ng/datepicker/src/services/ys-datepicker-i18n.service.ts","../../../../projects/yoozsoft/yoozsoft-ng/datepicker/src/ys-datepicker/ys-datepicker.component.ts","../../../../projects/yoozsoft/yoozsoft-ng/datepicker/src/ys-datepicker/ys-datepicker.component.html","../../../../projects/yoozsoft/yoozsoft-ng/datepicker/src/ys-datepicker-persian/ys-datepicker-persian.component.ts","../../../../projects/yoozsoft/yoozsoft-ng/datepicker/src/ys-datepicker-persian/ys-datepicker-persian.component.html","../../../../projects/yoozsoft/yoozsoft-ng/datepicker/src/ys-datepicker-popup-persian/ys-datepicker-popup-persian.component.ts","../../../../projects/yoozsoft/yoozsoft-ng/datepicker/src/ys-datepicker-popup-persian/ys-datepicker-popup-persian.component.html","../../../../projects/yoozsoft/yoozsoft-ng/datepicker/src/ys-datepicker-popup/ys-datepicker-popup.component.ts","../../../../projects/yoozsoft/yoozsoft-ng/datepicker/src/ys-datepicker-popup/ys-datepicker-popup.component.html","../../../../projects/yoozsoft/yoozsoft-ng/datepicker/src/ys-datepicker-range-popup-persian/ys-datepicker-range-popup-persian.component.ts","../../../../projects/yoozsoft/yoozsoft-ng/datepicker/src/ys-datepicker-range-popup-persian/ys-datepicker-range-popup-persian.component.html","../../../../projects/yoozsoft/yoozsoft-ng/datepicker/src/ys-datepicker-range-popup/ys-datepicker-range-popup.component.ts","../../../../projects/yoozsoft/yoozsoft-ng/datepicker/src/ys-datepicker-range-popup/ys-datepicker-range-popup.component.html","../../../../projects/yoozsoft/yoozsoft-ng/datepicker/public-api.ts","../../../../projects/yoozsoft/yoozsoft-ng/datepicker/yoozsoft-yoozsoft-ng-datepicker.ts"],"sourcesContent":["export class DateTimeFormat {\r\n}\r\n","export class JalaliDate {\r\n\r\n private static daysInMonth = {\r\n g_days_in_month: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],\r\n j_days_in_month: [31, 31, 31, 31, 31, 31, 30, 30, 30, 30, 30, 29]\r\n };\r\n\r\n static jalaliToGregorian(jalaliYear: number, jalaliMonth: number, jalaliDay: number) {\r\n jalaliYear = parseInt(`${jalaliYear}`);\r\n jalaliMonth = parseInt(`${jalaliMonth}`);\r\n jalaliDay = parseInt(`${jalaliDay}`);\r\n var jy = jalaliYear - 979;\r\n var jm = jalaliMonth - 1;\r\n var jd = jalaliDay - 1;\r\n var j_day_no = 365 * jy + parseInt(`${jy / 33}`) * 8 + parseInt(`${(jy % 33 + 3) / 4}`);\r\n for (var i = 0; i < jm; ++i)\r\n j_day_no += this.daysInMonth.j_days_in_month[i];\r\n j_day_no += jd;\r\n var g_day_no = j_day_no + 79;\r\n var gy = 1600 + 400 * parseInt(`${g_day_no / 146097}`);\r\n g_day_no = g_day_no % 146097;\r\n var leap = true;\r\n if (g_day_no >= 36525) {\r\n g_day_no--;\r\n gy += 100 * parseInt(`${g_day_no / 36524}`);\r\n g_day_no = g_day_no % 36524;\r\n if (g_day_no >= 365)\r\n g_day_no++;\r\n else\r\n leap = false;\r\n }\r\n gy += 4 * parseInt(`${g_day_no / 1461}`);\r\n g_day_no %= 1461;\r\n if (g_day_no >= 366) {\r\n leap = false;\r\n g_day_no--;\r\n gy += parseInt(`${g_day_no / 365}`);\r\n g_day_no = g_day_no % 365;\r\n }\r\n for (var i = 0; g_day_no >= this.daysInMonth.g_days_in_month[i] + ((i == 1 && leap) ? 1 : 0); i++)\r\n g_day_no -= this.daysInMonth.g_days_in_month[i] + ((i == 1 && leap) ? 1 : 0);\r\n var gm = i + 1;\r\n var gd = g_day_no + 1;\r\n return [gy, gm, gd];\r\n }\r\n\r\n static gregorianToJalali(gregorianYear: number, gregorianMonth: number, gregorianDay: number) {\r\n gregorianYear = parseInt(`${gregorianYear}`);\r\n gregorianMonth = parseInt(`${gregorianMonth}`);\r\n gregorianDay = parseInt(`${gregorianDay}`);\r\n var gy = gregorianYear - 1600;\r\n var gm = gregorianMonth - 1;\r\n var gd = gregorianDay - 1;\r\n var g_day_no = 365 * gy + parseInt(`${(gy + 3) / 4}`) - parseInt(`${(gy + 99) / 100}`) + parseInt(`${(gy + 399) / 400}`);\r\n for (var i = 0; i < gm; ++i)\r\n g_day_no += this.daysInMonth.g_days_in_month[i];\r\n if (gm > 1 && ((gy % 4 == 0 && gy % 100 != 0) || (gy % 400 == 0)))\r\n ++g_day_no;\r\n g_day_no += gd;\r\n var j_day_no = g_day_no - 79;\r\n var j_np = parseInt(`${j_day_no / 12053}`);\r\n j_day_no %= 12053;\r\n var jy = 979 + 33 * j_np + 4 * parseInt(`${j_day_no / 1461}`);\r\n j_day_no %= 1461;\r\n if (j_day_no >= 366) {\r\n jy += parseInt(`${(j_day_no - 1) / 365}`);\r\n j_day_no = (j_day_no - 1) % 365;\r\n }\r\n for (var i = 0; i < 11 && j_day_no >= this.daysInMonth.j_days_in_month[i]; ++i) {\r\n j_day_no -= this.daysInMonth.j_days_in_month[i];\r\n }\r\n var jm = i + 1;\r\n var jd = j_day_no + 1;\r\n return [jy, jm, jd];\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { NgbDateParserFormatter, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class YsDateParserFormatterService extends NgbDateParserFormatter {\r\n readonly DELIMITER = '/';\r\n\r\n parse(value: string): NgbDateStruct | null {\r\n if (value) {\r\n const date = value.split(this.DELIMITER);\r\n return {\r\n day: parseInt(date[0], 10),\r\n month: parseInt(date[1], 10),\r\n year: parseInt(date[2], 10),\r\n };\r\n }\r\n return null;\r\n }\r\n\r\n format(date: NgbDateStruct | null): string {\r\n return date ? date.year + this.DELIMITER + date.month + this.DELIMITER + date.day : '';\r\n }\r\n}\r\n","import { Injectable, inject } from '@angular/core';\r\nimport { NgbDateStruct, NgbDatepickerI18n } from '@ng-bootstrap/ng-bootstrap';\r\n\r\nexport enum LanguageType {\r\n en,\r\n fa,\r\n fr\r\n}\r\n\r\nconst I18N_VALUES: any = {\r\n \"en\": {\r\n weekdays: ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su'],\r\n months: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\r\n weekLabel: 'week'\r\n },\r\n \"fa\": {\r\n weekdays: ['د', 'س', 'چ', 'پ', 'ج', 'ش', 'ی'],\r\n months: ['فروردین', 'اردیبهشت', 'خرداد', 'تیر', 'مرداد', 'شهریور', 'مهر', 'آبان', 'آذر', 'دی', 'بهمن', 'اسفند'],\r\n weekLabel: 'هفته'\r\n },\r\n \"fr\": {\r\n weekdays: ['Lu', 'Ma', 'Me', 'Je', 'Ve', 'Sa', 'Di'],\r\n months: ['Jan', 'Fév', 'Mar', 'Avr', 'Mai', 'Juin', 'Juil', 'Aou', 'Sep', 'Oct', 'Nov', 'Déc'],\r\n weekLabel: 'sem'\r\n }\r\n};\r\n\r\n@Injectable()\r\nexport class I18n {\r\n language: string = LanguageType[LanguageType.en];\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class YsDatepickerI18nService extends NgbDatepickerI18n {\r\n private _i18n = inject(I18n);\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n override getWeekdayLabel(weekday: number): string {\r\n return I18N_VALUES[this._i18n.language].weekdays[weekday - 1];\r\n }\r\n override getWeekLabel(): string {\r\n return I18N_VALUES[this._i18n.language].weekLabel;\r\n }\r\n override getMonthShortName(month: number): string {\r\n return I18N_VALUES[this._i18n.language].months[month - 1];\r\n }\r\n override getMonthFullName(month: number): string {\r\n return this.getMonthShortName(month);\r\n }\r\n override getDayAriaLabel(date: NgbDateStruct): string {\r\n return `${date.day}-${date.month}-${date.year}`;\r\n }\r\n}\r\n","\r\nimport { Component, forwardRef, inject, Input, TemplateRef } from '@angular/core';\r\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { NgbCalendar, NgbDate, NgbDateParserFormatter, NgbDatepickerI18n, NgbDatepickerModule, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\r\nimport { I18n, LanguageType, YsDateParserFormatterService, YsDatepickerI18nService } from '../services';\r\n\r\n@Component({\r\n selector: 'ys-datepicker',\r\n imports: [NgbDatepickerModule, FormsModule],\r\n templateUrl: './ys-datepicker.component.html',\r\n styleUrl: './ys-datepicker.component.scss',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => YsDatepickerComponent),\r\n multi: true\r\n },\r\n I18n,\r\n { provide: NgbDatepickerI18n, useClass: YsDatepickerI18nService },\r\n { provide: NgbDateParserFormatter, useClass: YsDateParserFormatterService }\r\n ]\r\n})\r\nexport class YsDatepickerComponent implements ControlValueAccessor {\r\n\r\n calendar = inject(NgbCalendar);\r\n today = inject(NgbCalendar).getToday();\r\n\r\n @Input() firstDayOfWeek: number = 1;\r\n @Input() weekend: number[] = [6, 7];\r\n\r\n private _language: string = LanguageType[LanguageType.en];\r\n @Input()\r\n get language(): string {\r\n return this._language;\r\n }\r\n set language(value: string) {\r\n this._language = value;\r\n this.i18N.language = this._language;\r\n }\r\n\r\n @Input() isFooter: boolean = true;\r\n @Input() todayLabel: string = \"Today\";\r\n @Input() footer: TemplateRef<any> | null = null;\r\n\r\n _value: NgbDateStruct | null = null;\r\n get value(): NgbDateStruct | null {\r\n return this._value;\r\n }\r\n set value(val: NgbDateStruct | null) {\r\n this._value = val;\r\n }\r\n\r\n @Input() disabled: boolean = false;\r\n onChange: any = () => { }\r\n onTouched: any = () => { }\r\n\r\n constructor(private i18N: I18n) { }\r\n\r\n writeValue(obj: any): void {\r\n if (!obj) {\r\n this.value = null;\r\n return;\r\n }\r\n\r\n var date: Date = obj;\r\n this.value = { year: date.getFullYear(), month: (date.getMonth() + 1), day: date.getDate() };\r\n }\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n markDisabled = (date: NgbDate, current?: { month: number; year: number }) => date.month !== current?.month;\r\n isWeekend = (date: NgbDate) => this.weekend.includes(this.calendar.getWeekday(date));\r\n\r\n valueChanged(newDate: NgbDateStruct | string | null) {\r\n if (newDate) {\r\n if (typeof newDate == 'string') {\r\n let temp = newDate.split('/');\r\n let res: Date = new Date(+temp[0], (+temp[1]) - 1, +temp[2]);\r\n this.onChange(res);\r\n this.onTouched(res);\r\n } else {\r\n let res: Date = new Date(newDate.year, newDate.month - 1, newDate.day);\r\n this.onChange(res);\r\n this.onTouched(res);\r\n }\r\n } else {\r\n this.onChange(null);\r\n this.onTouched(null);\r\n }\r\n }\r\n\r\n setToday() {\r\n this.value = this.today;\r\n this.valueChanged(this.value);\r\n }\r\n}\r\n","<ngb-datepicker #dp [(ngModel)]=\"value\" [firstDayOfWeek]=\"firstDayOfWeek\" [dayTemplate]=\"customDay\"\r\n [footerTemplate]=\"footerTemplate\" placeholder=\"yyyy/mm/dd\" [disabled]=\"disabled\"\r\n (ngModelChange)=\"valueChanged(value)\" />\r\n\r\n <ng-template #customDay let-date let-currentMonth=\"currentMonth\" let-selected=\"selected\" let-disabled=\"disabled\"\r\n let-focused=\"focused\">\r\n <span class=\"custom-day\" [class.weekend]=\"isWeekend(date)\" [class.focused]=\"focused\" [class.bg-info]=\"selected\"\r\n [class.text-white]=\"selected\" [class.hidden]=\"date.month !== currentMonth\" [class.text-muted]=\"disabled\">\r\n {{ date.day }}\r\n </span>\r\n </ng-template>\r\n\r\n <ng-template #footerTemplate>\r\n @if (isFooter) {\r\n <span>\r\n <hr class=\"my-0\" />\r\n @if (footer) {\r\n <span>\r\n {{footer}}\r\n </span>\r\n }\r\n @if (!footer) {\r\n <span>\r\n <button class=\"btn btn-primary btn-sm m-2 float-start\" (click)=\"dp.navigateTo(); setToday();\"\r\n [disabled]=\"disabled\">{{todayLabel}}</button>\r\n </span>\r\n }\r\n </span>\r\n }\r\n </ng-template>","\r\nimport { Component, forwardRef, inject, Input, TemplateRef } from '@angular/core';\r\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { NgbCalendar, NgbCalendarPersian, NgbDate, NgbDateParserFormatter, NgbDatepickerI18n, NgbDatepickerModule, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\r\nimport { JalaliDate } from '../models';\r\nimport { I18n, LanguageType, YsDateParserFormatterService, YsDatepickerI18nService } from '../services';\r\n\r\n@Component({\r\n selector: 'ys-datepicker-persian',\r\n imports: [NgbDatepickerModule, FormsModule],\r\n templateUrl: './ys-datepicker-persian.component.html',\r\n styleUrl: './ys-datepicker-persian.component.scss',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => YsDatepickerPersianComponent),\r\n multi: true\r\n },\r\n I18n,\r\n { provide: NgbCalendar, useClass: NgbCalendarPersian },\r\n { provide: NgbDatepickerI18n, useClass: YsDatepickerI18nService },\r\n { provide: NgbDateParserFormatter, useClass: YsDateParserFormatterService }\r\n ]\r\n})\r\nexport class YsDatepickerPersianComponent implements ControlValueAccessor {\r\n\r\n calendar = inject(NgbCalendar);\r\n today = inject(NgbCalendar).getToday();\r\n\r\n @Input() firstDayOfWeek: number = 6;\r\n @Input() weekend: number[] = [5];\r\n\r\n private _language: string = LanguageType[LanguageType.fa];\r\n @Input()\r\n get language(): string {\r\n return this._language;\r\n }\r\n set language(value: string) {\r\n this._language = value;\r\n this.i18N.language = this._language;\r\n }\r\n\r\n @Input() isFooter: boolean = true;\r\n @Input() todayLabel: string = \"امروز\";\r\n @Input() footer: TemplateRef<any> | null = null;\r\n\r\n _value: NgbDateStruct | null = null;\r\n get value(): NgbDateStruct | null {\r\n return this._value;\r\n }\r\n set value(val: NgbDateStruct | null) {\r\n this._value = val;\r\n }\r\n\r\n @Input() disabled: boolean = false;\r\n onChange: any = () => { }\r\n onTouched: any = () => { }\r\n\r\n constructor(private i18N: I18n) {\r\n this.language = LanguageType[LanguageType.fa];\r\n }\r\n\r\n writeValue(obj: any): void {\r\n if (!obj) {\r\n this.value = null;\r\n return;\r\n }\r\n\r\n var date: Date = obj;\r\n let persianDate: number[] = JalaliDate.gregorianToJalali(date.getFullYear(), date.getMonth() + 1, date.getDate());\r\n this.value = { year: persianDate[0], month: persianDate[1], day: persianDate[2] };\r\n }\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n markDisabled = (date: NgbDate, current?: { month: number; year: number }) => date.month !== current?.month;\r\n isWeekend = (date: NgbDate) => this.weekend.includes(this.calendar.getWeekday(date));\r\n\r\n valueChanged(newDate: NgbDateStruct | string | null) {\r\n if (newDate) {\r\n if (typeof newDate == 'string') {\r\n let temp = newDate.split('/');\r\n let convertedDate: number[] = JalaliDate.jalaliToGregorian(+temp[0], (+temp[1]) - 1, +temp[2]);\r\n let res: Date = new Date(+convertedDate[0], (+convertedDate[1]) - 1, +convertedDate[2]);\r\n this.onChange(res);\r\n this.onTouched(res);\r\n } else {\r\n let convertedDate: number[] = JalaliDate.jalaliToGregorian(newDate.year, newDate.month, newDate.day);\r\n var res: Date = new Date(+convertedDate[0], +convertedDate[1] - 1, +convertedDate[2]);\r\n this.onChange(res);\r\n this.onTouched(res);\r\n }\r\n } else {\r\n this.onChange(null);\r\n this.onTouched(null);\r\n }\r\n }\r\n\r\n setToday() {\r\n this.value = this.today;\r\n this.valueChanged(this.value);\r\n }\r\n\r\n}\r\n","<ngb-datepicker #dp [(ngModel)]=\"value\" [firstDayOfWeek]=\"firstDayOfWeek\" [dayTemplate]=\"customDay\"\r\n [footerTemplate]=\"footerTemplate\" placeholder=\"yyyy/mm/dd\" [disabled]=\"disabled\"\r\n (ngModelChange)=\"valueChanged(value)\" />\r\n\r\n <ng-template #customDay let-date let-currentMonth=\"currentMonth\" let-selected=\"selected\" let-disabled=\"disabled\"\r\n let-focused=\"focused\">\r\n <span class=\"custom-day\" [class.weekend]=\"isWeekend(date)\" [class.focused]=\"focused\" [class.bg-info]=\"selected\"\r\n [class.text-white]=\"selected\" [class.hidden]=\"date.month !== currentMonth\" [class.text-muted]=\"disabled\">\r\n {{ date.day }}\r\n </span>\r\n </ng-template>\r\n\r\n <ng-template #footerTemplate>\r\n @if (isFooter) {\r\n <span>\r\n <hr class=\"my-0\" />\r\n @if (footer) {\r\n <span>\r\n {{footer}}\r\n </span>\r\n }\r\n @if (!footer) {\r\n <span>\r\n <button class=\"btn btn-primary btn-sm m-2 float-start\" (click)=\"dp.navigateTo(); setToday();\"\r\n [disabled]=\"disabled\">{{todayLabel}}</button>\r\n </span>\r\n }\r\n </span>\r\n }\r\n </ng-template>","\r\nimport { Component, forwardRef, inject, Input, TemplateRef } from '@angular/core';\r\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { NgbCalendar, NgbCalendarPersian, NgbDate, NgbDateParserFormatter, NgbDatepickerI18n, NgbDatepickerModule, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\r\nimport { JalaliDate } from '../models';\r\nimport { I18n, LanguageType, YsDateParserFormatterService, YsDatepickerI18nService } from '../services';\r\n\r\n@Component({\r\n selector: 'ys-datepicker-popup-persian',\r\n imports: [NgbDatepickerModule, FormsModule],\r\n templateUrl: './ys-datepicker-popup-persian.component.html',\r\n styleUrl: './ys-datepicker-popup-persian.component.scss',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => YsDatepickerPopupPersianComponent),\r\n multi: true\r\n },\r\n I18n,\r\n { provide: NgbCalendar, useClass: NgbCalendarPersian },\r\n { provide: NgbDatepickerI18n, useClass: YsDatepickerI18nService },\r\n { provide: NgbDateParserFormatter, useClass: YsDateParserFormatterService }\r\n ]\r\n})\r\nexport class YsDatepickerPopupPersianComponent implements ControlValueAccessor {\r\n\r\n calendar = inject(NgbCalendar);\r\n today = inject(NgbCalendar).getToday();\r\n\r\n _value: NgbDateStruct | null = null;\r\n get value(): NgbDateStruct | null {\r\n return this._value;\r\n }\r\n set value(val: NgbDateStruct | null) {\r\n this._value = val;\r\n }\r\n\r\n @Input() container: \"body\" | null = null;\r\n @Input() firstDayOfWeek: number = 6;\r\n @Input() weekend: number[] = [5];\r\n\r\n private _language: string = LanguageType[LanguageType.fa];\r\n @Input()\r\n get language(): string {\r\n return this._language;\r\n }\r\n set language(value: string) {\r\n this._language = value;\r\n this.i18N.language = this._language;\r\n }\r\n\r\n @Input() isFooter: boolean = true;\r\n @Input() closeLabel: string = \"بستن\";\r\n @Input() todayLabel: string = \"امروز\";\r\n @Input() footer: TemplateRef<any> | null = null;\r\n @Input() calendarIconClass: string = \"fa-solid fa-calendar-days\";\r\n\r\n @Input() disabled: boolean = false;\r\n onChange: any = () => { }\r\n onTouched: any = () => { }\r\n\r\n constructor(private i18N: I18n) {\r\n this.language = LanguageType[LanguageType.fa];\r\n }\r\n\r\n writeValue(obj: any): void {\r\n if (!obj) {\r\n this.value = null;\r\n return;\r\n }\r\n\r\n var date: Date = obj;\r\n let persianDate: number[] = JalaliDate.gregorianToJalali(date.getFullYear(), date.getMonth() + 1, date.getDate());\r\n this.value = { year: persianDate[0], month: persianDate[1], day: persianDate[2] };\r\n }\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n markDisabled = (date: NgbDate, current?: { month: number; year: number }) => date.month !== current?.month;\r\n isWeekend = (date: NgbDate) => this.weekend.includes(this.calendar.getWeekday(date));\r\n\r\n valueChanged(newDate: NgbDateStruct | string | null) {\r\n if (newDate) {\r\n if (typeof newDate == 'string') {\r\n let temp = newDate.split('/');\r\n let convertedDate: number[] = JalaliDate.jalaliToGregorian(+temp[0], (+temp[1]) - 1, +temp[2]);\r\n let res: Date = new Date(+convertedDate[0], (+convertedDate[1]) - 1, +convertedDate[2]);\r\n this.onChange(res);\r\n this.onTouched(res);\r\n } else {\r\n let convertedDate: number[] = JalaliDate.jalaliToGregorian(newDate.year, newDate.month, newDate.day);\r\n var res: Date = new Date(+convertedDate[0], +convertedDate[1] - 1, +convertedDate[2]);\r\n this.onChange(res);\r\n this.onTouched(res);\r\n }\r\n } else {\r\n this.onChange(null);\r\n this.onTouched(null);\r\n }\r\n }\r\n\r\n setToday() {\r\n this.value = this.today;\r\n this.valueChanged(this.value);\r\n }\r\n\r\n}","<form class=\"row row-cols-sm-auto\">\r\n <div class=\"col-12\">\r\n <div class=\"input-group\">\r\n <input class=\"form-control\" placeholder=\"yyyy/mm/dd\" name=\"dp\" [(ngModel)]=\"value\" ngbDatepicker\r\n #datepicker=\"ngbDatepicker\" [container]=\"container\" [markDisabled]=\"markDisabled\" [disabled]=\"disabled\"\r\n [footerTemplate]=\"footerTemplate\" [firstDayOfWeek]=\"firstDayOfWeek\" [dayTemplate]=\"customDay\"\r\n (ngModelChange)=\"valueChanged(value)\" readonly />\r\n <button class=\"btn btn-outline-secondary\" (click)=\"datepicker.toggle()\" type=\"button\" [disabled]=\"disabled\">\r\n <i class=\"{{calendarIconClass}}\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </form>\r\n\r\n <ng-template #customDay let-date let-currentMonth=\"currentMonth\" let-selected=\"selected\" let-disabled=\"disabled\"\r\n let-focused=\"focused\">\r\n <span class=\"custom-day\" [class.weekend]=\"isWeekend(date)\" [class.focused]=\"focused\" [class.bg-info]=\"selected\"\r\n [class.text-white]=\"selected\" [class.hidden]=\"date.month !== currentMonth\" [class.text-muted]=\"disabled\">\r\n {{ date.day }}\r\n </span>\r\n </ng-template>\r\n\r\n <ng-template #footerTemplate>\r\n @if (isFooter) {\r\n <span>\r\n <hr class=\"my-0\" />\r\n @if (footer) {\r\n <span>\r\n {{footer}}\r\n </span>\r\n }\r\n @if (!footer) {\r\n <span>\r\n <button class=\"btn btn-primary btn-sm m-2 float-start\" (click)=\"datepicker.navigateTo(); setToday();\"\r\n [disabled]=\"disabled\">{{todayLabel}}</button>\r\n <button class=\"btn btn-secondary btn-sm m-2 float-end\" (click)=\"datepicker.close()\">{{closeLabel}}</button>\r\n </span>\r\n }\r\n </span>\r\n }\r\n </ng-template>","\r\nimport { Component, forwardRef, inject, Input, TemplateRef } from '@angular/core';\r\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { NgbCalendar, NgbDate, NgbDateParserFormatter, NgbDatepickerI18n, NgbDatepickerModule, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\r\nimport { I18n, LanguageType, YsDateParserFormatterService, YsDatepickerI18nService } from '../services';\r\n\r\n@Component({\r\n selector: 'ys-datepicker-popup',\r\n imports: [NgbDatepickerModule, FormsModule],\r\n templateUrl: './ys-datepicker-popup.component.html',\r\n styleUrl: './ys-datepicker-popup.component.scss',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => YsDatepickerPopupComponent),\r\n multi: true\r\n },\r\n I18n,\r\n { provide: NgbDatepickerI18n, useClass: YsDatepickerI18nService },\r\n { provide: NgbDateParserFormatter, useClass: YsDateParserFormatterService }\r\n ]\r\n})\r\nexport class YsDatepickerPopupComponent implements ControlValueAccessor {\r\n\r\n calendar = inject(NgbCalendar);\r\n today = inject(NgbCalendar).getToday();\r\n\r\n _value: NgbDateStruct | null = null;\r\n get value(): NgbDateStruct | null {\r\n return this._value;\r\n }\r\n set value(val: NgbDateStruct | null) {\r\n this._value = val;\r\n }\r\n\r\n @Input() container: \"body\" | null = null;\r\n @Input() firstDayOfWeek: number = 1;\r\n @Input() weekend: number[] = [6, 7];\r\n\r\n private _language: string = LanguageType[LanguageType.en];\r\n @Input()\r\n get language(): string {\r\n return this._language;\r\n }\r\n set language(value: string) {\r\n this._language = value;\r\n this.i18N.language = this._language;\r\n }\r\n\r\n @Input() isFooter: boolean = true;\r\n @Input() closeLabel: string = \"Close\";\r\n @Input() todayLabel: string = \"Today\";\r\n @Input() footer: TemplateRef<any> | null = null;\r\n @Input() calendarIconClass: string = \"fa-solid fa-calendar-days\";\r\n\r\n @Input() disabled: boolean = false;\r\n onChange: any = () => { }\r\n onTouched: any = () => { }\r\n\r\n constructor(private i18N: I18n) { }\r\n\r\n writeValue(obj: any): void {\r\n if (!obj) {\r\n this.value = null;\r\n return;\r\n }\r\n\r\n var date: Date = obj;\r\n this.value = { year: date.getFullYear(), month: (date.getMonth() + 1), day: date.getDate() };\r\n }\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n markDisabled = (date: NgbDate, current?: { month: number; year: number }) => date.month !== current?.month;\r\n isWeekend = (date: NgbDate) => this.weekend.includes(this.calendar.getWeekday(date));\r\n\r\n valueChanged(newDate: NgbDateStruct | string | null) {\r\n if (newDate) {\r\n if (typeof newDate == 'string') {\r\n let temp = newDate.split('/');\r\n let res: Date = new Date(+temp[0], (+temp[1]) - 1, +temp[2]);\r\n this.onChange(res);\r\n this.onTouched(res);\r\n } else {\r\n let res: Date = new Date(newDate.year, newDate.month - 1, newDate.day);\r\n this.onChange(res);\r\n this.onTouched(res);\r\n }\r\n } else {\r\n this.onChange(null);\r\n this.onTouched(null);\r\n }\r\n }\r\n\r\n setToday() {\r\n this.value = this.today;\r\n this.valueChanged(this.value);\r\n }\r\n\r\n}\r\n","<form class=\"row row-cols-sm-auto\">\r\n <div class=\"col-12\">\r\n <div class=\"input-group\">\r\n <input class=\"form-control\" placeholder=\"yyyy/mm/dd\" name=\"dp\" [(ngModel)]=\"value\" ngbDatepicker\r\n #datepicker=\"ngbDatepicker\" [container]=\"container\" [markDisabled]=\"markDisabled\" [disabled]=\"disabled\"\r\n [footerTemplate]=\"footerTemplate\" [firstDayOfWeek]=\"firstDayOfWeek\" [dayTemplate]=\"customDay\"\r\n (ngModelChange)=\"valueChanged(value)\" readonly />\r\n <button class=\"btn btn-outline-secondary\" (click)=\"datepicker.toggle()\" type=\"button\" [disabled]=\"disabled\">\r\n <i class=\"{{calendarIconClass}}\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </form>\r\n\r\n <ng-template #customDay let-date let-currentMonth=\"currentMonth\" let-selected=\"selected\" let-disabled=\"disabled\"\r\n let-focused=\"focused\">\r\n <span class=\"custom-day\" [class.weekend]=\"isWeekend(date)\" [class.focused]=\"focused\" [class.bg-info]=\"selected\"\r\n [class.text-white]=\"selected\" [class.hidden]=\"date.month !== currentMonth\" [class.text-muted]=\"disabled\">\r\n {{ date.day }}\r\n </span>\r\n </ng-template>\r\n\r\n <ng-template #footerTemplate>\r\n @if (isFooter) {\r\n <span>\r\n <hr class=\"my-0\" />\r\n @if (footer) {\r\n <span>\r\n {{footer}}\r\n </span>\r\n }\r\n @if (!footer) {\r\n <span>\r\n <button class=\"btn btn-primary btn-sm m-2 float-start\" (click)=\"datepicker.navigateTo(); setToday();\"\r\n [disabled]=\"disabled\">{{todayLabel}}</button>\r\n <button class=\"btn btn-secondary btn-sm m-2 float-end\" (click)=\"datepicker.close()\">{{closeLabel}}</button>\r\n </span>\r\n }\r\n </span>\r\n }\r\n </ng-template>","\r\nimport { Component, forwardRef, inject, Input, TemplateRef } from '@angular/core';\r\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { NgbCalendar, NgbCalendarPersian, NgbDate, NgbDateParserFormatter, NgbDatepickerI18n, NgbDatepickerModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { DateRange, JalaliDate } from '../models';\r\nimport { I18n, LanguageType, YsDateParserFormatterService, YsDatepickerI18nService } from '../services';\r\n\r\n@Component({\r\n selector: 'ys-datepicker-range-popup-persian',\r\n imports: [NgbDatepickerModule, FormsModule],\r\n templateUrl: './ys-datepicker-range-popup-persian.component.html',\r\n styleUrl: './ys-datepicker-range-popup-persian.component.scss',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => YsDatepickerRangePopupPersianComponent),\r\n multi: true\r\n },\r\n I18n,\r\n { provide: NgbCalendar, useClass: NgbCalendarPersian },\r\n { provide: NgbDatepickerI18n, useClass: YsDatepickerI18nService },\r\n { provide: NgbDateParserFormatter, useClass: YsDateParserFormatterService }\r\n ]\r\n})\r\nexport class YsDatepickerRangePopupPersianComponent implements ControlValueAccessor {\r\n\r\n calendar = inject(NgbCalendar);\r\n formatter = inject(NgbDateParserFormatter);\r\n today = inject(NgbCalendar).getToday();\r\n\r\n date?: { year: number; month: number };\r\n\r\n hoveredDate: NgbDate | null = null;\r\n _fromDate: NgbDate | null = null;\r\n get fromDate(): NgbDate | null { return this._fromDate; }\r\n set fromDate(value: NgbDate | null) {\r\n this._fromDate = value;\r\n }\r\n\r\n _toDate: NgbDate | null = null;\r\n get toDate(): NgbDate | null { return this._toDate; }\r\n set toDate(value: NgbDate | null) {\r\n this._toDate = value;\r\n }\r\n\r\n @Input() container: \"body\" | null = null;\r\n @Input() firstDayOfWeek: number = 6;\r\n @Input() weekend: number[] = [5];\r\n\r\n private _language: string = LanguageType[LanguageType.fa];\r\n @Input()\r\n get language(): string {\r\n return this._language;\r\n }\r\n set language(value: string) {\r\n this._language = value;\r\n this.i18N.language = this._language;\r\n }\r\n\r\n @Input() isFooter: boolean = true;\r\n @Input() closeLabel: string = \"بستن\";\r\n @Input() todayLabel: string = \"امروز\";\r\n @Input() footer: TemplateRef<any> | null = null;\r\n @Input() calendarIconClass: string = \"fa-solid fa-calendar-days\";\r\n\r\n @Input() disabled: boolean = false;\r\n onChange: any = () => { };\r\n onTouched: any = () => { };\r\n\r\n constructor(private i18N: I18n) {\r\n this.language = LanguageType[LanguageType.fa];\r\n }\r\n\r\n writeValue(obj: any): void {\r\n if (!obj) {\r\n this.fromDate = null;\r\n this.toDate = null;\r\n return;\r\n }\r\n\r\n var fDate: Date = obj.fromDate;\r\n let persianDate: number[] = JalaliDate.gregorianToJalali(fDate.getFullYear(), fDate.getMonth() + 1, fDate.getDate());\r\n this.fromDate = <NgbDate>{ year: persianDate[0], month: persianDate[1], day: persianDate[2] };\r\n\r\n var tDate: Date = obj.toDate;\r\n persianDate = JalaliDate.gregorianToJalali(tDate.getFullYear(), tDate.getMonth() + 1, tDate.getDate());\r\n this.toDate = <NgbDate>{ year: persianDate[0], month: persianDate[1], day: persianDate[2] };\r\n }\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n onDateSelection(date: NgbDate) {\r\n if (!this.fromDate && !this.toDate) {\r\n this.fromDate = date;\r\n } else if (this.fromDate && !this.toDate && date && date.after(this.fromDate)) {\r\n this.toDate = date;\r\n } else {\r\n this.toDate = null;\r\n this.fromDate = date;\r\n }\r\n\r\n this.valueChanged();\r\n }\r\n\r\n isHovered(date: NgbDate) {\r\n return (\r\n this.fromDate && !this.toDate && this.hoveredDate && date.after(this.fromDate) && date.before(this.hoveredDate)\r\n );\r\n }\r\n\r\n isInside(date: NgbDate) {\r\n return this.toDate && date.after(this.fromDate) && date.before(this.toDate);\r\n }\r\n\r\n isRange(date: NgbDate) {\r\n return (\r\n date.equals(this.fromDate) ||\r\n (this.toDate && date.equals(this.toDate)) ||\r\n this.isInside(date) ||\r\n this.isHovered(date)\r\n );\r\n }\r\n\r\n markDisabled = (date: NgbDate, current?: { month: number; year: number }) => date.month !== current?.month;\r\n isWeekend = (date: NgbDate) => this.weekend.includes(this.calendar.getWeekday(date));\r\n\r\n validateInput(currentValue: NgbDate | null, input: string): NgbDate | null {\r\n const parsed = this.formatter.parse(input);\r\n return parsed && this.calendar.isValid(NgbDate.from(parsed)) ? NgbDate.from(parsed) : currentValue;\r\n }\r\n\r\n valueChanged() {\r\n let range = <DateRange>{ fromDate: null, toDate: null };\r\n\r\n if (this.fromDate) {\r\n let fromDateConverted: number[] = JalaliDate.jalaliToGregorian(this.fromDate.year, this.fromDate.month, this.fromDate.day);\r\n range.fromDate = new Date(fromDateConverted[0], fromDateConverted[1] - 1, fromDateConverted[2]);\r\n }\r\n\r\n if (this.toDate) {\r\n let toDateConverted: number[] = JalaliDate.jalaliToGregorian(this.toDate.year, this.toDate.month, this.toDate.day);\r\n range.toDate = new Date(toDateConverted[0], toDateConverted[1] - 1, toDateConverted[2]);\r\n }\r\n\r\n this.onChange(range);\r\n this.onTouched(range)\r\n }\r\n\r\n setToday() {\r\n this.fromDate = this.today;\r\n this.toDate = this.today;\r\n this.valueChanged();\r\n }\r\n\r\n}\r\n","<form class=\"row row-cols-sm-auto\">\r\n <div class=\"col-12\">\r\n <div class=\"dp-hidden position-absolute\">\r\n <div class=\"input-group\">\r\n <input name=\"datepicker\" class=\"form-control\" ngbDatepicker #datepicker=\"ngbDatepicker\"\r\n [autoClose]=\"'outside'\" (dateSelect)=\"onDateSelection($event)\" [displayMonths]=\"2\"\r\n [dayTemplate]=\"customDay\" outsideDays=\"hidden\" [startDate]=\"fromDate!\" tabindex=\"-1\"\r\n [container]=\"container\" [markDisabled]=\"markDisabled\" [disabled]=\"disabled\"\r\n [footerTemplate]=\"footerTemplate\" [firstDayOfWeek]=\"firstDayOfWeek\" readonly />\r\n </div>\r\n </div>\r\n <div class=\"input-group\">\r\n <input #dpFromDate class=\"form-control\" placeholder=\"yyyy/mm/dd\" name=\"dpFromDate\"\r\n [value]=\"formatter.format(fromDate)\" (input)=\"fromDate = validateInput(fromDate, dpFromDate.value)\"\r\n [disabled]=\"disabled\" readonly />\r\n <button class=\"btn btn-outline-secondary\" (click)=\"datepicker.toggle()\" type=\"button\" [disabled]=\"disabled\">\r\n <i class=\"{{calendarIconClass}}\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"col-12\">\r\n <div class=\"input-group\">\r\n <input #dpToDate class=\"form-control\" placeholder=\"yyyy/mm/dd\" name=\"dpToDate\"\r\n [value]=\"formatter.format(toDate)\" (input)=\"toDate = validateInput(toDate, dpToDate.value)\"\r\n [disabled]=\"disabled\" readonly />\r\n <button class=\"btn btn-outline-secondary\" (click)=\"datepicker.toggle()\" type=\"button\" [disabled]=\"disabled\">\r\n <i class=\"{{calendarIconClass}}\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </form>\r\n\r\n <ng-template #customDay let-date let-currentMonth=\"currentMonth\" let-selected=\"selected\" let-disabled=\"disabled\"\r\n let-focused=\"focused\">\r\n <span class=\"custom-day\" [class.weekend]=\"isWeekend(date)\" [class.focused]=\"focused\"\r\n [class.hidden]=\"date.month !== currentMonth\" [class.text-muted]=\"disabled\" [class.range]=\"isRange(date)\"\r\n [class.faded]=\"isHovered(date) || isInside(date)\" (mouseenter)=\"hoveredDate = date\"\r\n (mouseleave)=\"hoveredDate = null\">\r\n {{ date.day }}\r\n </span>\r\n </ng-template>\r\n\r\n <ng-template #footerTemplate>\r\n @if (isFooter) {\r\n <span>\r\n <hr class=\"my-0\" />\r\n @if (footer) {\r\n <span>\r\n {{footer}}\r\n </span>\r\n }\r\n @if (!footer) {\r\n <span>\r\n <button class=\"btn btn-primary btn-sm m-2 float-start\" (click)=\"datepicker.navigateTo(); setToday();\"\r\n [disabled]=\"disabled\">{{todayLabel}}</button>\r\n <button class=\"btn btn-secondary btn-sm m-2 float-end\" (click)=\"datepicker.close()\">{{closeLabel}}</button>\r\n </span>\r\n }\r\n </span>\r\n }\r\n </ng-template>","\r\nimport { Component, forwardRef, inject, Input, TemplateRef } from '@angular/core';\r\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { NgbCalendar, NgbDate, NgbDateParserFormatter, NgbDatepickerI18n, NgbDatepickerModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { DateRange } from '../models';\r\nimport { I18n, LanguageType, YsDateParserFormatterService, YsDatepickerI18nService } from '../services';\r\n\r\n@Component({\r\n selector: 'ys-datepicker-range-popup',\r\n imports: [NgbDatepickerModule, FormsModule],\r\n templateUrl: './ys-datepicker-range-popup.component.html',\r\n styleUrl: './ys-datepicker-range-popup.component.scss',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => YsDatepickerRangePopupComponent),\r\n multi: true\r\n },\r\n I18n,\r\n { provide: NgbDatepickerI18n, useClass: YsDatepickerI18nService },\r\n { provide: NgbDateParserFormatter, useClass: YsDateParserFormatterService }\r\n ]\r\n})\r\nexport class YsDatepickerRangePopupComponent implements ControlValueAccessor {\r\n\r\n calendar = inject(NgbCalendar);\r\n formatter = inject(NgbDateParserFormatter);\r\n today = inject(NgbCalendar).getToday();\r\n\r\n hoveredDate: NgbDate | null = null;\r\n\r\n _fromDate: NgbDate | null = null;\r\n get fromDate(): NgbDate | null { return this._fromDate; }\r\n set fromDate(value: NgbDate | null) {\r\n this._fromDate = value;\r\n }\r\n\r\n _toDate: NgbDate | null = null;\r\n get toDate(): NgbDate | null { return this._toDate; }\r\n set toDate(value: NgbDate | null) {\r\n this._toDate = value;\r\n }\r\n\r\n @Input() container: \"body\" | null = null;\r\n @Input() firstDayOfWeek: number = 1;\r\n @Input() weekend: number[] = [6, 7];\r\n\r\n private _language: string = LanguageType[LanguageType.en];\r\n @Input()\r\n get language(): string {\r\n return this._language;\r\n }\r\n set language(value: string) {\r\n this._language = value;\r\n this.i18N.language = this._language;\r\n }\r\n\r\n @Input() isFooter: boolean = true;\r\n @Input() closeLabel: string = \"Close\";\r\n @Input() todayLabel: string = \"Today\";\r\n @Input() footer: TemplateRef<any> | null = null;\r\n @Input() calendarIconClass: string = \"fa-solid fa-calendar-days\";\r\n\r\n @Input() disabled: boolean = false;\r\n onChange: any = () => { }\r\n onTouched: any = () => { }\r\n\r\n constructor(private i18N: I18n) { }\r\n\r\n writeValue(obj: any): void {\r\n if (!obj) {\r\n this.fromDate = null;\r\n this.toDate = null;\r\n return;\r\n }\r\n\r\n let d: DateRange = obj;\r\n\r\n var fDate: Date = d.fromDate!;\r\n this.fromDate = <NgbDate>{ year: fDate.getFullYear(), month: (fDate.getMonth() + 1), day: fDate.getDate() };\r\n\r\n var tDate: Date = d.toDate!;\r\n this.toDate = <NgbDate>{ year: tDate.getFullYear(), month: (tDate.getMonth() + 1), day: tDate.getDate() };\r\n }\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n onDateSelection(date: NgbDate) {\r\n if (!this.fromDate && !this.toDate) {\r\n this.fromDate = date;\r\n } else if (this.fromDate && !this.toDate && date && date.after(this.fromDate)) {\r\n this.toDate = date;\r\n } else {\r\n this.toDate = null;\r\n this.fromDate = date;\r\n }\r\n\r\n this.valueChanged();\r\n }\r\n\r\n isHovered(date: NgbDate) {\r\n return (\r\n this.fromDate && !this.toDate && this.hoveredDate && date.after(this.fromDate) && date.before(this.hoveredDate)\r\n );\r\n }\r\n\r\n isInside(date: NgbDate) {\r\n return this.toDate && date.after(this.fromDate) && date.before(this.toDate);\r\n }\r\n\r\n isRange(date: NgbDate) {\r\n return (\r\n date.equals(this.fromDate) ||\r\n (this.toDate && date.equals(this.toDate)) ||\r\n this.isInside(date) ||\r\n this.isHovered(date)\r\n );\r\n }\r\n\r\n markDisabled = (date: NgbDate, current?: { month: number; year: number }) => date.month !== current?.month;\r\n isWeekend = (date: NgbDate) => this.weekend.includes(this.calendar.getWeekday(date));\r\n\r\n validateInput(currentValue: NgbDate | null, input: string): NgbDate | null {\r\n const parsed = this.formatter.parse(input);\r\n return parsed && this.calendar.isValid(NgbDate.from(parsed)) ? NgbDate.from(parsed) : currentValue;\r\n }\r\n\r\n valueChanged() {\r\n const fromDateTemp: Date | null = this.fromDate ? new Date(this.fromDate.year, this.fromDate.month - 1, this.fromDate.day) : null;\r\n const toDateTemp: Date | null = this.toDate ? new Date(this.toDate.year, this.toDate.month - 1, this.toDate.day) : null;\r\n const res = <DateRange>{ fromDate: fromDateTemp, toDate: toDateTemp };\r\n this.onChange(res);\r\n this.onTouched(res);\r\n }\r\n\r\n setToday() {\r\n this.fromDate = this.today;\r\n this.toDate = this.today;\r\n this.valueChanged();\r\n }\r\n\r\n}\r\n","<form class=\"row row-cols-sm-auto\">\r\n <div class=\"col-12\">\r\n <div class=\"dp-hidden position-absolute\">\r\n <div class=\"input-group\">\r\n <input name=\"datepicker\" class=\"form-control\" ngbDatepicker #datepicker=\"ngbDatepicker\"\r\n [autoClose]=\"'outside'\" (dateSelect)=\"onDateSelection($event)\" [displayMonths]=\"2\"\r\n [dayTemplate]=\"customDay\" outsideDays=\"hidden\" [startDate]=\"fromDate!\" tabindex=\"-1\"\r\n [container]=\"container\" [markDisabled]=\"markDisabled\" [disabled]=\"disabled\"\r\n [footerTemplate]=\"footerTemplate\" [firstDayOfWeek]=\"firstDayOfWeek\" readonly />\r\n </div>\r\n </div>\r\n <div class=\"input-group\">\r\n <input #dpFromDate class=\"form-control\" placeholder=\"yyyy/mm/dd\" name=\"dpFromDate\"\r\n [value]=\"formatter.format(fromDate)\" (input)=\"fromDate = validateInput(fromDate, dpFromDate.value)\"\r\n [disabled]=\"disabled\" readonly />\r\n <button class=\"btn btn-outline-secondary\" (click)=\"datepicker.toggle()\" type=\"button\" [disabled]=\"disabled\">\r\n <i class=\"{{calendarIconClass}}\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"col-12\">\r\n <div class=\"input-group\">\r\n <input #dpToDate class=\"form-control\" placeholder=\"yyyy/mm/dd\" name=\"dpToDate\"\r\n [value]=\"formatter.format(toDate)\" (input)=\"toDate = validateInput(toDate, dpToDate.value)\"\r\n [disabled]=\"disabled\" readonly />\r\n <button class=\"btn btn-outline-secondary\" (click)=\"datepicker.toggle()\" type=\"button\" [disabled]=\"disabled\">\r\n <i class=\"{{calendarIconClass}}\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </form>\r\n\r\n <ng-template #customDay let-date let-currentMonth=\"currentMonth\" let-selected=\"selected\" let-disabled=\"disabled\"\r\n let-focused=\"focused\">\r\n <span class=\"custom-day\" [class.weekend]=\"isWeekend(date)\" [class.focused]=\"focused\"\r\n [class.hidden]=\"date.month !== currentMonth\" [class.text-muted]=\"disabled\" [class.range]=\"isRange(date)\"\r\n [class.faded]=\"isHovered(date) || isInside(date)\" (mouseenter)=\"hoveredDate = date\"\r\n (mouseleave)=\"hoveredDate = null\">\r\n {{ date.day }}\r\n </span>\r\n </ng-template>\r\n\r\n <ng-template #footerTemplate>\r\n @if (isFooter) {\r\n <span>\r\n <hr class=\"my-0\" />\r\n @if (footer) {\r\n <span>\r\n {{footer}}\r\n </span>\r\n }\r\n @if (!footer) {\r\n <span>\r\n <button class=\"btn btn-primary btn-sm m-2 float-start\" (click)=\"datepicker.navigateTo(); setToday();\"\r\n [disabled]=\"disabled\">{{todayLabel}}</button>\r\n <button class=\"btn btn-secondary btn-sm m-2 float-end\" (click)=\"datepicker.close()\">{{closeLabel}}</button>\r\n </span>\r\n }\r\n </span>\r\n }\r\n </ng-template>","/*\r\n * Public API Surface of ys-datepicker\r\n */\r\n\r\nexport * from './src/models';\r\nexport * from './src/services';\r\nexport * from './src/ys-datepicker/ys-datepicker.component';\r\nexport * from './src/ys-datepicker-persian/ys-datepicker-persian.component';\r\nexport * from './src/ys-datepicker-popup-persian/ys-datepicker-popup-persian.component';\r\nexport * from './src/ys-datepicker-popup/ys-datepicker-popup.component';\r\nexport * from './src/ys-datepicker-range-popup-persian/ys-datepicker-range-popup-persian.component';\r\nexport * from './src/ys-datepicker-range-popup/ys-datepicker-range-popup.component';\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.I18n"],"mappings":";;;;;;;MAAa,cAAc,CAAA;AAC1B;;MCDY,UAAU,CAAA;IAEX,OAAO,WAAW,GAAG;QACzB,eAAe,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;QACjE,eAAe,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;KACnE;AAED,IAAA,OAAO,iBAAiB,CAAC,UAAkB,EAAE,WAAmB,EAAE,SAAiB,EAAA;AAC/E,QAAA,UAAU,GAAG,QAAQ,CAAC,GAAG,UAAU,CAAA,CAAE,CAAC;AACtC,QAAA,WAAW,GAAG,QAAQ,CAAC,GAAG,WAAW,CAAA,CAAE,CAAC;AACxC,QAAA,SAAS,GAAG,QAAQ,CAAC,GAAG,SAAS,CAAA,CAAE,CAAC;AACpC,QAAA,IAAI,EAAE,GAAG,UAAU,GAAG,GAAG;AACzB,QAAA,IAAI,EAAE,GAAG,WAAW,GAAG,CAAC;AACxB,QAAA,IAAI,EAAE,GAAG,SAAS,GAAG,CAAC;AACtB,QAAA,IAAI,QAAQ,GAAG,GAAG,GAAG,EAAE,GAAG,QAAQ,CAAC,CAAA,EAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAA,EAAG,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA,CAAE,CAAC;QACvF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC;YACvB,QAAQ,IAAI,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC;QACnD,QAAQ,IAAI,EAAE;AACd,QAAA,IAAI,QAAQ,GAAG,QAAQ,GAAG,EAAE;AAC5B,QAAA,IAAI,EAAE,GAAG,IAAI,GAAG,GAAG,GAAG,QAAQ,CAAC,CAAA,EAAG,QAAQ,GAAG,MAAM,CAAA,CAAE,CAAC;AACtD,QAAA,QAAQ,GAAG,QAAQ,GAAG,MAAM;QAC5B,IAAI,IAAI,GAAG,IAAI;AACf,QAAA,IAAI,QAAQ,IAAI,KAAK,EAAE;AACnB,YAAA,QAAQ,EAAE;YACV,EAAE,IAAI,GAAG,GAAG,QAAQ,CAAC,CAAA,EAAG,QAAQ,GAAG,KAAK,CAAA,CAAE,CAAC;AAC3C,YAAA,QAAQ,GAAG,QAAQ,GAAG,KAAK;YAC3B,IAAI,QAAQ,IAAI,GAAG;AACf,gBAAA,QAAQ,EAAE;;gBAEV,IAAI,GAAG,KAAK;;QAEpB,EAAE,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAA,EAAG,QAAQ,GAAG,IAAI,CAAA,CAAE,CAAC;QACxC,QAAQ,IAAI,IAAI;AAChB,QAAA,IAAI,QAAQ,IAAI,GAAG,EAAE;YACjB,IAAI,GAAG,KAAK;AACZ,YAAA,QAAQ,EAAE;YACV,EAAE,IAAI,QAAQ,CAAC,CAAA,EAAG,QAAQ,GAAG,GAAG,CAAA,CAAE,CAAC;AACnC,YAAA,QAAQ,GAAG,QAAQ,GAAG,GAAG;;AAE7B,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,QAAQ,IAAI,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE;YAC7F,QAAQ,IAAI,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;AAChF,QAAA,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC;AACd,QAAA,IAAI,EAAE,GAAG,QAAQ,GAAG,CAAC;AACrB,QAAA,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;;AAGvB,IAAA,OAAO,iBAAiB,CAAC,aAAqB,EAAE,cAAsB,EAAE,YAAoB,EAAA;AACxF,QAAA,aAAa,GAAG,QAAQ,CAAC,GAAG,aAAa,CAAA,CAAE,CAAC;AAC5C,QAAA,cAAc,GAAG,QAAQ,CAAC,GAAG,cAAc,CAAA,CAAE,CAAC;AAC9C,QAAA,YAAY,GAAG,QAAQ,CAAC,GAAG,YAAY,CAAA,CAAE,CAAC;AAC1C,QAAA,IAAI,EAAE,GAAG,aAAa,GAAG,IAAI;AAC7B,QAAA,IAAI,EAAE,GAAG,cAAc,GAAG,CAAC;AAC3B,QAAA,IAAI,EAAE,GAAG,YAAY,GAAG,CAAC;QACzB,IAAI,QAAQ,GAAG,GAAG,GAAG,EAAE,GAAG,QAAQ,CAAC,CAAA,EAAG,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAA,EAAG,CAAC,EAAE,GAAG,EAAE,IAAI,GAAG,CAAA,CAAE,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,GAAG,CAAA,CAAE,CAAC;QACxH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC;YACvB,QAAQ,IAAI,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC;QACnD,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;AAC7D,YAAA,EAAE,QAAQ;QACd,QAAQ,IAAI,EAAE;AACd,QAAA,IAAI,QAAQ,GAAG,QAAQ,GAAG,EAAE;QAC5B,IAAI,IAAI,GAAG,QAAQ,CAAC,CAAA,EAAG,QAAQ,GAAG,KAAK,CAAA,CAAE,CAAC;QAC1C,QAAQ,IAAI,KAAK;AACjB,QAAA,IAAI,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAA,EAAG,QAAQ,GAAG,IAAI,CAAA,CAAE,CAAC;QAC7D,QAAQ,IAAI,IAAI;AAChB,QAAA,IAAI,QAAQ,IAAI,GAAG,EAAE;AACjB,YAAA,EAAE,IAAI,QAAQ,CAAC,CAAA,EAAG,CAAC,QAAQ,GAAG,CAAC,IAAI,GAAG,CAAA,CAAE,CAAC;YACzC,QAAQ,GAAG,CAAC,QAAQ,GAAG,CAAC,IAAI,GAAG;;QAEnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,QAAQ,IAAI,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;YAC5E,QAAQ,IAAI,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC;;AAEnD,QAAA,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC;AACd,QAAA,IAAI,EAAE,GAAG,QAAQ,GAAG,CAAC;AACrB,QAAA,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;;;;ACnErB,MAAO,4BAA6B,SAAQ,sBAAsB,CAAA;IAC7D,SAAS,GAAG,GAAG;AAExB,IAAA,KAAK,CAAC,KAAa,EAAA;QACjB,IAAI,KAAK,EAAE;YACT,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;YACxC,OAAO;gBACL,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;gBAC1B,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;gBAC5B,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;aAC5B;;AAEH,QAAA,OAAO,IAAI;;AAGb,IAAA,MAAM,CAAC,IAA0B,EAAA;QAC/B,OAAO,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,GAAG,EAAE;;uGAhB7E,4BAA4B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAA5B,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,cAF3B,MAAM,EAAA,CAAA;;2FAEP,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAHxC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;ICFW;AAAZ,CAAA,UAAY,YAAY,EAAA;AACtB,IAAA,YAAA,CAAA,YAAA,CAAA,IAAA,CAAA,GAAA,CAAA,CAAA,GAAA,IAAE;AACF,IAAA,YAAA,CAAA,YAAA,CAAA,IAAA,CAAA,GAAA,CAAA,CAAA,GAAA,IAAE;AACF,IAAA,YAAA,CAAA,YAAA,CAAA,IAAA,CAAA,GAAA,CAAA,CAAA,GAAA,IAAE;AACJ,CAAC,EAJW,YAAY,KAAZ,YAAY,GAAA,EAAA,CAAA,CAAA;AAMxB,MAAM,WAAW,GAAQ;AACvB,IAAA,IAAI,EAAE;AACJ,QAAA,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;QACpD,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;AAC5F,QAAA,SAAS,EAAE;AACZ,KAAA;AACD,IAAA,IAAI,EAAE;AACJ,QAAA,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QAC7C,MAAM,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC;AAC/G,QAAA,SAAS,EAAE;AACZ,KAAA;AACD,IAAA,IAAI,EAAE;AACJ,QAAA,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;QACpD,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;AAC9F,QAAA,SAAS,EAAE;AACZ;CACF;MAGY,IAAI,CAAA;AACf,IAAA,QAAQ,GAAW,YAAY,CAAC,YAAY,CAAC,EAAE,CAAC;uGADrC,IAAI,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;2GAAJ,IAAI,EAAA,CAAA;;2FAAJ,IAAI,EAAA,UAAA,EAAA,CAAA;kBADhB;;AAQK,MAAO,uBAAwB,SAAQ,iBAAiB,CAAA;AACpD,IAAA,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC;AAE5B,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;;AAGA,IAAA,eAAe,CAAC,OAAe,EAAA;AACtC,QAAA,OAAO,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC;;IAEtD,YAAY,GAAA;QACnB,OAAO,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,SAAS;;AAE1C,IAAA,iBAAiB,CAAC,KAAa,EAAA;AACtC,QAAA,OAAO,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;;AAElD,IAAA,gBAAgB,CAAC,KAAa,EAAA;AACrC,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC;;AAE7B,IAAA,eAAe,CAAC,IAAmB,EAAA;AAC1C,QAAA,OAAO,CAAA,EAAG,IAAI,CAAC,GAAG,CAAA,CAAA,EAAI,IAAI,CAAC,KAAK,CAAA,CAAA,EAAI,IAAI,CAAC,IAAI,EAAE;;uGApBtC,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAvB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,cAFtB,MAAM,EAAA,CAAA;;2FAEP,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAHnC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;MCZY,qBAAqB,CAAA;AAkCZ,IAAA,IAAA;AAhCpB,IAAA,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC;IAC9B,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE;IAE7B,cAAc,GAAW,CAAC;AAC1B,IAAA,OAAO,GAAa,CAAC,CAAC,EAAE,CAAC,CAAC;AAE3B,IAAA,SAAS,GAAW,YAAY,CAAC,YAAY,CAAC,EAAE,CAAC;AACzD,IAAA,IACI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,SAAS;;IAEvB,IAAI,QAAQ,CAAC,KAAa,EAAA;AACxB,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;QACtB,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS;;IAG5B,QAAQ,GAAY,IAAI;IACxB,UAAU,GAAW,OAAO;IAC5B,MAAM,GAA4B,IAAI;IAE/C,MAAM,GAAyB,IAAI;AACnC,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,MAAM;;IAEpB,IAAI,KAAK,CAAC,GAAyB,EAAA;AACjC,QAAA,IAAI,CAAC,MAAM,GAAG,GAAG;;IAGV,QAAQ,GAAY,KAAK;AAClC,IAAA,QAAQ,GAAQ,MAAK,GAAI;AACzB,IAAA,SAAS,GAAQ,MAAK,GAAI;AAE1B,IAAA,WAAA,CAAoB,IAAU,EAAA;QAAV,IAAA,CAAA,IAAI,GAAJ,IAAI;;AAExB,IAAA,UAAU,CAAC,GAAQ,EAAA;QACjB,IAAI,CAAC,GAAG,EAAE;AACR,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI;YACjB;;QAGF,IAAI,IAAI,GAAS,GAAG;AACpB,QAAA,IAAI,CAAC,KAAK,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE;;AAE9F,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;;AAEpB,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;;AAErB,IAAA,gBAAgB,CAAE,UAAmB,EAAA;AACnC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU;;AAG5B,IAAA,YAAY,GAAG,CAAC,IAAa,EAAE,OAAyC,KAAK,IAAI,CAAC,KAAK,KAAK,OAAO,EAAE,KAAK;IAC1G,SAAS,GAAG,CAAC,IAAa,KAAK,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAEpF,IAAA,YAAY,CAAC,OAAsC,EAAA;QACjD,IAAI,OAAO,EAAE;AACX,YAAA,IAAI,OAAO,OAAO,IAAI,QAAQ,EAAE;gBAC9B,IAAI,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;gBAC7B,IAAI,GAAG,GAAS,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC5D,gBAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;AAClB,gBAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;;iBACd;AACL,gBAAA,IAAI,GAAG,GAAS,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,GAAG,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC;AACtE,gBAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;AAClB,gBAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;;;aAEhB;AACL,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AACnB,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;;;IAIxB,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;AACvB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;;uGA9EpB,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAArB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAXrB;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,qBAAqB,CAAC;AACpD,gBAAA,KAAK,EAAE;AACR,aAAA;YACD,IAAI;AACJ,YAAA,EAAE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,uBAAuB,EAAE;AACjE,YAAA,EAAE,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,4BAA4B;AAC1E,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECpBH,mtCA6BgB,EAAA,MAAA,EAAA,CAAA,mwDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDrBJ,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,SAAA,EAAA,SAAA,EAAA,YAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAc/B,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAhBjC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,WAChB,CAAC,mBAAmB,EAAE,WAAW,CAAC,EAAA,SAAA,EAGhC;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,2BAA2B,CAAC;AACpD,4BAAA,KAAK,EAAE;AACR,yBAAA;wBACD,IAAI;AACJ,wBAAA,EAAE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,uBAAuB,EAAE;AACjE,wBAAA,EAAE,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,4BAA4B;AAC1E,qBAAA,EAAA,QAAA,EAAA,mtCAAA,EAAA,MAAA,EAAA,CAAA,mwDAAA,CAAA,EAAA;sEAOQ,cAAc,EAAA,CAAA;sBAAtB;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBAIG,QAAQ,EAAA,CAAA;sBADX;gBASQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,UAAU,EAAA,CAAA;sBAAlB;gBACQ,MAAM,EAAA,CAAA;sBAAd;gBAUQ,QAAQ,EAAA,CAAA;sBAAhB;;;ME5BU,4BAA4B,CAAA;AAkCnB,IAAA,IAAA;AAhCpB,IAAA,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC;IAC9B,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE;IAE7B,cAAc,GAAW,CAAC;AAC1B,IAAA,OAAO,GAAa,CAAC,CAAC,CAAC;AAExB,IAAA,SAAS,GAAW,YAAY,CAAC,YAAY,CAAC,EAAE,CAAC;AACzD,IAAA,IACI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,SAAS;;IAEvB,IAAI,QAAQ,CAAC,KAAa,EAAA;AACxB,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;QACtB,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS;;IAG5B,QAAQ,GAAY,IAAI;IACxB,UAAU,GAAW,OAAO;IAC5B,MAAM,GAA4B,IAAI;IAE/C,MAAM,GAAyB,IAAI;AACnC,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,MAAM;;IAEpB,IAAI,KAAK,CAAC,GAAyB,EAAA;AACjC,QAAA,IAAI,CAAC,MAAM,GAAG,GAAG;;IAGV,QAAQ,GAAY,KAAK;AAClC,IAAA,QAAQ,GAAQ,MAAK,GAAI;AACzB,IAAA,SAAS,GAAQ,MAAK,GAAI;AAE1B,IAAA,WAAA,CAAoB,IAAU,EAAA;QAAV,IAAA,CAAA,IAAI,GAAJ,IAAI;QACtB,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC,YAAY,CAAC,EAAE,CAAC;;AAG/C,IAAA,UAAU,CAAC,GAAQ,EAAA;QACjB,IAAI,CAAC,GAAG,EAAE;AACR,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI;YACjB;;QAGF,IAAI,IAAI,GAAS,GAAG;QACpB,IAAI,WAAW,GAAa,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;QACjH,IAAI,CAAC,KAAK,GAAG,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE;;AAEnF,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;;AAEpB,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;;AAErB,IAAA,gBAAgB,CAAE,UAAmB,EAAA;AACnC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU;;AAG5B,IAAA,YAAY,GAAG,CAAC,IAAa,EAAE,OAAyC,KAAK,IAAI,CAAC,KAAK,KAAK,OAAO,EAAE,KAAK;IAC1G,SAAS,GAAG,CAAC,IAAa,KAAK,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAEpF,IAAA,YAAY,CAAC,OAAsC,EAAA;QACjD,IAAI,OAAO,EAAE;AACX,YAAA,IAAI,OAAO,OAAO,IAAI,QAAQ,EAAE;gBAC9B,IAAI,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;AAC7B,gBAAA,IAAI,aAAa,GAAa,UAAU,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC9F,IAAI,GAAG,GAAS,IAAI,IAAI,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;AACvF,gBAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;AAClB,gBAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;;iBACd;AACL,gBAAA,IAAI,aAAa,GAAa,UAAU,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC;gBACpG,IAAI,GAAG,GAAS,IAAI,IAAI,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;AACrF,gBAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;AAClB,gBAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;;;aAEhB;AACL,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AACnB,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;;;IAIxB,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;AACvB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;;uGAnFpB,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA5B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,4BAA4B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAZ5B;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,4BAA4B,CAAC;AAC3D,gBAAA,KAAK,EAAE;AACR,aAAA;YACD,IAAI;AACJ,YAAA,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,kBAAkB,EAAE;AACtD,YAAA,EAAE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,uBAAuB,EAAE;AACjE,YAAA,EAAE,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,4BAA4B;AAC1E,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECtBH,mtCA6BgB,EAAA,MAAA,EAAA,CAAA,mwDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDpBJ,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,SAAA,EAAA,SAAA,EAAA,YAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAe/B,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAjBxC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,uBAAuB,WACxB,CAAC,mBAAmB,EAAE,WAAW,CAAC,EAAA,SAAA,EAGhC;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,kCAAkC,CAAC;AAC3D,4BAAA,KAAK,EAAE;AACR,yBAAA;wBACD,IAAI;AACJ,wBAAA,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,kBAAkB,EAAE;AACtD,wBAAA,EAAE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,uBAAuB,EAAE;AACjE,wBAAA,EAAE,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,4BAA4B;AAC1E,qBAAA,EAAA,QAAA,EAAA,mtCAAA,EAAA,MAAA,EAAA,CAAA,mwDAAA,CAAA,EAAA;sEAOQ,cAAc,EAAA,CAAA;sBAAtB;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBAIG,QAAQ,EAAA,CAAA;sBADX;gBASQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,UAAU,EAAA,CAAA;sBAAlB;gBACQ,MAAM,EAAA,CAAA;sBAAd;gBAUQ,QAAQ,EAAA,CAAA;sBAAhB;;;ME9BU,iCAAiC,CAAA;AAqCxB,IAAA,IAAA;AAnCpB,IAAA,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC;IAC9B,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE;IAEtC,MAAM,GAAyB,IAAI;AACnC,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,MAAM;;IAEpB,IAAI,KAAK,CAAC,GAAyB,EAAA;AACjC,QAAA,IAAI,CAAC,MAAM,GAAG,GAAG;;IAGV,SAAS,GAAkB,IAAI;IAC/B,cAAc,GAAW,CAAC;AAC1B,IAAA,OAAO,GAAa,CAAC,CAAC,CAAC;AAExB,IAAA,SAAS,GAAW,YAAY,CAAC,YAAY,CAAC,EAAE,CAAC;AACzD,IAAA,IACI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,SAAS;;IAEvB,IAAI,QAAQ,CAAC,KAAa,EAAA;AACxB,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;QACtB,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS;;IAG5B,QAAQ,GAAY,IAAI;IACxB,UAAU,GAAW,MAAM;IAC3B,UAAU,GAAW,OAAO;IAC5B,MAAM,GAA4B,IAAI;IACtC,iBAAiB,GAAW,2BAA2B;IAEvD,QAAQ,GAAY,KAAK;AAClC,IAAA,QAAQ,GAAQ,MAAK,GAAI;AACzB,IAAA,SAAS,GAAQ,MAAK,GAAI;AAE1B,IAAA,WAAA,CAAoB,IAAU,EAAA;QAAV,IAAA,CAAA,IAAI,GAAJ,IAAI;QACtB,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC,YAAY,CAAC,EAAE,CAAC;;AAG/C,IAAA,UAAU,CAAC,GAAQ,EAAA;QACjB,IAAI,CAAC,GAAG,EAAE;AACR,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI;YACjB;;QAGF,IAAI,IAAI,GAAS,GAAG;QACpB,IAAI,WAAW,GAAa,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;QACjH,IAAI,CAAC,KAAK,GAAG,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE;;AAEnF,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;;AAEpB,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;;AAErB,IAAA,gBAAgB,CAAE,UAAmB,EAAA;AACnC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU;;AAG5B,IAAA,YAAY,GAAG,CAAC,IAAa,EAAE,OAAyC,KAAK,IAAI,CAAC,KAAK,KAAK,OAAO,EAAE,KAAK;IAC1G,SAAS,GAAG,CAAC,IAAa,KAAK,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAEpF,IAAA,YAAY,CAAC,OAAsC,EAAA;QACjD,IAAI,OAAO,EAAE;AACX,YAAA,IAAI,OAAO,OAAO,IAAI,QAAQ,EAAE;gBAC9B,IAAI,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;AAC7B,gBAAA,IAAI,aAAa,GAAa,UAAU,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC9F,IAAI,GAAG,GAAS,IAAI,IAAI,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;AACvF,gBAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;AAClB,gBAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;;iBACd;AACL,gBAAA,IAAI,aAAa,GAAa,UAAU,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC;gBACpG,IAAI,GAAG,GAAS,IAAI,IAAI,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;AACrF,gBAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;AAClB,gBAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;;;aAEhB;AACL,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AACnB,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;;;IAIxB,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;AACvB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;;uGAtFpB,iCAAiC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAjC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iCAAiC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,MAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAZjC;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,iCAAiC,CAAC;AAChE,gBAAA,KAAK,EAAE;AACR,aAAA;YACD,IAAI;AACJ,YAAA,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,kBAAkB,EAAE;AACtD,YAAA,EAAE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,uBAAuB,EAAE;AACjE,YAAA,EAAE,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,4BAA4B;AAC1E,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECtBH,y1DAwCgB,EAAA,MAAA,EAAA,CAAA,mwDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,ED/BJ,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,SAAA,EAAA,SAAA,EAAA,YAAA,EAAA,aAAA,EAAA,WAAA,EAAA,eAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,UAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,wDAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAe/B,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAjB7C,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,6BAA6B,WAC9B,CAAC,mBAAmB,EAAE,WAAW,CAAC,EAAA,SAAA,EAGhC;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,uCAAuC,CAAC;AAChE,4BAAA,KAAK,EAAE;AACR,yBAAA;wBACD,IAAI;AACJ,wBAAA,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,kBAAkB,EAAE;AACtD,wBAAA,EAAE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,uBAAuB,EAAE;AACjE,wBAAA,EAAE,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,4BAA4B;AAC1E,qBAAA,EAAA,QAAA,EAAA,y1DAAA,EAAA,MAAA,EAAA,CAAA,mwDAAA,CAAA,EAAA;sEAeQ,SAAS,EAAA,CAAA;sBAAjB;gBACQ,cAAc,EAAA,CAAA;sBAAtB;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBAIG,QAAQ,EAAA,CAAA;sBADX;gBASQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,UAAU,EAAA,CAAA;sBAAlB;gBACQ,UAAU,EAAA,CAAA;sBAAlB;gBACQ,MAAM,EAAA,CAAA;sBAAd;gBACQ,iBAAiB,EAAA,CAAA;sBAAzB;gBAEQ,QAAQ,EAAA,CAAA;sBAAhB;;;MEnCU,0BAA0B,CAAA;AAqCjB,IAAA,IAAA;AAnCpB,IAAA,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC;IAC9B,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE;IAEtC,MAAM,GAAyB,IAAI;AACnC,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,MAAM;;IAEpB,IAAI,KAAK,CAAC,GAAyB,EAAA;AACjC,QAAA,IAAI,CAAC,MAAM,GAAG,GAAG;;IAGV,SAAS,GAAkB,IAAI;IAC/B,cAAc,GAAW,CAAC;AAC1B,IAAA,OAAO,GAAa,CAAC,CAAC,EAAE,CAAC,CAAC;AAE3B,IAAA,SAAS,GAAW,YAAY,CAAC,YAAY,CAAC,EAAE,CAAC;AACzD,IAAA,IACI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,SAAS;;IAEvB,IAAI,QAAQ,CAAC,KAAa,EAAA;AACxB,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;QACtB,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS;;IAG5B,QAAQ,GAAY,IAAI;IACxB,UAAU,GAAW,OAAO;IAC5B,UAAU,GAAW,OAAO;IAC5B,MAAM,GAA4B,IAAI;IACtC,iBAAiB,GAAW,2BAA2B;IAEvD,QAAQ,GAAY,KAAK;AAClC,IAAA,QAAQ,GAAQ,MAAK,GAAI;AACzB,IAAA,SAAS,GAAQ,MAAK,GAAI;AAE1B,IAAA,WAAA,CAAoB,IAAU,EAAA;QAAV,IAAA,CAAA,IAAI,GAAJ,IAAI;;AAExB,IAAA,UAAU,CAAC,GAAQ,EAAA;QACjB,IAAI,CAAC,GAAG,EAAE;AACR,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI;YACjB;;QAGF,IAAI,IAAI,GAAS,GAAG;AACpB,QAAA,IAAI,CAAC,KAAK,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE;;AAE9F,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;;AAEpB,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;;AAErB,IAAA,gBAAgB,CAAE,UAAmB,EAAA;AACnC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU;;AAG5B,IAAA,YAAY,GAAG,CAAC,IAAa,EAAE,OAAyC,KAAK,IAAI,CAAC,KAAK,KAAK,OAAO,EAAE,KAAK;IAC1G,SAAS,GAAG,CAAC,IAAa,KAAK,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAEpF,IAAA,YAAY,CAAC,OAAsC,EAAA;QACjD,IAAI,OAAO,EAAE;AACX,YAAA,IAAI,OAAO,OAAO,IAAI,QAAQ,EAAE;gBAC9B,IAAI,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;gBAC7B,IAAI,GAAG,GAAS,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC5D,gBAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;AAClB,gBAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;;iBACd;AACL,gBAAA,IAAI,GAAG,GAAS,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,GAAG,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC;AACtE,gBAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;AAClB,gBAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;;;aAEhB;AACL,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AACnB,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;;;IAIxB,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;AACvB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;;uGAjFpB,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA1B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,MAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAX1B;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,0BAA0B,CAAC;AACzD,gBAAA,KAAK,EAAE;AACR,aAAA;YACD,IAAI;AACJ,YAAA,EAAE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,uBAAuB,EAAE;AACjE,YAAA,EAAE,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,4BAA4B;AAC1E,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECpBH,y1DAwCgB,EAAA,MAAA,EAAA,CAAA,mwDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDhCJ,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,SAAA,EAAA,SAAA,EAAA,YAAA,EAAA,aAAA,EAAA,WAAA,EAAA,eAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,UAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,wDAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAc/B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAhBtC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,WACtB,CAAC,mBAAmB,EAAE,WAAW,CAAC,EAAA,SAAA,EAGhC;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,gCAAgC,CAAC;AACzD,4BAAA,KAAK,EAAE;AACR,yBAAA;wBACD,IAAI;AACJ,wBAAA,EAAE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,uBAAuB,EAAE;AACjE,wBAAA,EAAE,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,4BAA4B;AAC1E,qBAAA,EAAA,QAAA,EAAA,y1DAAA,EAAA,MAAA,EAAA,CAAA,mwDAAA,CAAA,EAAA;sEAeQ,SAAS,EAAA,CAAA;sBAAjB;gBACQ,cAAc,EAAA,CAAA;sBAAtB;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBAIG,QAAQ,EAAA,CAAA;sBADX;gBASQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,UAAU,EAAA,CAAA;sBAAlB;gBACQ,UAAU,EAAA,CAAA;sBAAlB;gBACQ,MAAM,EAAA,CAAA;sBAAd;gBACQ,iBAAiB,EAAA,CAAA;sBAAzB;gBAEQ,QAAQ,EAAA,CAAA;sBAAhB;;;ME/BU,sCAAsC,CAAA;AA6C7B,IAAA,IAAA;AA3CpB,IAAA,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC;AAC9B,IAAA,SAAS,GAAG,MAAM,CAAC,sBAAsB,CAAC;IAC1C,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE;AAEtC,IAAA,IAAI;IAEJ,WAAW,GAAmB,IAAI;IAClC,SAAS,GAAmB,IAAI;IAChC,IAAI,QAAQ,KAAqB,OAAO,IAAI,CAAC,SAAS,CAAC;IACvD,IAAI,QAAQ,CAAC,KAAqB,EAAA;AAChC,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;;IAGxB,OAAO,GAAmB,IAAI;IAC9B,IAAI,MAAM,KAAqB,OAAO,IAAI,CAAC,OAAO,CAAC;IACnD,IAAI,MAAM,CAAC,KAAqB,EAAA;AAC9B,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK;;IAGb,SAAS,GAAkB,IAAI;IAC/B,cAAc,GAAW,CAAC;AAC1B,IAAA,OAAO,GAAa,CAAC,CAAC,CAAC;AAExB,IAAA,SAAS,GAAW,YAAY,CAAC,YAAY,CAAC,EAAE,CAAC;AACzD,IAAA,IACI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,SAAS;;IAEvB,IAAI,QAAQ,CAAC,KAAa,EAAA;AACxB,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;QACtB,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS;;IAG5B,QAAQ,GAAY,IAAI;IACxB,UAAU,GAAW,MAAM;IAC3B,UAAU,GAAW,OAAO;IAC5B,MAAM,GAA4B,IAAI;IACtC,iBAAiB,GAAW,2BAA2B;IAEvD,QAAQ,GAAY,KAAK;AAClC,IAAA,QAAQ,GAAQ,MAAK,GAAI;AACzB,IAAA,SAAS,GAAQ,MAAK,GAAI;AAE1B,IAAA,WAAA,CAAoB,IAAU,EAAA;QAAV,IAAA,CAAA,IAAI,GAAJ,IAAI;QACtB,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC,YAAY,CAAC,EAAE,CAAC;;AAG/C,IAAA,UAAU,CAAC,GAAQ,EAAA;QACjB,IAAI,CAAC,GAAG,EAAE;AACR,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;AACpB,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI;YAClB;;AAGF,QAAA,IAAI,KAAK,GAAS,GAAG,CAAC,QAAQ;QAC9B,IAAI,WAAW,GAAa,UAAU,CAAC,iBAAiB,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;QACpH,IAAI,CAAC,QAAQ,GAAY,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE;AAE7F,QAAA,IAAI,KAAK,GAAS,GAAG,CAAC,MAAM;QAC5B,WAAW,GAAG,UAAU,CAAC,iBAAiB,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;QACtG,IAAI,CAAC,MAAM,GAAY,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE;;AAE7F,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;;AAEpB,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;;AAErB,IAAA,gBAAgB,CAAE,UAAmB,EAAA;AACnC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU;;AAG5B,IAAA,eAAe,CAAC,IAAa,EAAA;QAC3B,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAClC,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;;aACf,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;AAC7E,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI;;aACb;AACL,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI;AAClB,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;;QAGtB,IAAI,CAAC,YAAY,EAAE;;AAGrB,IAAA,SAAS,CAAC,IAAa,EAAA;AACrB,QAAA,QACE,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;;AAInH,IAAA,QAAQ,CAAC,IAAa,EAAA;QACpB,OAAO,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;;AAG7E,IAAA,OAAO,CAAC,IAAa,EAAA;QACnB,QACE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC1B,aAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACzC,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AACnB,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;;AAIxB,IAAA,YAAY,GAAG,CAAC,IAAa,EAAE,OAAyC,KAAK,IAAI,CAAC,KAAK,KAAK,OAAO,EAAE,KAAK;IAC1G,SAAS,GAAG,CAAC,IAAa,KAAK,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAEpF,aAAa,CAAC,YAA4B,EAAE,KAAa,EAAA;QACvD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC;AAC1C,QAAA,OAAO,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,YAAY;;IAGpG,YAAY,GAAA;QACV,IAAI,KAAK,GAAc,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;AAEvD,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,iBAAiB,GAAa,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;YAC1H,KAAK,CAAC,QAAQ,GAAG,IAAI,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;;AAGjG,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI,eAAe,GAAa,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;YAClH,KAAK,CAAC,MAAM,GAAG,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;;AAGzF,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AACpB,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;;IAGvB,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK;AAC1B,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK;QACxB,IAAI,CAAC,YAAY,EAAE;;uGAtIV,sCAAsC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAtC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sCAAsC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mCAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,MAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAZtC;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,sCAAsC,CAAC;AACrE,gBAAA,KAAK,EAAE;AACR,aAAA;YACD,IAAI;AACJ,YAAA,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,kBAAkB,EAAE;AACtD,YAAA,EAAE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,uBAAuB,EAAE;AACjE,YAAA,EAAE,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,4BAA4B;AAC1E,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECtBH,mnGA4DoB,EAAA,MAAA,EAAA,CAAA,q6DAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDnDR,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,SAAA,EAAA,SAAA,EAAA,YAAA,EAAA,aAAA,EAAA,WAAA,EAAA,eAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,UAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,wDAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAe/B,sCAAsC,EAAA,UAAA,EAAA,CAAA;kBAjBlD,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mCAAmC,WACpC,CAAC,mBAAmB,EAAE,WAAW,CAAC,EAAA,SAAA,EAGhC;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,4CAA4C,CAAC;AACrE,4BAAA,KAAK,EAAE;AACR,yBAAA;wBACD,IAAI;AACJ,wBAAA,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,kBAAkB,EAAE;AACtD,wBAAA,EAAE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,uBAAuB,EAAE;AACjE,wBAAA,EAAE,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,4BAA4B;AAC1E,qBAAA,EAAA,QAAA,EAAA,mnGAAA,EAAA,MAAA,EAAA,CAAA,q6DAAA,CAAA,EAAA;sEAuBQ,SAAS,EAAA,CAAA;sBAAjB;gBACQ,cAAc,EAAA,CAAA;sBAAtB;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBAIG,QAAQ,EAAA,CAAA;sBADX;gBASQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,UAAU,EAAA,CAAA;sBAAlB;gBACQ,UAAU,EAAA,CAAA;sBAAlB;gBACQ,MAAM,EAAA,CAAA;sBAAd;gBACQ,iBAAiB,EAAA,CAAA;sBAAzB;gBAEQ,QAAQ,EAAA,CAAA;sBAAhB;;;ME1CU,+BAA+B,CAAA;AA4CtB,IAAA,IAAA;AA1CpB,IAAA,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC;AAC9B,IAAA,SAAS,GAAG,MAAM,CAAC,sBAAsB,CAAC;IAC1C,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE;IAEtC,WAAW,GAAmB,IAAI;IAElC,SAAS,GAAmB,IAAI;IAChC,IAAI,QAAQ,KAAqB,OAAO,IAAI,CAAC,SAAS,CAAC;IACvD,IAAI,QAAQ,CAAC,KAAqB,EAAA;AAChC,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;;IAGxB,OAAO,GAAmB,IAAI;IAC9B,IAAI,MAAM,KAAqB,OAAO,IAAI,CAAC,OAAO,CAAC;IACnD,IAAI,MAAM,CAAC,KAAqB,EAAA;AAC9B,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK;;IAGb,SAAS,GAAkB,IAAI;IAC/B,cAAc,GAAW,CAAC;AAC1B,IAAA,OAAO,GAAa,CAAC,CAAC,EAAE,CAAC,CAAC;AAE3B,IAAA,SAAS,GAAW,YAAY,CAAC,YAAY,CAAC,EAAE,CAAC;AACzD,IAAA,IACI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,SAAS;;IAEvB,IAAI,QAAQ,CAAC,KAAa,EAAA;AACxB,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;QACtB,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS;;IAG5B,QAAQ,GAAY,IAAI;IACxB,UAAU,GAAW,OAAO;IAC5B,UAAU,GAAW,OAAO;IAC5B,MAAM,GAA4B,IAAI;IACtC,iBAAiB,GAAW,2BAA2B;IAEvD,QAAQ,GAAY,KAAK;AAClC,IAAA,QAAQ,GAAQ,MAAK,GAAI;AACzB,IAAA,SAAS,GAAQ,MAAK,GAAI;AAE1B,IAAA,WAAA,CAAoB,IAAU,EAAA;QAAV,IAAA,CAAA,IAAI,GAAJ,IAAI;;AAExB,IAAA,UAAU,CAAC,GAAQ,EAAA;QACjB,IAAI,CAAC,GAAG,EAAE;AACR,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;AACpB,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI;YAClB;;QAGF,IAAI,CAAC,GAAc,GAAG;AAEtB,QAAA,IAAI,KAAK,GAAS,CAAC,CAAC,QAAS;AAC7B,QAAA,IAAI,CAAC,QAAQ,GAAY,EAAE,IAAI,EAAE,KAAK,CAAC,WAAW,EAAE,EAAE,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE;AAE3G,QAAA,IAAI,KAAK,GAAS,CAAC,CAAC,MAAO;AAC3B,QAAA,IAAI,CAAC,MAAM,GAAY,EAAE,IAAI,EAAE,KAAK,CAAC,WAAW,EAAE,EAAE,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE;;AAE3G,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;;AAEpB,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;;AAErB,IAAA,gBAAgB,CAAE,UAAmB,EAAA;AACnC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU;;AAG5B,IAAA,eAAe,CAAC,IAAa,EAAA;QAC3B,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAClC,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;;aACf,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;AAC7E,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI;;aACb;AACL,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI;AAClB,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;;QAGtB,IAAI,CAAC,YAAY,EAAE;;AAGrB,IAAA,SAAS,CAAC,IAAa,EAAA;AACrB,QAAA,QACE,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;;AAInH,IAAA,QAAQ,CAAC,IAAa,EAAA;QACpB,OAAO,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;;AAG7E,IAAA,OAAO,CAAC,IAAa,EAAA;QACnB,QACE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC1B,aAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACzC,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AACnB,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;;AAIxB,IAAA,YAAY,GAAG,CAAC,IAAa,EAAE,OAAyC,KAAK,IAAI,CAAC,KAAK,KAAK,OAAO,EAAE,KAAK;IAC1G,SAAS,GAAG,CAAC,IAAa,KAAK,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAEpF,aAAa,CAAC,YAA4B,EAAE,KAAa,EAAA;QACvD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC;AAC1C,QAAA,OAAO,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,YAAY;;IAGpG,YAAY,GAAA;AACV,QAAA,MAAM,YAAY,GAAgB,IAAI,CAAC,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI;AACjI,QAAA,MAAM,UAAU,GAAgB,IAAI,CAAC,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI;QACvH,MAAM,GAAG,GAAc,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE;AACrE,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;AAClB,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;;IAGrB,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK;AAC1B,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK;QACxB,IAAI,CAAC,YAAY,EAAE;;uGA1HV,+BAA+B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA/B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,+BAA+B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,MAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAX/B;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,+BAA+B,CAAC;AAC9D,gBAAA,KAAK,EAAE;AACR,aAAA;YACD,IAAI;AACJ,YAAA,EAAE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,uBAAuB,EAAE;AACjE,YAAA,EAAE,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,4BAA4B;AAC1E,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECrBH,mnGA4DoB,EAAA,MAAA,EAAA,CAAA,q6DAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDnDR,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,SAAA,EAAA,SAAA,EAAA,YAAA,EAAA,aAAA,EAAA,WAAA,EAAA,eAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,UAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,wDAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAc/B,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAhB3C,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,2BAA2B,WAC5B,CAAC,mBAAmB,EAAE,WAAW,CAAC,EAAA,SAAA,EAGhC;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,qCAAqC,CAAC;AAC9D,4BAAA,KAAK,EAAE;AACR,yBAAA;wBACD,IAAI;AACJ,wBAAA,EAAE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,uBAAuB,EAAE;AACjE,wBAAA,EAAE,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,4BAA4B;AAC1E,qBAAA,EAAA,QAAA,EAAA,mnGAAA,EAAA,MAAA,EAAA,CAAA,q6DAAA,CAAA,EAAA;sEAsBQ,SAAS,EAAA,CAAA;sBAAjB;gBACQ,cAAc,EAAA,CAAA;sBAAtB;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBAIG,QAAQ,EAAA,CAAA;sBADX;gBASQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,UAAU,EAAA,CAAA;sBAAlB;gBACQ,UAAU,EAAA,CAAA;sBAAlB;gBACQ,MAAM,EAAA,CAAA;sBAAd;gBACQ,iBAAiB,EAAA,CAAA;sBAAzB;gBAEQ,QAAQ,EAAA,CAAA;sBAAhB;;;AE/DH;;AAEG;;ACFH;;AAEG;;;;"}
@@ -177,7 +177,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.5", ngImpor
177
177
  }] } });
178
178
 
179
179
  /*
180
- * Public API Surface of ys-select
180
+ * Public API Surface of ys-file-upload
181
181
  */
182
182
 
183
183
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"yoozsoft-yoozsoft-ng-file-upload.mjs","sources":["../../../../projects/yoozsoft/yoozsoft-ng/file-upload/src/ys-file-upload/ys-file-upload.component.ts","../../../../projects/yoozsoft/yoozsoft-ng/file-upload/src/ys-file-upload/ys-file-upload.component.html","../../../../projects/yoozsoft/yoozsoft-ng/file-upload/public-api.ts","../../../../projects/yoozsoft/yoozsoft-ng/file-upload/yoozsoft-yoozsoft-ng-file-upload.ts"],"sourcesContent":["import { NgClass } from '@angular/common';\r\nimport { Component, EventEmitter, forwardRef, Input, Output } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'ys-file-upload',\r\n imports: [NgClass],\r\n templateUrl: './ys-file-upload.component.html',\r\n styleUrl: './ys-file-upload.component.scss',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => YsFileUploadComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class YsFileUploadComponent implements ControlValueAccessor {\r\n\r\n private fileList?: FileList;\r\n files: File[] = [];\r\n selectedFile: File | null = null;\r\n\r\n @Input() styleClass?: string;\r\n /**\r\n * Allowing upload multiple files\r\n * Default is false\r\n */\r\n @Input() multiple: boolean = false;\r\n /**\r\n * Acceptable type of files\r\n * Default is all file type\r\n */\r\n @Input() accept: string = '*/*';\r\n /**\r\n * Upload button label\r\n * Default is Choose File\r\n */\r\n @Input() uploadLabel?: string = 'Choose File';\r\n /**Style class of upload button */\r\n @Input() uploadStyleClass?: string = 'btn-primary';\r\n /**Icon class of upload button */\r\n @Input() uploadIconClass: string = 'fa fa-paperclip';\r\n\r\n /**Display choosed file remove button */\r\n @Input() isRemove: boolean = true;\r\n /**Icon of remove item button */\r\n @Input() removeIconClass: string = 'fa fa-times';\r\n\r\n /**\r\n * Files list display direction\r\n * Default is vertical (false)\r\n */\r\n @Input() isHorizontal: boolean = false;\r\n\r\n /**Message displayed before choosing file */\r\n @Input() noFileMessage: string = \"No file chosen\";\r\n\r\n @Input() progressStyleClass?: string;\r\n /**Value of progress element */\r\n @Input() progressValue?: number;\r\n /**Max value of progress element */\r\n @Input() progressValueMax: number = 100;\r\n /**Display cancel upload button */\r\n @Input() isCancel: boolean = false;\r\n\r\n /**Event to get choosed files */\r\n @Output() choosed: EventEmitter<File[]> = new EventEmitter();\r\n /**Event of selected file in the list of choosed file*/\r\n @Output() select: EventEmitter<File | null> = new EventEmitter();\r\n /**Event of removed file in the list of choosed file*/\r\n @Output() removed: EventEmitter<File> = new EventEmitter();\r\n /**Event of cancel upload button */\r\n @Output() cancel: EventEmitter<void> = new EventEmitter();\r\n\r\n /**Disable elements */\r\n @Input() disabled: boolean = false;\r\n onChange: any = () => { }\r\n onTouched: any = () => { }\r\n\r\n constructor() { }\r\n\r\n writeValue(obj: any): void {\r\n if (!obj) {\r\n this.files = [];\r\n return;\r\n }\r\n\r\n if (!Array.isArray(obj)) {\r\n this.files = [obj];\r\n return;\r\n }\r\n\r\n this.files = obj;\r\n }\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n onChangeFiles(event: any) {\r\n this.fileList = event.target.files;\r\n\r\n if (this.fileList?.length) {\r\n\r\n if (!this.multiple) {\r\n this.files = [];\r\n }\r\n\r\n for (let i = 0; i < this.fileList.length; i++) {\r\n const file: File = this.fileList.item(i)!;\r\n this.files.push(file);\r\n }\r\n\r\n this.files.sort((a, b) => a.name > b.name ? -1 : 1);\r\n\r\n } else {\r\n this.files = [];\r\n }\r\n\r\n this.onChange(this.files);\r\n this.onTouched(this.files);\r\n\r\n this.choosed.emit(this.files);\r\n\r\n event.target.value = null;\r\n\r\n }\r\n\r\n removeFile(file: File) {\r\n const index = this.files.indexOf(file);\r\n this.files.splice(index, 1);\r\n\r\n // this.onChange(this.multiple ? this.files : this.files[0]);\r\n this.onChange(this.files);\r\n this.onTouched(this.files);\r\n\r\n // this.choosed.emit(this.files);\r\n\r\n if (this.selectedFile == file) {\r\n this.selectedFile = null;\r\n // this.select.emit(null);\r\n }\r\n\r\n this.removed.emit(file);\r\n }\r\n\r\n onSelectFile(file: File) {\r\n this.selectedFile = file;\r\n this.select.emit(this.selectedFile);\r\n }\r\n\r\n cancelUpload() {\r\n this.cancel.emit();\r\n }\r\n\r\n}\r\n","<input class=\"form-control d-none file-upload\" type=\"file\" id=\"ysFileUpload\" #ysFileUpload [multiple]=\"multiple\"\r\n [accept]=\"accept\" [disabled]=\"disabled\" (change)=\"onChangeFiles($event)\">\r\n\r\n <div class=\"file-upload\" [ngClass]=\"styleClass\">\r\n <div class=\"row\">\r\n <div class=\"col\">\r\n <button class=\"btn btn-upload\" [ngClass]=\"uploadStyleClass\" (click)=\"ysFileUpload.click()\"\r\n [disabled]=\"disabled\">\r\n <i [ngClass]=\"uploadIconClass\"></i>\r\n @if (uploadLabel) {\r\n <span class=\"ms-2\">{{uploadLabel}}</span>\r\n }\r\n </button>\r\n\r\n @if (noFileMessage) {\r\n <span class=\"ms-2\">{{files.length ? '' : noFileMessage}}</span>\r\n }\r\n\r\n @if (files.length) {\r\n <ul class=\"file-upload-list list-group mt-2\"\r\n [ngClass]=\"{'list-group-horizontal overflow-auto': isHorizontal}\">\r\n @for (file of files; track file) {\r\n <a class=\"file-upload-item list-group-item d-flex align-items-center\" role=\"button\"\r\n (click)=\"onSelectFile(file)\"\r\n [ngClass]=\"{'active': file == selectedFile, 'disabled': disabled}\">\r\n <span class=\"me-2\">{{file.name}}</span>\r\n @if (isRemove) {\r\n <button class=\"btn btn-outline-danger btn-sm ms-auto\" type=\"button\"\r\n id=\"removeFileButton\" (click)=\"removeFile(file); $event.stopPropagation();\"\r\n [disabled]=\"disabled\">\r\n <i [ngClass]=\"removeIconClass\"></i>\r\n </button>\r\n }\r\n </a>\r\n }\r\n </ul>\r\n }\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n @if (progressValue) {\r\n <div class=\"progress mt-2\" [ngClass]=\"progressStyleClass\">\r\n <div class=\"progress-bar\" role=\"progressbar\" [style.width.%]=\"progressValue\" [attr.aria-valuenow]=\"progressValue\"\r\n aria-valuemin=\"0\" [attr.aria-valuemax]=\"progressValueMax\"></div>\r\n @if (isCancel && progressValue < progressValueMax) {\r\n <button class=\"btn btn-danger btn-sm btn-upload-cancel d-flex\"\r\n (click)=\"cancelUpload()\">\r\n <i class=\"fa fa-times\"></i>\r\n </button>\r\n }\r\n </div>\r\n }","/*\r\n * Public API Surface of ys-select\r\n */\r\n\r\nexport * from './src/ys-file-upload/ys-file-upload.component';\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"yoozsoft-yoozsoft-ng-file-upload.mjs","sources":["../../../../projects/yoozsoft/yoozsoft-ng/file-upload/src/ys-file-upload/ys-file-upload.component.ts","../../../../projects/yoozsoft/yoozsoft-ng/file-upload/src/ys-file-upload/ys-file-upload.component.html","../../../../projects/yoozsoft/yoozsoft-ng/file-upload/public-api.ts","../../../../projects/yoozsoft/yoozsoft-ng/file-upload/yoozsoft-yoozsoft-ng-file-upload.ts"],"sourcesContent":["import { NgClass } from '@angular/common';\r\nimport { Component, EventEmitter, forwardRef, Input, Output } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'ys-file-upload',\r\n imports: [NgClass],\r\n templateUrl: './ys-file-upload.component.html',\r\n styleUrl: './ys-file-upload.component.scss',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => YsFileUploadComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class YsFileUploadComponent implements ControlValueAccessor {\r\n\r\n private fileList?: FileList;\r\n files: File[] = [];\r\n selectedFile: File | null = null;\r\n\r\n @Input() styleClass?: string;\r\n /**\r\n * Allowing upload multiple files\r\n * Default is false\r\n */\r\n @Input() multiple: boolean = false;\r\n /**\r\n * Acceptable type of files\r\n * Default is all file type\r\n */\r\n @Input() accept: string = '*/*';\r\n /**\r\n * Upload button label\r\n * Default is Choose File\r\n */\r\n @Input() uploadLabel?: string = 'Choose File';\r\n /**Style class of upload button */\r\n @Input() uploadStyleClass?: string = 'btn-primary';\r\n /**Icon class of upload button */\r\n @Input() uploadIconClass: string = 'fa fa-paperclip';\r\n\r\n /**Display choosed file remove button */\r\n @Input() isRemove: boolean = true;\r\n /**Icon of remove item button */\r\n @Input() removeIconClass: string = 'fa fa-times';\r\n\r\n /**\r\n * Files list display direction\r\n * Default is vertical (false)\r\n */\r\n @Input() isHorizontal: boolean = false;\r\n\r\n /**Message displayed before choosing file */\r\n @Input() noFileMessage: string = \"No file chosen\";\r\n\r\n @Input() progressStyleClass?: string;\r\n /**Value of progress element */\r\n @Input() progressValue?: number;\r\n /**Max value of progress element */\r\n @Input() progressValueMax: number = 100;\r\n /**Display cancel upload button */\r\n @Input() isCancel: boolean = false;\r\n\r\n /**Event to get choosed files */\r\n @Output() choosed: EventEmitter<File[]> = new EventEmitter();\r\n /**Event of selected file in the list of choosed file*/\r\n @Output() select: EventEmitter<File | null> = new EventEmitter();\r\n /**Event of removed file in the list of choosed file*/\r\n @Output() removed: EventEmitter<File> = new EventEmitter();\r\n /**Event of cancel upload button */\r\n @Output() cancel: EventEmitter<void> = new EventEmitter();\r\n\r\n /**Disable elements */\r\n @Input() disabled: boolean = false;\r\n onChange: any = () => { }\r\n onTouched: any = () => { }\r\n\r\n constructor() { }\r\n\r\n writeValue(obj: any): void {\r\n if (!obj) {\r\n this.files = [];\r\n return;\r\n }\r\n\r\n if (!Array.isArray(obj)) {\r\n this.files = [obj];\r\n return;\r\n }\r\n\r\n this.files = obj;\r\n }\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n onChangeFiles(event: any) {\r\n this.fileList = event.target.files;\r\n\r\n if (this.fileList?.length) {\r\n\r\n if (!this.multiple) {\r\n this.files = [];\r\n }\r\n\r\n for (let i = 0; i < this.fileList.length; i++) {\r\n const file: File = this.fileList.item(i)!;\r\n this.files.push(file);\r\n }\r\n\r\n this.files.sort((a, b) => a.name > b.name ? -1 : 1);\r\n\r\n } else {\r\n this.files = [];\r\n }\r\n\r\n this.onChange(this.files);\r\n this.onTouched(this.files);\r\n\r\n this.choosed.emit(this.files);\r\n\r\n event.target.value = null;\r\n\r\n }\r\n\r\n removeFile(file: File) {\r\n const index = this.files.indexOf(file);\r\n this.files.splice(index, 1);\r\n\r\n // this.onChange(this.multiple ? this.files : this.files[0]);\r\n this.onChange(this.files);\r\n this.onTouched(this.files);\r\n\r\n // this.choosed.emit(this.files);\r\n\r\n if (this.selectedFile == file) {\r\n this.selectedFile = null;\r\n // this.select.emit(null);\r\n }\r\n\r\n this.removed.emit(file);\r\n }\r\n\r\n onSelectFile(file: File) {\r\n this.selectedFile = file;\r\n this.select.emit(this.selectedFile);\r\n }\r\n\r\n cancelUpload() {\r\n this.cancel.emit();\r\n }\r\n\r\n}\r\n","<input class=\"form-control d-none file-upload\" type=\"file\" id=\"ysFileUpload\" #ysFileUpload [multiple]=\"multiple\"\r\n [accept]=\"accept\" [disabled]=\"disabled\" (change)=\"onChangeFiles($event)\">\r\n\r\n <div class=\"file-upload\" [ngClass]=\"styleClass\">\r\n <div class=\"row\">\r\n <div class=\"col\">\r\n <button class=\"btn btn-upload\" [ngClass]=\"uploadStyleClass\" (click)=\"ysFileUpload.click()\"\r\n [disabled]=\"disabled\">\r\n <i [ngClass]=\"uploadIconClass\"></i>\r\n @if (uploadLabel) {\r\n <span class=\"ms-2\">{{uploadLabel}}</span>\r\n }\r\n </button>\r\n\r\n @if (noFileMessage) {\r\n <span class=\"ms-2\">{{files.length ? '' : noFileMessage}}</span>\r\n }\r\n\r\n @if (files.length) {\r\n <ul class=\"file-upload-list list-group mt-2\"\r\n [ngClass]=\"{'list-group-horizontal overflow-auto': isHorizontal}\">\r\n @for (file of files; track file) {\r\n <a class=\"file-upload-item list-group-item d-flex align-items-center\" role=\"button\"\r\n (click)=\"onSelectFile(file)\"\r\n [ngClass]=\"{'active': file == selectedFile, 'disabled': disabled}\">\r\n <span class=\"me-2\">{{file.name}}</span>\r\n @if (isRemove) {\r\n <button class=\"btn btn-outline-danger btn-sm ms-auto\" type=\"button\"\r\n id=\"removeFileButton\" (click)=\"removeFile(file); $event.stopPropagation();\"\r\n [disabled]=\"disabled\">\r\n <i [ngClass]=\"removeIconClass\"></i>\r\n </button>\r\n }\r\n </a>\r\n }\r\n </ul>\r\n }\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n @if (progressValue) {\r\n <div class=\"progress mt-2\" [ngClass]=\"progressStyleClass\">\r\n <div class=\"progress-bar\" role=\"progressbar\" [style.width.%]=\"progressValue\" [attr.aria-valuenow]=\"progressValue\"\r\n aria-valuemin=\"0\" [attr.aria-valuemax]=\"progressValueMax\"></div>\r\n @if (isCancel && progressValue < progressValueMax) {\r\n <button class=\"btn btn-danger btn-sm btn-upload-cancel d-flex\"\r\n (click)=\"cancelUpload()\">\r\n <i class=\"fa fa-times\"></i>\r\n </button>\r\n }\r\n </div>\r\n }","/*\r\n * Public API Surface of ys-file-upload\r\n */\r\n\r\nexport * from './src/ys-file-upload/ys-file-upload.component';\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -9,11 +9,11 @@ class YsFooterComponent {
9
9
  copyright = null;
10
10
  socialNetworks = [];
11
11
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: YsFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
12
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.5", type: YsFooterComponent, isStandalone: true, selector: "ys-footer", inputs: { styleClass: "styleClass", brand: "brand", copyright: "copyright", socialNetworks: "socialNetworks" }, ngImport: i0, template: "<!-- https://colorlib.com/wp/template/bootstrap-footer-19/ -->\n<footer [ngClass]=\"styleClass\">\n <!-- <div class=\"row\">\n <div class=\"col-md-6 col-lg-3 mb-md-0 mb-4\">\n <h2 class=\"footer-heading d-flex\">\n <span class=\"icon d-flex align-items-center justify-content-center\"><i class=\"ion-logo-ionic\"></i></span>\n About\n </h2>\n <div class=\"block-23 mb-3\">\n <ul>\n <li><span class=\"icon ion-ios-pin\"></span><span class=\"text\">203 Fake St. Mountain View, San\n Francisco, California, USA</span></li>\n <li><a href=\"#\"><span class=\"icon ion-ios-call\"></span><span class=\"text\">+2 392 3929 210</span></a>\n </li>\n <li><a href=\"#\"><span class=\"icon ion-ios-send\"></span><span\n class=\"text\">support&#64;yourdomain.com</span></a></li>\n </ul>\n </div>\n\n <form action=\"#\" class=\"subscribe-form\">\n <div class=\"input-group d-flex\">\n <input type=\"text\" class=\"form-control\" placeholder=\"Enter email address\">\n <button type=\"submit\" class=\"btn btn-info\">\n <span class=\"sr-only\">Submit</span>\n <i class=\"fa fa-paper-plane\"></i></button>\n </div>\n </form>\n </div>\n\n </div> -->\n <div class=\"row\">\n <div class=\"col\">\n <div class=\"d-flex justify-content-between align-items-center py-3 my-4 border-top\">\n @if (brand || copyright) {\n <div class=\"d-flex align-items-center\">\n @if (brand) {\n <a href=\"{{brand.href}}\" class=\"px-2 text-muted text-decoration-none\">\n <img src=\"{{brand.src}}\" alt=\"{{brand.alt}}\" class=\"brand-logo d-inline-block align-text-top\">\n </a>\n }\n @if (copyright) {\n <span class=\"text-muted\">{{copyright}}</span>\n }\n </div>\n }\n\n @if (socialNetworks.length) {\n <ul class=\"nav\">\n @for (item of socialNetworks; track item) {\n <li class=\"px-2\">\n <a class=\"text-muted social-icon\" href=\"{{item.href}}\" [ngbTooltip]=\"item.tooltip\">\n <em class=\"{{item.iconClass}}\"></em>\n </a>\n </li>\n }\n </ul>\n }\n </div>\n </div>\n </div>\n</footer>", styles: [".social-icon:hover{color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity, 1))!important}.brand-logo{width:30px;height:30px}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "popperOptions", "triggers", "positionTarget", "container", "disableTooltip", "tooltipClass", "tooltipContext", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }] });
12
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.5", type: YsFooterComponent, isStandalone: true, selector: "ys-footer", inputs: { styleClass: "styleClass", brand: "brand", copyright: "copyright", socialNetworks: "socialNetworks" }, ngImport: i0, template: "<!-- https://colorlib.com/wp/template/bootstrap-footer-19/ -->\r\n<footer [ngClass]=\"styleClass\">\r\n <!-- <div class=\"row\">\r\n <div class=\"col-md-6 col-lg-3 mb-md-0 mb-4\">\r\n <h2 class=\"footer-heading d-flex\">\r\n <span class=\"icon d-flex align-items-center justify-content-center\"><i class=\"ion-logo-ionic\"></i></span>\r\n About\r\n </h2>\r\n <div class=\"block-23 mb-3\">\r\n <ul>\r\n <li><span class=\"icon ion-ios-pin\"></span><span class=\"text\">203 Fake St. Mountain View, San\r\n Francisco, California, USA</span></li>\r\n <li><a href=\"#\"><span class=\"icon ion-ios-call\"></span><span class=\"text\">+2 392 3929 210</span></a>\r\n </li>\r\n <li><a href=\"#\"><span class=\"icon ion-ios-send\"></span><span\r\n class=\"text\">support&#64;yourdomain.com</span></a></li>\r\n </ul>\r\n </div>\r\n\r\n <form action=\"#\" class=\"subscribe-form\">\r\n <div class=\"input-group d-flex\">\r\n <input type=\"text\" class=\"form-control\" placeholder=\"Enter email address\">\r\n <button type=\"submit\" class=\"btn btn-info\">\r\n <span class=\"sr-only\">Submit</span>\r\n <i class=\"fa fa-paper-plane\"></i></button>\r\n </div>\r\n </form>\r\n </div>\r\n\r\n </div> -->\r\n <div class=\"row\">\r\n <div class=\"col\">\r\n <div class=\"d-flex justify-content-between align-items-center py-3 my-4 border-top\">\r\n @if (brand || copyright) {\r\n <div class=\"d-flex align-items-center\">\r\n @if (brand) {\r\n <a href=\"{{brand.href}}\" class=\"px-2 text-muted text-decoration-none\">\r\n <img src=\"{{brand.src}}\" alt=\"{{brand.alt}}\" class=\"brand-logo d-inline-block align-text-top\">\r\n </a>\r\n }\r\n @if (copyright) {\r\n <span class=\"text-muted\">{{copyright}}</span>\r\n }\r\n </div>\r\n }\r\n\r\n @if (socialNetworks.length) {\r\n <ul class=\"nav\">\r\n @for (item of socialNetworks; track item) {\r\n <li class=\"px-2\">\r\n <a class=\"text-muted social-icon\" href=\"{{item.href}}\" [ngbTooltip]=\"item.tooltip\">\r\n <em class=\"{{item.iconClass}}\"></em>\r\n </a>\r\n </li>\r\n }\r\n </ul>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n</footer>", styles: [".social-icon:hover{color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity, 1))!important}.brand-logo{width:30px;height:30px}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "popperOptions", "triggers", "positionTarget", "container", "disableTooltip", "tooltipClass", "tooltipContext", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }] });
13
13
  }
14
14
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: YsFooterComponent, decorators: [{
15
15
  type: Component,
16
- args: [{ selector: 'ys-footer', imports: [NgClass, NgbTooltip], template: "<!-- https://colorlib.com/wp/template/bootstrap-footer-19/ -->\n<footer [ngClass]=\"styleClass\">\n <!-- <div class=\"row\">\n <div class=\"col-md-6 col-lg-3 mb-md-0 mb-4\">\n <h2 class=\"footer-heading d-flex\">\n <span class=\"icon d-flex align-items-center justify-content-center\"><i class=\"ion-logo-ionic\"></i></span>\n About\n </h2>\n <div class=\"block-23 mb-3\">\n <ul>\n <li><span class=\"icon ion-ios-pin\"></span><span class=\"text\">203 Fake St. Mountain View, San\n Francisco, California, USA</span></li>\n <li><a href=\"#\"><span class=\"icon ion-ios-call\"></span><span class=\"text\">+2 392 3929 210</span></a>\n </li>\n <li><a href=\"#\"><span class=\"icon ion-ios-send\"></span><span\n class=\"text\">support&#64;yourdomain.com</span></a></li>\n </ul>\n </div>\n\n <form action=\"#\" class=\"subscribe-form\">\n <div class=\"input-group d-flex\">\n <input type=\"text\" class=\"form-control\" placeholder=\"Enter email address\">\n <button type=\"submit\" class=\"btn btn-info\">\n <span class=\"sr-only\">Submit</span>\n <i class=\"fa fa-paper-plane\"></i></button>\n </div>\n </form>\n </div>\n\n </div> -->\n <div class=\"row\">\n <div class=\"col\">\n <div class=\"d-flex justify-content-between align-items-center py-3 my-4 border-top\">\n @if (brand || copyright) {\n <div class=\"d-flex align-items-center\">\n @if (brand) {\n <a href=\"{{brand.href}}\" class=\"px-2 text-muted text-decoration-none\">\n <img src=\"{{brand.src}}\" alt=\"{{brand.alt}}\" class=\"brand-logo d-inline-block align-text-top\">\n </a>\n }\n @if (copyright) {\n <span class=\"text-muted\">{{copyright}}</span>\n }\n </div>\n }\n\n @if (socialNetworks.length) {\n <ul class=\"nav\">\n @for (item of socialNetworks; track item) {\n <li class=\"px-2\">\n <a class=\"text-muted social-icon\" href=\"{{item.href}}\" [ngbTooltip]=\"item.tooltip\">\n <em class=\"{{item.iconClass}}\"></em>\n </a>\n </li>\n }\n </ul>\n }\n </div>\n </div>\n </div>\n</footer>", styles: [".social-icon:hover{color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity, 1))!important}.brand-logo{width:30px;height:30px}\n"] }]
16
+ args: [{ selector: 'ys-footer', imports: [NgClass, NgbTooltip], template: "<!-- https://colorlib.com/wp/template/bootstrap-footer-19/ -->\r\n<footer [ngClass]=\"styleClass\">\r\n <!-- <div class=\"row\">\r\n <div class=\"col-md-6 col-lg-3 mb-md-0 mb-4\">\r\n <h2 class=\"footer-heading d-flex\">\r\n <span class=\"icon d-flex align-items-center justify-content-center\"><i class=\"ion-logo-ionic\"></i></span>\r\n About\r\n </h2>\r\n <div class=\"block-23 mb-3\">\r\n <ul>\r\n <li><span class=\"icon ion-ios-pin\"></span><span class=\"text\">203 Fake St. Mountain View, San\r\n Francisco, California, USA</span></li>\r\n <li><a href=\"#\"><span class=\"icon ion-ios-call\"></span><span class=\"text\">+2 392 3929 210</span></a>\r\n </li>\r\n <li><a href=\"#\"><span class=\"icon ion-ios-send\"></span><span\r\n class=\"text\">support&#64;yourdomain.com</span></a></li>\r\n </ul>\r\n </div>\r\n\r\n <form action=\"#\" class=\"subscribe-form\">\r\n <div class=\"input-group d-flex\">\r\n <input type=\"text\" class=\"form-control\" placeholder=\"Enter email address\">\r\n <button type=\"submit\" class=\"btn btn-info\">\r\n <span class=\"sr-only\">Submit</span>\r\n <i class=\"fa fa-paper-plane\"></i></button>\r\n </div>\r\n </form>\r\n </div>\r\n\r\n </div> -->\r\n <div class=\"row\">\r\n <div class=\"col\">\r\n <div class=\"d-flex justify-content-between align-items-center py-3 my-4 border-top\">\r\n @if (brand || copyright) {\r\n <div class=\"d-flex align-items-center\">\r\n @if (brand) {\r\n <a href=\"{{brand.href}}\" class=\"px-2 text-muted text-decoration-none\">\r\n <img src=\"{{brand.src}}\" alt=\"{{brand.alt}}\" class=\"brand-logo d-inline-block align-text-top\">\r\n </a>\r\n }\r\n @if (copyright) {\r\n <span class=\"text-muted\">{{copyright}}</span>\r\n }\r\n </div>\r\n }\r\n\r\n @if (socialNetworks.length) {\r\n <ul class=\"nav\">\r\n @for (item of socialNetworks; track item) {\r\n <li class=\"px-2\">\r\n <a class=\"text-muted social-icon\" href=\"{{item.href}}\" [ngbTooltip]=\"item.tooltip\">\r\n <em class=\"{{item.iconClass}}\"></em>\r\n </a>\r\n </li>\r\n }\r\n </ul>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n</footer>", styles: [".social-icon:hover{color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity, 1))!important}.brand-logo{width:30px;height:30px}\n"] }]
17
17
  }], propDecorators: { styleClass: [{
18
18
  type: Input
19
19
  }], brand: [{