@odx/angular 2.11.3 → 2.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +15 -0
- package/components/calendar/index.d.ts +5 -1
- package/components/calendar/lib/calendar.component.d.ts +11 -11
- package/components/calendar/lib/calendar.config.d.ts +42 -0
- package/components/calendar/lib/{services/calendar.service.d.ts → calendar.service.d.ts} +4 -14
- package/components/calendar/lib/components/calendar-header/calendar-header.component.d.ts +17 -27
- package/components/calendar/lib/components/calendar-month/calendar-month.component.d.ts +11 -12
- package/components/calendar/lib/components/calendar-year/calendar-year.component.d.ts +10 -10
- package/components/calendar/lib/components/calendar-years/calendar-years.component.d.ts +9 -9
- package/components/calendar/lib/directives/calendar-cell.directive.d.ts +20 -13
- package/components/calendar/lib/directives/calendar-view.directive.d.ts +23 -12
- package/components/calendar/lib/{enums/calendar-view.enum.d.ts → models/calendar-view.d.ts} +1 -1
- package/components/calendar/lib/models/index.d.ts +1 -0
- package/components/calendar/lib/pipes/date-label.pipe.d.ts +7 -0
- package/components/calendar/lib/services/calendar-month.service.d.ts +6 -8
- package/components/calendar/lib/services/calendar-year.service.d.ts +4 -6
- package/components/calendar/lib/services/calendar-years.service.d.ts +3 -4
- package/components/calendar/lib/services/index.d.ts +0 -1
- package/components/calendar/lib/utils/check-identical-date.d.ts +2 -2
- package/components/calendar/lib/utils/get-A11y-label.d.ts +2 -2
- package/components/calendar/lib/utils/index.d.ts +1 -0
- package/components/calendar/lib/utils/is-date-disabled.d.ts +2 -0
- package/components/calendar/lib/utils/validate-max-date.d.ts +2 -2
- package/components/calendar/lib/utils/validate-min-date.d.ts +2 -2
- package/components/calendar/lib/utils/validate-next-date-set.d.ts +2 -2
- package/components/calendar/lib/utils/validate-previous-date-set.d.ts +2 -2
- package/components/datepicker/lib/datepicker.component.d.ts +3 -1
- package/components/main-menu/index.d.ts +1 -0
- package/components/main-menu/lib/helpers/create-main-menu-links.d.ts +2 -0
- package/components/main-menu/lib/helpers/index.d.ts +1 -0
- package/components/main-menu/lib/main-menu.component.d.ts +3 -0
- package/components/main-menu/lib/main-menu.config.d.ts +8 -0
- package/components/main-menu/lib/main-menu.i18n.d.ts +3 -0
- package/components/main-menu/lib/models/index.d.ts +1 -0
- package/components/main-menu/lib/models/main-menu-link.d.ts +4 -0
- package/esm2020/components/calendar/index.mjs +6 -2
- package/esm2020/components/calendar/lib/calendar.component.mjs +12 -19
- package/esm2020/components/calendar/lib/calendar.config.mjs +8 -1
- package/esm2020/components/calendar/lib/calendar.service.mjs +36 -0
- package/esm2020/components/calendar/lib/components/calendar-header/calendar-header.component.mjs +33 -27
- package/esm2020/components/calendar/lib/components/calendar-month/calendar-month.component.mjs +6 -6
- package/esm2020/components/calendar/lib/components/calendar-year/calendar-year.component.mjs +7 -7
- package/esm2020/components/calendar/lib/components/calendar-years/calendar-years.component.mjs +9 -8
- package/esm2020/components/calendar/lib/directives/calendar-cell.directive.mjs +8 -11
- package/esm2020/components/calendar/lib/directives/calendar-view.directive.mjs +24 -14
- package/esm2020/components/calendar/lib/models/calendar-view.mjs +7 -0
- package/esm2020/components/calendar/lib/models/index.mjs +2 -1
- package/esm2020/components/calendar/lib/pipes/date-label.pipe.mjs +4 -4
- package/esm2020/components/calendar/lib/services/calendar-month.service.mjs +2 -2
- package/esm2020/components/calendar/lib/services/calendar-year.service.mjs +7 -5
- package/esm2020/components/calendar/lib/services/calendar-years.service.mjs +12 -9
- package/esm2020/components/calendar/lib/services/index.mjs +1 -2
- package/esm2020/components/calendar/lib/utils/check-identical-date.mjs +7 -7
- package/esm2020/components/calendar/lib/utils/get-A11y-label.mjs +7 -7
- package/esm2020/components/calendar/lib/utils/index.mjs +2 -1
- package/esm2020/components/calendar/lib/utils/is-date-disabled.mjs +10 -0
- package/esm2020/components/calendar/lib/utils/validate-max-date.mjs +7 -7
- package/esm2020/components/calendar/lib/utils/validate-min-date.mjs +7 -7
- package/esm2020/components/calendar/lib/utils/validate-next-date-set.mjs +7 -8
- package/esm2020/components/calendar/lib/utils/validate-previous-date-set.mjs +7 -8
- package/esm2020/components/datepicker/lib/datepicker.component.mjs +7 -4
- package/esm2020/components/main-menu/index.mjs +2 -1
- package/esm2020/components/main-menu/lib/helpers/create-main-menu-links.mjs +13 -0
- package/esm2020/components/main-menu/lib/helpers/index.mjs +2 -0
- package/esm2020/components/main-menu/lib/main-menu.component.mjs +11 -5
- package/esm2020/components/main-menu/lib/main-menu.config.mjs +6 -0
- package/esm2020/components/main-menu/lib/main-menu.i18n.mjs +17 -0
- package/esm2020/components/main-menu/lib/models/index.mjs +2 -0
- package/esm2020/components/main-menu/lib/models/main-menu-link.mjs +2 -0
- package/esm2020/index.mjs +2 -1
- package/esm2020/internal/translate/index.mjs +7 -0
- package/esm2020/internal/translate/lib/helpers/get-language-code.mjs +6 -0
- package/esm2020/internal/translate/lib/helpers/index.mjs +2 -0
- package/esm2020/internal/translate/lib/models/index.mjs +2 -0
- package/esm2020/internal/translate/lib/models/translation.mjs +2 -0
- package/esm2020/internal/translate/lib/pipes/index.mjs +2 -0
- package/esm2020/internal/translate/lib/pipes/translate.pipe.mjs +22 -0
- package/esm2020/internal/translate/lib/services/index.mjs +2 -0
- package/esm2020/internal/translate/lib/services/language.service.mjs +21 -0
- package/esm2020/internal/translate/lib/translate.config.mjs +15 -0
- package/esm2020/internal/translate/lib/translate.service.mjs +16 -0
- package/esm2020/internal/translate/odx-angular-internal-translate.mjs +5 -0
- package/esm2020/lib/services/window-ref.mjs +3 -2
- package/esm2020/utils/lib/helpers/build-website-url.mjs +6 -0
- package/esm2020/utils/lib/helpers/index.mjs +2 -1
- package/fesm2015/odx-angular-components-calendar.mjs +254 -270
- package/fesm2015/odx-angular-components-calendar.mjs.map +1 -1
- package/fesm2015/odx-angular-components-datepicker.mjs +5 -2
- package/fesm2015/odx-angular-components-datepicker.mjs.map +1 -1
- package/fesm2015/odx-angular-components-main-menu.mjs +43 -6
- package/fesm2015/odx-angular-components-main-menu.mjs.map +1 -1
- package/fesm2015/odx-angular-internal-translate.mjs +75 -0
- package/fesm2015/odx-angular-internal-translate.mjs.map +1 -0
- package/fesm2015/odx-angular-utils.mjs +6 -1
- package/fesm2015/odx-angular-utils.mjs.map +1 -1
- package/fesm2015/odx-angular.mjs +3 -1
- package/fesm2015/odx-angular.mjs.map +1 -1
- package/fesm2020/odx-angular-components-calendar.mjs +254 -269
- package/fesm2020/odx-angular-components-calendar.mjs.map +1 -1
- package/fesm2020/odx-angular-components-datepicker.mjs +5 -2
- package/fesm2020/odx-angular-components-datepicker.mjs.map +1 -1
- package/fesm2020/odx-angular-components-main-menu.mjs +43 -6
- package/fesm2020/odx-angular-components-main-menu.mjs.map +1 -1
- package/fesm2020/odx-angular-internal-translate.mjs +74 -0
- package/fesm2020/odx-angular-internal-translate.mjs.map +1 -0
- package/fesm2020/odx-angular-utils.mjs +6 -1
- package/fesm2020/odx-angular-utils.mjs.map +1 -1
- package/fesm2020/odx-angular.mjs +3 -1
- package/fesm2020/odx-angular.mjs.map +1 -1
- package/index.d.ts +1 -0
- package/internal/translate/README.md +3 -0
- package/internal/translate/index.d.ts +6 -0
- package/internal/translate/lib/helpers/get-language-code.d.ts +1 -0
- package/internal/translate/lib/helpers/index.d.ts +1 -0
- package/internal/translate/lib/models/index.d.ts +1 -0
- package/internal/translate/lib/models/translation.d.ts +2 -0
- package/internal/translate/lib/pipes/index.d.ts +1 -0
- package/internal/translate/lib/pipes/translate.pipe.d.ts +9 -0
- package/internal/translate/lib/services/index.d.ts +1 -0
- package/internal/translate/lib/services/language.service.d.ts +8 -0
- package/internal/translate/lib/translate.config.d.ts +9 -0
- package/internal/translate/lib/translate.service.d.ts +10 -0
- package/package.json +11 -3
- package/utils/lib/helpers/build-website-url.d.ts +2 -0
- package/utils/lib/helpers/index.d.ts +1 -0
- package/components/calendar/lib/enums/index.d.ts +0 -1
- package/esm2020/components/calendar/lib/enums/calendar-view.enum.mjs +0 -7
- package/esm2020/components/calendar/lib/enums/index.mjs +0 -2
- package/esm2020/components/calendar/lib/services/calendar.service.mjs +0 -73
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"odx-angular-components-calendar.mjs","sources":["../../../../libs/angular/components/calendar/src/lib/calendar.config.ts","../../../../libs/angular/components/calendar/src/lib/enums/calendar-view.enum.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/parse-date.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/validate-next-date-set.ts","../../../../libs/angular/components/calendar/src/lib/utils/validate-previous-date-set.ts","../../../../libs/angular/components/calendar/src/lib/services/calendar.service.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-header/calendar-header.component.ts","../../../../libs/angular/components/calendar/src/lib/components/calendar-header/calendar-header.component.html","../../../../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/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":["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}\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 },\n);\n","export enum CalendarViewEnum {\n Month = 'month',\n Year = 'year',\n Years = 'years',\n}\n","import { isSameDay, isSameMonth, isSameYear } from 'date-fns';\nimport { CalendarViewEnum } from '../enums';\nimport { DateValidator } from '../models';\n\nconst functionList: Record<CalendarViewEnum, DateValidator> = {\n [CalendarViewEnum.Month]: (currentDate: Date, date: Date) => isSameDay(currentDate, date),\n [CalendarViewEnum.Year]: (currentDate: Date, date: Date) => isSameMonth(currentDate, date),\n [CalendarViewEnum.Years]: (currentDate: Date, date: Date) => isSameYear(currentDate, date),\n};\n\nexport function checkIdenticalDate(currentDate: Date, date: Date, calendarView: CalendarViewEnum): boolean {\n return functionList[calendarView](currentDate, date);\n}\n","import { CalendarConfig } from '../calendar.config';\nimport { CalendarViewEnum } from '../enums';\n\nconst functionList: Record<CalendarViewEnum, (config: CalendarConfig) => string> = {\n [CalendarViewEnum.Month]: (config: CalendarConfig) => config.dayA11yLabel,\n [CalendarViewEnum.Year]: (config: CalendarConfig) => config.monthA11yLabel,\n [CalendarViewEnum.Years]: (config: CalendarConfig) => config.yearA11yLabel,\n};\n\nexport function getA11yLabel(calendarView: CalendarViewEnum, config: CalendarConfig): string {\n return functionList[calendarView](config);\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 { endOfDay, endOfMonth, endOfYear } from 'date-fns';\nimport { CalendarViewEnum } from '../enums';\nimport { DateValidator } from '../models';\n\nconst functionList: Record<CalendarViewEnum, DateValidator> = {\n [CalendarViewEnum.Month]: (maxDate: Date, date: Date) => endOfDay(maxDate) < endOfDay(date),\n [CalendarViewEnum.Year]: (maxDate: Date, date: Date) => endOfMonth(maxDate) < endOfMonth(date),\n [CalendarViewEnum.Years]: (maxDate: Date, date: Date) => endOfYear(maxDate) < endOfYear(date),\n};\n\nexport function validateMaxDate(maxDate: Date, date: Date, calendarView: CalendarViewEnum): boolean {\n return functionList[calendarView](maxDate, date);\n}\n","import { startOfDay, startOfMonth, startOfYear } from 'date-fns';\nimport { CalendarViewEnum } from '../enums';\nimport { DateValidator } from '../models';\n\nconst functionList: Record<CalendarViewEnum, DateValidator> = {\n [CalendarViewEnum.Month]: (minDate: Date, date: Date) => startOfDay(minDate) > startOfDay(date),\n [CalendarViewEnum.Year]: (minDate: Date, date: Date) => startOfMonth(minDate) > startOfMonth(date),\n [CalendarViewEnum.Years]: (minDate: Date, date: Date) => startOfYear(minDate) > startOfYear(date),\n};\n\nexport function validateMinDate(maxDate: Date, date: Date, calendarView: CalendarViewEnum): boolean {\n return functionList[calendarView](maxDate, date);\n}\n","import { addMonths, startOfMonth, startOfYear } from 'date-fns';\nimport { CalendarViewEnum } from '../enums';\nimport { DateValidator } from '../models';\n\nconst functionList: Record<CalendarViewEnum, DateValidator> = {\n [CalendarViewEnum.Month]: (maxDate: Date, date: Date) => maxDate < startOfMonth(addMonths(date, 1)),\n [CalendarViewEnum.Year]: (maxDate: Date, date: Date) => maxDate < startOfYear(addMonths(date, 12)),\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n [CalendarViewEnum.Years]: (maxDate: Date, date: Date) => false,\n};\n\nexport function validateNextDateSet(maxDate: Date, date: Date, calendarView: CalendarViewEnum): boolean {\n return functionList[calendarView](maxDate, date);\n}\n","import { endOfMonth, endOfYear, subMonths } from 'date-fns';\nimport { CalendarViewEnum } from '../enums';\nimport { DateValidator } from '../models';\n\nconst functionList: Record<CalendarViewEnum, DateValidator> = {\n [CalendarViewEnum.Month]: (minDate: Date, date: Date) => minDate > endOfMonth(subMonths(date, 1)),\n [CalendarViewEnum.Year]: (minDate: Date, date: Date) => minDate > endOfYear(subMonths(date, 12)),\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n [CalendarViewEnum.Years]: () => false,\n};\n\nexport function validatePreviousDateSet(minDate: Date, date: Date, calendarView: CalendarViewEnum): boolean {\n return functionList[calendarView](minDate, date);\n}\n","import { Injectable } from '@angular/core';\nimport { isPresent, Pure } from '@odx/angular/utils';\nimport { startOfDay } from 'date-fns';\nimport { BehaviorSubject, shareReplay, tap } from 'rxjs';\nimport { CalendarViewEnum } from '../enums';\nimport { DateFilter, DateType } from '../models';\nimport { parseDate, validateMaxDate, validateMinDate, validateNextDateSet, validatePreviousDateSet } from '../utils';\n\n@Injectable()\nexport class CalendarService {\n private readonly calendarView$$ = new BehaviorSubject<CalendarViewEnum>(CalendarViewEnum.Month);\n private readonly activeDate$$ = new BehaviorSubject<Date>(startOfDay(new Date()));\n private readonly selectedDate$$ = new BehaviorSubject<Date | null>(null);\n\n public minDate: Date | null = null;\n public maxDate: Date | null = null;\n public filterFn?: DateFilter | null = null;\n\n public readonly calendarView$ = this.calendarView$$.pipe(shareReplay({ refCount: true }));\n\n public readonly activeDate$ = this.activeDate$$.pipe(shareReplay({ refCount: true }));\n public readonly selectedDate$ = this.selectedDate$$.pipe(\n tap((date) => isPresent(date) && this.setActiveDate(date)),\n shareReplay({ refCount: true }),\n );\n\n public setActiveDate(value: DateType | null): void {\n if (isPresent(value)) {\n this.activeDate$$.next(parseDate(value));\n }\n }\n\n public selectDate(value: DateType | null): void {\n if (isPresent(value)) {\n this.selectedDate$$.next(startOfDay(parseDate(value)));\n } else {\n this.selectedDate$$.next(null);\n }\n }\n\n public get activeDate(): Date {\n return this.activeDate$$.getValue();\n }\n\n public get selectedDate(): Date | null {\n return this.selectedDate$$.getValue();\n }\n\n public changeView(view: CalendarViewEnum): void {\n this.calendarView$$.next(view);\n }\n\n public get calendarCurrentView(): CalendarViewEnum {\n return this.calendarView$$.getValue();\n }\n\n @Pure\n public isDateDisabled(date: Date): boolean {\n const minDate = this.minDate && validateMinDate(this.minDate, date, this.calendarCurrentView);\n const maxDate = this.maxDate && validateMaxDate(this.maxDate, date, this.calendarCurrentView);\n let isDateFiltered = false;\n\n if (this.calendarCurrentView === CalendarViewEnum.Month) {\n isDateFiltered = this.filterFn?.(date) ?? false;\n }\n\n return minDate || maxDate || isDateFiltered;\n }\n\n public isPreviousDateSetDisabled(): boolean {\n return this.minDate ? validatePreviousDateSet(this.minDate, this.activeDate, this.calendarCurrentView) : false;\n }\n\n public isNextDateSetDisabled(): boolean {\n return this.maxDate ? validateNextDateSet(this.maxDate, this.activeDate, this.calendarCurrentView) : false;\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { addDays, endOfMonth, endOfWeek, startOfMonth, startOfWeek } from 'date-fns';\nimport { map, Observable } from 'rxjs';\nimport { CalendarService } from './calendar.service';\n\n@Injectable()\nexport class CalendarMonthService {\n protected readonly calendar = inject(CalendarService);\n\n public readonly weekDays$: Observable<Date[]> = this.calendar.activeDate$.pipe(map((date) => this.generateWeekDays(date)));\n public readonly weeks$: Observable<Date[][]> = this.calendar.activeDate$.pipe(map((date) => this.generateWeeks(date)));\n\n public 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 public 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 public 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, Observable } from 'rxjs';\nimport { CalendarService } from './calendar.service';\n\n@Injectable()\nexport class CalendarYearService {\n protected readonly calendar = inject(CalendarService);\n\n public readonly seasonSeparator = 3;\n\n public readonly seasons$: Observable<Date[][]> = this.calendar.activeDate$.pipe(map((selectedDate) => this.generateSeasons(selectedDate)));\n\n public generateSeasons(date: Date): Date[][] {\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 + this.seasonSeparator));\n index += this.seasonSeparator;\n }\n\n return seasons;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { addYears, getYear, setYear, startOfYear } from 'date-fns';\n\n@Injectable()\nexport class CalendarYearsService {\n public readonly yearsSeparator = 3;\n public readonly yearsLimit = 100;\n public readonly date = new Date();\n\n public get years(): Date[][] {\n const startDate = startOfYear(addYears(this.date, -this.yearsLimit));\n const startYear = getYear(startDate);\n const endDate = startOfYear(addYears(this.date, this.yearsLimit));\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 + this.yearsSeparator));\n index += this.yearsSeparator;\n }\n\n return yearRows;\n }\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, inject, 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 { injectElement } from '@odx/angular/utils';\nimport { map, Observable } from 'rxjs';\nimport { injectCalendarConfig } from '../../calendar.config';\nimport { CalendarService } from '../../services';\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 {\n protected readonly calendar = inject(CalendarService);\n\n public readonly element = injectElement();\n\n @Output()\n public previous = new EventEmitter<Event>();\n\n @Output()\n public next = new EventEmitter<Event>();\n\n @Output()\n public changeView = new EventEmitter<null>();\n\n public readonly config = injectCalendarConfig();\n\n protected previousClicked(event: Event): void {\n !this.isPreviousDisabled && this.previous.emit(event);\n }\n\n protected nextClicked(event: Event): void {\n !this.isNextDisabled && this.next.emit(event);\n }\n\n protected get handleIsPreviousDisabled$(): Observable<boolean> {\n return this.calendar.activeDate$.pipe(map(() => this.isPreviousDisabled));\n }\n\n protected get handleIsNextDisabled$(): Observable<boolean> {\n return this.calendar.activeDate$.pipe(map(() => this.isNextDisabled));\n }\n\n protected get isPreviousDisabled(): boolean {\n return this.calendar.isPreviousDateSetDisabled();\n }\n\n protected get isNextDisabled(): boolean {\n return this.calendar.isNextDateSetDisabled();\n }\n}\n","<odx-action-group>\n <button odxButton (click)=\"previousClicked($event)\" [disabled]=\"handleIsPreviousDisabled$ | async\">\n <odx-icon name=\"chevron-left\"></odx-icon>\n </button>\n\n <button class=\"odx-calendar-header__title\" odxButton (click)=\"changeView.emit()\">\n <ng-content></ng-content>\n </button>\n\n <button odxButton (click)=\"nextClicked($event)\" [disabled]=\"handleIsNextDisabled$ | async\">\n <odx-icon name=\"chevron-right\"></odx-icon>\n </button>\n</odx-action-group>\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { format } from 'date-fns';\nimport { injectCalendarConfig } from '../calendar.config';\n\n@Pipe({\n pure: false,\n name: 'odxDateLabel',\n standalone: 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 { CalendarViewEnum } from '../enums';\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 isActive = false;\n protected isSelected = false;\n protected isHidden = false;\n\n @CSSModifier()\n protected isCurrent = false;\n\n @CSSModifier()\n protected adjacent = false;\n\n protected get isDisabled(): boolean {\n return !!this.disabledController?.disabled;\n }\n\n public readonly element = injectElement();\n public readonly dateLabelPipe = inject(DateLabelPipe);\n\n public readonly config = injectCalendarConfig();\n\n @Input('odxCalendarCell')\n public date!: Date;\n\n @Input('odxCalendarCellCalendarView')\n public calendarView: CalendarViewEnum = CalendarViewEnum.Month;\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'], false)) {\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\n if (this.calendarView === CalendarViewEnum.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 public get ariaLabel(): string {\n const dateFormat = getA11yLabel(this.calendarView, this.config);\n return this.dateLabelPipe.transform(this.date, dateFormat);\n }\n}\n","import { Directive, inject } from '@angular/core';\nimport { injectElement, untilDestroyed } from '@odx/angular/utils';\nimport { injectCalendarConfig } from '../calendar.config';\nimport { CalendarViewEnum } from '../enums';\nimport { CalendarService } from '../services';\n\n@Directive({\n standalone: true,\n})\nexport abstract class CalendarViewDirective {\n protected readonly takeUntilDestroyed = untilDestroyed();\n\n protected readonly calendar = inject(CalendarService);\n\n protected abstract readonly calendarNextView: CalendarViewEnum;\n\n protected abstract readonly calendarCurrentView: CalendarViewEnum;\n\n public readonly config = injectCalendarConfig();\n\n public readonly element = injectElement();\n\n public get activeDate(): Date {\n return this.calendar.activeDate;\n }\n\n public trackByIndex(index: number): number {\n return index;\n }\n\n public isDateDisabled(value: Date): boolean {\n return this.calendar.isDateDisabled(value);\n }\n\n public changeView(): void {\n this.calendar.changeView(this.calendarNextView);\n }\n\n public updateActiveDate(event: Event, date: Date): void {\n event.preventDefault();\n event.stopPropagation();\n\n this.calendar.setActiveDate(date);\n }\n\n protected abstract selectDate(value: Date): void;\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 { CalendarViewEnum } from '../../enums';\nimport { DateType } 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\n protected readonly calendarNextView = CalendarViewEnum.Years;\n protected readonly calendarCurrentView = CalendarViewEnum.Month;\n\n @Output()\n public selectedChange = new EventEmitter<DateType | null>();\n\n public previousDay(event: Event): void {\n this.updateActiveDate(event, subDays(this.activeDate, 1));\n }\n\n public nextDay(event: Event): void {\n this.updateActiveDate(event, addDays(this.activeDate, 1));\n }\n\n public previousWeek(event: Event): void {\n this.updateActiveDate(event, subWeeks(this.activeDate, 1));\n }\n\n public nextWeek(event: Event): void {\n this.updateActiveDate(event, addWeeks(this.activeDate, 1));\n }\n\n public previousMonth(event: Event): void {\n this.updateActiveDate(event, subMonths(this.activeDate, 1));\n }\n\n public nextMonth(event: Event): void {\n this.updateActiveDate(event, addMonths(this.activeDate, 1));\n }\n\n public 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 (previous)=\"previousMonth($event)\" (next)=\"nextMonth($event)\" (changeView)=\"changeView()\">\n {{ calendar.activeDate$ | async | 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 *ngIf=\"calendar.activeDate$ | async as activeDate\"\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 [odxCalendarCellSelectedDate]=\"calendar.selectedDate$ | async\"\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 { CalendarViewEnum } from '../../enums';\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\n protected readonly calendarNextView = CalendarViewEnum.Month;\n protected readonly calendarCurrentView = CalendarViewEnum.Year;\n\n public previousMonth(event: Event): void {\n this.updateActiveDate(event, subMonths(this.activeDate, 1));\n }\n\n public nextMonth(event: Event): void {\n this.updateActiveDate(event, addMonths(this.activeDate, 1));\n }\n\n public previousSeason(event: Event): void {\n this.updateActiveDate(event, subMonths(this.activeDate, 3));\n }\n\n public nextSeason(event: Event): void {\n this.updateActiveDate(event, addMonths(this.activeDate, 3));\n }\n\n public previousYear(event: Event): void {\n this.updateActiveDate(event, subMonths(this.activeDate, 12));\n }\n\n public nextYear(event: Event): void {\n this.updateActiveDate(event, addMonths(this.activeDate, 12));\n }\n\n public selectDate(value: Date): void {\n if (this.isDateDisabled(value)) return;\n\n const date = setMonth(this.calendar.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 (previous)=\"previousYear($event)\" (next)=\"nextYear($event)\" (changeView)=\"changeView()\">\n {{ calendar.activeDate$ | async | odxDateLabel: config.yearLabel }}\n </odx-calendar-header>\n </th>\n </tr>\n </thead>\n\n <tbody\n *ngIf=\"calendar.activeDate$ | async as activeDate\"\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 [odxCalendarCellSelectedDate]=\"calendar.selectedDate$ | async\"\n [odxCalendarCellCalendarView]=\"calendarCurrentView\"\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 { CalendarViewEnum } from '../../enums';\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\n protected readonly calendarNextView = CalendarViewEnum.Year;\n protected readonly calendarCurrentView = CalendarViewEnum.Years;\n\n public ngAfterViewInit(): void {\n deferFn(() => this.scrollCurrentYearIntoView());\n }\n\n public previousYear(event: Event): void {\n this.updateActiveDate(event, subMonths(this.activeDate, 12));\n }\n\n public nextYear(event: Event): void {\n this.updateActiveDate(event, addMonths(this.activeDate, 12));\n }\n\n public previousRow(event: Event): void {\n this.updateActiveDate(event, subMonths(this.activeDate, 12 * 3));\n }\n\n public nextRow(event: Event): void {\n this.updateActiveDate(event, addMonths(this.activeDate, 12 * 3));\n }\n\n public selectDate(value: Date): void {\n if (this.isDateDisabled(value)) return;\n\n const date = setYear(this.calendar.activeDate, getYear(value));\n this.calendar.selectDate(date);\n\n this.changeView();\n }\n\n public 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\">\n <thead aria-hidden=\"true\">\n <th></th>\n </thead>\n\n <tbody\n *ngIf=\"calendar.activeDate$ | async as activeDate\"\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; 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 [odxCalendarCellSelectedDate]=\"calendar.selectedDate$ | async\"\n [odxCalendarCellCalendarView]=\"calendarCurrentView\"\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, SimpleChanges, ViewEncapsulation } from '@angular/core';\nimport { CoreModule } from '@odx/angular';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { hasChanged, injectElement } from '@odx/angular/utils';\nimport { CalendarMonthComponent, CalendarYearComponent, CalendarYearsComponent } from './components';\nimport { CalendarViewEnum } from './enums';\nimport { DateFilter, DateType } from './models';\nimport { CalendarService } from './services';\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 calendar = inject(CalendarService);\n\n public readonly element = injectElement();\n\n public readonly calendarView = CalendarViewEnum;\n\n @Input()\n public set selectedDate(value: DateType | null) {\n this.calendar.selectDate(value);\n }\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 selectedChange = new EventEmitter<DateType | null>();\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (hasChanged(changes, 'minDate', false)) {\n this.calendar.minDate = this.minDate;\n }\n\n if (hasChanged(changes, 'maxDate', false)) {\n this.calendar.maxDate = this.maxDate;\n }\n\n if (hasChanged(changes, 'filterFn', false)) {\n this.calendar.filterFn = this.filterFn;\n }\n }\n}\n","<ng-container [ngSwitch]=\"calendar.calendarCurrentView\">\n <odx-calendar-year *ngSwitchCase=\"calendarView.Year\"></odx-calendar-year>\n <odx-calendar-years *ngSwitchCase=\"calendarView.Years\"></odx-calendar-years>\n <odx-calendar-month *ngSwitchDefault (selectedChange)=\"selectedChange.emit($event)\"></odx-calendar-month>\n</ng-container>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["functionList"],"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, distinctUntilChanged, filter, merge, shareReplay, Subject } 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({ refCount: true }));\n public readonly selectedDate$ = this.selectedDate$$.pipe(shareReplay({ refCount: true }));\n public readonly activeDate$ = merge(this.activeDate$$, this.selectedDate$).pipe(\n filter(Boolean),\n distinctUntilChanged((prev, curr) => isEqual(prev, curr)),\n shareReplay({ 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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"}
|
|
@@ -144,6 +144,7 @@ let DatepickerComponent = class DatepickerComponent extends CustomFormControl {
|
|
|
144
144
|
this.filterFn = null;
|
|
145
145
|
this.minDate = null;
|
|
146
146
|
this.maxDate = null;
|
|
147
|
+
this.dropdownPosition = 'bottom';
|
|
147
148
|
this.selectedChange = new EventEmitter();
|
|
148
149
|
detectControllerChanges(this).subscribe();
|
|
149
150
|
}
|
|
@@ -199,20 +200,22 @@ let DatepickerComponent = class DatepickerComponent extends CustomFormControl {
|
|
|
199
200
|
}
|
|
200
201
|
};
|
|
201
202
|
DatepickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DatepickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
202
|
-
DatepickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: DatepickerComponent, isStandalone: true, selector: "odx-datepicker", inputs: { filterFn: "filterFn", minDate: "minDate", maxDate: "maxDate" }, outputs: { selectedChange: "selectedChange" }, host: { listeners: { "keydown.alt.ArrowDown": "openDatepicker($event)" } }, queries: [{ propertyName: "dateField", first: true, predicate: DatepickerInputControlDirective, descendants: true }], viewQueries: [{ propertyName: "dropdown", first: true, predicate: DropdownDirective, descendants: true }, { propertyName: "dropdownTriggerElement", first: true, predicate: ["dropdownTrigger"], descendants: true, read: ElementRef, static: true }], usesInheritance: true, hostDirectives: [{ directive: i1.ClickOutsideDirective }], ngImport: i0, template: "<ng-content select=\"input[odxDatepickerControl]\"></ng-content>\n\n<odx-action-group class=\"odx-no-margin\">\n <button\n #dropdownTrigger\n class=\"odx-datepicker__trigger\"\n odxButton\n size=\"small\"\n variant=\"ghost\"\n [odxDropdown]=\"calendarOverlay\"\n [odxDropdownOptions]=\"{ position:
|
|
203
|
+
DatepickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: DatepickerComponent, isStandalone: true, selector: "odx-datepicker", inputs: { filterFn: "filterFn", minDate: "minDate", maxDate: "maxDate", dropdownPosition: "dropdownPosition" }, outputs: { selectedChange: "selectedChange" }, host: { listeners: { "keydown.alt.ArrowDown": "openDatepicker($event)" } }, queries: [{ propertyName: "dateField", first: true, predicate: DatepickerInputControlDirective, descendants: true }], viewQueries: [{ propertyName: "dropdown", first: true, predicate: DropdownDirective, descendants: true }, { propertyName: "dropdownTriggerElement", first: true, predicate: ["dropdownTrigger"], descendants: true, read: ElementRef, static: true }], usesInheritance: true, hostDirectives: [{ directive: i1.ClickOutsideDirective }], ngImport: i0, template: "<ng-content select=\"input[odxDatepickerControl]\"></ng-content>\n\n<odx-action-group class=\"odx-no-margin\">\n <button\n #dropdownTrigger\n class=\"odx-datepicker__trigger\"\n odxButton\n size=\"small\"\n variant=\"ghost\"\n [odxDropdown]=\"calendarOverlay\"\n [odxDropdownOptions]=\"{ position: dropdownPosition }\"\n [odxDropdownTriggerElement]=\"dropdownTriggerElement.nativeElement\"\n [odxDropdownHost]=\"null\"\n [odxDropdownReferenceElement]=\"element.nativeElement\"\n [odxDropdownClickOutsideActive]=\"false\"\n >\n <odx-icon name=\"calendar\"></odx-icon>\n </button>\n</odx-action-group>\n\n<ng-template #calendarOverlay>\n <odx-calendar\n [selectedDate]=\"value\"\n [filterFn]=\"filterFn\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n cdkTrapFocus\n cdkTrapFocusAutoCapture\n (selectedDateChange)=\"selectDate($event)\"\n ></odx-calendar>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i2.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "component", type: ActionGroupComponent, selector: "odx-action-group", inputs: ["reverse"] }, { kind: "component", type: ButtonComponent, selector: "button[odxButton], a[odxButton]", inputs: ["variant", "size"] }, { kind: "component", type: CalendarComponent, selector: "odx-calendar", inputs: ["selectedDate", "minDate", "maxDate", "filterFn"], outputs: ["selectedDateChange"] }, { kind: "ngmodule", type: DropdownModule }, { kind: "directive", type: i3.DropdownDirective, selector: "[odxDropdown]", inputs: ["odxDropdown", "odxDropdownDisabled", "odxDropdownShowLoader", "odxDropdownClickOutsideActive", "odxDropdownOptions", "odxDropdownReferenceElement", "odxDropdownTriggerElement", "odxDropdownHost", "odxDropdownOpenTrigger", "odxDropdownCloseTrigger"], outputs: ["odxDropdownBeforeOpen", "odxDropdownAfterOpen", "odxDropdownBeforeClose", "odxDropdownAfterClose"], exportAs: ["odxDropdown"] }, { kind: "component", type: IconComponent, selector: "odx-icon", inputs: ["inline", "size", "name", "iconSet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
203
204
|
DatepickerComponent = __decorate([
|
|
204
205
|
CSSComponent('datepicker'),
|
|
205
206
|
__metadata("design:paramtypes", [])
|
|
206
207
|
], DatepickerComponent);
|
|
207
208
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DatepickerComponent, decorators: [{
|
|
208
209
|
type: Component,
|
|
209
|
-
args: [{ selector: 'odx-datepicker', standalone: true, imports: [A11yModule, ActionGroupComponent, ButtonComponent, CalendarComponent, DropdownModule, IconComponent], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, hostDirectives: [ClickOutsideDirective], template: "<ng-content select=\"input[odxDatepickerControl]\"></ng-content>\n\n<odx-action-group class=\"odx-no-margin\">\n <button\n #dropdownTrigger\n class=\"odx-datepicker__trigger\"\n odxButton\n size=\"small\"\n variant=\"ghost\"\n [odxDropdown]=\"calendarOverlay\"\n [odxDropdownOptions]=\"{ position:
|
|
210
|
+
args: [{ selector: 'odx-datepicker', standalone: true, imports: [A11yModule, ActionGroupComponent, ButtonComponent, CalendarComponent, DropdownModule, IconComponent], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, hostDirectives: [ClickOutsideDirective], template: "<ng-content select=\"input[odxDatepickerControl]\"></ng-content>\n\n<odx-action-group class=\"odx-no-margin\">\n <button\n #dropdownTrigger\n class=\"odx-datepicker__trigger\"\n odxButton\n size=\"small\"\n variant=\"ghost\"\n [odxDropdown]=\"calendarOverlay\"\n [odxDropdownOptions]=\"{ position: dropdownPosition }\"\n [odxDropdownTriggerElement]=\"dropdownTriggerElement.nativeElement\"\n [odxDropdownHost]=\"null\"\n [odxDropdownReferenceElement]=\"element.nativeElement\"\n [odxDropdownClickOutsideActive]=\"false\"\n >\n <odx-icon name=\"calendar\"></odx-icon>\n </button>\n</odx-action-group>\n\n<ng-template #calendarOverlay>\n <odx-calendar\n [selectedDate]=\"value\"\n [filterFn]=\"filterFn\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n cdkTrapFocus\n cdkTrapFocusAutoCapture\n (selectedDateChange)=\"selectDate($event)\"\n ></odx-calendar>\n</ng-template>\n" }]
|
|
210
211
|
}], ctorParameters: function () { return []; }, propDecorators: { filterFn: [{
|
|
211
212
|
type: Input
|
|
212
213
|
}], minDate: [{
|
|
213
214
|
type: Input
|
|
214
215
|
}], maxDate: [{
|
|
215
216
|
type: Input
|
|
217
|
+
}], dropdownPosition: [{
|
|
218
|
+
type: Input
|
|
216
219
|
}], selectedChange: [{
|
|
217
220
|
type: Output
|
|
218
221
|
}], dropdown: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"odx-angular-components-datepicker.mjs","sources":["../../../../libs/angular/components/datepicker/src/lib/models/datepicker-input-date-order.ts","../../../../libs/angular/components/datepicker/src/lib/models/datepicker-input-pattern.ts","../../../../libs/angular/components/datepicker/src/lib/datepicker.config.ts","../../../../libs/angular/components/datepicker/src/lib/utils/get-datepicker-input-pattern.ts","../../../../libs/angular/components/datepicker/src/lib/utils/get-datepicker-input-value-as-date.ts","../../../../libs/angular/components/datepicker/src/lib/directives/datepicker-input-control.directive.ts","../../../../libs/angular/components/datepicker/src/lib/datepicker.component.ts","../../../../libs/angular/components/datepicker/src/lib/datepicker.component.html","../../../../libs/angular/components/datepicker/src/lib/datepicker.module.ts","../../../../libs/angular/components/datepicker/src/odx-angular-components-datepicker.ts"],"sourcesContent":["export type DatepickerInputDateOrder = (typeof DatepickerInputDateOrder)[keyof typeof DatepickerInputDateOrder];\n\nexport const DatepickerInputDateOrder = {\n DMY: 'DMY',\n MDY: 'MDY',\n YMD: 'YMD',\n};\n","export type DatepickerInputPattern = typeof DatepickerInputFormat | typeof DatepickerInputMask;\n\nexport const DatepickerInputFormat = {\n DAYS: 'dd',\n MONTH: 'MM',\n YEAR: 'yyyy',\n};\n\nexport const DatepickerInputMask = {\n DAYS: 'd0',\n MONTH: 'M0',\n YEAR: '0000',\n};\n","import { createConfigTokens } from '@odx/angular/utils';\nimport { DatepickerInputDateOrder } from './models';\n\nexport interface DatepickerConfig {\n /**\n * Date's order ('DMY' | 'MDY' | 'YMD').\n * @default DatepickerInputDateOrder.DMY\n */\n inputDateOrder: DatepickerInputDateOrder;\n /**\n * Single-character date's separator (dot, slash etc.).\n * @default '.'\n */\n inputDateSeparator: string;\n}\n\nexport const { DatepickerConfig, DatepickerDefaultConfig, injectDatepickerConfig, provideDatepickerConfig } = createConfigTokens(\n 'Datepicker',\n '@odx/angular/components/datepicker',\n {\n inputDateOrder: DatepickerInputDateOrder.DMY,\n inputDateSeparator: '.',\n },\n);\n","import { DatepickerConfig } from '../datepicker.config';\nimport { DatepickerInputDateOrder, DatepickerInputFormat, DatepickerInputMask, DatepickerInputPattern } from '../models';\n\nfunction getDatepickerInputPattern({ inputDateOrder, inputDateSeparator }: DatepickerConfig, pattern: DatepickerInputPattern): string {\n const patternList: Record<DatepickerInputDateOrder, string> = {\n [DatepickerInputDateOrder.DMY]: `${pattern.DAYS}${inputDateSeparator}${pattern.MONTH}${inputDateSeparator}${pattern.YEAR}`,\n [DatepickerInputDateOrder.MDY]: `${pattern.MONTH}${inputDateSeparator}${pattern.DAYS}${inputDateSeparator}${pattern.YEAR}`,\n [DatepickerInputDateOrder.YMD]: `${pattern.YEAR}${inputDateSeparator}${pattern.MONTH}${inputDateSeparator}${pattern.DAYS}`,\n };\n\n return patternList[inputDateOrder];\n}\n\nexport function getDatepickerInputFormat(config: DatepickerConfig): string {\n return getDatepickerInputPattern(config, DatepickerInputFormat);\n}\n\nexport function getDatepickerInputMask(config: DatepickerConfig): string {\n return getDatepickerInputPattern(config, DatepickerInputMask);\n}\n","import { isValid, toDate } from 'date-fns';\nimport { DatepickerConfig } from '../datepicker.config';\nimport { DatepickerInputDateOrder } from '../models';\n\ninterface DateCandidateInterface {\n month: string;\n day: string;\n year: string;\n}\n\nconst functionList: Record<DatepickerInputDateOrder, (splittedValue: string[]) => DateCandidateInterface> = {\n [DatepickerInputDateOrder.DMY]: (splittedValue: string[]) => {\n const [day, month, year] = splittedValue;\n return { month, day, year };\n },\n [DatepickerInputDateOrder.MDY]: (splittedValue: string[]) => {\n const [month, day, year] = splittedValue;\n return { month, day, year };\n },\n [DatepickerInputDateOrder.YMD]: (splittedValue: string[]) => {\n const [year, month, day] = splittedValue;\n return { month, day, year };\n },\n};\n\nfunction getDateCandidate({ inputDateOrder, inputDateSeparator }: DatepickerConfig, value: string): string | null {\n const splittedValue = value.split(inputDateSeparator);\n\n const { month, day, year }: DateCandidateInterface = functionList[inputDateOrder](splittedValue);\n\n const isDateCandidateInvalid = !month || !day || !year;\n\n return isDateCandidateInvalid ? null : `${month}.${day}.${year}`;\n}\n\nexport function getDatepickerInputValueAsDate(config: DatepickerConfig, value: string): Date | null {\n const dateCandidate: string | null = getDateCandidate(config, value);\n\n if (!dateCandidate) return null;\n\n const date = toDate(Date.parse(dateCandidate));\n\n return isValid(date) ? date : null;\n}\n","import { Directive, EventEmitter, HostListener, inject, Output } from '@angular/core';\nimport { ReadonlyController, WithTabIndex } from '@odx/angular';\nimport { InputControlDirective } from '@odx/angular/cdk/custom-form-control';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { IConfig, NgxMaskPipe, provideNgxMask } from 'ngx-mask';\nimport { distinctUntilChanged, fromEvent, map, tap } from 'rxjs';\nimport { injectDatepickerConfig } from '../datepicker.config';\nimport { getDatepickerInputFormat, getDatepickerInputMask, getDatepickerInputValueAsDate } from '../utils';\n\n@CSSComponent('datepicker__control')\n@Directive({\n standalone: true,\n selector: 'input[odxDatepickerControl]',\n host: {\n '[attr.readonly]': 'readonlyController?.readonly || null',\n '[attr.placeholder]': 'placeholder',\n },\n providers: [ReadonlyController.connect(), provideNgxMask(), NgxMaskPipe],\n hostDirectives: [WithTabIndex],\n})\nexport class DatepickerInputControlDirective extends InputControlDirective {\n private readonly maskConfig: Partial<IConfig> = { validation: false, leadZeroDateTime: true };\n\n protected readonly readonlyController = ReadonlyController.inject();\n\n protected readonly config = injectDatepickerConfig();\n\n protected readonly inputMask = getDatepickerInputMask(this.config);\n\n protected readonly ngxMaskPipe = inject(NgxMaskPipe);\n\n @Output()\n public focused = new EventEmitter<FocusEvent>();\n\n public override valueChange$ = fromEvent(this.element.nativeElement, 'input').pipe(\n distinctUntilChanged(),\n tap(() => this.applyMask()),\n map(() => this.nativeElementValue),\n );\n\n public applyMask(): void {\n this.nativeElementValue = this.ngxMaskPipe.transform(this.nativeElementValue, this.inputMask, this.maskConfig);\n }\n\n public get valueAsDate(): Date | null {\n return getDatepickerInputValueAsDate(this.config, this.nativeElementValue);\n }\n\n public get placeholder(): string {\n return getDatepickerInputFormat(this.config).toUpperCase();\n }\n\n @HostListener('focus', ['$event'])\n protected handleFocus(event: FocusEvent): void {\n this.focused.emit(event);\n }\n}\n","import { A11yModule } from '@angular/cdk/a11y';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n HostListener,\n inject,\n Input,\n Output,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { ClickOutsideDirective, detectControllerChanges } from '@odx/angular';\nimport { CustomFormControl } from '@odx/angular/cdk/custom-form-control';\nimport { ActionGroupComponent } from '@odx/angular/components/action-group';\nimport { ButtonComponent } from '@odx/angular/components/button';\nimport { CalendarComponent, DateFilter } from '@odx/angular/components/calendar';\nimport { DropdownDirective, DropdownModule } from '@odx/angular/components/dropdown';\nimport { IconComponent } from '@odx/angular/components/icon';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { deferFn, injectElement, untilDestroyed } from '@odx/angular/utils';\nimport { format, startOfDay } from 'date-fns';\nimport { injectDatepickerConfig } from './datepicker.config';\nimport { DatepickerInputControlDirective } from './directives';\nimport { getDatepickerInputFormat } from './utils';\n\n@CSSComponent('datepicker')\n@Component({\n selector: 'odx-datepicker',\n standalone: true,\n imports: [A11yModule, ActionGroupComponent, ButtonComponent, CalendarComponent, DropdownModule, IconComponent],\n templateUrl: './datepicker.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n hostDirectives: [ClickOutsideDirective],\n})\nexport class DatepickerComponent extends CustomFormControl<Date | null> implements AfterViewInit {\n protected readonly takeUntilDestroyed = untilDestroyed();\n\n protected readonly clickOutsideDirective = inject(ClickOutsideDirective, { host: true });\n\n protected readonly config = injectDatepickerConfig();\n\n public readonly element = injectElement();\n\n public get isOpen(): boolean {\n return !!this.dropdown.isOpen;\n }\n\n @Input()\n public filterFn: DateFilter | null = null;\n\n @Input()\n public minDate: Date | null = null;\n\n @Input()\n public maxDate: Date | null = null;\n\n @Output()\n public selectedChange = new EventEmitter<Date>();\n\n @ViewChild(DropdownDirective)\n public dropdown!: DropdownDirective;\n\n @ViewChild('dropdownTrigger', { read: ElementRef, static: true })\n public dropdownTriggerElement!: ElementRef<HTMLElement>;\n\n @ContentChild(DatepickerInputControlDirective)\n public dateField?: DatepickerInputControlDirective;\n\n constructor() {\n super(null);\n detectControllerChanges(this).subscribe();\n }\n\n public ngAfterViewInit(): void {\n this.handleDateFieldChanges();\n this.handleDateFieldFocus();\n this.handleClickOutside();\n\n deferFn(() => {\n if (!this.value) return;\n this.updateValue(startOfDay(this.value));\n this.updateDateField(this.value);\n });\n }\n\n public selectDate(value: Date | null): void {\n if (!value) return;\n\n this.updateValue(value);\n this.updateDateField(value);\n\n this.selectedChange.emit(value);\n\n this.closeDropdown();\n }\n\n protected handleDateFieldChanges(): void {\n this.dateField?.valueChange$.pipe(this.takeUntilDestroyed()).subscribe(() => this.updateValue(this.dateField?.valueAsDate ?? null));\n }\n\n protected handleDateFieldFocus(): void {\n this.dateField?.focused.pipe(this.takeUntilDestroyed()).subscribe(() => {\n if (this.isOpen) {\n this.closeDropdown();\n }\n });\n }\n\n protected handleClickOutside(): void {\n this.clickOutsideDirective.odxClickOutside.pipe(this.takeUntilDestroyed()).subscribe(() => this.clickOutside());\n }\n\n protected closeDropdown(): void {\n this.dropdown.close();\n }\n\n protected clickOutside(): void {\n this.closeDropdown();\n }\n\n @HostListener('keydown.alt.ArrowDown', ['$event'])\n protected openDatepicker(event: KeyboardEvent) {\n event.stopPropagation();\n\n if (this.isReadonly || this.isDisabled) return;\n\n this.dropdown.open(event);\n }\n\n private updateDateField(date: Date): void {\n if (!this.dateField) return;\n\n const dateFormat = getDatepickerInputFormat(this.config);\n this.dateField.nativeElementValue = format(date, dateFormat);\n }\n}\n","<ng-content select=\"input[odxDatepickerControl]\"></ng-content>\n\n<odx-action-group class=\"odx-no-margin\">\n <button\n #dropdownTrigger\n class=\"odx-datepicker__trigger\"\n odxButton\n size=\"small\"\n variant=\"ghost\"\n [odxDropdown]=\"calendarOverlay\"\n [odxDropdownOptions]=\"{ position: 'bottom-end' }\"\n [odxDropdownTriggerElement]=\"dropdownTriggerElement.nativeElement\"\n [odxDropdownHost]=\"null\"\n [odxDropdownReferenceElement]=\"element.nativeElement\"\n [odxDropdownClickOutsideActive]=\"false\"\n >\n <odx-icon name=\"calendar\"></odx-icon>\n </button>\n</odx-action-group>\n\n<ng-template #calendarOverlay>\n <odx-calendar\n [selectedDate]=\"value\"\n [filterFn]=\"filterFn\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n cdkTrapFocus\n cdkTrapFocusAutoCapture\n (selectedChange)=\"selectDate($any($event))\"\n ></odx-calendar>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { CoreModule } from '@odx/angular';\nimport { DatepickerComponent } from './datepicker.component';\nimport { DatepickerInputControlDirective } from './directives';\n\nconst modules = [DatepickerComponent, DatepickerInputControlDirective];\n\n@NgModule({\n imports: modules,\n exports: [CoreModule, ...modules],\n})\nexport class DatepickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAEa,MAAA,wBAAwB,GAAG;AACtC,IAAA,GAAG,EAAE,KAAK;AACV,IAAA,GAAG,EAAE,KAAK;AACV,IAAA,GAAG,EAAE,KAAK;;;ACHC,MAAA,qBAAqB,GAAG;AACnC,IAAA,IAAI,EAAE,IAAI;AACV,IAAA,KAAK,EAAE,IAAI;AACX,IAAA,IAAI,EAAE,MAAM;EACZ;AAEW,MAAA,mBAAmB,GAAG;AACjC,IAAA,IAAI,EAAE,IAAI;AACV,IAAA,KAAK,EAAE,IAAI;AACX,IAAA,IAAI,EAAE,MAAM;;;ACKD,MAAA,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,GAAG,kBAAkB,CAC9H,YAAY,EACZ,oCAAoC,EACpC;IACE,cAAc,EAAE,wBAAwB,CAAC,GAAG;AAC5C,IAAA,kBAAkB,EAAE,GAAG;AACxB,CAAA;;ACnBH,SAAS,yBAAyB,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAoB,EAAE,OAA+B,EAAA;AAC1H,IAAA,MAAM,WAAW,GAA6C;QAC5D,CAAC,wBAAwB,CAAC,GAAG,GAAG,CAAG,EAAA,OAAO,CAAC,IAAI,CAAA,EAAG,kBAAkB,CAAG,EAAA,OAAO,CAAC,KAAK,CAAA,EAAG,kBAAkB,CAAG,EAAA,OAAO,CAAC,IAAI,CAAE,CAAA;QAC1H,CAAC,wBAAwB,CAAC,GAAG,GAAG,CAAG,EAAA,OAAO,CAAC,KAAK,CAAA,EAAG,kBAAkB,CAAG,EAAA,OAAO,CAAC,IAAI,CAAA,EAAG,kBAAkB,CAAG,EAAA,OAAO,CAAC,IAAI,CAAE,CAAA;QAC1H,CAAC,wBAAwB,CAAC,GAAG,GAAG,CAAG,EAAA,OAAO,CAAC,IAAI,CAAA,EAAG,kBAAkB,CAAG,EAAA,OAAO,CAAC,KAAK,CAAA,EAAG,kBAAkB,CAAG,EAAA,OAAO,CAAC,IAAI,CAAE,CAAA;KAC3H,CAAC;AAEF,IAAA,OAAO,WAAW,CAAC,cAAc,CAAC,CAAC;AACrC,CAAC;AAEK,SAAU,wBAAwB,CAAC,MAAwB,EAAA;AAC/D,IAAA,OAAO,yBAAyB,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;AAClE,CAAC;AAEK,SAAU,sBAAsB,CAAC,MAAwB,EAAA;AAC7D,IAAA,OAAO,yBAAyB,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;AAChE;;ACTA,MAAM,YAAY,GAA0F;IAC1G,CAAC,wBAAwB,CAAC,GAAG,GAAG,CAAC,aAAuB,KAAI;QAC1D,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,aAAa,CAAC;AACzC,QAAA,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;KAC7B;IACD,CAAC,wBAAwB,CAAC,GAAG,GAAG,CAAC,aAAuB,KAAI;QAC1D,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,aAAa,CAAC;AACzC,QAAA,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;KAC7B;IACD,CAAC,wBAAwB,CAAC,GAAG,GAAG,CAAC,aAAuB,KAAI;QAC1D,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,GAAG,aAAa,CAAC;AACzC,QAAA,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;KAC7B;CACF,CAAC;AAEF,SAAS,gBAAgB,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAoB,EAAE,KAAa,EAAA;IAC/F,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;AAEtD,IAAA,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAA2B,YAAY,CAAC,cAAc,CAAC,CAAC,aAAa,CAAC,CAAC;IAEjG,MAAM,sBAAsB,GAAG,CAAC,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;AAEvD,IAAA,OAAO,sBAAsB,GAAG,IAAI,GAAG,CAAA,EAAG,KAAK,CAAI,CAAA,EAAA,GAAG,CAAI,CAAA,EAAA,IAAI,EAAE,CAAC;AACnE,CAAC;AAEe,SAAA,6BAA6B,CAAC,MAAwB,EAAE,KAAa,EAAA;IACnF,MAAM,aAAa,GAAkB,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAErE,IAAA,IAAI,CAAC,aAAa;AAAE,QAAA,OAAO,IAAI,CAAC;IAEhC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;AAE/C,IAAA,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AACrC;;ACvBO,IAAM,+BAA+B,GAArC,MAAM,+BAAgC,SAAQ,qBAAqB,CAAA;AAAnE,IAAA,WAAA,GAAA;;QACY,IAAU,CAAA,UAAA,GAAqB,EAAE,UAAU,EAAE,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;AAE3E,QAAA,IAAA,CAAA,kBAAkB,GAAG,kBAAkB,CAAC,MAAM,EAAE,CAAC;QAEjD,IAAM,CAAA,MAAA,GAAG,sBAAsB,EAAE,CAAC;AAElC,QAAA,IAAA,CAAA,SAAS,GAAG,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAEhD,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;AAG9C,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAc,CAAC;AAEhC,QAAA,IAAA,CAAA,YAAY,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,IAAI,CAChF,oBAAoB,EAAE,EACtB,GAAG,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,EAC3B,GAAG,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,CACnC,CAAC;AAkBH,KAAA;IAhBQ,SAAS,GAAA;QACd,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;KAChH;AAED,IAAA,IAAW,WAAW,GAAA;QACpB,OAAO,6BAA6B,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;KAC5E;AAED,IAAA,IAAW,WAAW,GAAA;QACpB,OAAO,wBAAwB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;KAC5D;AAGS,IAAA,WAAW,CAAC,KAAiB,EAAA;AACrC,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC1B;;4HAnCU,+BAA+B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;gHAA/B,+BAA+B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,eAAA,EAAA,sCAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,EAAA,EAAA,SAAA,EAH/B,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE,cAAc,EAAE,EAAE,WAAW,CAAC,EAAA,eAAA,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,YAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;AAG7D,+BAA+B,GAAA,UAAA,CAAA;IAX3C,YAAY,CAAC,qBAAqB,CAAC;AAWvB,CAAA,EAAA,+BAA+B,CAoC3C,CAAA;2FApCY,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAV3C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,6BAA6B;AACvC,oBAAA,IAAI,EAAE;AACJ,wBAAA,iBAAiB,EAAE,sCAAsC;AACzD,wBAAA,oBAAoB,EAAE,aAAa;AACpC,qBAAA;oBACD,SAAS,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE,cAAc,EAAE,EAAE,WAAW,CAAC;oBACxE,cAAc,EAAE,CAAC,YAAY,CAAC;AAC/B,iBAAA,CAAA;8BAaQ,OAAO,EAAA,CAAA;sBADb,MAAM;gBAsBG,WAAW,EAAA,CAAA;sBADpB,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAA;;;ACb5B,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,iBAA8B,CAAA;AASrE,IAAA,IAAW,MAAM,GAAA;AACf,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;KAC/B;AAuBD,IAAA,WAAA,GAAA;QACE,KAAK,CAAC,IAAI,CAAC,CAAC;QAlCK,IAAkB,CAAA,kBAAA,GAAG,cAAc,EAAE,CAAC;QAEtC,IAAqB,CAAA,qBAAA,GAAG,MAAM,CAAC,qBAAqB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAEtE,IAAM,CAAA,MAAA,GAAG,sBAAsB,EAAE,CAAC;QAErC,IAAO,CAAA,OAAA,GAAG,aAAa,EAAE,CAAC;QAOnC,IAAQ,CAAA,QAAA,GAAsB,IAAI,CAAC;QAGnC,IAAO,CAAA,OAAA,GAAgB,IAAI,CAAC;QAG5B,IAAO,CAAA,OAAA,GAAgB,IAAI,CAAC;AAG5B,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAQ,CAAC;AAa/C,QAAA,uBAAuB,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;KAC3C;IAEM,eAAe,GAAA;QACpB,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC9B,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE1B,OAAO,CAAC,MAAK;YACX,IAAI,CAAC,IAAI,CAAC,KAAK;gBAAE,OAAO;YACxB,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACzC,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACnC,SAAC,CAAC,CAAC;KACJ;AAEM,IAAA,UAAU,CAAC,KAAkB,EAAA;AAClC,QAAA,IAAI,CAAC,KAAK;YAAE,OAAO;AAEnB,QAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AACxB,QAAA,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;AAE5B,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEhC,IAAI,CAAC,aAAa,EAAE,CAAC;KACtB;IAES,sBAAsB,GAAA;AAC9B,QAAA,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC;KACrI;IAES,oBAAoB,GAAA;AAC5B,QAAA,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,SAAS,CAAC,MAAK;YACrE,IAAI,IAAI,CAAC,MAAM,EAAE;gBACf,IAAI,CAAC,aAAa,EAAE,CAAC;AACtB,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;IAES,kBAAkB,GAAA;QAC1B,IAAI,CAAC,qBAAqB,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;KACjH;IAES,aAAa,GAAA;AACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;KACvB;IAES,YAAY,GAAA;QACpB,IAAI,CAAC,aAAa,EAAE,CAAC;KACtB;AAGS,IAAA,cAAc,CAAC,KAAoB,EAAA;QAC3C,KAAK,CAAC,eAAe,EAAE,CAAC;AAExB,QAAA,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO;AAE/C,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC3B;AAEO,IAAA,eAAe,CAAC,IAAU,EAAA;QAChC,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO;QAE5B,MAAM,UAAU,GAAG,wBAAwB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzD,IAAI,CAAC,SAAS,CAAC,kBAAkB,GAAG,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;KAC9D;;gHApGU,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,mBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,sTA+BhB,+BAA+B,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EANlC,iBAAiB,EAGU,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,wBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAA,UAAU,6HCnElD,w6BA+BA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDEY,UAAU,EAAE,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,yBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,oBAAoB,kFAAE,eAAe,EAAA,QAAA,EAAA,iCAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,iBAAiB,EAAE,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,cAAc,2fAAE,aAAa,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,MAAA,EAAA,MAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;AAMlG,mBAAmB,GAAA,UAAA,CAAA;IAV/B,YAAY,CAAC,YAAY,CAAC;;AAUd,CAAA,EAAA,mBAAmB,CAqG/B,CAAA;2FArGY,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAT/B,SAAS;+BACE,gBAAgB,EAAA,UAAA,EACd,IAAI,EAAA,OAAA,EACP,CAAC,UAAU,EAAE,oBAAoB,EAAE,eAAe,EAAE,iBAAiB,EAAE,cAAc,EAAE,aAAa,CAAC,EAAA,eAAA,EAE7F,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAAA,cAAA,EACrB,CAAC,qBAAqB,CAAC,EAAA,QAAA,EAAA,w6BAAA,EAAA,CAAA;0EAgBhC,QAAQ,EAAA,CAAA;sBADd,KAAK;gBAIC,OAAO,EAAA,CAAA;sBADb,KAAK;gBAIC,OAAO,EAAA,CAAA;sBADb,KAAK;gBAIC,cAAc,EAAA,CAAA;sBADpB,MAAM;gBAIA,QAAQ,EAAA,CAAA;sBADd,SAAS;uBAAC,iBAAiB,CAAA;gBAIrB,sBAAsB,EAAA,CAAA;sBAD5B,SAAS;uBAAC,iBAAiB,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBAIzD,SAAS,EAAA,CAAA;sBADf,YAAY;uBAAC,+BAA+B,CAAA;gBAwDnC,cAAc,EAAA,CAAA;sBADvB,YAAY;uBAAC,uBAAuB,EAAE,CAAC,QAAQ,CAAC,CAAA;;;AExHnD,MAAM,OAAO,GAAG,CAAC,mBAAmB,EAAE,+BAA+B,CAAC,CAAC;MAM1D,gBAAgB,CAAA;;6GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;8GAAhB,gBAAgB,EAAA,OAAA,EAAA,CANZ,mBAAmB,EAAE,+BAA+B,aAIzD,UAAU,EAJL,mBAAmB,EAAE,+BAA+B,CAAA,EAAA,CAAA,CAAA;8GAMxD,gBAAgB,EAAA,OAAA,EAAA,CANZ,mBAAmB,EAIxB,UAAU,CAAA,EAAA,CAAA,CAAA;2FAET,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAJ5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,OAAO;AAChB,oBAAA,OAAO,EAAE,CAAC,UAAU,EAAE,GAAG,OAAO,CAAC;AAClC,iBAAA,CAAA;;;ACVD;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"odx-angular-components-datepicker.mjs","sources":["../../../../libs/angular/components/datepicker/src/lib/models/datepicker-input-date-order.ts","../../../../libs/angular/components/datepicker/src/lib/models/datepicker-input-pattern.ts","../../../../libs/angular/components/datepicker/src/lib/datepicker.config.ts","../../../../libs/angular/components/datepicker/src/lib/utils/get-datepicker-input-pattern.ts","../../../../libs/angular/components/datepicker/src/lib/utils/get-datepicker-input-value-as-date.ts","../../../../libs/angular/components/datepicker/src/lib/directives/datepicker-input-control.directive.ts","../../../../libs/angular/components/datepicker/src/lib/datepicker.component.ts","../../../../libs/angular/components/datepicker/src/lib/datepicker.component.html","../../../../libs/angular/components/datepicker/src/lib/datepicker.module.ts","../../../../libs/angular/components/datepicker/src/odx-angular-components-datepicker.ts"],"sourcesContent":["export type DatepickerInputDateOrder = (typeof DatepickerInputDateOrder)[keyof typeof DatepickerInputDateOrder];\n\nexport const DatepickerInputDateOrder = {\n DMY: 'DMY',\n MDY: 'MDY',\n YMD: 'YMD',\n};\n","export type DatepickerInputPattern = typeof DatepickerInputFormat | typeof DatepickerInputMask;\n\nexport const DatepickerInputFormat = {\n DAYS: 'dd',\n MONTH: 'MM',\n YEAR: 'yyyy',\n};\n\nexport const DatepickerInputMask = {\n DAYS: 'd0',\n MONTH: 'M0',\n YEAR: '0000',\n};\n","import { createConfigTokens } from '@odx/angular/utils';\nimport { DatepickerInputDateOrder } from './models';\n\nexport interface DatepickerConfig {\n /**\n * Date's order ('DMY' | 'MDY' | 'YMD').\n * @default DatepickerInputDateOrder.DMY\n */\n inputDateOrder: DatepickerInputDateOrder;\n /**\n * Single-character date's separator (dot, slash etc.).\n * @default '.'\n */\n inputDateSeparator: string;\n}\n\nexport const { DatepickerConfig, DatepickerDefaultConfig, injectDatepickerConfig, provideDatepickerConfig } = createConfigTokens(\n 'Datepicker',\n '@odx/angular/components/datepicker',\n {\n inputDateOrder: DatepickerInputDateOrder.DMY,\n inputDateSeparator: '.',\n },\n);\n","import { DatepickerConfig } from '../datepicker.config';\nimport { DatepickerInputDateOrder, DatepickerInputFormat, DatepickerInputMask, DatepickerInputPattern } from '../models';\n\nfunction getDatepickerInputPattern({ inputDateOrder, inputDateSeparator }: DatepickerConfig, pattern: DatepickerInputPattern): string {\n const patternList: Record<DatepickerInputDateOrder, string> = {\n [DatepickerInputDateOrder.DMY]: `${pattern.DAYS}${inputDateSeparator}${pattern.MONTH}${inputDateSeparator}${pattern.YEAR}`,\n [DatepickerInputDateOrder.MDY]: `${pattern.MONTH}${inputDateSeparator}${pattern.DAYS}${inputDateSeparator}${pattern.YEAR}`,\n [DatepickerInputDateOrder.YMD]: `${pattern.YEAR}${inputDateSeparator}${pattern.MONTH}${inputDateSeparator}${pattern.DAYS}`,\n };\n\n return patternList[inputDateOrder];\n}\n\nexport function getDatepickerInputFormat(config: DatepickerConfig): string {\n return getDatepickerInputPattern(config, DatepickerInputFormat);\n}\n\nexport function getDatepickerInputMask(config: DatepickerConfig): string {\n return getDatepickerInputPattern(config, DatepickerInputMask);\n}\n","import { isValid, toDate } from 'date-fns';\nimport { DatepickerConfig } from '../datepicker.config';\nimport { DatepickerInputDateOrder } from '../models';\n\ninterface DateCandidateInterface {\n month: string;\n day: string;\n year: string;\n}\n\nconst functionList: Record<DatepickerInputDateOrder, (splittedValue: string[]) => DateCandidateInterface> = {\n [DatepickerInputDateOrder.DMY]: (splittedValue: string[]) => {\n const [day, month, year] = splittedValue;\n return { month, day, year };\n },\n [DatepickerInputDateOrder.MDY]: (splittedValue: string[]) => {\n const [month, day, year] = splittedValue;\n return { month, day, year };\n },\n [DatepickerInputDateOrder.YMD]: (splittedValue: string[]) => {\n const [year, month, day] = splittedValue;\n return { month, day, year };\n },\n};\n\nfunction getDateCandidate({ inputDateOrder, inputDateSeparator }: DatepickerConfig, value: string): string | null {\n const splittedValue = value.split(inputDateSeparator);\n\n const { month, day, year }: DateCandidateInterface = functionList[inputDateOrder](splittedValue);\n\n const isDateCandidateInvalid = !month || !day || !year;\n\n return isDateCandidateInvalid ? null : `${month}.${day}.${year}`;\n}\n\nexport function getDatepickerInputValueAsDate(config: DatepickerConfig, value: string): Date | null {\n const dateCandidate: string | null = getDateCandidate(config, value);\n\n if (!dateCandidate) return null;\n\n const date = toDate(Date.parse(dateCandidate));\n\n return isValid(date) ? date : null;\n}\n","import { Directive, EventEmitter, HostListener, inject, Output } from '@angular/core';\nimport { ReadonlyController, WithTabIndex } from '@odx/angular';\nimport { InputControlDirective } from '@odx/angular/cdk/custom-form-control';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { IConfig, NgxMaskPipe, provideNgxMask } from 'ngx-mask';\nimport { distinctUntilChanged, fromEvent, map, tap } from 'rxjs';\nimport { injectDatepickerConfig } from '../datepicker.config';\nimport { getDatepickerInputFormat, getDatepickerInputMask, getDatepickerInputValueAsDate } from '../utils';\n\n@CSSComponent('datepicker__control')\n@Directive({\n standalone: true,\n selector: 'input[odxDatepickerControl]',\n host: {\n '[attr.readonly]': 'readonlyController?.readonly || null',\n '[attr.placeholder]': 'placeholder',\n },\n providers: [ReadonlyController.connect(), provideNgxMask(), NgxMaskPipe],\n hostDirectives: [WithTabIndex],\n})\nexport class DatepickerInputControlDirective extends InputControlDirective {\n private readonly maskConfig: Partial<IConfig> = { validation: false, leadZeroDateTime: true };\n\n protected readonly readonlyController = ReadonlyController.inject();\n\n protected readonly config = injectDatepickerConfig();\n\n protected readonly inputMask = getDatepickerInputMask(this.config);\n\n protected readonly ngxMaskPipe = inject(NgxMaskPipe);\n\n @Output()\n public focused = new EventEmitter<FocusEvent>();\n\n public override valueChange$ = fromEvent(this.element.nativeElement, 'input').pipe(\n distinctUntilChanged(),\n tap(() => this.applyMask()),\n map(() => this.nativeElementValue),\n );\n\n public applyMask(): void {\n this.nativeElementValue = this.ngxMaskPipe.transform(this.nativeElementValue, this.inputMask, this.maskConfig);\n }\n\n public get valueAsDate(): Date | null {\n return getDatepickerInputValueAsDate(this.config, this.nativeElementValue);\n }\n\n public get placeholder(): string {\n return getDatepickerInputFormat(this.config).toUpperCase();\n }\n\n @HostListener('focus', ['$event'])\n protected handleFocus(event: FocusEvent): void {\n this.focused.emit(event);\n }\n}\n","import { A11yModule } from '@angular/cdk/a11y';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n HostListener,\n inject,\n Input,\n Output,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { ClickOutsideDirective, detectControllerChanges } from '@odx/angular';\nimport { CustomFormControl } from '@odx/angular/cdk/custom-form-control';\nimport { ActionGroupComponent } from '@odx/angular/components/action-group';\nimport { ButtonComponent } from '@odx/angular/components/button';\nimport { CalendarComponent, DateFilter } from '@odx/angular/components/calendar';\nimport { DropdownDirective, DropdownModule } from '@odx/angular/components/dropdown';\nimport { IconComponent } from '@odx/angular/components/icon';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { deferFn, injectElement, Position, untilDestroyed } from '@odx/angular/utils';\nimport { format, startOfDay } from 'date-fns';\nimport { injectDatepickerConfig } from './datepicker.config';\nimport { DatepickerInputControlDirective } from './directives';\nimport { getDatepickerInputFormat } from './utils';\n\n@CSSComponent('datepicker')\n@Component({\n selector: 'odx-datepicker',\n standalone: true,\n imports: [A11yModule, ActionGroupComponent, ButtonComponent, CalendarComponent, DropdownModule, IconComponent],\n templateUrl: './datepicker.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n hostDirectives: [ClickOutsideDirective],\n})\nexport class DatepickerComponent extends CustomFormControl<Date | null> implements AfterViewInit {\n protected readonly takeUntilDestroyed = untilDestroyed();\n\n protected readonly clickOutsideDirective = inject(ClickOutsideDirective, { host: true });\n\n protected readonly config = injectDatepickerConfig();\n\n public readonly element = injectElement();\n\n public get isOpen(): boolean {\n return !!this.dropdown.isOpen;\n }\n\n @Input()\n public filterFn: DateFilter | 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 dropdownPosition: Position = 'bottom';\n\n @Output()\n public selectedChange = new EventEmitter<Date>();\n\n @ViewChild(DropdownDirective)\n public dropdown!: DropdownDirective;\n\n @ViewChild('dropdownTrigger', { read: ElementRef, static: true })\n public dropdownTriggerElement!: ElementRef<HTMLElement>;\n\n @ContentChild(DatepickerInputControlDirective)\n public dateField?: DatepickerInputControlDirective;\n\n constructor() {\n super(null);\n detectControllerChanges(this).subscribe();\n }\n\n public ngAfterViewInit(): void {\n this.handleDateFieldChanges();\n this.handleDateFieldFocus();\n this.handleClickOutside();\n\n deferFn(() => {\n if (!this.value) return;\n this.updateValue(startOfDay(this.value));\n this.updateDateField(this.value);\n });\n }\n\n public selectDate(value: Date | null): void {\n if (!value) return;\n\n this.updateValue(value);\n this.updateDateField(value);\n\n this.selectedChange.emit(value);\n\n this.closeDropdown();\n }\n\n protected handleDateFieldChanges(): void {\n this.dateField?.valueChange$.pipe(this.takeUntilDestroyed()).subscribe(() => this.updateValue(this.dateField?.valueAsDate ?? null));\n }\n\n protected handleDateFieldFocus(): void {\n this.dateField?.focused.pipe(this.takeUntilDestroyed()).subscribe(() => {\n if (this.isOpen) {\n this.closeDropdown();\n }\n });\n }\n\n protected handleClickOutside(): void {\n this.clickOutsideDirective.odxClickOutside.pipe(this.takeUntilDestroyed()).subscribe(() => this.clickOutside());\n }\n\n protected closeDropdown(): void {\n this.dropdown.close();\n }\n\n protected clickOutside(): void {\n this.closeDropdown();\n }\n\n @HostListener('keydown.alt.ArrowDown', ['$event'])\n protected openDatepicker(event: KeyboardEvent) {\n event.stopPropagation();\n\n if (this.isReadonly || this.isDisabled) return;\n\n this.dropdown.open(event);\n }\n\n private updateDateField(date: Date): void {\n if (!this.dateField) return;\n\n const dateFormat = getDatepickerInputFormat(this.config);\n this.dateField.nativeElementValue = format(date, dateFormat);\n }\n}\n","<ng-content select=\"input[odxDatepickerControl]\"></ng-content>\n\n<odx-action-group class=\"odx-no-margin\">\n <button\n #dropdownTrigger\n class=\"odx-datepicker__trigger\"\n odxButton\n size=\"small\"\n variant=\"ghost\"\n [odxDropdown]=\"calendarOverlay\"\n [odxDropdownOptions]=\"{ position: dropdownPosition }\"\n [odxDropdownTriggerElement]=\"dropdownTriggerElement.nativeElement\"\n [odxDropdownHost]=\"null\"\n [odxDropdownReferenceElement]=\"element.nativeElement\"\n [odxDropdownClickOutsideActive]=\"false\"\n >\n <odx-icon name=\"calendar\"></odx-icon>\n </button>\n</odx-action-group>\n\n<ng-template #calendarOverlay>\n <odx-calendar\n [selectedDate]=\"value\"\n [filterFn]=\"filterFn\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n cdkTrapFocus\n cdkTrapFocusAutoCapture\n (selectedDateChange)=\"selectDate($event)\"\n ></odx-calendar>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { CoreModule } from '@odx/angular';\nimport { DatepickerComponent } from './datepicker.component';\nimport { DatepickerInputControlDirective } from './directives';\n\nconst modules = [DatepickerComponent, DatepickerInputControlDirective];\n\n@NgModule({\n imports: modules,\n exports: [CoreModule, ...modules],\n})\nexport class DatepickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|