{"version":3,"file":"taiga-ui-kit-components-calendar-month.mjs","sources":["../../../projects/kit/components/calendar-month/calendar-month.options.ts","../../../projects/kit/components/calendar-month/calendar-month.component.ts","../../../projects/kit/components/calendar-month/calendar-month.template.html","../../../projects/kit/components/calendar-month/taiga-ui-kit-components-calendar-month.ts"],"sourcesContent":["import {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\n\nexport interface TuiCalendarMonthOptions {\n    rangeMode: boolean;\n}\n\nexport const TUI_CALENDAR_MONTH_DEFAULT_OPTIONS: TuiCalendarMonthOptions = {\n    rangeMode: false,\n};\n\nexport const [TUI_CALENDAR_MONTH_OPTIONS, tuiCalendarMonthOptionsProvider] =\n    tuiCreateOptions(TUI_CALENDAR_MONTH_DEFAULT_OPTIONS);\n","import {NgIf} from '@angular/common';\nimport {\n    ChangeDetectionStrategy,\n    Component,\n    computed,\n    EventEmitter,\n    inject,\n    Input,\n    Output,\n    signal,\n} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {TUI_FALSE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {\n    TUI_FIRST_DAY,\n    TUI_LAST_DAY,\n    TuiDay,\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 {tuiNullableSame, tuiPure} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiCalendarYear} from '@taiga-ui/core/components/calendar';\nimport {TuiLink} from '@taiga-ui/core/components/link';\nimport {TuiScrollbar} from '@taiga-ui/core/components/scrollbar';\nimport {TuiSpinButton} from '@taiga-ui/core/components/spin-button';\nimport {tuiAsAuxiliary} from '@taiga-ui/core/tokens';\nimport {TUI_CALENDAR_MONTHS} from '@taiga-ui/kit/tokens';\n\nimport {TUI_CALENDAR_MONTH_OPTIONS} from './calendar-month.options';\n\nconst TODAY = TuiDay.currentLocal();\n\n@Component({\n    standalone: true,\n    selector: 'tui-calendar-month',\n    imports: [\n        NgIf,\n        TuiCalendarYear,\n        TuiHovered,\n        TuiLet,\n        TuiLink,\n        TuiRepeatTimes,\n        TuiScrollbar,\n        TuiSpinButton,\n    ],\n    templateUrl: './calendar-month.template.html',\n    styleUrls: ['./calendar-month.style.less'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    providers: [tuiAsAuxiliary(TuiCalendarMonth)],\n    host: {\n        '[class._picking]': 'isRangePicking()',\n    },\n})\nexport class TuiCalendarMonth {\n    protected isYearPickerShown = false;\n    protected readonly months = toSignal(inject(TUI_CALENDAR_MONTHS));\n    protected readonly isRangePicking = computed(\n        (x = this.value()) =>\n            (!this.options.rangeMode && x instanceof TuiMonthRange && x.isSingleMonth) || // TODO(v5): remove this condition\n            (this.options.rangeMode && x instanceof TuiMonth),\n    );\n\n    @Input()\n    public year: TuiYear = TODAY;\n\n    @Input()\n    public disabledItemHandler: TuiBooleanHandler<TuiMonth> = TUI_FALSE_HANDLER;\n\n    @Input()\n    public minLength: number | null = null;\n\n    @Input()\n    public maxLength: number | null = null;\n\n    @Output()\n    public readonly monthClick = new EventEmitter<TuiMonth>();\n\n    @Output()\n    public readonly hoveredItemChange = new EventEmitter<TuiMonth | null>();\n\n    @Output()\n    public readonly yearChange = new EventEmitter<TuiYear>();\n\n    public options = inject(TUI_CALENDAR_MONTH_OPTIONS);\n    public readonly min = signal<TuiMonth>(TUI_FIRST_DAY);\n    public readonly max = signal<TuiMonth>(TUI_LAST_DAY);\n    public readonly value = signal<TuiMonth | TuiMonthRange | null>(null);\n    public hoveredItem: TuiMonth | null = null;\n\n    // TODO(v5): use signal inputs\n    @Input({alias: 'min', transform: (x: TuiMonth | null) => x ?? TUI_FIRST_DAY})\n    public set minSetter(x: TuiMonth) {\n        this.min.set(x);\n    }\n\n    // TODO(v5): use signal inputs\n    @Input({alias: 'max', transform: (x: TuiMonth | null) => x ?? TUI_LAST_DAY})\n    public set maxSetter(x: TuiMonth) {\n        this.max.set(x);\n    }\n\n    // TODO(v5): use signal inputs\n    @Input('value')\n    public set valueSetter(x: TuiMonth | TuiMonthRange | null) {\n        this.value.set(x);\n    }\n\n    public onNextYear(): void {\n        this.updateActiveYear(this.year.append({year: 1}));\n    }\n\n    public onPreviousYear(): void {\n        this.updateActiveYear(this.year.append({year: -1}));\n    }\n\n    public getItemRange(item: TuiMonth): 'active' | 'end' | 'middle' | 'start' | null {\n        const value = this.value();\n        const {hoveredItem} = this;\n\n        if (!value) {\n            return null;\n        }\n\n        if (!this.options.rangeMode && value instanceof TuiMonth) {\n            return value?.monthSame(item) ? 'active' : null;\n        }\n\n        const selectedRange =\n            value instanceof TuiMonth ? new TuiMonthRange(value, value) : value;\n        const months = item.month + item.year * 12;\n        const hovered = hoveredItem ? hoveredItem.month + hoveredItem.year * 12 : null;\n        const from = selectedRange.from.month + selectedRange.from.year * 12;\n        const to = selectedRange.to.month + selectedRange.to.year * 12;\n        const picking = this.isRangePicking() ? hovered : null;\n        const min = Math.min(from, to, picking ?? from);\n        const max = Math.max(from, to, picking ?? from);\n\n        if (min === max && min === months) {\n            return 'active';\n        }\n\n        if (min === months) {\n            return 'start';\n        }\n\n        if (max === months) {\n            return 'end';\n        }\n\n        return min < months && months < max ? 'middle' : null;\n    }\n\n    protected get disabledItemHandlerWithMinMax(): TuiBooleanHandler<TuiMonth> {\n        return this.calculateDisabledItemHandlerWithMinMax(\n            this.disabledItemHandler,\n            this.value(),\n            this.isRangePicking(),\n            this.min(),\n            this.max(),\n            this.minLength,\n            this.maxLength,\n        );\n    }\n\n    protected getTuiMonth(monthNumber: number, yearNumber: number): TuiMonth {\n        return new TuiMonth(yearNumber, monthNumber);\n    }\n\n    protected isItemToday(item: TuiMonth): boolean {\n        return TODAY.monthSame(item);\n    }\n\n    protected onPickerYearClick(year: number): void {\n        this.isYearPickerShown = false;\n\n        if (this.year.year !== year) {\n            this.updateActiveYear(new TuiYear(year));\n        }\n    }\n\n    protected onItemClick(month: TuiMonth): void {\n        if (!this.disabledItemHandlerWithMinMax(month)) {\n            this.monthClick.emit(month);\n        }\n    }\n\n    protected onYearClick(): void {\n        this.isYearPickerShown = true;\n    }\n\n    protected onItemHovered(hovered: boolean, item: TuiMonth): void {\n        this.updateHoveredItem(hovered ? item : null);\n    }\n\n    // eslint-disable-next-line @typescript-eslint/max-params,max-params\n    @tuiPure\n    private calculateDisabledItemHandlerWithMinMax(\n        disabledItemHandler: TuiBooleanHandler<TuiMonth>,\n        value: TuiMonth | TuiMonthRange | null,\n        isRangePicking: boolean,\n        min: TuiMonth,\n        max: TuiMonth,\n        minLength: number | null,\n        maxLength: number | null,\n    ): TuiBooleanHandler<TuiMonth> {\n        return (item) => {\n            const selectedMonth = value instanceof TuiMonthRange ? value.from : value;\n            const delta =\n                isRangePicking && selectedMonth\n                    ? Math.abs(\n                          item.year * 12 +\n                              item.month -\n                              selectedMonth.year * 12 -\n                              selectedMonth.month,\n                      )\n                    : 0;\n\n            const tooLong = delta && maxLength && delta > maxLength;\n            const tooShort = delta && minLength && delta < minLength;\n\n            return (\n                tooLong ||\n                tooShort ||\n                item.monthBefore(min) ||\n                item.monthAfter(max) ||\n                disabledItemHandler(item)\n            );\n        };\n    }\n\n    private updateHoveredItem(month: TuiMonth | null): void {\n        if (tuiNullableSame(this.hoveredItem, month, (a, b) => a.monthSame(b))) {\n            return;\n        }\n\n        this.hoveredItem = month;\n        this.hoveredItemChange.emit(month);\n    }\n\n    private updateActiveYear(year: TuiYear): void {\n        this.year = year;\n        this.yearChange.emit(year);\n    }\n}\n","<tui-scrollbar\n    *ngIf=\"isYearPickerShown; else monthSelect\"\n    class=\"t-scrollbar\"\n>\n    <tui-calendar-year\n        [initialItem]=\"year.year\"\n        [max]=\"max().year\"\n        [min]=\"min().year\"\n        [rangeMode]=\"options.rangeMode\"\n        [value]=\"value()\"\n        (yearClick)=\"onPickerYearClick($event)\"\n    />\n</tui-scrollbar>\n<ng-template #monthSelect>\n    <tui-spin-button\n        class=\"t-spin\"\n        [focusable]=\"false\"\n        [leftDisabled]=\"year.yearSameOrBefore(min())\"\n        [rightDisabled]=\"year.yearSameOrAfter(max())\"\n        (leftClick)=\"onPreviousYear()\"\n        (rightClick)=\"onNextYear()\"\n    >\n        <button\n            automation-id=\"tui-calendar-month__active-year\"\n            tabIndex=\"-1\"\n            tuiLink\n            type=\"button\"\n            (click)=\"onYearClick()\"\n        >\n            {{ year.formattedYear }}\n        </button>\n    </tui-spin-button>\n    <div\n        *tuiRepeatTimes=\"let row of 3\"\n        class=\"t-row\"\n    >\n        <ng-container *tuiRepeatTimes=\"let column of 4\">\n            <div\n                *tuiLet=\"getTuiMonth(row * 4 + column, year.year) as item\"\n                class=\"t-cell\"\n                [attr.data-range]=\"getItemRange(item)\"\n                [class.t-cell_disabled]=\"disabledItemHandlerWithMinMax(item)\"\n                [class.t-cell_today]=\"isItemToday(item)\"\n                (click)=\"onItemClick(item)\"\n                (tuiHoveredChange)=\"onItemHovered($event, item)\"\n            >\n                {{ months()?.[row * 4 + column] }}\n            </div>\n        </ng-container>\n    </div>\n</ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}