{"version":3,"file":"taiga-ui-kit-components-input-time.mjs","sources":["../../../projects/kit/components/input-time/input-time.options.ts","../../../projects/kit/components/input-time/input-time.directive.ts","../../../projects/kit/components/input-time/input-time.component.ts","../../../projects/kit/components/input-time/input-time.template.html","../../../projects/kit/components/input-time/input-time.ts","../../../projects/kit/components/input-time/taiga-ui-kit-components-input-time.ts"],"sourcesContent":["import {type MaskitoTimeParams} from '@maskito/kit';\nimport {type TuiValueTransformer} from '@taiga-ui/cdk/classes';\nimport {type TuiTime} from '@taiga-ui/cdk/date-time';\nimport {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\n\nexport interface TuiInputTimeOptions extends Required<\n    Pick<MaskitoTimeParams, 'mode' | 'timeSegmentMaxValues' | 'timeSegmentMinValues'>\n> {\n    readonly icon: string;\n    readonly valueTransformer: TuiValueTransformer<TuiTime | null, any> | null;\n}\n\nexport const TUI_INPUT_TIME_DEFAULT_OPTIONS: TuiInputTimeOptions = {\n    icon: '@tui.clock',\n    mode: 'HH:MM',\n    timeSegmentMaxValues: {},\n    timeSegmentMinValues: {},\n    valueTransformer: null,\n};\n\nexport const [TUI_INPUT_TIME_OPTIONS, tuiInputTimeOptionsProvider] = tuiCreateOptions(\n    TUI_INPUT_TIME_DEFAULT_OPTIONS,\n);\n","import {computed, Directive, inject, input, untracked} from '@angular/core';\nimport {MaskitoDirective} from '@maskito/angular';\nimport {type MaskitoOptions} from '@maskito/core';\nimport {\n    maskitoAddOnFocusPlugin,\n    maskitoCaretGuard,\n    maskitoRemoveOnBlurPlugin,\n    maskitoSelectionChangeHandler,\n    type MaskitoTimeMode,\n    maskitoTimeOptionsGenerator,\n    type MaskitoTimeParams,\n} from '@maskito/kit';\nimport {WA_IS_MOBILE} from '@ng-web-apis/platform';\nimport {tuiAsControl, TuiControl, tuiValueTransformerFrom} from '@taiga-ui/cdk/classes';\nimport {TuiTime} from '@taiga-ui/cdk/date-time';\nimport {tuiDirectiveBinding} from '@taiga-ui/cdk/utils/di';\nimport {tuiAsOptionContent} from '@taiga-ui/core/components/data-list';\nimport {TuiInputDirective, TuiWithInput} from '@taiga-ui/core/components/input';\nimport {\n    tuiAsTextfieldAccessor,\n    type TuiTextfieldAccessor,\n    TuiTextfieldComponent,\n    TuiWithNativePicker,\n} from '@taiga-ui/core/components/textfield';\nimport {tuiIconEnd} from '@taiga-ui/core/directives/icons';\nimport {\n    TuiDropdownDirective,\n    tuiDropdownEnabled,\n    TuiDropdownOpen,\n} from '@taiga-ui/core/portals/dropdown';\nimport {TuiSelectOption} from '@taiga-ui/kit/components/select';\nimport {TUI_TIME_TEXTS} from '@taiga-ui/kit/tokens';\nimport {tuiMaskito} from '@taiga-ui/kit/utils';\n\nimport {TUI_INPUT_TIME_OPTIONS} from './input-time.options';\n\n@Directive({\n    selector: 'input[tuiInputTime]',\n    providers: [\n        tuiAsControl(TuiInputTimeDirective),\n        tuiAsTextfieldAccessor(TuiInputTimeDirective),\n        tuiValueTransformerFrom(TUI_INPUT_TIME_OPTIONS),\n        tuiAsOptionContent(TuiSelectOption),\n    ],\n    hostDirectives: [TuiWithInput, MaskitoDirective],\n    host: {\n        inputmode: 'numeric',\n        '[disabled]': 'disabled()',\n        '(blur)': 'onBlur($event.target.value)',\n        '(click)': 'toggle()',\n        '(input)': 'onInput($event.target.value)',\n    },\n})\nexport class TuiInputTimeDirective\n    extends TuiControl<TuiTime | null>\n    implements TuiTextfieldAccessor<TuiTime | null>\n{\n    private readonly input = inject(TuiInputDirective);\n    private readonly dropdown = inject(TuiDropdownDirective);\n    private readonly open = inject(TuiDropdownOpen).open;\n    private readonly options = inject(TUI_INPUT_TIME_OPTIONS);\n    private readonly fillers = inject(TUI_TIME_TEXTS);\n    protected readonly icon = tuiIconEnd(this.options.icon);\n\n    protected readonly dropdownEnabled = tuiDropdownEnabled(\n        computed(() => !this.native && this.interactive()),\n    );\n\n    protected readonly filler = tuiDirectiveBinding(\n        TuiTextfieldComponent,\n        'filler',\n        computed((filler = this.fillers()?.[this.timeMode()] ?? '') =>\n            this.postfix() ? '' : `${this.prefix()}${filler}`,\n        ),\n        {},\n    );\n\n    protected readonly mask = tuiMaskito(\n        computed(() =>\n            this.computeMask({\n                ...this.options,\n                mode: this.timeMode(),\n                step: this.interactive() && !this.dropdown.content() ? 1 : 0,\n                prefix: this.prefix(),\n                postfix: this.postfix(),\n            }),\n        ),\n    );\n\n    public readonly accept = input<readonly TuiTime[]>([]);\n    public readonly timeMode = input<MaskitoTimeMode>(this.options.mode, {alias: 'mode'});\n    public readonly prefix = input('');\n    public readonly postfix = input('');\n\n    public readonly native =\n        !!inject(TuiWithNativePicker, {optional: true}) && inject(WA_IS_MOBILE);\n\n    public setValue(value: TuiTime | null): void {\n        this.onChange(value);\n\n        if (value) {\n            this.input.value.set(this.stringify(value));\n        } else {\n            this.input.setValue(value);\n        }\n\n        if (!value && this.dropdownEnabled()) {\n            this.open.set(true);\n        }\n    }\n\n    public override writeValue(value: TuiTime | null): void {\n        const reset = this.control.pristine && this.control.untouched && !value;\n        const changed = untracked(() => value !== this.value());\n\n        if (changed || reset) {\n            super.writeValue(value);\n            untracked(() => this.input.value.set(this.stringify(this.value())));\n        }\n    }\n\n    protected onInput(valueWithAffixes: string): void {\n        const value = valueWithAffixes\n            .replace(this.prefix(), '')\n            .replace(this.postfix(), '');\n\n        const time =\n            value.length === this.timeMode().length ? TuiTime.fromString(value) : null;\n\n        const newValue =\n            this.accept().length && time\n                ? this.findNearestTime(time, this.accept())\n                : time;\n\n        this.control?.control?.updateValueAndValidity({emitEvent: false});\n        this.onChange(newValue);\n\n        if (newValue && newValue !== time) {\n            this.input.value.set(this.stringify(newValue));\n        }\n    }\n\n    protected toggle(): void {\n        this.open.update((x) => !x);\n    }\n\n    protected onBlur(valueWithAffixes: string): void {\n        const value = valueWithAffixes\n            .replace(this.prefix(), '')\n            .replace(this.postfix(), '');\n\n        if (value && !this.value()) {\n            const time = TuiTime.fromString(value);\n\n            const newValue = this.accept().length\n                ? this.findNearestTime(time, this.accept())\n                : time;\n\n            this.control?.control?.updateValueAndValidity({emitEvent: false});\n            this.onChange(newValue);\n\n            if (newValue) {\n                this.input.value.set(this.stringify(newValue));\n            }\n        }\n    }\n\n    private computeMask(params: Required<MaskitoTimeParams>): MaskitoOptions {\n        const options = maskitoTimeOptionsGenerator(params);\n        const {mode, prefix, postfix} = params;\n\n        const inputModeSwitchPlugin = maskitoSelectionChangeHandler((element) => {\n            element.inputMode =\n                element.selectionStart! >= mode.indexOf(' AA') ? 'text' : 'numeric';\n        });\n\n        const caretGuardPlugin = maskitoCaretGuard((value) => [\n            prefix.length,\n            value.length - postfix.length,\n        ]);\n\n        return {\n            ...options,\n            plugins: options.plugins.concat(\n                caretGuardPlugin,\n                maskitoAddOnFocusPlugin(`${prefix}${postfix}`),\n                maskitoRemoveOnBlurPlugin(`${prefix}${postfix}`),\n                mode.includes('AA') ? inputModeSwitchPlugin : [],\n            ),\n        };\n    }\n\n    private findNearestTime(value: TuiTime, items: readonly TuiTime[]): TuiTime | null {\n        // eslint-disable-next-line no-restricted-syntax\n        return items.reduce((previous, current) =>\n            Math.abs(current.valueOf() - value.valueOf()) <\n            Math.abs(previous.valueOf() - value.valueOf())\n                ? current\n                : previous,\n        );\n    }\n\n    private stringify(time: TuiTime | null): string {\n        return `${this.prefix()}${time?.toString(this.timeMode()) || ''}${this.postfix()}`;\n    }\n}\n","import {\n    ChangeDetectionStrategy,\n    Component,\n    computed,\n    Directive,\n    HostAttributeToken,\n    inject,\n    ViewEncapsulation,\n} from '@angular/core';\nimport {type MaskitoTimeMode} from '@maskito/kit';\nimport {TuiControl} from '@taiga-ui/cdk/classes';\nimport {TUI_VERSION} from '@taiga-ui/cdk/constants';\nimport {type TuiDay, TuiTime} from '@taiga-ui/cdk/date-time';\nimport {\n    TuiTextfieldContent,\n    TuiWithNativePicker,\n} from '@taiga-ui/core/components/textfield';\n\nimport {TuiInputTimeDirective} from './input-time.directive';\n\n@Directive({host: {'[attr.list]': 'null'}})\nexport abstract class TuiNativeTimePicker {\n    protected readonly list = inject(new HostAttributeToken('list'), {optional: true});\n\n    protected getStep(timeMode: MaskitoTimeMode): number {\n        switch (timeMode) {\n            case 'HH:MM:SS':\n            case 'HH:MM:SS AA':\n                return 1;\n            case 'HH:MM:SS.MSS':\n            case 'HH:MM:SS.MSS AA':\n                return 0.001;\n            default:\n                return 60;\n        }\n    }\n\n    protected toISOString(\n        value: TuiTime | readonly [TuiDay, TuiTime | null] | null,\n    ): string {\n        const [day, time] = Array.isArray(value) ? value : [null, value];\n        const dateString = day ? day.toJSON() + (time ? 'T' : '') : '';\n        const timeString = time ? time.toString('HH:MM:SS.MSS') : '';\n\n        return dateString + timeString;\n    }\n}\n\n@Component({\n    selector: 'input[tuiInputTime][type=\"time\"]',\n    imports: [TuiTextfieldContent],\n    templateUrl: './input-time.template.html',\n    styles: `\n        [data-tui-version='${TUI_VERSION}'] {\n            @import './input-time.style.less';\n        }\n    `,\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    hostDirectives: [TuiWithNativePicker],\n    host: {'data-tui-version': TUI_VERSION, ngSkipHydration: 'true'},\n})\nexport class TuiInputTimeComponent extends TuiNativeTimePicker {\n    private readonly control: TuiControl<TuiTime | null> = inject(TuiControl);\n    protected readonly host = inject(TuiInputTimeDirective);\n    protected readonly value = computed(() => this.toISOString(this.control.value()));\n    protected readonly step = computed(() => this.getStep(this.host.timeMode()));\n\n    protected setValue(value: string): void {\n        this.host.setValue(TuiTime.fromString(value));\n    }\n}\n","@if (host.native) {\n    <input\n        *tuiTextfieldContent\n        type=\"time\"\n        [attr.list]=\"list\"\n        [step]=\"step()\"\n        [value]=\"value()\"\n        (change)=\"setValue($any($event.target).value)\"\n    />\n}\n","import {TuiLabel} from '@taiga-ui/core/components/label';\nimport {\n    TuiTextfieldComponent,\n    TuiTextfieldOptionsDirective,\n} from '@taiga-ui/core/components/textfield';\nimport {TuiDropdownContent} from '@taiga-ui/core/portals/dropdown';\n\nimport {TuiInputTimeComponent} from './input-time.component';\nimport {TuiInputTimeDirective} from './input-time.directive';\n\nexport const TuiInputTime = [\n    TuiInputTimeDirective,\n    TuiInputTimeComponent,\n    TuiLabel,\n    TuiTextfieldComponent,\n    TuiTextfieldOptionsDirective,\n    TuiDropdownContent,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}