@yoozsoft/yoozsoft-ng 6.2.0 → 7.1.1

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 (40) hide show
  1. package/README.md +206 -94
  2. package/fesm2022/yoozsoft-yoozsoft-ng-autocomplete.mjs +70 -38
  3. package/fesm2022/yoozsoft-yoozsoft-ng-autocomplete.mjs.map +1 -1
  4. package/fesm2022/yoozsoft-yoozsoft-ng-datepicker.mjs +194 -109
  5. package/fesm2022/yoozsoft-yoozsoft-ng-datepicker.mjs.map +1 -1
  6. package/fesm2022/yoozsoft-yoozsoft-ng-dropdown.mjs +70 -55
  7. package/fesm2022/yoozsoft-yoozsoft-ng-dropdown.mjs.map +1 -1
  8. package/fesm2022/yoozsoft-yoozsoft-ng-file-upload.mjs +55 -33
  9. package/fesm2022/yoozsoft-yoozsoft-ng-file-upload.mjs.map +1 -1
  10. package/fesm2022/yoozsoft-yoozsoft-ng-footer.mjs +13 -11
  11. package/fesm2022/yoozsoft-yoozsoft-ng-footer.mjs.map +1 -1
  12. package/fesm2022/yoozsoft-yoozsoft-ng-loading.mjs +17 -11
  13. package/fesm2022/yoozsoft-yoozsoft-ng-loading.mjs.map +1 -1
  14. package/fesm2022/yoozsoft-yoozsoft-ng-navbar.mjs +37 -28
  15. package/fesm2022/yoozsoft-yoozsoft-ng-navbar.mjs.map +1 -1
  16. package/fesm2022/yoozsoft-yoozsoft-ng-overlay.mjs +7 -6
  17. package/fesm2022/yoozsoft-yoozsoft-ng-overlay.mjs.map +1 -1
  18. package/fesm2022/yoozsoft-yoozsoft-ng-pagination.mjs +39 -28
  19. package/fesm2022/yoozsoft-yoozsoft-ng-pagination.mjs.map +1 -1
  20. package/fesm2022/yoozsoft-yoozsoft-ng-password-strength.mjs +65 -39
  21. package/fesm2022/yoozsoft-yoozsoft-ng-password-strength.mjs.map +1 -1
  22. package/fesm2022/yoozsoft-yoozsoft-ng-pipes.mjs +3 -3
  23. package/fesm2022/yoozsoft-yoozsoft-ng-pipes.mjs.map +1 -1
  24. package/fesm2022/yoozsoft-yoozsoft-ng-progress.mjs +26 -17
  25. package/fesm2022/yoozsoft-yoozsoft-ng-progress.mjs.map +1 -1
  26. package/fesm2022/yoozsoft-yoozsoft-ng-rating.mjs +155 -0
  27. package/fesm2022/yoozsoft-yoozsoft-ng-rating.mjs.map +1 -0
  28. package/fesm2022/yoozsoft-yoozsoft-ng-select.mjs +47 -33
  29. package/fesm2022/yoozsoft-yoozsoft-ng-select.mjs.map +1 -1
  30. package/fesm2022/yoozsoft-yoozsoft-ng-sidebar.mjs +30 -29
  31. package/fesm2022/yoozsoft-yoozsoft-ng-sidebar.mjs.map +1 -1
  32. package/fesm2022/yoozsoft-yoozsoft-ng-table.mjs +93 -84
  33. package/fesm2022/yoozsoft-yoozsoft-ng-table.mjs.map +1 -1
  34. package/fesm2022/yoozsoft-yoozsoft-ng-tiff-viewer.mjs +41 -27
  35. package/fesm2022/yoozsoft-yoozsoft-ng-tiff-viewer.mjs.map +1 -1
  36. package/fesm2022/yoozsoft-yoozsoft-ng-toast.mjs +20 -18
  37. package/fesm2022/yoozsoft-yoozsoft-ng-toast.mjs.map +1 -1
  38. package/package.json +12 -4
  39. package/rating/package.json +4 -0
  40. package/types/yoozsoft-yoozsoft-ng-rating.d.ts +56 -0
