@odx/angular 5.5.3 → 5.5.5
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/CHANGELOG.md +12 -0
- package/esm2022/components/autocomplete/lib/autocomplete.component.mjs +2 -3
- package/esm2022/components/calendar/lib/components/calendar-years/calendar-years.component.mjs +3 -3
- package/esm2022/components/notification/lib/components/notification-center/notification-center.component.mjs +3 -3
- package/esm2022/lib/core.module.mjs +6 -6
- package/fesm2022/odx-angular-components-autocomplete.mjs +1 -2
- package/fesm2022/odx-angular-components-autocomplete.mjs.map +1 -1
- package/fesm2022/odx-angular-components-calendar.mjs +3 -3
- package/fesm2022/odx-angular-components-calendar.mjs.map +1 -1
- package/fesm2022/odx-angular-components-notification.mjs +2 -2
- package/fesm2022/odx-angular-components-notification.mjs.map +1 -1
- package/fesm2022/odx-angular.mjs +5 -5
- package/fesm2022/odx-angular.mjs.map +1 -1
- package/lib/core.module.d.ts +3 -3
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"odx-angular-components-calendar.mjs","sources":["../../../../libs/angular/components/calendar/src/lib/models/calendar-view.ts","../../../../libs/angular/components/calendar/src/lib/utils/check-identical-date.ts","../../../../libs/angular/components/calendar/src/lib/utils/get-A11y-label.ts","../../../../libs/angular/components/calendar/src/lib/utils/validate-max-date.ts","../../../../libs/angular/components/calendar/src/lib/utils/validate-min-date.ts","../../../../libs/angular/components/calendar/src/lib/utils/is-date-disabled.ts","../../../../libs/angular/components/calendar/src/lib/utils/parse-date.ts","../../../../libs/angular/components/calendar/src/lib/utils/validate-next-date-set.ts","../../../../libs/angular/components/calendar/src/lib/utils/validate-previous-date-set.ts","../../../../libs/angular/components/calendar/src/lib/calendar.service.ts","../../../../libs/angular/components/calendar/src/lib/components/calendar-header/calendar-header.component.ts","../../../../libs/angular/components/calendar/src/lib/components/calendar-header/calendar-header.component.html","../../../../libs/angular/components/calendar/src/lib/calendar.config.ts","../../../../libs/angular/components/calendar/src/lib/pipes/date-label.pipe.ts","../../../../libs/angular/components/calendar/src/lib/directives/calendar-cell.directive.ts","../../../../libs/angular/components/calendar/src/lib/directives/calendar-view.directive.ts","../../../../libs/angular/components/calendar/src/lib/services/calendar-month.service.ts","../../../../libs/angular/components/calendar/src/lib/services/calendar-year.service.ts","../../../../libs/angular/components/calendar/src/lib/services/calendar-years.service.ts","../../../../libs/angular/components/calendar/src/lib/components/calendar-month/calendar-month.component.ts","../../../../libs/angular/components/calendar/src/lib/components/calendar-month/calendar-month.component.html","../../../../libs/angular/components/calendar/src/lib/components/calendar-year/calendar-year.component.ts","../../../../libs/angular/components/calendar/src/lib/components/calendar-year/calendar-year.component.html","../../../../libs/angular/components/calendar/src/lib/components/calendar-years/calendar-years.component.ts","../../../../libs/angular/components/calendar/src/lib/components/calendar-years/calendar-years.component.html","../../../../libs/angular/components/calendar/src/lib/calendar.component.ts","../../../../libs/angular/components/calendar/src/lib/calendar.component.html","../../../../libs/angular/components/calendar/src/odx-angular-components-calendar.ts"],"sourcesContent":["export enum CalendarView {\n Month = 'month',\n Year = 'year',\n Years = 'years',\n}\n","import { isSameDay, isSameMonth, isSameYear } from 'date-fns';\nimport { CalendarView, DateValidator } from '../models';\n\nconst dateValidators: Record<CalendarView, DateValidator> = {\n [CalendarView.Month]: (currentDate: Date, date: Date) => isSameDay(currentDate, date),\n [CalendarView.Year]: (currentDate: Date, date: Date) => isSameMonth(currentDate, date),\n [CalendarView.Years]: (currentDate: Date, date: Date) => isSameYear(currentDate, date),\n};\n\nexport function checkIdenticalDate(currentDate: Date, date: Date, calendarView: CalendarView): boolean {\n return dateValidators[calendarView](currentDate, date);\n}\n","import { CalendarConfig } from '../calendar.config';\nimport { CalendarView } from '../models';\n\nconst labelResolvers: Record<CalendarView, (config: CalendarConfig) => string> = {\n [CalendarView.Month]: (config: CalendarConfig) => config.dayA11yLabel,\n [CalendarView.Year]: (config: CalendarConfig) => config.monthA11yLabel,\n [CalendarView.Years]: (config: CalendarConfig) => config.yearA11yLabel,\n};\n\nexport function getA11yLabel(calendarView: CalendarView, config: CalendarConfig): string {\n return labelResolvers[calendarView](config);\n}\n","import { endOfDay, endOfMonth, endOfYear } from 'date-fns';\nimport { CalendarView, DateValidator } from '../models';\n\nconst dateValidators: Record<CalendarView, DateValidator> = {\n [CalendarView.Month]: (maxDate: Date, date: Date) => endOfDay(maxDate) < endOfDay(date),\n [CalendarView.Year]: (maxDate: Date, date: Date) => endOfMonth(maxDate) < endOfMonth(date),\n [CalendarView.Years]: (maxDate: Date, date: Date) => endOfYear(maxDate) < endOfYear(date),\n};\n\nexport function validateMaxDate(maxDate: Date, date: Date, calendarView: CalendarView): boolean {\n return dateValidators[calendarView](maxDate, date);\n}\n","import { startOfDay, startOfMonth, startOfYear } from 'date-fns';\nimport { CalendarView, DateValidator } from '../models';\n\nconst dateValidators: Record<CalendarView, DateValidator> = {\n [CalendarView.Month]: (minDate: Date, date: Date) => startOfDay(minDate) > startOfDay(date),\n [CalendarView.Year]: (minDate: Date, date: Date) => startOfMonth(minDate) > startOfMonth(date),\n [CalendarView.Years]: (minDate: Date, date: Date) => startOfYear(minDate) > startOfYear(date),\n};\n\nexport function validateMinDate(maxDate: Date, date: Date, calendarView: CalendarView): boolean {\n return dateValidators[calendarView](maxDate, date);\n}\n","import { CalendarView, DateFilter } from '../models';\nimport { validateMaxDate } from './validate-max-date';\nimport { validateMinDate } from './validate-min-date';\n\nexport function isDateDisabled(date: Date, calendarView: CalendarView, minDate?: Date | null, maxDate?: Date | null, filterFn?: DateFilter | null): boolean {\n const minDateValidation = minDate && validateMinDate(minDate, date, calendarView);\n const maxDateValidation = maxDate && validateMaxDate(maxDate, date, calendarView);\n const isDateFiltered = calendarView === CalendarView.Month && !!filterFn?.(date);\n\n return minDateValidation || maxDateValidation || isDateFiltered;\n}\n","import { isString } from '@odx/angular/utils';\nimport { isValid, toDate } from 'date-fns';\nimport { DateType } from '../models';\n\nexport function parseDate(value: DateType): Date {\n try {\n const timestamp = isString(value) ? Date.parse(value) : value;\n\n if (!isValid(timestamp)) {\n return new Date();\n }\n\n return toDate(timestamp);\n } catch {\n return new Date();\n }\n}\n","import { addMonths, startOfMonth, startOfYear } from 'date-fns';\nimport { CalendarView, DateValidator } from '../models';\n\nconst dateValidators: Record<CalendarView, DateValidator> = {\n [CalendarView.Month]: (maxDate: Date, date: Date) => maxDate < startOfMonth(addMonths(date, 1)),\n [CalendarView.Year]: (maxDate: Date, date: Date) => maxDate < startOfYear(addMonths(date, 12)),\n [CalendarView.Years]: () => false,\n};\n\nexport function validateNextDateSet(maxDate: Date, date: Date, calendarView: CalendarView): boolean {\n return dateValidators[calendarView](maxDate, date);\n}\n","import { endOfMonth, endOfYear, subMonths } from 'date-fns';\nimport { CalendarView, DateValidator } from '../models';\n\nconst dateValidators: Record<CalendarView, DateValidator> = {\n [CalendarView.Month]: (minDate: Date, date: Date) => minDate > endOfMonth(subMonths(date, 1)),\n [CalendarView.Year]: (minDate: Date, date: Date) => minDate > endOfYear(subMonths(date, 12)),\n [CalendarView.Years]: () => false,\n};\n\nexport function validatePreviousDateSet(minDate: Date, date: Date, calendarView: CalendarView): boolean {\n return dateValidators[calendarView](minDate, date);\n}\n","import { Injectable } from '@angular/core';\nimport { isPresent } from '@odx/angular/utils';\nimport { isEqual, startOfDay } from 'date-fns';\nimport { BehaviorSubject, Subject, distinctUntilChanged, filter, merge, shareReplay } from 'rxjs';\nimport { CalendarView, DateType } from './models';\nimport { parseDate } from './utils';\n\n@Injectable()\nexport class CalendarService {\n private readonly calendarView$$ = new BehaviorSubject<CalendarView>(CalendarView.Month);\n private readonly activeDate$$ = new Subject<Date>();\n private readonly selectedDate$$ = new BehaviorSubject<Date | null>(null);\n\n public readonly calendarView$ = this.calendarView$$.pipe(shareReplay({ bufferSize: 1, refCount: true }));\n public readonly selectedDate$ = this.selectedDate$$.pipe(shareReplay({ bufferSize: 1, refCount: true }));\n public readonly activeDate$ = merge(this.activeDate$$, this.selectedDate$).pipe(\n filter(Boolean),\n distinctUntilChanged((prev, curr) => isEqual(prev, curr)),\n shareReplay({ bufferSize: 1, refCount: true }),\n );\n\n public setActiveDate(value: DateType | null): void {\n if (!isPresent(value)) return;\n this.activeDate$$.next(parseDate(value));\n }\n\n public selectDate(value: DateType | null): void {\n const date = isPresent(value) ? startOfDay(parseDate(value)) : null;\n this.selectedDate$$.next(date);\n this.setActiveDate(date);\n }\n\n public changeView(view: CalendarView): void {\n this.calendarView$$.next(view);\n }\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnChanges, Output, ViewEncapsulation } from '@angular/core';\nimport { CoreModule } from '@odx/angular';\nimport { ActionGroupComponent } from '@odx/angular/components/action-group';\nimport { ButtonComponent } from '@odx/angular/components/button';\nimport { IconComponent } from '@odx/angular/components/icon';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { hasChanged, injectElement, NgChanges } from '@odx/angular/utils';\nimport { CalendarView } from '../../models';\nimport { validateNextDateSet, validatePreviousDateSet } from '../../utils';\n\n@CSSComponent('calendar-header')\n@Component({\n selector: 'odx-calendar-header',\n standalone: true,\n imports: [CoreModule, ActionGroupComponent, ButtonComponent, IconComponent],\n templateUrl: './calendar-header.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class CalendarHeaderComponent implements OnChanges {\n protected isPreviousDisabled = false;\n protected isNextDisabled = false;\n\n public readonly element = injectElement();\n\n @Input()\n public activeDate!: Date;\n\n @Input()\n public calendarView!: CalendarView;\n\n @Input()\n public minDate?: Date | null = null;\n\n @Input()\n public maxDate?: Date | null = null;\n\n @Output()\n public previous = new EventEmitter<MouseEvent>();\n\n @Output()\n public next = new EventEmitter<MouseEvent>();\n\n @Output()\n public changeView = new EventEmitter<void>();\n\n public ngOnChanges(changes: NgChanges<CalendarHeaderComponent>): void {\n if (hasChanged(changes, ['activeDate', 'calendarView', 'minDate', 'maxDate'], false)) {\n this.isPreviousDisabled = this.minDate ? validatePreviousDateSet(this.minDate, this.activeDate, this.calendarView) : false;\n this.isNextDisabled = this.maxDate ? validateNextDateSet(this.maxDate, this.activeDate, this.calendarView) : false;\n }\n }\n\n protected previousClicked(event: MouseEvent): void {\n if (this.isPreviousDisabled) return;\n this.previous.emit(event);\n }\n\n protected nextClicked(event: MouseEvent): void {\n if (this.isNextDisabled) return;\n this.next.emit(event);\n }\n}\n","<odx-action-group>\n <button odxButton [disabled]=\"isPreviousDisabled\" (click)=\"previousClicked($event)\">\n <odx-icon name=\"chevron-left\"></odx-icon>\n </button>\n\n <button odxButton class=\"odx-calendar-header__title\" (click)=\"changeView.emit()\">\n <ng-content></ng-content>\n </button>\n\n <button odxButton [disabled]=\"isNextDisabled\" (click)=\"nextClicked($event)\">\n <odx-icon name=\"chevron-right\"></odx-icon>\n </button>\n</odx-action-group>\n","import { createConfigTokens } from '@odx/angular/utils';\nimport { Locale } from 'date-fns';\nimport { enGB } from 'date-fns/locale';\nimport { BehaviorSubject } from 'rxjs';\n\nexport interface CalendarConfig {\n /**\n * Pattern by which month-year label is transformed\n * @default 'LLLL yyyy'\n */\n monthYearLabel: string;\n /**\n * Pattern by which month label is transformed\n * @default 'LLL'\n */\n monthLabel: string;\n /**\n * Pattern by which week label is transformed\n * @default 'EEEEE'\n */\n weekLabel: string;\n /**\n * Pattern by which day label is transformed\n * @default 'd'\n */\n dayLabel: string;\n /**\n * Pattern by which Year label is transformed\n * @default 'yyyy'\n */\n yearLabel: string;\n /**\n * Pattern by which A11y day label is transformed\n * @default 'MMMM dd, yyyy'\n */\n dayA11yLabel: string;\n /**\n * Pattern by which A11y month label is transformed\n * @default 'MMMM, yyyy'\n */\n monthA11yLabel: string;\n /**\n * Pattern by which A11y year label is transformed\n * @default 'yyyy'\n */\n yearA11yLabel: string;\n /**\n * Displays the adjacent days in month calendar view\n * @default true\n */\n displayAdjacentDays: boolean;\n /**\n * Locale by which calendar labels are transformed\n * @default enGB\n */\n locale: BehaviorSubject<Locale>;\n yearView: { itemsPerRow: number };\n yearsView: { itemsPerRow: number; padding: number };\n}\n\nexport const { CalendarConfig, CalendarDefaultConfig, injectCalendarConfig, provideCalendarConfig } = createConfigTokens(\n 'Calendar',\n '@odx/angular/components/calendar',\n {\n monthYearLabel: 'LLLL yyyy',\n monthLabel: 'LLL',\n weekLabel: 'EEEEE',\n dayLabel: 'd',\n yearLabel: 'yyyy',\n dayA11yLabel: 'MMMM dd, yyyy',\n monthA11yLabel: 'MMMM, yyyy',\n yearA11yLabel: 'yyyy',\n displayAdjacentDays: true,\n locale: new BehaviorSubject<Locale>(enGB),\n yearView: {\n itemsPerRow: 3,\n },\n yearsView: {\n itemsPerRow: 3,\n padding: 100,\n },\n },\n);\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { format } from 'date-fns';\nimport { injectCalendarConfig } from '../calendar.config';\n\n@Pipe({\n standalone: true,\n name: 'odxDateLabel',\n pure: true,\n})\nexport class DateLabelPipe implements PipeTransform {\n public readonly config = injectCalendarConfig();\n\n public transform(value: Date | null, dateFormat: string): string {\n if (!value) return '';\n\n return format(value, dateFormat, { locale: this.config.locale.getValue() });\n }\n}\n","import { Directive, inject, Input, OnChanges } from '@angular/core';\nimport { DisabledController } from '@odx/angular';\nimport { CSSComponent, CSSModifier } from '@odx/angular/internal';\nimport { deferFn, hasChanged, injectElement, NgChanges } from '@odx/angular/utils';\nimport { isSameMonth } from 'date-fns';\nimport { injectCalendarConfig } from '../calendar.config';\nimport { CalendarView } from '../models';\nimport { DateLabelPipe } from '../pipes';\nimport { checkIdenticalDate, getA11yLabel } from '../utils';\n\n@CSSComponent('calendar-cell')\n@Directive({\n selector: '[odxCalendarCell]',\n standalone: true,\n providers: [DisabledController.connect(), DateLabelPipe],\n host: {\n '[class.is-disabled]': 'isDisabled',\n '[class.is-selected]': 'isSelected',\n '[attr.hidden]': 'isHidden || null',\n '[tabindex]': 'isActive ? 0 : -1',\n '[attr.aria-label]': 'ariaLabel',\n '[attr.aria-disabled]': 'isDisabled',\n '[attr.type]': '\"button\"',\n },\n})\nexport class CalendarCellDirective implements OnChanges {\n private readonly disabledController = DisabledController.inject();\n\n protected readonly config = injectCalendarConfig();\n protected readonly dateLabelPipe = inject(DateLabelPipe);\n protected isActive = false;\n protected isSelected = false;\n protected isHidden = false;\n protected ariaLabel = '';\n\n protected get isDisabled(): boolean {\n return !!this.disabledController?.disabled;\n }\n\n @CSSModifier()\n protected isCurrent = false;\n\n @CSSModifier()\n protected adjacent = false;\n\n public readonly element = injectElement();\n\n @Input('odxCalendarCell')\n public date!: Date;\n\n @Input('odxCalendarCellCalendarView')\n public calendarView!: CalendarView;\n\n @Input('odxCalendarCellActiveDate')\n public activeDate: Date | null = null;\n\n @Input('odxCalendarCellSelectedDate')\n public selectedDate?: Date | null = null;\n\n public ngOnChanges(changes: NgChanges<CalendarCellDirective>): void {\n if (hasChanged(changes, ['date', 'calendarView'], false)) {\n this.ariaLabel = this.dateLabelPipe.transform(this.date, getA11yLabel(this.calendarView, this.config));\n this.isCurrent = checkIdenticalDate(this.date, new Date(), this.calendarView);\n }\n\n if (this.activeDate && hasChanged(changes, ['date', 'activeDate'], false)) {\n this.isActive = checkIdenticalDate(this.date, this.activeDate, this.calendarView);\n if (this.calendarView === CalendarView.Month) {\n this.adjacent = !isSameMonth(this.date, this.activeDate);\n this.isHidden = this.adjacent && !this.config.displayAdjacentDays;\n }\n }\n\n if (this.selectedDate && hasChanged(changes, ['date', 'selectedDate'], false)) {\n this.isSelected = checkIdenticalDate(this.date, this.selectedDate, this.calendarView);\n }\n\n if (this.isActive) {\n deferFn(() => this.element.nativeElement.focus());\n }\n }\n}\n","import { Directive, inject, Input } from '@angular/core';\nimport { injectElement, trackByIndex, untilDestroyed } from '@odx/angular/utils';\nimport { injectCalendarConfig } from '../calendar.config';\nimport { CalendarService } from '../calendar.service';\nimport { CalendarView, DateFilter } from '../models';\nimport { isDateDisabled } from '../utils';\n\n@Directive({\n standalone: true,\n})\nexport abstract class CalendarViewDirective {\n protected readonly takeUntilDestroyed = untilDestroyed();\n protected readonly calendar = inject(CalendarService);\n protected readonly config = injectCalendarConfig();\n protected readonly trackByIndex = trackByIndex;\n protected abstract readonly currentView: CalendarView;\n protected abstract readonly nextView: CalendarView;\n\n public readonly element = injectElement();\n\n @Input()\n public activeDate!: Date;\n\n @Input()\n public selectedDate?: Date | null = null;\n\n @Input()\n public minDate?: Date | null = null;\n\n @Input()\n public maxDate?: Date | null = null;\n\n @Input()\n public filterFn?: DateFilter | null = null;\n\n protected isDateDisabled(value: Date): boolean {\n return isDateDisabled(value, this.currentView, this.minDate, this.maxDate, this.filterFn);\n }\n\n protected changeView(): void {\n this.calendar.changeView(this.nextView);\n }\n\n protected updateActiveDate(event: Event, date: Date): void {\n event.preventDefault();\n event.stopPropagation();\n\n this.calendar.setActiveDate(date);\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { addDays, endOfMonth, endOfWeek, startOfMonth, startOfWeek } from 'date-fns';\nimport { map } from 'rxjs';\nimport { CalendarService } from '../calendar.service';\n\n@Injectable()\nexport class CalendarMonthService {\n private readonly calendar = inject(CalendarService);\n\n public readonly weekDays$ = this.calendar.activeDate$.pipe(map((date) => this.generateWeekDays(date)));\n public readonly weeks$ = this.calendar.activeDate$.pipe(map((date) => this.generateWeeks(date)));\n\n private generateWeekDays(date: Date): Date[] {\n const firstWeekDay = startOfWeek(date, { weekStartsOn: 1 });\n\n return Array.from({ length: 7 }, (_, i) => addDays(firstWeekDay, i));\n }\n\n private generateWeeks(date: Date): Date[][] {\n const startOfTheSelectedMonth = startOfMonth(date);\n const endOfTheSelectedMonth = endOfMonth(date);\n const startDate = startOfWeek(startOfTheSelectedMonth, { weekStartsOn: 1 });\n const endDate = endOfWeek(endOfTheSelectedMonth);\n const allWeeks = [];\n\n let currentDate = startDate;\n while (currentDate <= endDate) {\n allWeeks.push(this.generateDaysForWeek(currentDate, date));\n currentDate = addDays(currentDate, 7);\n }\n\n return allWeeks;\n }\n\n private generateDaysForWeek(date: Date, currentDate: Date): Date[] {\n return Array.from({ length: 7 }).map((_, i) => addDays(date, i), currentDate);\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { eachMonthOfInterval, endOfYear, startOfYear } from 'date-fns';\nimport { map } from 'rxjs';\nimport { injectCalendarConfig } from '../calendar.config';\nimport { CalendarService } from '../calendar.service';\n\n@Injectable()\nexport class CalendarYearService {\n private readonly config = injectCalendarConfig();\n private readonly calendar = inject(CalendarService);\n\n public readonly seasons$ = this.calendar.activeDate$.pipe(map((selectedDate) => this.generateSeasons(selectedDate)));\n\n private generateSeasons(date: Date): Date[][] {\n const { itemsPerRow } = this.config.yearView;\n const seasons = [];\n const months = eachMonthOfInterval({\n start: startOfYear(date),\n end: endOfYear(date),\n });\n\n let index = 0;\n while (index < months.length) {\n seasons.push(months.slice(index, index + itemsPerRow));\n index += itemsPerRow;\n }\n\n return seasons;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { addYears, getYear, setYear, startOfYear } from 'date-fns';\nimport { defer, of } from 'rxjs';\nimport { injectCalendarConfig } from '../calendar.config';\n\n@Injectable()\nexport class CalendarYearsService {\n private readonly config = injectCalendarConfig();\n\n public readonly years$ = defer(() => of(this.generateYears()));\n\n private generateYears(): Date[][] {\n const { itemsPerRow, padding } = this.config.yearsView;\n const now = Date.now();\n const startDate = startOfYear(addYears(now, -padding));\n const startYear = getYear(startDate);\n const endDate = startOfYear(addYears(now, padding));\n const endYear = getYear(endDate);\n\n const years: Date[] = [];\n const yearRows: Date[][] = [];\n\n for (let i = startYear; i <= endYear; i++) {\n years.push(setYear(startDate, i));\n }\n\n let index = 0;\n while (index < years.length) {\n yearRows.push(years.slice(index, index + itemsPerRow));\n index += itemsPerRow;\n }\n\n return yearRows;\n }\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, inject, Output, ViewEncapsulation } from '@angular/core';\nimport { CoreModule } from '@odx/angular';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { addDays, addMonths, addWeeks, subDays, subMonths, subWeeks } from 'date-fns';\nimport { CalendarCellDirective, CalendarViewDirective } from '../../directives';\nimport { CalendarView } from '../../models';\nimport { DateLabelPipe } from '../../pipes';\nimport { CalendarMonthService } from '../../services';\nimport { CalendarHeaderComponent } from '../calendar-header';\n\n@CSSComponent('calendar-month')\n@Component({\n selector: 'odx-calendar-month',\n standalone: true,\n imports: [CoreModule, CalendarCellDirective, CalendarHeaderComponent, DateLabelPipe],\n templateUrl: './calendar-month.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [CalendarMonthService],\n})\nexport class CalendarMonthComponent extends CalendarViewDirective {\n protected readonly calendarMonth = inject(CalendarMonthService);\n protected readonly nextView = CalendarView.Years;\n protected readonly currentView = CalendarView.Month;\n\n @Output()\n public selectedChange = new EventEmitter<Date | null>();\n\n protected previousDay(event: Event): void {\n this.updateActiveDate(event, subDays(this.activeDate, 1));\n }\n\n protected nextDay(event: Event): void {\n this.updateActiveDate(event, addDays(this.activeDate, 1));\n }\n\n protected previousWeek(event: Event): void {\n this.updateActiveDate(event, subWeeks(this.activeDate, 1));\n }\n\n protected nextWeek(event: Event): void {\n this.updateActiveDate(event, addWeeks(this.activeDate, 1));\n }\n\n protected previousMonth(event: Event): void {\n this.updateActiveDate(event, subMonths(this.activeDate, 1));\n }\n\n protected nextMonth(event: Event): void {\n this.updateActiveDate(event, addMonths(this.activeDate, 1));\n }\n\n protected selectDate(value: Date): void {\n if (this.isDateDisabled(value)) return;\n\n this.calendar.selectDate(value);\n this.selectedChange.emit(value);\n }\n}\n","<table class=\"odx-calendar__table\" role=\"grid\" aria-describedby=\"odx-calendar\">\n <thead>\n <tr>\n <th colspan=\"7\">\n <odx-calendar-header\n [calendarView]=\"currentView\"\n [activeDate]=\"activeDate\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n (previous)=\"previousMonth($event)\"\n (next)=\"nextMonth($event)\"\n (changeView)=\"changeView()\"\n >\n {{ activeDate | odxDateLabel: config.monthYearLabel }}\n </odx-calendar-header>\n </th>\n </tr>\n\n <tr class=\"odx-calendar__weekdays\">\n <td *ngFor=\"let day of calendarMonth.weekDays$ | async\">\n {{ day | odxDateLabel: config.weekLabel }}\n </td>\n </tr>\n </thead>\n\n <tbody\n class=\"odx-calendar__body\"\n (keydown.ArrowLeft)=\"previousDay($event)\"\n (keydown.ArrowRight)=\"nextDay($event)\"\n (keydown.ArrowUp)=\"previousWeek($event)\"\n (keydown.ArrowDown)=\"nextWeek($event)\"\n (keydown.PageUp)=\"previousMonth($event)\"\n (keydown.PageDown)=\"nextMonth($event)\"\n >\n <tr *ngFor=\"let week of calendarMonth.weeks$ | async; trackBy: trackByIndex\">\n <td role=\"gridcell\" *ngFor=\"let day of week; trackBy: trackByIndex\">\n <button\n [disabled]=\"isDateDisabled(day)\"\n [odxCalendarCell]=\"day\"\n [odxCalendarCellActiveDate]=\"activeDate\"\n [odxCalendarCellCalendarView]=\"currentView\"\n [odxCalendarCellSelectedDate]=\"selectedDate\"\n (click)=\"selectDate(day)\"\n >\n {{ day | odxDateLabel: config.dayLabel }}\n </button>\n </td>\n </tr>\n </tbody>\n</table>\n","import { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { CoreModule } from '@odx/angular';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { addMonths, getMonth, setMonth, subMonths } from 'date-fns';\nimport { CalendarCellDirective, CalendarViewDirective } from '../../directives';\nimport { CalendarView } from '../../models';\nimport { DateLabelPipe } from '../../pipes';\nimport { CalendarYearService } from '../../services';\nimport { CalendarHeaderComponent } from '../calendar-header';\n\n@CSSComponent('calendar-year')\n@Component({\n selector: 'odx-calendar-year',\n standalone: true,\n imports: [CoreModule, CalendarCellDirective, CalendarHeaderComponent, DateLabelPipe],\n templateUrl: './calendar-year.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [CalendarYearService],\n})\nexport class CalendarYearComponent extends CalendarViewDirective {\n protected readonly calendarYear = inject(CalendarYearService);\n protected readonly nextView = CalendarView.Month;\n protected readonly currentView = CalendarView.Year;\n\n protected previousMonth(event: Event): void {\n this.updateActiveDate(event, subMonths(this.activeDate, 1));\n }\n\n protected nextMonth(event: Event): void {\n this.updateActiveDate(event, addMonths(this.activeDate, 1));\n }\n\n protected previousSeason(event: Event): void {\n this.updateActiveDate(event, subMonths(this.activeDate, 3));\n }\n\n protected nextSeason(event: Event): void {\n this.updateActiveDate(event, addMonths(this.activeDate, 3));\n }\n\n protected previousYear(event: Event): void {\n this.updateActiveDate(event, subMonths(this.activeDate, 12));\n }\n\n protected nextYear(event: Event): void {\n this.updateActiveDate(event, addMonths(this.activeDate, 12));\n }\n\n protected selectDate(value: Date): void {\n if (this.isDateDisabled(value)) return;\n\n const date = setMonth(this.activeDate, getMonth(value));\n this.calendar.selectDate(date);\n\n this.changeView();\n }\n}\n","<table class=\"odx-calendar__table\" role=\"grid\" aria-describedby=\"odx-calendar\">\n <thead>\n <tr>\n <th colspan=\"3\">\n <odx-calendar-header\n (previous)=\"previousYear($event)\"\n [calendarView]=\"currentView\"\n [activeDate]=\"activeDate\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n (next)=\"nextYear($event)\"\n (changeView)=\"changeView()\"\n >\n {{ activeDate | odxDateLabel: config.yearLabel }}\n </odx-calendar-header>\n </th>\n </tr>\n </thead>\n\n <tbody\n class=\"odx-calendar__body\"\n (keydown.ArrowLeft)=\"previousMonth($event)\"\n (keydown.ArrowRight)=\"nextMonth($event)\"\n (keydown.ArrowUp)=\"previousSeason($event)\"\n (keydown.ArrowDown)=\"nextSeason($event)\"\n (keydown.PageDown)=\"nextYear($event)\"\n (keydown.PageUp)=\"previousYear($event)\"\n >\n <tr class=\"odx-calendar__season\" *ngFor=\"let season of calendarYear.seasons$ | async; trackBy: trackByIndex\">\n <td role=\"gridcell\" *ngFor=\"let month of season; trackBy: trackByIndex\">\n <button\n [disabled]=\"isDateDisabled(month)\"\n [odxCalendarCell]=\"month\"\n [odxCalendarCellActiveDate]=\"activeDate\"\n [odxCalendarCellCalendarView]=\"currentView\"\n [odxCalendarCellSelectedDate]=\"selectedDate\"\n (click)=\"selectDate(month)\"\n >\n {{ month | odxDateLabel: config.monthLabel }}\n </button>\n </td>\n </tr>\n </tbody>\n</table>\n","import { DOCUMENT } from '@angular/common';\nimport { AfterViewInit, ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { CoreModule } from '@odx/angular';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { deferFn, isFunction } from '@odx/angular/utils';\nimport { addMonths, getYear, setYear, subMonths } from 'date-fns';\nimport { CalendarCellDirective, CalendarViewDirective } from '../../directives';\nimport { CalendarView } from '../../models';\nimport { DateLabelPipe } from '../../pipes';\nimport { CalendarYearsService } from '../../services';\nimport { CalendarHeaderComponent } from '../calendar-header';\n\n@CSSComponent('calendar-years')\n@Component({\n selector: 'odx-calendar-years',\n standalone: true,\n imports: [CoreModule, CalendarCellDirective, CalendarHeaderComponent, DateLabelPipe],\n templateUrl: './calendar-years.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [CalendarYearsService],\n})\nexport class CalendarYearsComponent extends CalendarViewDirective implements AfterViewInit {\n private readonly document = inject(DOCUMENT);\n\n protected readonly calendarYears = inject(CalendarYearsService);\n protected readonly nextView = CalendarView.Year;\n protected readonly currentView = CalendarView.Years;\n\n public ngAfterViewInit(): void {\n deferFn(() => this.scrollCurrentYearIntoView());\n }\n\n protected previousYear(event: Event): void {\n this.updateActiveDate(event, subMonths(this.activeDate, 12));\n }\n\n protected nextYear(event: Event): void {\n this.updateActiveDate(event, addMonths(this.activeDate, 12));\n }\n\n protected previousRow(event: Event): void {\n this.updateActiveDate(event, subMonths(this.activeDate, 12 * 3));\n }\n\n protected nextRow(event: Event): void {\n this.updateActiveDate(event, addMonths(this.activeDate, 12 * 3));\n }\n\n protected selectDate(value: Date): void {\n if (this.isDateDisabled(value)) return;\n\n const date = setYear(this.activeDate, getYear(value));\n this.calendar.selectDate(date);\n\n this.changeView();\n }\n\n private scrollCurrentYearIntoView(): void {\n const selectedYear = this.document.querySelector('.odx-calendar-cell.is-selected');\n const currentYear = this.document.querySelector('.odx-calendar-cell--is-current');\n\n const element = selectedYear || currentYear;\n\n if (element && isFunction(element.scrollIntoView)) {\n element.scrollIntoView({ block: 'center', behavior: 'smooth' });\n }\n }\n}\n","<table class=\"odx-calendar__table\" role=\"grid\" aria-describedby=\"odx-calendar\" *ngrxLet=\"calendar.activeDate$ as activeDate\">\n <thead aria-hidden=\"true\">\n <th></th>\n </thead>\n\n <tbody\n class=\"odx-calendar__body\"\n (keydown.ArrowLeft)=\"previousYear($event)\"\n (keydown.ArrowRight)=\"nextYear($event)\"\n (keydown.ArrowUp)=\"previousRow($event)\"\n (keydown.ArrowDown)=\"nextRow($event)\"\n >\n <tr class=\"odx-calendar__year-row\" *ngFor=\"let yearRow of calendarYears.years$ | async; trackBy: trackByIndex\">\n <td role=\"gridcell\" *ngFor=\"let year of yearRow; trackBy: trackByIndex\">\n <button\n [disabled]=\"isDateDisabled(year)\"\n [odxCalendarCell]=\"year\"\n [odxCalendarCellActiveDate]=\"activeDate\"\n [odxCalendarCellCalendarView]=\"currentView\"\n [odxCalendarCellSelectedDate]=\"calendar.selectedDate$ | async\"\n (click)=\"selectDate(year)\"\n >\n {{ year | odxDateLabel: config.yearLabel }}\n </button>\n </td>\n </tr>\n </tbody>\n</table>\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { ChangeDetectionStrategy, Component, EventEmitter, inject, Input, OnChanges, Output, ViewEncapsulation } from '@angular/core';\nimport { CoreModule } from '@odx/angular';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { hasChanged, injectElement, NgChanges } from '@odx/angular/utils';\nimport { CalendarService } from './calendar.service';\nimport { CalendarMonthComponent, CalendarYearComponent, CalendarYearsComponent } from './components';\nimport { CalendarView, DateFilter, DateType } from './models';\n\n@CSSComponent('calendar')\n@Component({\n selector: 'odx-calendar',\n standalone: true,\n imports: [CoreModule, A11yModule, CalendarMonthComponent, CalendarYearComponent, CalendarYearsComponent],\n templateUrl: './calendar.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [CalendarService],\n})\nexport class CalendarComponent implements OnChanges {\n protected readonly CalendarView = CalendarView;\n protected readonly calendar = inject(CalendarService);\n\n public readonly element = injectElement();\n\n @Input()\n public selectedDate: DateType | null = null;\n\n @Input()\n public minDate?: Date | null = null;\n\n @Input()\n public maxDate?: Date | null = null;\n\n @Input()\n public filterFn?: DateFilter | null = null;\n\n @Output()\n public selectedDateChange = new EventEmitter<Date | null>();\n\n public ngOnChanges(changes: NgChanges<CalendarComponent>): void {\n if (hasChanged(changes, 'selectedDate', false)) {\n this.calendar.selectDate(this.selectedDate);\n }\n }\n}\n","<ng-template [ngrxLet]=\"{ activeDate: calendar.activeDate$, calendarView: calendar.calendarView$, selectedDate: calendar.selectedDate$ }\" let-vm>\n <ng-container [ngSwitch]=\"vm.calendarView\">\n <odx-calendar-year\n [activeDate]=\"vm.activeDate\"\n [selectedDate]=\"vm.selectedDate\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [filterFn]=\"filterFn\"\n *ngSwitchCase=\"CalendarView.Year\"\n ></odx-calendar-year>\n <odx-calendar-years\n [activeDate]=\"vm.activeDate\"\n [selectedDate]=\"vm.selectedDate\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [filterFn]=\"filterFn\"\n *ngSwitchCase=\"CalendarView.Years\"\n ></odx-calendar-years>\n <odx-calendar-month\n [activeDate]=\"vm.activeDate\"\n [selectedDate]=\"vm.selectedDate\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [filterFn]=\"filterFn\"\n (selectedChange)=\"selectedDateChange.emit($event)\"\n *ngSwitchDefault\n ></odx-calendar-month>\n </ng-container>\n</ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["dateValidators","i2","i3"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"odx-angular-components-calendar.mjs","sources":["../../../../libs/angular/components/calendar/src/lib/models/calendar-view.ts","../../../../libs/angular/components/calendar/src/lib/utils/check-identical-date.ts","../../../../libs/angular/components/calendar/src/lib/utils/get-A11y-label.ts","../../../../libs/angular/components/calendar/src/lib/utils/validate-max-date.ts","../../../../libs/angular/components/calendar/src/lib/utils/validate-min-date.ts","../../../../libs/angular/components/calendar/src/lib/utils/is-date-disabled.ts","../../../../libs/angular/components/calendar/src/lib/utils/parse-date.ts","../../../../libs/angular/components/calendar/src/lib/utils/validate-next-date-set.ts","../../../../libs/angular/components/calendar/src/lib/utils/validate-previous-date-set.ts","../../../../libs/angular/components/calendar/src/lib/calendar.service.ts","../../../../libs/angular/components/calendar/src/lib/components/calendar-header/calendar-header.component.ts","../../../../libs/angular/components/calendar/src/lib/components/calendar-header/calendar-header.component.html","../../../../libs/angular/components/calendar/src/lib/calendar.config.ts","../../../../libs/angular/components/calendar/src/lib/pipes/date-label.pipe.ts","../../../../libs/angular/components/calendar/src/lib/directives/calendar-cell.directive.ts","../../../../libs/angular/components/calendar/src/lib/directives/calendar-view.directive.ts","../../../../libs/angular/components/calendar/src/lib/services/calendar-month.service.ts","../../../../libs/angular/components/calendar/src/lib/services/calendar-year.service.ts","../../../../libs/angular/components/calendar/src/lib/services/calendar-years.service.ts","../../../../libs/angular/components/calendar/src/lib/components/calendar-month/calendar-month.component.ts","../../../../libs/angular/components/calendar/src/lib/components/calendar-month/calendar-month.component.html","../../../../libs/angular/components/calendar/src/lib/components/calendar-year/calendar-year.component.ts","../../../../libs/angular/components/calendar/src/lib/components/calendar-year/calendar-year.component.html","../../../../libs/angular/components/calendar/src/lib/components/calendar-years/calendar-years.component.ts","../../../../libs/angular/components/calendar/src/lib/components/calendar-years/calendar-years.component.html","../../../../libs/angular/components/calendar/src/lib/calendar.component.ts","../../../../libs/angular/components/calendar/src/lib/calendar.component.html","../../../../libs/angular/components/calendar/src/odx-angular-components-calendar.ts"],"sourcesContent":["export enum CalendarView {\n Month = 'month',\n Year = 'year',\n Years = 'years',\n}\n","import { isSameDay, isSameMonth, isSameYear } from 'date-fns';\nimport { CalendarView, DateValidator } from '../models';\n\nconst dateValidators: Record<CalendarView, DateValidator> = {\n [CalendarView.Month]: (currentDate: Date, date: Date) => isSameDay(currentDate, date),\n [CalendarView.Year]: (currentDate: Date, date: Date) => isSameMonth(currentDate, date),\n [CalendarView.Years]: (currentDate: Date, date: Date) => isSameYear(currentDate, date),\n};\n\nexport function checkIdenticalDate(currentDate: Date, date: Date, calendarView: CalendarView): boolean {\n return dateValidators[calendarView](currentDate, date);\n}\n","import { CalendarConfig } from '../calendar.config';\nimport { CalendarView } from '../models';\n\nconst labelResolvers: Record<CalendarView, (config: CalendarConfig) => string> = {\n [CalendarView.Month]: (config: CalendarConfig) => config.dayA11yLabel,\n [CalendarView.Year]: (config: CalendarConfig) => config.monthA11yLabel,\n [CalendarView.Years]: (config: CalendarConfig) => config.yearA11yLabel,\n};\n\nexport function getA11yLabel(calendarView: CalendarView, config: CalendarConfig): string {\n return labelResolvers[calendarView](config);\n}\n","import { endOfDay, endOfMonth, endOfYear } from 'date-fns';\nimport { CalendarView, DateValidator } from '../models';\n\nconst dateValidators: Record<CalendarView, DateValidator> = {\n [CalendarView.Month]: (maxDate: Date, date: Date) => endOfDay(maxDate) < endOfDay(date),\n [CalendarView.Year]: (maxDate: Date, date: Date) => endOfMonth(maxDate) < endOfMonth(date),\n [CalendarView.Years]: (maxDate: Date, date: Date) => endOfYear(maxDate) < endOfYear(date),\n};\n\nexport function validateMaxDate(maxDate: Date, date: Date, calendarView: CalendarView): boolean {\n return dateValidators[calendarView](maxDate, date);\n}\n","import { startOfDay, startOfMonth, startOfYear } from 'date-fns';\nimport { CalendarView, DateValidator } from '../models';\n\nconst dateValidators: Record<CalendarView, DateValidator> = {\n [CalendarView.Month]: (minDate: Date, date: Date) => startOfDay(minDate) > startOfDay(date),\n [CalendarView.Year]: (minDate: Date, date: Date) => startOfMonth(minDate) > startOfMonth(date),\n [CalendarView.Years]: (minDate: Date, date: Date) => startOfYear(minDate) > startOfYear(date),\n};\n\nexport function validateMinDate(maxDate: Date, date: Date, calendarView: CalendarView): boolean {\n return dateValidators[calendarView](maxDate, date);\n}\n","import { CalendarView, DateFilter } from '../models';\nimport { validateMaxDate } from './validate-max-date';\nimport { validateMinDate } from './validate-min-date';\n\nexport function isDateDisabled(date: Date, calendarView: CalendarView, minDate?: Date | null, maxDate?: Date | null, filterFn?: DateFilter | null): boolean {\n const minDateValidation = minDate && validateMinDate(minDate, date, calendarView);\n const maxDateValidation = maxDate && validateMaxDate(maxDate, date, calendarView);\n const isDateFiltered = calendarView === CalendarView.Month && !!filterFn?.(date);\n\n return minDateValidation || maxDateValidation || isDateFiltered;\n}\n","import { isString } from '@odx/angular/utils';\nimport { isValid, toDate } from 'date-fns';\nimport { DateType } from '../models';\n\nexport function parseDate(value: DateType): Date {\n try {\n const timestamp = isString(value) ? Date.parse(value) : value;\n\n if (!isValid(timestamp)) {\n return new Date();\n }\n\n return toDate(timestamp);\n } catch {\n return new Date();\n }\n}\n","import { addMonths, startOfMonth, startOfYear } from 'date-fns';\nimport { CalendarView, DateValidator } from '../models';\n\nconst dateValidators: Record<CalendarView, DateValidator> = {\n [CalendarView.Month]: (maxDate: Date, date: Date) => maxDate < startOfMonth(addMonths(date, 1)),\n [CalendarView.Year]: (maxDate: Date, date: Date) => maxDate < startOfYear(addMonths(date, 12)),\n [CalendarView.Years]: () => false,\n};\n\nexport function validateNextDateSet(maxDate: Date, date: Date, calendarView: CalendarView): boolean {\n return dateValidators[calendarView](maxDate, date);\n}\n","import { endOfMonth, endOfYear, subMonths } from 'date-fns';\nimport { CalendarView, DateValidator } from '../models';\n\nconst dateValidators: Record<CalendarView, DateValidator> = {\n [CalendarView.Month]: (minDate: Date, date: Date) => minDate > endOfMonth(subMonths(date, 1)),\n [CalendarView.Year]: (minDate: Date, date: Date) => minDate > endOfYear(subMonths(date, 12)),\n [CalendarView.Years]: () => false,\n};\n\nexport function validatePreviousDateSet(minDate: Date, date: Date, calendarView: CalendarView): boolean {\n return dateValidators[calendarView](minDate, date);\n}\n","import { Injectable } from '@angular/core';\nimport { isPresent } from '@odx/angular/utils';\nimport { isEqual, startOfDay } from 'date-fns';\nimport { BehaviorSubject, Subject, distinctUntilChanged, filter, merge, shareReplay } from 'rxjs';\nimport { CalendarView, DateType } from './models';\nimport { parseDate } from './utils';\n\n@Injectable()\nexport class CalendarService {\n private readonly calendarView$$ = new BehaviorSubject<CalendarView>(CalendarView.Month);\n private readonly activeDate$$ = new Subject<Date>();\n private readonly selectedDate$$ = new BehaviorSubject<Date | null>(null);\n\n public readonly calendarView$ = this.calendarView$$.pipe(shareReplay({ bufferSize: 1, refCount: true }));\n public readonly selectedDate$ = this.selectedDate$$.pipe(shareReplay({ bufferSize: 1, refCount: true }));\n public readonly activeDate$ = merge(this.activeDate$$, this.selectedDate$).pipe(\n filter(Boolean),\n distinctUntilChanged((prev, curr) => isEqual(prev, curr)),\n shareReplay({ bufferSize: 1, refCount: true }),\n );\n\n public setActiveDate(value: DateType | null): void {\n if (!isPresent(value)) return;\n this.activeDate$$.next(parseDate(value));\n }\n\n public selectDate(value: DateType | null): void {\n const date = isPresent(value) ? startOfDay(parseDate(value)) : null;\n this.selectedDate$$.next(date);\n this.setActiveDate(date);\n }\n\n public changeView(view: CalendarView): void {\n this.calendarView$$.next(view);\n }\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnChanges, Output, ViewEncapsulation } from '@angular/core';\nimport { CoreModule } from '@odx/angular';\nimport { ActionGroupComponent } from '@odx/angular/components/action-group';\nimport { ButtonComponent } from '@odx/angular/components/button';\nimport { IconComponent } from '@odx/angular/components/icon';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { hasChanged, injectElement, NgChanges } from '@odx/angular/utils';\nimport { CalendarView } from '../../models';\nimport { validateNextDateSet, validatePreviousDateSet } from '../../utils';\n\n@CSSComponent('calendar-header')\n@Component({\n selector: 'odx-calendar-header',\n standalone: true,\n imports: [CoreModule, ActionGroupComponent, ButtonComponent, IconComponent],\n templateUrl: './calendar-header.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class CalendarHeaderComponent implements OnChanges {\n protected isPreviousDisabled = false;\n protected isNextDisabled = false;\n\n public readonly element = injectElement();\n\n @Input()\n public activeDate!: Date;\n\n @Input()\n public calendarView!: CalendarView;\n\n @Input()\n public minDate?: Date | null = null;\n\n @Input()\n public maxDate?: Date | null = null;\n\n @Output()\n public previous = new EventEmitter<MouseEvent>();\n\n @Output()\n public next = new EventEmitter<MouseEvent>();\n\n @Output()\n public changeView = new EventEmitter<void>();\n\n public ngOnChanges(changes: NgChanges<CalendarHeaderComponent>): void {\n if (hasChanged(changes, ['activeDate', 'calendarView', 'minDate', 'maxDate'], false)) {\n this.isPreviousDisabled = this.minDate ? validatePreviousDateSet(this.minDate, this.activeDate, this.calendarView) : false;\n this.isNextDisabled = this.maxDate ? validateNextDateSet(this.maxDate, this.activeDate, this.calendarView) : false;\n }\n }\n\n protected previousClicked(event: MouseEvent): void {\n if (this.isPreviousDisabled) return;\n this.previous.emit(event);\n }\n\n protected nextClicked(event: MouseEvent): void {\n if (this.isNextDisabled) return;\n this.next.emit(event);\n }\n}\n","<odx-action-group>\n <button odxButton [disabled]=\"isPreviousDisabled\" (click)=\"previousClicked($event)\">\n <odx-icon name=\"chevron-left\"></odx-icon>\n </button>\n\n <button odxButton class=\"odx-calendar-header__title\" (click)=\"changeView.emit()\">\n <ng-content></ng-content>\n </button>\n\n <button odxButton [disabled]=\"isNextDisabled\" (click)=\"nextClicked($event)\">\n <odx-icon name=\"chevron-right\"></odx-icon>\n </button>\n</odx-action-group>\n","import { createConfigTokens } from '@odx/angular/utils';\nimport { Locale } from 'date-fns';\nimport { enGB } from 'date-fns/locale';\nimport { BehaviorSubject } from 'rxjs';\n\nexport interface CalendarConfig {\n /**\n * Pattern by which month-year label is transformed\n * @default 'LLLL yyyy'\n */\n monthYearLabel: string;\n /**\n * Pattern by which month label is transformed\n * @default 'LLL'\n */\n monthLabel: string;\n /**\n * Pattern by which week label is transformed\n * @default 'EEEEE'\n */\n weekLabel: string;\n /**\n * Pattern by which day label is transformed\n * @default 'd'\n */\n dayLabel: string;\n /**\n * Pattern by which Year label is transformed\n * @default 'yyyy'\n */\n yearLabel: string;\n /**\n * Pattern by which A11y day label is transformed\n * @default 'MMMM dd, yyyy'\n */\n dayA11yLabel: string;\n /**\n * Pattern by which A11y month label is transformed\n * @default 'MMMM, yyyy'\n */\n monthA11yLabel: string;\n /**\n * Pattern by which A11y year label is transformed\n * @default 'yyyy'\n */\n yearA11yLabel: string;\n /**\n * Displays the adjacent days in month calendar view\n * @default true\n */\n displayAdjacentDays: boolean;\n /**\n * Locale by which calendar labels are transformed\n * @default enGB\n */\n locale: BehaviorSubject<Locale>;\n yearView: { itemsPerRow: number };\n yearsView: { itemsPerRow: number; padding: number };\n}\n\nexport const { CalendarConfig, CalendarDefaultConfig, injectCalendarConfig, provideCalendarConfig } = createConfigTokens(\n 'Calendar',\n '@odx/angular/components/calendar',\n {\n monthYearLabel: 'LLLL yyyy',\n monthLabel: 'LLL',\n weekLabel: 'EEEEE',\n dayLabel: 'd',\n yearLabel: 'yyyy',\n dayA11yLabel: 'MMMM dd, yyyy',\n monthA11yLabel: 'MMMM, yyyy',\n yearA11yLabel: 'yyyy',\n displayAdjacentDays: true,\n locale: new BehaviorSubject<Locale>(enGB),\n yearView: {\n itemsPerRow: 3,\n },\n yearsView: {\n itemsPerRow: 3,\n padding: 100,\n },\n },\n);\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { format } from 'date-fns';\nimport { injectCalendarConfig } from '../calendar.config';\n\n@Pipe({\n standalone: true,\n name: 'odxDateLabel',\n pure: true,\n})\nexport class DateLabelPipe implements PipeTransform {\n public readonly config = injectCalendarConfig();\n\n public transform(value: Date | null, dateFormat: string): string {\n if (!value) return '';\n\n return format(value, dateFormat, { locale: this.config.locale.getValue() });\n }\n}\n","import { Directive, inject, Input, OnChanges } from '@angular/core';\nimport { DisabledController } from '@odx/angular';\nimport { CSSComponent, CSSModifier } from '@odx/angular/internal';\nimport { deferFn, hasChanged, injectElement, NgChanges } from '@odx/angular/utils';\nimport { isSameMonth } from 'date-fns';\nimport { injectCalendarConfig } from '../calendar.config';\nimport { CalendarView } from '../models';\nimport { DateLabelPipe } from '../pipes';\nimport { checkIdenticalDate, getA11yLabel } from '../utils';\n\n@CSSComponent('calendar-cell')\n@Directive({\n selector: '[odxCalendarCell]',\n standalone: true,\n providers: [DisabledController.connect(), DateLabelPipe],\n host: {\n '[class.is-disabled]': 'isDisabled',\n '[class.is-selected]': 'isSelected',\n '[attr.hidden]': 'isHidden || null',\n '[tabindex]': 'isActive ? 0 : -1',\n '[attr.aria-label]': 'ariaLabel',\n '[attr.aria-disabled]': 'isDisabled',\n '[attr.type]': '\"button\"',\n },\n})\nexport class CalendarCellDirective implements OnChanges {\n private readonly disabledController = DisabledController.inject();\n\n protected readonly config = injectCalendarConfig();\n protected readonly dateLabelPipe = inject(DateLabelPipe);\n protected isActive = false;\n protected isSelected = false;\n protected isHidden = false;\n protected ariaLabel = '';\n\n protected get isDisabled(): boolean {\n return !!this.disabledController?.disabled;\n }\n\n @CSSModifier()\n protected isCurrent = false;\n\n @CSSModifier()\n protected adjacent = false;\n\n public readonly element = injectElement();\n\n @Input('odxCalendarCell')\n public date!: Date;\n\n @Input('odxCalendarCellCalendarView')\n public calendarView!: CalendarView;\n\n @Input('odxCalendarCellActiveDate')\n public activeDate: Date | null = null;\n\n @Input('odxCalendarCellSelectedDate')\n public selectedDate?: Date | null = null;\n\n public ngOnChanges(changes: NgChanges<CalendarCellDirective>): void {\n if (hasChanged(changes, ['date', 'calendarView'], false)) {\n this.ariaLabel = this.dateLabelPipe.transform(this.date, getA11yLabel(this.calendarView, this.config));\n this.isCurrent = checkIdenticalDate(this.date, new Date(), this.calendarView);\n }\n\n if (this.activeDate && hasChanged(changes, ['date', 'activeDate'], false)) {\n this.isActive = checkIdenticalDate(this.date, this.activeDate, this.calendarView);\n if (this.calendarView === CalendarView.Month) {\n this.adjacent = !isSameMonth(this.date, this.activeDate);\n this.isHidden = this.adjacent && !this.config.displayAdjacentDays;\n }\n }\n\n if (this.selectedDate && hasChanged(changes, ['date', 'selectedDate'], false)) {\n this.isSelected = checkIdenticalDate(this.date, this.selectedDate, this.calendarView);\n }\n\n if (this.isActive) {\n deferFn(() => this.element.nativeElement.focus());\n }\n }\n}\n","import { Directive, inject, Input } from '@angular/core';\nimport { injectElement, trackByIndex, untilDestroyed } from '@odx/angular/utils';\nimport { injectCalendarConfig } from '../calendar.config';\nimport { CalendarService } from '../calendar.service';\nimport { CalendarView, DateFilter } from '../models';\nimport { isDateDisabled } from '../utils';\n\n@Directive({\n standalone: true,\n})\nexport abstract class CalendarViewDirective {\n protected readonly takeUntilDestroyed = untilDestroyed();\n protected readonly calendar = inject(CalendarService);\n protected readonly config = injectCalendarConfig();\n protected readonly trackByIndex = trackByIndex;\n protected abstract readonly currentView: CalendarView;\n protected abstract readonly nextView: CalendarView;\n\n public readonly element = injectElement();\n\n @Input()\n public activeDate!: Date;\n\n @Input()\n public selectedDate?: Date | null = null;\n\n @Input()\n public minDate?: Date | null = null;\n\n @Input()\n public maxDate?: Date | null = null;\n\n @Input()\n public filterFn?: DateFilter | null = null;\n\n protected isDateDisabled(value: Date): boolean {\n return isDateDisabled(value, this.currentView, this.minDate, this.maxDate, this.filterFn);\n }\n\n protected changeView(): void {\n this.calendar.changeView(this.nextView);\n }\n\n protected updateActiveDate(event: Event, date: Date): void {\n event.preventDefault();\n event.stopPropagation();\n\n this.calendar.setActiveDate(date);\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { addDays, endOfMonth, endOfWeek, startOfMonth, startOfWeek } from 'date-fns';\nimport { map } from 'rxjs';\nimport { CalendarService } from '../calendar.service';\n\n@Injectable()\nexport class CalendarMonthService {\n private readonly calendar = inject(CalendarService);\n\n public readonly weekDays$ = this.calendar.activeDate$.pipe(map((date) => this.generateWeekDays(date)));\n public readonly weeks$ = this.calendar.activeDate$.pipe(map((date) => this.generateWeeks(date)));\n\n private generateWeekDays(date: Date): Date[] {\n const firstWeekDay = startOfWeek(date, { weekStartsOn: 1 });\n\n return Array.from({ length: 7 }, (_, i) => addDays(firstWeekDay, i));\n }\n\n private generateWeeks(date: Date): Date[][] {\n const startOfTheSelectedMonth = startOfMonth(date);\n const endOfTheSelectedMonth = endOfMonth(date);\n const startDate = startOfWeek(startOfTheSelectedMonth, { weekStartsOn: 1 });\n const endDate = endOfWeek(endOfTheSelectedMonth);\n const allWeeks = [];\n\n let currentDate = startDate;\n while (currentDate <= endDate) {\n allWeeks.push(this.generateDaysForWeek(currentDate, date));\n currentDate = addDays(currentDate, 7);\n }\n\n return allWeeks;\n }\n\n private generateDaysForWeek(date: Date, currentDate: Date): Date[] {\n return Array.from({ length: 7 }).map((_, i) => addDays(date, i), currentDate);\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { eachMonthOfInterval, endOfYear, startOfYear } from 'date-fns';\nimport { map } from 'rxjs';\nimport { injectCalendarConfig } from '../calendar.config';\nimport { CalendarService } from '../calendar.service';\n\n@Injectable()\nexport class CalendarYearService {\n private readonly config = injectCalendarConfig();\n private readonly calendar = inject(CalendarService);\n\n public readonly seasons$ = this.calendar.activeDate$.pipe(map((selectedDate) => this.generateSeasons(selectedDate)));\n\n private generateSeasons(date: Date): Date[][] {\n const { itemsPerRow } = this.config.yearView;\n const seasons = [];\n const months = eachMonthOfInterval({\n start: startOfYear(date),\n end: endOfYear(date),\n });\n\n let index = 0;\n while (index < months.length) {\n seasons.push(months.slice(index, index + itemsPerRow));\n index += itemsPerRow;\n }\n\n return seasons;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { addYears, getYear, setYear, startOfYear } from 'date-fns';\nimport { defer, of } from 'rxjs';\nimport { injectCalendarConfig } from '../calendar.config';\n\n@Injectable()\nexport class CalendarYearsService {\n private readonly config = injectCalendarConfig();\n\n public readonly years$ = defer(() => of(this.generateYears()));\n\n private generateYears(): Date[][] {\n const { itemsPerRow, padding } = this.config.yearsView;\n const now = Date.now();\n const startDate = startOfYear(addYears(now, -padding));\n const startYear = getYear(startDate);\n const endDate = startOfYear(addYears(now, padding));\n const endYear = getYear(endDate);\n\n const years: Date[] = [];\n const yearRows: Date[][] = [];\n\n for (let i = startYear; i <= endYear; i++) {\n years.push(setYear(startDate, i));\n }\n\n let index = 0;\n while (index < years.length) {\n yearRows.push(years.slice(index, index + itemsPerRow));\n index += itemsPerRow;\n }\n\n return yearRows;\n }\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, inject, Output, ViewEncapsulation } from '@angular/core';\nimport { CoreModule } from '@odx/angular';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { addDays, addMonths, addWeeks, subDays, subMonths, subWeeks } from 'date-fns';\nimport { CalendarCellDirective, CalendarViewDirective } from '../../directives';\nimport { CalendarView } from '../../models';\nimport { DateLabelPipe } from '../../pipes';\nimport { CalendarMonthService } from '../../services';\nimport { CalendarHeaderComponent } from '../calendar-header';\n\n@CSSComponent('calendar-month')\n@Component({\n selector: 'odx-calendar-month',\n standalone: true,\n imports: [CoreModule, CalendarCellDirective, CalendarHeaderComponent, DateLabelPipe],\n templateUrl: './calendar-month.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [CalendarMonthService],\n})\nexport class CalendarMonthComponent extends CalendarViewDirective {\n protected readonly calendarMonth = inject(CalendarMonthService);\n protected readonly nextView = CalendarView.Years;\n protected readonly currentView = CalendarView.Month;\n\n @Output()\n public selectedChange = new EventEmitter<Date | null>();\n\n protected previousDay(event: Event): void {\n this.updateActiveDate(event, subDays(this.activeDate, 1));\n }\n\n protected nextDay(event: Event): void {\n this.updateActiveDate(event, addDays(this.activeDate, 1));\n }\n\n protected previousWeek(event: Event): void {\n this.updateActiveDate(event, subWeeks(this.activeDate, 1));\n }\n\n protected nextWeek(event: Event): void {\n this.updateActiveDate(event, addWeeks(this.activeDate, 1));\n }\n\n protected previousMonth(event: Event): void {\n this.updateActiveDate(event, subMonths(this.activeDate, 1));\n }\n\n protected nextMonth(event: Event): void {\n this.updateActiveDate(event, addMonths(this.activeDate, 1));\n }\n\n protected selectDate(value: Date): void {\n if (this.isDateDisabled(value)) return;\n\n this.calendar.selectDate(value);\n this.selectedChange.emit(value);\n }\n}\n","<table class=\"odx-calendar__table\" role=\"grid\" aria-describedby=\"odx-calendar\">\n <thead>\n <tr>\n <th colspan=\"7\">\n <odx-calendar-header\n [calendarView]=\"currentView\"\n [activeDate]=\"activeDate\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n (previous)=\"previousMonth($event)\"\n (next)=\"nextMonth($event)\"\n (changeView)=\"changeView()\"\n >\n {{ activeDate | odxDateLabel: config.monthYearLabel }}\n </odx-calendar-header>\n </th>\n </tr>\n\n <tr class=\"odx-calendar__weekdays\">\n <td *ngFor=\"let day of calendarMonth.weekDays$ | async\">\n {{ day | odxDateLabel: config.weekLabel }}\n </td>\n </tr>\n </thead>\n\n <tbody\n class=\"odx-calendar__body\"\n (keydown.ArrowLeft)=\"previousDay($event)\"\n (keydown.ArrowRight)=\"nextDay($event)\"\n (keydown.ArrowUp)=\"previousWeek($event)\"\n (keydown.ArrowDown)=\"nextWeek($event)\"\n (keydown.PageUp)=\"previousMonth($event)\"\n (keydown.PageDown)=\"nextMonth($event)\"\n >\n <tr *ngFor=\"let week of calendarMonth.weeks$ | async; trackBy: trackByIndex\">\n <td role=\"gridcell\" *ngFor=\"let day of week; trackBy: trackByIndex\">\n <button\n [disabled]=\"isDateDisabled(day)\"\n [odxCalendarCell]=\"day\"\n [odxCalendarCellActiveDate]=\"activeDate\"\n [odxCalendarCellCalendarView]=\"currentView\"\n [odxCalendarCellSelectedDate]=\"selectedDate\"\n (click)=\"selectDate(day)\"\n >\n {{ day | odxDateLabel: config.dayLabel }}\n </button>\n </td>\n </tr>\n </tbody>\n</table>\n","import { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { CoreModule } from '@odx/angular';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { addMonths, getMonth, setMonth, subMonths } from 'date-fns';\nimport { CalendarCellDirective, CalendarViewDirective } from '../../directives';\nimport { CalendarView } from '../../models';\nimport { DateLabelPipe } from '../../pipes';\nimport { CalendarYearService } from '../../services';\nimport { CalendarHeaderComponent } from '../calendar-header';\n\n@CSSComponent('calendar-year')\n@Component({\n selector: 'odx-calendar-year',\n standalone: true,\n imports: [CoreModule, CalendarCellDirective, CalendarHeaderComponent, DateLabelPipe],\n templateUrl: './calendar-year.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [CalendarYearService],\n})\nexport class CalendarYearComponent extends CalendarViewDirective {\n protected readonly calendarYear = inject(CalendarYearService);\n protected readonly nextView = CalendarView.Month;\n protected readonly currentView = CalendarView.Year;\n\n protected previousMonth(event: Event): void {\n this.updateActiveDate(event, subMonths(this.activeDate, 1));\n }\n\n protected nextMonth(event: Event): void {\n this.updateActiveDate(event, addMonths(this.activeDate, 1));\n }\n\n protected previousSeason(event: Event): void {\n this.updateActiveDate(event, subMonths(this.activeDate, 3));\n }\n\n protected nextSeason(event: Event): void {\n this.updateActiveDate(event, addMonths(this.activeDate, 3));\n }\n\n protected previousYear(event: Event): void {\n this.updateActiveDate(event, subMonths(this.activeDate, 12));\n }\n\n protected nextYear(event: Event): void {\n this.updateActiveDate(event, addMonths(this.activeDate, 12));\n }\n\n protected selectDate(value: Date): void {\n if (this.isDateDisabled(value)) return;\n\n const date = setMonth(this.activeDate, getMonth(value));\n this.calendar.selectDate(date);\n\n this.changeView();\n }\n}\n","<table class=\"odx-calendar__table\" role=\"grid\" aria-describedby=\"odx-calendar\">\n <thead>\n <tr>\n <th colspan=\"3\">\n <odx-calendar-header\n (previous)=\"previousYear($event)\"\n [calendarView]=\"currentView\"\n [activeDate]=\"activeDate\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n (next)=\"nextYear($event)\"\n (changeView)=\"changeView()\"\n >\n {{ activeDate | odxDateLabel: config.yearLabel }}\n </odx-calendar-header>\n </th>\n </tr>\n </thead>\n\n <tbody\n class=\"odx-calendar__body\"\n (keydown.ArrowLeft)=\"previousMonth($event)\"\n (keydown.ArrowRight)=\"nextMonth($event)\"\n (keydown.ArrowUp)=\"previousSeason($event)\"\n (keydown.ArrowDown)=\"nextSeason($event)\"\n (keydown.PageDown)=\"nextYear($event)\"\n (keydown.PageUp)=\"previousYear($event)\"\n >\n <tr class=\"odx-calendar__season\" *ngFor=\"let season of calendarYear.seasons$ | async; trackBy: trackByIndex\">\n <td role=\"gridcell\" *ngFor=\"let month of season; trackBy: trackByIndex\">\n <button\n [disabled]=\"isDateDisabled(month)\"\n [odxCalendarCell]=\"month\"\n [odxCalendarCellActiveDate]=\"activeDate\"\n [odxCalendarCellCalendarView]=\"currentView\"\n [odxCalendarCellSelectedDate]=\"selectedDate\"\n (click)=\"selectDate(month)\"\n >\n {{ month | odxDateLabel: config.monthLabel }}\n </button>\n </td>\n </tr>\n </tbody>\n</table>\n","import { DOCUMENT } from '@angular/common';\nimport { AfterViewInit, ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { CoreModule } from '@odx/angular';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { deferFn, isFunction } from '@odx/angular/utils';\nimport { addMonths, getYear, setYear, subMonths } from 'date-fns';\nimport { CalendarCellDirective, CalendarViewDirective } from '../../directives';\nimport { CalendarView } from '../../models';\nimport { DateLabelPipe } from '../../pipes';\nimport { CalendarYearsService } from '../../services';\nimport { CalendarHeaderComponent } from '../calendar-header';\n\n@CSSComponent('calendar-years')\n@Component({\n selector: 'odx-calendar-years',\n standalone: true,\n imports: [CoreModule, CalendarCellDirective, CalendarHeaderComponent, DateLabelPipe],\n templateUrl: './calendar-years.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [CalendarYearsService],\n})\nexport class CalendarYearsComponent extends CalendarViewDirective implements AfterViewInit {\n private readonly document = inject(DOCUMENT);\n\n protected readonly calendarYears = inject(CalendarYearsService);\n protected readonly nextView = CalendarView.Year;\n protected readonly currentView = CalendarView.Years;\n\n public ngAfterViewInit(): void {\n deferFn(() => this.scrollCurrentYearIntoView());\n }\n\n protected previousYear(event: Event): void {\n this.updateActiveDate(event, subMonths(this.activeDate, 12));\n }\n\n protected nextYear(event: Event): void {\n this.updateActiveDate(event, addMonths(this.activeDate, 12));\n }\n\n protected previousRow(event: Event): void {\n this.updateActiveDate(event, subMonths(this.activeDate, 12 * 3));\n }\n\n protected nextRow(event: Event): void {\n this.updateActiveDate(event, addMonths(this.activeDate, 12 * 3));\n }\n\n protected selectDate(value: Date): void {\n if (this.isDateDisabled(value)) return;\n\n const date = setYear(this.activeDate, getYear(value));\n this.calendar.selectDate(date);\n\n this.changeView();\n }\n\n private scrollCurrentYearIntoView(): void {\n const selectedYear = this.document.querySelector('.odx-calendar-cell.is-selected');\n const currentYear = this.document.querySelector('.odx-calendar-cell--is-current');\n\n const element = selectedYear || currentYear;\n\n if (element && isFunction(element.scrollIntoView)) {\n element.scrollIntoView({ block: 'center', behavior: 'smooth' });\n }\n }\n}\n","<table class=\"odx-calendar__table\" role=\"grid\" aria-describedby=\"odx-calendar\" *ngrxLet=\"calendar.activeDate$ as activeDate\">\n <thead aria-hidden=\"true\">\n <th></th>\n </thead>\n\n <tbody\n class=\"odx-calendar__body\"\n (keydown.ArrowLeft)=\"previousYear($event)\"\n (keydown.ArrowRight)=\"nextYear($event)\"\n (keydown.ArrowUp)=\"previousRow($event)\"\n (keydown.ArrowDown)=\"nextRow($event)\"\n >\n <tr class=\"odx-calendar__year-row\" *ngFor=\"let yearRow of calendarYears.years$ | async; trackBy: trackByIndex\">\n <td role=\"gridcell\" *ngFor=\"let year of yearRow; trackBy: trackByIndex\">\n <button\n [disabled]=\"isDateDisabled(year)\"\n [odxCalendarCell]=\"year\"\n [odxCalendarCellActiveDate]=\"activeDate\"\n [odxCalendarCellCalendarView]=\"currentView\"\n [odxCalendarCellSelectedDate]=\"calendar.selectedDate$ | async\"\n (click)=\"selectDate(year)\"\n >\n {{ year | odxDateLabel: config.yearLabel }}\n </button>\n </td>\n </tr>\n </tbody>\n</table>\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { ChangeDetectionStrategy, Component, EventEmitter, inject, Input, OnChanges, Output, ViewEncapsulation } from '@angular/core';\nimport { CoreModule } from '@odx/angular';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { hasChanged, injectElement, NgChanges } from '@odx/angular/utils';\nimport { CalendarService } from './calendar.service';\nimport { CalendarMonthComponent, CalendarYearComponent, CalendarYearsComponent } from './components';\nimport { CalendarView, DateFilter, DateType } from './models';\n\n@CSSComponent('calendar')\n@Component({\n selector: 'odx-calendar',\n standalone: true,\n imports: [CoreModule, A11yModule, CalendarMonthComponent, CalendarYearComponent, CalendarYearsComponent],\n templateUrl: './calendar.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [CalendarService],\n})\nexport class CalendarComponent implements OnChanges {\n protected readonly CalendarView = CalendarView;\n protected readonly calendar = inject(CalendarService);\n\n public readonly element = injectElement();\n\n @Input()\n public selectedDate: DateType | null = null;\n\n @Input()\n public minDate?: Date | null = null;\n\n @Input()\n public maxDate?: Date | null = null;\n\n @Input()\n public filterFn?: DateFilter | null = null;\n\n @Output()\n public selectedDateChange = new EventEmitter<Date | null>();\n\n public ngOnChanges(changes: NgChanges<CalendarComponent>): void {\n if (hasChanged(changes, 'selectedDate', false)) {\n this.calendar.selectDate(this.selectedDate);\n }\n }\n}\n","<ng-template [ngrxLet]=\"{ activeDate: calendar.activeDate$, calendarView: calendar.calendarView$, selectedDate: calendar.selectedDate$ }\" let-vm>\n <ng-container [ngSwitch]=\"vm.calendarView\">\n <odx-calendar-year\n [activeDate]=\"vm.activeDate\"\n [selectedDate]=\"vm.selectedDate\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [filterFn]=\"filterFn\"\n *ngSwitchCase=\"CalendarView.Year\"\n ></odx-calendar-year>\n <odx-calendar-years\n [activeDate]=\"vm.activeDate\"\n [selectedDate]=\"vm.selectedDate\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [filterFn]=\"filterFn\"\n *ngSwitchCase=\"CalendarView.Years\"\n ></odx-calendar-years>\n <odx-calendar-month\n [activeDate]=\"vm.activeDate\"\n [selectedDate]=\"vm.selectedDate\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [filterFn]=\"filterFn\"\n (selectedChange)=\"selectedDateChange.emit($event)\"\n *ngSwitchDefault\n ></odx-calendar-month>\n </ng-container>\n</ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["dateValidators","i2"],"mappings":"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"}
|
|
@@ -671,7 +671,7 @@ let NotificationCenterComponent = class NotificationCenterComponent {
|
|
|
671
671
|
return hasBeenSeen && !options.action;
|
|
672
672
|
}
|
|
673
673
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NotificationCenterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
674
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: NotificationCenterComponent, isStandalone: true, selector: "odx-notification-center", providers: [provideTranslations(notificationI18n)], ngImport: i0, template: "<ng-template [ngIf]=\"notificationCenterService.notifications$ | async\" let-notifications>\n <h3 class=\"odx-notification-center__header\"
|
|
674
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: NotificationCenterComponent, isStandalone: true, selector: "odx-notification-center", providers: [provideTranslations(notificationI18n)], ngImport: i0, template: "<ng-template [ngIf]=\"notificationCenterService.notifications$ | async\" let-notifications>\n <h3 class=\"odx-notification-center__header\">\n <ng-template [odxDynamicView]=\"(notificationCenterService.title$ | async) ?? ('title' | odxTranslate | async)\"></ng-template>\n </h3>\n <odx-list class=\"odx-notification-center__content\">\n <odx-list-item\n @notificationAnimation\n [muted]=\"isMuted(notification)\"\n [selected]=\"!notification.hasBeenSeen\"\n (click)=\"notificationCenterService.executeAction(notification)\"\n *ngFor=\"let notification of notifications.values; trackBy: trackById\"\n >\n <odx-notification-item [notification]=\"notification\" (dismiss)=\"notificationCenterService.dismiss(notification)\" />\n </odx-list-item>\n </odx-list>\n <div class=\"odx-notification-center__footer\">\n <button odxButton [disabled]=\"false\" (click)=\"notificationCenterService.dismissAll()\">\n {{ 'dismissAll' | odxTranslate | async }}\n </button>\n </div>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "component", type: ButtonComponent, selector: "button[odxButton], a[odxButton]", inputs: ["variant", "size"] }, { kind: "directive", type: DynamicViewDirective, selector: "ng-template[odxDynamicView]", inputs: ["odxDynamicView", "odxDynamicViewInjector", "odxDynamicViewContext"] }, { kind: "ngmodule", type: DropdownModule }, { kind: "directive", type: i2.DisabledController, selector: "[disabled]", inputs: ["disabled"] }, { kind: "pipe", type: TranslatePipe, name: "odxTranslate" }, { kind: "component", type: NotificationItemComponent, selector: "odx-notification-item", inputs: ["notification"], outputs: ["dismiss"] }, { kind: "ngmodule", type: ListModule }, { kind: "component", type: i3.ListComponent, selector: "odx-list" }, { kind: "component", type: i3.ListItemComponent, selector: "odx-list-item, [odxListItem]", inputs: ["danger", "muted", "selected"] }], animations: [trigger('notificationAnimation', [transition(':leave', useAnimation(collapse, { delay: 150 }))])], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
675
675
|
};
|
|
676
676
|
NotificationCenterComponent = __decorate([
|
|
677
677
|
CSSComponent('notification-center')
|
|
@@ -691,7 +691,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
691
691
|
NotificationItemComponent,
|
|
692
692
|
InteractiveDirective,
|
|
693
693
|
ListModule,
|
|
694
|
-
], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [provideTranslations(notificationI18n)], animations: [trigger('notificationAnimation', [transition(':leave', useAnimation(collapse, { delay: 150 }))])], template: "<ng-template [ngIf]=\"notificationCenterService.notifications$ | async\" let-notifications>\n <h3 class=\"odx-notification-center__header\"
|
|
694
|
+
], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [provideTranslations(notificationI18n)], animations: [trigger('notificationAnimation', [transition(':leave', useAnimation(collapse, { delay: 150 }))])], template: "<ng-template [ngIf]=\"notificationCenterService.notifications$ | async\" let-notifications>\n <h3 class=\"odx-notification-center__header\">\n <ng-template [odxDynamicView]=\"(notificationCenterService.title$ | async) ?? ('title' | odxTranslate | async)\"></ng-template>\n </h3>\n <odx-list class=\"odx-notification-center__content\">\n <odx-list-item\n @notificationAnimation\n [muted]=\"isMuted(notification)\"\n [selected]=\"!notification.hasBeenSeen\"\n (click)=\"notificationCenterService.executeAction(notification)\"\n *ngFor=\"let notification of notifications.values; trackBy: trackById\"\n >\n <odx-notification-item [notification]=\"notification\" (dismiss)=\"notificationCenterService.dismiss(notification)\" />\n </odx-list-item>\n </odx-list>\n <div class=\"odx-notification-center__footer\">\n <button odxButton [disabled]=\"false\" (click)=\"notificationCenterService.dismissAll()\">\n {{ 'dismissAll' | odxTranslate | async }}\n </button>\n </div>\n</ng-template>\n" }]
|
|
695
695
|
}] });
|
|
696
696
|
|
|
697
697
|
/**
|