{"version":3,"file":"taiga-ui-kit-components-input-range.mjs","sources":["../../../projects/kit/components/input-range/input-range.component.ts","../../../projects/kit/components/input-range/input-range.template.html","../../../projects/kit/components/input-range/input-range.ts","../../../projects/kit/components/input-range/taiga-ui-kit-components-input-range.ts"],"sourcesContent":["import {NgIf} from '@angular/common';\nimport {\n    type AfterViewInit,\n    ChangeDetectionStrategy,\n    Component,\n    computed,\n    ElementRef,\n    inject,\n    Input,\n    type QueryList,\n    signal,\n    ViewChild,\n    ViewChildren,\n} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {tuiAsControl, TuiControl} from '@taiga-ui/cdk/classes';\nimport {CHAR_EN_DASH, CHAR_NO_BREAK_SPACE, EMPTY_QUERY} from '@taiga-ui/cdk/constants';\nimport {TUI_IS_MOBILE, tuiFallbackValueProvider} from '@taiga-ui/cdk/tokens';\nimport {type TuiContext} from '@taiga-ui/cdk/types';\nimport {tuiIsNativeFocused} from '@taiga-ui/cdk/utils/focus';\nimport {TUI_TEXTFIELD_OPTIONS, TuiTextfield} from '@taiga-ui/core/components/textfield';\nimport {\n    TuiInputNumber,\n    TuiInputNumberDirective,\n    TuiQuantumValueTransformerBase,\n} from '@taiga-ui/kit/components/input-number';\nimport {TuiRange} from '@taiga-ui/kit/components/range';\nimport {\n    type TuiKeySteps,\n    tuiSliderOptionsProvider,\n} from '@taiga-ui/kit/components/slider';\nimport {\n    type PolymorpheusContent,\n    PolymorpheusOutlet,\n    type PolymorpheusPrimitive,\n} from '@taiga-ui/polymorpheus';\n\n@Component({\n    standalone: true,\n    selector: 'tui-input-range',\n    imports: [\n        FormsModule,\n        NgIf,\n        PolymorpheusOutlet,\n        TuiInputNumber,\n        TuiRange,\n        TuiTextfield,\n    ],\n    templateUrl: './input-range.template.html',\n    styleUrls: ['./input-range.style.less'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    providers: [\n        tuiAsControl(TuiInputRangeComponent),\n        tuiSliderOptionsProvider({trackColor: 'transparent'}),\n        tuiFallbackValueProvider([0, 0]),\n    ],\n    host: {\n        new: '', // TODO(v5): remove after deletion of legacy control\n        // TODO: use css :host:has(tui-textfield[data-size]) after browser bump\n        '[attr.data-size]': 'size()',\n        '[style.--t-icon-lock]': 'contentEnd() ? \"none\" : null',\n    },\n})\nexport class TuiInputRangeComponent\n    extends TuiControl<readonly [number, number]>\n    implements AfterViewInit\n{\n    @ViewChildren(TuiInputNumberDirective, {read: ElementRef})\n    private readonly inputNumberRefs: QueryList<ElementRef<HTMLInputElement>> =\n        EMPTY_QUERY;\n\n    @ViewChild(TuiRange)\n    private readonly range?: TuiRange;\n\n    private readonly isMobile = inject(TUI_IS_MOBILE);\n    private readonly quantum = signal(0);\n    private readonly quantumTransformer = computed(\n        () => new TuiQuantumValueTransformerBase(this.quantum()),\n    );\n\n    protected readonly size = inject(TUI_TEXTFIELD_OPTIONS).size;\n    protected textfieldValueStart = this.value()[0];\n    protected textfieldValueEnd = this.value()[1];\n    protected lastActiveSide: 'end' | 'start' = 'start';\n    protected readonly content = signal<\n        readonly [\n            PolymorpheusContent<TuiContext<number>>,\n            PolymorpheusContent<TuiContext<number>>,\n        ]\n    >(['', '']);\n\n    protected readonly contentStart = computed(() => {\n        const [start, end] = this.content().map((x, i) => {\n            const value = this.value()[i]!;\n\n            return typeof x === 'function' ? x({$implicit: value}) : x || value;\n        });\n\n        if (this.interactive() || !this.isPrimitive(start) || !this.isPrimitive(end)) {\n            return this.content()[0];\n        }\n\n        return `${start}${CHAR_NO_BREAK_SPACE}${CHAR_EN_DASH}${CHAR_NO_BREAK_SPACE}${end}`;\n    });\n\n    protected readonly contentEnd = computed(() =>\n        this.contentStart() === this.content()[0] ? this.content()[1] : '',\n    );\n\n    @Input()\n    public min = 0;\n\n    @Input()\n    public max = 100;\n\n    @Input()\n    public step = 1;\n\n    @Input()\n    public segments = 1;\n\n    @Input()\n    public keySteps: TuiKeySteps | null = null;\n\n    @Input({transform: (x: readonly [string, string] | null) => x ?? ['', '']})\n    public prefix: readonly [string, string] = ['', ''];\n\n    @Input({transform: (x: readonly [string, string] | null) => x ?? ['', '']})\n    public postfix: readonly [string, string] = ['', ''];\n\n    // TODO(v5): use signal inputs\n    @Input('quantum')\n    public set quantumSetter(x: number) {\n        this.quantum.set(x);\n    }\n\n    // TODO(v5): use signal inputs\n    @Input('content')\n    public set contentSetter(\n        x: readonly [\n            PolymorpheusContent<TuiContext<number>>,\n            PolymorpheusContent<TuiContext<number>>,\n        ],\n    ) {\n        this.content.set(x);\n    }\n\n    public override writeValue(value: [number, number]): void {\n        super.writeValue(value);\n        this.setTextfieldValues(this.value());\n    }\n\n    public ngAfterViewInit(): void {\n        if (this.range) {\n            this.range.legacyMode = false; // TODO(v5): remove backward compatibility\n        }\n    }\n\n    protected get contentStartHidden(): boolean {\n        return this.interactive() && tuiIsNativeFocused(this.textfieldStart);\n    }\n\n    protected get contentEndHidden(): boolean {\n        return (\n            !this.content()[1] ||\n            (this.interactive() && tuiIsNativeFocused(this.textfieldEnd))\n        );\n    }\n\n    protected takeStep(\n        event: Event | KeyboardEvent,\n        coefficients: readonly [number, number],\n    ): void {\n        if (!this.interactive() || !this.range) {\n            return;\n        }\n\n        event.preventDefault();\n\n        const [start, end] = this.value();\n        const newValue = this.valueGuard(this.range.takeStep(coefficients));\n\n        if (newValue[0] !== start || newValue[1] !== end) {\n            this.onExternalValueUpdate(newValue);\n        }\n    }\n\n    protected onInput([start, end]: [number | null, number | null]): void {\n        const [prevStart, prevEnd] = this.value();\n\n        this.setValue([start ?? prevStart, end ?? prevEnd]);\n    }\n\n    protected onExternalValueUpdate(value: readonly [number, number]): void {\n        this.setValue(value);\n        this.setTextfieldValues(this.value());\n\n        setTimeout((end = Number.MAX_SAFE_INTEGER) => {\n            if (tuiIsNativeFocused(this.activeTextfield)) {\n                this.activeTextfield?.setSelectionRange(end, end);\n            }\n        });\n    }\n\n    protected focusToTextfield(): void {\n        if (!this.isMobile) {\n            this.activeTextfield?.focus();\n        }\n    }\n\n    protected onBlur(): void {\n        this.onTouched();\n        this.setTextfieldValues(this.value());\n    }\n\n    protected onActiveThumbChange(activeThumb: 'left' | 'right'): void {\n        // TODO(v5): remove backward compatibility\n        this.lastActiveSide = activeThumb === 'left' ? 'start' : 'end';\n    }\n\n    protected setTextfieldValues([start, end]: readonly [number, number]): void {\n        this.textfieldValueStart = start;\n        this.textfieldValueEnd = end;\n    }\n\n    private get textfieldStart(): HTMLInputElement | null {\n        return this.inputNumberRefs.first?.nativeElement || null;\n    }\n\n    private get textfieldEnd(): HTMLInputElement | null {\n        return this.inputNumberRefs.last?.nativeElement || null;\n    }\n\n    private get activeTextfield(): HTMLInputElement | null {\n        return this.lastActiveSide === 'start' ? this.textfieldStart : this.textfieldEnd;\n    }\n\n    private setValue(value: readonly [number, number]): void {\n        this.onChange(this.valueGuard(value));\n    }\n\n    private valueGuard(value: readonly [number, number]): readonly [number, number] {\n        const [prevStart, prevEnd] = this.value();\n        const [start, end] = value.map(\n            (x) => this.quantumTransformer().toControlValue(x) ?? x,\n        ) as unknown as readonly [number, number];\n\n        return [Math.min(start, prevEnd), Math.max(end, prevStart)];\n    }\n\n    private isPrimitive(x: PolymorpheusContent): x is PolymorpheusPrimitive {\n        return Object(x) !== x;\n    }\n}\n","<tui-textfield [content]=\"contentStartHidden ? '' : contentStart()\">\n    <ng-container ngProjectAs=\"label\">\n        <ng-content select=\"label\" />\n    </ng-container>\n\n    <input\n        tuiInputNumber\n        [disabled]=\"disabled()\"\n        [invalid]=\"invalid()\"\n        [max]=\"value()[1]\"\n        [min]=\"min\"\n        [postfix]=\"postfix[0]\"\n        [prefix]=\"prefix[0]\"\n        [readOnly]=\"readOnly()\"\n        [(ngModel)]=\"textfieldValueStart\"\n        (blur)=\"onBlur()\"\n        (keydown.arrowDown)=\"takeStep($event, [-1, 0])\"\n        (keydown.arrowUp)=\"takeStep($event, [1, 0])\"\n        (ngModelChange)=\"onInput([$event, null])\"\n    />\n\n    <input\n        tuiInputNumber\n        tuiTextfieldAppearance=\"none\"\n        class=\"t-end\"\n        [class._hidden]=\"!contentEndHidden || !this.interactive()\"\n        [disabled]=\"disabled()\"\n        [invalid]=\"invalid()\"\n        [max]=\"max\"\n        [min]=\"value()[0]\"\n        [postfix]=\"postfix[1]\"\n        [prefix]=\"prefix[1]\"\n        [readOnly]=\"readOnly()\"\n        [(ngModel)]=\"textfieldValueEnd\"\n        (blur)=\"onBlur()\"\n        (keydown.arrowDown)=\"takeStep($event, [0, -1])\"\n        (keydown.arrowUp)=\"takeStep($event, [0, 1])\"\n        (ngModelChange)=\"onInput([null, $event])\"\n    />\n\n    <div\n        class=\"t-content-end\"\n        [class._hidden]=\"contentEndHidden\"\n    >\n        <ng-container *polymorpheusOutlet=\"contentEnd() as text; context: {$implicit: value()[1]}\">\n            {{ text }}\n        </ng-container>\n    </div>\n</tui-textfield>\n\n<tui-range\n    *ngIf=\"interactive()\"\n    [focusable]=\"false\"\n    [keySteps]=\"keySteps\"\n    [max]=\"max\"\n    [min]=\"min\"\n    [ngModel]=\"value()\"\n    [segments]=\"segments\"\n    [step]=\"step\"\n    (activeThumbChange)=\"onActiveThumbChange($event)\"\n    (mousedown.prevent)=\"focusToTextfield()\"\n    (ngModelChange)=\"onExternalValueUpdate($event)\"\n/>\n","import {TuiLabel} from '@taiga-ui/core/components/label';\n\nimport {TuiInputRangeComponent} from './input-range.component';\n\nexport const TuiInputRange = [TuiInputRangeComponent, TuiLabel] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}