{"version":3,"file":"primeng-carousel.mjs","sources":["../../src/carousel/style/carouselstyle.ts","../../src/carousel/carousel-token.ts","../../src/carousel/carousel-content.ts","../../src/carousel/carousel-item.ts","../../src/carousel/carousel-next.ts","../../src/carousel/carousel-prev.ts","../../src/carousel/carousel-indicator.ts","../../src/carousel/carousel-indicators.ts","../../src/carousel/carousel-legacy.ts","../../src/carousel/carousel.ts","../../src/carousel/primeng-carousel.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { style } from '@primeuix/styles/carousel';\nimport { BaseStyle } from 'primeng/base';\n\nconst classes = {\n    root: ({ instance }) => [\n        'p-carousel p-component',\n        {\n            'p-carousel-vertical': instance.isVertical(),\n            'p-carousel-horizontal': !instance.isVertical()\n        }\n    ],\n    header: 'p-carousel-header',\n    contentContainer: 'p-carousel-content-container',\n    content: 'p-carousel-content',\n    pcPrevButton: ({ instance }) => [\n        'p-carousel-prev-button',\n        {\n            'p-disabled': instance.isBackwardNavDisabled()\n        }\n    ],\n    viewport: 'p-carousel-viewport',\n    itemList: 'p-carousel-item-list',\n    itemClone: ({ instance, index }) => [\n        'p-carousel-item p-carousel-item-clone',\n        {\n            'p-carousel-item-active': instance.totalShiftedItems() * -1 === instance.value()?.length,\n            'p-carousel-item-start': 0 === index,\n            'p-carousel-item-end': instance.clonedItemsForStarting().length - 1 === index\n        }\n    ],\n    item: ({ instance, index }) => [\n        'p-carousel-item',\n        {\n            'p-carousel-item-active': instance.firstIndex() <= index && instance.lastIndex() >= index,\n            'p-carousel-item-start': instance.firstIndex() === index,\n            'p-carousel-item-end': instance.lastIndex() === index\n        }\n    ],\n    pcNextButton: ({ instance }) => [\n        'p-carousel-next-button',\n        {\n            'p-disabled': instance.isForwardNavDisabled()\n        }\n    ],\n    indicatorList: ({ instance }) => ['p-carousel-indicator-list', instance.indicatorsContentClass()],\n    indicator: ({ instance, index }) => [\n        'p-carousel-indicator',\n        {\n            'p-carousel-indicator-active': instance._page() === index\n        }\n    ],\n    indicatorButton: ({ instance }) => ['p-carousel-indicator-button', instance.indicatorStyleClass()],\n    footer: 'p-carousel-footer',\n    // Composition mode\n    compositionRoot: 'p-carousel p-component',\n    compositionIndicator: ({ instance, index }) => ['p-carousel-indicator-button', { 'p-carousel-indicator-active': instance.pageState() === index }],\n    compositionContent: ({ instance }) => ['p-carousel-content', instance.orientation() === 'vertical' ? 'p-carousel-content-vertical' : 'p-carousel-content-horizontal'],\n    compositionItem: 'p-carousel-item',\n    compositionPrev: ({ instance }) => [{ 'p-disabled': instance.isPrevDisabled() }],\n    compositionNext: ({ instance }) => [{ 'p-disabled': instance.isNextDisabled() }]\n};\n\n@Injectable()\nexport class CarouselStyle extends BaseStyle {\n    name = 'carousel';\n\n    style = style;\n\n    classes = classes;\n}\n\n/**\n *\n * Carousel is a content slider featuring various customization options.\n *\n * [Live Demo](https://www.primeng.org/carousel/)\n *\n * @module carouselstyle\n *\n */\nexport enum CarouselClasses {\n    /**\n     * Class name of the root element\n     */\n    root = 'p-carousel',\n    /**\n     * Class name of the header element\n     */\n    header = 'p-carousel-header',\n    /**\n     * Class name of the content container element\n     */\n    contentContainer = 'p-carousel-content-container',\n    /**\n     * Class name of the content element\n     */\n    content = 'p-carousel-content',\n    /**\n     * Class name of the previous button element\n     */\n    pcPrevButton = 'p-carousel-prev-button',\n    /**\n     * Class name of the viewport element\n     */\n    viewport = 'p-carousel-viewport',\n    /**\n     * Class name of the item list element\n     */\n    itemList = 'p-carousel-item-list',\n    /**\n     * Class name of the item clone element\n     */\n    itemClone = 'p-carousel-item-clone',\n    /**\n     * Class name of the item element\n     */\n    item = 'p-carousel-item',\n    /**\n     * Class name of the next button element\n     */\n    pcNextButton = 'p-carousel-next-button',\n    /**\n     * Class name of the indicator list element\n     */\n    indicatorList = 'p-carousel-indicator-list',\n    /**\n     * Class name of the indicator element\n     */\n    indicator = 'p-carousel-indicator',\n    /**\n     * Class name of the indicator button element\n     */\n    indicatorButton = 'p-carousel-indicator-button',\n    /**\n     * Class name of the footer element\n     */\n    footer = 'p-carousel-footer'\n}\n\nexport interface CarouselStyle extends BaseStyle {}\n","import { InjectionToken } from '@angular/core';\n\nexport const CAROUSEL_ROOT = new InjectionToken<any>('CAROUSEL_ROOT');\n","import { afterNextRender, ChangeDetectionStrategy, Component, computed, inject, ViewEncapsulation } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind, BindModule } from 'primeng/bind';\nimport { CAROUSEL_ROOT } from './carousel-token';\nimport { CarouselStyle } from './style/carouselstyle';\nimport type { CarouselContentPassThrough } from 'primeng/types/carousel';\n\n/**\n * CarouselContent is the scrollable track element that contains carousel items.\n * @group Components\n */\n@Component({\n    selector: 'p-carousel-content',\n    standalone: true,\n    imports: [BindModule],\n    template: `<ng-content></ng-content>`,\n    providers: [CarouselStyle, { provide: PARENT_INSTANCE, useExisting: CarouselContent }],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None,\n    host: {\n        '[class]': \"root.cx('compositionContent')\",\n        '[attr.data-scope]': \"'carousel'\",\n        '[attr.data-part]': \"'content'\",\n        '[attr.data-orientation]': 'dataOrientation()',\n        '[attr.data-align]': 'dataAlign()',\n        '[attr.data-page]': 'dataPage()',\n        '[attr.data-autosize]': 'dataAutosize()',\n        '[attr.data-swiping]': 'dataSwiping()',\n        '[style.display]': \"'flex'\",\n        '[style.flex-direction]': 'flexDirection()',\n        '[style.overflow-x]': 'overflowX()',\n        '[style.overflow-y]': 'overflowY()',\n        '[style.overscroll-behavior-x]': 'overscrollX()',\n        '[style.overscroll-behavior-y]': 'overscrollY()',\n        '[style.gap]': \"'var(--px-spacing-items)'\",\n        '[style.scroll-snap-type]': \"'var(--px-scroll-snap-type)'\",\n        '[style.scrollbar-width]': \"'none'\",\n        '[style.position]': \"'relative'\",\n        '[style.--px-slides-per-page]': 'slidesPerPage()',\n        '[style.--px-spacing-items]': 'spacingItems()',\n        '[style.--px-scroll-snap-type]': 'scrollSnapType()',\n        '(pointerdown)': 'onPointerDown($event)',\n        '(pointermove)': 'onPointerMove($event)',\n        '(pointerup)': 'onPointerUp($event)',\n        '(wheel)': 'onWheel($event)'\n    },\n    hostDirectives: [Bind]\n})\nexport class CarouselContent extends BaseComponent<CarouselContentPassThrough> {\n    componentName = 'CarouselContent';\n\n    bindDirectiveInstance = inject(Bind, { self: true });\n\n    root = inject(CAROUSEL_ROOT);\n\n    isVertical = computed(() => this.root.orientation() === 'vertical');\n\n    flexDirection = computed(() => (this.isVertical() ? 'column' : 'row'));\n\n    overflowX = computed(() => (this.isVertical() ? null : 'scroll'));\n\n    overflowY = computed(() => (this.isVertical() ? 'scroll' : null));\n\n    overscrollX = computed(() => (this.isVertical() ? null : 'contain'));\n\n    overscrollY = computed(() => (this.isVertical() ? 'contain' : null));\n\n    dataAutosize = computed(() => (this.root.autoSize() ? '' : null));\n\n    dataSwiping = computed(() => (this.root.swiping() ? '' : null));\n\n    dataOrientation = computed(() => this.root.orientation());\n\n    dataAlign = computed(() => this.root.align());\n\n    dataPage = computed(() => this.root.pageState());\n\n    slidesPerPage = computed(() => this.root.slidesPerPage());\n\n    spacingItems = computed(() => this.root.spacing() + 'px');\n\n    scrollSnapType = computed(() => this.root.resolveSnapType());\n\n    onPointerDown(e: PointerEvent) {\n        this.root.onContentPointerDown(e);\n    }\n\n    onPointerMove(e: PointerEvent) {\n        this.root.onContentPointerMove(e);\n    }\n\n    onPointerUp(e: PointerEvent) {\n        this.root.onContentPointerUp(e);\n    }\n\n    onWheel(e: WheelEvent) {\n        this.root.onContentWheel(e);\n    }\n\n    onAfterViewChecked() {\n        this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n    }\n\n    constructor() {\n        super();\n        afterNextRender(() => {\n            this.root.setContentEl(this.$el);\n            this.root.setupObservers();\n        });\n    }\n}\n","import { ChangeDetectionStrategy, Component, computed, inject, input, ViewEncapsulation } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind, BindModule } from 'primeng/bind';\nimport { CAROUSEL_ROOT } from './carousel-token';\nimport { CarouselStyle } from './style/carouselstyle';\nimport type { CarouselItemPassThrough } from 'primeng/types/carousel';\n\n/**\n * CarouselItem represents an individual item in the composition-based carousel.\n * @group Components\n */\n@Component({\n    selector: 'p-carousel-item',\n    standalone: true,\n    imports: [BindModule],\n    template: `<ng-content></ng-content>`,\n    providers: [CarouselStyle, { provide: PARENT_INSTANCE, useExisting: CarouselItem }],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None,\n    host: {\n        '[class]': \"root.cx('compositionItem')\",\n        '[attr.data-scope]': \"'carousel'\",\n        '[attr.data-part]': \"'item'\",\n        '[attr.data-item]': \"''\",\n        '[attr.data-value]': 'value()',\n        '[attr.data-orientation]': 'dataOrientation()',\n        '[attr.data-align]': 'dataAlign()',\n        '[attr.data-page]': 'dataPage()',\n        '[attr.data-swiping]': 'dataSwiping()',\n        '[attr.data-autosize]': 'dataAutosize()',\n        '[style.flex-grow]': '0',\n        '[style.flex-shrink]': '0',\n        '[style.min-width]': '0',\n        '[style.flex-basis]': 'flexBasis()',\n        '[style.scroll-snap-align]': 'scrollSnapAlign()'\n    },\n    hostDirectives: [Bind]\n})\nexport class CarouselItem extends BaseComponent<CarouselItemPassThrough> {\n    componentName = 'CarouselItem';\n\n    bindDirectiveInstance = inject(Bind, { self: true });\n\n    /**\n     * The value/identifier of the carousel item.\n     * @group Props\n     */\n    value = input<unknown>();\n\n    root = inject(CAROUSEL_ROOT);\n\n    dataOrientation = computed(() => this.root.orientation());\n\n    dataAlign = computed(() => this.root.align());\n\n    dataPage = computed(() => this.root.pageState());\n\n    dataSwiping = computed(() => (this.root.swiping() ? '' : null));\n\n    dataAutosize = computed(() => (this.root.autoSize() ? '' : null));\n\n    flexBasis = computed(() => (this.root.autoSize() ? 'auto' : 'calc(100% / var(--px-slides-per-page) - var(--px-spacing-items) * (var(--px-slides-per-page) - 1) / var(--px-slides-per-page))'));\n\n    scrollSnapAlign = computed(() => this.root.align());\n\n    onAfterViewChecked() {\n        this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n    }\n}\n","import { computed, Directive, inject } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { CAROUSEL_ROOT } from './carousel-token';\nimport { CarouselStyle } from './style/carouselstyle';\nimport type { CarouselNextPassThrough } from 'primeng/types/carousel';\n\n/**\n * CarouselNext is a directive for the next navigation button.\n * @group Directives\n */\n@Directive({\n    selector: '[pCarouselNext]',\n    standalone: true,\n    providers: [CarouselStyle, { provide: PARENT_INSTANCE, useExisting: CarouselNext }],\n    host: {\n        '[class]': 'hostClass()',\n        '[attr.data-scope]': \"'carousel'\",\n        '[attr.data-part]': \"'next'\",\n        '[attr.data-orientation]': 'dataOrientation()',\n        '[attr.data-align]': 'dataAlign()',\n        '[attr.data-page]': 'dataPage()',\n        '[attr.data-disabled]': 'dataDisabled()',\n        '[attr.data-swiping]': 'dataSwiping()',\n        '[attr.disabled]': 'attrDisabled()',\n        '(click)': 'onClick()'\n    }\n})\nexport class CarouselNext extends BaseComponent<CarouselNextPassThrough> {\n    componentName = 'CarouselNext';\n\n    root = inject(CAROUSEL_ROOT);\n\n    _componentStyle = inject(CarouselStyle);\n\n    hostClass = computed(() => this.root.cx('compositionNext'));\n\n    dataOrientation = computed(() => this.root.orientation());\n\n    dataAlign = computed(() => this.root.align());\n\n    dataPage = computed(() => this.root.pageState());\n\n    dataDisabled = computed(() => this.root.isNextDisabled());\n\n    dataSwiping = computed(() => (this.root.swiping() ? '' : null));\n\n    attrDisabled = computed(() => (this.root.isNextDisabled() ? true : null));\n\n    onClick() {\n        this.root.next();\n    }\n}\n","import { computed, Directive, inject } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { CAROUSEL_ROOT } from './carousel-token';\nimport { CarouselStyle } from './style/carouselstyle';\nimport type { CarouselPrevPassThrough } from 'primeng/types/carousel';\n\n/**\n * CarouselPrev is a directive for the previous navigation button.\n * @group Directives\n */\n@Directive({\n    selector: '[pCarouselPrev]',\n    standalone: true,\n    providers: [CarouselStyle, { provide: PARENT_INSTANCE, useExisting: CarouselPrev }],\n    host: {\n        '[class]': 'hostClass()',\n        '[attr.data-scope]': \"'carousel'\",\n        '[attr.data-part]': \"'prev'\",\n        '[attr.data-orientation]': 'dataOrientation()',\n        '[attr.data-align]': 'dataAlign()',\n        '[attr.data-page]': 'dataPage()',\n        '[attr.data-disabled]': 'dataDisabled()',\n        '[attr.data-swiping]': 'dataSwiping()',\n        '[attr.disabled]': 'attrDisabled()',\n        '(click)': 'onClick()'\n    }\n})\nexport class CarouselPrev extends BaseComponent<CarouselPrevPassThrough> {\n    componentName = 'CarouselPrev';\n\n    root = inject(CAROUSEL_ROOT);\n\n    _componentStyle = inject(CarouselStyle);\n\n    hostClass = computed(() => this.root.cx('compositionPrev'));\n\n    dataOrientation = computed(() => this.root.orientation());\n\n    dataAlign = computed(() => this.root.align());\n\n    dataPage = computed(() => this.root.pageState());\n\n    dataDisabled = computed(() => this.root.isPrevDisabled());\n\n    dataSwiping = computed(() => (this.root.swiping() ? '' : null));\n\n    attrDisabled = computed(() => (this.root.isPrevDisabled() ? true : null));\n\n    onClick() {\n        this.root.prev();\n    }\n}\n","import { computed, Directive, inject, input, numberAttribute } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind } from 'primeng/bind';\nimport { CAROUSEL_ROOT } from './carousel-token';\nimport { CarouselStyle } from './style/carouselstyle';\nimport type { CarouselIndicatorPassThrough } from 'primeng/types/carousel';\n\n/**\n * CarouselIndicator is a directive for an individual page indicator button.\n * @group Directives\n */\n@Directive({\n    selector: '[pCarouselIndicator]',\n    standalone: true,\n    providers: [CarouselStyle, { provide: PARENT_INSTANCE, useExisting: CarouselIndicator }],\n    host: {\n        '[class]': 'hostClass()',\n        '[attr.data-scope]': \"'carousel'\",\n        '[attr.data-part]': \"'indicator'\",\n        '[attr.data-orientation]': 'dataOrientation()',\n        '[attr.data-align]': 'dataAlign()',\n        '[attr.data-page]': 'dataPage()',\n        '[attr.data-active]': 'dataActive()',\n        '[attr.data-swiping]': 'dataSwiping()',\n        '(click)': 'onClick()'\n    },\n    hostDirectives: [Bind]\n})\nexport class CarouselIndicator extends BaseComponent<CarouselIndicatorPassThrough> {\n    componentName = 'CarouselIndicator';\n\n    /**\n     * The page index this indicator represents.\n     * @group Props\n     */\n    page = input(0, { transform: numberAttribute });\n\n    root = inject(CAROUSEL_ROOT);\n\n    bindDirectiveInstance = inject(Bind, { self: true });\n\n    _componentStyle = inject(CarouselStyle);\n\n    isActive = computed(() => this.root.pageState() === this.page());\n\n    hostClass = computed(() => this.root.cx('compositionIndicator', { index: this.page() }));\n\n    dataOrientation = computed(() => this.root.orientation());\n\n    dataAlign = computed(() => this.root.align());\n\n    dataPage = computed(() => this.root.pageState());\n\n    dataActive = computed(() => (this.isActive() ? '' : null));\n\n    dataSwiping = computed(() => (this.root.swiping() ? '' : null));\n\n    onClick() {\n        this.root.scrollToPage(this.page());\n    }\n\n    onAfterViewChecked() {\n        this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n    }\n}\n","import { ChangeDetectionStrategy, Component, computed, inject, ViewEncapsulation } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind, BindModule } from 'primeng/bind';\nimport { CAROUSEL_ROOT } from './carousel-token';\nimport { CarouselIndicator } from './carousel-indicator';\nimport type { CarouselIndicatorsPassThrough } from 'primeng/types/carousel';\n\n/**\n * CarouselIndicators renders the list of page indicators.\n * Auto-generates button indicators based on snap points.\n * @group Components\n */\n@Component({\n    selector: 'p-carousel-indicators',\n    standalone: true,\n    imports: [BindModule, CarouselIndicator],\n    template: `\n        @for (page of pages(); track page) {\n            <button type=\"button\" pCarouselIndicator [page]=\"page\"></button>\n        }\n    `,\n    providers: [{ provide: PARENT_INSTANCE, useExisting: CarouselIndicators }],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None,\n    host: {\n        '[class]': 'hostClass()',\n        '[attr.data-scope]': \"'carousel'\",\n        '[attr.data-part]': \"'indicators'\",\n        '[attr.data-orientation]': 'dataOrientation()',\n        '[attr.data-align]': 'dataAlign()',\n        '[attr.data-page]': 'dataPage()',\n        '[attr.data-swiping]': 'dataSwiping()'\n    },\n    hostDirectives: [Bind]\n})\nexport class CarouselIndicators extends BaseComponent<CarouselIndicatorsPassThrough> {\n    componentName = 'CarouselIndicators';\n\n    bindDirectiveInstance = inject(Bind, { self: true });\n\n    root = inject(CAROUSEL_ROOT);\n\n    hostClass = computed(() => this.root.cx('indicatorList'));\n\n    dataOrientation = computed(() => this.root.orientation());\n\n    dataAlign = computed(() => this.root.align());\n\n    dataPage = computed(() => this.root.pageState());\n\n    dataSwiping = computed(() => (this.root.swiping() ? '' : null));\n\n    pages = computed(() => {\n        const points = this.root.snapPoints();\n        return Array.from(points).map((_, i) => i);\n    });\n\n    onAfterViewChecked() {\n        this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n    }\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport { booleanAttribute, computed, contentChild, Directive, effect, ElementRef, inject, input, numberAttribute, output, signal, TemplateRef, untracked, viewChild } from '@angular/core';\nimport { addClass, find, findSingle, getAttribute, removeClass, setAttribute, uuid } from '@primeuix/utils';\nimport { Footer, Header } from 'primeng/api';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport type { ButtonDirectiveOptions } from 'primeng/types/button';\nimport type { CSSProperties } from 'primeng/types/shared';\nimport type { CarouselItemTemplateContext, CarouselOrientation, CarouselPageEvent, CarouselResponsiveOptions } from 'primeng/types/carousel';\nimport { CarouselStyle } from './style/carouselstyle';\n\n/**\n * Base class containing all legacy (data-driven) carousel logic.\n * Extended by the Carousel component.\n * @deprecated Use the composition API of Carousel instead (e.g. p-carousel-content, p-carousel-item).\n */\n@Directive()\nexport abstract class CarouselLegacyBase extends BaseComponent {\n    /**\n     * Index of the first item.\n     * @defaultValue 0\n     * @group Props\n     */\n    page = input(0, { transform: numberAttribute });\n\n    /**\n     * Number of items per page.\n     * @defaultValue 1\n     * @group Props\n     */\n    numVisible = input(1, { transform: numberAttribute });\n\n    /**\n     * Number of items to scroll.\n     * @defaultValue 1\n     * @group Props\n     */\n    numScroll = input(1, { transform: numberAttribute });\n\n    /**\n     * An array of options for responsive design.\n     * @see {CarouselResponsiveOptions}\n     * @group Props\n     */\n    responsiveOptions = input<CarouselResponsiveOptions[]>();\n\n    /**\n     * Specifies the layout of the component.\n     * @group Props\n     */\n    orientation = input<CarouselOrientation>('horizontal');\n\n    /**\n     * Height of the viewport in vertical layout.\n     * @group Props\n     */\n    verticalViewPortHeight = input('300px');\n\n    /**\n     * Style class of main content.\n     * @group Props\n     */\n    contentClass = input('');\n\n    /**\n     * Style class of the indicator items.\n     * @group Props\n     */\n    indicatorsContentClass = input('');\n\n    /**\n     * Inline style of the indicator items.\n     * @group Props\n     */\n    indicatorsContentStyle = input<CSSProperties>();\n\n    /**\n     * Style class of the indicators.\n     * @group Props\n     */\n    indicatorStyleClass = input('');\n\n    /**\n     * Style of the indicators.\n     * @group Props\n     */\n    indicatorStyle = input<CSSProperties>();\n\n    /**\n     * An array of objects to display.\n     * @defaultValue null\n     * @group Props\n     */\n    value = input<any[]>();\n\n    /**\n     * Defines if scrolling would be infinite.\n     * @group Props\n     */\n    circular = input(false, { transform: booleanAttribute });\n\n    /**\n     * Whether to display indicator container.\n     * @group Props\n     */\n    showIndicators = input(true, { transform: booleanAttribute });\n\n    /**\n     * Whether to display navigation buttons in container.\n     * @group Props\n     */\n    showNavigators = input(true, { transform: booleanAttribute });\n\n    /**\n     * Time in milliseconds to scroll items automatically.\n     * @group Props\n     */\n    autoplayInterval = input(0, { transform: numberAttribute });\n\n    /**\n     * Configuration object forwarded to the underlying button.\n     * @group Props\n     */\n    prevButtonProps = input<ButtonDirectiveOptions>({\n        severity: 'secondary',\n        variant: 'text',\n        rounded: true\n    });\n\n    /**\n     * Configuration object forwarded to the underlying button.\n     * @group Props\n     */\n    nextButtonProps = input<ButtonDirectiveOptions>({\n        severity: 'secondary',\n        variant: 'text',\n        rounded: true\n    });\n\n    /**\n     * Callback to invoke after scroll.\n     * @param {CarouselPageEvent} event - Custom page event.\n     * @group Emits\n     */\n    onPage = output<CarouselPageEvent>();\n\n    itemsContainer = viewChild<ElementRef>('itemsContainer');\n\n    indicatorContent = viewChild<ElementRef>('indicatorContent');\n\n    headerFacet = contentChild(Header, { descendants: false });\n\n    footerFacet = contentChild(Footer, { descendants: false });\n\n    /**\n     * Custom item template.\n     * @group Templates\n     */\n    itemTemplate = contentChild<TemplateRef<CarouselItemTemplateContext>>('item', { descendants: false });\n\n    /**\n     * Custom header template.\n     * @group Templates\n     */\n    headerTemplate = contentChild<TemplateRef<void>>('header', { descendants: false });\n\n    /**\n     * Custom footer template.\n     * @group Templates\n     */\n    footerTemplate = contentChild<TemplateRef<void>>('footer', { descendants: false });\n\n    /**\n     * Custom previous icon template.\n     * @group Templates\n     */\n    previousIconTemplate = contentChild<TemplateRef<void>>('previousicon', { descendants: false });\n\n    /**\n     * Custom next icon template.\n     * @group Templates\n     */\n    nextIconTemplate = contentChild<TemplateRef<void>>('nexticon', { descendants: false });\n\n    _componentStyle = inject(CarouselStyle);\n\n    _numVisible = 1;\n\n    _numScroll = 1;\n\n    _oldNumScroll = 0;\n\n    prevState = {\n        numScroll: 0,\n        numVisible: 0,\n        value: [] as unknown[]\n    };\n\n    defaultNumScroll = 1;\n\n    defaultNumVisible = 1;\n\n    _page = signal(0);\n\n    carouselStyle: HTMLStyleElement | null = null;\n\n    id: string | undefined;\n\n    totalShiftedItems = signal(0);\n\n    isRemainingItemsAdded = false;\n\n    animationTimeout: ReturnType<typeof setTimeout> | undefined;\n\n    translateTimeout: ReturnType<typeof setTimeout> | undefined;\n\n    remainingItems = 0;\n\n    startPos: { x: number; y: number } | null = null;\n\n    documentResizeListener: VoidFunction | null = null;\n\n    clonedItemsForStarting = signal<unknown[]>([]);\n\n    clonedItemsForFinishing = signal<unknown[]>([]);\n\n    allowAutoplay = signal(false);\n\n    interval: ReturnType<typeof setInterval> | undefined;\n\n    isCreated = false;\n\n    swipeThreshold = 20;\n\n    window: Window;\n\n    viewportStyle = computed(() => {\n        return { height: this.isVertical() ? this.verticalViewPortHeight() : 'auto' };\n    });\n\n    constructor() {\n        super();\n        this.window = this.document.defaultView as Window;\n        this.totalShiftedItems.set(this.page() * this.numScroll() * -1);\n\n        // Effect for page changes\n        effect(() => {\n            const pageVal = this.page();\n            untracked(() => {\n                if (this.isCreated && pageVal !== this._page()) {\n                    if (this.autoplayInterval()) {\n                        this.stopAutoplay();\n                    }\n\n                    if (pageVal > this._page() && pageVal <= this.totalDots() - 1) {\n                        this.step(-1, pageVal);\n                    } else if (pageVal < this._page()) {\n                        this.step(1, pageVal);\n                    }\n                }\n                this._page.set(pageVal);\n            });\n        });\n\n        // Effect for value changes\n        effect(() => {\n            const val = this.value();\n            if (isPlatformBrowser(this.platformId)) {\n                if (this.circular() && val) {\n                    this.setCloneItems();\n                }\n            }\n        });\n\n        // Effect for numVisible/numScroll changes\n        effect(() => {\n            const numVisibleVal = this.numVisible();\n            const numScrollVal = this.numScroll();\n            const responsiveOpts = this.responsiveOptions();\n\n            untracked(() => {\n                if (this.isCreated) {\n                    if (responsiveOpts) {\n                        this.defaultNumVisible = numVisibleVal;\n                        this.defaultNumScroll = numScrollVal;\n                    }\n\n                    if (this.isCircular()) {\n                        this.setCloneItems();\n                    }\n\n                    this.createStyle();\n                    this.calculatePosition();\n                }\n\n                this._numVisible = numVisibleVal;\n                this._numScroll = numScrollVal;\n            });\n        });\n    }\n\n    legacyOnAfterContentInit() {\n        this.id = uuid('pn_id_');\n        if (isPlatformBrowser(this.platformId)) {\n            this.allowAutoplay.set(!!this.autoplayInterval());\n\n            if (this.circular()) {\n                this.setCloneItems();\n            }\n\n            if (this.responsiveOptions()) {\n                this.defaultNumScroll = this._numScroll;\n                this.defaultNumVisible = this._numVisible;\n            }\n\n            this.createStyle();\n            this.calculatePosition();\n\n            if (this.responsiveOptions()) {\n                this.bindDocumentListeners();\n            }\n        }\n    }\n\n    legacyOnAfterContentChecked() {\n        if (isPlatformBrowser(this.platformId)) {\n            const isCircular = this.isCircular();\n            let totalShiftedItems = this.totalShiftedItems();\n            const val = this.value();\n\n            if (val && this.itemsContainer() && (this.prevState.numScroll !== this._numScroll || this.prevState.numVisible !== this._numVisible || this.prevState.value.length !== val.length)) {\n                if (this.autoplayInterval()) {\n                    this.stopAutoplay(false);\n                }\n\n                this.remainingItems = (val.length - this._numVisible) % this._numScroll;\n\n                let page = this._page();\n                if (this.totalDots() !== 0 && page >= this.totalDots()) {\n                    page = this.totalDots() - 1;\n                    this._page.set(page);\n                    this.onPage.emit({\n                        page: this._page()\n                    });\n                }\n\n                totalShiftedItems = page * this._numScroll * -1;\n                if (isCircular) {\n                    totalShiftedItems -= this._numVisible;\n                }\n\n                if (page === this.totalDots() - 1 && this.remainingItems > 0) {\n                    totalShiftedItems += -1 * this.remainingItems + this._numScroll;\n                    this.isRemainingItemsAdded = true;\n                } else {\n                    this.isRemainingItemsAdded = false;\n                }\n\n                if (totalShiftedItems !== this.totalShiftedItems()) {\n                    this.totalShiftedItems.set(totalShiftedItems);\n                }\n\n                this._oldNumScroll = this._numScroll;\n                this.prevState.numScroll = this._numScroll;\n                this.prevState.numVisible = this._numVisible;\n                this.prevState.value = [...val];\n\n                const itemsContainerEl = this.itemsContainer();\n                if (this.totalDots() > 0 && itemsContainerEl?.nativeElement) {\n                    itemsContainerEl.nativeElement.style.transform = this.isVertical() ? `translate3d(0, ${totalShiftedItems * (100 / this._numVisible)}%, 0)` : `translate3d(${totalShiftedItems * (100 / this._numVisible)}%, 0, 0)`;\n                }\n\n                this.isCreated = true;\n\n                if (this.autoplayInterval() && this.isAutoplay()) {\n                    this.startAutoplay();\n                }\n            }\n\n            if (isCircular && val) {\n                if (this._page() === 0) {\n                    totalShiftedItems = -1 * this._numVisible;\n                } else if (totalShiftedItems === 0) {\n                    totalShiftedItems = -1 * val.length;\n                    if (this.remainingItems > 0) {\n                        this.isRemainingItemsAdded = true;\n                    }\n                }\n\n                if (totalShiftedItems !== this.totalShiftedItems()) {\n                    this.totalShiftedItems.set(totalShiftedItems);\n                }\n            }\n        }\n    }\n\n    createStyle() {\n        if (!this.carouselStyle) {\n            const styleEl = this.renderer.createElement('style') as HTMLStyleElement;\n            setAttribute(styleEl, 'nonce', this.config?.csp()?.nonce);\n            this.renderer.appendChild(this.document.head, styleEl);\n            this.carouselStyle = styleEl;\n        }\n\n        let innerHTML = `\n            #${this.id} .p-carousel-item {\n\t\t\t\tflex: 1 0 ${100 / this._numVisible}%\n\t\t\t}\n        `;\n\n        const responsiveOpts = this.responsiveOptions();\n        if (responsiveOpts && !this.$unstyled()) {\n            responsiveOpts.sort((data1, data2) => {\n                const value1 = data1.breakpoint;\n                const value2 = data2.breakpoint;\n                let result: number | null = null;\n\n                if (value1 == null && value2 != null) result = -1;\n                else if (value1 != null && value2 == null) result = 1;\n                else if (value1 == null && value2 == null) result = 0;\n                else if (typeof value1 === 'string' && typeof value2 === 'string') result = value1.localeCompare(value2, undefined, { numeric: true });\n                else result = value1 < value2 ? -1 : value1 > value2 ? 1 : 0;\n\n                return -1 * result;\n            });\n\n            for (let i = 0; i < responsiveOpts.length; i++) {\n                let res = responsiveOpts[i];\n\n                innerHTML += `\n                    @media screen and (max-width: ${res.breakpoint}) {\n                        #${this.id} .p-carousel-item {\n                            flex: 1 0 ${100 / res.numVisible}%\n                        }\n                    }\n                `;\n            }\n        }\n\n        this.carouselStyle!.innerHTML = innerHTML;\n    }\n\n    calculatePosition() {\n        const responsiveOpts = this.responsiveOptions();\n        if (responsiveOpts) {\n            let matchedResponsiveData = {\n                numVisible: this.defaultNumVisible,\n                numScroll: this.defaultNumScroll\n            };\n\n            if (typeof window !== 'undefined') {\n                let windowWidth = window.innerWidth;\n                for (let i = 0; i < responsiveOpts.length; i++) {\n                    let res = responsiveOpts[i];\n\n                    if (parseInt(res.breakpoint, 10) >= windowWidth) {\n                        matchedResponsiveData = res;\n                    }\n                }\n            }\n\n            if (this._numScroll !== matchedResponsiveData.numScroll) {\n                let page = this._page();\n                page = Math.floor((page * this._numScroll) / matchedResponsiveData.numScroll);\n\n                let totalShiftedItems = matchedResponsiveData.numScroll * this._page() * -1;\n\n                if (this.isCircular()) {\n                    totalShiftedItems -= matchedResponsiveData.numVisible;\n                }\n\n                this.totalShiftedItems.set(totalShiftedItems);\n                this._numScroll = matchedResponsiveData.numScroll;\n\n                this._page.set(page);\n                this.onPage.emit({\n                    page: this._page()\n                });\n            }\n\n            if (this._numVisible !== matchedResponsiveData.numVisible) {\n                this._numVisible = matchedResponsiveData.numVisible;\n                this.setCloneItems();\n            }\n        }\n    }\n\n    setCloneItems() {\n        const val = this.value();\n        if (this.isCircular() && val) {\n            this.clonedItemsForStarting.set([...val.slice(-1 * this._numVisible)]);\n            this.clonedItemsForFinishing.set([...val.slice(0, this._numVisible)]);\n        } else {\n            this.clonedItemsForStarting.set([]);\n            this.clonedItemsForFinishing.set([]);\n        }\n    }\n\n    firstIndex() {\n        return this.isCircular() ? -1 * (this.totalShiftedItems() + this._numVisible) : this.totalShiftedItems() * -1;\n    }\n\n    lastIndex() {\n        return this.firstIndex() + this._numVisible - 1;\n    }\n\n    totalDots() {\n        const val = this.value();\n        return val?.length ? Math.ceil((val.length - this._numVisible) / this._numScroll) + 1 : 0;\n    }\n\n    totalDotsArray() {\n        const totalDots = this.totalDots();\n        return totalDots <= 0 ? [] : Array.from({ length: totalDots }, (_, i) => i);\n    }\n\n    isVertical() {\n        return this.orientation() === 'vertical';\n    }\n\n    isCircular() {\n        const val = this.value();\n        return this.circular() && val && val.length >= this._numVisible;\n    }\n\n    isAutoplay() {\n        return this.autoplayInterval() && this.allowAutoplay();\n    }\n\n    isForwardNavDisabled() {\n        return this.isEmpty() || (this._page() >= this.totalDots() - 1 && !this.isCircular());\n    }\n\n    isBackwardNavDisabled() {\n        return this.isEmpty() || (this._page() <= 0 && !this.isCircular());\n    }\n\n    isEmpty() {\n        const val = this.value();\n        return !val || val.length === 0;\n    }\n\n    // Template helper methods\n    hasHeader() {\n        return !!(this.headerFacet() || this.headerTemplate());\n    }\n\n    hasFooter() {\n        return !!(this.footerFacet() || this.footerTemplate());\n    }\n\n    ariaLive() {\n        return this.allowAutoplay() ? 'polite' : 'off';\n    }\n\n    showDefaultPrevIcon() {\n        return !this.previousIconTemplate();\n    }\n\n    showPrevIconTemplate() {\n        return !!this.previousIconTemplate();\n    }\n\n    showDefaultNextIcon() {\n        return !this.nextIconTemplate();\n    }\n\n    showNextIconTemplate() {\n        return !!this.nextIconTemplate();\n    }\n\n    // Clone items (starting) helpers\n    isCloneStartAriaHidden() {\n        return !(this.totalShiftedItems() * -1 === this.value()?.length);\n    }\n\n    isCloneStartActive() {\n        return this.totalShiftedItems() * -1 === (this.value()?.length ?? 0) + this.numVisible();\n    }\n\n    isCloneStartEnd(index: number) {\n        const cloned = this.clonedItemsForStarting();\n        return cloned.length > 0 && cloned.length - 1 === index;\n    }\n\n    // Main items helpers\n    isItemActive(index: number) {\n        return this.firstIndex() <= index && this.lastIndex() >= index;\n    }\n\n    isItemAriaHidden(index: number) {\n        return !this.isItemActive(index);\n    }\n\n    isItemStart(index: number) {\n        return this.firstIndex() === index;\n    }\n\n    isItemEnd(index: number) {\n        return this.lastIndex() === index;\n    }\n\n    // Indicator helpers\n    isIndicatorActive(index: number) {\n        return this._page() === index;\n    }\n\n    getIndicatorAriaCurrent(index: number) {\n        return this._page() === index ? 'page' : undefined;\n    }\n\n    getIndicatorTabindex(index: number) {\n        return this._page() === index ? 0 : -1;\n    }\n\n    navForward(e: MouseEvent | TouchEvent, index?: number) {\n        if (this.isCircular() || this._page() < this.totalDots() - 1) {\n            this.step(-1, index);\n        }\n\n        if (this.autoplayInterval()) {\n            this.stopAutoplay();\n        }\n\n        if (e && e.cancelable) {\n            e.preventDefault();\n        }\n    }\n\n    navBackward(e: MouseEvent | TouchEvent, index?: number) {\n        if (this.isCircular() || this._page() !== 0) {\n            this.step(1, index);\n        }\n\n        if (this.autoplayInterval()) {\n            this.stopAutoplay();\n        }\n\n        if (e && e.cancelable) {\n            e.preventDefault();\n        }\n    }\n\n    onDotClick(e: MouseEvent, index: number) {\n        let page = this._page();\n\n        if (this.autoplayInterval()) {\n            this.stopAutoplay();\n        }\n\n        if (index > page) {\n            this.navForward(e, index);\n        } else if (index < page) {\n            this.navBackward(e, index);\n        }\n    }\n\n    onIndicatorKeydown(event: KeyboardEvent) {\n        switch (event.code) {\n            case 'ArrowRight':\n                this.onRightKey();\n                break;\n\n            case 'ArrowLeft':\n                this.onLeftKey();\n                break;\n        }\n    }\n\n    onRightKey() {\n        const indicators = [...find(this.indicatorContent()?.nativeElement, '[data-pc-section=\"indicator\"]')];\n        const activeIndex = this.findFocusedIndicatorIndex();\n\n        this.changedFocusedIndicator(activeIndex, activeIndex + 1 === indicators.length ? indicators.length - 1 : activeIndex + 1);\n    }\n\n    onLeftKey() {\n        const activeIndex = this.findFocusedIndicatorIndex();\n\n        this.changedFocusedIndicator(activeIndex, activeIndex - 1 <= 0 ? 0 : activeIndex - 1);\n    }\n\n    onHomeKey() {\n        const activeIndex = this.findFocusedIndicatorIndex();\n\n        this.changedFocusedIndicator(activeIndex, 0);\n    }\n\n    onEndKey() {\n        const indicators = [...find(this.indicatorContent()?.nativeElement, '[data-pc-section=\"indicator\"]')];\n        const activeIndex = this.findFocusedIndicatorIndex();\n\n        this.changedFocusedIndicator(activeIndex, indicators.length - 1);\n    }\n\n    onTabKey() {\n        const indicators = [...find(this.indicatorContent()?.nativeElement, '[data-pc-section=\"indicator\"]')] as HTMLElement[];\n        const highlightedIndex = indicators.findIndex((ind) => getAttribute(ind, 'data-p-highlight') === true);\n\n        const activeIndicator = findSingle(this.indicatorContent()?.nativeElement, '[data-pc-section=\"indicator\"] > button[tabindex=\"0\"]') as HTMLElement | null;\n        const activeIndex = indicators.findIndex((ind) => ind === activeIndicator?.parentElement);\n\n        if (activeIndex >= 0 && highlightedIndex >= 0) {\n            (indicators[activeIndex].children[0] as HTMLElement).tabIndex = -1;\n            (indicators[highlightedIndex].children[0] as HTMLElement).tabIndex = 0;\n        }\n    }\n\n    findFocusedIndicatorIndex() {\n        const indicators = [...find(this.indicatorContent()?.nativeElement, '[data-pc-section=\"indicator\"]')];\n        const activeIndicator = findSingle(this.indicatorContent()?.nativeElement, '[data-pc-section=\"indicator\"] > button[tabindex=\"0\"]');\n\n        return indicators.findIndex((ind) => ind === activeIndicator?.parentElement);\n    }\n\n    changedFocusedIndicator(prevInd: number, nextInd: number) {\n        const indicators = [...find(this.indicatorContent()?.nativeElement, '[data-pc-section=\"indicator\"]')] as HTMLElement[];\n\n        if (indicators[prevInd] && indicators[nextInd]) {\n            (indicators[prevInd].children[0] as HTMLElement).tabIndex = -1;\n            (indicators[nextInd].children[0] as HTMLElement).tabIndex = 0;\n            (indicators[nextInd].children[0] as HTMLElement).focus();\n        }\n    }\n\n    step(dir: number, page?: number) {\n        let totalShiftedItems = this.totalShiftedItems();\n        const isCircular = this.isCircular();\n        const val = this.value();\n\n        if (page != null) {\n            totalShiftedItems = this._numScroll * page * -1;\n\n            if (isCircular) {\n                totalShiftedItems -= this._numVisible;\n            }\n\n            this.isRemainingItemsAdded = false;\n        } else {\n            totalShiftedItems += this._numScroll * dir;\n            if (this.isRemainingItemsAdded) {\n                totalShiftedItems += this.remainingItems - this._numScroll * dir;\n                this.isRemainingItemsAdded = false;\n            }\n\n            let originalShiftedItems = isCircular ? totalShiftedItems + this._numVisible : totalShiftedItems;\n            page = Math.abs(Math.floor(originalShiftedItems / this._numScroll));\n        }\n\n        if (isCircular && this._page() === this.totalDots() - 1 && dir === -1 && val) {\n            totalShiftedItems = -1 * (val.length + this._numVisible);\n            page = 0;\n        } else if (isCircular && this._page() === 0 && dir === 1) {\n            totalShiftedItems = 0;\n            page = this.totalDots() - 1;\n        } else if (page === this.totalDots() - 1 && this.remainingItems > 0) {\n            totalShiftedItems += this.remainingItems * -1 - this._numScroll * dir;\n            this.isRemainingItemsAdded = true;\n        }\n\n        const itemsContainerEl = this.itemsContainer();\n        if (itemsContainerEl) {\n            !this.$unstyled() && removeClass(itemsContainerEl.nativeElement, 'p-items-hidden');\n            itemsContainerEl.nativeElement.style.transform = this.isVertical() ? `translate3d(0, ${totalShiftedItems * (100 / this._numVisible)}%, 0)` : `translate3d(${totalShiftedItems * (100 / this._numVisible)}%, 0, 0)`;\n            itemsContainerEl.nativeElement.style.transition = 'transform 500ms ease 0s';\n        }\n\n        this.totalShiftedItems.set(totalShiftedItems);\n        this._page.set(page);\n        this.onPage.emit({\n            page: this._page()\n        });\n    }\n\n    startAutoplay() {\n        if (this.interval) {\n            clearInterval(this.interval);\n        }\n\n        this.interval = setInterval(() => {\n            if (this.totalDots() > 0) {\n                if (this._page() === this.totalDots() - 1) {\n                    this.step(-1, 0);\n                } else {\n                    this.step(-1, this._page() + 1);\n                }\n            }\n        }, this.autoplayInterval());\n        this.allowAutoplay.set(true);\n    }\n\n    stopAutoplay(changeAllow: boolean = true) {\n        if (this.interval) {\n            clearInterval(this.interval);\n            this.interval = undefined;\n            if (changeAllow) {\n                this.allowAutoplay.set(false);\n            }\n        }\n    }\n\n    isPlaying(): boolean {\n        return !!this.interval;\n    }\n\n    onTransitionEnd() {\n        const itemsContainerEl = this.itemsContainer();\n        if (itemsContainerEl) {\n            !this.$unstyled() && addClass(itemsContainerEl.nativeElement, 'p-items-hidden');\n            itemsContainerEl.nativeElement.style.transition = '';\n\n            if ((this._page() === 0 || this._page() === this.totalDots() - 1) && this.isCircular()) {\n                itemsContainerEl.nativeElement.style.transform = this.isVertical() ? `translate3d(0, ${this.totalShiftedItems() * (100 / this._numVisible)}%, 0)` : `translate3d(${this.totalShiftedItems() * (100 / this._numVisible)}%, 0, 0)`;\n            }\n        }\n    }\n\n    onTouchStart(e: TouchEvent) {\n        let touchobj = e.changedTouches[0];\n\n        this.startPos = {\n            x: touchobj.pageX,\n            y: touchobj.pageY\n        };\n    }\n\n    onTouchMove(e: TouchEvent | MouseEvent) {\n        if (e.cancelable) {\n            e.preventDefault();\n        }\n    }\n\n    onTouchEnd(e: TouchEvent) {\n        if (!this.startPos) return;\n\n        const touchobj = e.changedTouches[0];\n\n        if (this.isVertical()) {\n            this.changePageOnTouch(e, touchobj.pageY - this.startPos.y);\n        } else {\n            this.changePageOnTouch(e, touchobj.pageX - this.startPos.x);\n        }\n    }\n\n    changePageOnTouch(e: TouchEvent | MouseEvent, diff: number) {\n        if (Math.abs(diff) > this.swipeThreshold) {\n            if (diff < 0) {\n                this.navForward(e);\n            } else {\n                this.navBackward(e);\n            }\n        }\n    }\n\n    ariaPrevButtonLabel() {\n        return this.config.translation.aria ? this.config.translation.aria?.prevPageLabel : undefined;\n    }\n\n    ariaSlideLabel() {\n        return this.config.translation.aria ? this.config.translation.aria?.slide : undefined;\n    }\n\n    ariaNextButtonLabel() {\n        return this.config.translation.aria ? this.config.translation.aria?.nextPageLabel : undefined;\n    }\n\n    ariaSlideNumber(value: number) {\n        return this.config.translation.aria ? this.config.translation.aria?.slideNumber?.replace(/{slideNumber}/g, String(value)) : undefined;\n    }\n\n    ariaPageLabel(value: number) {\n        return this.config.translation.aria ? this.config.translation.aria?.pageLabel?.replace(/{page}/g, String(value)) : undefined;\n    }\n\n    getIndicatorPTOptions(key: string, index: number) {\n        return this.ptm(key, {\n            context: {\n                highlighted: index === this._page()\n            }\n        });\n    }\n\n    getItemPTOptions(key: string, index: number) {\n        return this.ptm(key, {\n            context: {\n                index,\n                active: this.firstIndex() <= index && this.lastIndex() >= index,\n                start: this.firstIndex() === index,\n                end: this.lastIndex() === index\n            }\n        });\n    }\n\n    bindDocumentListeners() {\n        if (isPlatformBrowser(this.platformId)) {\n            if (!this.documentResizeListener) {\n                this.documentResizeListener = this.renderer.listen(this.window, 'resize', () => {\n                    this.calculatePosition();\n                });\n            }\n        }\n    }\n\n    unbindDocumentListeners() {\n        if (isPlatformBrowser(this.platformId)) {\n            if (this.documentResizeListener) {\n                this.documentResizeListener();\n                this.documentResizeListener = null;\n            }\n        }\n    }\n\n    legacyOnDestroy() {\n        this.unbindDocumentListeners();\n        this.stopAutoplay();\n\n        if (this.carouselStyle) {\n            this.carouselStyle.remove();\n            this.carouselStyle = null;\n        }\n    }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, computed, contentChildren, effect, inject, input, NgModule, numberAttribute, output, signal, untracked, ViewEncapsulation } from '@angular/core';\nimport { SharedModule } from 'primeng/api';\nimport { PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind, BindModule } from 'primeng/bind';\nimport { ButtonDirective } from 'primeng/button';\nimport { ChevronDown as ChevronDownIcon } from '@primeicons/angular/chevron-down';\nimport { ChevronLeft as ChevronLeftIcon } from '@primeicons/angular/chevron-left';\nimport { ChevronRight as ChevronRightIcon } from '@primeicons/angular/chevron-right';\nimport { ChevronUp as ChevronUpIcon } from '@primeicons/angular/chevron-up';\nimport { CarouselStyle } from './style/carouselstyle';\nimport { CAROUSEL_ROOT } from './carousel-token';\nimport { CarouselContent as CarouselContentComp } from './carousel-content';\nimport { CarouselItem } from './carousel-item';\nimport { CarouselNext } from './carousel-next';\nimport { CarouselPrev } from './carousel-prev';\nimport { CarouselIndicators } from './carousel-indicators';\nimport { CarouselIndicator } from './carousel-indicator';\nimport { CarouselLegacyBase } from './carousel-legacy';\n\n/**\n * Carousel is a content slider featuring various customization options.\n * @group Components\n */\n@Component({\n    selector: 'p-carousel',\n    standalone: true,\n    imports: [NgTemplateOutlet, ChevronRightIcon, ButtonDirective, ChevronLeftIcon, ChevronDownIcon, ChevronUpIcon, SharedModule, BindModule],\n    template: `\n        @if (isCompositionMode()) {\n            <ng-content></ng-content>\n        } @else {\n            @if (hasHeader()) {\n                <div [class]=\"cx('header')\" [pBind]=\"ptm('header')\">\n                    <ng-content select=\"p-header\"></ng-content>\n                    <ng-container *ngTemplateOutlet=\"headerTemplate()\"></ng-container>\n                </div>\n            }\n            <div [class]=\"cn(cx('contentContainer'), contentClass())\" [pBind]=\"ptm('contentContainer')\">\n                <div [class]=\"cx('content')\" [attr.aria-live]=\"ariaLive()\" [pBind]=\"ptm('content')\">\n                    @if (showNavigators()) {\n                        <button\n                            type=\"button\"\n                            iconOnly\n                            [pButton]=\"prevButtonProps()\"\n                            [text]=\"true\"\n                            [class]=\"cx('pcPrevButton')\"\n                            [attr.aria-label]=\"ariaPrevButtonLabel()\"\n                            attr.data-pc-group-section=\"navigator\"\n                            [pButtonPT]=\"ptm('pcPrevButton')\"\n                            [pButtonUnstyled]=\"unstyled()\"\n                            (click)=\"navBackward($event)\"\n                        >\n                            @if (showDefaultPrevIcon()) {\n                                @if (!isVertical()) {\n                                    <svg data-p-icon=\"chevron-left\" />\n                                }\n                                @if (isVertical()) {\n                                    <svg data-p-icon=\"chevron-up\" />\n                                }\n                            }\n                            @if (showPrevIconTemplate()) {\n                                <ng-template *ngTemplateOutlet=\"previousIconTemplate()\"></ng-template>\n                            }\n                        </button>\n                    }\n                    <div [class]=\"cx('viewport')\" [style]=\"viewportStyle()\" (touchend)=\"onTouchEnd($event)\" (touchstart)=\"onTouchStart($event)\" (touchmove)=\"onTouchMove($event)\" [pBind]=\"ptm('viewport')\">\n                        <div #itemsContainer [class]=\"cx('itemList')\" (transitionend)=\"onTransitionEnd()\" [pBind]=\"ptm('itemList')\">\n                            @for (item of clonedItemsForStarting(); track $index; let i = $index) {\n                                <div\n                                    [class]=\"cx('itemClone', { index: i })\"\n                                    [attr.aria-hidden]=\"isCloneStartAriaHidden()\"\n                                    [attr.aria-label]=\"ariaSlideNumber(i)\"\n                                    [attr.aria-roledescription]=\"ariaSlideLabel()\"\n                                    [attr.data-p-carousel-item-active]=\"isCloneStartActive()\"\n                                    [attr.data-p-carousel-item-start]=\"i === 0\"\n                                    [attr.data-p-carousel-item-end]=\"isCloneStartEnd(i)\"\n                                    [pBind]=\"ptm('itemClone')\"\n                                >\n                                    <ng-container *ngTemplateOutlet=\"itemTemplate(); context: { $implicit: item }\"></ng-container>\n                                </div>\n                            }\n                            @for (item of value(); track $index; let i = $index) {\n                                <div\n                                    [class]=\"cx('item', { index: i })\"\n                                    role=\"group\"\n                                    [attr.aria-hidden]=\"isItemAriaHidden(i)\"\n                                    [attr.aria-label]=\"ariaSlideNumber(i)\"\n                                    [attr.aria-roledescription]=\"ariaSlideLabel()\"\n                                    [attr.data-p-carousel-item-active]=\"isItemActive(i)\"\n                                    [attr.data-p-carousel-item-start]=\"isItemStart(i)\"\n                                    [attr.data-p-carousel-item-end]=\"isItemEnd(i)\"\n                                    [pBind]=\"getItemPTOptions('item', i)\"\n                                >\n                                    <ng-container *ngTemplateOutlet=\"itemTemplate(); context: { $implicit: item }\"></ng-container>\n                                </div>\n                            }\n                            @for (item of clonedItemsForFinishing(); track $index) {\n                                <div [class]=\"cx('itemClone', { index: 0 })\" [attr.data-p-carousel-item-active]=\"false\" [attr.data-p-carousel-item-start]=\"false\" [attr.data-p-carousel-item-end]=\"false\" [pBind]=\"ptm('itemClone')\">\n                                    <ng-container *ngTemplateOutlet=\"itemTemplate(); context: { $implicit: item }\"></ng-container>\n                                </div>\n                            }\n                        </div>\n                    </div>\n                    @if (showNavigators()) {\n                        <button\n                            type=\"button\"\n                            iconOnly\n                            [pButton]=\"nextButtonProps()\"\n                            [text]=\"true\"\n                            [class]=\"cx('pcNextButton')\"\n                            [attr.aria-label]=\"ariaNextButtonLabel()\"\n                            attr.data-pc-group-section=\"navigator\"\n                            [pButtonPT]=\"ptm('pcNextButton')\"\n                            [pButtonUnstyled]=\"unstyled()\"\n                            (click)=\"navForward($event)\"\n                        >\n                            @if (showDefaultNextIcon()) {\n                                @if (!isVertical()) {\n                                    <svg data-p-icon=\"chevron-right\" />\n                                }\n                                @if (isVertical()) {\n                                    <svg data-p-icon=\"chevron-down\" />\n                                }\n                            }\n                            @if (showNextIconTemplate()) {\n                                <ng-template *ngTemplateOutlet=\"nextIconTemplate()\"></ng-template>\n                            }\n                        </button>\n                    }\n                </div>\n                @if (showIndicators()) {\n                    <ul #indicatorContent [class]=\"cx('indicatorList')\" [style]=\"indicatorsContentStyle()\" (keydown)=\"onIndicatorKeydown($event)\" [pBind]=\"ptm('indicatorList')\">\n                        @for (dot of totalDotsArray(); track dot) {\n                            <li [class]=\"cx('indicator', { index: dot })\" [attr.data-p-active]=\"isIndicatorActive(dot)\" [pBind]=\"getIndicatorPTOptions('indicator', dot)\">\n                                <button\n                                    type=\"button\"\n                                    [class]=\"cx('indicatorButton')\"\n                                    (click)=\"onDotClick($event, dot)\"\n                                    [style]=\"indicatorStyle()\"\n                                    [attr.aria-label]=\"ariaPageLabel(dot + 1)\"\n                                    [attr.aria-current]=\"getIndicatorAriaCurrent(dot)\"\n                                    [tabindex]=\"getIndicatorTabindex(dot)\"\n                                    [pBind]=\"getIndicatorPTOptions('indicatorButton', dot)\"\n                                ></button>\n                            </li>\n                        }\n                    </ul>\n                }\n            </div>\n            @if (hasFooter()) {\n                <div [class]=\"cx('footer')\" [pBind]=\"ptm('footer')\">\n                    <ng-content select=\"p-footer\"></ng-content>\n                    <ng-container *ngTemplateOutlet=\"footerTemplate()\"></ng-container>\n                </div>\n            }\n        }\n    `,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None,\n    providers: [CarouselStyle, { provide: PARENT_INSTANCE, useExisting: Carousel }, { provide: CAROUSEL_ROOT, useExisting: Carousel }],\n    hostDirectives: [Bind],\n    host: {\n        '[attr.id]': 'id',\n        '[attr.role]': \"'region'\",\n        '[class]': 'hostClass()',\n        '[attr.data-scope]': 'dataScope()',\n        '[attr.data-part]': 'dataPart()',\n        '[attr.data-orientation]': 'dataOrientation()',\n        '[attr.data-align]': 'dataAlign()',\n        '[attr.data-page]': 'dataPage()',\n        '[attr.data-swiping]': 'dataSwiping()',\n        '[attr.data-autosize]': 'dataAutosize()'\n    }\n})\nexport class Carousel extends CarouselLegacyBase {\n    componentName = 'Carousel';\n\n    bindDirectiveInstance = inject(Bind, { self: true });\n\n    onAfterViewChecked() {\n        this.bindDirectiveInstance.setAttrs(this.ptm('root'));\n    }\n\n    _compositionContent = contentChildren(CarouselContentComp, { descendants: true });\n\n    isCompositionMode = computed(() => this._compositionContent().length > 0);\n\n    hostClass = computed(() => (this.isCompositionMode() ? this.cx('compositionRoot') : this.cx('root')));\n\n    /**\n     * Alignment of the carousel items (composition mode).\n     * @group Props\n     * @defaultValue 'start'\n     */\n    align = input<'start' | 'center' | 'end'>('start');\n\n    /**\n     * Alias for orientation used by composition mode host bindings.\n     * Delegates to the existing `orientation` input.\n     */\n    compositionOrientation = computed(() => this.orientation());\n\n    /**\n     * Alias for align used by composition mode host bindings.\n     * Delegates to the `align` input.\n     */\n    compositionAlign = computed(() => this.align());\n\n    /**\n     * Whether the carousel should loop (composition mode).\n     * @group Props\n     * @defaultValue false\n     */\n    loop = input(false, { transform: booleanAttribute });\n\n    /**\n     * Scroll snap type applied to the track (composition mode).\n     * @group Props\n     * @defaultValue 'mandatory'\n     */\n    snapType = input<'mandatory' | 'proximity'>('mandatory');\n\n    /**\n     * Spacing between carousel items in pixels (composition mode).\n     * @group Props\n     * @defaultValue 16\n     */\n    spacing = input(16, { transform: numberAttribute });\n\n    /**\n     * Whether the carousel should auto size items (composition mode).\n     * @group Props\n     * @defaultValue false\n     */\n    autoSize = input(false, { transform: booleanAttribute });\n\n    /**\n     * Alias for autoSize used by composition mode host bindings.\n     */\n    compositionAutoSize = computed(() => this.autoSize());\n\n    // Host data attributes (composition mode only)\n    dataScope = computed(() => (this.isCompositionMode() ? 'carousel' : null));\n    dataPart = computed(() => (this.isCompositionMode() ? 'root' : null));\n    dataOrientation = computed(() => (this.isCompositionMode() ? this.compositionOrientation() : null));\n    dataAlign = computed(() => (this.isCompositionMode() ? this.compositionAlign() : null));\n    dataPage = computed(() => (this.isCompositionMode() ? this.pageState() : null));\n    dataSwiping = computed(() => (this.isCompositionMode() && this.swiping() ? '' : null));\n    dataAutosize = computed(() => (this.isCompositionMode() && this.compositionAutoSize() ? '' : null));\n\n    /**\n     * How many slides are visible per page (composition mode). Supports fractions (e.g. 1.5).\n     * @group Props\n     * @defaultValue 1\n     */\n    slidesPerPage = input(1, { transform: numberAttribute });\n\n    /**\n     * Index of the active slide (composition mode).\n     * @group Props\n     */\n    slide = input<number | undefined>(undefined);\n\n    /**\n     * Callback fired when the carousel's page changes (composition mode).\n     * @group Emits\n     */\n    onPageChange = output<{ value: number }>();\n\n    /**\n     * Callback fired when the active slide changes (composition mode).\n     * @group Emits\n     */\n    onSlideChange = output<{ value: number }>();\n\n    // ==========================================\n    // Composition mode signals\n    // ==========================================\n\n    swiping = signal(false);\n    isNextDisabled = signal(false);\n    isPrevDisabled = signal(false);\n    snapPoints = signal<Set<number>>(new Set());\n    pageState = signal(0);\n    contentEl = signal<HTMLElement | null>(null);\n\n    private _snapPointsRef = new Set<number>();\n    private _scrollSnapsRef: number[] = [];\n    private _initialPageApplied = false;\n    private _initialControlledScroll = false;\n\n    private _resizeObserver: ResizeObserver | null = null;\n    private _mutationObserver: MutationObserver | null = null;\n    private _intersectionObserver: IntersectionObserver | null = null;\n    private _scrollTimeout: ReturnType<typeof setTimeout> | null = null;\n    private _wheelTimeout: ReturnType<typeof setTimeout> | null = null;\n    private _scrollListener: (() => void) | null = null;\n    private _destroyed = false;\n\n    private _swipeStartPoint = { x: 0, y: 0 };\n    private _isRealSwipe = false;\n    private _itemSelector = '[data-item]';\n\n    private _areSetsEqual<T>(a: Set<T>, b: Set<T>): boolean {\n        if (a.size !== b.size) return false;\n        for (const value of a) {\n            if (!b.has(value)) return false;\n        }\n        return true;\n    }\n\n    constructor() {\n        super();\n\n        // Composition mode: watch slide input changes\n        effect(() => {\n            const slideVal = this.slide();\n            if (slideVal === undefined || slideVal === null) return;\n            if (!this.isCompositionMode()) return;\n            untracked(() => {\n                if (this._snapPointsRef.size > 0) {\n                    this.scrollToSlide(slideVal);\n                }\n            });\n        });\n    }\n\n    onAfterContentInit() {\n        this.legacyOnAfterContentInit();\n    }\n\n    onAfterContentChecked() {\n        this.legacyOnAfterContentChecked();\n    }\n\n    onDestroy() {\n        this._destroyed = true;\n        this.legacyOnDestroy();\n\n        // Composition mode cleanup\n        this._resizeObserver?.disconnect();\n        this._mutationObserver?.disconnect();\n        this._intersectionObserver?.disconnect();\n        this._scrollListener?.();\n        if (this._scrollTimeout) clearTimeout(this._scrollTimeout);\n        if (this._wheelTimeout) clearTimeout(this._wheelTimeout);\n    }\n\n    resolveSnapType(): string {\n        const axis = this.orientation() === 'vertical' ? 'y' : 'x';\n        return `${axis} ${this.snapType()}`;\n    }\n\n    setupObservers() {\n        const content = this.contentEl();\n        if (!content) return;\n\n        // ResizeObserver\n        this._resizeObserver = new ResizeObserver(() => {\n            this.computeSnapPoints();\n            const closest = this.setToClosest();\n            this.scrollToPage(closest ?? this.pageState(), true);\n        });\n        this._resizeObserver.observe(content);\n        this._observeResizeItems(content);\n\n        // Delay initial computation to ensure items have their data-item attributes\n        requestAnimationFrame(() => {\n            this.computeSnapPoints();\n            this._observeResizeItems(content);\n            this._observeIntersectionItems(content);\n            this._applyInitialPage();\n            this._applyControlledPage();\n            this._applyControlledSlide();\n        });\n\n        // MutationObserver\n        this._mutationObserver = new MutationObserver((mutations) => {\n            mutations.forEach(() => {\n                this.computeSnapPoints();\n                this._observeResizeItems(content);\n                this._observeIntersectionItems(content);\n                requestAnimationFrame(() => {\n                    const closest = this.setToClosest();\n                    this.scrollToPage(closest ?? this.pageState(), true);\n                });\n            });\n        });\n        this._mutationObserver.observe(content, { childList: true, subtree: true });\n\n        // IntersectionObserver\n        this._intersectionObserver = new IntersectionObserver(\n            (entries) => {\n                entries.forEach((entry) => {\n                    if (entry.isIntersecting) entry.target.setAttribute('data-inview', '');\n                    else entry.target.removeAttribute('data-inview');\n                });\n            },\n            { root: content, threshold: 0.6 }\n        );\n        this._observeIntersectionItems(content);\n\n        // Scroll listener\n        const onScroll = () => {\n            if (this._scrollTimeout) clearTimeout(this._scrollTimeout);\n            this._scrollTimeout = setTimeout(() => {\n                this.setToClosest();\n            }, 80);\n        };\n        onScroll();\n        content.addEventListener('scroll', onScroll, { passive: true });\n        this._scrollListener = () => content.removeEventListener('scroll', onScroll);\n    }\n\n    private _applyInitialPage() {\n        if (this._initialPageApplied) return;\n        const slideInput = this.slide();\n        if (slideInput !== undefined && slideInput !== null) return;\n        const size = this._snapPointsRef.size || this.snapPoints().size;\n        if (size === 0) return;\n        this._initialPageApplied = true;\n        this.scrollToPage(0, true);\n    }\n\n    private _applyControlledPage() {\n        const pageInput = this.page();\n        const slideInput = this.slide();\n        if (pageInput === undefined || pageInput === null) return;\n        if (slideInput !== undefined && slideInput !== null) return;\n        if (this._snapPointsRef.size === 0 && this.snapPoints().size === 0) return;\n        const instant = !this._initialControlledScroll;\n        this._initialControlledScroll = true;\n        this.scrollToPage(pageInput, instant);\n    }\n\n    private _applyControlledSlide() {\n        const slideInput = this.slide();\n        if (slideInput === undefined || slideInput === null) return;\n        if (this._snapPointsRef.size === 0 && this.snapPoints().size === 0) return;\n        const instant = !this._initialControlledScroll;\n        this._initialControlledScroll = true;\n        this.scrollToSlide(slideInput, instant);\n    }\n\n    private _observeResizeItems(content: HTMLElement) {\n        if (!this._resizeObserver) return;\n        content.querySelectorAll<HTMLElement>(this._itemSelector).forEach((item) => this._resizeObserver!.observe(item));\n    }\n\n    private _observeIntersectionItems(content: HTMLElement) {\n        if (!this._intersectionObserver) return;\n        content.querySelectorAll<HTMLElement>(this._itemSelector).forEach((item) => this._intersectionObserver!.observe(item));\n    }\n\n    computeSnapPoints() {\n        const content = this.contentEl();\n        if (!content) return;\n\n        const isHorizontal = this.orientation() !== 'vertical';\n        const trackSize = isHorizontal ? content.clientWidth : content.clientHeight;\n        const maxOffset = Math.max(0, isHorizontal ? content.scrollWidth - trackSize : content.scrollHeight - trackSize);\n        const snaps: number[] = [];\n        const alignValue = this.align();\n\n        this._scrollSnapsRef = [];\n\n        content.querySelectorAll<HTMLElement>(this._itemSelector).forEach((item) => {\n            const offset = isHorizontal ? item.offsetLeft : item.offsetTop;\n            const size = isHorizontal ? item.clientWidth : item.clientHeight;\n\n            let snapPoint = offset;\n\n            if (alignValue === 'center') {\n                snapPoint = offset - (trackSize - size) / 2;\n            } else if (alignValue === 'end') {\n                snapPoint = offset - (trackSize - size);\n            }\n\n            const clamped = Math.max(0, Math.min(snapPoint, maxOffset));\n            this._scrollSnapsRef.push(clamped);\n            snaps.push(clamped);\n        });\n\n        const newSnapPoints = new Set(snaps.map(Number));\n        if (this._areSetsEqual(this._snapPointsRef, newSnapPoints)) return;\n\n        this._snapPointsRef = newSnapPoints;\n        this.snapPoints.set(newSnapPoints);\n    }\n\n    setPage(page: number) {\n        // Pending requestAnimationFrame/observer callbacks can still reach this after teardown;\n        // bail so we don't emit on a destroyed OutputRef.\n        if (this._destroyed) return;\n        if (!this.loop()) {\n            const size = this._snapPointsRef.size || this.snapPoints().size;\n            this.isPrevDisabled.set(page === 0);\n            this.isNextDisabled.set(page === size - 1);\n        }\n        this.pageState.set(page);\n        this.onPageChange.emit({ value: page });\n        this.onSlideChange.emit({ value: page });\n    }\n\n    setToClosest(): number | undefined {\n        const content = this.contentEl();\n        const points = this._snapPointsRef;\n        if (!content || points.size === 0) return undefined;\n\n        const scrollPos = this.orientation() === 'horizontal' ? content.scrollLeft : content.scrollTop;\n        const closestSnapPoint = Array.from(points).reduce((closest, point) => {\n            return Math.abs(point - scrollPos) < Math.abs(closest - scrollPos) ? point : closest;\n        }, Infinity);\n\n        const index = Array.from(points).indexOf(closestSnapPoint);\n        this.setPage(index);\n        return index;\n    }\n\n    scrollToPage(pageNum?: number, instant = false) {\n        const points = this._snapPointsRef;\n        if (points.size === 0) return;\n        const target = pageNum ?? this.pageState();\n        const clampedPage = this.loop() ? (target + points.size) % points.size : Math.max(0, Math.min(target, points.size - 1));\n        this.setPage(clampedPage);\n        this.scrollTo(Array.from(points)[clampedPage], instant);\n    }\n\n    next() {\n        this.scrollToPage(this.pageState() + 1);\n    }\n\n    prev() {\n        this.scrollToPage(this.pageState() - 1);\n    }\n\n    scrollTo(snapPoint: number, instant = false) {\n        const content = this.contentEl();\n        if (!content) return;\n        content.scrollTo({\n            [this.orientation() === 'horizontal' ? 'left' : 'top']: snapPoint,\n            behavior: instant ? 'instant' : 'smooth'\n        });\n    }\n\n    scrollToSlide(slideNum: number, instant = false) {\n        const points = this._snapPointsRef;\n        const snaps = this._scrollSnapsRef;\n        if (points.size === 0 || snaps.length === 0) return;\n        const clampedSlide = Math.max(0, Math.min(slideNum, snaps.length - 1));\n        const snap = snaps[clampedSlide];\n        this.scrollTo(snap, instant);\n        const pageIdx = Array.from(points).indexOf(snap);\n        this.setPage(pageIdx);\n    }\n\n    setContentEl(el: HTMLElement) {\n        this.contentEl.set(el);\n    }\n\n    // Pointer event handlers (called by CarouselContent)\n    onContentPointerDown(e: PointerEvent) {\n        if (e.button !== 0) return;\n        if (e.pointerType === 'touch') return;\n        this.swiping.set(true);\n        this._swipeStartPoint = { x: e.clientX, y: e.clientY };\n        this._isRealSwipe = false;\n    }\n\n    onContentPointerMove(e: PointerEvent) {\n        const content = this.contentEl();\n        if (!this.swiping() || !content || e.pointerType === 'touch') return;\n        const deltaX = e.clientX - this._swipeStartPoint.x;\n        const deltaY = e.clientY - this._swipeStartPoint.y;\n        const distance = Math.abs(deltaX) + Math.abs(deltaY);\n        if (distance < 6) return;\n        if ((window.getSelection()?.toString().length ?? 0) > 0) return;\n        (e.currentTarget as HTMLElement).setPointerCapture(e.pointerId);\n        content.style.userSelect = 'none';\n        this._isRealSwipe = true;\n        content.style.scrollSnapType = 'none';\n        content.scrollBy({ left: -e.movementX, top: -e.movementY, behavior: 'instant' });\n        e.preventDefault();\n    }\n\n    onContentPointerUp(e: PointerEvent) {\n        this.swiping.set(false);\n        (e.currentTarget as HTMLElement).releasePointerCapture(e.pointerId);\n        if (!this._isRealSwipe) return;\n        const content = this.contentEl();\n        if (!content) return;\n        content.style.userSelect = '';\n        const scrollPos = this.orientation() === 'horizontal' ? content.scrollLeft : content.scrollTop;\n        const snapPointsSet = this._snapPointsRef;\n        const closestSnapPoint = Array.from(snapPointsSet).reduce((closest, point) => {\n            return Math.abs(point - scrollPos) < Math.abs(closest - scrollPos) ? point : closest;\n        }, Infinity);\n        const index = Array.from(snapPointsSet).indexOf(closestSnapPoint);\n        requestAnimationFrame(() => {\n            if (closestSnapPoint !== undefined) this.scrollToPage(index);\n            requestAnimationFrame(() => {\n                content.style.scrollSnapType = this.resolveSnapType();\n            });\n        });\n    }\n\n    onContentWheel(e: WheelEvent) {\n        if (this._wheelTimeout) clearTimeout(this._wheelTimeout);\n        this._wheelTimeout = setTimeout(() => {\n            const primaryDelta = this.orientation() === 'horizontal' ? e.deltaX || e.deltaY : e.deltaY || e.deltaX;\n            if (primaryDelta > 0 && this.isNextDisabled()) return;\n            if (primaryDelta < 0 && this.isPrevDisabled()) return;\n            this.setToClosest();\n        }, 80);\n    }\n}\n\n@NgModule({\n    imports: [Carousel, CarouselContentComp, CarouselItem, CarouselNext, CarouselPrev, CarouselIndicators, CarouselIndicator, SharedModule],\n    exports: [Carousel, CarouselContentComp, CarouselItem, CarouselNext, CarouselPrev, CarouselIndicators, CarouselIndicator, SharedModule]\n})\nexport class CarouselModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["CarouselContentComp","ChevronRightIcon","ChevronLeftIcon","ChevronDownIcon","ChevronUpIcon"],"mappings":"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"}