@wzrdev/ngx-datepicker 0.1.1 → 0.1.2

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.
@@ -321,14 +321,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
321
321
 
322
322
  class InputDirective {
323
323
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: InputDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
324
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: InputDirective, isStandalone: true, selector: "[ngxInput]", host: { classAttribute: "ngx:block ngx:w-full ngx:font-medium ngx:bg-slate-100 ngx:pl-4 ngx:border-0 ngx:outline-0 ngx:appearance-none ngx:[&::-webkit-calendar-picker-indicator]:hidden" }, ngImport: i0 });
324
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: InputDirective, isStandalone: true, selector: "[ngxInput]", host: { classAttribute: "ngx:max-w-[114px] ngx:font-medium ngx:bg-slate-100 ngx:pl-4 ngx:py-3 ngx:border-0 ngx:outline-0 ngx:appearance-none ngx:[&::-webkit-calendar-picker-indicator]:hidden" }, ngImport: i0 });
325
325
  }
326
326
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: InputDirective, decorators: [{
327
327
  type: Directive,
328
328
  args: [{
329
329
  selector: '[ngxInput]',
330
330
  host: {
331
- class: 'ngx:block ngx:w-full ngx:font-medium ngx:bg-slate-100 ngx:pl-4 ngx:border-0 ngx:outline-0 ngx:appearance-none ngx:[&::-webkit-calendar-picker-indicator]:hidden'
331
+ class: 'ngx:max-w-[114px] ngx:font-medium ngx:bg-slate-100 ngx:pl-4 ngx:py-3 ngx:border-0 ngx:outline-0 ngx:appearance-none ngx:[&::-webkit-calendar-picker-indicator]:hidden'
332
332
  }
333
333
  }]
334
334
  }] });