@@ -1 +1 @@
1
- {"version":3,"file":"yoozsoft-yoozsoft-ng-datepicker.mjs","sources":["../../../../projects/yoozsoft/yoozsoft-ng/datepicker/src/ys-datepicker-gregorian/ys-datepicker-gregorian.ts","../../../../projects/yoozsoft/yoozsoft-ng/datepicker/src/ys-datepicker-gregorian/ys-datepicker-gregorian.html","../../../../projects/yoozsoft/yoozsoft-ng/datepicker/src/ys-datepicker-jalali/ys-datepicker-jalali.ts","../../../../projects/yoozsoft/yoozsoft-ng/datepicker/src/ys-datepicker-jalali/ys-datepicker-jalali.html","../../../../projects/yoozsoft/yoozsoft-ng/datepicker/src/ys-datepicker-popup/ys-datepicker-popup.ts","../../../../projects/yoozsoft/yoozsoft-ng/datepicker/src/ys-datepicker-popup/ys-datepicker-popup.html","../../../../projects/yoozsoft/yoozsoft-ng/datepicker/src/ys-datepicker-range/ys-datepicker-range.ts","../../../../projects/yoozsoft/yoozsoft-ng/datepicker/src/ys-datepicker-range/ys-datepicker-range.html","../../../../projects/yoozsoft/yoozsoft-ng/datepicker/src/ys-datepicker-range-popup/ys-datepicker-range-popup.ts","../../../../projects/yoozsoft/yoozsoft-ng/datepicker/src/ys-datepicker-range-popup/ys-datepicker-range-popup.html","../../../../projects/yoozsoft/yoozsoft-ng/datepicker/src/ys-datepicker/ys-datepicker.ts","../../../../projects/yoozsoft/yoozsoft-ng/datepicker/src/ys-datepicker/ys-datepicker.html","../../../../projects/yoozsoft/yoozsoft-ng/datepicker/public-api.ts","../../../../projects/yoozsoft/yoozsoft-ng/datepicker/yoozsoft-yoozsoft-ng-datepicker.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, effect, input, output, signal } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { NgbDatepicker, NgbDatepickerModule, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\nimport { OutsideDaysType } from '@yoozsoft/yoozsoft-ng/date';\n\n@Component({\n selector: 'ys-datepicker-gregorian',\n imports: [\n NgbDatepickerModule,\n FormsModule\n ],\n templateUrl: './ys-datepicker-gregorian.html',\n styleUrl: './ys-datepicker-gregorian.scss',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class YsDatepickerGregorian {\n\n readonly value = input<Date | null>(null);\n\n readonly disabled = input(false);\n\n readonly firstDayOfWeek = input(1);\n\n readonly weekend = input<number[]>([6, 7]);\n\n readonly showFooter = input(true);\n\n readonly todayLabel = input('Today');\n\n readonly outsideDays = input<OutsideDaysType>('visible');\n\n readonly displayMonths = input<number>(1);\n\n readonly valueChange = output<Date | null>();\n\n readonly model = signal<NgbDateStruct | null>(null);\n\n /*------------Range fields */\n readonly rangeMode = input(false);\n readonly fromDate = input<NgbDateStruct | null>(null);\n readonly toDate = input<NgbDateStruct | null>(null);\n readonly hoveredDate = input<NgbDateStruct | null>(null);\n\n readonly dateSelect = output<NgbDateStruct>();\n readonly dateHover = output<NgbDateStruct>();\n /*------------Range fields */\n\n constructor() {\n\n effect(() => {\n\n const value = this.value();\n\n if (!value) {\n\n this.model.set(null);\n\n return;\n\n }\n\n this.model.set({\n year: value.getFullYear(),\n month: value.getMonth() + 1,\n day: value.getDate()\n });\n\n });\n\n }\n\n valueChanged(date: NgbDateStruct | null) {\n\n this.model.set(date);\n\n if (!date) {\n\n this.valueChange.emit(null);\n\n return;\n\n }\n\n this.valueChange.emit(\n new Date(\n date.year,\n date.month - 1,\n date.day\n )\n );\n\n }\n\n setToday(dp: NgbDatepicker) {\n\n const today = new Date();\n\n const model = {\n year: today.getFullYear(),\n month: today.getMonth() + 1,\n day: today.getDate()\n };\n\n this.model.set(model);\n\n this.valueChange.emit(today);\n\n dp.navigateTo({\n year: model.year,\n month: model.month\n });\n\n }\n\n isWeekend(date: NgbDateStruct): boolean {\n\n const day =\n new Date(\n date.year,\n date.month - 1,\n date.day\n ).getDay();\n\n const weekday =\n day === 0\n ? 7\n : day;\n\n return this.weekend().includes(\n weekday\n );\n\n }\n\n /*------------Range helpers */\n compare(a: NgbDateStruct, b: NgbDateStruct): number {\n\n if (a.year !== b.year) {\n return a.year - b.year;\n }\n\n if (a.month !== b.month) {\n return a.month - b.month;\n }\n\n return a.day - b.day;\n\n }\n\n isHovered(date: NgbDateStruct): boolean {\n\n const hovered = this.hoveredDate();\n const from = this.fromDate();\n const to = this.toDate();\n\n return !!(\n from &&\n !to &&\n hovered &&\n this.compare(date, from) > 0 &&\n this.compare(date, hovered) < 0\n );\n\n }\n\n isInside(date: NgbDateStruct): boolean {\n\n const from = this.fromDate();\n const to = this.toDate();\n\n return !!(\n from &&\n to &&\n this.compare(date, from) > 0 &&\n this.compare(date, to) < 0\n );\n\n }\n\n isRange(date: NgbDateStruct): boolean {\n\n const from = this.fromDate();\n const to = this.toDate();\n\n return !!(\n\n (from &&\n date.year === from.year &&\n date.month === from.month &&\n date.day === from.day)\n\n ||\n\n (to &&\n date.year === to.year &&\n date.month === to.month &&\n date.day === to.day)\n\n ||\n\n this.isInside(date)\n\n ||\n\n this.isHovered(date)\n\n );\n\n }\n\n isStart(date: NgbDateStruct): boolean {\n\n const from = this.fromDate();\n\n return !!(\n from &&\n date.year === from.year &&\n date.month === from.month &&\n date.day === from.day\n );\n\n }\n\n isEnd(date: NgbDateStruct): boolean {\n\n const to = this.toDate();\n\n return !!(\n to &&\n date.year === to.year &&\n date.month === to.month &&\n date.day === to.day\n );\n\n }\n /*------------Range helpers */\n\n}\n","<ngb-datepicker #dp [navigation]=\"'select'\" [firstDayOfWeek]=\"firstDayOfWeek()\" [disabled]=\"disabled()\"\n [dayTemplate]=\"dayTemplate\" [footerTemplate]=\"footerTemplate\" [ngModel]=\"model()\"\n (ngModelChange)=\"valueChanged($event)\" [outsideDays]=\"outsideDays()\" [displayMonths]=\"displayMonths()\">\n</ngb-datepicker>\n\n<ng-template #dayTemplate let-date let-currentMonth=\"currentMonth\" let-selected=\"selected\" let-focused=\"focused\">\n\n <span class=\"ys-day\" [class.ys-selected]=\"selected\" [class.ys-focused]=\"focused\"\n [class.ys-weekend]=\"isWeekend(date)\" [class.ys-hidden]=\"date.month !== currentMonth\"\n [class.text-muted]=\"date.month !== currentMonth\" [class.ys-range]=\"rangeMode() && isRange(date)\"\n [class.ys-range-start]=\"rangeMode() && isStart(date)\" [class.ys-range-end]=\"rangeMode() && isEnd(date)\"\n (click)=\"dateSelect.emit(date)\" (mouseenter)=\"dateHover.emit(date)\">\n\n {{ date.day }}\n\n </span>\n\n</ng-template>\n\n<ng-template #footerTemplate>\n @if(showFooter()) {\n <div class=\"ys-datepicker-footer border-top\">\n\n <button type=\"button\" class=\"btn btn-sm btn-primary float-start mb-2\" [disabled]=\"disabled()\"\n (click)=\"setToday(dp)\">\n\n {{ todayLabel() }}\n\n </button>\n\n </div>\n }\n</ng-template>","import { ChangeDetectionStrategy, Component, effect, inject, Injectable, input, output, signal } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { NgbCalendar, NgbCalendarPersian, NgbDatepicker, NgbDatepickerI18n, NgbDatepickerModule, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\nimport { JalaliDate, OutsideDaysType, PERSIAN_MONTHS, PERSIAN_WEEKDAYS_SHORT } from '@yoozsoft/yoozsoft-ng/date';\n\n@Injectable()\nexport class YsPersianDatepickerI18n extends NgbDatepickerI18n {\n\n override getWeekdayLabel(weekday: number): string {\n return PERSIAN_WEEKDAYS_SHORT[weekday - 1];\n }\n\n override getMonthShortName(month: number): string {\n return PERSIAN_MONTHS[month - 1];\n }\n\n override getMonthFullName(month: number): string {\n return PERSIAN_MONTHS[month - 1];\n }\n\n override getDayAriaLabel(date: NgbDateStruct): string {\n return `${date.year}/${date.month}/${date.day}`;\n }\n\n}\n\n@Component({\n selector: 'ys-datepicker-jalali',\n imports: [\n NgbDatepickerModule,\n FormsModule\n ],\n templateUrl: './ys-datepicker-jalali.html',\n styleUrl: './ys-datepicker-jalali.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: NgbCalendar, useClass: NgbCalendarPersian },\n { provide: NgbDatepickerI18n, useClass: YsPersianDatepickerI18n }\n ]\n})\nexport class YsDatepickerJalali {\n\n private readonly calendar = inject(NgbCalendar);\n\n readonly value = input<Date | null>(null);\n\n readonly disabled = input(false);\n\n readonly firstDayOfWeek = input(6);\n\n readonly weekend = input<number[]>([5]);\n\n readonly showFooter = input(true);\n\n readonly todayLabel = input('امروز');\n\n readonly outsideDays = input<OutsideDaysType>('visible');\n\n readonly displayMonths = input<number>(1);\n\n readonly valueChange = output<Date | null>();\n\n readonly model = signal<NgbDateStruct | null>(null);\n\n /*------------Range fields */\n readonly rangeMode = input(false);\n readonly fromDate = input<NgbDateStruct | null>(null);\n readonly toDate = input<NgbDateStruct | null>(null);\n readonly hoveredDate = input<NgbDateStruct | null>(null);\n\n readonly dateSelect = output<NgbDateStruct>();\n readonly dateHover = output<NgbDateStruct>();\n /*------------Range fields */\n\n constructor() {\n\n effect(() => {\n\n const value = this.value();\n\n if (!value) {\n\n this.model.set(null);\n\n return;\n\n }\n\n const jalali = JalaliDate.fromDate(value);\n\n this.model.set({\n year: jalali.year,\n month: jalali.month,\n day: jalali.day\n });\n\n });\n\n }\n\n valueChanged(date: NgbDateStruct | null) {\n\n this.model.set(date);\n\n if (!date) {\n\n this.valueChange.emit(null);\n\n return;\n\n }\n\n const gregorian =\n JalaliDate.toDate({\n year: date.year,\n month: date.month,\n day: date.day\n });\n\n this.valueChange.emit(gregorian);\n\n }\n\n setToday(dp: NgbDatepicker) {\n\n const today = this.calendar.getToday();\n\n this.model.set(today);\n\n this.valueChange.emit(\n JalaliDate.toDate({\n year: today.year,\n month: today.month,\n day: today.day\n })\n );\n\n dp.navigateTo({\n year: today.year,\n month: today.month\n });\n\n }\n\n isWeekend(date: NgbDateStruct): boolean {\n\n return this.weekend().includes(\n JalaliDate.dayOfWeek(\n date.year,\n date.month,\n date.day\n )\n );\n\n }\n\n /*------------Range helpers */\n compare(a: NgbDateStruct, b: NgbDateStruct): number {\n\n if (a.year !== b.year) {\n return a.year - b.year;\n }\n\n if (a.month !== b.month) {\n return a.month - b.month;\n }\n\n return a.day - b.day;\n\n }\n\n isHovered(date: NgbDateStruct): boolean {\n\n const hovered = this.hoveredDate();\n const from = this.fromDate();\n const to = this.toDate();\n\n return !!(\n from &&\n !to &&\n hovered &&\n this.compare(date, from) > 0 &&\n this.compare(date, hovered) < 0\n );\n\n }\n\n isInside(date: NgbDateStruct): boolean {\n\n const from = this.fromDate();\n const to = this.toDate();\n\n return !!(\n from &&\n to &&\n this.compare(date, from) > 0 &&\n this.compare(date, to) < 0\n );\n\n }\n\n isRange(date: NgbDateStruct): boolean {\n\n const from = this.fromDate();\n const to = this.toDate();\n\n return !!(\n\n (from &&\n date.year === from.year &&\n date.month === from.month &&\n date.day === from.day)\n\n ||\n\n (to &&\n date.year === to.year &&\n date.month === to.month &&\n date.day === to.day)\n\n ||\n\n this.isInside(date)\n\n ||\n\n this.isHovered(date)\n\n );\n\n }\n\n isStart(date: NgbDateStruct): boolean {\n\n const from = this.fromDate();\n\n return !!(\n from &&\n date.year === from.year &&\n date.month === from.month &&\n date.day === from.day\n );\n\n }\n\n isEnd(date: NgbDateStruct): boolean {\n\n const to = this.toDate();\n\n return !!(\n to &&\n date.year === to.year &&\n date.month === to.month &&\n date.day === to.day\n );\n\n }\n /*------------Range helpers */\n\n}\n","<ngb-datepicker #dp [navigation]=\"'select'\" [firstDayOfWeek]=\"firstDayOfWeek()\" [disabled]=\"disabled()\"\n [dayTemplate]=\"dayTemplate\" [footerTemplate]=\"footerTemplate\" [ngModel]=\"model()\"\n (ngModelChange)=\"valueChanged($event)\" [outsideDays]=\"outsideDays()\" [displayMonths]=\"displayMonths()\">\n</ngb-datepicker>\n\n<ng-template #dayTemplate let-date let-currentMonth=\"currentMonth\" let-selected=\"selected\" let-focused=\"focused\">\n\n <span class=\"ys-day\" [class.ys-selected]=\"selected\" [class.ys-focused]=\"focused\"\n [class.ys-weekend]=\"isWeekend(date)\" [class.ys-hidden]=\"date.month !== currentMonth\"\n [class.text-muted]=\"date.month !== currentMonth\" [class.ys-range]=\"rangeMode() && isRange(date)\"\n [class.ys-range-start]=\"rangeMode() && isStart(date)\" [class.ys-range-end]=\"rangeMode() && isEnd(date)\"\n (click)=\"dateSelect.emit(date)\" (mouseenter)=\"dateHover.emit(date)\">\n\n {{ date.day }}\n\n </span>\n\n</ng-template>\n\n<ng-template #footerTemplate>\n @if(showFooter()) {\n <div class=\"ys-datepicker-footer border-top\">\n\n <button type=\"button\" class=\"btn btn-sm btn-primary float-start mb-2\" [disabled]=\"disabled()\"\n (click)=\"setToday(dp)\">\n\n {{ todayLabel() }}\n\n </button>\n\n </div>\n }\n</ng-template>","import { ChangeDetectionStrategy, Component, computed, forwardRef, input, signal } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\nimport { CalendarType, OutsideDaysType } from '@yoozsoft/yoozsoft-ng/date';\nimport { YsPersianDatePipe } from '@yoozsoft/yoozsoft-ng/pipes';\nimport { YsDatepickerGregorian } from '../ys-datepicker-gregorian/ys-datepicker-gregorian';\nimport { YsDatepickerJalali } from '../ys-datepicker-jalali/ys-datepicker-jalali';\n\n@Component({\n selector: 'ys-datepicker-popup',\n imports: [\n NgbDropdownModule,\n YsDatepickerGregorian,\n YsDatepickerJalali,\n YsPersianDatePipe\n ],\n templateUrl: './ys-datepicker-popup.html',\n styleUrl: './ys-datepicker-popup.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => YsDatepickerPopup),\n multi: true\n }\n ]\n})\nexport class YsDatepickerPopup implements ControlValueAccessor {\n\n readonly calendarType = input<CalendarType>('gregorian');\n\n readonly disabled = input(false);\n\n readonly readonly = input(false);\n\n readonly placeholder = input('');\n\n readonly firstDayOfWeek = input<number>();\n\n readonly weekend = input<number[]>();\n\n readonly showFooter = input(true);\n\n readonly todayLabel = input<string>();\n\n readonly outsideDays = input<OutsideDaysType>('visible');\n\n readonly displayMonths = input<number>(1);\n\n readonly autoClose = input(true);\n\n readonly container = input<'body' | null>(null);\n\n readonly calendarIconClass = input<string>('fa fa-calendar');\n readonly clearIconClass = input<string>('fa fa-xmark');\n\n private readonly disabledState = signal(false);\n\n readonly isDisabled = computed(() =>\n this.disabled() ||\n this.disabledState()\n );\n\n readonly value = signal<Date | null>(null);\n\n readonly displayValue = computed(() => {\n\n const value = this.value();\n\n if (!value) {\n return '';\n }\n\n if (this.calendarType() === 'jalali') {\n return new YsPersianDatePipe().transform(\n value,\n 'shortDate'\n );\n }\n\n return value.toLocaleDateString('en-CA');\n\n });\n\n private onChange = (_: Date | null) => { };\n private onTouched = () => { };\n\n writeValue(value: Date | null): void {\n this.value.set(\n value ?? null\n );\n }\n\n registerOnChange(fn: (value: Date | null) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabledState.set(isDisabled);\n }\n\n valueChanged(value: Date | null, dropdown: any) {\n\n this.value.set(value);\n\n this.onChange(value);\n\n this.onTouched();\n\n if (this.autoClose() && value) {\n dropdown.close();\n }\n\n }\n\n clear(event: MouseEvent) {\n\n event.stopPropagation();\n\n this.value.set(null);\n\n this.onChange(null);\n\n this.onTouched();\n\n }\n\n}\n","<div ngbDropdown #dropdown=\"ngbDropdown\" [container]=\"container()\" class=\"ys-datepicker-popup\">\n\n <div class=\"input-group\">\n\n <input type=\"text\" class=\"form-control\" [placeholder]=\"placeholder()\" [value]=\"displayValue()\"\n [readonly]=\"readonly()\" [disabled]=\"isDisabled()\" ngbDropdownToggle>\n\n @if(value()) {\n\n <button type=\"button\" class=\"btn btn-outline-secondary\" [disabled]=\"isDisabled()\" (click)=\"clear($event)\">\n <i [class]=\"clearIconClass()\"></i>\n </button>\n\n }\n\n <button type=\"button\" class=\"btn btn-outline-secondary\" [disabled]=\"isDisabled()\" ngbDropdownToggle>\n <i [class]=\"calendarIconClass()\"></i>\n </button>\n\n </div>\n\n <div ngbDropdownMenu class=\"p-0 border-0 shadow\">\n\n @if(calendarType() === 'jalali') {\n\n <ys-datepicker-jalali [value]=\"value()\" [disabled]=\"isDisabled()\" [firstDayOfWeek]=\"firstDayOfWeek() ?? 6\"\n [weekend]=\"weekend() ?? [5]\" [showFooter]=\"showFooter()\" [todayLabel]=\"todayLabel() ?? 'امروز'\"\n (valueChange)=\"valueChanged($event, dropdown)\" [outsideDays]=\"outsideDays()\"\n [displayMonths]=\"displayMonths()\">\n </ys-datepicker-jalali>\n\n }\n\n @else {\n\n <ys-datepicker-gregorian [value]=\"value()\" [disabled]=\"isDisabled()\" [firstDayOfWeek]=\"firstDayOfWeek() ?? 1\"\n [weekend]=\"weekend() ?? [6,7]\" [showFooter]=\"showFooter()\" [todayLabel]=\"todayLabel() ?? 'Today'\"\n (valueChange)=\"valueChanged($event, dropdown)\" [outsideDays]=\"outsideDays()\"\n [displayMonths]=\"displayMonths()\">\n </ys-datepicker-gregorian>\n\n }\n\n </div>\n\n</div>","import { ChangeDetectionStrategy, Component, computed, forwardRef, input, signal } from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\nimport { CalendarType, compareDates, DateRange, JalaliDate, OutsideDaysType } from '@yoozsoft/yoozsoft-ng/date';\nimport { YsDatepickerGregorian } from '../ys-datepicker-gregorian/ys-datepicker-gregorian';\nimport { YsDatepickerJalali } from '../ys-datepicker-jalali/ys-datepicker-jalali';\n\n@Component({\n selector: 'ys-datepicker-range',\n imports: [\n FormsModule,\n YsDatepickerGregorian,\n YsDatepickerJalali\n ],\n templateUrl: './ys-datepicker-range.html',\n styleUrl: './ys-datepicker-range.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => YsDatepickerRange),\n multi: true\n }\n ]\n})\nexport class YsDatepickerRange implements ControlValueAccessor {\n\n readonly calendarType = input<CalendarType>('gregorian');\n\n readonly disabled = input(false);\n\n readonly firstDayOfWeek = input<number>();\n\n readonly weekend = input<number[]>();\n\n readonly showFooter = input(true);\n\n readonly todayLabel = input<string>();\n\n readonly outsideDays = input<OutsideDaysType>('visible');\n\n readonly displayMonths = input<number>(2);\n\n private readonly disabledState = signal(false);\n\n readonly isDisabled = computed(() =>\n this.disabled() ||\n this.disabledState()\n );\n\n readonly fromDate = signal<NgbDateStruct | null>(null);\n\n readonly toDate = signal<NgbDateStruct | null>(null);\n\n readonly hoveredDate = signal<NgbDateStruct | null>(null);\n\n protected onChange = (_: DateRange | null) => { };\n protected onTouched = () => { };\n\n writeValue(value: DateRange | null): void {\n\n if (!value) {\n\n this.fromDate.set(null);\n this.toDate.set(null);\n\n return;\n\n }\n\n this.fromDate.set(\n value.from\n ? this.fromJsDate(value.from)\n : null\n );\n\n this.toDate.set(\n value.to\n ? this.fromJsDate(value.to)\n : null\n );\n\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabledState.set(isDisabled);\n }\n\n select(date: NgbDateStruct) {\n\n const from = this.fromDate();\n const to = this.toDate();\n\n if (!from) {\n\n this.fromDate.set(date);\n\n return;\n\n }\n\n if (from && !to && compareDates(date, from) >= 0) {\n\n this.toDate.set(date);\n\n this.emitValue();\n\n return;\n\n }\n\n this.fromDate.set(date);\n\n this.toDate.set(null);\n\n }\n\n hover(date: NgbDateStruct) {\n this.hoveredDate.set(date);\n }\n\n private emitValue() {\n\n this.onChange({\n\n from: this.fromDate()\n ? this.toJsDate(this.fromDate()!)\n : null,\n\n to: this.toDate()\n ? this.toJsDate(this.toDate()!)\n : null\n\n });\n\n this.onTouched();\n\n }\n\n private fromJsDate(date: Date): NgbDateStruct {\n\n if (this.calendarType() === 'jalali') {\n\n return JalaliDate.toNgbDateStruct(\n JalaliDate.fromDate(date)\n );\n\n }\n\n return {\n year: date.getFullYear(),\n month: date.getMonth() + 1,\n day: date.getDate()\n };\n\n }\n\n private toJsDate(date: NgbDateStruct): Date {\n\n if (this.calendarType() === 'jalali') {\n\n return JalaliDate.toDate(\n JalaliDate.fromNgbDateStruct(date)\n );\n\n }\n\n return new Date(\n date.year,\n date.month - 1,\n date.day\n );\n\n }\n\n}\n","@if(calendarType() === 'jalali') {\n\n<ys-datepicker-jalali [disabled]=\"isDisabled()\" [firstDayOfWeek]=\"firstDayOfWeek() ?? 6\" [weekend]=\"weekend() ?? [5]\"\n [showFooter]=\"showFooter()\" [todayLabel]=\"todayLabel() ?? 'امروز'\" [rangeMode]=\"true\" [fromDate]=\"fromDate()\"\n [toDate]=\"toDate()\" [hoveredDate]=\"hoveredDate()\" (dateSelect)=\"select($event)\" (dateHover)=\"hover($event)\"\n [outsideDays]=\"outsideDays()\" [displayMonths]=\"displayMonths()\">\n</ys-datepicker-jalali>\n\n}\n\n@else {\n\n<ys-datepicker-gregorian [disabled]=\"isDisabled()\" [firstDayOfWeek]=\"firstDayOfWeek() ?? 1\"\n [weekend]=\"weekend() ?? [6,7]\" [showFooter]=\"showFooter()\" [todayLabel]=\"todayLabel() ?? 'Today'\" [rangeMode]=\"true\"\n [fromDate]=\"fromDate()\" [toDate]=\"toDate()\" [hoveredDate]=\"hoveredDate()\" (dateSelect)=\"select($event)\"\n (dateHover)=\"hover($event)\" [outsideDays]=\"outsideDays()\" [displayMonths]=\"displayMonths()\">\n</ys-datepicker-gregorian>\n\n}","import { ChangeDetectionStrategy, Component, computed, forwardRef, input, signal } from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\nimport { CalendarType, DateRange, JalaliDate, OutsideDaysType } from '@yoozsoft/yoozsoft-ng/date';\nimport { YsDatepickerRange } from '../ys-datepicker-range/ys-datepicker-range';\n\n@Component({\n selector: 'ys-datepicker-range-popup',\n imports: [\n FormsModule,\n NgbDropdownModule,\n YsDatepickerRange\n ],\n templateUrl: './ys-datepicker-range-popup.html',\n styleUrl: './ys-datepicker-range-popup.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => YsDatepickerRangePopup),\n multi: true\n }\n ]\n})\nexport class YsDatepickerRangePopup implements ControlValueAccessor {\n\n readonly calendarType = input<CalendarType>('gregorian');\n\n readonly disabled = input(false);\n\n readonly readonly = input(false);\n\n readonly placeholder = input('Select date range');\n\n readonly firstDayOfWeek = input<number>();\n\n readonly weekend = input<number[]>();\n\n readonly showFooter = input(true);\n\n readonly todayLabel = input<string>();\n\n readonly outsideDays = input<OutsideDaysType>('visible');\n\n readonly displayMonths = input<number>(2);\n\n readonly autoClose = input(true);\n\n readonly container = input<'body' | null>(null);\n\n readonly calendarIconClass = input<string>('fa fa-calendar');\n readonly clearIconClass = input<string>('fa fa-xmark');\n\n private readonly disabledState = signal(false);\n\n readonly isDisabled = computed(() =>\n this.disabled() ||\n this.disabledState()\n );\n\n readonly value = signal<DateRange | null>(null);\n\n readonly displayValue = computed(() => {\n\n const range = this.value();\n\n if (!range?.from) {\n return '';\n }\n\n if (!range.to) {\n return this.formatDate(range.from);\n }\n\n return `${this.formatDate(range.from)} - ${this.formatDate(range.to)}`;\n\n });\n\n protected onChange = (_: DateRange | null) => { };\n protected onTouched = () => { };\n\n writeValue(value: DateRange | null): void {\n this.value.set(value);\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabledState.set(isDisabled);\n }\n\n valueChanged(value: DateRange | null, dropdown: any) {\n\n this.value.set(value);\n\n this.onChange(value);\n\n this.onTouched();\n\n if (this.autoClose() && value?.from && value?.to) {\n dropdown.close();\n }\n\n }\n\n clear(event: MouseEvent) {\n\n event.stopPropagation();\n\n this.value.set(null);\n\n this.onChange(null);\n\n this.onTouched();\n\n }\n\n private formatDate(value: Date): string {\n\n if (this.calendarType() === 'jalali') {\n\n return JalaliDate.format(\n value,\n 'yyyy/MM/dd'\n );\n\n }\n\n const year = value.getFullYear();\n\n const month = String(\n value.getMonth() + 1\n ).padStart(2, '0');\n\n const day = String(\n value.getDate()\n ).padStart(2, '0');\n\n return `${year}/${month}/${day}`;\n\n }\n\n}\n","<div ngbDropdown #dropdown=\"ngbDropdown\" class=\"ys-datepicker-range-popup\" [container]=\"container()\">\n\n <div class=\"input-group\">\n\n <input type=\"text\" class=\"form-control\" readonly ngbDropdownToggle [value]=\"displayValue()\"\n [readonly]=\"readonly()\" [placeholder]=\"placeholder()\" [disabled]=\"isDisabled()\" />\n\n @if(value()) {\n\n <button type=\"button\" class=\"btn btn-outline-secondary\" [disabled]=\"isDisabled()\" (click)=\"clear($event)\">\n <i [class]=\"clearIconClass()\"></i>\n </button>\n\n }\n\n <button type=\"button\" class=\"btn btn-outline-secondary\" [disabled]=\"isDisabled()\" ngbDropdownToggle>\n <i [class]=\"calendarIconClass()\"></i>\n </button>\n\n </div>\n\n <div ngbDropdownMenu class=\"p-0 border-0 shadow\">\n\n <ys-datepicker-range [calendarType]=\"calendarType()\" [disabled]=\"isDisabled()\"\n [firstDayOfWeek]=\"firstDayOfWeek()\" [weekend]=\"weekend()\" [showFooter]=\"showFooter()\"\n [todayLabel]=\"todayLabel()\" [ngModel]=\"value()\" (ngModelChange)=\"valueChanged($event, dropdown)\"\n [outsideDays]=\"outsideDays()\" [displayMonths]=\"displayMonths()\">\n </ys-datepicker-range>\n\n </div>\n\n</div>","import { ChangeDetectionStrategy, Component, computed, forwardRef, input, signal } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { CalendarType, OutsideDaysType } from '@yoozsoft/yoozsoft-ng/date';\nimport { YsDatepickerGregorian } from '../ys-datepicker-gregorian/ys-datepicker-gregorian';\nimport { YsDatepickerJalali } from '../ys-datepicker-jalali/ys-datepicker-jalali';\n\n@Component({\n selector: 'ys-datepicker',\n imports: [\n YsDatepickerGregorian,\n YsDatepickerJalali\n ],\n templateUrl: './ys-datepicker.html',\n styleUrl: './ys-datepicker.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => YsDatepicker),\n multi: true\n }\n ]\n})\nexport class YsDatepicker implements ControlValueAccessor {\n\n readonly calendarType = input<CalendarType>('gregorian');\n\n readonly disabled = input(false);\n\n readonly firstDayOfWeek = input<number>();\n\n readonly weekend = input<number[]>();\n\n readonly showFooter = input(true);\n\n readonly todayLabel = input<string>();\n\n readonly outsideDays = input<OutsideDaysType>('visible');\n\n private readonly disabledState = signal(false);\n\n readonly isDisabled = computed(() =>\n this.disabled() ||\n this.disabledState()\n );\n\n readonly value = signal<Date | null>(null);\n\n private onChange = (_: Date | null) => { };\n private onTouched = () => { };\n\n writeValue(value: Date | null): void {\n this.value.set(value ?? null);\n }\n\n registerOnChange(fn: (value: Date | null) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabledState.set(isDisabled);\n }\n\n valueChanged(value: Date | null) {\n\n this.value.set(value);\n\n this.onChange(value);\n\n this.onTouched();\n\n }\n\n}\n","@if(calendarType() === 'jalali') {\n\n<ys-datepicker-jalali [value]=\"value()\" [disabled]=\"isDisabled()\" [firstDayOfWeek]=\"firstDayOfWeek() ?? 6\"\n [weekend]=\"weekend() ?? [5]\" [showFooter]=\"showFooter()\" [todayLabel]=\"todayLabel() ?? 'امروز'\"\n (valueChange)=\"valueChanged($event)\" [outsideDays]=\"outsideDays()\">\n</ys-datepicker-jalali>\n\n}\n@else {\n\n<ys-datepicker-gregorian [value]=\"value()\" [disabled]=\"isDisabled()\" [firstDayOfWeek]=\"firstDayOfWeek() ?? 1\"\n [weekend]=\"weekend() ?? [6,7]\" [showFooter]=\"showFooter()\" [todayLabel]=\"todayLabel() ?? 'Today'\"\n (valueChange)=\"valueChanged($event)\" [outsideDays]=\"outsideDays()\">\n</ys-datepicker-gregorian>\n\n}","/*\r\n * Public API Surface of ys-datepicker\r\n */\r\n\r\nexport * from './src/ys-datepicker-popup/ys-datepicker-popup';\r\nexport * from './src/ys-datepicker-range-popup/ys-datepicker-range-popup';\r\nexport * from './src/ys-datepicker-range/ys-datepicker-range';\r\nexport * from './src/ys-datepicker/ys-datepicker';\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
1
+ {"version":3,"file":"yoozsoft-yoozsoft-ng-datepicker.mjs","sources":["../../../../projects/yoozsoft/yoozsoft-ng/datepicker/src/ys-datepicker-gregorian/ys-datepicker-gregorian.ts","../../../../projects/yoozsoft/yoozsoft-ng/datepicker/src/ys-datepicker-gregorian/ys-datepicker-gregorian.html","../../../../projects/yoozsoft/yoozsoft-ng/datepicker/src/ys-datepicker-jalali/ys-datepicker-jalali.ts","../../../../projects/yoozsoft/yoozsoft-ng/datepicker/src/ys-datepicker-jalali/ys-datepicker-jalali.html","../../../../projects/yoozsoft/yoozsoft-ng/datepicker/src/ys-datepicker-popup/ys-datepicker-popup.ts","../../../../projects/yoozsoft/yoozsoft-ng/datepicker/src/ys-datepicker-popup/ys-datepicker-popup.html","../../../../projects/yoozsoft/yoozsoft-ng/datepicker/src/ys-datepicker-range/ys-datepicker-range.ts","../../../../projects/yoozsoft/yoozsoft-ng/datepicker/src/ys-datepicker-range/ys-datepicker-range.html","../../../../projects/yoozsoft/yoozsoft-ng/datepicker/src/ys-datepicker-range-popup/ys-datepicker-range-popup.ts","../../../../projects/yoozsoft/yoozsoft-ng/datepicker/src/ys-datepicker-range-popup/ys-datepicker-range-popup.html","../../../../projects/yoozsoft/yoozsoft-ng/datepicker/src/ys-datepicker/ys-datepicker.ts","../../../../projects/yoozsoft/yoozsoft-ng/datepicker/src/ys-datepicker/ys-datepicker.html","../../../../projects/yoozsoft/yoozsoft-ng/datepicker/public-api.ts","../../../../projects/yoozsoft/yoozsoft-ng/datepicker/yoozsoft-yoozsoft-ng-datepicker.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, effect, input, output, signal } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { NgbDatepicker, NgbDatepickerModule, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\nimport { OutsideDaysType } from '@yoozsoft/yoozsoft-ng/date';\n\n@Component({\n selector: 'ys-datepicker-gregorian',\n imports: [\n NgbDatepickerModule,\n FormsModule\n ],\n templateUrl: './ys-datepicker-gregorian.html',\n styleUrl: './ys-datepicker-gregorian.scss',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class YsDatepickerGregorian {\n\n readonly value = input<Date | null>(null);\n\n readonly disabled = input(false);\n\n readonly firstDayOfWeek = input(1);\n\n readonly weekend = input<number[]>([6, 7]);\n\n readonly showFooter = input(true);\n\n readonly todayLabel = input('Today');\n\n readonly outsideDays = input<OutsideDaysType>('visible');\n\n readonly displayMonths = input<number>(1);\n\n readonly valueChange = output<Date | null>();\n\n readonly model = signal<NgbDateStruct | null>(null);\n\n /*------------Range fields */\n readonly rangeMode = input(false);\n readonly fromDate = input<NgbDateStruct | null>(null);\n readonly toDate = input<NgbDateStruct | null>(null);\n readonly hoveredDate = input<NgbDateStruct | null>(null);\n\n readonly dateSelect = output<NgbDateStruct>();\n readonly dateHover = output<NgbDateStruct>();\n /*------------Range fields */\n\n constructor() {\n\n effect(() => {\n\n const value = this.value();\n\n if (!value) {\n\n this.model.set(null);\n\n return;\n\n }\n\n this.model.set({\n year: value.getFullYear(),\n month: value.getMonth() + 1,\n day: value.getDate()\n });\n\n });\n\n }\n\n valueChanged(date: NgbDateStruct | null) {\n\n this.model.set(date);\n\n if (!date) {\n\n this.valueChange.emit(null);\n\n return;\n\n }\n\n this.valueChange.emit(\n new Date(\n date.year,\n date.month - 1,\n date.day\n )\n );\n\n }\n\n setToday(dp: NgbDatepicker) {\n\n const today = new Date();\n\n const model = {\n year: today.getFullYear(),\n month: today.getMonth() + 1,\n day: today.getDate()\n };\n\n this.model.set(model);\n\n this.valueChange.emit(today);\n\n dp.navigateTo({\n year: model.year,\n month: model.month\n });\n\n }\n\n isWeekend(date: NgbDateStruct): boolean {\n\n const day =\n new Date(\n date.year,\n date.month - 1,\n date.day\n ).getDay();\n\n const weekday =\n day === 0\n ? 7\n : day;\n\n return this.weekend().includes(\n weekday\n );\n\n }\n\n /*------------Range helpers */\n compare(a: NgbDateStruct, b: NgbDateStruct): number {\n\n if (a.year !== b.year) {\n return a.year - b.year;\n }\n\n if (a.month !== b.month) {\n return a.month - b.month;\n }\n\n return a.day - b.day;\n\n }\n\n isHovered(date: NgbDateStruct): boolean {\n\n const hovered = this.hoveredDate();\n const from = this.fromDate();\n const to = this.toDate();\n\n return !!(\n from &&\n !to &&\n hovered &&\n this.compare(date, from) > 0 &&\n this.compare(date, hovered) < 0\n );\n\n }\n\n isInside(date: NgbDateStruct): boolean {\n\n const from = this.fromDate();\n const to = this.toDate();\n\n return !!(\n from &&\n to &&\n this.compare(date, from) > 0 &&\n this.compare(date, to) < 0\n );\n\n }\n\n isRange(date: NgbDateStruct): boolean {\n\n const from = this.fromDate();\n const to = this.toDate();\n\n return !!(\n\n (from &&\n date.year === from.year &&\n date.month === from.month &&\n date.day === from.day)\n\n ||\n\n (to &&\n date.year === to.year &&\n date.month === to.month &&\n date.day === to.day)\n\n ||\n\n this.isInside(date)\n\n ||\n\n this.isHovered(date)\n\n );\n\n }\n\n isStart(date: NgbDateStruct): boolean {\n\n const from = this.fromDate();\n\n return !!(\n from &&\n date.year === from.year &&\n date.month === from.month &&\n date.day === from.day\n );\n\n }\n\n isEnd(date: NgbDateStruct): boolean {\n\n const to = this.toDate();\n\n return !!(\n to &&\n date.year === to.year &&\n date.month === to.month &&\n date.day === to.day\n );\n\n }\n /*------------Range helpers */\n\n}\n","<ngb-datepicker #dp [navigation]=\"'select'\" [firstDayOfWeek]=\"firstDayOfWeek()\" [disabled]=\"disabled()\"\n [dayTemplate]=\"dayTemplate\" [footerTemplate]=\"footerTemplate\" [ngModel]=\"model()\"\n (ngModelChange)=\"valueChanged($event)\" [outsideDays]=\"outsideDays()\" [displayMonths]=\"displayMonths()\">\n</ngb-datepicker>\n\n<ng-template #dayTemplate let-date let-currentMonth=\"currentMonth\" let-selected=\"selected\" let-focused=\"focused\">\n\n <span class=\"ys-day\" [class.ys-selected]=\"selected\" [class.ys-focused]=\"focused\"\n [class.ys-weekend]=\"isWeekend(date)\" [class.ys-hidden]=\"date.month !== currentMonth\"\n [class.text-muted]=\"date.month !== currentMonth\" [class.ys-range]=\"rangeMode() && isRange(date)\"\n [class.ys-range-start]=\"rangeMode() && isStart(date)\" [class.ys-range-end]=\"rangeMode() && isEnd(date)\"\n (click)=\"dateSelect.emit(date)\" (mouseenter)=\"dateHover.emit(date)\">\n\n {{ date.day }}\n\n </span>\n\n</ng-template>\n\n<ng-template #footerTemplate>\n @if(showFooter()) {\n <div class=\"ys-datepicker-footer border-top\">\n\n <button type=\"button\" class=\"btn btn-sm btn-primary float-start mb-2\" [disabled]=\"disabled()\"\n (click)=\"setToday(dp)\">\n\n {{ todayLabel() }}\n\n </button>\n\n </div>\n }\n</ng-template>","import { ChangeDetectionStrategy, Component, effect, inject, Injectable, input, output, signal } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { NgbCalendar, NgbCalendarPersian, NgbDatepicker, NgbDatepickerI18n, NgbDatepickerModule, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\nimport { JalaliDate, OutsideDaysType, PERSIAN_MONTHS, PERSIAN_WEEKDAYS_SHORT } from '@yoozsoft/yoozsoft-ng/date';\n\n@Injectable()\nexport class YsPersianDatepickerI18n extends NgbDatepickerI18n {\n\n override getWeekdayLabel(weekday: number): string {\n return PERSIAN_WEEKDAYS_SHORT[weekday - 1];\n }\n\n override getMonthShortName(month: number): string {\n return PERSIAN_MONTHS[month - 1];\n }\n\n override getMonthFullName(month: number): string {\n return PERSIAN_MONTHS[month - 1];\n }\n\n override getDayAriaLabel(date: NgbDateStruct): string {\n return `${date.year}/${date.month}/${date.day}`;\n }\n\n}\n\n@Component({\n selector: 'ys-datepicker-jalali',\n imports: [\n NgbDatepickerModule,\n FormsModule\n ],\n templateUrl: './ys-datepicker-jalali.html',\n styleUrl: './ys-datepicker-jalali.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: NgbCalendar, useClass: NgbCalendarPersian },\n { provide: NgbDatepickerI18n, useClass: YsPersianDatepickerI18n }\n ]\n})\nexport class YsDatepickerJalali {\n\n private readonly calendar = inject(NgbCalendar);\n\n readonly value = input<Date | null>(null);\n\n readonly disabled = input(false);\n\n readonly firstDayOfWeek = input(6);\n\n readonly weekend = input<number[]>([5]);\n\n readonly showFooter = input(true);\n\n readonly todayLabel = input('امروز');\n\n readonly outsideDays = input<OutsideDaysType>('visible');\n\n readonly displayMonths = input<number>(1);\n\n readonly valueChange = output<Date | null>();\n\n readonly model = signal<NgbDateStruct | null>(null);\n\n /*------------Range fields */\n readonly rangeMode = input(false);\n readonly fromDate = input<NgbDateStruct | null>(null);\n readonly toDate = input<NgbDateStruct | null>(null);\n readonly hoveredDate = input<NgbDateStruct | null>(null);\n\n readonly dateSelect = output<NgbDateStruct>();\n readonly dateHover = output<NgbDateStruct>();\n /*------------Range fields */\n\n constructor() {\n\n effect(() => {\n\n const value = this.value();\n\n if (!value) {\n\n this.model.set(null);\n\n return;\n\n }\n\n const jalali = JalaliDate.fromDate(value);\n\n this.model.set({\n year: jalali.year,\n month: jalali.month,\n day: jalali.day\n });\n\n });\n\n }\n\n valueChanged(date: NgbDateStruct | null) {\n\n this.model.set(date);\n\n if (!date) {\n\n this.valueChange.emit(null);\n\n return;\n\n }\n\n const gregorian =\n JalaliDate.toDate({\n year: date.year,\n month: date.month,\n day: date.day\n });\n\n this.valueChange.emit(gregorian);\n\n }\n\n setToday(dp: NgbDatepicker) {\n\n const today = this.calendar.getToday();\n\n this.model.set(today);\n\n this.valueChange.emit(\n JalaliDate.toDate({\n year: today.year,\n month: today.month,\n day: today.day\n })\n );\n\n dp.navigateTo({\n year: today.year,\n month: today.month\n });\n\n }\n\n isWeekend(date: NgbDateStruct): boolean {\n\n return this.weekend().includes(\n JalaliDate.dayOfWeek(\n date.year,\n date.month,\n date.day\n )\n );\n\n }\n\n /*------------Range helpers */\n compare(a: NgbDateStruct, b: NgbDateStruct): number {\n\n if (a.year !== b.year) {\n return a.year - b.year;\n }\n\n if (a.month !== b.month) {\n return a.month - b.month;\n }\n\n return a.day - b.day;\n\n }\n\n isHovered(date: NgbDateStruct): boolean {\n\n const hovered = this.hoveredDate();\n const from = this.fromDate();\n const to = this.toDate();\n\n return !!(\n from &&\n !to &&\n hovered &&\n this.compare(date, from) > 0 &&\n this.compare(date, hovered) < 0\n );\n\n }\n\n isInside(date: NgbDateStruct): boolean {\n\n const from = this.fromDate();\n const to = this.toDate();\n\n return !!(\n from &&\n to &&\n this.compare(date, from) > 0 &&\n this.compare(date, to) < 0\n );\n\n }\n\n isRange(date: NgbDateStruct): boolean {\n\n const from = this.fromDate();\n const to = this.toDate();\n\n return !!(\n\n (from &&\n date.year === from.year &&\n date.month === from.month &&\n date.day === from.day)\n\n ||\n\n (to &&\n date.year === to.year &&\n date.month === to.month &&\n date.day === to.day)\n\n ||\n\n this.isInside(date)\n\n ||\n\n this.isHovered(date)\n\n );\n\n }\n\n isStart(date: NgbDateStruct): boolean {\n\n const from = this.fromDate();\n\n return !!(\n from &&\n date.year === from.year &&\n date.month === from.month &&\n date.day === from.day\n );\n\n }\n\n isEnd(date: NgbDateStruct): boolean {\n\n const to = this.toDate();\n\n return !!(\n to &&\n date.year === to.year &&\n date.month === to.month &&\n date.day === to.day\n );\n\n }\n /*------------Range helpers */\n\n}\n","<ngb-datepicker #dp [navigation]=\"'select'\" [firstDayOfWeek]=\"firstDayOfWeek()\" [disabled]=\"disabled()\"\n [dayTemplate]=\"dayTemplate\" [footerTemplate]=\"footerTemplate\" [ngModel]=\"model()\"\n (ngModelChange)=\"valueChanged($event)\" [outsideDays]=\"outsideDays()\" [displayMonths]=\"displayMonths()\">\n</ngb-datepicker>\n\n<ng-template #dayTemplate let-date let-currentMonth=\"currentMonth\" let-selected=\"selected\" let-focused=\"focused\">\n\n <span class=\"ys-day\" [class.ys-selected]=\"selected\" [class.ys-focused]=\"focused\"\n [class.ys-weekend]=\"isWeekend(date)\" [class.ys-hidden]=\"date.month !== currentMonth\"\n [class.text-muted]=\"date.month !== currentMonth\" [class.ys-range]=\"rangeMode() && isRange(date)\"\n [class.ys-range-start]=\"rangeMode() && isStart(date)\" [class.ys-range-end]=\"rangeMode() && isEnd(date)\"\n (click)=\"dateSelect.emit(date)\" (mouseenter)=\"dateHover.emit(date)\">\n\n {{ date.day }}\n\n </span>\n\n</ng-template>\n\n<ng-template #footerTemplate>\n @if(showFooter()) {\n <div class=\"ys-datepicker-footer border-top\">\n\n <button type=\"button\" class=\"btn btn-sm btn-primary float-start mb-2\" [disabled]=\"disabled()\"\n (click)=\"setToday(dp)\">\n\n {{ todayLabel() }}\n\n </button>\n\n </div>\n }\n</ng-template>","import { ChangeDetectionStrategy, Component, computed, forwardRef, input, signal } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\nimport { CalendarType, OutsideDaysType } from '@yoozsoft/yoozsoft-ng/date';\nimport { YsPersianDatePipe } from '@yoozsoft/yoozsoft-ng/pipes';\nimport { YsDatepickerGregorian } from '../ys-datepicker-gregorian/ys-datepicker-gregorian';\nimport { YsDatepickerJalali } from '../ys-datepicker-jalali/ys-datepicker-jalali';\n\n@Component({\n selector: 'ys-datepicker-popup',\n imports: [\n NgbDropdownModule,\n YsDatepickerGregorian,\n YsDatepickerJalali,\n YsPersianDatePipe\n ],\n templateUrl: './ys-datepicker-popup.html',\n styleUrl: './ys-datepicker-popup.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => YsDatepickerPopup),\n multi: true\n }\n ]\n})\nexport class YsDatepickerPopup implements ControlValueAccessor {\n\n readonly calendarType = input<CalendarType>('gregorian');\n\n readonly disabled = input(false);\n\n readonly readonly = input(false);\n\n readonly placeholder = input('');\n\n readonly firstDayOfWeek = input<number>();\n\n readonly weekend = input<number[]>();\n\n readonly showFooter = input(true);\n\n readonly todayLabel = input<string>();\n\n readonly outsideDays = input<OutsideDaysType>('visible');\n\n readonly displayMonths = input<number>(1);\n\n readonly autoClose = input(true);\n\n readonly container = input<'body' | null>(null);\n\n readonly calendarIconClass = input<string>('fa fa-calendar');\n readonly clearIconClass = input<string>('fa fa-xmark');\n\n private readonly disabledState = signal(false);\n\n readonly isDisabled = computed(() =>\n this.disabled() ||\n this.disabledState()\n );\n\n readonly value = signal<Date | null>(null);\n\n readonly displayValue = computed(() => {\n\n const value = this.value();\n\n if (!value) {\n return '';\n }\n\n if (this.calendarType() === 'jalali') {\n return new YsPersianDatePipe().transform(\n value,\n 'shortDate'\n );\n }\n\n return value.toLocaleDateString('en-CA');\n\n });\n\n private onChange = (_: Date | null) => { };\n private onTouched = () => { };\n\n writeValue(value: Date | null): void {\n this.value.set(\n value ?? null\n );\n }\n\n registerOnChange(fn: (value: Date | null) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabledState.set(isDisabled);\n }\n\n valueChanged(value: Date | null, dropdown: any) {\n\n this.value.set(value);\n\n this.onChange(value);\n\n this.onTouched();\n\n if (this.autoClose() && value) {\n dropdown.close();\n }\n\n }\n\n clear(event: MouseEvent) {\n\n event.stopPropagation();\n\n this.value.set(null);\n\n this.onChange(null);\n\n this.onTouched();\n\n }\n\n}\n","<div ngbDropdown #dropdown=\"ngbDropdown\" [container]=\"container()\" class=\"ys-datepicker-popup\">\n\n <div class=\"input-group\">\n\n <input type=\"text\" class=\"form-control\" [placeholder]=\"placeholder()\" [value]=\"displayValue()\"\n [readonly]=\"readonly()\" [disabled]=\"isDisabled()\" ngbDropdownToggle>\n\n @if(value()) {\n\n <button type=\"button\" class=\"btn btn-outline-secondary\" [disabled]=\"isDisabled()\" (click)=\"clear($event)\">\n <i [class]=\"clearIconClass()\"></i>\n </button>\n\n }\n\n <button type=\"button\" class=\"btn btn-outline-secondary\" [disabled]=\"isDisabled()\" ngbDropdownToggle>\n <i [class]=\"calendarIconClass()\"></i>\n </button>\n\n </div>\n\n <div ngbDropdownMenu class=\"p-0 border-0 shadow\">\n\n @if(calendarType() === 'jalali') {\n\n <ys-datepicker-jalali [value]=\"value()\" [disabled]=\"isDisabled()\" [firstDayOfWeek]=\"firstDayOfWeek() ?? 6\"\n [weekend]=\"weekend() ?? [5]\" [showFooter]=\"showFooter()\" [todayLabel]=\"todayLabel() ?? 'امروز'\"\n (valueChange)=\"valueChanged($event, dropdown)\" [outsideDays]=\"outsideDays()\"\n [displayMonths]=\"displayMonths()\">\n </ys-datepicker-jalali>\n\n }\n\n @else {\n\n <ys-datepicker-gregorian [value]=\"value()\" [disabled]=\"isDisabled()\" [firstDayOfWeek]=\"firstDayOfWeek() ?? 1\"\n [weekend]=\"weekend() ?? [6,7]\" [showFooter]=\"showFooter()\" [todayLabel]=\"todayLabel() ?? 'Today'\"\n (valueChange)=\"valueChanged($event, dropdown)\" [outsideDays]=\"outsideDays()\"\n [displayMonths]=\"displayMonths()\">\n </ys-datepicker-gregorian>\n\n }\n\n </div>\n\n</div>","import { ChangeDetectionStrategy, Component, computed, forwardRef, input, signal } from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\nimport { CalendarType, compareDates, DateRange, JalaliDate, OutsideDaysType } from '@yoozsoft/yoozsoft-ng/date';\nimport { YsDatepickerGregorian } from '../ys-datepicker-gregorian/ys-datepicker-gregorian';\nimport { YsDatepickerJalali } from '../ys-datepicker-jalali/ys-datepicker-jalali';\n\n@Component({\n selector: 'ys-datepicker-range',\n imports: [\n FormsModule,\n YsDatepickerGregorian,\n YsDatepickerJalali\n ],\n templateUrl: './ys-datepicker-range.html',\n styleUrl: './ys-datepicker-range.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => YsDatepickerRange),\n multi: true\n }\n ]\n})\nexport class YsDatepickerRange implements ControlValueAccessor {\n\n readonly calendarType = input<CalendarType>('gregorian');\n\n readonly disabled = input(false);\n\n readonly firstDayOfWeek = input<number>();\n\n readonly weekend = input<number[]>();\n\n readonly showFooter = input(true);\n\n readonly todayLabel = input<string>();\n\n readonly outsideDays = input<OutsideDaysType>('visible');\n\n readonly displayMonths = input<number>(2);\n\n private readonly disabledState = signal(false);\n\n readonly isDisabled = computed(() =>\n this.disabled() ||\n this.disabledState()\n );\n\n readonly fromDate = signal<NgbDateStruct | null>(null);\n\n readonly toDate = signal<NgbDateStruct | null>(null);\n\n readonly hoveredDate = signal<NgbDateStruct | null>(null);\n\n protected onChange = (_: DateRange | null) => { };\n protected onTouched = () => { };\n\n writeValue(value: DateRange | null): void {\n\n if (!value) {\n\n this.fromDate.set(null);\n this.toDate.set(null);\n\n return;\n\n }\n\n this.fromDate.set(\n value.from\n ? this.fromJsDate(value.from)\n : null\n );\n\n this.toDate.set(\n value.to\n ? this.fromJsDate(value.to)\n : null\n );\n\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabledState.set(isDisabled);\n }\n\n select(date: NgbDateStruct) {\n\n const from = this.fromDate();\n const to = this.toDate();\n\n if (!from) {\n\n this.fromDate.set(date);\n\n return;\n\n }\n\n if (from && !to && compareDates(date, from) >= 0) {\n\n this.toDate.set(date);\n\n this.emitValue();\n\n return;\n\n }\n\n this.fromDate.set(date);\n\n this.toDate.set(null);\n\n }\n\n hover(date: NgbDateStruct) {\n this.hoveredDate.set(date);\n }\n\n private emitValue() {\n\n this.onChange({\n\n from: this.fromDate()\n ? this.toJsDate(this.fromDate()!)\n : null,\n\n to: this.toDate()\n ? this.toJsDate(this.toDate()!)\n : null\n\n });\n\n this.onTouched();\n\n }\n\n private fromJsDate(date: Date): NgbDateStruct {\n\n if (this.calendarType() === 'jalali') {\n\n return JalaliDate.toNgbDateStruct(\n JalaliDate.fromDate(date)\n );\n\n }\n\n return {\n year: date.getFullYear(),\n month: date.getMonth() + 1,\n day: date.getDate()\n };\n\n }\n\n private toJsDate(date: NgbDateStruct): Date {\n\n if (this.calendarType() === 'jalali') {\n\n return JalaliDate.toDate(\n JalaliDate.fromNgbDateStruct(date)\n );\n\n }\n\n return new Date(\n date.year,\n date.month - 1,\n date.day\n );\n\n }\n\n}\n","@if(calendarType() === 'jalali') {\n\n<ys-datepicker-jalali [disabled]=\"isDisabled()\" [firstDayOfWeek]=\"firstDayOfWeek() ?? 6\" [weekend]=\"weekend() ?? [5]\"\n [showFooter]=\"showFooter()\" [todayLabel]=\"todayLabel() ?? 'امروز'\" [rangeMode]=\"true\" [fromDate]=\"fromDate()\"\n [toDate]=\"toDate()\" [hoveredDate]=\"hoveredDate()\" (dateSelect)=\"select($event)\" (dateHover)=\"hover($event)\"\n [outsideDays]=\"outsideDays()\" [displayMonths]=\"displayMonths()\">\n</ys-datepicker-jalali>\n\n}\n\n@else {\n\n<ys-datepicker-gregorian [disabled]=\"isDisabled()\" [firstDayOfWeek]=\"firstDayOfWeek() ?? 1\"\n [weekend]=\"weekend() ?? [6,7]\" [showFooter]=\"showFooter()\" [todayLabel]=\"todayLabel() ?? 'Today'\" [rangeMode]=\"true\"\n [fromDate]=\"fromDate()\" [toDate]=\"toDate()\" [hoveredDate]=\"hoveredDate()\" (dateSelect)=\"select($event)\"\n (dateHover)=\"hover($event)\" [outsideDays]=\"outsideDays()\" [displayMonths]=\"displayMonths()\">\n</ys-datepicker-gregorian>\n\n}","import { ChangeDetectionStrategy, Component, computed, forwardRef, input, signal } from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\nimport { CalendarType, DateRange, JalaliDate, OutsideDaysType } from '@yoozsoft/yoozsoft-ng/date';\nimport { YsDatepickerRange } from '../ys-datepicker-range/ys-datepicker-range';\n\n@Component({\n selector: 'ys-datepicker-range-popup',\n imports: [\n FormsModule,\n NgbDropdownModule,\n YsDatepickerRange\n ],\n templateUrl: './ys-datepicker-range-popup.html',\n styleUrl: './ys-datepicker-range-popup.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => YsDatepickerRangePopup),\n multi: true\n }\n ]\n})\nexport class YsDatepickerRangePopup implements ControlValueAccessor {\n\n readonly calendarType = input<CalendarType>('gregorian');\n\n readonly disabled = input(false);\n\n readonly readonly = input(false);\n\n readonly placeholder = input('Select date range');\n\n readonly firstDayOfWeek = input<number>();\n\n readonly weekend = input<number[]>();\n\n readonly showFooter = input(true);\n\n readonly todayLabel = input<string>();\n\n readonly outsideDays = input<OutsideDaysType>('visible');\n\n readonly displayMonths = input<number>(2);\n\n readonly autoClose = input(true);\n\n readonly container = input<'body' | null>(null);\n\n readonly calendarIconClass = input<string>('fa fa-calendar');\n readonly clearIconClass = input<string>('fa fa-xmark');\n\n private readonly disabledState = signal(false);\n\n readonly isDisabled = computed(() =>\n this.disabled() ||\n this.disabledState()\n );\n\n readonly value = signal<DateRange | null>(null);\n\n readonly displayValue = computed(() => {\n\n const range = this.value();\n\n if (!range?.from) {\n return '';\n }\n\n if (!range.to) {\n return this.formatDate(range.from);\n }\n\n return `${this.formatDate(range.from)} - ${this.formatDate(range.to)}`;\n\n });\n\n protected onChange = (_: DateRange | null) => { };\n protected onTouched = () => { };\n\n writeValue(value: DateRange | null): void {\n this.value.set(value);\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabledState.set(isDisabled);\n }\n\n valueChanged(value: DateRange | null, dropdown: any) {\n\n this.value.set(value);\n\n this.onChange(value);\n\n this.onTouched();\n\n if (this.autoClose() && value?.from && value?.to) {\n dropdown.close();\n }\n\n }\n\n clear(event: MouseEvent) {\n\n event.stopPropagation();\n\n this.value.set(null);\n\n this.onChange(null);\n\n this.onTouched();\n\n }\n\n private formatDate(value: Date): string {\n\n if (this.calendarType() === 'jalali') {\n\n return JalaliDate.format(\n value,\n 'yyyy/MM/dd'\n );\n\n }\n\n const year = value.getFullYear();\n\n const month = String(\n value.getMonth() + 1\n ).padStart(2, '0');\n\n const day = String(\n value.getDate()\n ).padStart(2, '0');\n\n return `${year}/${month}/${day}`;\n\n }\n\n}\n","<div ngbDropdown #dropdown=\"ngbDropdown\" class=\"ys-datepicker-range-popup\" [container]=\"container()\">\n\n <div class=\"input-group\">\n\n <input type=\"text\" class=\"form-control\" readonly ngbDropdownToggle [value]=\"displayValue()\"\n [readonly]=\"readonly()\" [placeholder]=\"placeholder()\" [disabled]=\"isDisabled()\" />\n\n @if(value()) {\n\n <button type=\"button\" class=\"btn btn-outline-secondary\" [disabled]=\"isDisabled()\" (click)=\"clear($event)\">\n <i [class]=\"clearIconClass()\"></i>\n </button>\n\n }\n\n <button type=\"button\" class=\"btn btn-outline-secondary\" [disabled]=\"isDisabled()\" ngbDropdownToggle>\n <i [class]=\"calendarIconClass()\"></i>\n </button>\n\n </div>\n\n <div ngbDropdownMenu class=\"p-0 border-0 shadow\">\n\n <ys-datepicker-range [calendarType]=\"calendarType()\" [disabled]=\"isDisabled()\"\n [firstDayOfWeek]=\"firstDayOfWeek()\" [weekend]=\"weekend()\" [showFooter]=\"showFooter()\"\n [todayLabel]=\"todayLabel()\" [ngModel]=\"value()\" (ngModelChange)=\"valueChanged($event, dropdown)\"\n [outsideDays]=\"outsideDays()\" [displayMonths]=\"displayMonths()\">\n </ys-datepicker-range>\n\n </div>\n\n</div>","import { ChangeDetectionStrategy, Component, computed, forwardRef, input, signal } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { CalendarType, OutsideDaysType } from '@yoozsoft/yoozsoft-ng/date';\nimport { YsDatepickerGregorian } from '../ys-datepicker-gregorian/ys-datepicker-gregorian';\nimport { YsDatepickerJalali } from '../ys-datepicker-jalali/ys-datepicker-jalali';\n\n@Component({\n selector: 'ys-datepicker',\n imports: [\n YsDatepickerGregorian,\n YsDatepickerJalali\n ],\n templateUrl: './ys-datepicker.html',\n styleUrl: './ys-datepicker.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => YsDatepicker),\n multi: true\n }\n ]\n})\nexport class YsDatepicker implements ControlValueAccessor {\n\n readonly calendarType = input<CalendarType>('gregorian');\n\n readonly disabled = input(false);\n\n readonly firstDayOfWeek = input<number>();\n\n readonly weekend = input<number[]>();\n\n readonly showFooter = input(true);\n\n readonly todayLabel = input<string>();\n\n readonly outsideDays = input<OutsideDaysType>('visible');\n\n private readonly disabledState = signal(false);\n\n readonly isDisabled = computed(() =>\n this.disabled() ||\n this.disabledState()\n );\n\n readonly value = signal<Date | null>(null);\n\n private onChange = (_: Date | null) => { };\n private onTouched = () => { };\n\n writeValue(value: Date | null): void {\n this.value.set(value ?? null);\n }\n\n registerOnChange(fn: (value: Date | null) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabledState.set(isDisabled);\n }\n\n valueChanged(value: Date | null) {\n\n this.value.set(value);\n\n this.onChange(value);\n\n this.onTouched();\n\n }\n\n}\n","@if(calendarType() === 'jalali') {\n\n<ys-datepicker-jalali [value]=\"value()\" [disabled]=\"isDisabled()\" [firstDayOfWeek]=\"firstDayOfWeek() ?? 6\"\n [weekend]=\"weekend() ?? [5]\" [showFooter]=\"showFooter()\" [todayLabel]=\"todayLabel() ?? 'امروز'\"\n (valueChange)=\"valueChanged($event)\" [outsideDays]=\"outsideDays()\">\n</ys-datepicker-jalali>\n\n}\n@else {\n\n<ys-datepicker-gregorian [value]=\"value()\" [disabled]=\"isDisabled()\" [firstDayOfWeek]=\"firstDayOfWeek() ?? 1\"\n [weekend]=\"weekend() ?? [6,7]\" [showFooter]=\"showFooter()\" [todayLabel]=\"todayLabel() ?? 'Today'\"\n (valueChange)=\"valueChanged($event)\" [outsideDays]=\"outsideDays()\">\n</ys-datepicker-gregorian>\n\n}","/*\r\n * Public API Surface of ys-datepicker\r\n */\r\n\r\nexport * from './src/ys-datepicker-popup/ys-datepicker-popup';\r\nexport * from './src/ys-datepicker-range-popup/ys-datepicker-range-popup';\r\nexport * from './src/ys-datepicker-range/ys-datepicker-range';\r\nexport * from './src/ys-datepicker/ys-datepicker';\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { isPlatformBrowser, NgTemplateOutlet, NgClass } from '@angular/common';
2
2
  import * as i0 from '@angular/core';
3
- import { inject, ElementRef, PLATFORM_ID, input, output, signal, computed, effect, forwardRef, HostListener, Component } from '@angular/core';
3
+ import { inject, ElementRef, PLATFORM_ID, input, output, signal, computed, effect, forwardRef, HostListener, ChangeDetectionStrategy, Component } from '@angular/core';
4
4
  import * as i1 from '@angular/forms';
5
5
  import { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
6
6
 
@@ -8,71 +8,94 @@ class YsDropdown {
8
8
  elRef = inject(ElementRef);
9
9
  platformId = inject(PLATFORM_ID);
10
10
  /** List of options */
11
- options = input([], ...(ngDevMode ? [{ debugName: "options" }] : /* istanbul ignore next */ []));
11
+ options = input([], /* @ts-ignore */
12
+ ...(ngDevMode ? [{ debugName: "options" }] : /* istanbul ignore next */ []));
12
13
  /** Field of object that display as label */
13
- optionLabel = input('label', ...(ngDevMode ? [{ debugName: "optionLabel" }] : /* istanbul ignore next */ []));
14
- placeholder = input('', ...(ngDevMode ? [{ debugName: "placeholder" }] : /* istanbul ignore next */ []));
15
- searchPlaceholder = input('', ...(ngDevMode ? [{ debugName: "searchPlaceholder" }] : /* istanbul ignore next */ []));
16
- selectedMaxLength = input(3, ...(ngDevMode ? [{ debugName: "selectedMaxLength" }] : /* istanbul ignore next */ []));
17
- selectedMaxLengthTemplate = input('{length} items selected', ...(ngDevMode ? [{ debugName: "selectedMaxLengthTemplate" }] : /* istanbul ignore next */ []));
18
- selectionSeparator = input(", ", ...(ngDevMode ? [{ debugName: "selectionSeparator" }] : /* istanbul ignore next */ []));
19
- dropDownToggleIconClass = input("fa fa-chevron-down", ...(ngDevMode ? [{ debugName: "dropDownToggleIconClass" }] : /* istanbul ignore next */ []));
20
- clearIconClass = input("fa fa-times", ...(ngDevMode ? [{ debugName: "clearIconClass" }] : /* istanbul ignore next */ []));
21
- multipleCheckIconClass = input("fa fa-check", ...(ngDevMode ? [{ debugName: "multipleCheckIconClass" }] : /* istanbul ignore next */ []));
14
+ optionLabel = input('label', /* @ts-ignore */
15
+ ...(ngDevMode ? [{ debugName: "optionLabel" }] : /* istanbul ignore next */ []));
16
+ placeholder = input('', /* @ts-ignore */
17
+ ...(ngDevMode ? [{ debugName: "placeholder" }] : /* istanbul ignore next */ []));
18
+ searchPlaceholder = input('', /* @ts-ignore */
19
+ ...(ngDevMode ? [{ debugName: "searchPlaceholder" }] : /* istanbul ignore next */ []));
20
+ selectedMaxLength = input(3, /* @ts-ignore */
21
+ ...(ngDevMode ? [{ debugName: "selectedMaxLength" }] : /* istanbul ignore next */ []));
22
+ selectedMaxLengthTemplate = input('{length} items selected', /* @ts-ignore */
23
+ ...(ngDevMode ? [{ debugName: "selectedMaxLengthTemplate" }] : /* istanbul ignore next */ []));
24
+ selectionSeparator = input(', ', /* @ts-ignore */
25
+ ...(ngDevMode ? [{ debugName: "selectionSeparator" }] : /* istanbul ignore next */ []));
26
+ dropDownToggleIconClass = input('fa fa-chevron-down', /* @ts-ignore */
27
+ ...(ngDevMode ? [{ debugName: "dropDownToggleIconClass" }] : /* istanbul ignore next */ []));
28
+ clearIconClass = input('fa fa-times', /* @ts-ignore */
29
+ ...(ngDevMode ? [{ debugName: "clearIconClass" }] : /* istanbul ignore next */ []));
30
+ multipleCheckIconClass = input('fa fa-check', /* @ts-ignore */
31
+ ...(ngDevMode ? [{ debugName: "multipleCheckIconClass" }] : /* istanbul ignore next */ []));
22
32
  /** Multiple choice mode */
23
- multiple = input(false, ...(ngDevMode ? [{ debugName: "multiple" }] : /* istanbul ignore next */ []));
24
- showClear = input(false, ...(ngDevMode ? [{ debugName: "showClear" }] : /* istanbul ignore next */ []));
33
+ multiple = input(false, /* @ts-ignore */
34
+ ...(ngDevMode ? [{ debugName: "multiple" }] : /* istanbul ignore next */ []));
35
+ showClear = input(false, /* @ts-ignore */
36
+ ...(ngDevMode ? [{ debugName: "showClear" }] : /* istanbul ignore next */ []));
25
37
  /** Search capability */
26
- searchable = input(false, ...(ngDevMode ? [{ debugName: "searchable" }] : /* istanbul ignore next */ []));
27
- disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
38
+ searchable = input(false, /* @ts-ignore */
39
+ ...(ngDevMode ? [{ debugName: "searchable" }] : /* istanbul ignore next */ []));
40
+ disabled = input(false, /* @ts-ignore */
41
+ ...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
28
42
  /** Custom template for items */
29
- itemTemplate = input(...(ngDevMode ? [undefined, { debugName: "itemTemplate" }] : /* istanbul ignore next */ []));
43
+ itemTemplate = input(/* @ts-ignore */
44
+ ...(ngDevMode ? [undefined, { debugName: "itemTemplate" }] : /* istanbul ignore next */ []));
30
45
  /** Output event when selection changes */
31
46
  selectionChange = output();
32
- searchTerm = signal('', ...(ngDevMode ? [{ debugName: "searchTerm" }] : /* istanbul ignore next */ []));
33
- isOpen = signal(false, ...(ngDevMode ? [{ debugName: "isOpen" }] : /* istanbul ignore next */ []));
34
- highlightedIndex = signal(-1, ...(ngDevMode ? [{ debugName: "highlightedIndex" }] : /* istanbul ignore next */ []));
47
+ searchTerm = signal('', /* @ts-ignore */
48
+ ...(ngDevMode ? [{ debugName: "searchTerm" }] : /* istanbul ignore next */ []));
49
+ isOpen = signal(false, /* @ts-ignore */
50
+ ...(ngDevMode ? [{ debugName: "isOpen" }] : /* istanbul ignore next */ []));
51
+ highlightedIndex = signal(-1, /* @ts-ignore */
52
+ ...(ngDevMode ? [{ debugName: "highlightedIndex" }] : /* istanbul ignore next */ []));
35
53
  /** Selected value */
36
- selected = signal(null, ...(ngDevMode ? [{ debugName: "selected" }] : /* istanbul ignore next */ []));
37
- disabledState = signal(false, ...(ngDevMode ? [{ debugName: "disabledState" }] : /* istanbul ignore next */ []));
38
- isDisabled = computed(() => this.disabled() || this.disabledState(), ...(ngDevMode ? [{ debugName: "isDisabled" }] : /* istanbul ignore next */ []));
54
+ selected = signal(null, /* @ts-ignore */
55
+ ...(ngDevMode ? [{ debugName: "selected" }] : /* istanbul ignore next */ []));
56
+ disabledState = signal(false, /* @ts-ignore */
57
+ ...(ngDevMode ? [{ debugName: "disabledState" }] : /* istanbul ignore next */ []));
58
+ isDisabled = computed(() => this.disabled() || this.disabledState(), /* @ts-ignore */
59
+ ...(ngDevMode ? [{ debugName: "isDisabled" }] : /* istanbul ignore next */ []));
39
60
  filteredOptions = computed(() => {
40
61
  if (!this.searchable() || !this.searchTerm().trim()) {
41
62
  return this.normalizedOptions();
42
63
  }
43
64
  const term = this.searchTerm().toLowerCase();
44
- return this.normalizedOptions().filter(opt => opt.label.toLowerCase().includes(term));
45
- }, ...(ngDevMode ? [{ debugName: "filteredOptions" }] : /* istanbul ignore next */ []));
46
- normalizedOptions = computed(() => this.normalizeOptions(this.options()), ...(ngDevMode ? [{ debugName: "normalizedOptions" }] : /* istanbul ignore next */ []));
65
+ return this.normalizedOptions().filter((opt) => opt.label.toLowerCase().includes(term));
66
+ }, /* @ts-ignore */
67
+ ...(ngDevMode ? [{ debugName: "filteredOptions" }] : /* istanbul ignore next */ []));
68
+ normalizedOptions = computed(() => this.normalizeOptions(this.options()), /* @ts-ignore */
69
+ ...(ngDevMode ? [{ debugName: "normalizedOptions" }] : /* istanbul ignore next */ []));
47
70
  hasSelection = computed(() => this.multiple()
48
71
  ? Array.isArray(this.selected()) && this.selected().length > 0
49
- : !!this.selected(), ...(ngDevMode ? [{ debugName: "hasSelection" }] : /* istanbul ignore next */ []));
72
+ : !!this.selected(), /* @ts-ignore */
73
+ ...(ngDevMode ? [{ debugName: "hasSelection" }] : /* istanbul ignore next */ []));
50
74
  selectedLabels = computed(() => {
51
75
  if (this.multiple()) {
52
76
  if (!Array.isArray(this.selected()))
53
77
  return '';
54
78
  // لیست object های انتخابی را پیدا می‌کنیم
55
- const selectedItems = this.normalizedOptions().filter(o => this.selected().includes(o.value));
79
+ const selectedItems = this.normalizedOptions().filter((o) => this.selected().includes(o.value));
56
80
  const count = selectedItems.length;
57
81
  // اگر بیشتر از حد مجاز باشد → متن سفارشی
58
82
  if (count > this.selectedMaxLength()) {
59
83
  return this.selectedMaxLengthTemplate().replace('{length}', count + '');
60
84
  }
61
85
  // در غیر این‌صورت لیبل‌ها را نمایش بده
62
- return selectedItems.map(o => o.label).join(this.selectionSeparator());
86
+ return selectedItems.map((o) => o.label).join(this.selectionSeparator());
63
87
  }
64
- const item = this.normalizedOptions().find(o => o.value === this.selected());
88
+ const item = this.normalizedOptions().find((o) => o.value === this.selected());
65
89
  return item?.label ?? '';
66
- }, ...(ngDevMode ? [{ debugName: "selectedLabels" }] : /* istanbul ignore next */ []));
90
+ }, /* @ts-ignore */
91
+ ...(ngDevMode ? [{ debugName: "selectedLabels" }] : /* istanbul ignore next */ []));
67
92
  _onChange = (_) => { };
68
93
  _onTouched = () => { };
69
94
  constructor() {
70
95
  effect(() => this.selected.set(this.multiple() ? [] : null));
71
96
  }
72
97
  writeValue(obj) {
73
- this.selected.set(this.multiple()
74
- ? Array.isArray(obj) ? obj : []
75
- : obj);
98
+ this.selected.set(this.multiple() ? (Array.isArray(obj) ? obj : []) : obj);
76
99
  }
77
100
  registerOnChange(fn) {
78
101
  this._onChange = fn;
@@ -86,14 +109,14 @@ class YsDropdown {
86
109
  normalizeOptions(list) {
87
110
  if (!Array.isArray(list))
88
111
  return [];
89
- return list.map(item => {
112
+ return list.map((item) => {
90
113
  // 1. اگر primitive بود
91
114
  if (['string', 'number', 'boolean'].includes(typeof item)) {
92
115
  return {
93
116
  raw: item,
94
117
  label: String(item),
95
118
  value: item,
96
- disabled: false
119
+ disabled: false,
97
120
  };
98
121
  }
99
122
  // 2. اگر OptionItem<T> بود
@@ -103,7 +126,7 @@ class YsDropdown {
103
126
  label: item.label ?? String(item.value),
104
127
  value: item.value,
105
128
  disabled: item.disabled,
106
- ...item
129
+ ...item,
107
130
  };
108
131
  }
109
132
  // 3. object معمولی
@@ -111,12 +134,12 @@ class YsDropdown {
111
134
  raw: item,
112
135
  label: item[this.optionLabel()] ?? JSON.stringify(item),
113
136
  value: item,
114
- disabled: false
137
+ disabled: false,
115
138
  };
116
139
  });
117
140
  }
118
141
  toggleDropdown() {
119
- this.isOpen.update(v => !v);
142
+ this.isOpen.update((v) => !v);
120
143
  this.highlightedIndex.set(-1);
121
144
  }
122
145
  selectOption(option) {
@@ -124,9 +147,7 @@ class YsDropdown {
124
147
  return;
125
148
  const value = option.value;
126
149
  if (this.multiple()) {
127
- this.selected.update((list) => list?.includes(value)
128
- ? list.filter(x => x !== value)
129
- : [...(list || []), value]);
150
+ this.selected.update((list) => list?.includes(value) ? list.filter((x) => x !== value) : [...(list || []), value]);
130
151
  }
131
152
  else {
132
153
  this.selected.set(value);
@@ -138,9 +159,7 @@ class YsDropdown {
138
159
  }
139
160
  isSelected(option) {
140
161
  if (this.multiple()) {
141
- return Array.isArray(this.selected())
142
- ? this.selected().includes(option.value)
143
- : false;
162
+ return Array.isArray(this.selected()) ? this.selected().includes(option.value) : false;
144
163
  }
145
164
  return this.selected() === option.value;
146
165
  }
@@ -157,12 +176,12 @@ class YsDropdown {
157
176
  switch (event.key) {
158
177
  case 'ArrowDown':
159
178
  event.preventDefault();
160
- this.highlightedIndex.update(i => (i + 1) % list.length);
179
+ this.highlightedIndex.update((i) => (i + 1) % list.length);
161
180
  this.scrollToHighlighted();
162
181
  break;
163
182
  case 'ArrowUp':
164
183
  event.preventDefault();
165
- this.highlightedIndex.update(i => i > 0 ? i - 1 : list.length - 1);
184
+ this.highlightedIndex.update((i) => (i > 0 ? i - 1 : list.length - 1));
166
185
  this.scrollToHighlighted();
167
186
  break;
168
187
  case 'Enter':
@@ -215,22 +234,18 @@ class YsDropdown {
215
234
  this.isOpen.set(false);
216
235
  }
217
236
  }
218
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: YsDropdown, deps: [], target: i0.ɵɵFactoryTarget.Component });
219
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: YsDropdown, isStandalone: true, selector: "ys-dropdown", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, optionLabel: { classPropertyName: "optionLabel", publicName: "optionLabel", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, searchPlaceholder: { classPropertyName: "searchPlaceholder", publicName: "searchPlaceholder", isSignal: true, isRequired: false, transformFunction: null }, selectedMaxLength: { classPropertyName: "selectedMaxLength", publicName: "selectedMaxLength", isSignal: true, isRequired: false, transformFunction: null }, selectedMaxLengthTemplate: { classPropertyName: "selectedMaxLengthTemplate", publicName: "selectedMaxLengthTemplate", isSignal: true, isRequired: false, transformFunction: null }, selectionSeparator: { classPropertyName: "selectionSeparator", publicName: "selectionSeparator", isSignal: true, isRequired: false, transformFunction: null }, dropDownToggleIconClass: { classPropertyName: "dropDownToggleIconClass", publicName: "dropDownToggleIconClass", isSignal: true, isRequired: false, transformFunction: null }, clearIconClass: { classPropertyName: "clearIconClass", publicName: "clearIconClass", isSignal: true, isRequired: false, transformFunction: null }, multipleCheckIconClass: { classPropertyName: "multipleCheckIconClass", publicName: "multipleCheckIconClass", isSignal: true, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, showClear: { classPropertyName: "showClear", publicName: "showClear", isSignal: true, isRequired: false, transformFunction: null }, searchable: { classPropertyName: "searchable", publicName: "searchable", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, itemTemplate: { classPropertyName: "itemTemplate", publicName: "itemTemplate", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectionChange: "selectionChange" }, host: { listeners: { "document:click": "onClickOutside($event)" } }, providers: [
237
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: YsDropdown, deps: [], target: i0.ɵɵFactoryTarget.Component });
238
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.7", type: YsDropdown, isStandalone: true, selector: "ys-dropdown", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, optionLabel: { classPropertyName: "optionLabel", publicName: "optionLabel", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, searchPlaceholder: { classPropertyName: "searchPlaceholder", publicName: "searchPlaceholder", isSignal: true, isRequired: false, transformFunction: null }, selectedMaxLength: { classPropertyName: "selectedMaxLength", publicName: "selectedMaxLength", isSignal: true, isRequired: false, transformFunction: null }, selectedMaxLengthTemplate: { classPropertyName: "selectedMaxLengthTemplate", publicName: "selectedMaxLengthTemplate", isSignal: true, isRequired: false, transformFunction: null }, selectionSeparator: { classPropertyName: "selectionSeparator", publicName: "selectionSeparator", isSignal: true, isRequired: false, transformFunction: null }, dropDownToggleIconClass: { classPropertyName: "dropDownToggleIconClass", publicName: "dropDownToggleIconClass", isSignal: true, isRequired: false, transformFunction: null }, clearIconClass: { classPropertyName: "clearIconClass", publicName: "clearIconClass", isSignal: true, isRequired: false, transformFunction: null }, multipleCheckIconClass: { classPropertyName: "multipleCheckIconClass", publicName: "multipleCheckIconClass", isSignal: true, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, showClear: { classPropertyName: "showClear", publicName: "showClear", isSignal: true, isRequired: false, transformFunction: null }, searchable: { classPropertyName: "searchable", publicName: "searchable", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, itemTemplate: { classPropertyName: "itemTemplate", publicName: "itemTemplate", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectionChange: "selectionChange" }, host: { listeners: { "document:click": "onClickOutside($event)" } }, providers: [
220
239
  {
221
240
  provide: NG_VALUE_ACCESSOR,
222
241
  useExisting: forwardRef(() => YsDropdown),
223
242
  multi: true,
224
243
  },
225
- ], ngImport: i0, template: "<div class=\"dropdown ys-dropdown\">\n <div class=\"input-group w-100\">\n <input #inputRef type=\"text\" class=\"form-control\" [value]=\"selectedLabels()\" [placeholder]=\"placeholder()\"\n readonly (click)=\"isOpen.set(true)\" (keydown)=\"onKeyDown($event)\" [disabled]=\"isDisabled()\" />\n <!-- (focus)=\"isOpen.set(true)\" replace with (click)=\"isOpen.set(true)\" (keydown.enter)=\"isOpen.set(true)\" -->\n\n @if(showClear() && hasSelection()){\n <button class=\"btn btn-outline-secondary\" type=\"button\" (click)=\"clearSelection()\" [disabled]=\"isDisabled()\">\n <i [ngClass]=\"clearIconClass()\"></i>\n </button>\n }\n\n <button class=\"btn btn-outline-secondary dropdown-toggle\" type=\"button\" (click)=\"toggleDropdown()\"\n [disabled]=\"isDisabled()\">\n <i [ngClass]=\"dropDownToggleIconClass()\"></i>\n </button>\n </div>\n <div class=\"dropdown-menu w-100 overflow-auto\" [class.show]=\"isOpen()\">\n\n @if(searchable()){\n <div class=\"px-2\">\n <input type=\"text\" class=\"form-control mb-2\" [placeholder]=\"searchPlaceholder()\" [ngModel]=\"searchTerm()\"\n (ngModelChange)=\"searchTerm.set($event)\" (keydown)=\"onKeyDown($event)\">\n </div>\n }\n\n @for (option of filteredOptions(); track option.value) {\n <div class=\"dropdown-item\" (click)=\"selectOption(option)\" [class.active]=\"isSelected(option)\"\n [class.highlighted]=\"$index === highlightedIndex()\">\n\n @if(itemTemplate()){\n <ng-container [ngTemplateOutlet]=\"itemTemplate()\" [ngTemplateOutletContext]=\"{ option: option }\">\n </ng-container>\n } @else {\n @if(multiple()){\n <i class=\"{{multipleCheckIconClass()}} text-success me-1\" [class.invisible]=\"!isSelected(option)\"></i>\n }\n <!-- <span>{{option[optionLabel]}}</span> -->\n <span>{{option.label}}</span>\n }\n </div>\n }\n </div>\n</div>", styles: [".ys-dropdown .dropdown-toggle:after{display:none}.ys-dropdown .dropdown-menu{max-height:200px}.ys-dropdown .dropdown-item.highlighted{color:var(--bs-dropdown-link-hover-color);background-color:var(--bs-dropdown-link-hover-bg)}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
244
+ ], ngImport: i0, template: "<div class=\"dropdown ys-dropdown\">\n <div class=\"input-group w-100\">\n <input #inputRef type=\"text\" class=\"form-control\" [value]=\"selectedLabels()\" [placeholder]=\"placeholder()\"\n readonly (click)=\"isOpen.set(true)\" (keydown)=\"onKeyDown($event)\" [disabled]=\"isDisabled()\" />\n <!-- (focus)=\"isOpen.set(true)\" replace with (click)=\"isOpen.set(true)\" (keydown.enter)=\"isOpen.set(true)\" -->\n\n @if(showClear() && hasSelection()){\n <button class=\"btn btn-outline-secondary\" type=\"button\" (click)=\"clearSelection()\" [disabled]=\"isDisabled()\">\n <i [ngClass]=\"clearIconClass()\"></i>\n </button>\n }\n\n <button class=\"btn btn-outline-secondary dropdown-toggle\" type=\"button\" (click)=\"toggleDropdown()\"\n [disabled]=\"isDisabled()\">\n <i [ngClass]=\"dropDownToggleIconClass()\"></i>\n </button>\n </div>\n <div class=\"dropdown-menu w-100 overflow-auto\" [class.show]=\"isOpen()\">\n\n @if(searchable()){\n <div class=\"px-2\">\n <input type=\"text\" class=\"form-control mb-2\" [placeholder]=\"searchPlaceholder()\" [ngModel]=\"searchTerm()\"\n (ngModelChange)=\"searchTerm.set($event)\" (keydown)=\"onKeyDown($event)\">\n </div>\n }\n\n @for (option of filteredOptions(); track option.value) {\n <div class=\"dropdown-item\" (click)=\"selectOption(option)\" [class.active]=\"isSelected(option)\"\n [class.highlighted]=\"$index === highlightedIndex()\">\n\n @if(itemTemplate()){\n <ng-container [ngTemplateOutlet]=\"itemTemplate()\" [ngTemplateOutletContext]=\"{ option: option }\">\n </ng-container>\n } @else {\n @if(multiple()){\n <i class=\"{{multipleCheckIconClass()}} text-success me-1\" [class.invisible]=\"!isSelected(option)\"></i>\n }\n <!-- <span>{{option[optionLabel]}}</span> -->\n <span>{{option.label}}</span>\n }\n </div>\n }\n </div>\n</div>", styles: [".ys-dropdown .dropdown-toggle:after{display:none}.ys-dropdown .dropdown-menu{max-height:200px}.ys-dropdown .dropdown-item.highlighted{color:var(--bs-dropdown-link-hover-color);background-color:var(--bs-dropdown-link-hover-bg)}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox]):not([ngNoCva])[formControlName],textarea:not([ngNoCva])[formControlName],input:not([type=checkbox]):not([ngNoCva])[formControl],textarea:not([ngNoCva])[formControl],input:not([type=checkbox]):not([ngNoCva])[ngModel],textarea:not([ngNoCva])[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.Eager });
226
245
  }
227
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: YsDropdown, decorators: [{
246
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: YsDropdown, decorators: [{
228
247
  type: Component,
229
- args: [{ selector: 'ys-dropdown', imports: [
230
- NgTemplateOutlet,
231
- FormsModule,
232
- NgClass
233
- ], providers: [
248
+ args: [{ selector: 'ys-dropdown', imports: [NgTemplateOutlet, FormsModule, NgClass], changeDetection: ChangeDetectionStrategy.Eager, providers: [
234
249
  {
235
250
  provide: NG_VALUE_ACCESSOR,
236
251
  useExisting: forwardRef(() => YsDropdown),