{"version":3,"file":"taiga-ui-core-components-scrollbar.mjs","sources":["../../../projects/core/components/scrollbar/scrollbar.options.ts","../../../projects/core/components/scrollbar/scroll-ref.directive.ts","../../../projects/core/components/scrollbar/scroll-controls.service.ts","../../../projects/core/components/scrollbar/scrollbar.service.ts","../../../projects/core/components/scrollbar/scrollbar-position.directive.ts","../../../projects/core/components/scrollbar/scrollbar.directive.ts","../../../projects/core/components/scrollbar/scroll-controls.component.ts","../../../projects/core/components/scrollbar/scroll-controls.template.html","../../../projects/core/components/scrollbar/scrollbar.component.ts","../../../projects/core/components/scrollbar/scroll-into-view.directive.ts","../../../projects/core/components/scrollbar/scrollable.directive.ts","../../../projects/core/components/scrollbar/taiga-ui-core-components-scrollbar.ts"],"sourcesContent":["import {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\n\nexport interface TuiScrollbarOptions {\n    mode: 'always' | 'hidden' | 'hover' | 'native';\n}\n\nexport const TUI_DEFAULT_SCROLLBAR_OPTIONS: TuiScrollbarOptions = {mode: 'always'};\nexport const [TUI_SCROLLBAR_OPTIONS, tuiScrollbarOptionsProvider] = tuiCreateOptions(\n    TUI_DEFAULT_SCROLLBAR_OPTIONS,\n);\n","import {DOCUMENT} from '@angular/common';\nimport {\n    ChangeDetectionStrategy,\n    Component,\n    Directive,\n    ElementRef,\n    inject,\n    InjectionToken,\n    ViewEncapsulation,\n} from '@angular/core';\nimport {WA_IS_IOS} from '@ng-web-apis/platform';\nimport {TUI_VERSION} from '@taiga-ui/cdk/constants';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/di';\nimport {tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport {TUI_SCROLLBAR_OPTIONS} from './scrollbar.options';\n\nexport const SCROLL_REF_SELECTOR = '[tuiScrollRef]';\n\nexport const TUI_SCROLL_REF = new InjectionToken(ngDevMode ? 'TUI_SCROLL_REF' : '', {\n    factory: () => new ElementRef(inject(DOCUMENT).documentElement),\n});\n\n@Component({\n    template: '',\n    styles: `\n        [data-tui-version='${TUI_VERSION}'] {\n            @import './scroll-ref.style.less';\n        }\n    `,\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    exportAs: `tui-scroll-ref-${TUI_VERSION}`,\n})\nclass Styles {}\n\n@Directive({\n    selector: '[tuiScrollRef]',\n    providers: [tuiProvide(TUI_SCROLL_REF, ElementRef)],\n    host: {\n        'data-tui-version': TUI_VERSION,\n        tuiScrollRef: '',\n        '[class._native]': 'native',\n    },\n})\nexport class TuiScrollRef {\n    protected readonly nothing = tuiWithStyles(Styles);\n    protected readonly options = inject(TUI_SCROLLBAR_OPTIONS);\n    protected readonly native =\n        (inject(WA_IS_IOS) && this.options.mode !== 'hidden') ||\n        this.options.mode === 'native';\n}\n","import {inject, Injectable} from '@angular/core';\nimport {WA_ANIMATION_FRAME} from '@ng-web-apis/common';\nimport {tuiZonefreeScheduler, tuiZoneOptimized} from '@taiga-ui/cdk/observables';\nimport {distinctUntilChanged, map, Observable, startWith, throttleTime} from 'rxjs';\n\nimport {TUI_SCROLL_REF} from './scroll-ref.directive';\n\n@Injectable()\nexport class TuiScrollControlsService extends Observable<readonly [boolean, boolean]> {\n    private readonly scrollRef = inject(TUI_SCROLL_REF);\n\n    private readonly stream$ = inject(WA_ANIMATION_FRAME).pipe(\n        throttleTime(300, tuiZonefreeScheduler()),\n        map(() => this.scrollbars),\n        startWith([false, false] as const),\n        distinctUntilChanged((a, b) => a[0] === b[0] && a[1] === b[1]),\n        tuiZoneOptimized(),\n    );\n\n    constructor() {\n        super((subscriber) => this.stream$.subscribe(subscriber));\n    }\n\n    private get scrollbars(): [boolean, boolean] {\n        const {clientHeight, scrollHeight, clientWidth, scrollWidth} =\n            this.scrollRef.nativeElement;\n\n        return [\n            Math.ceil((clientHeight / scrollHeight) * 100) < 100,\n            Math.ceil((clientWidth / scrollWidth) * 100) < 100,\n        ];\n    }\n}\n","import {inject, Injectable} from '@angular/core';\nimport {tuiTypedFromEvent, tuiZonefree} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {filter, map, merge, Observable, switchMap, takeUntil} from 'rxjs';\n\nimport {TUI_SCROLL_REF} from './scroll-ref.directive';\n\n@Injectable()\nexport class TuiScrollbarService extends Observable<\n    [number | undefined, number | undefined]\n> {\n    private readonly el = tuiInjectElement();\n    private readonly element = inject(TUI_SCROLL_REF).nativeElement;\n\n    private readonly scroll$ = merge(\n        tuiTypedFromEvent(this.el.parentElement!, 'mousedown').pipe(\n            filter(({target}) => target !== this.el),\n            map((event) => this.getScrolled(event, 0.5, 0.5)),\n        ),\n        tuiTypedFromEvent(this.el, 'mousedown').pipe(\n            tuiZonefree(),\n            switchMap((event) => {\n                const {ownerDocument} = this.el;\n                const rect = this.el.getBoundingClientRect();\n                const vertical = getOffsetVertical(event, rect);\n                const horizontal = getOffsetHorizontal(event, rect);\n\n                return tuiTypedFromEvent(ownerDocument, 'mousemove').pipe(\n                    map((event) => this.getScrolled(event, vertical, horizontal)),\n                    takeUntil(tuiTypedFromEvent(ownerDocument, 'mouseup')),\n                );\n            }),\n        ),\n    );\n\n    constructor() {\n        super((subscriber) => this.scroll$.subscribe(subscriber));\n    }\n\n    private getScrolled(\n        {clientY, clientX}: MouseEvent,\n        offsetY: number,\n        offsetX: number,\n    ): [number | undefined, number | undefined] {\n        const rect = this.el.parentElement!.getBoundingClientRect();\n        const {top, left, right, width, height} = rect;\n        const {offsetHeight, offsetWidth} = this.el;\n        const rtl = this.el.matches('[dir=\"rtl\"] :scope');\n        const inline = rtl ? right : left;\n        const multiplier = rtl ? -1 : 1;\n        const maxTop = this.element.scrollHeight - height;\n        const maxLeft = this.element.scrollWidth - width;\n        const y = (clientY - top - offsetHeight * offsetY) / (height - offsetHeight);\n\n        const x =\n            (clientX - inline - offsetWidth * offsetX * multiplier) /\n            (width - offsetWidth);\n\n        return [\n            width > height ? undefined : maxTop * y,\n            width > height ? maxLeft * x : undefined,\n        ];\n    }\n}\n\nfunction getOffsetVertical({clientY}: MouseEvent, {top, height}: DOMRect): number {\n    return (clientY - top) / height;\n}\n\nfunction getOffsetHorizontal({clientX}: MouseEvent, {left, width}: DOMRect): number {\n    return (clientX - left) / width;\n}\n","import {Directive, inject, input} from '@angular/core';\nimport {WA_ANIMATION_FRAME} from '@ng-web-apis/common';\nimport {\n    tuiScrollFrom,\n    tuiZonefree,\n    tuiZonefreeScheduler,\n} from '@taiga-ui/cdk/observables';\nimport {map, merge, Observable, throttleTime} from 'rxjs';\n\nimport {TUI_SCROLL_REF} from './scroll-ref.directive';\n\nconst MIN_WIDTH = 24;\n\ninterface ComputedDimension {\n    scrollTop: number;\n    scrollHeight: number;\n    clientHeight: number;\n    scrollLeft: number;\n    scrollWidth: number;\n    clientWidth: number;\n}\n\n@Directive()\nexport class TuiScrollbarPosition extends Observable<Partial<CSSStyleDeclaration>> {\n    private readonly scrollRef = inject(TUI_SCROLL_REF);\n\n    private readonly stream$ = merge(\n        inject(WA_ANIMATION_FRAME).pipe(throttleTime(100, tuiZonefreeScheduler())),\n        tuiScrollFrom(this.el),\n    ).pipe(\n        tuiZonefree(),\n        map(() => ({\n            scrollTop: this.el.scrollTop,\n            scrollHeight: this.el.scrollHeight,\n            clientHeight: this.el.clientHeight,\n            scrollLeft: this.el.scrollLeft,\n            scrollWidth: this.el.scrollWidth,\n            clientWidth: this.el.clientWidth,\n        })),\n        map((dimensions) => ({\n            insetBlockStart: `${this.getThumb(dimensions) * 100}%`,\n            blockSize: `${this.getView(dimensions) * 100}%`,\n        })),\n    );\n\n    public readonly tuiScrollbar = input<'horizontal' | 'vertical'>('vertical');\n\n    constructor() {\n        super((subscriber) => this.stream$.subscribe(subscriber));\n    }\n\n    private get el(): HTMLElement {\n        return this.scrollRef.nativeElement;\n    }\n\n    private getThumb(dimension: ComputedDimension): number {\n        const compensation = this.getCompensation(dimension) || this.getView(dimension);\n\n        return Math.abs(this.getScrolled(dimension) * (1 - compensation));\n    }\n\n    private getView(dimension: ComputedDimension): number {\n        return this.tuiScrollbar() === 'vertical'\n            ? Math.ceil((dimension.clientHeight / dimension.scrollHeight) * 100) / 100\n            : Math.ceil((dimension.clientWidth / dimension.scrollWidth) * 100) / 100;\n    }\n\n    private getScrolled(dimension: ComputedDimension): number {\n        return this.tuiScrollbar() === 'vertical'\n            ? dimension.scrollTop / (dimension.scrollHeight - dimension.clientHeight)\n            : dimension.scrollLeft / (dimension.scrollWidth - dimension.clientWidth);\n    }\n\n    private getCompensation(dimension: ComputedDimension): number {\n        if (\n            ((dimension.clientHeight * dimension.clientHeight) / dimension.scrollHeight >\n                MIN_WIDTH &&\n                this.tuiScrollbar() === 'vertical') ||\n            ((dimension.clientWidth * dimension.clientWidth) / dimension.scrollWidth >\n                MIN_WIDTH &&\n                this.tuiScrollbar() === 'horizontal')\n        ) {\n            return 0;\n        }\n\n        return this.tuiScrollbar() === 'vertical'\n            ? MIN_WIDTH / dimension.clientHeight\n            : MIN_WIDTH / dimension.clientWidth;\n    }\n}\n","import {Directive, inject} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {TUI_TIMELINE_SUPPORT} from '@taiga-ui/core/tokens';\n\nimport {TUI_SCROLL_REF} from './scroll-ref.directive';\nimport {TuiScrollbarService} from './scrollbar.service';\nimport {TuiScrollbarPosition} from './scrollbar-position.directive';\n\n@Directive({\n    selector: '[tuiScrollbar]',\n    providers: [TuiScrollbarService],\n    hostDirectives: [{directive: TuiScrollbarPosition, inputs: ['tuiScrollbar']}],\n})\nexport class TuiScrollbarDirective {\n    private readonly scrollRef = inject(TUI_SCROLL_REF);\n    private readonly style = tuiInjectElement().style;\n\n    protected readonly scrollSub = inject(TuiScrollbarService)\n        .pipe(takeUntilDestroyed())\n        .subscribe(([top, left]) => {\n            this.scrollRef.nativeElement.scrollTo({top, left, behavior: 'instant'});\n        });\n\n    constructor() {\n        if (!inject(TUI_TIMELINE_SUPPORT)) {\n            inject(TuiScrollbarPosition)\n                .pipe(takeUntilDestroyed())\n                .subscribe((position) => Object.assign(this.style, position));\n        }\n    }\n}\n","import {CdkScrollable} from '@angular/cdk/scrolling';\nimport {AsyncPipe} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, inject, type OnInit} from '@angular/core';\nimport {WA_IS_IOS} from '@ng-web-apis/platform';\nimport {TuiAnimated} from '@taiga-ui/cdk/directives/animated';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {TUI_TIMELINE_SUPPORT} from '@taiga-ui/core/tokens';\nimport {type Observable, of} from 'rxjs';\n\nimport {TuiScrollControlsService} from './scroll-controls.service';\nimport {TuiScrollbarDirective} from './scrollbar.directive';\nimport {TUI_SCROLLBAR_OPTIONS} from './scrollbar.options';\n\n@Component({\n    selector: 'tui-scroll-controls',\n    imports: [AsyncPipe, TuiAnimated, TuiScrollbarDirective],\n    templateUrl: './scroll-controls.template.html',\n    styleUrl: './scroll-controls.style.less',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    providers: [TuiScrollControlsService],\n    host: {'[class._timeline]': 'timeline'},\n})\nexport class TuiScrollControls implements OnInit {\n    private readonly scrollable = inject(CdkScrollable, {optional: true, host: true});\n    private readonly el = tuiInjectElement();\n\n    protected readonly timeline = inject(TUI_TIMELINE_SUPPORT);\n    protected readonly hidden =\n        inject(WA_IS_IOS) ||\n        ['hidden', 'native'].includes(inject(TUI_SCROLLBAR_OPTIONS).mode);\n\n    protected readonly refresh$: Observable<readonly [boolean, boolean]> = this.timeline\n        ? of([true, true] as const)\n        : inject(TuiScrollControlsService);\n\n    public ngOnInit(): void {\n        this.scrollable?.getElementRef().nativeElement.prepend?.(this.el);\n    }\n}\n","@if (!hidden) {\n    @if (refresh$ | async; as bars) {\n        @if (bars[0]) {\n            <div\n                tuiAnimated\n                class=\"t-bar t-bar_vertical\"\n                (mousedown.capture.prevent)=\"(0)\"\n            >\n                <div\n                    tuiScrollbar=\"vertical\"\n                    class=\"t-thumb\"\n                ></div>\n            </div>\n        }\n        @if (bars[1]) {\n            <div\n                tuiAnimated\n                class=\"t-bar t-bar_horizontal\"\n                (mousedown.capture.prevent)=\"(0)\"\n            >\n                <div\n                    tuiScrollbar=\"horizontal\"\n                    class=\"t-thumb\"\n                ></div>\n            </div>\n        }\n    }\n}\n","import {ChangeDetectionStrategy, Component, ElementRef, inject} from '@angular/core';\nimport {tuiGetElementOffset, tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\n\nimport {TuiScrollControls} from './scroll-controls.component';\nimport {TUI_SCROLL_REF, TuiScrollRef} from './scroll-ref.directive';\nimport {TUI_SCROLLBAR_OPTIONS} from './scrollbar.options';\n\n/**\n * An event for scrolling an element into view within {@link TuiScrollbar}.\n */\nexport const TUI_SCROLL_INTO_VIEW = 'tui-scroll-into-view';\n\n/**\n * An event to notify {@link TuiScrollbar} that\n * it should control a nested element.\n */\nexport const TUI_SCROLLABLE = 'tui-scrollable';\n\n@Component({\n    selector: 'tui-scrollbar',\n    imports: [TuiScrollControls],\n    template: `\n        <tui-scroll-controls [class.t-hover-mode]=\"options.mode === 'hover'\" />\n        <div class=\"t-content\"><ng-content /></div>\n    `,\n    styleUrl: './scrollbar.style.less',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    providers: [\n        {\n            provide: TUI_SCROLL_REF,\n            useFactory: () => inject(TuiScrollbar).browserScrollRef,\n        },\n    ],\n    hostDirectives: [TuiScrollRef],\n    host: {\n        '[class._delegated]': 'delegated',\n        [`(${TUI_SCROLLABLE}.stop)`]: 'scrollRef = $event.detail',\n        [`(${TUI_SCROLL_INTO_VIEW}.stop)`]: 'scrollIntoView($event.detail)',\n    },\n})\nexport class TuiScrollbar {\n    private readonly el = tuiInjectElement();\n\n    protected readonly options = inject(TUI_SCROLLBAR_OPTIONS);\n    protected readonly browserScrollRef = new ElementRef(this.el);\n\n    public get delegated(): boolean {\n        return this.scrollRef !== this.el || this.options.mode === 'native';\n    }\n\n    protected get scrollRef(): HTMLElement {\n        return this.browserScrollRef.nativeElement;\n    }\n\n    protected set scrollRef(element: HTMLElement) {\n        this.browserScrollRef.nativeElement = element;\n    }\n\n    protected scrollIntoView(detail: HTMLElement): void {\n        if (this.delegated) {\n            return;\n        }\n\n        const {offsetHeight, offsetWidth} = detail;\n        const {offsetTop, offsetLeft} = tuiGetElementOffset(this.scrollRef, detail);\n        const scrollTop = offsetTop + offsetHeight / 2 - this.scrollRef.clientHeight / 2;\n        const scrollLeft = offsetLeft + offsetWidth / 2 - this.scrollRef.clientWidth / 2;\n\n        this.scrollRef.scrollTo?.(scrollLeft, scrollTop);\n    }\n}\n","import {DestroyRef, Directive, effect, inject, input} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {timer} from 'rxjs';\n\nimport {TUI_SCROLL_INTO_VIEW} from './scrollbar.component';\n\n/**\n * Directive scrolls element into view inside tui-scrollbar\n */\n@Directive({selector: '[tuiScrollIntoView]'})\nexport class TuiScrollIntoView {\n    private readonly el = tuiInjectElement();\n    private readonly destroyRef = inject(DestroyRef);\n\n    public readonly tuiScrollIntoView = input<boolean>();\n\n    protected readonly dispatchEvent = effect(() => {\n        const scroll = this.tuiScrollIntoView();\n\n        if (!scroll) {\n            return;\n        }\n\n        // Timeout is necessary in order to give element render cycle to get into its final spot\n        // (for example if it is inside dropdown box which has to be positioned first)\n        timer(0)\n            .pipe(takeUntilDestroyed(this.destroyRef))\n            .subscribe(() => {\n                this.el.dispatchEvent(\n                    new CustomEvent<Element>(TUI_SCROLL_INTO_VIEW, {\n                        bubbles: true,\n                        detail: this.el,\n                    }),\n                );\n            });\n    });\n}\n","import {Directive, type OnInit} from '@angular/core';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\n\nimport {TuiScrollRef} from './scroll-ref.directive';\nimport {TUI_SCROLLABLE} from './scrollbar.component';\n\n/**\n * @deprecated Use {@link TuiScrollRef} + {@link TuiScrollControls} instead\n * TODO: Drop in v6.0\n */\n@Directive({selector: '[tuiScrollable]', hostDirectives: [TuiScrollRef]})\nexport class TuiScrollable implements OnInit {\n    private readonly el = tuiInjectElement();\n\n    public ngOnInit(): void {\n        this.el.dispatchEvent(\n            new CustomEvent(TUI_SCROLLABLE, {bubbles: true, detail: this.el}),\n        );\n    }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.TuiScrollbarPosition","i1.TuiScrollRef"],"mappings":"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"}