@@ -1 +1 @@
1
- {"version":3,"file":"wzrdev-ngx-datepicker.mjs","sources":["../../../projects/ngx-datepicker/src/lib/locale/fr.ts","../../../projects/ngx-datepicker/src/lib/locale/en.ts","../../../projects/ngx-datepicker/src/lib/locale/locale.service.ts","../../../projects/ngx-datepicker/src/lib/utils/cn.ts","../../../projects/ngx-datepicker/src/lib/calendar/calendar.service.ts","../../../projects/ngx-datepicker/src/lib/calendar/calendar.component.ts","../../../projects/ngx-datepicker/src/lib/calendar/calendar.component.html","../../../projects/ngx-datepicker/src/lib/date-picker-wrapper/date-picker-wrapper.component.ts","../../../projects/ngx-datepicker/src/lib/date-picker-wrapper/date-picker-wrapper.component.html","../../../projects/ngx-datepicker/src/lib/shared/directives/input.directive.ts","../../../projects/ngx-datepicker/src/lib/shared/mixins/with-control-value-accessor.ts","../../../projects/ngx-datepicker/src/lib/datepicker/datepicker.component.ts","../../../projects/ngx-datepicker/src/lib/datepicker/datepicker.component.html","../../../projects/ngx-datepicker/src/lib/date-range-picker/date-range-picker.component.ts","../../../projects/ngx-datepicker/src/lib/date-range-picker/date-range-picker.component.html","../../../projects/ngx-datepicker/src/public-api.ts","../../../projects/ngx-datepicker/src/wzrdev-ngx-datepicker.ts"],"sourcesContent":["import { DatePickerLocale } from \"./locale.model\";\n\nconst currentYear = new Date().getFullYear();\n\nexport const FR_LOCALE: DatePickerLocale = {\n code: \"fr\",\n months: [\n \"Janvier\",\n \"Février\",\n \"Mars\",\n \"Avril\",\n \"Mai\",\n \"Juin\",\n \"Juillet\",\n \"Août\",\n \"Septembre\",\n \"Octobre\",\n \"Novembre\",\n \"Décembre\",\n ],\n weekdays: [\"Lu\", \"Ma\", \"Me\", \"Je\", \"Ve\", \"Sa\", \"Di\"],\n weekStartsOn: 1,\n years: Array.from({ length: 200 }, (_, i) => currentYear - 100 + i),\n format: date => date.toLocaleDateString(\"fr-FR\"),\n};\n","import { DatePickerLocale } from \"./locale.model\";\n\nconst currentYear = new Date().getFullYear();\n\nexport const EN_LOCALE: DatePickerLocale = {\n code: \"en\",\n months: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ],\n weekdays: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],\n weekStartsOn: 0,\n years: Array.from({ length: 200 }, (_, i) => currentYear - 100 + i),\n format: date => date.toLocaleDateString(\"en-US\"),\n};\n","import { Injectable } from \"@angular/core\";\nimport { BehaviorSubject } from \"rxjs\";\nimport { DatePickerLocale } from \"./locale.model\";\nimport { FR_LOCALE } from \"./fr\";\nimport { EN_LOCALE } from \"./en\";\n\n@Injectable({ providedIn: \"root\" })\nexport class DatePickerLocaleService {\n private readonly locales: Record<string, DatePickerLocale> = {\n fr: FR_LOCALE,\n en: EN_LOCALE,\n };\n\n private locale$ = new BehaviorSubject<DatePickerLocale>(FR_LOCALE);\n\n public setLocale(code: string) {\n this.locale$.next(this.locales[code] ?? FR_LOCALE);\n }\n\n public get localeChanges$() {\n return this.locale$.asObservable();\n }\n\n public get current() {\n return this.locale$.value;\n }\n}\n","import { ClassValue, clsx } from \"clsx\";\nimport { extendTailwindMerge } from \"tailwind-merge\";\n\nconst customTwMerge = extendTailwindMerge({\n extend: {\n classGroups: {},\n },\n});\n\nexport const cn = (...inputs: ClassValue[]) => {\n return customTwMerge(clsx(inputs));\n};\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class CalendarService {}\n","import {\n Component,\n inject,\n output,\n input,\n linkedSignal, ChangeDetectionStrategy, computed, signal, model\n} from \"@angular/core\";\nimport { DatePickerLocaleService } from \"../locale/locale.service\";\nimport { cn } from '../utils/cn';\nimport { DatePipe } from '@angular/common';\nimport { DateRange } from '../shared/models/daterange';\nimport { CalendarService } from './calendar.service';\n\ninterface Day {\n date: Date;\n isToday: boolean;\n isDisabled: boolean;\n isSelected: boolean;\n isInRange: boolean;\n}\n\n@Component({\n selector: \"ngx-calendar\",\n templateUrl: \"./calendar.component.html\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n DatePipe\n ],\n providers: [CalendarService],\n host: {\n \"(keydown)\": \"handleKeyDown($event)\"\n },\n})\nexport class CalendarComponent {\n public readonly locale = inject(DatePickerLocaleService);\n\n public readonly startDate = model<Date | null>();\n public readonly endDate = model<Date | null>();\n public readonly minDate = input<Date | null>();\n public readonly maxDate = input<Date | null>();\n\n public readonly hoveredDate = signal<Date | null>(null);\n public readonly enableRange = input<boolean>(false);\n\n public readonly selectedDate = output<Date>();\n public readonly selectedDateRange = output<DateRange>();\n public readonly selectedDaysCount = output<number>();\n public readonly hoverDate = output<Date>();\n\n public readonly days = linkedSignal(() => {\n const startDate = this.startDate();\n const endDate = this.endDate();\n const displayDate = this.displayDate();\n\n const year = displayDate.getFullYear();\n const month = displayDate.getMonth();\n\n const today = new Date();\n const first = new Date(year, month, 1);\n const last = new Date(year, month + 1, 0);\n\n const days: Day[] = [];\n for (let d = new Date(first); d <= last; d.setDate(d.getDate() + 1)) {\n const day = {\n date: new Date(d),\n isDisabled: this.isDisabled(d),\n isToday: this.isSame(d, today),\n isSelected: this.isSame(d, startDate) || this.isSame(d, endDate),\n isInRange: this.isInRange(d),\n } as Day;\n days.push(day);\n }\n return days;\n });\n\n public daysInRange = computed(() => {\n const days = this.days();\n return days.filter(day => day.isInRange);\n });\n\n public daysDisabled = computed(() => {\n const days = this.days();\n return days.filter(day => day.isDisabled);\n });\n\n public latestDayInRange = computed(() => {\n const rangeDays = this.daysInRange();\n return rangeDays[rangeDays.length - 1];\n });\n\n public latestDayDisabled = computed(() => {\n const daysDisabled = this.daysDisabled();\n return daysDisabled[daysDisabled.length - 1];\n });\n\n public firstDayDisabled = computed(() => {\n const daysDisabled = this.daysDisabled();\n return daysDisabled[0];\n });\n\n public readonly displayDate = linkedSignal(() => {\n const start = this.startDate();\n return start ?? new Date();\n });\n\n public readonly focusedDate = linkedSignal(() => {\n return new Date(this.displayDate());\n });\n\n protected readonly cn = cn;\n\n build() {\n // keep the focusedDate in the current month\n if (this.focusedDate().getMonth() !== this.displayDate().getMonth()) {\n this.focusedDate.set(new Date(this.displayDate().getFullYear(), this.displayDate().getMonth(), 1));\n }\n }\n\n public prevMonth(): void {\n this.displayDate.update((prevState) => {\n return new Date(prevState.getFullYear(), prevState.getMonth() - 1, prevState.getDate());\n })\n }\n\n public nextMonth(): void {\n this.displayDate.update((prevState) => {\n return new Date(prevState.getFullYear(), prevState.getMonth() + 1, prevState.getDate());\n })\n }\n\n public isSame(a?: Date | null, b?: Date | null): boolean {\n if (!a || !b) return false;\n return a.toDateString() === b.toDateString();\n }\n\n public isDisabled(date: Date): boolean {\n const minDate = this.minDate();\n const maxDate = this.maxDate();\n\n const normalize = (d: Date) =>\n new Date(d.getFullYear(), d.getMonth(), d.getDate()).getTime();\n\n const current = normalize(date);\n\n if (minDate && current < normalize(minDate)) {\n return true;\n }\n\n return !!(maxDate && current > normalize(maxDate));\n\n\n }\n\n public isInRange(d: Date): boolean {\n const start = this.startDate();\n const end = this.endDate();\n const hover = this.hoveredDate();\n\n if (!start || !d) return false;\n if (start && end) return d >= start && d <= end;\n if (start && hover) {\n return d >= start && d <= hover;\n }\n\n return false;\n };\n\n public onDaySelect(date: Date): void {\n const selectedDays = this.days().filter(day => day.isSelected);\n const startDate = this.startDate();\n const endDate = this.endDate();\n\n\n if (this.enableRange()) {\n\n if (selectedDays.length === 2\n || startDate && date < startDate\n || endDate && endDate <= date\n || endDate && date <= endDate) {\n this.resetStartDate(date);\n }\n\n if (!startDate) {\n this.startDate.set(date);\n } else if (startDate && !endDate && startDate < date) {\n this.endDate.set(date);\n }\n\n } else {\n this.resetStartDate(date);\n }\n\n if (this.enableRange()) {\n this.selectedDateRange.emit({ startDate: this.startDate() ?? null, endDate: this.endDate() ?? null });\n } else {\n this.selectedDate.emit(date);\n }\n this.selectedDaysCount.emit(this.daysInRange().length);\n }\n\n public onDayMouseEnter(date: Date): void {\n if (!this.enableRange() || (this.startDate() && this.endDate())) {\n return;\n }\n this.hoveredDate.set(date);\n }\n\n public handleKeyDown(event: KeyboardEvent): void {\n if (!this.focusedDate) return;\n\n const newDate = new Date(this.focusedDate());\n\n switch (event.key) {\n case \"ArrowRight\":\n newDate.setDate(newDate.getDate() + 1);\n break;\n case \"ArrowLeft\":\n newDate.setDate(newDate.getDate() - 1);\n break;\n case \"ArrowDown\":\n newDate.setDate(newDate.getDate() + 7);\n break;\n case \"ArrowUp\":\n newDate.setDate(newDate.getDate() - 7);\n break;\n case \"Enter\":\n case \" \":\n this.selectedDate.emit(this.focusedDate());\n event.preventDefault();\n return;\n default:\n return; // ignorer les autres touches\n }\n\n event.preventDefault();\n this.focusedDate.set(newDate);\n\n // si le focusedDate est hors du mois courant, changer le mois\n if (\n this.focusedDate().getMonth() !== this.displayDate().getMonth() ||\n this.focusedDate().getFullYear() !== this.displayDate().getFullYear()\n ) {\n this.displayDate.set(new Date(this.focusedDate().getFullYear(), this.focusedDate().getMonth(), 1));\n this.build();\n }\n }\n\n // Pour le template : savoir si la date est focusée pour appliquer style\n isFocused(date: Date) {\n return this.focusedDate && this.isSame(date, this.focusedDate());\n }\n\n private resetStartDate(date: Date): void {\n console.log('reset');\n this.startDate.set(date);\n this.endDate.set(null);\n this.hoveredDate.set(null);\n }\n}\n","<div\n class=\"ngx:w-65 ngx:bg-white ngx:rounded-md ngx:shadow-lg ngx:p-3\"\n id=\"calendar\"\n role=\"dialog\"\n aria-modal=\"true\">\n\n <div class=\"ngx:flex ngx:items-center ngx:mb-2\">\n <button\n class=\"ngx:cursor-pointer ngx:hover:bg-slate-100 ngx:focus:bg-slate-100 ngx:rounded-full ngx:flex ngx:w-10 ngx:h-10 ngx:justify-center ngx:items-center\"\n (click)=\"prevMonth()\" aria-label=\"Previous month\">‹\n </button>\n <p class=\"ngx:grow ngx:text-center ngx:font-medium ngx:text-inherit\">{{ displayDate() | date: 'MMMM yyyy' }}</p>\n <button\n class=\"ngx:cursor-pointer ngx:hover:bg-slate-100 ngx:focus:bg-slate-100 ngx:rounded-full ngx:flex ngx:w-10 ngx:h-10 ngx:justify-center ngx:items-center\"\n (click)=\"nextMonth()\" aria-label=\"Next month\">›\n </button>\n </div>\n\n <!-- Weekdays -->\n <div class=\"ngx:grid ngx:grid-cols-7 ngx:gap-0.5\">\n @for (wd of locale.current.weekdays; track $index) {\n <span class=\"ngx:text-center ngx:py-1 ngx:text-sm ngx:font-medium ngx:text-inherit\">{{ wd }}</span>\n }\n </div>\n\n <div class=\"ngx:grid ngx:grid-cols-7 ngx:gap-y-0.5\">\n @for (day of days(); track $index) {\n <button\n [class]=\"cn(\n 'ngx:relative ngx:cursor-pointer ngx:py-1 ngx:overflow-hidden ngx:text-inherit',\n daysInRange().length < 2 && !day.isDisabled && 'ngx:rounded-full',\n (latestDayInRange() === day || latestDayDisabled() === day) && 'ngx:rounded-r-full',\n day.isDisabled && 'ngx:bg-slate-200 ngx:text-slate-400 ngx:cursor-not-allowed',\n day.isInRange && !day.isDisabled && 'ngx:bg-(--ngx-datepicker-range-color)',\n day.isSelected && !day.isDisabled && 'ngx:bg-(--ngx-datepicker-range-color) ngx:text-(--ngx-datepicker-accent-text-color) ngx:before:absolute ngx:before:top-0 ngx:before:left-0 ngx:before:block ngx:before:w-full ngx:before:h-full ngx:before:z-1 ngx:before:bg-(--ngx-datepicker-accent-color)',\n day.isToday && 'ngx:before:absolute ngx:before:top-0 ngx:before:left-0 ngx:before:block ngx:before:w-full ngx:before:h-full ngx:before:z-1 ngx:before:rounded-full ngx:before:border-2 ngx:before:border-(--ngx-datepicker-accent-color)',\n isSame(day.date, startDate()) && !day.isDisabled && 'ngx:rounded-l-full ngx:before:rounded-full',\n isSame(day.date, endDate()) && 'ngx:rounded-r-full ngx:before:rounded-full'\n )\"\n [attr.aria-selected]=\"isSame(day.date, startDate()) || isSame(day.date, endDate())\"\n [attr.aria-label]=\"locale.current.format(day.date)\"\n [disabled]=\"day.isDisabled\"\n (click)=\"onDaySelect(day.date)\"\n (mouseenter)=\"onDayMouseEnter(day.date)\">\n <span class=\"ngx:relative ngx:z-10\">{{ day.date.getDate() }}</span>\n </button>\n }\n </div>\n</div>\n","import { ChangeDetectionStrategy, Component, input, output } from '@angular/core';\nimport { CalendarComponent } from '../calendar/calendar.component';\nimport { DateRange } from '../shared/models/daterange';\n\n@Component({\n selector: 'ngx-date-picker-wrapper',\n templateUrl: './date-picker-wrapper.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CalendarComponent]\n})\nexport class DatePickerWrapperComponent {\n public readonly date = input<Date | null>();\n public readonly endDate = input<Date | null>();\n public readonly hoveredDate = input<Date | null>();\n public readonly minDate = input<Date | null>();\n public readonly maxDate = input<Date | null>();\n\n public readonly label = input.required<string>();\n public readonly openCalendar = input<boolean>();\n public readonly enableRange = input.required<boolean>();\n\n public readonly selectedDate = output<Date | null>();\n public readonly selectedDateRange = output<DateRange>();\n public readonly hoverDate = output<Date>();\n\n public onSelectDate(date: Date | null): void {\n this.selectedDate.emit(date);\n }\n\n public onSelectDateRange(date: DateRange): void {\n this.selectedDateRange.emit(date);\n }\n\n\n public onHoverDate(date: Date): void {\n this.hoverDate.emit(date);\n }\n}\n","<div class=\"ngx:inline-block ngx:relative\">\n <div class=\"ngx:inline-flex ngx:flex-col\">\n <label [for]=\"label()\" class=\"ngx:inline-block ngx:text-left ngx:text-xs ngx:font-semibold ngx:mb-1 ngx:text-slate-900\" for=\"datepicker\">{{ label() }}</label>\n <div\n class=\"ngx:inline-flex ngx:w-auto ngx:items-stretch ngx:rounded-md ngx:bg-slate-100 ngx:focus-within:outline-2 ngx:focus-within:outline-(--ngx-datepicker-outline-color) ngx:focus-within:shadow ngx:overflow-hidden\">\n <ng-content></ng-content>\n </div>\n </div>\n <ngx-calendar\n class=\"ngx:absolute ngx:top-full ngx:left-0 ngx:mt-1 ngx:z-100\"\n [class.ngx:hidden]=\"!openCalendar()\"\n [startDate]=\"date()\"\n [endDate]=\"endDate()\"\n [minDate]=\"minDate()\"\n [maxDate]=\"maxDate()\"\n [enableRange]=\"enableRange()\"\n (selectedDate)=\"onSelectDate($event)\"\n (selectedDateRange)=\"onSelectDateRange($event)\"\n (hoverDate)=\"onHoverDate($event)\">\n </ngx-calendar>\n</div>\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[ngxInput]',\n host: {\n class: 'ngx:block ngx:w-full ngx:font-medium ngx:bg-slate-100 ngx:pl-4 ngx:border-0 ngx:outline-0 ngx:appearance-none ngx:[&::-webkit-calendar-picker-indicator]:hidden'\n }\n})\nexport class InputDirective {}\n","import { ControlValueAccessor } from '@angular/forms';\nimport { Constructor } from '../models/constructor';\n\nexport function WithControlValueAccessor<TValue, TBase extends Constructor>(Base: TBase) {\n return class extends Base implements ControlValueAccessor {\n public value!: TValue;\n public disabled = false;\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public onChange = (_: TValue) => { /* empty */ };\n public onTouched = () => { /* empty */ };\n\n public writeValue(value: TValue) {\n this.value = value;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n public onInput(value: TValue) {\n this.value = value;\n this.onChange(value);\n }\n\n public onBlur() {\n this.onTouched();\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component, effect, ElementRef, forwardRef, inject, input, InputSignal,\n model,\n ModelSignal,\n output,\n OutputEmitterRef,\n} from '@angular/core';\nimport { DatePickerWrapperComponent } from '../date-picker-wrapper/date-picker-wrapper.component';\nimport { InputDirective } from '../shared/directives/input.directive';\nimport { DatePipe } from '@angular/common';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { WithControlValueAccessor } from '../shared/mixins/with-control-value-accessor';\nimport { DateRange } from '../shared/models/daterange';\n\ninterface DatepickerOption {\n id: InputSignal<string | undefined>;\n date: ModelSignal<Date | null | undefined>;\n openCalendar: ModelSignal<boolean>;\n selectedDate: OutputEmitterRef<Date | null>;\n}\n\n@Component({\n selector: 'ngx-datepicker',\n templateUrl: './datepicker.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n DatePickerWrapperComponent,\n InputDirective,\n DatePipe\n ],\n host: {\n '(document:click)': 'onClickOutside($event)',\n },\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DatepickerComponent),\n multi: true,\n },\n ],\n})\nexport class DatepickerComponent extends WithControlValueAccessor<Date, new () => object>(class {}) implements DatepickerOption {\n public readonly id = model<string>();\n public readonly date = model<Date | null>();\n public readonly dateTo = model<Date | null>();\n public readonly minDate = input<Date | null>();\n public readonly maxDate = input<Date | null>();\n public readonly range = input<boolean>(false);\n public readonly isRangeEnd = input<boolean>(false);\n public readonly label = input.required<string>();\n public readonly openCalendar = model<boolean>(false);\n public readonly selectedDate = output<Date | null>();\n public readonly selectedDateRange = output<DateRange | null>();\n\n private readonly el = inject(ElementRef);\n\n constructor() {\n super();\n effect(() => {\n const date = this.date();\n const dateTo = this.dateTo();\n\n if (date) {\n this.updateFormControl(this.isRangeEnd() && dateTo ? dateTo : date);\n }\n });\n }\n\n public onSelectedDateChange(date: Date | null): void {\n if (date) {\n this.updateDate(date);\n }\n if (this.range()) {\n return;\n }\n this.openCalendar.set(false);\n }\n\n public onSelectedDateRangeChange(dateRange: DateRange): void {\n this.selectedDateRange.emit(dateRange);\n if (dateRange.startDate !== null && dateRange.endDate !== null) {\n this.openCalendar.set(false);\n }\n }\n\n public onInputChange(e: Event): void {\n const target = e.target as HTMLInputElement;\n const date = new Date(target.value);\n this.updateDate(date);\n }\n\n public onToggleCalendar(): void {\n this.openCalendar.set(!this.openCalendar());\n }\n\n public onClickOutside(e: Event): void {\n const el = e.target as HTMLElement;\n if (!this.el.nativeElement.contains(el)) {\n this.openCalendar.set(false);\n }\n }\n\n private updateDate(date: Date): void {\n this.date.set(date);\n this.selectedDate.emit(date);\n this.updateFormControl(date);\n }\n\n private updateFormControl(value: Date): void {\n this.value = value;\n this.onChange(value);\n }\n}\n","<ngx-date-picker-wrapper\n [date]=\"date()\"\n [endDate]=\"dateTo()\"\n [minDate]=\"minDate()\"\n [maxDate]=\"maxDate()\"\n [enableRange]=\"range()\"\n [label]=\"label()\"\n [openCalendar]=\"openCalendar()\"\n (selectedDate)=\"onSelectedDateChange($event)\"\n (selectedDateRange)=\"onSelectedDateRangeChange($event)\">\n <input\n ngxInput\n type=\"date\"\n placeholder=\"dd/mm/yyyy\"\n [attr.id]=\"label()\"\n [value]=\"value | date: 'yyyy-MM-dd'\"\n (blur)=\"onBlur()\"\n (change)=\"onInputChange($event)\">\n <button\n class=\"ngx:inline-flex ngx:items-center ngx:justify-center ngx:px-4 ngx:py-3 ngx:cursor-pointer ngx:hover:bg-slate-200 ngx:focus:bg-slate-200 ngx:outline-none\"\n (click)=\"onToggleCalendar()\">\n <svg class=\"ngx:text-slate-900 ngx:w-5 ngx:h-5\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\"\n stroke-width=\"1.5\"\n stroke=\"currentColor\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\"\n d=\"M6.75 3v2.25M17.25 3v2.25M3 18.75V7.5a2.25 2.25 0 0 1 2.25-2.25h13.5A2.25 2.25 0 0 1 21 7.5v11.25m-18 0A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75m-18 0v-7.5A2.25 2.25 0 0 1 5.25 9h13.5A2.25 2.25 0 0 1 21 11.25v7.5\" />\n </svg>\n </button>\n\n</ngx-date-picker-wrapper>\n","import {\n ChangeDetectionStrategy,\n Component, ElementRef,\n inject, input,\n model,\n output,\n} from \"@angular/core\";\nimport { DatePickerLocaleService } from \"../locale/locale.service\";\nimport { DatePickerWrapperComponent } from '../date-picker-wrapper/date-picker-wrapper.component';\nimport { DatePipe } from '@angular/common';\n\nexport interface DateRange {\n startDate: Date | null;\n endDate: Date | null;\n}\n\n@Component({\n selector: \"ngx-date-range-picker\",\n templateUrl: \"./date-range-picker.component.html\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [DatePickerWrapperComponent, DatePipe],\n host: {\n \"(document:click)\": \"onCloseCalendar($event)\",\n \"(keydown.escape)\": \"onEscape()\",\n },\n})\nexport class DateRangePickerComponent {\n public readonly startDate = model<Date | null>();\n public readonly endDate = model<Date | null>();\n public readonly minDate = input<Date | null>();\n public readonly maxDate = input<Date | null>();\n public readonly label = input.required<string>();\n public readonly hoveredDate = model<Date | null>(null);\n public readonly openCalendar = model<boolean>(false);\n public readonly selectedDateRange = output<DateRange | null>();\n\n private readonly el = inject(ElementRef);\n private readonly locale = inject(DatePickerLocaleService);\n\n public close() {\n this.openCalendar.set(false);\n this.hoveredDate.set(null);\n }\n\n public onEscape() {\n this.close();\n }\n\n public onSelectedDateChange(date: DateRange): void {\n this.updateDateRange(date);\n }\n\n public onHoverDateChange(date: Date): void {\n this.hoveredDate.set(date);\n }\n\n public onToggleCalendar(): void {\n this.openCalendar.set(!this.openCalendar());\n }\n\n public onCloseCalendar(e: Event): void {\n const el = e.target as HTMLElement;\n if (!this.el.nativeElement.contains(el)) {\n this.close();\n }\n }\n\n private updateDateRange(date: DateRange): void {\n const startDate = this.startDate();\n const endDate = this.endDate();\n\n if (!startDate || endDate) {\n\n this.startDate.set(date.startDate);\n this.endDate.set(null);\n\n } else if (date.startDate && date.startDate >= startDate) {\n this.endDate.set(date.endDate);\n this.selectedDateRange.emit({ startDate, endDate: this.endDate() ?? null })\n this.close();\n } else {\n this.startDate.set(date.startDate);\n }\n }\n}\n","<ngx-date-picker-wrapper\n [date]=\"startDate()\"\n [hoveredDate]=\"hoveredDate()\"\n [minDate]=\"minDate()\"\n [maxDate]=\"maxDate()\"\n [label]=\"label()\"\n [enableRange]=\"true\"\n [openCalendar]=\"openCalendar()\"\n (selectedDateRange)=\"onSelectedDateChange($event)\"\n (hoverDate)=\"onHoverDateChange($event)\">\n <div class=\"ngx:flex ngx:items-center ngx:gap-x-1 ngx:min-w-54 ngx:pl-4\">\n <div class=\"ngx:grow ngx:relative ngx:overflow-hidden ngx:max-w-22.5\">\n <input\n class=\"ngx:font-medium ngx:w-full ngx:h-full ngx:outline-none ngx:p-0 ngx:m-0 ngx:appearance-none\"\n readonly\n type=\"text\"\n role=\"combobox\"\n placeholder=\"dd/mm/yyyy\"\n aria-controls=\"calendar\"\n aria-haspopup=\"dialog\"\n [attr.id]=\"label()\"\n [attr.aria-expanded]=\"openCalendar()\"\n [value]=\"startDate() | date: 'dd/MM/yyyy'\"\n />\n </div>\n <span>-</span>\n <div class=\"ngx:grow ngx:relative ngx:overflow-hidden ngx:max-w-22.5\">\n <input\n class=\"ngx:font-medium ngx:w-full ngx:h-full ngx:outline-none ngx:p-0 ngx:m-0 ngx:appearance-none\"\n readonly\n type=\"text\"\n role=\"combobox\"\n placeholder=\"dd/mm/yyyy\"\n aria-controls=\"calendar\"\n aria-haspopup=\"dialog\"\n [attr.aria-expanded]=\"openCalendar()\"\n [value]=\"endDate() | date: 'dd/MM/yyyy'\"\n />\n </div>\n </div>\n <button\n class=\"ngx:flex ngx:items-center ngx:justify-center ngx:px-4 ngx:py-3 ngx:cursor-pointer ngx:hover:bg-slate-200 ngx:focus:bg-slate-200 ngx:outline-none\"\n (click)=\"onToggleCalendar()\">\n <svg class=\"ngx:text-slate-900 ngx:w-5 ngx:h-5\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\"\n stroke-width=\"1.5\"\n stroke=\"currentColor\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\"\n d=\"M6.75 3v2.25M17.25 3v2.25M3 18.75V7.5a2.25 2.25 0 0 1 2.25-2.25h13.5A2.25 2.25 0 0 1 21 7.5v11.25m-18 0A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75m-18 0v-7.5A2.25 2.25 0 0 1 5.25 9h13.5A2.25 2.25 0 0 1 21 11.25v7.5\" />\n </svg>\n </button>\n</ngx-date-picker-wrapper>\n","/*\n * Public API Surface of ngx-datepicker\n */\n\nexport * from './lib/datepicker/datepicker.component';\nexport * from './lib/date-range-picker/date-range-picker.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["currentYear"],"mappings":"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"}
1
+ {"version":3,"file":"wzrdev-ngx-datepicker.mjs","sources":["../../../projects/ngx-datepicker/src/lib/locale/fr.ts","../../../projects/ngx-datepicker/src/lib/locale/en.ts","../../../projects/ngx-datepicker/src/lib/locale/locale.service.ts","../../../projects/ngx-datepicker/src/lib/utils/cn.ts","../../../projects/ngx-datepicker/src/lib/calendar/calendar.service.ts","../../../projects/ngx-datepicker/src/lib/calendar/calendar.component.ts","../../../projects/ngx-datepicker/src/lib/calendar/calendar.component.html","../../../projects/ngx-datepicker/src/lib/date-picker-wrapper/date-picker-wrapper.component.ts","../../../projects/ngx-datepicker/src/lib/date-picker-wrapper/date-picker-wrapper.component.html","../../../projects/ngx-datepicker/src/lib/shared/directives/input.directive.ts","../../../projects/ngx-datepicker/src/lib/shared/mixins/with-control-value-accessor.ts","../../../projects/ngx-datepicker/src/lib/datepicker/datepicker.component.ts","../../../projects/ngx-datepicker/src/lib/datepicker/datepicker.component.html","../../../projects/ngx-datepicker/src/lib/date-range-picker/date-range-picker.component.ts","../../../projects/ngx-datepicker/src/lib/date-range-picker/date-range-picker.component.html","../../../projects/ngx-datepicker/src/public-api.ts","../../../projects/ngx-datepicker/src/wzrdev-ngx-datepicker.ts"],"sourcesContent":["import { DatePickerLocale } from \"./locale.model\";\n\nconst currentYear = new Date().getFullYear();\n\nexport const FR_LOCALE: DatePickerLocale = {\n code: \"fr\",\n months: [\n \"Janvier\",\n \"Février\",\n \"Mars\",\n \"Avril\",\n \"Mai\",\n \"Juin\",\n \"Juillet\",\n \"Août\",\n \"Septembre\",\n \"Octobre\",\n \"Novembre\",\n \"Décembre\",\n ],\n weekdays: [\"Lu\", \"Ma\", \"Me\", \"Je\", \"Ve\", \"Sa\", \"Di\"],\n weekStartsOn: 1,\n years: Array.from({ length: 200 }, (_, i) => currentYear - 100 + i),\n format: date => date.toLocaleDateString(\"fr-FR\"),\n};\n","import { DatePickerLocale } from \"./locale.model\";\n\nconst currentYear = new Date().getFullYear();\n\nexport const EN_LOCALE: DatePickerLocale = {\n code: \"en\",\n months: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ],\n weekdays: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],\n weekStartsOn: 0,\n years: Array.from({ length: 200 }, (_, i) => currentYear - 100 + i),\n format: date => date.toLocaleDateString(\"en-US\"),\n};\n","import { Injectable } from \"@angular/core\";\nimport { BehaviorSubject } from \"rxjs\";\nimport { DatePickerLocale } from \"./locale.model\";\nimport { FR_LOCALE } from \"./fr\";\nimport { EN_LOCALE } from \"./en\";\n\n@Injectable({ providedIn: \"root\" })\nexport class DatePickerLocaleService {\n private readonly locales: Record<string, DatePickerLocale> = {\n fr: FR_LOCALE,\n en: EN_LOCALE,\n };\n\n private locale$ = new BehaviorSubject<DatePickerLocale>(FR_LOCALE);\n\n public setLocale(code: string) {\n this.locale$.next(this.locales[code] ?? FR_LOCALE);\n }\n\n public get localeChanges$() {\n return this.locale$.asObservable();\n }\n\n public get current() {\n return this.locale$.value;\n }\n}\n","import { ClassValue, clsx } from \"clsx\";\nimport { extendTailwindMerge } from \"tailwind-merge\";\n\nconst customTwMerge = extendTailwindMerge({\n extend: {\n classGroups: {},\n },\n});\n\nexport const cn = (...inputs: ClassValue[]) => {\n return customTwMerge(clsx(inputs));\n};\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class CalendarService {}\n","import {\n Component,\n inject,\n output,\n input,\n linkedSignal, ChangeDetectionStrategy, computed, signal, model\n} from \"@angular/core\";\nimport { DatePickerLocaleService } from \"../locale/locale.service\";\nimport { cn } from '../utils/cn';\nimport { DatePipe } from '@angular/common';\nimport { DateRange } from '../shared/models/daterange';\nimport { CalendarService } from './calendar.service';\n\ninterface Day {\n date: Date;\n isToday: boolean;\n isDisabled: boolean;\n isSelected: boolean;\n isInRange: boolean;\n}\n\n@Component({\n selector: \"ngx-calendar\",\n templateUrl: \"./calendar.component.html\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n DatePipe\n ],\n providers: [CalendarService],\n host: {\n \"(keydown)\": \"handleKeyDown($event)\"\n },\n})\nexport class CalendarComponent {\n public readonly locale = inject(DatePickerLocaleService);\n\n public readonly startDate = model<Date | null>();\n public readonly endDate = model<Date | null>();\n public readonly minDate = input<Date | null>();\n public readonly maxDate = input<Date | null>();\n\n public readonly hoveredDate = signal<Date | null>(null);\n public readonly enableRange = input<boolean>(false);\n\n public readonly selectedDate = output<Date>();\n public readonly selectedDateRange = output<DateRange>();\n public readonly selectedDaysCount = output<number>();\n public readonly hoverDate = output<Date>();\n\n public readonly days = linkedSignal(() => {\n const startDate = this.startDate();\n const endDate = this.endDate();\n const displayDate = this.displayDate();\n\n const year = displayDate.getFullYear();\n const month = displayDate.getMonth();\n\n const today = new Date();\n const first = new Date(year, month, 1);\n const last = new Date(year, month + 1, 0);\n\n const days: Day[] = [];\n for (let d = new Date(first); d <= last; d.setDate(d.getDate() + 1)) {\n const day = {\n date: new Date(d),\n isDisabled: this.isDisabled(d),\n isToday: this.isSame(d, today),\n isSelected: this.isSame(d, startDate) || this.isSame(d, endDate),\n isInRange: this.isInRange(d),\n } as Day;\n days.push(day);\n }\n return days;\n });\n\n public daysInRange = computed(() => {\n const days = this.days();\n return days.filter(day => day.isInRange);\n });\n\n public daysDisabled = computed(() => {\n const days = this.days();\n return days.filter(day => day.isDisabled);\n });\n\n public latestDayInRange = computed(() => {\n const rangeDays = this.daysInRange();\n return rangeDays[rangeDays.length - 1];\n });\n\n public latestDayDisabled = computed(() => {\n const daysDisabled = this.daysDisabled();\n return daysDisabled[daysDisabled.length - 1];\n });\n\n public firstDayDisabled = computed(() => {\n const daysDisabled = this.daysDisabled();\n return daysDisabled[0];\n });\n\n public readonly displayDate = linkedSignal(() => {\n const start = this.startDate();\n return start ?? new Date();\n });\n\n public readonly focusedDate = linkedSignal(() => {\n return new Date(this.displayDate());\n });\n\n protected readonly cn = cn;\n\n build() {\n // keep the focusedDate in the current month\n if (this.focusedDate().getMonth() !== this.displayDate().getMonth()) {\n this.focusedDate.set(new Date(this.displayDate().getFullYear(), this.displayDate().getMonth(), 1));\n }\n }\n\n public prevMonth(): void {\n this.displayDate.update((prevState) => {\n return new Date(prevState.getFullYear(), prevState.getMonth() - 1, prevState.getDate());\n })\n }\n\n public nextMonth(): void {\n this.displayDate.update((prevState) => {\n return new Date(prevState.getFullYear(), prevState.getMonth() + 1, prevState.getDate());\n })\n }\n\n public isSame(a?: Date | null, b?: Date | null): boolean {\n if (!a || !b) return false;\n return a.toDateString() === b.toDateString();\n }\n\n public isDisabled(date: Date): boolean {\n const minDate = this.minDate();\n const maxDate = this.maxDate();\n\n const normalize = (d: Date) =>\n new Date(d.getFullYear(), d.getMonth(), d.getDate()).getTime();\n\n const current = normalize(date);\n\n if (minDate && current < normalize(minDate)) {\n return true;\n }\n\n return !!(maxDate && current > normalize(maxDate));\n\n\n }\n\n public isInRange(d: Date): boolean {\n const start = this.startDate();\n const end = this.endDate();\n const hover = this.hoveredDate();\n\n if (!start || !d) return false;\n if (start && end) return d >= start && d <= end;\n if (start && hover) {\n return d >= start && d <= hover;\n }\n\n return false;\n };\n\n public onDaySelect(date: Date): void {\n const selectedDays = this.days().filter(day => day.isSelected);\n const startDate = this.startDate();\n const endDate = this.endDate();\n\n\n if (this.enableRange()) {\n\n if (selectedDays.length === 2\n || startDate && date < startDate\n || endDate && endDate <= date\n || endDate && date <= endDate) {\n this.resetStartDate(date);\n }\n\n if (!startDate) {\n this.startDate.set(date);\n } else if (startDate && !endDate && startDate < date) {\n this.endDate.set(date);\n }\n\n } else {\n this.resetStartDate(date);\n }\n\n if (this.enableRange()) {\n this.selectedDateRange.emit({ startDate: this.startDate() ?? null, endDate: this.endDate() ?? null });\n } else {\n this.selectedDate.emit(date);\n }\n this.selectedDaysCount.emit(this.daysInRange().length);\n }\n\n public onDayMouseEnter(date: Date): void {\n if (!this.enableRange() || (this.startDate() && this.endDate())) {\n return;\n }\n this.hoveredDate.set(date);\n }\n\n public handleKeyDown(event: KeyboardEvent): void {\n if (!this.focusedDate) return;\n\n const newDate = new Date(this.focusedDate());\n\n switch (event.key) {\n case \"ArrowRight\":\n newDate.setDate(newDate.getDate() + 1);\n break;\n case \"ArrowLeft\":\n newDate.setDate(newDate.getDate() - 1);\n break;\n case \"ArrowDown\":\n newDate.setDate(newDate.getDate() + 7);\n break;\n case \"ArrowUp\":\n newDate.setDate(newDate.getDate() - 7);\n break;\n case \"Enter\":\n case \" \":\n this.selectedDate.emit(this.focusedDate());\n event.preventDefault();\n return;\n default:\n return; // ignorer les autres touches\n }\n\n event.preventDefault();\n this.focusedDate.set(newDate);\n\n // si le focusedDate est hors du mois courant, changer le mois\n if (\n this.focusedDate().getMonth() !== this.displayDate().getMonth() ||\n this.focusedDate().getFullYear() !== this.displayDate().getFullYear()\n ) {\n this.displayDate.set(new Date(this.focusedDate().getFullYear(), this.focusedDate().getMonth(), 1));\n this.build();\n }\n }\n\n // Pour le template : savoir si la date est focusée pour appliquer style\n isFocused(date: Date) {\n return this.focusedDate && this.isSame(date, this.focusedDate());\n }\n\n private resetStartDate(date: Date): void {\n console.log('reset');\n this.startDate.set(date);\n this.endDate.set(null);\n this.hoveredDate.set(null);\n }\n}\n","<div\n class=\"ngx:w-65 ngx:bg-white ngx:rounded-md ngx:shadow-lg ngx:p-3\"\n id=\"calendar\"\n role=\"dialog\"\n aria-modal=\"true\">\n\n <div class=\"ngx:flex ngx:items-center ngx:mb-2\">\n <button\n class=\"ngx:cursor-pointer ngx:hover:bg-slate-100 ngx:focus:bg-slate-100 ngx:rounded-full ngx:flex ngx:w-10 ngx:h-10 ngx:justify-center ngx:items-center\"\n (click)=\"prevMonth()\" aria-label=\"Previous month\">‹\n </button>\n <p class=\"ngx:grow ngx:text-center ngx:font-medium ngx:text-inherit\">{{ displayDate() | date: 'MMMM yyyy' }}</p>\n <button\n class=\"ngx:cursor-pointer ngx:hover:bg-slate-100 ngx:focus:bg-slate-100 ngx:rounded-full ngx:flex ngx:w-10 ngx:h-10 ngx:justify-center ngx:items-center\"\n (click)=\"nextMonth()\" aria-label=\"Next month\">›\n </button>\n </div>\n\n <!-- Weekdays -->\n <div class=\"ngx:grid ngx:grid-cols-7 ngx:gap-0.5\">\n @for (wd of locale.current.weekdays; track $index) {\n <span class=\"ngx:text-center ngx:py-1 ngx:text-sm ngx:font-medium ngx:text-inherit\">{{ wd }}</span>\n }\n </div>\n\n <div class=\"ngx:grid ngx:grid-cols-7 ngx:gap-y-0.5\">\n @for (day of days(); track $index) {\n <button\n [class]=\"cn(\n 'ngx:relative ngx:cursor-pointer ngx:py-1 ngx:overflow-hidden ngx:text-inherit',\n daysInRange().length < 2 && !day.isDisabled && 'ngx:rounded-full',\n (latestDayInRange() === day || latestDayDisabled() === day) && 'ngx:rounded-r-full',\n day.isDisabled && 'ngx:bg-slate-200 ngx:text-slate-400 ngx:cursor-not-allowed',\n day.isInRange && !day.isDisabled && 'ngx:bg-(--ngx-datepicker-range-color)',\n day.isSelected && !day.isDisabled && 'ngx:bg-(--ngx-datepicker-range-color) ngx:text-(--ngx-datepicker-accent-text-color) ngx:before:absolute ngx:before:top-0 ngx:before:left-0 ngx:before:block ngx:before:w-full ngx:before:h-full ngx:before:z-1 ngx:before:bg-(--ngx-datepicker-accent-color)',\n day.isToday && 'ngx:before:absolute ngx:before:top-0 ngx:before:left-0 ngx:before:block ngx:before:w-full ngx:before:h-full ngx:before:z-1 ngx:before:rounded-full ngx:before:border-2 ngx:before:border-(--ngx-datepicker-accent-color)',\n isSame(day.date, startDate()) && !day.isDisabled && 'ngx:rounded-l-full ngx:before:rounded-full',\n isSame(day.date, endDate()) && 'ngx:rounded-r-full ngx:before:rounded-full'\n )\"\n [attr.aria-selected]=\"isSame(day.date, startDate()) || isSame(day.date, endDate())\"\n [attr.aria-label]=\"locale.current.format(day.date)\"\n [disabled]=\"day.isDisabled\"\n (click)=\"onDaySelect(day.date)\"\n (mouseenter)=\"onDayMouseEnter(day.date)\">\n <span class=\"ngx:relative ngx:z-10\">{{ day.date.getDate() }}</span>\n </button>\n }\n </div>\n</div>\n","import { ChangeDetectionStrategy, Component, input, output } from '@angular/core';\nimport { CalendarComponent } from '../calendar/calendar.component';\nimport { DateRange } from '../shared/models/daterange';\n\n@Component({\n selector: 'ngx-date-picker-wrapper',\n templateUrl: './date-picker-wrapper.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CalendarComponent]\n})\nexport class DatePickerWrapperComponent {\n public readonly date = input<Date | null>();\n public readonly endDate = input<Date | null>();\n public readonly hoveredDate = input<Date | null>();\n public readonly minDate = input<Date | null>();\n public readonly maxDate = input<Date | null>();\n\n public readonly label = input.required<string>();\n public readonly openCalendar = input<boolean>();\n public readonly enableRange = input.required<boolean>();\n\n public readonly selectedDate = output<Date | null>();\n public readonly selectedDateRange = output<DateRange>();\n public readonly hoverDate = output<Date>();\n\n public onSelectDate(date: Date | null): void {\n this.selectedDate.emit(date);\n }\n\n public onSelectDateRange(date: DateRange): void {\n this.selectedDateRange.emit(date);\n }\n\n\n public onHoverDate(date: Date): void {\n this.hoverDate.emit(date);\n }\n}\n","<div class=\"ngx:inline-block ngx:relative\">\n <div class=\"ngx:inline-flex ngx:flex-col\">\n <label [for]=\"label()\" class=\"ngx:inline-block ngx:text-left ngx:text-xs ngx:font-semibold ngx:mb-1 ngx:text-slate-900\" for=\"datepicker\">{{ label() }}</label>\n <div\n class=\"ngx:inline-flex ngx:w-auto ngx:items-stretch ngx:rounded-md ngx:bg-slate-100 ngx:focus-within:outline-2 ngx:focus-within:outline-(--ngx-datepicker-outline-color) ngx:focus-within:shadow ngx:overflow-hidden\">\n <ng-content></ng-content>\n </div>\n </div>\n <ngx-calendar\n class=\"ngx:absolute ngx:top-full ngx:left-0 ngx:mt-1 ngx:z-100\"\n [class.ngx:hidden]=\"!openCalendar()\"\n [startDate]=\"date()\"\n [endDate]=\"endDate()\"\n [minDate]=\"minDate()\"\n [maxDate]=\"maxDate()\"\n [enableRange]=\"enableRange()\"\n (selectedDate)=\"onSelectDate($event)\"\n (selectedDateRange)=\"onSelectDateRange($event)\"\n (hoverDate)=\"onHoverDate($event)\">\n </ngx-calendar>\n</div>\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[ngxInput]',\n host: {\n class: 'ngx:max-w-[114px] ngx:font-medium ngx:bg-slate-100 ngx:pl-4 ngx:py-3 ngx:border-0 ngx:outline-0 ngx:appearance-none ngx:[&::-webkit-calendar-picker-indicator]:hidden'\n }\n})\nexport class InputDirective {}\n","import { ControlValueAccessor } from '@angular/forms';\nimport { Constructor } from '../models/constructor';\n\nexport function WithControlValueAccessor<TValue, TBase extends Constructor>(Base: TBase) {\n return class extends Base implements ControlValueAccessor {\n public value!: TValue;\n public disabled = false;\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public onChange = (_: TValue) => { /* empty */ };\n public onTouched = () => { /* empty */ };\n\n public writeValue(value: TValue) {\n this.value = value;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n public onInput(value: TValue) {\n this.value = value;\n this.onChange(value);\n }\n\n public onBlur() {\n this.onTouched();\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component, effect, ElementRef, forwardRef, inject, input, InputSignal,\n model,\n ModelSignal,\n output,\n OutputEmitterRef,\n} from '@angular/core';\nimport { DatePickerWrapperComponent } from '../date-picker-wrapper/date-picker-wrapper.component';\nimport { InputDirective } from '../shared/directives/input.directive';\nimport { DatePipe } from '@angular/common';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { WithControlValueAccessor } from '../shared/mixins/with-control-value-accessor';\nimport { DateRange } from '../shared/models/daterange';\n\ninterface DatepickerOption {\n id: InputSignal<string | undefined>;\n date: ModelSignal<Date | null | undefined>;\n openCalendar: ModelSignal<boolean>;\n selectedDate: OutputEmitterRef<Date | null>;\n}\n\n@Component({\n selector: 'ngx-datepicker',\n templateUrl: './datepicker.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n DatePickerWrapperComponent,\n InputDirective,\n DatePipe\n ],\n host: {\n '(document:click)': 'onClickOutside($event)',\n },\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DatepickerComponent),\n multi: true,\n },\n ],\n})\nexport class DatepickerComponent extends WithControlValueAccessor<Date, new () => object>(class {}) implements DatepickerOption {\n public readonly id = model<string>();\n public readonly date = model<Date | null>();\n public readonly dateTo = model<Date | null>();\n public readonly minDate = input<Date | null>();\n public readonly maxDate = input<Date | null>();\n public readonly range = input<boolean>(false);\n public readonly isRangeEnd = input<boolean>(false);\n public readonly label = input.required<string>();\n public readonly openCalendar = model<boolean>(false);\n public readonly selectedDate = output<Date | null>();\n public readonly selectedDateRange = output<DateRange | null>();\n\n private readonly el = inject(ElementRef);\n\n constructor() {\n super();\n effect(() => {\n const date = this.date();\n const dateTo = this.dateTo();\n\n if (date) {\n this.updateFormControl(this.isRangeEnd() && dateTo ? dateTo : date);\n }\n });\n }\n\n public onSelectedDateChange(date: Date | null): void {\n if (date) {\n this.updateDate(date);\n }\n if (this.range()) {\n return;\n }\n this.openCalendar.set(false);\n }\n\n public onSelectedDateRangeChange(dateRange: DateRange): void {\n this.selectedDateRange.emit(dateRange);\n if (dateRange.startDate !== null && dateRange.endDate !== null) {\n this.openCalendar.set(false);\n }\n }\n\n public onInputChange(e: Event): void {\n const target = e.target as HTMLInputElement;\n const date = new Date(target.value);\n this.updateDate(date);\n }\n\n public onToggleCalendar(): void {\n this.openCalendar.set(!this.openCalendar());\n }\n\n public onClickOutside(e: Event): void {\n const el = e.target as HTMLElement;\n if (!this.el.nativeElement.contains(el)) {\n this.openCalendar.set(false);\n }\n }\n\n private updateDate(date: Date): void {\n this.date.set(date);\n this.selectedDate.emit(date);\n this.updateFormControl(date);\n }\n\n private updateFormControl(value: Date): void {\n this.value = value;\n this.onChange(value);\n }\n}\n","<ngx-date-picker-wrapper\n [date]=\"date()\"\n [endDate]=\"dateTo()\"\n [minDate]=\"minDate()\"\n [maxDate]=\"maxDate()\"\n [enableRange]=\"range()\"\n [label]=\"label()\"\n [openCalendar]=\"openCalendar()\"\n (selectedDate)=\"onSelectedDateChange($event)\"\n (selectedDateRange)=\"onSelectedDateRangeChange($event)\">\n <input\n ngxInput\n type=\"date\"\n placeholder=\"dd/mm/yyyy\"\n [attr.id]=\"label()\"\n [value]=\"value | date: 'yyyy-MM-dd'\"\n (blur)=\"onBlur()\"\n (change)=\"onInputChange($event)\">\n <button\n class=\"ngx:inline-flex ngx:items-center ngx:justify-center ngx:px-4 ngx:py-3 ngx:cursor-pointer ngx:hover:bg-slate-200 ngx:focus:bg-slate-200 ngx:outline-none\"\n (click)=\"onToggleCalendar()\">\n <svg class=\"ngx:text-slate-900 ngx:w-5 ngx:h-5\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\"\n stroke-width=\"1.5\"\n stroke=\"currentColor\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\"\n d=\"M6.75 3v2.25M17.25 3v2.25M3 18.75V7.5a2.25 2.25 0 0 1 2.25-2.25h13.5A2.25 2.25 0 0 1 21 7.5v11.25m-18 0A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75m-18 0v-7.5A2.25 2.25 0 0 1 5.25 9h13.5A2.25 2.25 0 0 1 21 11.25v7.5\" />\n </svg>\n </button>\n\n</ngx-date-picker-wrapper>\n","import {\n ChangeDetectionStrategy,\n Component, ElementRef,\n inject, input,\n model,\n output,\n} from \"@angular/core\";\nimport { DatePickerLocaleService } from \"../locale/locale.service\";\nimport { DatePickerWrapperComponent } from '../date-picker-wrapper/date-picker-wrapper.component';\nimport { DatePipe } from '@angular/common';\n\nexport interface DateRange {\n startDate: Date | null;\n endDate: Date | null;\n}\n\n@Component({\n selector: \"ngx-date-range-picker\",\n templateUrl: \"./date-range-picker.component.html\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [DatePickerWrapperComponent, DatePipe],\n host: {\n \"(document:click)\": \"onCloseCalendar($event)\",\n \"(keydown.escape)\": \"onEscape()\",\n },\n})\nexport class DateRangePickerComponent {\n public readonly startDate = model<Date | null>();\n public readonly endDate = model<Date | null>();\n public readonly minDate = input<Date | null>();\n public readonly maxDate = input<Date | null>();\n public readonly label = input.required<string>();\n public readonly hoveredDate = model<Date | null>(null);\n public readonly openCalendar = model<boolean>(false);\n public readonly selectedDateRange = output<DateRange | null>();\n\n private readonly el = inject(ElementRef);\n private readonly locale = inject(DatePickerLocaleService);\n\n public close() {\n this.openCalendar.set(false);\n this.hoveredDate.set(null);\n }\n\n public onEscape() {\n this.close();\n }\n\n public onSelectedDateChange(date: DateRange): void {\n this.updateDateRange(date);\n }\n\n public onHoverDateChange(date: Date): void {\n this.hoveredDate.set(date);\n }\n\n public onToggleCalendar(): void {\n this.openCalendar.set(!this.openCalendar());\n }\n\n public onCloseCalendar(e: Event): void {\n const el = e.target as HTMLElement;\n if (!this.el.nativeElement.contains(el)) {\n this.close();\n }\n }\n\n private updateDateRange(date: DateRange): void {\n const startDate = this.startDate();\n const endDate = this.endDate();\n\n if (!startDate || endDate) {\n\n this.startDate.set(date.startDate);\n this.endDate.set(null);\n\n } else if (date.startDate && date.startDate >= startDate) {\n this.endDate.set(date.endDate);\n this.selectedDateRange.emit({ startDate, endDate: this.endDate() ?? null })\n this.close();\n } else {\n this.startDate.set(date.startDate);\n }\n }\n}\n","<ngx-date-picker-wrapper\n [date]=\"startDate()\"\n [hoveredDate]=\"hoveredDate()\"\n [minDate]=\"minDate()\"\n [maxDate]=\"maxDate()\"\n [label]=\"label()\"\n [enableRange]=\"true\"\n [openCalendar]=\"openCalendar()\"\n (selectedDateRange)=\"onSelectedDateChange($event)\"\n (hoverDate)=\"onHoverDateChange($event)\">\n <div class=\"ngx:flex ngx:items-center ngx:gap-x-1 ngx:min-w-54 ngx:pl-4\">\n <div class=\"ngx:grow ngx:relative ngx:overflow-hidden ngx:max-w-22.5\">\n <input\n class=\"ngx:font-medium ngx:w-full ngx:h-full ngx:outline-none ngx:p-0 ngx:m-0 ngx:appearance-none\"\n readonly\n type=\"text\"\n role=\"combobox\"\n placeholder=\"dd/mm/yyyy\"\n aria-controls=\"calendar\"\n aria-haspopup=\"dialog\"\n [attr.id]=\"label()\"\n [attr.aria-expanded]=\"openCalendar()\"\n [value]=\"startDate() | date: 'dd/MM/yyyy'\"\n />\n </div>\n <span>-</span>\n <div class=\"ngx:grow ngx:relative ngx:overflow-hidden ngx:max-w-22.5\">\n <input\n class=\"ngx:font-medium ngx:w-full ngx:h-full ngx:outline-none ngx:p-0 ngx:m-0 ngx:appearance-none\"\n readonly\n type=\"text\"\n role=\"combobox\"\n placeholder=\"dd/mm/yyyy\"\n aria-controls=\"calendar\"\n aria-haspopup=\"dialog\"\n [attr.aria-expanded]=\"openCalendar()\"\n [value]=\"endDate() | date: 'dd/MM/yyyy'\"\n />\n </div>\n </div>\n <button\n class=\"ngx:flex ngx:items-center ngx:justify-center ngx:px-4 ngx:py-3 ngx:cursor-pointer ngx:hover:bg-slate-200 ngx:focus:bg-slate-200 ngx:outline-none\"\n (click)=\"onToggleCalendar()\">\n <svg class=\"ngx:text-slate-900 ngx:w-5 ngx:h-5\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\"\n stroke-width=\"1.5\"\n stroke=\"currentColor\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\"\n d=\"M6.75 3v2.25M17.25 3v2.25M3 18.75V7.5a2.25 2.25 0 0 1 2.25-2.25h13.5A2.25 2.25 0 0 1 21 7.5v11.25m-18 0A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75m-18 0v-7.5A2.25 2.25 0 0 1 5.25 9h13.5A2.25 2.25 0 0 1 21 11.25v7.5\" />\n </svg>\n </button>\n</ngx-date-picker-wrapper>\n","/*\n * Public API Surface of ngx-datepicker\n */\n\nexport * from './lib/datepicker/datepicker.component';\nexport * from './lib/date-range-picker/date-range-picker.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["currentYear"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wzrdev/ngx-datepicker",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^19.2.0",
6
6
  "@angular/core": "^19.2.0"
@@ -1,2 +1,2 @@
1
1
  /*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */
2
- @import "https://fonts.googleapis.com/css2?family=Montserrat+Alternates:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap";@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-content:""}}}@layer theme{:root,:host{--ngx-font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--ngx-font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ngx-color-slate-100:oklch(96.8% .007 247.896);--ngx-color-slate-200:oklch(92.9% .013 255.508);--ngx-color-slate-400:oklch(70.4% .04 256.788);--ngx-color-slate-900:oklch(20.8% .042 265.755);--ngx-color-white:#fff;--ngx-spacing:.25rem;--ngx-text-xs:.75rem;--ngx-text-xs--line-height:calc(1/.75);--ngx-text-sm:.875rem;--ngx-text-sm--line-height:calc(1.25/.875);--ngx-font-weight-medium:500;--ngx-font-weight-semibold:600;--ngx-radius-md:.375rem;--ngx-default-font-family:var(--ngx-font-sans);--ngx-default-mono-font-family:var(--ngx-font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--ngx-default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--ngx-default-font-feature-settings,normal);font-variation-settings:var(--ngx-default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--ngx-default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--ngx-default-mono-font-feature-settings,normal);font-variation-settings:var(--ngx-default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.ngx\:absolute{position:absolute}.ngx\:relative{position:relative}.ngx\:top-full{top:100%}.ngx\:left-0{left:calc(var(--ngx-spacing)*0)}.ngx\:z-10{z-index:10}.ngx\:z-100{z-index:100}.ngx\:m-0{margin:calc(var(--ngx-spacing)*0)}.ngx\:mx-auto{margin-inline:auto}.ngx\:mt-1{margin-top:calc(var(--ngx-spacing)*1)}.ngx\:mt-2{margin-top:calc(var(--ngx-spacing)*2)}.ngx\:mb-1{margin-bottom:calc(var(--ngx-spacing)*1)}.ngx\:mb-2{margin-bottom:calc(var(--ngx-spacing)*2)}.ngx\:block{display:block}.ngx\:flex{display:flex}.ngx\:grid{display:grid}.ngx\:hidden{display:none}.ngx\:inline-block{display:inline-block}.ngx\:inline-flex{display:inline-flex}.ngx\:h-5{height:calc(var(--ngx-spacing)*5)}.ngx\:h-10{height:calc(var(--ngx-spacing)*10)}.ngx\:h-full{height:100%}.ngx\:w-5{width:calc(var(--ngx-spacing)*5)}.ngx\:w-10{width:calc(var(--ngx-spacing)*10)}.ngx\:w-65{width:calc(var(--ngx-spacing)*65)}.ngx\:w-auto{width:auto}.ngx\:w-full{width:100%}.ngx\:max-w-22\.5{max-width:calc(var(--ngx-spacing)*22.5)}.ngx\:max-w-300{max-width:calc(var(--ngx-spacing)*300)}.ngx\:min-w-54{min-width:calc(var(--ngx-spacing)*54)}.ngx\:grow{flex-grow:1}.ngx\:cursor-not-allowed{cursor:not-allowed}.ngx\:cursor-pointer{cursor:pointer}.ngx\:appearance-none{appearance:none}.ngx\:grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.ngx\:flex-col{flex-direction:column}.ngx\:items-center{align-items:center}.ngx\:items-stretch{align-items:stretch}.ngx\:justify-center{justify-content:center}.ngx\:gap-0\.5{gap:calc(var(--ngx-spacing)*.5)}.ngx\:gap-4{gap:calc(var(--ngx-spacing)*4)}.ngx\:gap-x-1{column-gap:calc(var(--ngx-spacing)*1)}.ngx\:gap-x-2{column-gap:calc(var(--ngx-spacing)*2)}.ngx\:gap-x-4{column-gap:calc(var(--ngx-spacing)*4)}.ngx\:gap-y-0\.5{row-gap:calc(var(--ngx-spacing)*.5)}.ngx\:overflow-hidden{overflow:hidden}.ngx\:rounded-full{border-radius:3.40282e38px}.ngx\:rounded-md{border-radius:var(--ngx-radius-md)}.ngx\:rounded-l-full{border-top-left-radius:3.40282e38px;border-bottom-left-radius:3.40282e38px}.ngx\:rounded-r-full{border-top-right-radius:3.40282e38px;border-bottom-right-radius:3.40282e38px}.ngx\:border{border-style:var(--tw-border-style);border-width:1px}.ngx\:border-0{border-style:var(--tw-border-style);border-width:0}.ngx\:border-slate-200{border-color:var(--ngx-color-slate-200)}.ngx\:bg-\(--ngx-datepicker-range-color\){background-color:var(--ngx-datepicker-range-color)}.ngx\:bg-slate-100{background-color:var(--ngx-color-slate-100)}.ngx\:bg-slate-200{background-color:var(--ngx-color-slate-200)}.ngx\:bg-white{background-color:var(--ngx-color-white)}.ngx\:p-0{padding:calc(var(--ngx-spacing)*0)}.ngx\:p-3{padding:calc(var(--ngx-spacing)*3)}.ngx\:p-4{padding:calc(var(--ngx-spacing)*4)}.ngx\:px-4{padding-inline:calc(var(--ngx-spacing)*4)}.ngx\:px-5{padding-inline:calc(var(--ngx-spacing)*5)}.ngx\:py-1{padding-block:calc(var(--ngx-spacing)*1)}.ngx\:py-3{padding-block:calc(var(--ngx-spacing)*3)}.ngx\:pl-4{padding-left:calc(var(--ngx-spacing)*4)}.ngx\:text-center{text-align:center}.ngx\:text-left{text-align:left}.ngx\:text-sm{font-size:var(--ngx-text-sm);line-height:var(--tw-leading,var(--ngx-text-sm--line-height))}.ngx\:text-xs{font-size:var(--ngx-text-xs);line-height:var(--tw-leading,var(--ngx-text-xs--line-height))}.ngx\:font-medium{--tw-font-weight:var(--ngx-font-weight-medium);font-weight:var(--ngx-font-weight-medium)}.ngx\:font-semibold{--tw-font-weight:var(--ngx-font-weight-semibold);font-weight:var(--ngx-font-weight-semibold)}.ngx\:text-\(--ngx-datepicker-accent-text-color\){color:var(--ngx-datepicker-accent-text-color)}.ngx\:text-inherit{color:inherit}.ngx\:text-slate-400{color:var(--ngx-color-slate-400)}.ngx\:text-slate-900{color:var(--ngx-color-slate-900)}.ngx\:shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ngx\:outline-0{outline-style:var(--tw-outline-style);outline-width:0}.ngx\:outline-none{--tw-outline-style:none;outline-style:none}.ngx\:before\:absolute:before{content:var(--tw-content);position:absolute}.ngx\:before\:top-0:before{content:var(--tw-content);top:calc(var(--ngx-spacing)*0)}.ngx\:before\:left-0:before{content:var(--tw-content);left:calc(var(--ngx-spacing)*0)}.ngx\:before\:z-1:before{content:var(--tw-content);z-index:1}.ngx\:before\:block:before{content:var(--tw-content);display:block}.ngx\:before\:h-full:before{content:var(--tw-content);height:100%}.ngx\:before\:w-full:before{content:var(--tw-content);width:100%}.ngx\:before\:rounded-full:before{content:var(--tw-content);border-radius:3.40282e38px}.ngx\:before\:border-2:before{content:var(--tw-content);border-style:var(--tw-border-style);border-width:2px}.ngx\:before\:border-\(--ngx-datepicker-accent-color\):before{content:var(--tw-content);border-color:var(--ngx-datepicker-accent-color)}.ngx\:before\:bg-\(--ngx-datepicker-accent-color\):before{content:var(--tw-content);background-color:var(--ngx-datepicker-accent-color)}.ngx\:focus-within\:shadow:focus-within{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ngx\:focus-within\:outline-2:focus-within{outline-style:var(--tw-outline-style);outline-width:2px}.ngx\:focus-within\:outline-\(--ngx-datepicker-outline-color\):focus-within{outline-color:var(--ngx-datepicker-outline-color)}@media (hover:hover){.ngx\:hover\:bg-slate-100:hover{background-color:var(--ngx-color-slate-100)}.ngx\:hover\:bg-slate-200:hover{background-color:var(--ngx-color-slate-200)}}.ngx\:focus\:bg-slate-100:focus{background-color:var(--ngx-color-slate-100)}.ngx\:focus\:bg-slate-200:focus{background-color:var(--ngx-color-slate-200)}.ngx\:\[\&\:\:-webkit-calendar-picker-indicator\]\:hidden::-webkit-calendar-picker-indicator{display:none}}.gh-dark-code{color:#c9d1d9;background:#0d1117;border:1px solid #30363d;border-radius:8px;padding:16px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:13px;line-height:1.5;display:block;overflow-x:auto}.gh-dark-code pre{flex-direction:column;gap:6px;margin:0;display:flex}.gh-dark-code span{color:#79c0ff}.gh-dark-code strong{color:#ffa657;font-weight:600}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Montserrat Alternates,serif}:root{--ngx-datepicker-outline-color:oklch(54.6% .245 262.881);--ngx-datepicker-accent-color:oklch(54.6% .245 262.881);--ngx-datepicker-accent-text-color:#fff;--ngx-datepicker-range-color:oklch(88.2% .059 254.128)}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-content{syntax:"*";inherits:false;initial-value:""}
2
+ @import "https://fonts.googleapis.com/css2?family=Montserrat+Alternates:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap";@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-text-shadow-color:initial;--tw-text-shadow-alpha:100%;--tw-content:""}}}@layer theme{:root,:host{--ngx-font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--ngx-font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ngx-color-slate-100:oklch(96.8% .007 247.896);--ngx-color-slate-200:oklch(92.9% .013 255.508);--ngx-color-slate-400:oklch(70.4% .04 256.788);--ngx-color-slate-900:oklch(20.8% .042 265.755);--ngx-color-white:#fff;--ngx-spacing:.25rem;--ngx-text-xs:.75rem;--ngx-text-xs--line-height:calc(1/.75);--ngx-text-sm:.875rem;--ngx-text-sm--line-height:calc(1.25/.875);--ngx-text-4xl:2.25rem;--ngx-text-4xl--line-height:calc(2.5/2.25);--ngx-font-weight-medium:500;--ngx-font-weight-semibold:600;--ngx-font-weight-bold:700;--ngx-radius-md:.375rem;--ngx-default-font-family:var(--ngx-font-sans);--ngx-default-mono-font-family:var(--ngx-font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--ngx-default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--ngx-default-font-feature-settings,normal);font-variation-settings:var(--ngx-default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--ngx-default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--ngx-default-mono-font-feature-settings,normal);font-variation-settings:var(--ngx-default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.ngx\:absolute{position:absolute}.ngx\:relative{position:relative}.ngx\:top-full{top:100%}.ngx\:left-0{left:calc(var(--ngx-spacing)*0)}.ngx\:z-10{z-index:10}.ngx\:z-100{z-index:100}.ngx\:m-0{margin:calc(var(--ngx-spacing)*0)}.ngx\:mx-auto{margin-inline:auto}.ngx\:mt-1{margin-top:calc(var(--ngx-spacing)*1)}.ngx\:mt-2{margin-top:calc(var(--ngx-spacing)*2)}.ngx\:mt-4{margin-top:calc(var(--ngx-spacing)*4)}.ngx\:mt-10{margin-top:calc(var(--ngx-spacing)*10)}.ngx\:mb-1{margin-bottom:calc(var(--ngx-spacing)*1)}.ngx\:mb-2{margin-bottom:calc(var(--ngx-spacing)*2)}.ngx\:flex{display:flex}.ngx\:grid{display:grid}.ngx\:hidden{display:none}.ngx\:inline-block{display:inline-block}.ngx\:inline-flex{display:inline-flex}.ngx\:h-5{height:calc(var(--ngx-spacing)*5)}.ngx\:h-10{height:calc(var(--ngx-spacing)*10)}.ngx\:h-full{height:100%}.ngx\:w-5{width:calc(var(--ngx-spacing)*5)}.ngx\:w-10{width:calc(var(--ngx-spacing)*10)}.ngx\:w-65{width:calc(var(--ngx-spacing)*65)}.ngx\:w-auto{width:auto}.ngx\:w-full{width:100%}.ngx\:max-w-22\.5{max-width:calc(var(--ngx-spacing)*22.5)}.ngx\:max-w-300{max-width:calc(var(--ngx-spacing)*300)}.ngx\:max-w-\[114px\]{max-width:114px}.ngx\:min-w-54{min-width:calc(var(--ngx-spacing)*54)}.ngx\:grow{flex-grow:1}.ngx\:cursor-not-allowed{cursor:not-allowed}.ngx\:cursor-pointer{cursor:pointer}.ngx\:appearance-none{appearance:none}.ngx\:grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.ngx\:flex-col{flex-direction:column}.ngx\:items-center{align-items:center}.ngx\:items-stretch{align-items:stretch}.ngx\:justify-center{justify-content:center}.ngx\:gap-0\.5{gap:calc(var(--ngx-spacing)*.5)}.ngx\:gap-4{gap:calc(var(--ngx-spacing)*4)}.ngx\:gap-x-1{column-gap:calc(var(--ngx-spacing)*1)}.ngx\:gap-x-2{column-gap:calc(var(--ngx-spacing)*2)}.ngx\:gap-x-4{column-gap:calc(var(--ngx-spacing)*4)}.ngx\:gap-y-0\.5{row-gap:calc(var(--ngx-spacing)*.5)}.ngx\:overflow-hidden{overflow:hidden}.ngx\:rounded-full{border-radius:3.40282e38px}.ngx\:rounded-md{border-radius:var(--ngx-radius-md)}.ngx\:rounded-l-full{border-top-left-radius:3.40282e38px;border-bottom-left-radius:3.40282e38px}.ngx\:rounded-r-full{border-top-right-radius:3.40282e38px;border-bottom-right-radius:3.40282e38px}.ngx\:border{border-style:var(--tw-border-style);border-width:1px}.ngx\:border-0{border-style:var(--tw-border-style);border-width:0}.ngx\:border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.ngx\:border-slate-200{border-color:var(--ngx-color-slate-200)}.ngx\:bg-\(--ngx-datepicker-range-color\){background-color:var(--ngx-datepicker-range-color)}.ngx\:bg-slate-100{background-color:var(--ngx-color-slate-100)}.ngx\:bg-slate-200{background-color:var(--ngx-color-slate-200)}.ngx\:bg-white{background-color:var(--ngx-color-white)}.ngx\:p-0{padding:calc(var(--ngx-spacing)*0)}.ngx\:p-3{padding:calc(var(--ngx-spacing)*3)}.ngx\:p-4{padding:calc(var(--ngx-spacing)*4)}.ngx\:px-4{padding-inline:calc(var(--ngx-spacing)*4)}.ngx\:px-5{padding-inline:calc(var(--ngx-spacing)*5)}.ngx\:py-1{padding-block:calc(var(--ngx-spacing)*1)}.ngx\:py-3{padding-block:calc(var(--ngx-spacing)*3)}.ngx\:py-10{padding-block:calc(var(--ngx-spacing)*10)}.ngx\:pl-4{padding-left:calc(var(--ngx-spacing)*4)}.ngx\:text-center{text-align:center}.ngx\:text-left{text-align:left}.ngx\:text-4xl{font-size:var(--ngx-text-4xl);line-height:var(--tw-leading,var(--ngx-text-4xl--line-height))}.ngx\:text-sm{font-size:var(--ngx-text-sm);line-height:var(--tw-leading,var(--ngx-text-sm--line-height))}.ngx\:text-xs{font-size:var(--ngx-text-xs);line-height:var(--tw-leading,var(--ngx-text-xs--line-height))}.ngx\:font-bold{--tw-font-weight:var(--ngx-font-weight-bold);font-weight:var(--ngx-font-weight-bold)}.ngx\:font-medium{--tw-font-weight:var(--ngx-font-weight-medium);font-weight:var(--ngx-font-weight-medium)}.ngx\:font-semibold{--tw-font-weight:var(--ngx-font-weight-semibold);font-weight:var(--ngx-font-weight-semibold)}.ngx\:text-\(--ngx-datepicker-accent-text-color\){color:var(--ngx-datepicker-accent-text-color)}.ngx\:text-inherit{color:inherit}.ngx\:text-slate-400{color:var(--ngx-color-slate-400)}.ngx\:text-slate-900{color:var(--ngx-color-slate-900)}.ngx\:shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ngx\:outline-0{outline-style:var(--tw-outline-style);outline-width:0}.ngx\:outline-none{--tw-outline-style:none;outline-style:none}.ngx\:text-shadow-slate-900{--tw-text-shadow-color:var(--ngx-color-slate-900)}@supports (color:color-mix(in lab, red, red)){.ngx\:text-shadow-slate-900{--tw-text-shadow-color:color-mix(in oklab,var(--ngx-color-slate-900)var(--tw-text-shadow-alpha),transparent)}}.ngx\:before\:absolute:before{content:var(--tw-content);position:absolute}.ngx\:before\:top-0:before{content:var(--tw-content);top:calc(var(--ngx-spacing)*0)}.ngx\:before\:left-0:before{content:var(--tw-content);left:calc(var(--ngx-spacing)*0)}.ngx\:before\:z-1:before{content:var(--tw-content);z-index:1}.ngx\:before\:block:before{content:var(--tw-content);display:block}.ngx\:before\:h-full:before{content:var(--tw-content);height:100%}.ngx\:before\:w-full:before{content:var(--tw-content);width:100%}.ngx\:before\:rounded-full:before{content:var(--tw-content);border-radius:3.40282e38px}.ngx\:before\:border-2:before{content:var(--tw-content);border-style:var(--tw-border-style);border-width:2px}.ngx\:before\:border-\(--ngx-datepicker-accent-color\):before{content:var(--tw-content);border-color:var(--ngx-datepicker-accent-color)}.ngx\:before\:bg-\(--ngx-datepicker-accent-color\):before{content:var(--tw-content);background-color:var(--ngx-datepicker-accent-color)}.ngx\:focus-within\:shadow:focus-within{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ngx\:focus-within\:outline-2:focus-within{outline-style:var(--tw-outline-style);outline-width:2px}.ngx\:focus-within\:outline-\(--ngx-datepicker-outline-color\):focus-within{outline-color:var(--ngx-datepicker-outline-color)}@media (hover:hover){.ngx\:hover\:bg-slate-100:hover{background-color:var(--ngx-color-slate-100)}.ngx\:hover\:bg-slate-200:hover{background-color:var(--ngx-color-slate-200)}}.ngx\:focus\:bg-slate-100:focus{background-color:var(--ngx-color-slate-100)}.ngx\:focus\:bg-slate-200:focus{background-color:var(--ngx-color-slate-200)}.ngx\:\[\&\:\:-webkit-calendar-picker-indicator\]\:hidden::-webkit-calendar-picker-indicator{display:none}}.gh-dark-code{color:#c9d1d9;background:#0d1117;border:1px solid #30363d;border-radius:8px;padding:16px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:13px;line-height:1.5;display:block;overflow-x:auto}.gh-dark-code pre{flex-direction:column;gap:6px;margin:0;display:flex}.gh-dark-code span{color:#79c0ff}.gh-dark-code strong{color:#ffa657;font-weight:600}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Montserrat Alternates,serif}:root{--ngx-datepicker-outline-color:oklch(54.6% .245 262.881);--ngx-datepicker-accent-color:oklch(54.6% .245 262.881);--ngx-datepicker-accent-text-color:#fff;--ngx-datepicker-range-color:oklch(88.2% .059 254.128)}input[type=date]::-webkit-calendar-picker-indicator{margin:0;padding:0}input[type=date]{appearance:none;min-width:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-text-shadow-color{syntax:"*";inherits:false}@property --tw-text-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-content{syntax:"*";inherits:false;initial-value:""}