{"version":3,"file":"primeng-scrollarea.mjs","sources":["../../src/scrollarea/scrollarea-token.ts","../../src/scrollarea/style/scrollareastyle.ts","../../src/scrollarea/scrollarea-content.ts","../../src/scrollarea/scrollarea-corner.ts","../../src/scrollarea/scrollarea-scrollbar.ts","../../src/scrollarea/scrollarea-handle.ts","../../src/scrollarea/scrollarea-viewport.ts","../../src/scrollarea/scrollarea.ts","../../src/scrollarea/primeng-scrollarea.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport const SCROLLAREA_INSTANCE = new InjectionToken<any>('SCROLLAREA_INSTANCE');\nexport const SCROLLAREA_VIEWPORT_INSTANCE = new InjectionToken<any>('SCROLLAREA_VIEWPORT_INSTANCE');\nexport const SCROLLAREA_SCROLLBAR_INSTANCE = new InjectionToken<any>('SCROLLAREA_SCROLLBAR_INSTANCE');\n","import { Injectable } from '@angular/core';\nimport { style } from '@primeuix/styles/scrollarea';\nimport { BaseStyle } from 'primeng/base';\n\nconst classes = {\n    root: ({ instance }: any) => ['p-scrollarea p-component', { 'p-scrollarea-mask': instance.mask() }],\n    viewport: 'p-scrollarea-viewport',\n    content: 'p-scrollarea-content',\n    scrollbar: 'p-scrollarea-scrollbar',\n    handle: 'p-scrollarea-handle',\n    corner: 'p-scrollarea-corner'\n};\n\nconst inlineStyles = {\n    root: {\n        position: 'relative'\n    },\n    viewport: {\n        overflow: 'scroll',\n        scrollbarWidth: 'none'\n    },\n    scrollbar: ({ instance }: any) => {\n        const isVertical = instance.orientation() === 'vertical';\n        return {\n            position: 'absolute',\n            touchAction: 'none',\n            userSelect: 'none',\n            WebkitUserSelect: 'none',\n            display: instance.isHidden() ? 'none' : undefined,\n            top: isVertical ? 0 : undefined,\n            bottom: isVertical ? 'var(--px-corner-height)' : 0,\n            insetInlineEnd: isVertical ? 0 : 'var(--px-corner-width)',\n            insetInlineStart: !isVertical ? 0 : undefined\n        };\n    },\n    corner: ({ instance }: any) => ({\n        position: 'absolute',\n        bottom: 0,\n        insetInlineEnd: 0,\n        display: instance.isHidden() ? 'none' : undefined\n    })\n};\n\n@Injectable()\nexport class ScrollAreaStyle extends BaseStyle {\n    name = 'scrollarea';\n\n    style = style;\n\n    classes = classes;\n\n    override inlineStyles = inlineStyles;\n}\n\n/**\n *\n * ScrollArea is a cross browser, lightweight and themable alternative to native browser scrollbar.\n *\n * [Live Demo](https://www.primeng.org/scrollarea)\n *\n * @module scrollareastyle\n *\n */\nexport enum ScrollAreaClasses {\n    /**\n     * Class name of the root element\n     */\n    root = 'p-scrollarea',\n    /**\n     * Class name of the viewport element\n     */\n    viewport = 'p-scrollarea-viewport',\n    /**\n     * Class name of the content element\n     */\n    content = 'p-scrollarea-content',\n    /**\n     * Class name of the scrollbar element\n     */\n    scrollbar = 'p-scrollarea-scrollbar',\n    /**\n     * Class name of the handle element\n     */\n    handle = 'p-scrollarea-handle',\n    /**\n     * Class name of the corner element\n     */\n    corner = 'p-scrollarea-corner'\n}\n\nexport interface ScrollAreaStyle extends BaseStyle {}\n","import { ChangeDetectionStrategy, Component, computed, inject, ViewEncapsulation } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind, BindModule } from 'primeng/bind';\nimport type { ScrollArea } from './scrollarea';\nimport { SCROLLAREA_INSTANCE } from './scrollarea-token';\nimport { ScrollAreaStyle } from './style/scrollareastyle';\n\n/**\n * ScrollAreaContent is a helper component for ScrollArea component.\n * @group Components\n */\n@Component({\n    selector: 'p-scrollarea-content, p-scroll-area-content',\n    standalone: true,\n    imports: [BindModule],\n    template: `<ng-content></ng-content>`,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None,\n    providers: [{ provide: PARENT_INSTANCE, useExisting: ScrollAreaContent }],\n    host: {\n        '[class]': 'cx(\"content\")',\n        '[style.min-width]': 'contentMinWidth()',\n        '[style.min-height]': 'contentMinHeight()'\n    },\n    hostDirectives: [Bind]\n})\nexport class ScrollAreaContent extends BaseComponent {\n    componentName = 'ScrollAreaContent';\n\n    bindDirectiveInstance = inject(Bind, { self: true });\n\n    pcScrollArea = inject<ScrollArea>(SCROLLAREA_INSTANCE);\n\n    _componentStyle = inject(ScrollAreaStyle);\n\n    contentMinWidth = computed(() => (this.pcScrollArea.hasOverflowX() ? 'fit-content' : null));\n\n    contentMinHeight = computed(() => (this.pcScrollArea.hasOverflowY() ? 'fit-content' : null));\n\n    onAfterViewChecked(): void {\n        this.bindDirectiveInstance.setAttrs(this.pcScrollArea.ptms(['content']));\n    }\n}\n","import { ChangeDetectionStrategy, Component, computed, ElementRef, inject, ViewEncapsulation } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind, BindModule } from 'primeng/bind';\nimport type { ScrollArea } from './scrollarea';\nimport { SCROLLAREA_INSTANCE } from './scrollarea-token';\nimport { ScrollAreaStyle } from './style/scrollareastyle';\n\n/**\n * ScrollAreaCorner is a helper component for ScrollArea component.\n * @group Components\n */\n@Component({\n    selector: 'p-scrollarea-corner, p-scroll-area-corner',\n    standalone: true,\n    imports: [BindModule],\n    template: ``,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None,\n    providers: [{ provide: PARENT_INSTANCE, useExisting: ScrollAreaCorner }],\n    host: {\n        '[class]': 'cx(\"corner\")',\n        '[style]': 'sx(\"corner\")'\n    },\n    hostDirectives: [Bind]\n})\nexport class ScrollAreaCorner extends BaseComponent {\n    componentName = 'ScrollAreaCorner';\n\n    bindDirectiveInstance = inject(Bind, { self: true });\n\n    pcScrollArea = inject<ScrollArea>(SCROLLAREA_INSTANCE);\n\n    _componentStyle = inject(ScrollAreaStyle);\n\n    private hostEl = inject(ElementRef);\n\n    isHidden = computed(() => this.pcScrollArea.cornerHidden());\n\n    onAfterViewChecked(): void {\n        this.bindDirectiveInstance.setAttrs(this.pcScrollArea.ptms(['corner']));\n    }\n\n    onAfterViewInit() {\n        this.pcScrollArea.cornerEl = this.hostEl.nativeElement;\n    }\n}\n","import { ChangeDetectionStrategy, Component, computed, ElementRef, inject, input, ViewEncapsulation } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind, BindModule } from 'primeng/bind';\nimport type { ScrollArea } from './scrollarea';\nimport { SCROLLAREA_INSTANCE, SCROLLAREA_SCROLLBAR_INSTANCE } from './scrollarea-token';\nimport { ScrollAreaStyle } from './style/scrollareastyle';\n\n/**\n * ScrollAreaScrollbar is a helper component for ScrollArea component.\n * @group Components\n */\n@Component({\n    selector: 'p-scrollarea-scrollbar, p-scroll-area-scrollbar',\n    standalone: true,\n    imports: [BindModule],\n    template: `<ng-content></ng-content>`,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None,\n    providers: [\n        { provide: SCROLLAREA_SCROLLBAR_INSTANCE, useExisting: ScrollAreaScrollbar },\n        { provide: PARENT_INSTANCE, useExisting: ScrollAreaScrollbar }\n    ],\n    host: {\n        '[class]': 'cx(\"scrollbar\")',\n        '[style]': 'sx(\"scrollbar\")',\n        '[attr.data-orientation]': 'orientation()',\n        '[attr.data-hovering]': 'dataHovering()',\n        '[attr.data-scrolling]': 'dataScrolling()',\n        '(pointerdown)': 'pcScrollArea.onScrollbarPointerDown($event, orientation())',\n        '(pointermove)': 'pcScrollArea.onScrollbarPointerMove($event)',\n        '(pointerup)': 'pcScrollArea.onScrollbarPointerUp($event)',\n        '(wheel)': 'pcScrollArea.onScrollbarWheel($event, orientation())'\n    },\n    hostDirectives: [Bind]\n})\nexport class ScrollAreaScrollbar extends BaseComponent {\n    componentName = 'ScrollAreaScrollbar';\n\n    $pcScrollAreaScrollbar: ScrollAreaScrollbar | undefined = inject(SCROLLAREA_SCROLLBAR_INSTANCE, { optional: true, skipSelf: true }) ?? undefined;\n\n    bindDirectiveInstance = inject(Bind, { self: true });\n\n    pcScrollArea = inject<ScrollArea>(SCROLLAREA_INSTANCE);\n\n    _componentStyle = inject(ScrollAreaStyle);\n\n    private hostEl = inject(ElementRef);\n\n    /**\n     * Orientation of the scrollbar.\n     * @group Props\n     */\n    orientation = input<'vertical' | 'horizontal'>('vertical');\n\n    isVertical = computed(() => this.orientation() === 'vertical');\n\n    isHidden = computed(() => (this.isVertical() ? this.pcScrollArea.hiddenY() : this.pcScrollArea.hiddenX()));\n\n    dataHovering = computed(() => (this.pcScrollArea.hovering() ? '' : null));\n\n    dataScrolling = computed(() => {\n        const isVertical = this.isVertical();\n        return (isVertical ? this.pcScrollArea.scrollingY() : this.pcScrollArea.scrollingX()) ? '' : null;\n    });\n\n    onAfterViewChecked(): void {\n        this.bindDirectiveInstance.setAttrs(this.pcScrollArea.ptms(['scrollbar']));\n    }\n\n    onAfterViewInit() {\n        const el = this.hostEl.nativeElement;\n        if (this.isVertical()) {\n            this.pcScrollArea.scrollbarYEl = el;\n        } else {\n            this.pcScrollArea.scrollbarXEl = el;\n        }\n    }\n}\n","import { ChangeDetectionStrategy, Component, computed, ElementRef, inject, ViewEncapsulation } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind, BindModule } from 'primeng/bind';\nimport type { ScrollArea } from './scrollarea';\nimport type { ScrollAreaScrollbar } from './scrollarea-scrollbar';\nimport { SCROLLAREA_INSTANCE, SCROLLAREA_SCROLLBAR_INSTANCE } from './scrollarea-token';\nimport { ScrollAreaStyle } from './style/scrollareastyle';\n\n/**\n * ScrollAreaHandle is a helper component for ScrollArea component.\n * @group Components\n */\n@Component({\n    selector: 'p-scrollarea-handle, p-scroll-area-handle',\n    standalone: true,\n    imports: [BindModule],\n    template: ``,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None,\n    providers: [{ provide: PARENT_INSTANCE, useExisting: ScrollAreaHandle }],\n    host: {\n        '[class]': 'cx(\"handle\")',\n        '[attr.data-orientation]': 'orientation()',\n        '[style.height]': 'handleHeight()',\n        '[style.width]': 'handleWidth()',\n        '[style.transform]': 'handleTransform()',\n        '(pointerdown)': 'pcScrollArea.onHandlePointerDown($event, orientation())'\n    },\n    hostDirectives: [Bind]\n})\nexport class ScrollAreaHandle extends BaseComponent {\n    componentName = 'ScrollAreaHandle';\n\n    bindDirectiveInstance = inject(Bind, { self: true });\n\n    pcScrollArea = inject<ScrollArea>(SCROLLAREA_INSTANCE);\n\n    pcScrollbar = inject<ScrollAreaScrollbar>(SCROLLAREA_SCROLLBAR_INSTANCE);\n\n    _componentStyle = inject(ScrollAreaStyle);\n\n    private hostEl = inject(ElementRef);\n\n    orientation = computed(() => this.pcScrollbar.orientation());\n\n    isVertical = computed(() => this.orientation() === 'vertical');\n\n    handleHeight = computed(() => (this.isVertical() ? 'var(--px-handle-height, 0px)' : undefined));\n\n    handleWidth = computed(() => (this.isVertical() ? undefined : 'var(--px-handle-width, 0px)'));\n\n    handleTransform = computed(() => (this.isVertical() ? 'translate3d(0, var(--px-handle-offset, 0px), 0)' : 'translate3d(var(--px-handle-offset, 0px), 0, 0)'));\n\n    onAfterViewChecked(): void {\n        this.bindDirectiveInstance.setAttrs(this.pcScrollArea.ptms(['handle']));\n    }\n\n    onAfterViewInit() {\n        const el = this.hostEl.nativeElement;\n        if (this.isVertical()) {\n            this.pcScrollArea.handleYEl = el;\n        } else {\n            this.pcScrollArea.handleXEl = el;\n        }\n    }\n}\n","import { ChangeDetectionStrategy, Component, computed, ElementRef, inject, ViewEncapsulation } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind, BindModule } from 'primeng/bind';\nimport type { ScrollArea } from './scrollarea';\nimport { SCROLLAREA_INSTANCE, SCROLLAREA_VIEWPORT_INSTANCE } from './scrollarea-token';\nimport { ScrollAreaStyle } from './style/scrollareastyle';\n\n/**\n * ScrollAreaViewport is a helper component for ScrollArea component.\n * @group Components\n */\n@Component({\n    selector: 'p-scrollarea-viewport, p-scroll-area-viewport',\n    standalone: true,\n    imports: [BindModule],\n    template: `<ng-content></ng-content>`,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None,\n    providers: [\n        { provide: SCROLLAREA_VIEWPORT_INSTANCE, useExisting: ScrollAreaViewport },\n        { provide: PARENT_INSTANCE, useExisting: ScrollAreaViewport }\n    ],\n    host: {\n        '[class]': 'cx(\"viewport\")',\n        '[style]': 'sx(\"viewport\")',\n        '[attr.tabindex]': 'viewportTabindex()',\n        '[attr.data-scroll-y-before]': 'dataScrollYBefore()',\n        '[attr.data-scroll-y-after]': 'dataScrollYAfter()',\n        '[attr.data-scroll-x-before]': 'dataScrollXBefore()',\n        '[attr.data-scroll-x-after]': 'dataScrollXAfter()',\n        '(scroll)': 'pcScrollArea.onScroll()'\n    },\n    hostDirectives: [Bind]\n})\nexport class ScrollAreaViewport extends BaseComponent {\n    componentName = 'ScrollAreaViewport';\n\n    $pcScrollAreaViewport: ScrollAreaViewport | undefined = inject(SCROLLAREA_VIEWPORT_INSTANCE, { optional: true, skipSelf: true }) ?? undefined;\n\n    bindDirectiveInstance = inject(Bind, { self: true });\n\n    pcScrollArea = inject<ScrollArea>(SCROLLAREA_INSTANCE);\n\n    _componentStyle = inject(ScrollAreaStyle);\n\n    private hostEl = inject(ElementRef);\n\n    viewportTabindex = computed(() => (this.pcScrollArea.hasOverflowX() || this.pcScrollArea.hasOverflowY() ? this.pcScrollArea.tabindex() : null));\n\n    dataScrollYBefore = computed(() => (this.pcScrollArea.yBefore() ? '' : null));\n\n    dataScrollYAfter = computed(() => (this.pcScrollArea.yAfter() ? '' : null));\n\n    dataScrollXBefore = computed(() => (this.pcScrollArea.xBefore() ? '' : null));\n\n    dataScrollXAfter = computed(() => (this.pcScrollArea.xAfter() ? '' : null));\n\n    onAfterViewChecked(): void {\n        this.bindDirectiveInstance.setAttrs(this.pcScrollArea.ptms(['viewport']));\n    }\n\n    onAfterViewInit() {\n        this.pcScrollArea.viewportEl = this.hostEl.nativeElement;\n    }\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, computed, inject, input, NgModule, numberAttribute, signal, ViewEncapsulation } from '@angular/core';\nimport { SharedModule } from 'primeng/api';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind, BindModule } from 'primeng/bind';\nimport { ScrollAreaPassThrough, ScrollAreaVariant } from 'primeng/types/scrollarea';\nimport { ScrollAreaContent } from './scrollarea-content';\nimport { ScrollAreaCorner } from './scrollarea-corner';\nimport { ScrollAreaScrollbar } from './scrollarea-scrollbar';\nimport { ScrollAreaHandle } from './scrollarea-handle';\nimport { SCROLLAREA_INSTANCE } from './scrollarea-token';\nimport { ScrollAreaViewport } from './scrollarea-viewport';\nimport { ScrollAreaStyle } from './style/scrollareastyle';\n\nconst SCROLL_TIMEOUT = 500;\nconst MIN_HANDLE_SIZE = 20;\n\n/**\n * ScrollArea is a cross browser, lightweight and themable alternative to native browser scrollbar.\n * @group Components\n */\n@Component({\n    selector: 'p-scrollarea, p-scroll-area',\n    standalone: true,\n    imports: [SharedModule, BindModule],\n    template: `<ng-content></ng-content>`,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None,\n    providers: [ScrollAreaStyle, { provide: SCROLLAREA_INSTANCE, useExisting: ScrollArea }, { provide: PARENT_INSTANCE, useExisting: ScrollArea }],\n    host: {\n        '[class]': 'cx(\"root\")',\n        '[style]': 'sx(\"root\")',\n        '[attr.data-variant]': 'variant()',\n        '[style.--px-corner-height]': 'cornerHeightPx()',\n        '[style.--px-corner-width]': 'cornerWidthPx()',\n        '(pointerenter)': 'onRootPointerEnter($event)',\n        '(pointerleave)': 'onRootPointerLeave()',\n        '(pointerdown)': 'onRootPointerDown($event)'\n    },\n    hostDirectives: [Bind]\n})\nexport class ScrollArea extends BaseComponent<ScrollAreaPassThrough> {\n    componentName = 'ScrollArea';\n\n    $pcScrollArea: ScrollArea | undefined = inject(SCROLLAREA_INSTANCE, { optional: true, skipSelf: true }) ?? undefined;\n\n    bindDirectiveInstance = inject(Bind, { self: true });\n\n    /**\n     * Scrollbar visibility variant.\n     * @group Props\n     */\n    variant = input<ScrollAreaVariant>('auto');\n\n    /**\n     * Whether to show gradient mask at scroll edges.\n     * @group Props\n     */\n    mask = input(false, { transform: booleanAttribute });\n    /**\n     * Tabindex of the viewport when content overflows.\n     * @defaultValue 0\n     * @group Props\n     */\n    tabindex = input(0, { transform: numberAttribute });\n\n    _componentStyle = inject(ScrollAreaStyle);\n\n    hovering = signal(false);\n\n    scrollingX = signal(false);\n\n    scrollingY = signal(false);\n\n    touchModality = signal(false);\n\n    hiddenX = signal(true);\n\n    hiddenY = signal(true);\n\n    cornerHidden = signal(true);\n\n    hasOverflowX = signal(false);\n\n    hasOverflowY = signal(false);\n\n    yBefore = signal(false);\n\n    yAfter = signal(false);\n\n    xBefore = signal(false);\n\n    xAfter = signal(false);\n\n    cornerWidthValue = signal(0);\n\n    cornerHeightValue = signal(0);\n\n    cornerWidthPx = computed(() => `${this.cornerWidthValue()}px`);\n\n    cornerHeightPx = computed(() => `${this.cornerHeightValue()}px`);\n\n    dataHovering = computed(() => (this.hovering() ? '' : null));\n\n    dataScrollingY = computed(() => (this.scrollingY() ? '' : null));\n\n    dataScrollingX = computed(() => (this.scrollingX() ? '' : null));\n\n    viewportEl: HTMLElement | null = null;\n\n    scrollbarYEl: HTMLElement | null = null;\n\n    scrollbarXEl: HTMLElement | null = null;\n\n    handleYEl: HTMLElement | null = null;\n\n    handleXEl: HTMLElement | null = null;\n\n    cornerEl: HTMLElement | null = null;\n\n    private isDragging = false;\n\n    private dragOrientation: 'vertical' | 'horizontal' = 'vertical';\n\n    private dragStart = { pointerPos: 0, scrollPos: 0 };\n\n    private prevScroll = { top: 0, left: 0 };\n\n    private scrollXTimeout: ReturnType<typeof setTimeout> | null = null;\n\n    private scrollYTimeout: ReturnType<typeof setTimeout> | null = null;\n\n    private rafId: number | null = null;\n\n    private resizeObserver: ResizeObserver | null = null;\n\n    onAfterViewChecked(): void {\n        this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n    }\n\n    onAfterViewInit() {\n        if (isPlatformBrowser(this.platformId)) {\n            this.computeHandle();\n            this.setupResizeObserver();\n        }\n    }\n\n    onDestroy() {\n        this.resizeObserver?.disconnect();\n        this.resizeObserver = null;\n\n        if (this.scrollXTimeout) clearTimeout(this.scrollXTimeout);\n        if (this.scrollYTimeout) clearTimeout(this.scrollYTimeout);\n        if (this.rafId) cancelAnimationFrame(this.rafId);\n    }\n\n    private setupResizeObserver() {\n        const vp = this.viewportEl;\n        if (!vp) return;\n\n        let localRaf: number | null = null;\n\n        this.resizeObserver = new ResizeObserver(() => {\n            if (localRaf) return;\n            localRaf = requestAnimationFrame(() => {\n                localRaf = null;\n                this.computeHandle();\n            });\n        });\n\n        this.resizeObserver.observe(vp);\n        if (vp.firstElementChild) {\n            this.resizeObserver.observe(vp.firstElementChild);\n        }\n    }\n\n    computeHandle() {\n        const vp = this.viewportEl;\n        if (!vp) return;\n\n        const { scrollHeight, scrollWidth, clientHeight, clientWidth, scrollTop, scrollLeft } = vp;\n        const yHidden = clientHeight >= scrollHeight;\n        const xHidden = clientWidth >= scrollWidth;\n\n        const scrollbarY = this.scrollbarYEl;\n        const scrollbarX = this.scrollbarXEl;\n\n        const cw = !yHidden && !xHidden && scrollbarY ? scrollbarY.offsetWidth : 0;\n        const ch = !yHidden && !xHidden && scrollbarX ? scrollbarX.offsetHeight : 0;\n        const scrollbarYHeight = scrollbarY && !yHidden ? scrollbarY.offsetHeight : 0;\n        const scrollbarXWidth = scrollbarX && !xHidden ? scrollbarX.offsetWidth : 0;\n\n        this.hiddenX.set(xHidden);\n        this.hiddenY.set(yHidden);\n        this.cornerHidden.set(xHidden || yHidden);\n        this.cornerWidthValue.set(cw);\n        this.cornerHeightValue.set(ch);\n        this.hasOverflowX.set(!xHidden);\n        this.hasOverflowY.set(!yHidden);\n        this.xBefore.set(!xHidden && scrollLeft > 0);\n        this.xAfter.set(!xHidden && scrollWidth - clientWidth - scrollLeft > 1);\n        this.yBefore.set(!yHidden && scrollTop > 0);\n        this.yAfter.set(!yHidden && scrollHeight - clientHeight - scrollTop > 1);\n\n        if (scrollbarY && !yHidden && scrollbarYHeight > 0) {\n            const handleRatio = clientHeight / scrollHeight;\n            const handleHeight = Math.max(handleRatio * scrollbarYHeight, MIN_HANDLE_SIZE);\n            const availableTrack = scrollbarYHeight - handleHeight;\n            const maxScrollTop = scrollHeight - clientHeight;\n            const scrollRatio = maxScrollTop > 0 ? scrollTop / maxScrollTop : 0;\n            const offsetPx = scrollRatio * availableTrack;\n\n            scrollbarY.style.setProperty('--px-handle-height', `${handleHeight}px`);\n            scrollbarY.style.setProperty('--px-handle-offset', `${offsetPx}px`);\n        }\n\n        if (scrollbarX && !xHidden && scrollbarXWidth > 0) {\n            const handleRatio = clientWidth / scrollWidth;\n            const handleWidth = Math.max(handleRatio * scrollbarXWidth, MIN_HANDLE_SIZE);\n            const availableTrack = scrollbarXWidth - handleWidth;\n            const maxScrollLeft = scrollWidth - clientWidth;\n            const scrollRatio = maxScrollLeft > 0 ? scrollLeft / maxScrollLeft : 0;\n            const offsetPx = scrollRatio * availableTrack;\n\n            scrollbarX.style.setProperty('--px-handle-width', `${handleWidth}px`);\n            scrollbarX.style.setProperty('--px-handle-offset', `${offsetPx}px`);\n        }\n\n        this.cd.markForCheck();\n    }\n\n    onScroll() {\n        if (!this.rafId) {\n            this.rafId = requestAnimationFrame(() => {\n                this.rafId = null;\n                this.computeHandle();\n            });\n        }\n\n        const vp = this.viewportEl;\n        if (!vp) return;\n\n        const { scrollTop, scrollLeft } = vp;\n\n        if (scrollTop !== this.prevScroll.top) {\n            this.scrollingY.set(true);\n            if (this.scrollYTimeout) clearTimeout(this.scrollYTimeout);\n            this.scrollYTimeout = setTimeout(() => {\n                this.scrollingY.set(false);\n                this.cd.markForCheck();\n            }, SCROLL_TIMEOUT);\n        }\n\n        if (scrollLeft !== this.prevScroll.left) {\n            this.scrollingX.set(true);\n            if (this.scrollXTimeout) clearTimeout(this.scrollXTimeout);\n            this.scrollXTimeout = setTimeout(() => {\n                this.scrollingX.set(false);\n                this.cd.markForCheck();\n            }, SCROLL_TIMEOUT);\n        }\n\n        this.prevScroll.top = scrollTop;\n        this.prevScroll.left = scrollLeft;\n\n        this.cd.markForCheck();\n    }\n\n    onHandlePointerDown(event: PointerEvent, orientation: 'vertical' | 'horizontal') {\n        if (event.pointerType === 'mouse' && event.button !== 0) return;\n\n        event.preventDefault();\n        event.stopPropagation();\n\n        const isVertical = orientation === 'vertical';\n        const scrollbar = isVertical ? this.scrollbarYEl : this.scrollbarXEl;\n        const vp = this.viewportEl;\n\n        if (!scrollbar || !vp) return;\n\n        scrollbar.setPointerCapture(event.pointerId);\n        this.isDragging = true;\n        this.dragOrientation = orientation;\n        this.dragStart = {\n            pointerPos: isVertical ? event.clientY : event.clientX,\n            scrollPos: isVertical ? vp.scrollTop : vp.scrollLeft\n        };\n    }\n\n    onScrollbarPointerDown(event: PointerEvent, orientation: 'vertical' | 'horizontal') {\n        if (event.pointerType === 'mouse' && event.button !== 0) return;\n\n        event.preventDefault();\n\n        const isVertical = orientation === 'vertical';\n        const scrollbar = isVertical ? this.scrollbarYEl : this.scrollbarXEl;\n        const vp = this.viewportEl;\n\n        if (!scrollbar || !vp) return;\n\n        scrollbar.setPointerCapture(event.pointerId);\n        this.isDragging = true;\n        this.dragOrientation = orientation;\n\n        const rect = scrollbar.getBoundingClientRect();\n        const handle = isVertical ? this.handleYEl : this.handleXEl;\n        const handleSize = handle ? (isVertical ? handle.offsetHeight : handle.offsetWidth) : 0;\n        const trackSize = isVertical ? rect.height : rect.width;\n        const effectiveTrack = trackSize - handleSize;\n\n        if (effectiveTrack > 0) {\n            const clickPos = (isVertical ? event.clientY - rect.top : event.clientX - rect.left) - handleSize / 2;\n            const ratio = Math.max(0, Math.min(1, clickPos / effectiveTrack));\n            const maxScroll = isVertical ? vp.scrollHeight - vp.clientHeight : vp.scrollWidth - vp.clientWidth;\n\n            if (isVertical) {\n                vp.scrollTop = ratio * maxScroll;\n            } else {\n                vp.scrollLeft = ratio * maxScroll;\n            }\n        }\n\n        this.dragStart = {\n            pointerPos: isVertical ? event.clientY : event.clientX,\n            scrollPos: isVertical ? vp.scrollTop : vp.scrollLeft\n        };\n    }\n\n    onScrollbarPointerMove(event: PointerEvent) {\n        if (!this.isDragging) return;\n\n        event.preventDefault();\n\n        const isVertical = this.dragOrientation === 'vertical';\n        const vp = this.viewportEl;\n        const scrollbar = isVertical ? this.scrollbarYEl : this.scrollbarXEl;\n\n        if (!vp || !scrollbar) return;\n\n        const rect = scrollbar.getBoundingClientRect();\n        const handle = isVertical ? this.handleYEl : this.handleXEl;\n        const handleSize = handle ? (isVertical ? handle.offsetHeight : handle.offsetWidth) : 0;\n        const trackSize = isVertical ? rect.height : rect.width;\n        const effectiveTrack = trackSize - handleSize;\n\n        if (effectiveTrack <= 0) return;\n\n        const currentPos = isVertical ? event.clientY : event.clientX;\n        const delta = currentPos - this.dragStart.pointerPos;\n        const maxScroll = isVertical ? vp.scrollHeight - vp.clientHeight : vp.scrollWidth - vp.clientWidth;\n        const scrollDelta = (delta / effectiveTrack) * maxScroll;\n\n        if (isVertical) {\n            vp.scrollTop = this.dragStart.scrollPos + scrollDelta;\n        } else {\n            vp.scrollLeft = this.dragStart.scrollPos + scrollDelta;\n        }\n    }\n\n    onScrollbarPointerUp(event: PointerEvent) {\n        event.preventDefault();\n        (event.currentTarget as HTMLElement).releasePointerCapture(event.pointerId);\n        this.isDragging = false;\n    }\n\n    onScrollbarWheel(event: WheelEvent, orientation: 'vertical' | 'horizontal') {\n        const vp = this.viewportEl;\n        if (!vp || event.ctrlKey) return;\n\n        if (orientation === 'vertical') {\n            vp.scrollTop += event.deltaY;\n        } else {\n            vp.scrollLeft += event.deltaX || event.deltaY;\n        }\n    }\n\n    onRootPointerEnter(event: PointerEvent) {\n        if (event.pointerType === 'touch') {\n            this.touchModality.set(true);\n        } else {\n            this.touchModality.set(false);\n            this.hovering.set(true);\n        }\n    }\n\n    onRootPointerLeave() {\n        this.hovering.set(false);\n    }\n\n    onRootPointerDown(event: PointerEvent) {\n        if (event.pointerType === 'touch') {\n            this.touchModality.set(true);\n        }\n    }\n\n    /**\n     * Refreshes the position and size of the scrollbar.\n     * @group Method\n     */\n    refresh() {\n        this.computeHandle();\n    }\n}\n\n@NgModule({\n    imports: [ScrollArea, ScrollAreaViewport, ScrollAreaContent, ScrollAreaScrollbar, ScrollAreaHandle, ScrollAreaCorner, SharedModule, BindModule],\n    exports: [ScrollArea, ScrollAreaViewport, ScrollAreaContent, ScrollAreaScrollbar, ScrollAreaHandle, ScrollAreaCorner, SharedModule, BindModule]\n})\nexport class ScrollAreaModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}