@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.
- package/README.md +206 -94
- package/fesm2022/yoozsoft-yoozsoft-ng-autocomplete.mjs +70 -38
- package/fesm2022/yoozsoft-yoozsoft-ng-autocomplete.mjs.map +1 -1
- package/fesm2022/yoozsoft-yoozsoft-ng-datepicker.mjs +194 -109
- package/fesm2022/yoozsoft-yoozsoft-ng-datepicker.mjs.map +1 -1
- package/fesm2022/yoozsoft-yoozsoft-ng-dropdown.mjs +70 -55
- package/fesm2022/yoozsoft-yoozsoft-ng-dropdown.mjs.map +1 -1
- package/fesm2022/yoozsoft-yoozsoft-ng-file-upload.mjs +55 -33
- package/fesm2022/yoozsoft-yoozsoft-ng-file-upload.mjs.map +1 -1
- package/fesm2022/yoozsoft-yoozsoft-ng-footer.mjs +13 -11
- package/fesm2022/yoozsoft-yoozsoft-ng-footer.mjs.map +1 -1
- package/fesm2022/yoozsoft-yoozsoft-ng-loading.mjs +17 -11
- package/fesm2022/yoozsoft-yoozsoft-ng-loading.mjs.map +1 -1
- package/fesm2022/yoozsoft-yoozsoft-ng-navbar.mjs +37 -28
- package/fesm2022/yoozsoft-yoozsoft-ng-navbar.mjs.map +1 -1
- package/fesm2022/yoozsoft-yoozsoft-ng-overlay.mjs +7 -6
- package/fesm2022/yoozsoft-yoozsoft-ng-overlay.mjs.map +1 -1
- package/fesm2022/yoozsoft-yoozsoft-ng-pagination.mjs +39 -28
- package/fesm2022/yoozsoft-yoozsoft-ng-pagination.mjs.map +1 -1
- package/fesm2022/yoozsoft-yoozsoft-ng-password-strength.mjs +65 -39
- package/fesm2022/yoozsoft-yoozsoft-ng-password-strength.mjs.map +1 -1
- package/fesm2022/yoozsoft-yoozsoft-ng-pipes.mjs +3 -3
- package/fesm2022/yoozsoft-yoozsoft-ng-pipes.mjs.map +1 -1
- package/fesm2022/yoozsoft-yoozsoft-ng-progress.mjs +26 -17
- package/fesm2022/yoozsoft-yoozsoft-ng-progress.mjs.map +1 -1
- package/fesm2022/yoozsoft-yoozsoft-ng-rating.mjs +155 -0
- package/fesm2022/yoozsoft-yoozsoft-ng-rating.mjs.map +1 -0
- package/fesm2022/yoozsoft-yoozsoft-ng-select.mjs +47 -33
- package/fesm2022/yoozsoft-yoozsoft-ng-select.mjs.map +1 -1
- package/fesm2022/yoozsoft-yoozsoft-ng-sidebar.mjs +30 -29
- package/fesm2022/yoozsoft-yoozsoft-ng-sidebar.mjs.map +1 -1
- package/fesm2022/yoozsoft-yoozsoft-ng-table.mjs +93 -84
- package/fesm2022/yoozsoft-yoozsoft-ng-table.mjs.map +1 -1
- package/fesm2022/yoozsoft-yoozsoft-ng-tiff-viewer.mjs +41 -27
- package/fesm2022/yoozsoft-yoozsoft-ng-tiff-viewer.mjs.map +1 -1
- package/fesm2022/yoozsoft-yoozsoft-ng-toast.mjs +20 -18
- package/fesm2022/yoozsoft-yoozsoft-ng-toast.mjs.map +1 -1
- package/package.json +12 -4
- package/rating/package.json +4 -0
- 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([],
|
|
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',
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
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,
|
|
24
|
-
|
|
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,
|
|
27
|
-
|
|
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(
|
|
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('',
|
|
33
|
-
|
|
34
|
-
|
|
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,
|
|
37
|
-
|
|
38
|
-
|
|
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
|
-
},
|
|
46
|
-
|
|
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(),
|
|
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
|
-
},
|
|
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: "
|
|
219
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
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: "
|
|
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),
|