{"version":3,"file":"taiga-ui-core-components-calendar.mjs","sources":["../../../projects/core/components/calendar/calendar-sheet.options.ts","../../../projects/core/components/calendar/calendar-sheet.component.ts","../../../projects/core/components/calendar/calendar-sheet.template.html","../../../projects/core/components/calendar/calendar-spin.component.ts","../../../projects/core/components/calendar/calendar-spin.template.html","../../../projects/core/components/calendar/calendar-year.component.ts","../../../projects/core/components/calendar/calendar-year.template.html","../../../projects/core/components/calendar/calendar.component.ts","../../../projects/core/components/calendar/calendar.template.html","../../../projects/core/components/calendar/taiga-ui-core-components-calendar.ts"],"sourcesContent":["import {InjectionToken, type Provider} from '@angular/core';\nimport {tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\n\nexport interface TuiCalendarSheetOptions {\n    readonly rangeMode: boolean;\n}\n\nexport const TUI_CALENDAR_SHEET_DEFAULT_OPTIONS: TuiCalendarSheetOptions = {\n    rangeMode: false,\n};\n\nexport const TUI_CALENDAR_SHEET_OPTIONS = new InjectionToken(\n    ngDevMode ? 'TUI_CALENDAR_SHEET_OPTIONS' : '',\n    {\n        factory: () => TUI_CALENDAR_SHEET_DEFAULT_OPTIONS,\n    },\n);\n\nexport function tuiCalendarSheetOptionsProvider(\n    options: Partial<TuiCalendarSheetOptions>,\n): Provider {\n    return tuiProvideOptions(\n        TUI_CALENDAR_SHEET_OPTIONS,\n        options,\n        TUI_CALENDAR_SHEET_DEFAULT_OPTIONS,\n    );\n}\n","import {AsyncPipe, NgFor, NgIf} from '@angular/common';\nimport {\n    ChangeDetectionStrategy,\n    Component,\n    EventEmitter,\n    inject,\n    Input,\n    Output,\n} from '@angular/core';\nimport {TUI_FALSE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {TuiDay, TuiDayRange, TuiMonth} from '@taiga-ui/cdk/date-time';\nimport {TuiHovered} from '@taiga-ui/cdk/directives/hovered';\nimport {TuiLet} from '@taiga-ui/cdk/directives/let';\nimport {TuiRepeatTimes} from '@taiga-ui/cdk/directives/repeat-times';\nimport {TuiMapperPipe} from '@taiga-ui/cdk/pipes/mapper';\nimport {type TuiBooleanHandler, type TuiHandler} from '@taiga-ui/cdk/types';\nimport {tuiNullableSame, tuiPure} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiCalendarSheetPipe, TuiOrderWeekDaysPipe} from '@taiga-ui/core/pipes';\nimport {TUI_DAY_TYPE_HANDLER, TUI_SHORT_WEEK_DAYS} from '@taiga-ui/core/tokens';\n\nimport {TUI_CALENDAR_SHEET_OPTIONS} from './calendar-sheet.options';\n\nexport type TuiMarkerHandler = TuiHandler<TuiDay, [] | [string, string] | [string]>;\n\n@Component({\n    standalone: true,\n    selector: 'tui-calendar-sheet',\n    imports: [\n        AsyncPipe,\n        NgFor,\n        NgIf,\n        TuiCalendarSheetPipe,\n        TuiHovered,\n        TuiLet,\n        TuiMapperPipe,\n        TuiOrderWeekDaysPipe,\n        TuiRepeatTimes,\n    ],\n    templateUrl: './calendar-sheet.template.html',\n    styleUrls: ['./calendar-sheet.style.less'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    host: {\n        '[class._picking]': 'isRangePicking',\n    },\n})\nexport class TuiCalendarSheet {\n    private readonly options = inject(TUI_CALENDAR_SHEET_OPTIONS);\n    private readonly today = TuiDay.currentLocal();\n\n    protected readonly unorderedWeekDays$ = inject(TUI_SHORT_WEEK_DAYS);\n    protected readonly dayTypeHandler = inject(TUI_DAY_TYPE_HANDLER);\n\n    @Input()\n    public month: TuiMonth = TuiMonth.currentLocal();\n\n    @Input()\n    public disabledItemHandler: TuiBooleanHandler<TuiDay> = TUI_FALSE_HANDLER;\n\n    @Input()\n    public markerHandler: TuiMarkerHandler | null = null;\n\n    @Input()\n    public value: TuiDay | TuiDayRange | readonly TuiDay[] | null = null;\n\n    @Input()\n    public hoveredItem: TuiDay | null = null;\n\n    @Input()\n    public showAdjacent = true;\n\n    /**\n     * @deprecated use static DI options instead\n     * ```\n     * tuiCalendarSheetOptionsProvider({rangeMode: true})\n     * ```\n     * TODO(v5): delete it\n     */\n    @Input()\n    public single = true;\n\n    @Output()\n    public readonly hoveredItemChange = new EventEmitter<TuiDay | null>();\n\n    @Output()\n    public readonly dayClick = new EventEmitter<TuiDay>();\n\n    /**\n     * @deprecated TODO(v5): delete it. It is used nowhere except unit tests\n     */\n    public itemIsInterval(day: TuiDay): boolean {\n        const {value, hoveredItem} = this;\n\n        if (!(value instanceof TuiDayRange)) {\n            return false;\n        }\n\n        if (!value.isSingleDay) {\n            return value.from.daySameOrBefore(day) && value.to.dayAfter(day);\n        }\n\n        if (hoveredItem === null) {\n            return false;\n        }\n\n        const range = TuiDayRange.sort(value.from, hoveredItem);\n\n        return range.from.daySameOrBefore(day) && range.to.dayAfter(day);\n    }\n\n    public onItemHovered(item: TuiDay | false): void {\n        this.updateHoveredItem(item || null);\n    }\n\n    public getItemRange(item: TuiDay): 'active' | 'end' | 'middle' | 'start' | null {\n        const {value, hoveredItem} = this;\n\n        if (!value) {\n            return null;\n        }\n\n        if (value instanceof TuiDay && !this.computedRangeMode) {\n            return value.daySame(item) ? 'active' : null;\n        }\n\n        if (value instanceof TuiDayRange && value.isSingleDay) {\n            return value.from.daySame(item) ? 'active' : null;\n        }\n\n        if (!(value instanceof TuiDay) && !(value instanceof TuiDayRange)) {\n            return value.find((day) => day.daySame(item)) ? 'active' : null;\n        }\n\n        const range = this.getRange(value, hoveredItem);\n\n        if (range.isSingleDay && range.from.daySame(item)) {\n            return 'active';\n        }\n\n        if (range.from.daySame(item)) {\n            return 'start';\n        }\n\n        if (range.to.daySame(item)) {\n            return 'end';\n        }\n\n        return range.from.dayBefore(item) && range.to.dayAfter(item) ? 'middle' : null;\n    }\n\n    protected get computedRangeMode(): boolean {\n        return !this.single || this.options.rangeMode;\n    }\n\n    protected get isRangePicking(): boolean {\n        return this.computedRangeMode\n            ? this.value instanceof TuiDay\n            : /**\n               * Only for backward compatibility!\n               * TODO(v5): replace with `this.options.rangeMode && this.value instanceof TuiDay`\n               */\n              this.value instanceof TuiDayRange && this.value.isSingleDay;\n    }\n\n    protected readonly toMarkers = (\n        day: TuiDay,\n        today: boolean,\n        range: string | null,\n        markerHandler: TuiMarkerHandler | null,\n    ): [string, string] | [string] | null => {\n        if (today || ['active', 'end', 'start'].includes(range || '')) {\n            return null;\n        }\n\n        const markers = markerHandler?.(day);\n\n        return markers?.length ? markers : null;\n    };\n\n    protected itemIsToday(item: TuiDay): boolean {\n        return this.today.daySame(item);\n    }\n\n    protected itemIsUnavailable(item: TuiDay): boolean {\n        return !this.month.monthSame(item);\n    }\n\n    protected onItemClick(item: TuiDay): void {\n        this.dayClick.emit(item);\n    }\n\n    @tuiPure\n    private getRange(\n        value: TuiDay | TuiDayRange,\n        hoveredItem: TuiDay | null,\n    ): TuiDayRange {\n        if (value instanceof TuiDay) {\n            return TuiDayRange.sort(value, hoveredItem ?? value);\n        }\n\n        return value.isSingleDay\n            ? TuiDayRange.sort(value.from, hoveredItem ?? value.to)\n            : value;\n    }\n\n    private updateHoveredItem(day: TuiDay | null): void {\n        if (tuiNullableSame(this.hoveredItem, day, (a, b) => a.daySame(b))) {\n            return;\n        }\n\n        this.hoveredItem = day;\n        this.hoveredItemChange.emit(day);\n    }\n}\n","<div class=\"t-row t-row_weekday\">\n    <div\n        *ngFor=\"let day of unorderedWeekDays$ | tuiOrderWeekDays | async\"\n        class=\"t-cell\"\n        [textContent]=\"day\"\n    ></div>\n</div>\n<div *tuiLet=\"month | tuiCalendarSheet: true as sheet\">\n    <div\n        *tuiRepeatTimes=\"let rowIndex of sheet.length\"\n        automation-id=\"tui-calendar-sheet__row\"\n        class=\"t-row\"\n    >\n        <ng-container *tuiRepeatTimes=\"let colIndex of sheet[rowIndex]?.length || 0\">\n            <ng-container *tuiLet=\"sheet[rowIndex]?.[colIndex] as item\">\n                <div\n                    *ngIf=\"item && (!itemIsUnavailable(item) || showAdjacent)\"\n                    automation-id=\"tui-calendar-sheet__cell\"\n                    class=\"t-cell\"\n                    [attr.data-range]=\"getItemRange(item)\"\n                    [attr.data-type]=\"item | tuiMapper: dayTypeHandler\"\n                    [class.t-cell_disabled]=\"disabledItemHandler(item)\"\n                    [class.t-cell_today]=\"itemIsToday(item)\"\n                    [class.t-cell_unavailable]=\"itemIsUnavailable(item)\"\n                    (click)=\"onItemClick(item)\"\n                    (tuiHoveredChange)=\"onItemHovered($event && item)\"\n                >\n                    {{ item.day }}\n                    <div\n                        *ngIf=\"\n                            item\n                                | tuiMapper\n                                    : toMarkers\n                                    : itemIsToday(item)\n                                    : getItemRange(item)\n                                    : markerHandler as markers\n                        \"\n                        class=\"t-dots\"\n                    >\n                        <div\n                            class=\"t-dot\"\n                            [style.background]=\"markers?.[0]\"\n                        ></div>\n                        <div\n                            *ngIf=\"markers.length > 1\"\n                            class=\"t-dot\"\n                            [style.background]=\"markers?.[1] || ''\"\n                        ></div>\n                    </div>\n                </div>\n            </ng-container>\n        </ng-container>\n    </div>\n</div>\n","import {AsyncPipe, NgIf} from '@angular/common';\nimport {\n    ChangeDetectionStrategy,\n    Component,\n    EventEmitter,\n    Input,\n    Output,\n} from '@angular/core';\nimport {\n    TUI_FIRST_DAY,\n    TUI_LAST_DAY,\n    TuiMonth,\n    type TuiMonthLike,\n    type TuiYear,\n} from '@taiga-ui/cdk/date-time';\nimport {TuiLink} from '@taiga-ui/core/components/link';\nimport {TuiSpinButton} from '@taiga-ui/core/components/spin-button';\nimport {TuiMonthPipe} from '@taiga-ui/core/pipes';\n\n@Component({\n    standalone: true,\n    selector: 'tui-calendar-spin',\n    imports: [AsyncPipe, NgIf, TuiLink, TuiMonthPipe, TuiSpinButton],\n    templateUrl: './calendar-spin.template.html',\n    styleUrls: ['./calendar-spin.style.less'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiCalendarSpin {\n    @Input()\n    public value = TuiMonth.currentLocal();\n\n    @Input()\n    public min: TuiMonth = TUI_FIRST_DAY;\n\n    @Input()\n    public max: TuiMonth = TUI_LAST_DAY;\n\n    @Output()\n    public readonly valueChange = new EventEmitter<TuiMonth>();\n\n    @Output()\n    public readonly yearClick = new EventEmitter<TuiYear>();\n\n    protected onYearClick(): void {\n        this.yearClick.next(this.value);\n    }\n\n    protected append(date: TuiMonthLike): void {\n        const value = this.value.append(date);\n\n        if (this.min.monthSameOrAfter(value)) {\n            this.updateValue(this.min);\n        } else {\n            this.updateValue(this.max.monthSameOrBefore(value) ? this.max : value);\n        }\n    }\n\n    private updateValue(value: TuiMonth): void {\n        if (this.value.monthSame(value)) {\n            return;\n        }\n\n        this.value = value;\n        this.valueChange.emit(value);\n    }\n}\n","<tui-spin-button\n    [focusable]=\"false\"\n    [leftDisabled]=\"value.monthSameOrBefore(min)\"\n    [rightDisabled]=\"value.monthSameOrAfter(max)\"\n    (leftClick)=\"append({month: -1})\"\n    (rightClick)=\"append({month: 1})\"\n>\n    {{ value | tuiMonth | async }}\n    <ng-container *ngIf=\"min.year === max.year; else button\">\n        {{ value.formattedYear }}\n    </ng-container>\n    <ng-template #button>\n        <button\n            id=\"year-btn\"\n            automation-id=\"tui-primitive-year-month-pagination__year-button\"\n            tabIndex=\"-1\"\n            tuiLink\n            type=\"button\"\n            (click)=\"onYearClick()\"\n        >\n            {{ value.formattedYear }}\n        </button>\n    </ng-template>\n</tui-spin-button>\n","import {\n    ChangeDetectionStrategy,\n    Component,\n    computed,\n    EventEmitter,\n    inject,\n    Input,\n    Output,\n    signal,\n} from '@angular/core';\nimport {\n    MAX_YEAR,\n    MIN_YEAR,\n    TuiDay,\n    type TuiDayRange,\n    TuiMonth,\n    TuiMonthRange,\n    TuiYear,\n} from '@taiga-ui/cdk/date-time';\nimport {TuiHovered} from '@taiga-ui/cdk/directives/hovered';\nimport {TuiLet} from '@taiga-ui/cdk/directives/let';\nimport {TuiRepeatTimes} from '@taiga-ui/cdk/directives/repeat-times';\nimport {type TuiBooleanHandler} from '@taiga-ui/cdk/types';\nimport {tuiIsNumber} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiScrollIntoView} from '@taiga-ui/core/components/scrollbar';\nimport {TUI_ITEMS_HANDLERS} from '@taiga-ui/core/directives';\nimport {tuiAsAuxiliary} from '@taiga-ui/core/tokens';\n\nconst LIMIT = 100;\nconst ITEMS_IN_ROW = 4;\nconst CURRENT_YEAR = TuiMonth.currentLocal().year;\n\n@Component({\n    standalone: true,\n    selector: 'tui-calendar-year',\n    imports: [TuiHovered, TuiLet, TuiRepeatTimes, TuiScrollIntoView],\n    templateUrl: './calendar-year.template.html',\n    styleUrls: ['./calendar-year.style.less'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    providers: [tuiAsAuxiliary(TuiCalendarYear)],\n    host: {\n        '[class._picking]': 'isRangePicking()',\n    },\n})\nexport class TuiCalendarYear {\n    private readonly hoveredItem = signal<number | null>(null);\n\n    protected readonly isRangePicking = computed(\n        (x = this.value()) =>\n            this.rangeMode && (x instanceof TuiDay || x instanceof TuiMonth),\n    );\n\n    @Input()\n    public rangeMode = false;\n\n    @Input()\n    public disabledItemHandler: TuiBooleanHandler<number> =\n        inject(TUI_ITEMS_HANDLERS).disabledItemHandler();\n\n    @Output()\n    public readonly yearClick = new EventEmitter<number>();\n\n    public readonly initialItem = signal<number>(CURRENT_YEAR);\n    public readonly min = signal(MIN_YEAR);\n    public readonly max = signal(MAX_YEAR);\n    public readonly value = signal<\n        TuiDayRange | TuiMonthRange | TuiYear | number | readonly TuiDay[] | null\n    >(null);\n\n    // TODO(v5): use signal inputs\n    @Input({alias: 'initialItem', transform: (x: number | null) => x ?? CURRENT_YEAR})\n    public set initialItemSetter(x: number | null) {\n        this.initialItem.set(x ?? CURRENT_YEAR);\n    }\n\n    // TODO(v5): use signal inputs\n    @Input({alias: 'min', transform: (x: number | null) => x ?? MIN_YEAR})\n    public set minSetter(x: number) {\n        this.min.set(x);\n    }\n\n    // TODO(v5): use signal inputs\n    @Input({alias: 'max', transform: (x: number | null) => x ?? MAX_YEAR})\n    public set maxSetter(x: number) {\n        this.max.set(x);\n    }\n\n    // TODO(v5): use signal inputs\n    @Input('value')\n    public set valueSetter(\n        x: TuiDayRange | TuiMonthRange | TuiYear | number | readonly TuiDay[] | null,\n    ) {\n        this.value.set(x);\n    }\n\n    public isDisabled(item: number): boolean {\n        return (\n            (this.max() && this.max() < item) ||\n            (this.min() && this.min() > item) ||\n            this.disabledItemHandler(item)\n        );\n    }\n\n    public getItemRange(item: number): 'active' | 'end' | 'middle' | 'start' | null {\n        const value = this.value();\n        const hoveredItem = this.hoveredItem();\n\n        if (value instanceof TuiYear && value.year === item) {\n            return 'active';\n        }\n\n        if (tuiIsNumber(value)) {\n            return value === item ? 'active' : null;\n        }\n\n        if (!(value instanceof TuiMonthRange) && !(value instanceof TuiYear)) {\n            return value?.find((day) => day.year === item) ? 'active' : null;\n        }\n\n        const hovered = this.isRangePicking() ? hoveredItem : null;\n        const from = 'from' in value ? value.from?.year : value.year;\n        const to = 'from' in value ? value.to.year : value.year;\n\n        const min = Math.min(from, hovered ?? to);\n        const max = Math.max(from, hovered ?? to);\n\n        if (min === max && from === to && from === item) {\n            return 'active';\n        }\n\n        if (min === item) {\n            return 'start';\n        }\n\n        if (max === item) {\n            return 'end';\n        }\n\n        return min < item && item < max ? 'middle' : null;\n    }\n\n    public onItemHovered(hovered: boolean, item: number): void {\n        this.hoveredItem.set(hovered ? item : null);\n    }\n\n    protected get rows(): number {\n        return Math.ceil((this.calculatedMax - this.calculatedMin) / ITEMS_IN_ROW);\n    }\n\n    protected scrollItemIntoView(item: number): boolean {\n        return this.initialItem() === item;\n    }\n\n    protected getItem(rowIndex: number, colIndex: number): number {\n        return rowIndex * ITEMS_IN_ROW + colIndex + this.calculatedMin;\n    }\n\n    protected itemIsToday(item: number): boolean {\n        return CURRENT_YEAR === item;\n    }\n\n    private get calculatedMin(): number {\n        const initial = this.initialItem() - LIMIT;\n        const min = this.min() ?? MIN_YEAR;\n\n        return min > initial ? min : initial;\n    }\n\n    private get calculatedMax(): number {\n        const initial = this.initialItem() + LIMIT;\n        const max = this.max() ?? MAX_YEAR;\n\n        return max < initial ? max + 1 : initial;\n    }\n}\n","<div\n    *tuiRepeatTimes=\"let rowIndex of rows\"\n    automation-id=\"tui-calendar-year__row\"\n    class=\"t-row\"\n>\n    <ng-container *tuiRepeatTimes=\"let colIndex of 4\">\n        <div\n            *tuiLet=\"getItem(rowIndex, colIndex) as item\"\n            automation-id=\"tui-calendar-year__cell\"\n            class=\"t-cell\"\n            [attr.data-range]=\"getItemRange(item)\"\n            [class.t-cell_disabled]=\"isDisabled(item)\"\n            [class.t-cell_today]=\"itemIsToday(item)\"\n            [tuiScrollIntoView]=\"scrollItemIntoView(item)\"\n            (click)=\"yearClick.emit(item)\"\n            (tuiHoveredChange)=\"onItemHovered($event, item)\"\n        >\n            {{ item }}\n        </div>\n    </ng-container>\n</div>\n","import {NgIf} from '@angular/common';\nimport {\n    ChangeDetectionStrategy,\n    ChangeDetectorRef,\n    Component,\n    EventEmitter,\n    inject,\n    Input,\n    Output,\n} from '@angular/core';\nimport {\n    TUI_FIRST_DAY,\n    TUI_LAST_DAY,\n    TUI_LAST_DISPLAYED_DAY,\n    TuiDay,\n    type TuiDayRange,\n    TuiMonth,\n} from '@taiga-ui/cdk/date-time';\nimport {TuiMapperPipe} from '@taiga-ui/cdk/pipes/mapper';\nimport {type TuiBooleanHandler, type TuiMapper} from '@taiga-ui/cdk/types';\nimport {tuiNullableSame} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiScrollbar} from '@taiga-ui/core/components/scrollbar';\nimport {TUI_ITEMS_HANDLERS} from '@taiga-ui/core/directives';\nimport {tuiAsAuxiliary} from '@taiga-ui/core/tokens';\nimport {Subject} from 'rxjs';\n\nimport {TuiCalendarSheet, type TuiMarkerHandler} from './calendar-sheet.component';\nimport {TUI_CALENDAR_SHEET_OPTIONS} from './calendar-sheet.options';\nimport {TuiCalendarSpin} from './calendar-spin.component';\nimport {TuiCalendarYear} from './calendar-year.component';\n\n@Component({\n    standalone: true,\n    selector: 'tui-calendar',\n    imports: [\n        NgIf,\n        TuiCalendarSheet,\n        TuiCalendarSpin,\n        TuiCalendarYear,\n        TuiMapperPipe,\n        TuiScrollbar,\n    ],\n    templateUrl: './calendar.template.html',\n    styleUrls: ['./calendar.style.less'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    providers: [tuiAsAuxiliary(TuiCalendar)],\n    host: {\n        '(pointerdown.prevent.zoneless)': '0',\n    },\n})\nexport class TuiCalendar {\n    private readonly cdr = inject(ChangeDetectorRef);\n    private day: TuiDay | TuiDayRange | readonly TuiDay[] | null = null;\n    private view: 'month' | 'year' = 'month';\n    protected readonly options = inject(TUI_CALENDAR_SHEET_OPTIONS);\n\n    @Input()\n    public month: TuiMonth = TuiMonth.currentLocal();\n\n    @Input()\n    public disabledItemHandler: TuiBooleanHandler<TuiDay> =\n        inject(TUI_ITEMS_HANDLERS).disabledItemHandler();\n\n    @Input()\n    public min: TuiDay | null = TUI_FIRST_DAY;\n\n    @Input()\n    public max: TuiDay | null = TUI_LAST_DAY;\n\n    @Input()\n    public minViewedMonth: TuiMonth | null = TUI_FIRST_DAY;\n\n    @Input()\n    public maxViewedMonth: TuiMonth | null = TUI_LAST_DAY;\n\n    @Input()\n    public hoveredItem: TuiDay | null = null;\n\n    @Input()\n    public showAdjacent = true;\n\n    @Input()\n    public markerHandler: TuiMarkerHandler | null = null;\n\n    @Output()\n    public readonly dayClick = new EventEmitter<TuiDay>();\n\n    @Output()\n    public readonly monthChange = new EventEmitter<TuiMonth>();\n\n    @Output()\n    public readonly hoveredItemChange = new EventEmitter<TuiDay | null>();\n\n    /** @deprecated for private use only until Calendars are refactored */\n    public readonly valueChange = new Subject<TuiDay>();\n\n    @Input()\n    public set value(value: TuiDay | TuiDayRange | readonly TuiDay[] | null) {\n        this.cdr.markForCheck();\n        this.day = value;\n\n        if (\n            this.showAdjacent &&\n            value instanceof TuiDay &&\n            value.daySameOrBefore(TUI_LAST_DISPLAYED_DAY)\n        ) {\n            this.month = value;\n        }\n    }\n\n    @Input()\n    public set initialView(view: 'month' | 'year') {\n        this.view = view;\n    }\n\n    public get value(): TuiDay | TuiDayRange | readonly TuiDay[] | null {\n        return this.day;\n    }\n\n    public onPaginationValueChange(month: TuiMonth): void {\n        this.updateViewedMonth(month);\n    }\n\n    public onDayClick(day: TuiDay): void {\n        this.dayClick.emit(day);\n        this.valueChange.next(day);\n    }\n\n    public onHoveredItemChange(day: TuiDay | null): void {\n        this.updateHoveredDay(day);\n    }\n\n    protected get computedMin(): TuiDay {\n        return this.min ?? TUI_FIRST_DAY;\n    }\n\n    protected get computedMax(): TuiDay {\n        return this.max ?? TUI_LAST_DAY;\n    }\n\n    protected get computedMinViewedMonth(): TuiMonth {\n        const min = this.computedMin;\n        const minViewed = this.minViewedMonth ?? TUI_FIRST_DAY;\n\n        return minViewed.monthSameOrAfter(min) ? minViewed : min;\n    }\n\n    protected get computedMaxViewedMonth(): TuiMonth {\n        const max = this.computedMax;\n        const maxViewed = this.maxViewedMonth ?? TUI_LAST_DAY;\n\n        return maxViewed.monthSameOrBefore(max) ? maxViewed : max;\n    }\n\n    protected get isInYearView(): boolean {\n        return this.view === 'year';\n    }\n\n    protected readonly disabledItemHandlerMapper: TuiMapper<\n        [TuiBooleanHandler<TuiDay>, TuiDay, TuiDay],\n        TuiBooleanHandler<TuiDay>\n    > = (disabledItemHandler, min, max) => (item) =>\n        item.dayBefore(min) || item.dayAfter(max) || disabledItemHandler(item);\n\n    protected onPaginationYearClick(): void {\n        this.view = 'year';\n    }\n\n    protected onPickerYearClick(year: number): void {\n        this.view = 'month';\n        this.updateViewedMonth(new TuiMonth(year, this.month.month));\n    }\n\n    private updateViewedMonth(month: TuiMonth): void {\n        if (this.month.monthSame(month)) {\n            return;\n        }\n\n        this.month = month;\n        this.monthChange.emit(month);\n    }\n\n    private updateHoveredDay(day: TuiDay | null): void {\n        if (tuiNullableSame(this.hoveredItem, day, (a, b) => a.daySame(b))) {\n            return;\n        }\n\n        this.hoveredItem = day;\n        this.hoveredItemChange.emit(day);\n    }\n}\n","<tui-scrollbar\n    *ngIf=\"isInYearView; else calendar\"\n    automation-id=\"tui-calendar__scrollbar\"\n    class=\"t-scrollbar\"\n>\n    <tui-calendar-year\n        automation-id=\"tui-calendar__year\"\n        [initialItem]=\"month.year\"\n        [max]=\"computedMax.year\"\n        [min]=\"computedMin.year\"\n        [rangeMode]=\"options.rangeMode\"\n        [value]=\"value\"\n        (yearClick)=\"onPickerYearClick($event)\"\n    />\n</tui-scrollbar>\n<ng-template #calendar>\n    <tui-calendar-spin\n        automation-id=\"tui-calendar__pagination\"\n        class=\"t-pagination\"\n        [max]=\"computedMaxViewedMonth\"\n        [min]=\"computedMinViewedMonth\"\n        [value]=\"month\"\n        (valueChange)=\"onPaginationValueChange($event)\"\n        (yearClick)=\"onPaginationYearClick()\"\n    />\n    <tui-calendar-sheet\n        automation-id=\"tui-calendar__calendar\"\n        [disabledItemHandler]=\"disabledItemHandler | tuiMapper: disabledItemHandlerMapper : computedMin : computedMax\"\n        [hoveredItem]=\"hoveredItem\"\n        [markerHandler]=\"markerHandler\"\n        [month]=\"month\"\n        [showAdjacent]=\"showAdjacent\"\n        [value]=\"value\"\n        (dayClick)=\"onDayClick($event)\"\n        (hoveredItemChange)=\"onHoveredItemChange($event)\"\n    />\n</ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}