{"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/taiga-ui-kit-components-input-range.ts"],"sourcesContent":["import {\n    ChangeDetectionStrategy,\n    Component,\n    computed,\n    ElementRef,\n    inject,\n    input,\n    viewChild,\n    viewChildren,\n} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {WA_IS_MOBILE} from '@ng-web-apis/platform';\nimport {tuiAsControl, TuiControl} from '@taiga-ui/cdk/classes';\nimport {CHAR_EN_DASH, CHAR_NO_BREAK_SPACE} from '@taiga-ui/cdk/constants';\nimport {tuiFallbackValueProvider} from '@taiga-ui/cdk/tokens';\nimport {type TuiContext} from '@taiga-ui/cdk/types';\nimport {tuiIsFocused} from '@taiga-ui/cdk/utils/focus';\nimport {tuiIsNumber, tuiIsString} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {type TuiKeySteps} from '@taiga-ui/core/components/slider';\nimport {TUI_TEXTFIELD_OPTIONS, TuiTextfield} from '@taiga-ui/core/components/textfield';\nimport {\n    TUI_INPUT_NUMBER_OPTIONS,\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 PolymorpheusContent,\n    PolymorpheusOutlet,\n    type PolymorpheusPrimitive,\n} from '@taiga-ui/polymorpheus';\n\nconst transform = (x?: readonly [string, string] | null): readonly [string, string] =>\n    x ?? ['', ''];\n\n@Component({\n    selector: 'tui-input-range',\n    imports: [FormsModule, PolymorpheusOutlet, TuiInputNumber, TuiRange, TuiTextfield],\n    templateUrl: './input-range.template.html',\n    styleUrl: './input-range.style.less',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    providers: [tuiAsControl(TuiInputRange), tuiFallbackValueProvider([0, 0])],\n    host: {\n        '[attr.data-size]': 'size()',\n        // TODO: Delete this line and put `tui-input-range:has(.t-content-end) {--t-icon-lock: none}` to proprietary styles\n        '[style.--t-icon-lock]': 'contentEnd() ? \"none\" : null',\n    },\n})\nexport class TuiInputRange extends TuiControl<readonly [number, number]> {\n    private readonly inputs = viewChildren(TuiInputNumberDirective, {read: ElementRef});\n    private readonly range = viewChild(TuiRange);\n    private readonly options = inject(TUI_INPUT_NUMBER_OPTIONS);\n    private readonly isMobile = inject(WA_IS_MOBILE);\n\n    private readonly quantumTransformer = computed(\n        () => new TuiQuantumValueTransformerBase(this.quantum()),\n    );\n\n    protected readonly size = inject(TUI_TEXTFIELD_OPTIONS).size;\n    protected start = this.value()[0];\n    protected end = this.value()[1];\n    protected side: 'end' | 'start' = 'start';\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        return this.interactive() || !this.isPrimitive(start) || !this.isPrimitive(end)\n            ? this.content()[0]\n            : `${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    public readonly min = input(0);\n    public readonly max = input(100);\n    public readonly step = input(1);\n    public readonly segments = input(1);\n    public readonly keySteps = input<TuiKeySteps>();\n    public readonly quantum = input(0);\n\n    public readonly prefix = input([this.options.prefix, this.options.prefix], {\n        transform,\n    });\n\n    public readonly postfix = input([this.options.postfix, this.options.postfix], {\n        transform,\n    });\n\n    public readonly content = input<\n        readonly [\n            PolymorpheusContent<TuiContext<number>>,\n            PolymorpheusContent<TuiContext<number>>,\n        ]\n    >(['', '']);\n\n    public override writeValue(value: [number, number]): void {\n        super.writeValue(value);\n        this.setTextfieldValues(this.value());\n    }\n\n    protected get contentStartHidden(): boolean {\n        return this.interactive() && tuiIsFocused(this.textfieldStart);\n    }\n\n    protected get contentEndHidden(): boolean {\n        return (\n            !this.content()[1] || (this.interactive() && tuiIsFocused(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        this.setValue([start ?? this.value()[0], end ?? this.value()[1]]);\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 (tuiIsFocused(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 setTextfieldValues([start, end]: readonly [number, number]): void {\n        this.start = start;\n        this.end = end;\n    }\n\n    private get textfieldStart(): HTMLInputElement | null {\n        return this.inputs()[0]?.nativeElement || null;\n    }\n\n    private get textfieldEnd(): HTMLInputElement | null {\n        return this.inputs()[this.inputs().length - 1]?.nativeElement || null;\n    }\n\n    private get activeTextfield(): HTMLInputElement | null {\n        return this.side === '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\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 !x || tuiIsString(x) || tuiIsNumber(x);\n    }\n}\n","<tui-textfield [content]=\"contentStartHidden ? '' : contentStart()\">\n    <label tuiLabel>\n        <ng-content />\n    </label>\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)]=\"start\"\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        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)]=\"end\"\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    @if (!contentEndHidden && contentEnd()) {\n        <div class=\"t-content-end\">\n            <ng-container *polymorpheusOutlet=\"contentEnd() as text; context: {$implicit: value()[1]}\">\n                {{ text }}\n            </ng-container>\n        </div>\n    }\n\n    @if (interactive()) {\n        <tui-range\n            [focusable]=\"false\"\n            [keySteps]=\"keySteps()\"\n            [max]=\"max()\"\n            [min]=\"min()\"\n            [ngModel]=\"value()\"\n            [segments]=\"segments()\"\n            [step]=\"step()\"\n            (activeThumbChange)=\"side = $event\"\n            (ngModelChange)=\"onExternalValueUpdate($event)\"\n            (pointerdown.prevent.stop)=\"focusToTextfield()\"\n        />\n    }\n</tui-textfield>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}