{"version":3,"file":"taiga-ui-kit-components-input-date-multi.mjs","sources":["../../../projects/kit/components/input-date-multi/input-date-multi.directive.ts","../../../projects/kit/components/input-date-multi/input-date-multi.ts","../../../projects/kit/components/input-date-multi/taiga-ui-kit-components-input-date-multi.ts"],"sourcesContent":["import {computed, Directive, effect, inject, Input, signal} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {MaskitoDirective} from '@maskito/angular';\nimport {maskitoDateOptionsGenerator} from '@maskito/kit';\nimport {tuiAsControl} from '@taiga-ui/cdk/classes';\nimport {TUI_ALLOW_SIGNAL_WRITES} from '@taiga-ui/cdk/constants';\nimport {DATE_FILLER_LENGTH, TuiDay, TuiMonth} from '@taiga-ui/cdk/date-time';\nimport {TuiNativeValidator} from '@taiga-ui/cdk/directives/native-validator';\nimport {tuiFallbackValueProvider} from '@taiga-ui/cdk/tokens';\nimport {tuiArrayToggle} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiCalendar} from '@taiga-ui/core/components/calendar';\nimport {\n    tuiAsTextfieldAccessor,\n    tuiInjectAuxiliary,\n    TuiTextfieldBase,\n    tuiTextfieldIconBinding,\n} from '@taiga-ui/core/components/textfield';\nimport {TuiDropdownAuto} from '@taiga-ui/core/directives/dropdown';\nimport {TUI_DATE_FORMAT, TUI_DEFAULT_DATE_FORMAT} from '@taiga-ui/core/tokens';\nimport {TuiInputChipBaseDirective} from '@taiga-ui/kit/components/input-chip';\nimport {\n    TUI_DATE_ADAPTER,\n    TUI_INPUT_DATE_OPTIONS_NEW,\n    tuiWithDateFiller,\n} from '@taiga-ui/kit/components/input-date';\nimport {tuiMaskito} from '@taiga-ui/kit/utils';\n\n@Directive({\n    standalone: true,\n    selector: 'input[tuiInputDateMulti]',\n    providers: [\n        tuiAsControl(TuiInputDateMultiDirective),\n        tuiFallbackValueProvider([]),\n        tuiAsTextfieldAccessor(TuiInputDateMultiDirective),\n    ],\n    hostDirectives: [\n        TuiNativeValidator,\n        TuiDropdownAuto,\n        MaskitoDirective,\n        {\n            directive: TuiTextfieldBase,\n            inputs: ['invalid', 'focused', 'readOnly', 'state'],\n        },\n    ],\n    host: {\n        '(keydown.enter.prevent)': '0',\n    },\n})\nexport class TuiInputDateMultiDirective extends TuiInputChipBaseDirective<TuiDay> {\n    private readonly dateOptions = inject(TUI_INPUT_DATE_OPTIONS_NEW);\n\n    protected readonly icon = tuiTextfieldIconBinding(TUI_INPUT_DATE_OPTIONS_NEW);\n    protected readonly filler = tuiWithDateFiller();\n    protected readonly stringify = this.handlers.stringify.set((item) =>\n        item.toString(this.format().mode, this.format().separator),\n    );\n\n    protected readonly mask = tuiMaskito(\n        computed(() =>\n            maskitoDateOptionsGenerator({\n                separator: this.format().separator,\n                mode: TUI_DATE_ADAPTER[this.format().mode],\n                min: this.min().toLocalNativeDate(),\n                max: this.max().toLocalNativeDate(),\n            }),\n        ),\n    );\n\n    protected readonly format = toSignal(inject(TUI_DATE_FORMAT), {\n        initialValue: TUI_DEFAULT_DATE_FORMAT,\n    });\n\n    protected readonly calendarIn = effect(() => {\n        if (this.calendar()) {\n            this.processCalendar(this.calendar()!);\n        }\n    }, TUI_ALLOW_SIGNAL_WRITES);\n\n    protected readonly calendarOut = effect((onCleanup) => {\n        const subscription = this.calendar()?.dayClick.subscribe((day) => {\n            this.updateValue(day);\n        });\n\n        onCleanup(() => subscription?.unsubscribe());\n    });\n\n    public readonly min = signal(this.dateOptions.min);\n    public readonly max = signal(this.dateOptions.max);\n\n    public readonly calendar = tuiInjectAuxiliary<TuiCalendar>(\n        (x) => x instanceof TuiCalendar,\n    );\n\n    @Input('min')\n    public set minSetter(min: TuiDay | null) {\n        this.min.set(min || this.dateOptions.min);\n    }\n\n    @Input('max')\n    public set maxSetter(max: TuiDay | null) {\n        this.max.set(max || this.dateOptions.max);\n    }\n\n    protected processCalendar(calendar: TuiCalendar): void {\n        calendar.value = this.value();\n        calendar.min = this.min();\n        calendar.max = this.max();\n        calendar.month =\n            this.value()?.[this.value().length - 1] ?? TuiMonth.currentLocal();\n    }\n\n    protected onClick(): void {\n        this.open.update((open) => !open);\n    }\n\n    protected onValueChange(value: string): void {\n        const newValue =\n            value.length === DATE_FILLER_LENGTH\n                ? TuiDay.normalizeParse(value, this.format().mode)\n                : null;\n\n        if (newValue && !this.handlers.disabledItemHandler()(newValue)) {\n            this.updateValue(newValue);\n        }\n    }\n\n    protected override onEnter(): void {\n        this.onValueChange(this.textfield.value().trim());\n        this.scrollTo();\n    }\n\n    private updateValue(day: TuiDay): void {\n        this.setValue(tuiArrayToggle(this.value(), day, (a, b) => a.daySame(b)));\n    }\n}\n","import {TuiCalendar} from '@taiga-ui/core/components/calendar';\nimport {TuiInputChipComponent} from '@taiga-ui/kit/components/input-chip';\n\nimport {TuiInputDateMultiDirective} from './input-date-multi.directive';\n\nexport const TuiInputDateMulti = [\n    TuiInputDateMultiDirective,\n    TuiCalendar,\n    TuiInputChipComponent,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}