{"version":3,"file":"primeng-carousel.mjs","sources":["../../src/carousel/style/carouselstyle.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};\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 { CommonModule, isPlatformBrowser } from '@angular/common';\nimport {\n    booleanAttribute,\n    ChangeDetectionStrategy,\n    Component,\n    ContentChild,\n    ContentChildren,\n    ElementRef,\n    EventEmitter,\n    inject,\n    Input,\n    NgModule,\n    NgZone,\n    numberAttribute,\n    Output,\n    QueryList,\n    SimpleChanges,\n    TemplateRef,\n    ViewChild,\n    ViewEncapsulation\n} from '@angular/core';\nimport { addClass, find, findSingle, getAttribute, removeClass, setAttribute, uuid } from '@primeuix/utils';\nimport { Footer, Header, PrimeTemplate, SharedModule } from 'primeng/api';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind, BindModule } from 'primeng/bind';\nimport { ButtonModule, ButtonProps } from 'primeng/button';\nimport { ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon } from 'primeng/icons';\nimport { CarouselItemTemplateContext, CarouselPageEvent, CarouselResponsiveOptions } from 'primeng/types/carousel';\nimport { CarouselStyle } from './style/carouselstyle';\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: [CommonModule, ChevronRightIcon, ButtonModule, ChevronLeftIcon, ChevronDownIcon, ChevronUpIcon, SharedModule, BindModule],\n    template: `\n        <div [class]=\"cx('header')\" *ngIf=\"headerFacet || headerTemplate\" [pBind]=\"ptm('header')\">\n            <ng-content select=\"p-header\"></ng-content>\n            <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n        </div>\n        <div [class]=\"contentClass\" [ngClass]=\"cx('contentContainer')\" [pBind]=\"ptm('contentContainer')\">\n            <div [class]=\"cx('content')\" [attr.aria-live]=\"allowAutoplay ? 'polite' : 'off'\" [pBind]=\"ptm('content')\">\n                <p-button\n                    *ngIf=\"showNavigators\"\n                    [class]=\"cx('pcPrevButton')\"\n                    [attr.aria-label]=\"ariaPrevButtonLabel()\"\n                    (click)=\"navBackward($event)\"\n                    [text]=\"true\"\n                    [buttonProps]=\"prevButtonProps\"\n                    [pt]=\"ptm('pcPrevButton')\"\n                    [unstyled]=\"unstyled()\"\n                    attr.data-pc-group-section=\"navigator\"\n                >\n                    <ng-template #icon>\n                        <ng-container *ngIf=\"!previousIconTemplate && !_previousIconTemplate && !prevButtonProps?.icon\">\n                            <svg data-p-icon=\"chevron-left\" *ngIf=\"!isVertical()\" />\n                            <svg data-p-icon=\"chevron-up\" *ngIf=\"isVertical()\" />\n                        </ng-container>\n                        <ng-container *ngIf=\"(previousIconTemplate || _previousIconTemplate) && !prevButtonProps?.icon\">\n                            <ng-template *ngTemplateOutlet=\"previousIconTemplate || _previousIconTemplate\"></ng-template>\n                        </ng-container>\n                    </ng-template>\n                </p-button>\n                <div [class]=\"cx('viewport')\" [ngStyle]=\"{ height: isVertical() ? verticalViewPortHeight : 'auto' }\" (touchend)=\"onTouchEnd($event)\" (touchstart)=\"onTouchStart($event)\" (touchmove)=\"onTouchMove($event)\" [pBind]=\"ptm('viewport')\">\n                    <div #itemsContainer [class]=\"cx('itemList')\" (transitionend)=\"onTransitionEnd()\" [pBind]=\"ptm('itemList')\">\n                        <div\n                            *ngFor=\"let item of clonedItemsForStarting; let index = index\"\n                            [class]=\"cx('itemClone', { index })\"\n                            [attr.aria-hidden]=\"!(totalShiftedItems * -1 === value.length)\"\n                            [attr.aria-label]=\"ariaSlideNumber(index)\"\n                            [attr.aria-roledescription]=\"ariaSlideLabel()\"\n                            [attr.data-p-carousel-item-active]=\"totalShiftedItems * -1 === value.length + _numVisible\"\n                            [attr.data-p-carousel-item-start]=\"index === 0\"\n                            [attr.data-p-carousel-item-end]=\"clonedItemsForStarting && clonedItemsForStarting.length - 1 === index\"\n                            [pBind]=\"ptm('itemClone')\"\n                        >\n                            <ng-container *ngTemplateOutlet=\"itemTemplate || _itemTemplate; context: { $implicit: item }\"></ng-container>\n                        </div>\n                        <div\n                            *ngFor=\"let item of value; let index = index\"\n                            [class]=\"cx('item', { index })\"\n                            role=\"group\"\n                            [attr.aria-hidden]=\"!(firstIndex() <= index && lastIndex() >= index)\"\n                            [attr.aria-label]=\"ariaSlideNumber(index)\"\n                            [attr.aria-roledescription]=\"ariaSlideLabel()\"\n                            [attr.data-p-carousel-item-active]=\"firstIndex() <= index && lastIndex() >= index\"\n                            [attr.data-p-carousel-item-start]=\"firstIndex() === index\"\n                            [attr.data-p-carousel-item-end]=\"lastIndex() === index\"\n                            [pBind]=\"getItemPTOptions('item', index)\"\n                        >\n                            <ng-container *ngTemplateOutlet=\"itemTemplate || _itemTemplate; context: { $implicit: item }\"></ng-container>\n                        </div>\n                        <div\n                            *ngFor=\"let item of clonedItemsForFinishing; let index = index\"\n                            [class]=\"cx('itemClone', { index })\"\n                            [attr.data-p-carousel-item-active]=\"false\"\n                            [attr.data-p-carousel-item-start]=\"false\"\n                            [attr.data-p-carousel-item-end]=\"false\"\n                            [pBind]=\"ptm('itemClone')\"\n                        >\n                            <ng-container *ngTemplateOutlet=\"itemTemplate || _itemTemplate; context: { $implicit: item }\"></ng-container>\n                        </div>\n                    </div>\n                </div>\n                <p-button\n                    type=\"button\"\n                    *ngIf=\"showNavigators\"\n                    [class]=\"cx('pcNextButton')\"\n                    (click)=\"navForward($event)\"\n                    [attr.aria-label]=\"ariaNextButtonLabel()\"\n                    [buttonProps]=\"nextButtonProps\"\n                    [text]=\"true\"\n                    [pt]=\"ptm('pcNextButton')\"\n                    [unstyled]=\"unstyled()\"\n                    attr.data-pc-group-section=\"navigator\"\n                >\n                    <ng-template #icon>\n                        <ng-container *ngIf=\"!nextIconTemplate && !_nextIconTemplate && !nextButtonProps?.icon\">\n                            <svg data-p-icon=\"chevron-right\" *ngIf=\"!isVertical()\" />\n                            <svg data-p-icon=\"chevron-down\" *ngIf=\"isVertical()\" />\n                        </ng-container>\n                        <span *ngIf=\"nextIconTemplate || (_nextIconTemplate && !nextButtonProps?.icon)\">\n                            <ng-template *ngTemplateOutlet=\"nextIconTemplate || _nextIconTemplate\"></ng-template>\n                        </span>\n                    </ng-template>\n                </p-button>\n            </div>\n            <ul #indicatorContent [class]=\"cx('indicatorList')\" [ngStyle]=\"indicatorsContentStyle\" *ngIf=\"showIndicators\" (keydown)=\"onIndicatorKeydown($event)\" [pBind]=\"ptm('indicatorList')\">\n                <li *ngFor=\"let totalDot of totalDotsArray(); let i = index\" [class]=\"cx('indicator', { index: i })\" [attr.data-p-active]=\"_page === i\" [pBind]=\"getIndicatorPTOptions('indicator', i)\">\n                    <button\n                        type=\"button\"\n                        [class]=\"cx('indicatorButton')\"\n                        (click)=\"onDotClick($event, i)\"\n                        [ngStyle]=\"indicatorStyle\"\n                        [attr.aria-label]=\"ariaPageLabel(i + 1)\"\n                        [attr.aria-current]=\"_page === i ? 'page' : undefined\"\n                        [tabindex]=\"_page === i ? 0 : -1\"\n                        [pBind]=\"getIndicatorPTOptions('indicatorButton', i)\"\n                    ></button>\n                </li>\n            </ul>\n        </div>\n        <div [class]=\"cx('footer')\" *ngIf=\"footerFacet || footerTemplate || _footerTemplate\" [pBind]=\"ptm('footer')\">\n            <ng-content select=\"p-footer\"></ng-content>\n            <ng-container *ngTemplateOutlet=\"footerTemplate || _footerTemplate\"></ng-container>\n        </div>\n    `,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None,\n    providers: [CarouselStyle, { provide: PARENT_INSTANCE, useExisting: Carousel }],\n    hostDirectives: [Bind],\n    host: {\n        '[attr.id]': 'id',\n        '[attr.role]': \"'region'\",\n        '[class]': \"cn(cx('root'), styleClass)\"\n    }\n})\nexport class Carousel extends BaseComponent {\n    componentName = 'Carousel';\n\n    bindDirectiveInstance = inject(Bind, { self: true });\n\n    onAfterViewChecked(): void {\n        this.bindDirectiveInstance.setAttrs(this.ptm('root'));\n    }\n\n    /**\n     * Index of the first item.\n     * @defaultValue 0\n     * @group Props\n     */\n    @Input() get page(): number {\n        return this._page;\n    }\n\n    set page(val: number) {\n        if (this.isCreated && val !== this._page) {\n            if (this.autoplayInterval) {\n                this.stopAutoplay();\n            }\n\n            if (val > this._page && val <= this.totalDots() - 1) {\n                this.step(-1, val);\n            } else if (val < this._page) {\n                this.step(1, val);\n            }\n        }\n\n        this._page = val;\n    }\n\n    /**\n     * Number of items per page.\n     * @defaultValue 1\n     * @group Props\n     */\n    @Input() get numVisible(): number {\n        return this._numVisible;\n    }\n\n    set numVisible(val: number) {\n        this._numVisible = val;\n    }\n\n    /**\n     * Number of items to scroll.\n     * @defaultValue 1\n     * @group Props\n     */\n    @Input() get numScroll(): number {\n        return this._numVisible;\n    }\n\n    set numScroll(val: number) {\n        this._numScroll = val;\n    }\n\n    /**\n     * An array of options for responsive design.\n     * @see {CarouselResponsiveOptions}\n     * @group Props\n     */\n    @Input() responsiveOptions: CarouselResponsiveOptions[] | undefined;\n    /**\n     * Specifies the layout of the component.\n     * @group Props\n     */\n    @Input() orientation: 'horizontal' | 'vertical' = 'horizontal';\n    /**\n     * Height of the viewport in vertical layout.\n     * @group Props\n     */\n    @Input() verticalViewPortHeight: string = '300px';\n    /**\n     * Style class of main content.\n     * @group Props\n     */\n    @Input() contentClass: string = '';\n    /**\n     * Style class of the indicator items.\n     * @group Props\n     */\n    @Input() indicatorsContentClass: string = '';\n    /**\n     * Inline style of the indicator items.\n     * @group Props\n     */\n    @Input() indicatorsContentStyle: { [klass: string]: any } | null | undefined;\n    /**\n     * Style class of the indicators.\n     * @group Props\n     */\n    @Input() indicatorStyleClass: string = '';\n    /**\n     * Style of the indicators.\n     * @group Props\n     */\n    @Input() indicatorStyle: { [klass: string]: any } | null | undefined;\n\n    /**\n     * An array of objects to display.\n     * @defaultValue null\n     * @group Props\n     */\n    @Input() get value(): any[] {\n        return this._value as any[];\n    }\n\n    set value(val) {\n        this._value = val;\n    }\n\n    /**\n     * Defines if scrolling would be infinite.\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) circular: boolean = false;\n    /**\n     * Whether to display indicator container.\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) showIndicators: boolean = true;\n    /**\n     * Whether to display navigation buttons in container.\n     * @group Props\n     */\n    @Input({ transform: booleanAttribute }) showNavigators: boolean = true;\n    /**\n     * Time in milliseconds to scroll items automatically.\n     * @group Props\n     */\n    @Input({ transform: numberAttribute }) autoplayInterval: number = 0;\n    /**\n     * Style class of the viewport container.\n     * @deprecated since v20.0.0, use `class` instead.\n     * @group Props\n     */\n    @Input() styleClass: string | undefined;\n    /**\n     * Used to pass all properties of the ButtonProps to the Button component.\n     * @group Props\n     */\n    @Input() prevButtonProps: ButtonProps = {\n        severity: 'secondary',\n        text: true,\n        rounded: true\n    };\n    /**\n     * Used to pass all properties of the ButtonProps to the Button component.\n     * @group Props\n     */\n    @Input() nextButtonProps: ButtonProps = {\n        severity: 'secondary',\n        text: true,\n        rounded: true\n    };\n    /**\n     * Callback to invoke after scroll.\n     * @param {CarouselPageEvent} event - Custom page event.\n     * @group Emits\n     */\n    @Output() onPage: EventEmitter<CarouselPageEvent> = new EventEmitter<CarouselPageEvent>();\n\n    @ViewChild('itemsContainer') itemsContainer: ElementRef | undefined;\n\n    @ViewChild('indicatorContent') indicatorContent: ElementRef | undefined;\n\n    @ContentChild(Header) headerFacet: QueryList<Header> | undefined;\n\n    @ContentChild(Footer) footerFacet: QueryList<Footer> | undefined;\n\n    _numVisible: number = 1;\n\n    _numScroll: number = 1;\n\n    _oldNumScroll: number = 0;\n\n    prevState: any = {\n        numScroll: 0,\n        numVisible: 0,\n        value: []\n    };\n\n    defaultNumScroll: number = 1;\n\n    defaultNumVisible: number = 1;\n\n    _page: number = 0;\n\n    _value: any[] | null | undefined;\n\n    carouselStyle: any;\n\n    id: string | undefined;\n\n    totalShiftedItems;\n\n    isRemainingItemsAdded: boolean = false;\n\n    animationTimeout: any;\n\n    translateTimeout: any;\n\n    remainingItems: number = 0;\n\n    _items: any[] | undefined;\n\n    startPos: any;\n\n    documentResizeListener: any;\n\n    clonedItemsForStarting: any[] | undefined;\n\n    clonedItemsForFinishing: any[] | undefined;\n\n    allowAutoplay: boolean | undefined;\n\n    interval: any;\n\n    isCreated: boolean | undefined;\n\n    swipeThreshold: number = 20;\n\n    /**\n     * Custom item template.\n     * @group Templates\n     */\n    @ContentChild('item', { descendants: false }) itemTemplate: TemplateRef<CarouselItemTemplateContext> | undefined;\n\n    /**\n     * Custom header template.\n     * @group Templates\n     */\n    @ContentChild('header', { descendants: false }) headerTemplate: TemplateRef<void> | undefined;\n\n    /**\n     * Custom footer template.\n     * @group Templates\n     */\n    @ContentChild('footer', { descendants: false }) footerTemplate: TemplateRef<void> | undefined;\n\n    /**\n     * Custom previous icon template.\n     * @group Templates\n     */\n    @ContentChild('previousicon', { descendants: false }) previousIconTemplate: TemplateRef<void> | undefined;\n\n    /**\n     * Custom next icon template.\n     * @group Templates\n     */\n    @ContentChild('nexticon', { descendants: false }) nextIconTemplate: TemplateRef<void> | undefined;\n\n    _itemTemplate: TemplateRef<CarouselItemTemplateContext> | undefined;\n\n    _headerTemplate: TemplateRef<void> | undefined;\n\n    _footerTemplate: TemplateRef<void> | undefined;\n\n    _previousIconTemplate: TemplateRef<void> | undefined;\n\n    _nextIconTemplate: TemplateRef<void> | undefined;\n\n    window: Window;\n\n    _componentStyle = inject(CarouselStyle);\n\n    constructor(\n        public el: ElementRef,\n        public zone: NgZone\n    ) {\n        super();\n        this.totalShiftedItems = this.page * this.numScroll * -1;\n        this.window = this.document.defaultView as Window;\n    }\n\n    onChanges(simpleChange: SimpleChanges) {\n        if (isPlatformBrowser(this.platformId)) {\n            if (simpleChange.value) {\n                if (this.circular && this._value) {\n                    this.setCloneItems();\n                }\n            }\n\n            if (this.isCreated) {\n                if (simpleChange.numVisible) {\n                    if (this.responsiveOptions) {\n                        this.defaultNumVisible = this.numVisible;\n                    }\n\n                    if (this.isCircular()) {\n                        this.setCloneItems();\n                    }\n\n                    this.createStyle();\n                    this.calculatePosition();\n                }\n\n                if (simpleChange.numScroll) {\n                    if (this.responsiveOptions) {\n                        this.defaultNumScroll = this.numScroll;\n                    }\n                }\n            }\n        }\n        this.cd.markForCheck();\n    }\n\n    @ContentChildren(PrimeTemplate) templates: QueryList<PrimeTemplate> | undefined;\n\n    onAfterContentInit() {\n        this.id = uuid('pn_id_');\n        if (isPlatformBrowser(this.platformId)) {\n            this.allowAutoplay = !!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        this.templates?.forEach((item) => {\n            switch (item.getType()) {\n                case 'item':\n                    this._itemTemplate = item.template;\n                    break;\n\n                case 'header':\n                    this._headerTemplate = item.template;\n                    break;\n\n                case 'footer':\n                    this._footerTemplate = item.template;\n                    break;\n\n                case 'previousicon':\n                    this._previousIconTemplate = item.template;\n                    break;\n\n                case 'nexticon':\n                    this._nextIconTemplate = item.template;\n                    break;\n\n                default:\n                    this._itemTemplate = item.template;\n                    break;\n            }\n        });\n\n        this.cd.detectChanges();\n    }\n\n    onAfterContentChecked() {\n        if (isPlatformBrowser(this.platformId)) {\n            const isCircular = this.isCircular();\n            let totalShiftedItems = this.totalShiftedItems;\n\n            if (this.value && this.itemsContainer && (this.prevState.numScroll !== this._numScroll || this.prevState.numVisible !== this._numVisible || this.prevState.value.length !== this.value.length)) {\n                if (this.autoplayInterval) {\n                    this.stopAutoplay(false);\n                }\n\n                this.remainingItems = (this.value.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 = 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 = totalShiftedItems;\n                }\n\n                this._oldNumScroll = this._numScroll;\n                this.prevState.numScroll = this._numScroll;\n                this.prevState.numVisible = this._numVisible;\n                this.prevState.value = [...(this._value as any[])];\n\n                if (this.totalDots() > 0 && this.itemsContainer.nativeElement) {\n                    this.itemsContainer.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) {\n                if (this.page === 0) {\n                    totalShiftedItems = -1 * this._numVisible;\n                } else if (totalShiftedItems === 0) {\n                    totalShiftedItems = -1 * this.value.length;\n                    if (this.remainingItems > 0) {\n                        this.isRemainingItemsAdded = true;\n                    }\n                }\n\n                if (totalShiftedItems !== this.totalShiftedItems) {\n                    this.totalShiftedItems = totalShiftedItems;\n                }\n            }\n        }\n    }\n\n    createStyle() {\n        if (!this.carouselStyle) {\n            this.carouselStyle = this.renderer.createElement('style');\n            this.carouselStyle.type = 'text/css';\n            setAttribute(this.carouselStyle, 'nonce', this.config?.csp()?.nonce);\n            this.renderer.appendChild(this.document.head, this.carouselStyle);\n            setAttribute(this.carouselStyle, 'nonce', this.config?.csp()?.nonce);\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        if (this.responsiveOptions && !this.$unstyled()) {\n            this.responsiveOptions.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 < this.responsiveOptions.length; i++) {\n                let res = this.responsiveOptions[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        if (this.responsiveOptions) {\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 < this.responsiveOptions.length; i++) {\n                    let res = this.responsiveOptions[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 = totalShiftedItems;\n                this._numScroll = matchedResponsiveData.numScroll;\n\n                this._page = 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            this.cd.markForCheck();\n        }\n    }\n\n    setCloneItems() {\n        this.clonedItemsForStarting = [];\n        this.clonedItemsForFinishing = [];\n        if (this.isCircular()) {\n            this.clonedItemsForStarting.push(...this.value.slice(-1 * this._numVisible));\n            this.clonedItemsForFinishing.push(...this.value.slice(0, this._numVisible));\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        return this.value?.length ? Math.ceil((this.value.length - this._numVisible) / this._numScroll) + 1 : 0;\n    }\n\n    totalDotsArray() {\n        const totalDots = this.totalDots();\n        return totalDots <= 0 ? [] : Array(totalDots).fill(0);\n    }\n\n    isVertical() {\n        return this.orientation === 'vertical';\n    }\n\n    isCircular() {\n        return this.circular && this.value && this.value.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        return !this.value || this.value.length === 0;\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 = <any>[...find(this.indicatorContent?.nativeElement, '[data-pc-section=\"indicator\"]')];\n        const highlightedIndex = indicators.findIndex((ind) => getAttribute(ind, 'data-p-highlight') === true);\n\n        const activeIndicator = <any>findSingle(this.indicatorContent?.nativeElement, '[data-pc-section=\"indicator\"] > button[tabindex=\"0\"]');\n        const activeIndex = indicators.findIndex((ind) => ind === activeIndicator.parentElement);\n\n        indicators[activeIndex].children[0].tabIndex = '-1';\n        indicators[highlightedIndex].children[0].tabIndex = '0';\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, nextInd) {\n        const indicators = <any>[...find(this.indicatorContent?.nativeElement, '[data-pc-section=\"indicator\"]')];\n\n        indicators[prevInd].children[0].tabIndex = '-1';\n        indicators[nextInd].children[0].tabIndex = '0';\n        indicators[nextInd].children[0].focus();\n    }\n\n    step(dir: number, page?: number) {\n        let totalShiftedItems = this.totalShiftedItems;\n        const isCircular = this.isCircular();\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) {\n            totalShiftedItems = -1 * (this.value.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        if (this.itemsContainer) {\n            !this.$unstyled() && removeClass(this.itemsContainer.nativeElement, 'p-items-hidden');\n            this.itemsContainer.nativeElement.style.transform = this.isVertical() ? `translate3d(0, ${totalShiftedItems * (100 / this._numVisible)}%, 0)` : `translate3d(${totalShiftedItems * (100 / this._numVisible)}%, 0, 0)`;\n            this.itemsContainer.nativeElement.style.transition = 'transform 500ms ease 0s';\n        }\n\n        this.totalShiftedItems = totalShiftedItems;\n        this._page = page;\n        this.onPage.emit({\n            page: this.page\n        });\n        this.cd.markForCheck();\n    }\n\n    startAutoplay() {\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 = true;\n        this.cd.markForCheck();\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 = false;\n            }\n        }\n        this.cd.markForCheck();\n    }\n\n    isPlaying(): boolean {\n        return !!this.interval;\n    }\n\n    onTransitionEnd() {\n        if (this.itemsContainer) {\n            !this.$unstyled() && addClass(this.itemsContainer.nativeElement, 'p-items-hidden');\n            this.itemsContainer.nativeElement.style.transition = '';\n\n            if ((this.page === 0 || this.page === this.totalDots() - 1) && this.isCircular()) {\n                this.itemsContainer.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        let 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) {\n        return this.config.translation.aria ? this.config.translation.aria?.slideNumber?.replace(/{slideNumber}/g, value) : undefined;\n    }\n\n    ariaPageLabel(value) {\n        return this.config.translation.aria ? this.config.translation.aria?.pageLabel?.replace(/{page}/g, 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', (event) => {\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    onDestroy() {\n        if (this.responsiveOptions) {\n            this.unbindDocumentListeners();\n        }\n        if (this.autoplayInterval) {\n            this.stopAutoplay();\n        }\n    }\n}\n\n@NgModule({\n    imports: [Carousel, SharedModule],\n    exports: [Carousel, SharedModule]\n})\nexport class CarouselModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}