{"version":3,"file":"index.mjs","sources":["../../src/carousel/BaseCarousel.vue","../../src/carousel/Carousel.vue","../../src/carousel/Carousel.vue?vue&type=template&id=7c5ccd2c&lang.js"],"sourcesContent":["<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport CarouselStyle from 'primevue/carousel/style';\n\nexport default {\n    name: 'BaseCarousel',\n    extends: BaseComponent,\n    props: {\n        value: null,\n        page: {\n            type: Number,\n            default: 0\n        },\n        numVisible: {\n            type: Number,\n            default: 1\n        },\n        numScroll: {\n            type: Number,\n            default: 1\n        },\n        responsiveOptions: Array,\n        orientation: {\n            type: String,\n            default: 'horizontal'\n        },\n        verticalViewPortHeight: {\n            type: String,\n            default: '300px'\n        },\n        contentClass: String,\n        containerClass: String,\n        indicatorsContentClass: String,\n        circular: {\n            type: Boolean,\n            default: false\n        },\n        autoplayInterval: {\n            type: Number,\n            default: 0\n        },\n        showNavigators: {\n            type: Boolean,\n            default: true\n        },\n        showIndicators: {\n            type: Boolean,\n            default: true\n        },\n        prevButtonProps: {\n            type: Object,\n            default: () => {\n                return { severity: 'secondary', text: true, rounded: true };\n            }\n        },\n        nextButtonProps: {\n            type: Object,\n            default: () => {\n                return { severity: 'secondary', text: true, rounded: true };\n            }\n        }\n    },\n    style: CarouselStyle,\n    provide() {\n        return {\n            $pcCarousel: this,\n            $parentInstance: this\n        };\n    }\n};\n</script>\n","<template>\n    <div :class=\"cx('root')\" role=\"region\" v-bind=\"ptmi('root')\">\n        <div v-if=\"$slots.header\" :class=\"cx('header')\" v-bind=\"ptm('header')\">\n            <slot name=\"header\"></slot>\n        </div>\n        <div v-if=\"!empty\" :class=\"[cx('contentContainer'), containerClass]\" v-bind=\"ptm('contentContainer')\">\n            <div :class=\"[cx('content'), contentClass]\" :aria-live=\"allowAutoplay ? 'polite' : 'off'\" v-bind=\"ptm('content')\">\n                <Button\n                    v-if=\"showNavigators\"\n                    :class=\"cx('pcPrevButton')\"\n                    :disabled=\"backwardIsDisabled\"\n                    :aria-label=\"ariaPrevButtonLabel\"\n                    :unstyled=\"unstyled\"\n                    @click=\"navBackward\"\n                    v-bind=\"prevButtonProps\"\n                    :pt=\"ptm('pcPrevButton')\"\n                    data-pc-group-section=\"navigator\"\n                >\n                    <template #icon=\"slotProps\">\n                        <slot name=\"previcon\">\n                            <component :is=\"isVertical() ? 'ChevronUpIcon' : 'ChevronLeftIcon'\" :class=\"slotProps.icon\" v-bind=\"ptm('pcPrevButton')['icon']\" />\n                        </slot>\n                    </template>\n                </Button>\n                <div :class=\"cx('viewport')\" :style=\"[{ height: isVertical() ? verticalViewPortHeight : 'auto' }]\" @touchend=\"onTouchEnd\" @touchstart=\"onTouchStart\" @touchmove=\"onTouchMove\" v-bind=\"ptm('viewport')\">\n                    <div ref=\"itemsContainer\" :class=\"cx('itemList')\" @transitionend=\"onTransitionEnd\" v-bind=\"ptm('itemList')\">\n                        <template v-if=\"isCircular()\">\n                            <div\n                                v-for=\"(item, index) of value.slice(-1 * d_numVisible)\"\n                                :key=\"index + '_scloned'\"\n                                :class=\"cx('itemClone', { index, value, totalShiftedItems, d_numVisible })\"\n                                v-bind=\"ptm('itemClone')\"\n                                :data-p-carousel-item-active=\"totalShiftedItems * -1 === value.length + d_numVisible\"\n                                :data-p-carousel-item-start=\"index === 0\"\n                                :data-p-carousel-item-end=\"value.slice(-1 * d_numVisible).length - 1 === index\"\n                            >\n                                <slot name=\"item\" :data=\"item\" :index=\"index\"></slot>\n                            </div>\n                        </template>\n                        <div\n                            v-for=\"(item, index) of value\"\n                            :key=\"index\"\n                            :class=\"cx('item', { index })\"\n                            role=\"group\"\n                            :aria-hidden=\"firstIndex() > index || lastIndex() < index ? true : undefined\"\n                            :aria-label=\"ariaSlideNumber(index)\"\n                            :aria-roledescription=\"ariaSlideLabel\"\n                            v-bind=\"getItemPTOptions('item', index)\"\n                            :data-p-carousel-item-active=\"firstIndex() <= index && lastIndex() >= index\"\n                            :data-p-carousel-item-start=\"firstIndex() === index\"\n                            :data-p-carousel-item-end=\"lastIndex() === index\"\n                        >\n                            <slot name=\"item\" :data=\"item\" :index=\"index\"></slot>\n                        </div>\n                        <template v-if=\"isCircular()\">\n                            <div v-for=\"(item, index) of value.slice(0, d_numVisible)\" :key=\"index + '_fcloned'\" :class=\"cx('itemClone', { index, value, totalShiftedItems, d_numVisible })\" v-bind=\"ptm('itemClone')\">\n                                <slot name=\"item\" :data=\"item\" :index=\"index\"></slot>\n                            </div>\n                        </template>\n                    </div>\n                </div>\n                <Button\n                    v-if=\"showNavigators\"\n                    :class=\"cx('pcNextButton')\"\n                    :disabled=\"forwardIsDisabled\"\n                    :aria-label=\"ariaNextButtonLabel\"\n                    :unstyled=\"unstyled\"\n                    @click=\"navForward\"\n                    v-bind=\"nextButtonProps\"\n                    :pt=\"ptm('pcNextButton')\"\n                    data-pc-group-section=\"navigator\"\n                >\n                    <template #icon=\"slotProps\">\n                        <slot name=\"nexticon\">\n                            <component :is=\"isVertical() ? 'ChevronDownIcon' : 'ChevronRightIcon'\" :class=\"slotProps.class\" v-bind=\"ptm('pcNextButton')['icon']\" />\n                        </slot>\n                    </template>\n                </Button>\n            </div>\n            <ul v-if=\"totalIndicators >= 0 && showIndicators\" ref=\"indicatorContent\" :class=\"[cx('indicatorList'), indicatorsContentClass]\" @keydown=\"onIndicatorKeydown\" v-bind=\"ptm('indicatorList')\">\n                <li v-for=\"(indicator, i) of totalIndicators\" :key=\"'p-carousel-indicator-' + i.toString()\" :class=\"cx('indicator', { index: i })\" v-bind=\"getIndicatorPTOptions('indicator', i)\" :data-p-active=\"d_page === i\">\n                    <button\n                        :class=\"cx('indicatorButton')\"\n                        type=\"button\"\n                        :tabindex=\"d_page === i ? '0' : '-1'\"\n                        :aria-label=\"ariaPageLabel(i + 1)\"\n                        :aria-current=\"d_page === i ? 'page' : undefined\"\n                        @click=\"onIndicatorClick($event, i)\"\n                        v-bind=\"getIndicatorPTOptions('indicatorButton', i)\"\n                    />\n                </li>\n            </ul>\n        </div>\n        <slot v-else name=\"empty\">\n            {{ emptyMessageText }}\n        </slot>\n        <div v-if=\"$slots.footer\" :class=\"cx('footer')\" v-bind=\"ptm('footer')\">\n            <slot name=\"footer\"></slot>\n        </div>\n    </div>\n</template>\n\n<script>\nimport { addClass, find, findSingle, getAttribute, removeClass, setAttribute } from '@primeuix/utils/dom';\nimport { localeComparator, sort } from '@primeuix/utils/object';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport ChevronLeftIcon from '@primevue/icons/chevronleft';\nimport ChevronRightIcon from '@primevue/icons/chevronright';\nimport ChevronUpIcon from '@primevue/icons/chevronup';\nimport Button from 'primevue/button';\nimport Ripple from 'primevue/ripple';\nimport BaseCarousel from './BaseCarousel.vue';\n\nexport default {\n    name: 'Carousel',\n    extends: BaseCarousel,\n    inheritAttrs: false,\n    emits: ['update:page'],\n    isRemainingItemsAdded: false,\n    data() {\n        return {\n            remainingItems: 0,\n            d_numVisible: this.numVisible,\n            d_numScroll: this.numScroll,\n            d_oldNumScroll: 0,\n            d_oldNumVisible: 0,\n            d_oldValue: null,\n            d_page: this.page,\n            totalShiftedItems: this.page * this.numScroll * -1,\n            allowAutoplay: !!this.autoplayInterval,\n            d_circular: this.circular || this.allowAutoplay,\n            swipeThreshold: 20\n        };\n    },\n    watch: {\n        page(newValue) {\n            if (newValue > this.d_page) {\n                this.navForward({}, newValue);\n            } else if (newValue < this.d_page) {\n                this.navBackward({}, newValue);\n            }\n\n            this.d_page = newValue;\n        },\n        circular(newValue) {\n            this.d_circular = newValue;\n        },\n        numVisible(newValue, oldValue) {\n            this.d_numVisible = newValue;\n            this.d_oldNumVisible = oldValue;\n        },\n        numScroll(newValue, oldValue) {\n            this.d_oldNumScroll = oldValue;\n            this.d_numScroll = newValue;\n        },\n        value(oldValue) {\n            this.d_oldValue = oldValue;\n        }\n    },\n    mounted() {\n        let stateChanged = false;\n\n        this.createStyle();\n        this.calculatePosition();\n\n        if (this.responsiveOptions) {\n            this.bindDocumentListeners();\n        }\n\n        if (this.isCircular()) {\n            let totalShiftedItems = this.totalShiftedItems;\n\n            if (this.d_page === 0) {\n                totalShiftedItems = -1 * this.d_numVisible;\n            } else if (totalShiftedItems === 0) {\n                totalShiftedItems = -1 * this.value.length;\n\n                if (this.remainingItems > 0) {\n                    this.isRemainingItemsAdded = true;\n                }\n            }\n\n            if (totalShiftedItems !== this.totalShiftedItems) {\n                this.totalShiftedItems = totalShiftedItems;\n\n                stateChanged = true;\n            }\n        }\n\n        if (!stateChanged && this.isAutoplay()) {\n            this.startAutoplay();\n        }\n    },\n    updated() {\n        if (!this.empty) {\n            const isCircular = this.isCircular();\n            let stateChanged = false;\n            let totalShiftedItems = this.totalShiftedItems;\n\n            if (this.autoplayInterval) {\n                this.stopAutoplay();\n            }\n\n            if (this.d_oldNumScroll !== this.d_numScroll || this.d_oldNumVisible !== this.d_numVisible || this.d_oldValue.length !== this.value.length) {\n                this.remainingItems = (this.value.length - this.d_numVisible) % this.d_numScroll;\n\n                let page = this.d_page;\n\n                if (this.totalIndicators !== 0 && page >= this.totalIndicators) {\n                    page = this.totalIndicators - 1;\n                    this.$emit('update:page', page);\n                    this.d_page = page;\n                    stateChanged = true;\n                }\n\n                totalShiftedItems = page * this.d_numScroll * -1;\n\n                if (isCircular) {\n                    totalShiftedItems -= this.d_numVisible;\n                }\n\n                if (page === this.totalIndicators - 1 && this.remainingItems > 0) {\n                    totalShiftedItems += -1 * this.remainingItems + this.d_numScroll;\n                    this.isRemainingItemsAdded = true;\n                } else {\n                    this.isRemainingItemsAdded = false;\n                }\n\n                if (totalShiftedItems !== this.totalShiftedItems) {\n                    this.totalShiftedItems = totalShiftedItems;\n                    stateChanged = true;\n                }\n\n                this.d_oldNumScroll = this.d_numScroll;\n                this.d_oldNumVisible = this.d_numVisible;\n                this.d_oldValue = this.value;\n                this.$refs.itemsContainer.style.transform = this.isVertical() ? `translate3d(0, ${totalShiftedItems * (100 / this.d_numVisible)}%, 0)` : `translate3d(${totalShiftedItems * (100 / this.d_numVisible)}%, 0, 0)`;\n            }\n\n            if (isCircular) {\n                if (this.d_page === 0) {\n                    totalShiftedItems = -1 * this.d_numVisible;\n                } else if (totalShiftedItems === 0) {\n                    totalShiftedItems = -1 * this.value.length;\n\n                    if (this.remainingItems > 0) {\n                        this.isRemainingItemsAdded = true;\n                    }\n                }\n\n                if (totalShiftedItems !== this.totalShiftedItems) {\n                    this.totalShiftedItems = totalShiftedItems;\n\n                    stateChanged = true;\n                }\n            }\n\n            if (!stateChanged && this.isAutoplay()) {\n                this.startAutoplay();\n            }\n        }\n    },\n    beforeUnmount() {\n        if (this.responsiveOptions) {\n            this.unbindDocumentListeners();\n        }\n\n        if (this.autoplayInterval) {\n            this.stopAutoplay();\n        }\n    },\n    methods: {\n        getIndicatorPTOptions(key, index) {\n            return this.ptm(key, {\n                context: {\n                    highlighted: index === this.d_page\n                }\n            });\n        },\n        getItemPTOptions(key, index) {\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        step(dir, page) {\n            let totalShiftedItems = this.totalShiftedItems;\n            const isCircular = this.isCircular();\n\n            if (page != null) {\n                totalShiftedItems = this.d_numScroll * page * -1;\n\n                if (isCircular) {\n                    totalShiftedItems -= this.d_numVisible;\n                }\n\n                this.isRemainingItemsAdded = false;\n            } else {\n                totalShiftedItems += this.d_numScroll * dir;\n\n                if (this.isRemainingItemsAdded) {\n                    totalShiftedItems += this.remainingItems - this.d_numScroll * dir;\n                    this.isRemainingItemsAdded = false;\n                }\n\n                let originalShiftedItems = isCircular ? totalShiftedItems + this.d_numVisible : totalShiftedItems;\n\n                page = Math.abs(Math.floor(originalShiftedItems / this.d_numScroll));\n            }\n\n            if (isCircular && this.d_page === this.totalIndicators - 1 && dir === -1) {\n                totalShiftedItems = -1 * (this.value.length + this.d_numVisible);\n                page = 0;\n            } else if (isCircular && this.d_page === 0 && dir === 1) {\n                totalShiftedItems = 0;\n                page = this.totalIndicators - 1;\n            } else if (page === this.totalIndicators - 1 && this.remainingItems > 0) {\n                totalShiftedItems += this.remainingItems * -1 - this.d_numScroll * dir;\n                this.isRemainingItemsAdded = true;\n            }\n\n            if (this.$refs.itemsContainer) {\n                !this.isUnstyled && removeClass(this.$refs.itemsContainer, 'p-items-hidden');\n                this.$refs.itemsContainer.style.transform = this.isVertical() ? `translate3d(0, ${totalShiftedItems * (100 / this.d_numVisible)}%, 0)` : `translate3d(${totalShiftedItems * (100 / this.d_numVisible)}%, 0, 0)`;\n                this.$refs.itemsContainer.style.transition = 'transform 500ms ease 0s';\n            }\n\n            this.totalShiftedItems = totalShiftedItems;\n\n            this.$emit('update:page', page);\n            this.d_page = page;\n        },\n        calculatePosition() {\n            if (this.$refs.itemsContainer && this.responsiveOptions) {\n                let windowWidth = window.innerWidth;\n                let matchedResponsiveOptionsData = {\n                    numVisible: this.numVisible,\n                    numScroll: this.numScroll\n                };\n\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                        matchedResponsiveOptionsData = res;\n                    }\n                }\n\n                if (this.d_numScroll !== matchedResponsiveOptionsData.numScroll) {\n                    let page = this.d_page;\n\n                    page = parseInt((page * this.d_numScroll) / matchedResponsiveOptionsData.numScroll);\n\n                    this.totalShiftedItems = matchedResponsiveOptionsData.numScroll * page * -1;\n\n                    if (this.isCircular()) {\n                        this.totalShiftedItems -= matchedResponsiveOptionsData.numVisible;\n                    }\n\n                    this.d_numScroll = matchedResponsiveOptionsData.numScroll;\n\n                    this.$emit('update:page', page);\n                    this.d_page = page;\n                }\n\n                if (this.d_numVisible !== matchedResponsiveOptionsData.numVisible) {\n                    this.d_numVisible = matchedResponsiveOptionsData.numVisible;\n                }\n            }\n        },\n        navBackward(e, index) {\n            if (this.d_circular || this.d_page !== 0) {\n                this.step(1, index);\n            }\n\n            this.allowAutoplay = false;\n\n            if (e.cancelable) {\n                e.preventDefault();\n            }\n        },\n        navForward(e, index) {\n            if (this.d_circular || this.d_page < this.totalIndicators - 1) {\n                this.step(-1, index);\n            }\n\n            this.allowAutoplay = false;\n\n            if (e.cancelable) {\n                e.preventDefault();\n            }\n        },\n        onIndicatorClick(e, index) {\n            let page = this.d_page;\n\n            if (index > page) {\n                this.navForward(e, index);\n            } else if (index < page) {\n                this.navBackward(e, index);\n            }\n        },\n        onTransitionEnd() {\n            if (this.$refs.itemsContainer) {\n                !this.isUnstyled && addClass(this.$refs.itemsContainer, 'p-items-hidden');\n                this.$refs.itemsContainer.style.transition = '';\n\n                if ((this.d_page === 0 || this.d_page === this.totalIndicators - 1) && this.isCircular()) {\n                    this.$refs.itemsContainer.style.transform = this.isVertical() ? `translate3d(0, ${this.totalShiftedItems * (100 / this.d_numVisible)}%, 0)` : `translate3d(${this.totalShiftedItems * (100 / this.d_numVisible)}%, 0, 0)`;\n                }\n            }\n        },\n        onTouchStart(e) {\n            let touchobj = e.changedTouches[0];\n\n            this.startPos = {\n                x: touchobj.pageX,\n                y: touchobj.pageY\n            };\n        },\n        onTouchMove(e) {\n            const touchobj = e.changedTouches[0];\n            const diff = this.isVertical() ? touchobj.pageY - this.startPos.y : touchobj.pageX - this.startPos.x;\n\n            if (Math.abs(diff) > this.swipeThreshold && e.cancelable) {\n                e.preventDefault();\n            }\n        },\n        onTouchEnd(e) {\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        changePageOnTouch(e, diff) {\n            if (Math.abs(diff) > this.swipeThreshold) {\n                if (diff < 0) {\n                    // left\n                    this.navForward(e);\n                } else {\n                    // right\n                    this.navBackward(e);\n                }\n            }\n        },\n        onIndicatorKeydown(event) {\n            switch (event.code) {\n                case 'ArrowRight':\n                    this.onRightKey();\n                    break;\n\n                case 'ArrowLeft':\n                    this.onLeftKey();\n                    break;\n\n                case 'Home':\n                    this.onHomeKey();\n                    event.preventDefault();\n                    break;\n\n                case 'End':\n                    this.onEndKey();\n                    event.preventDefault();\n                    break;\n\n                case 'ArrowUp':\n                case 'ArrowDown':\n                case 'PageUp':\n                case 'PageDown':\n                    event.preventDefault();\n                    break;\n\n                case 'Tab':\n                    this.onTabKey();\n                    break;\n\n                default:\n                    break;\n            }\n        },\n        onRightKey() {\n            const indicators = [...find(this.$refs.indicatorContent, '[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        onLeftKey() {\n            const activeIndex = this.findFocusedIndicatorIndex();\n\n            this.changedFocusedIndicator(activeIndex, activeIndex - 1 <= 0 ? 0 : activeIndex - 1);\n        },\n        onHomeKey() {\n            const activeIndex = this.findFocusedIndicatorIndex();\n\n            this.changedFocusedIndicator(activeIndex, 0);\n        },\n        onEndKey() {\n            const indicators = [...find(this.$refs.indicatorContent, '[data-pc-section=\"indicator\"]')];\n            const activeIndex = this.findFocusedIndicatorIndex();\n\n            this.changedFocusedIndicator(activeIndex, indicators.length - 1);\n        },\n        onTabKey() {\n            const indicators = [...find(this.$refs.indicatorContent, '[data-pc-section=\"indicator\"]')];\n            const highlightedIndex = indicators.findIndex((ind) => getAttribute(ind, 'data-p-active') === true);\n\n            const activeIndicator = findSingle(this.$refs.indicatorContent, '[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        findFocusedIndicatorIndex() {\n            const indicators = [...find(this.$refs.indicatorContent, '[data-pc-section=\"indicator\"]')];\n            const activeIndicator = findSingle(this.$refs.indicatorContent, '[data-pc-section=\"indicator\"] > button[tabindex=\"0\"]');\n\n            return indicators.findIndex((ind) => ind === activeIndicator.parentElement);\n        },\n        changedFocusedIndicator(prevInd, nextInd) {\n            const indicators = [...find(this.$refs.indicatorContent, '[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        bindDocumentListeners() {\n            if (!this.documentResizeListener) {\n                this.documentResizeListener = (e) => {\n                    this.calculatePosition(e);\n                };\n\n                window.addEventListener('resize', this.documentResizeListener);\n            }\n        },\n        unbindDocumentListeners() {\n            if (this.documentResizeListener) {\n                window.removeEventListener('resize', this.documentResizeListener);\n                this.documentResizeListener = null;\n            }\n        },\n        startAutoplay() {\n            this.interval = setInterval(() => {\n                if (this.d_page === this.totalIndicators - 1) {\n                    this.step(-1, 0);\n                } else {\n                    this.step(-1, this.d_page + 1);\n                }\n            }, this.autoplayInterval);\n        },\n        stopAutoplay() {\n            if (this.interval) {\n                clearInterval(this.interval);\n            }\n        },\n        createStyle() {\n            if (!this.carouselStyle) {\n                this.carouselStyle = document.createElement('style');\n                this.carouselStyle.type = 'text/css';\n                setAttribute(this.carouselStyle, 'nonce', this.$primevue?.config?.csp?.nonce);\n                document.body.appendChild(this.carouselStyle);\n            }\n\n            let innerHTML = `\n                .p-carousel[${this.$attrSelector}] .p-carousel-item {\n                    flex: 1 0 ${100 / this.d_numVisible}%\n                }\n            `;\n\n            if (this.responsiveOptions && !this.isUnstyled) {\n                let _responsiveOptions = [...this.responsiveOptions];\n                const comparer = localeComparator();\n\n                _responsiveOptions.sort((data1, data2) => {\n                    const value1 = data1.breakpoint;\n                    const value2 = data2.breakpoint;\n\n                    return sort(value1, value2, -1, comparer);\n                });\n\n                for (let i = 0; i < _responsiveOptions.length; i++) {\n                    let res = _responsiveOptions[i];\n\n                    innerHTML += `\n                        @media screen and (max-width: ${res.breakpoint}) {\n                            .p-carousel[${this.$attrSelector}] .p-carousel-item {\n                                flex: 1 0 ${100 / res.numVisible}%\n                            }\n                        }\n                    `;\n                }\n            }\n\n            this.carouselStyle.innerHTML = innerHTML;\n        },\n        isVertical() {\n            return this.orientation === 'vertical';\n        },\n        isCircular() {\n            return this.value && this.d_circular && this.value.length >= this.d_numVisible;\n        },\n        isAutoplay() {\n            return this.autoplayInterval && this.allowAutoplay;\n        },\n        firstIndex() {\n            return this.isCircular() ? -1 * (this.totalShiftedItems + this.d_numVisible) : this.totalShiftedItems * -1;\n        },\n        lastIndex() {\n            return this.firstIndex() + this.d_numVisible - 1;\n        },\n        ariaSlideNumber(value) {\n            return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.slideNumber.replace(/{slideNumber}/g, value) : undefined;\n        },\n        ariaPageLabel(value) {\n            return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.pageLabel.replace(/{page}/g, value) : undefined;\n        }\n    },\n    computed: {\n        totalIndicators() {\n            return this.value ? Math.max(Math.ceil((this.value.length - this.d_numVisible) / this.d_numScroll) + 1, 0) : 0;\n        },\n        backwardIsDisabled() {\n            return this.value && (!this.circular || this.value.length < this.d_numVisible) && this.d_page === 0;\n        },\n        forwardIsDisabled() {\n            return this.value && (!this.circular || this.value.length < this.d_numVisible) && (this.d_page === this.totalIndicators - 1 || this.totalIndicators === 0);\n        },\n        ariaSlideLabel() {\n            return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.slide : undefined;\n        },\n        ariaPrevButtonLabel() {\n            return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.prevPageLabel : undefined;\n        },\n        ariaNextButtonLabel() {\n            return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.nextPageLabel : undefined;\n        },\n        empty() {\n            return !this.value || this.value.length === 0;\n        },\n        emptyMessageText() {\n            return this.$primevue.config?.locale?.emptyMessage || '';\n        }\n    },\n    components: {\n        Button,\n        ChevronRightIcon,\n        ChevronDownIcon,\n        ChevronLeftIcon,\n        ChevronUpIcon\n    },\n    directives: {\n        ripple: Ripple\n    }\n};\n</script>\n","<template>\n    <div :class=\"cx('root')\" role=\"region\" v-bind=\"ptmi('root')\">\n        <div v-if=\"$slots.header\" :class=\"cx('header')\" v-bind=\"ptm('header')\">\n            <slot name=\"header\"></slot>\n        </div>\n        <div v-if=\"!empty\" :class=\"[cx('contentContainer'), containerClass]\" v-bind=\"ptm('contentContainer')\">\n            <div :class=\"[cx('content'), contentClass]\" :aria-live=\"allowAutoplay ? 'polite' : 'off'\" v-bind=\"ptm('content')\">\n                <Button\n                    v-if=\"showNavigators\"\n                    :class=\"cx('pcPrevButton')\"\n                    :disabled=\"backwardIsDisabled\"\n                    :aria-label=\"ariaPrevButtonLabel\"\n                    :unstyled=\"unstyled\"\n                    @click=\"navBackward\"\n                    v-bind=\"prevButtonProps\"\n                    :pt=\"ptm('pcPrevButton')\"\n                    data-pc-group-section=\"navigator\"\n                >\n                    <template #icon=\"slotProps\">\n                        <slot name=\"previcon\">\n                            <component :is=\"isVertical() ? 'ChevronUpIcon' : 'ChevronLeftIcon'\" :class=\"slotProps.icon\" v-bind=\"ptm('pcPrevButton')['icon']\" />\n                        </slot>\n                    </template>\n                </Button>\n                <div :class=\"cx('viewport')\" :style=\"[{ height: isVertical() ? verticalViewPortHeight : 'auto' }]\" @touchend=\"onTouchEnd\" @touchstart=\"onTouchStart\" @touchmove=\"onTouchMove\" v-bind=\"ptm('viewport')\">\n                    <div ref=\"itemsContainer\" :class=\"cx('itemList')\" @transitionend=\"onTransitionEnd\" v-bind=\"ptm('itemList')\">\n                        <template v-if=\"isCircular()\">\n                            <div\n                                v-for=\"(item, index) of value.slice(-1 * d_numVisible)\"\n                                :key=\"index + '_scloned'\"\n                                :class=\"cx('itemClone', { index, value, totalShiftedItems, d_numVisible })\"\n                                v-bind=\"ptm('itemClone')\"\n                                :data-p-carousel-item-active=\"totalShiftedItems * -1 === value.length + d_numVisible\"\n                                :data-p-carousel-item-start=\"index === 0\"\n                                :data-p-carousel-item-end=\"value.slice(-1 * d_numVisible).length - 1 === index\"\n                            >\n                                <slot name=\"item\" :data=\"item\" :index=\"index\"></slot>\n                            </div>\n                        </template>\n                        <div\n                            v-for=\"(item, index) of value\"\n                            :key=\"index\"\n                            :class=\"cx('item', { index })\"\n                            role=\"group\"\n                            :aria-hidden=\"firstIndex() > index || lastIndex() < index ? true : undefined\"\n                            :aria-label=\"ariaSlideNumber(index)\"\n                            :aria-roledescription=\"ariaSlideLabel\"\n                            v-bind=\"getItemPTOptions('item', index)\"\n                            :data-p-carousel-item-active=\"firstIndex() <= index && lastIndex() >= index\"\n                            :data-p-carousel-item-start=\"firstIndex() === index\"\n                            :data-p-carousel-item-end=\"lastIndex() === index\"\n                        >\n                            <slot name=\"item\" :data=\"item\" :index=\"index\"></slot>\n                        </div>\n                        <template v-if=\"isCircular()\">\n                            <div v-for=\"(item, index) of value.slice(0, d_numVisible)\" :key=\"index + '_fcloned'\" :class=\"cx('itemClone', { index, value, totalShiftedItems, d_numVisible })\" v-bind=\"ptm('itemClone')\">\n                                <slot name=\"item\" :data=\"item\" :index=\"index\"></slot>\n                            </div>\n                        </template>\n                    </div>\n                </div>\n                <Button\n                    v-if=\"showNavigators\"\n                    :class=\"cx('pcNextButton')\"\n                    :disabled=\"forwardIsDisabled\"\n                    :aria-label=\"ariaNextButtonLabel\"\n                    :unstyled=\"unstyled\"\n                    @click=\"navForward\"\n                    v-bind=\"nextButtonProps\"\n                    :pt=\"ptm('pcNextButton')\"\n                    data-pc-group-section=\"navigator\"\n                >\n                    <template #icon=\"slotProps\">\n                        <slot name=\"nexticon\">\n                            <component :is=\"isVertical() ? 'ChevronDownIcon' : 'ChevronRightIcon'\" :class=\"slotProps.class\" v-bind=\"ptm('pcNextButton')['icon']\" />\n                        </slot>\n                    </template>\n                </Button>\n            </div>\n            <ul v-if=\"totalIndicators >= 0 && showIndicators\" ref=\"indicatorContent\" :class=\"[cx('indicatorList'), indicatorsContentClass]\" @keydown=\"onIndicatorKeydown\" v-bind=\"ptm('indicatorList')\">\n                <li v-for=\"(indicator, i) of totalIndicators\" :key=\"'p-carousel-indicator-' + i.toString()\" :class=\"cx('indicator', { index: i })\" v-bind=\"getIndicatorPTOptions('indicator', i)\" :data-p-active=\"d_page === i\">\n                    <button\n                        :class=\"cx('indicatorButton')\"\n                        type=\"button\"\n                        :tabindex=\"d_page === i ? '0' : '-1'\"\n                        :aria-label=\"ariaPageLabel(i + 1)\"\n                        :aria-current=\"d_page === i ? 'page' : undefined\"\n                        @click=\"onIndicatorClick($event, i)\"\n                        v-bind=\"getIndicatorPTOptions('indicatorButton', i)\"\n                    />\n                </li>\n            </ul>\n        </div>\n        <slot v-else name=\"empty\">\n            {{ emptyMessageText }}\n        </slot>\n        <div v-if=\"$slots.footer\" :class=\"cx('footer')\" v-bind=\"ptm('footer')\">\n            <slot name=\"footer\"></slot>\n        </div>\n    </div>\n</template>\n\n<script>\nimport { addClass, find, findSingle, getAttribute, removeClass, setAttribute } from '@primeuix/utils/dom';\nimport { localeComparator, sort } from '@primeuix/utils/object';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport ChevronLeftIcon from '@primevue/icons/chevronleft';\nimport ChevronRightIcon from '@primevue/icons/chevronright';\nimport ChevronUpIcon from '@primevue/icons/chevronup';\nimport Button from 'primevue/button';\nimport Ripple from 'primevue/ripple';\nimport BaseCarousel from './BaseCarousel.vue';\n\nexport default {\n    name: 'Carousel',\n    extends: BaseCarousel,\n    inheritAttrs: false,\n    emits: ['update:page'],\n    isRemainingItemsAdded: false,\n    data() {\n        return {\n            remainingItems: 0,\n            d_numVisible: this.numVisible,\n            d_numScroll: this.numScroll,\n            d_oldNumScroll: 0,\n            d_oldNumVisible: 0,\n            d_oldValue: null,\n            d_page: this.page,\n            totalShiftedItems: this.page * this.numScroll * -1,\n            allowAutoplay: !!this.autoplayInterval,\n            d_circular: this.circular || this.allowAutoplay,\n            swipeThreshold: 20\n        };\n    },\n    watch: {\n        page(newValue) {\n            if (newValue > this.d_page) {\n                this.navForward({}, newValue);\n            } else if (newValue < this.d_page) {\n                this.navBackward({}, newValue);\n            }\n\n            this.d_page = newValue;\n        },\n        circular(newValue) {\n            this.d_circular = newValue;\n        },\n        numVisible(newValue, oldValue) {\n            this.d_numVisible = newValue;\n            this.d_oldNumVisible = oldValue;\n        },\n        numScroll(newValue, oldValue) {\n            this.d_oldNumScroll = oldValue;\n            this.d_numScroll = newValue;\n        },\n        value(oldValue) {\n            this.d_oldValue = oldValue;\n        }\n    },\n    mounted() {\n        let stateChanged = false;\n\n        this.createStyle();\n        this.calculatePosition();\n\n        if (this.responsiveOptions) {\n            this.bindDocumentListeners();\n        }\n\n        if (this.isCircular()) {\n            let totalShiftedItems = this.totalShiftedItems;\n\n            if (this.d_page === 0) {\n                totalShiftedItems = -1 * this.d_numVisible;\n            } else if (totalShiftedItems === 0) {\n                totalShiftedItems = -1 * this.value.length;\n\n                if (this.remainingItems > 0) {\n                    this.isRemainingItemsAdded = true;\n                }\n            }\n\n            if (totalShiftedItems !== this.totalShiftedItems) {\n                this.totalShiftedItems = totalShiftedItems;\n\n                stateChanged = true;\n            }\n        }\n\n        if (!stateChanged && this.isAutoplay()) {\n            this.startAutoplay();\n        }\n    },\n    updated() {\n        if (!this.empty) {\n            const isCircular = this.isCircular();\n            let stateChanged = false;\n            let totalShiftedItems = this.totalShiftedItems;\n\n            if (this.autoplayInterval) {\n                this.stopAutoplay();\n            }\n\n            if (this.d_oldNumScroll !== this.d_numScroll || this.d_oldNumVisible !== this.d_numVisible || this.d_oldValue.length !== this.value.length) {\n                this.remainingItems = (this.value.length - this.d_numVisible) % this.d_numScroll;\n\n                let page = this.d_page;\n\n                if (this.totalIndicators !== 0 && page >= this.totalIndicators) {\n                    page = this.totalIndicators - 1;\n                    this.$emit('update:page', page);\n                    this.d_page = page;\n                    stateChanged = true;\n                }\n\n                totalShiftedItems = page * this.d_numScroll * -1;\n\n                if (isCircular) {\n                    totalShiftedItems -= this.d_numVisible;\n                }\n\n                if (page === this.totalIndicators - 1 && this.remainingItems > 0) {\n                    totalShiftedItems += -1 * this.remainingItems + this.d_numScroll;\n                    this.isRemainingItemsAdded = true;\n                } else {\n                    this.isRemainingItemsAdded = false;\n                }\n\n                if (totalShiftedItems !== this.totalShiftedItems) {\n                    this.totalShiftedItems = totalShiftedItems;\n                    stateChanged = true;\n                }\n\n                this.d_oldNumScroll = this.d_numScroll;\n                this.d_oldNumVisible = this.d_numVisible;\n                this.d_oldValue = this.value;\n                this.$refs.itemsContainer.style.transform = this.isVertical() ? `translate3d(0, ${totalShiftedItems * (100 / this.d_numVisible)}%, 0)` : `translate3d(${totalShiftedItems * (100 / this.d_numVisible)}%, 0, 0)`;\n            }\n\n            if (isCircular) {\n                if (this.d_page === 0) {\n                    totalShiftedItems = -1 * this.d_numVisible;\n                } else if (totalShiftedItems === 0) {\n                    totalShiftedItems = -1 * this.value.length;\n\n                    if (this.remainingItems > 0) {\n                        this.isRemainingItemsAdded = true;\n                    }\n                }\n\n                if (totalShiftedItems !== this.totalShiftedItems) {\n                    this.totalShiftedItems = totalShiftedItems;\n\n                    stateChanged = true;\n                }\n            }\n\n            if (!stateChanged && this.isAutoplay()) {\n                this.startAutoplay();\n            }\n        }\n    },\n    beforeUnmount() {\n        if (this.responsiveOptions) {\n            this.unbindDocumentListeners();\n        }\n\n        if (this.autoplayInterval) {\n            this.stopAutoplay();\n        }\n    },\n    methods: {\n        getIndicatorPTOptions(key, index) {\n            return this.ptm(key, {\n                context: {\n                    highlighted: index === this.d_page\n                }\n            });\n        },\n        getItemPTOptions(key, index) {\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        step(dir, page) {\n            let totalShiftedItems = this.totalShiftedItems;\n            const isCircular = this.isCircular();\n\n            if (page != null) {\n                totalShiftedItems = this.d_numScroll * page * -1;\n\n                if (isCircular) {\n                    totalShiftedItems -= this.d_numVisible;\n                }\n\n                this.isRemainingItemsAdded = false;\n            } else {\n                totalShiftedItems += this.d_numScroll * dir;\n\n                if (this.isRemainingItemsAdded) {\n                    totalShiftedItems += this.remainingItems - this.d_numScroll * dir;\n                    this.isRemainingItemsAdded = false;\n                }\n\n                let originalShiftedItems = isCircular ? totalShiftedItems + this.d_numVisible : totalShiftedItems;\n\n                page = Math.abs(Math.floor(originalShiftedItems / this.d_numScroll));\n            }\n\n            if (isCircular && this.d_page === this.totalIndicators - 1 && dir === -1) {\n                totalShiftedItems = -1 * (this.value.length + this.d_numVisible);\n                page = 0;\n            } else if (isCircular && this.d_page === 0 && dir === 1) {\n                totalShiftedItems = 0;\n                page = this.totalIndicators - 1;\n            } else if (page === this.totalIndicators - 1 && this.remainingItems > 0) {\n                totalShiftedItems += this.remainingItems * -1 - this.d_numScroll * dir;\n                this.isRemainingItemsAdded = true;\n            }\n\n            if (this.$refs.itemsContainer) {\n                !this.isUnstyled && removeClass(this.$refs.itemsContainer, 'p-items-hidden');\n                this.$refs.itemsContainer.style.transform = this.isVertical() ? `translate3d(0, ${totalShiftedItems * (100 / this.d_numVisible)}%, 0)` : `translate3d(${totalShiftedItems * (100 / this.d_numVisible)}%, 0, 0)`;\n                this.$refs.itemsContainer.style.transition = 'transform 500ms ease 0s';\n            }\n\n            this.totalShiftedItems = totalShiftedItems;\n\n            this.$emit('update:page', page);\n            this.d_page = page;\n        },\n        calculatePosition() {\n            if (this.$refs.itemsContainer && this.responsiveOptions) {\n                let windowWidth = window.innerWidth;\n                let matchedResponsiveOptionsData = {\n                    numVisible: this.numVisible,\n                    numScroll: this.numScroll\n                };\n\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                        matchedResponsiveOptionsData = res;\n                    }\n                }\n\n                if (this.d_numScroll !== matchedResponsiveOptionsData.numScroll) {\n                    let page = this.d_page;\n\n                    page = parseInt((page * this.d_numScroll) / matchedResponsiveOptionsData.numScroll);\n\n                    this.totalShiftedItems = matchedResponsiveOptionsData.numScroll * page * -1;\n\n                    if (this.isCircular()) {\n                        this.totalShiftedItems -= matchedResponsiveOptionsData.numVisible;\n                    }\n\n                    this.d_numScroll = matchedResponsiveOptionsData.numScroll;\n\n                    this.$emit('update:page', page);\n                    this.d_page = page;\n                }\n\n                if (this.d_numVisible !== matchedResponsiveOptionsData.numVisible) {\n                    this.d_numVisible = matchedResponsiveOptionsData.numVisible;\n                }\n            }\n        },\n        navBackward(e, index) {\n            if (this.d_circular || this.d_page !== 0) {\n                this.step(1, index);\n            }\n\n            this.allowAutoplay = false;\n\n            if (e.cancelable) {\n                e.preventDefault();\n            }\n        },\n        navForward(e, index) {\n            if (this.d_circular || this.d_page < this.totalIndicators - 1) {\n                this.step(-1, index);\n            }\n\n            this.allowAutoplay = false;\n\n            if (e.cancelable) {\n                e.preventDefault();\n            }\n        },\n        onIndicatorClick(e, index) {\n            let page = this.d_page;\n\n            if (index > page) {\n                this.navForward(e, index);\n            } else if (index < page) {\n                this.navBackward(e, index);\n            }\n        },\n        onTransitionEnd() {\n            if (this.$refs.itemsContainer) {\n                !this.isUnstyled && addClass(this.$refs.itemsContainer, 'p-items-hidden');\n                this.$refs.itemsContainer.style.transition = '';\n\n                if ((this.d_page === 0 || this.d_page === this.totalIndicators - 1) && this.isCircular()) {\n                    this.$refs.itemsContainer.style.transform = this.isVertical() ? `translate3d(0, ${this.totalShiftedItems * (100 / this.d_numVisible)}%, 0)` : `translate3d(${this.totalShiftedItems * (100 / this.d_numVisible)}%, 0, 0)`;\n                }\n            }\n        },\n        onTouchStart(e) {\n            let touchobj = e.changedTouches[0];\n\n            this.startPos = {\n                x: touchobj.pageX,\n                y: touchobj.pageY\n            };\n        },\n        onTouchMove(e) {\n            const touchobj = e.changedTouches[0];\n            const diff = this.isVertical() ? touchobj.pageY - this.startPos.y : touchobj.pageX - this.startPos.x;\n\n            if (Math.abs(diff) > this.swipeThreshold && e.cancelable) {\n                e.preventDefault();\n            }\n        },\n        onTouchEnd(e) {\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        changePageOnTouch(e, diff) {\n            if (Math.abs(diff) > this.swipeThreshold) {\n                if (diff < 0) {\n                    // left\n                    this.navForward(e);\n                } else {\n                    // right\n                    this.navBackward(e);\n                }\n            }\n        },\n        onIndicatorKeydown(event) {\n            switch (event.code) {\n                case 'ArrowRight':\n                    this.onRightKey();\n                    break;\n\n                case 'ArrowLeft':\n                    this.onLeftKey();\n                    break;\n\n                case 'Home':\n                    this.onHomeKey();\n                    event.preventDefault();\n                    break;\n\n                case 'End':\n                    this.onEndKey();\n                    event.preventDefault();\n                    break;\n\n                case 'ArrowUp':\n                case 'ArrowDown':\n                case 'PageUp':\n                case 'PageDown':\n                    event.preventDefault();\n                    break;\n\n                case 'Tab':\n                    this.onTabKey();\n                    break;\n\n                default:\n                    break;\n            }\n        },\n        onRightKey() {\n            const indicators = [...find(this.$refs.indicatorContent, '[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        onLeftKey() {\n            const activeIndex = this.findFocusedIndicatorIndex();\n\n            this.changedFocusedIndicator(activeIndex, activeIndex - 1 <= 0 ? 0 : activeIndex - 1);\n        },\n        onHomeKey() {\n            const activeIndex = this.findFocusedIndicatorIndex();\n\n            this.changedFocusedIndicator(activeIndex, 0);\n        },\n        onEndKey() {\n            const indicators = [...find(this.$refs.indicatorContent, '[data-pc-section=\"indicator\"]')];\n            const activeIndex = this.findFocusedIndicatorIndex();\n\n            this.changedFocusedIndicator(activeIndex, indicators.length - 1);\n        },\n        onTabKey() {\n            const indicators = [...find(this.$refs.indicatorContent, '[data-pc-section=\"indicator\"]')];\n            const highlightedIndex = indicators.findIndex((ind) => getAttribute(ind, 'data-p-active') === true);\n\n            const activeIndicator = findSingle(this.$refs.indicatorContent, '[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        findFocusedIndicatorIndex() {\n            const indicators = [...find(this.$refs.indicatorContent, '[data-pc-section=\"indicator\"]')];\n            const activeIndicator = findSingle(this.$refs.indicatorContent, '[data-pc-section=\"indicator\"] > button[tabindex=\"0\"]');\n\n            return indicators.findIndex((ind) => ind === activeIndicator.parentElement);\n        },\n        changedFocusedIndicator(prevInd, nextInd) {\n            const indicators = [...find(this.$refs.indicatorContent, '[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        bindDocumentListeners() {\n            if (!this.documentResizeListener) {\n                this.documentResizeListener = (e) => {\n                    this.calculatePosition(e);\n                };\n\n                window.addEventListener('resize', this.documentResizeListener);\n            }\n        },\n        unbindDocumentListeners() {\n            if (this.documentResizeListener) {\n                window.removeEventListener('resize', this.documentResizeListener);\n                this.documentResizeListener = null;\n            }\n        },\n        startAutoplay() {\n            this.interval = setInterval(() => {\n                if (this.d_page === this.totalIndicators - 1) {\n                    this.step(-1, 0);\n                } else {\n                    this.step(-1, this.d_page + 1);\n                }\n            }, this.autoplayInterval);\n        },\n        stopAutoplay() {\n            if (this.interval) {\n                clearInterval(this.interval);\n            }\n        },\n        createStyle() {\n            if (!this.carouselStyle) {\n                this.carouselStyle = document.createElement('style');\n                this.carouselStyle.type = 'text/css';\n                setAttribute(this.carouselStyle, 'nonce', this.$primevue?.config?.csp?.nonce);\n                document.body.appendChild(this.carouselStyle);\n            }\n\n            let innerHTML = `\n                .p-carousel[${this.$attrSelector}] .p-carousel-item {\n                    flex: 1 0 ${100 / this.d_numVisible}%\n                }\n            `;\n\n            if (this.responsiveOptions && !this.isUnstyled) {\n                let _responsiveOptions = [...this.responsiveOptions];\n                const comparer = localeComparator();\n\n                _responsiveOptions.sort((data1, data2) => {\n                    const value1 = data1.breakpoint;\n                    const value2 = data2.breakpoint;\n\n                    return sort(value1, value2, -1, comparer);\n                });\n\n                for (let i = 0; i < _responsiveOptions.length; i++) {\n                    let res = _responsiveOptions[i];\n\n                    innerHTML += `\n                        @media screen and (max-width: ${res.breakpoint}) {\n                            .p-carousel[${this.$attrSelector}] .p-carousel-item {\n                                flex: 1 0 ${100 / res.numVisible}%\n                            }\n                        }\n                    `;\n                }\n            }\n\n            this.carouselStyle.innerHTML = innerHTML;\n        },\n        isVertical() {\n            return this.orientation === 'vertical';\n        },\n        isCircular() {\n            return this.value && this.d_circular && this.value.length >= this.d_numVisible;\n        },\n        isAutoplay() {\n            return this.autoplayInterval && this.allowAutoplay;\n        },\n        firstIndex() {\n            return this.isCircular() ? -1 * (this.totalShiftedItems + this.d_numVisible) : this.totalShiftedItems * -1;\n        },\n        lastIndex() {\n            return this.firstIndex() + this.d_numVisible - 1;\n        },\n        ariaSlideNumber(value) {\n            return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.slideNumber.replace(/{slideNumber}/g, value) : undefined;\n        },\n        ariaPageLabel(value) {\n            return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.pageLabel.replace(/{page}/g, value) : undefined;\n        }\n    },\n    computed: {\n        totalIndicators() {\n            return this.value ? Math.max(Math.ceil((this.value.length - this.d_numVisible) / this.d_numScroll) + 1, 0) : 0;\n        },\n        backwardIsDisabled() {\n            return this.value && (!this.circular || this.value.length < this.d_numVisible) && this.d_page === 0;\n        },\n        forwardIsDisabled() {\n            return this.value && (!this.circular || this.value.length < this.d_numVisible) && (this.d_page === this.totalIndicators - 1 || this.totalIndicators === 0);\n        },\n        ariaSlideLabel() {\n            return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.slide : undefined;\n        },\n        ariaPrevButtonLabel() {\n            return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.prevPageLabel : undefined;\n        },\n        ariaNextButtonLabel() {\n            return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.nextPageLabel : undefined;\n        },\n        empty() {\n            return !this.value || this.value.length === 0;\n        },\n        emptyMessageText() {\n            return this.$primevue.config?.locale?.emptyMessage || '';\n        }\n    },\n    components: {\n        Button,\n        ChevronRightIcon,\n        ChevronDownIcon,\n        ChevronLeftIcon,\n        ChevronUpIcon\n    },\n    directives: {\n        ripple: Ripple\n    }\n};\n</script>\n"],"names":["name","BaseComponent","props","value","page","type","Number","numVisible","numScroll","responsiveOptions","Array","orientation","String","verticalViewPortHeight","contentClass","containerClass","indicatorsContentClass","circular","Boolean","autoplayInterval","showNavigators","showIndicators","prevButtonProps","Object","default","severity","text","rounded","nextButtonProps","style","CarouselStyle","provide","$pcCarousel","$parentInstance","BaseCarousel","inheritAttrs","emits","isRemainingItemsAdded","data","remainingItems","d_numVisible","d_numScroll","d_oldNumScroll","d_oldNumVisible","d_oldValue","d_page","totalShiftedItems","allowAutoplay","d_circular","swipeThreshold","watch","newValue","navForward","navBackward","oldValue","mounted","stateChanged","createStyle","calculatePosition","bindDocumentListeners","isCircular","length","isAutoplay","startAutoplay","updated","empty","stopAutoplay","totalIndicators","$emit","$refs","itemsContainer","transform","isVertical","concat","beforeUnmount","unbindDocumentListeners","methods","getIndicatorPTOptions","key","index","ptm","context","highlighted","getItemPTOptions","active","firstIndex","lastIndex","start","end","step","dir","originalShiftedItems","Math","abs","floor","isUnstyled","removeClass","transition","windowWidth","window","innerWidth","matchedResponsiveOptionsData","i","res","parseInt","breakpoint","e","cancelable","preventDefault","onIndicatorClick","onTransitionEnd","addClass","onTouchStart","touchobj","changedTouches","startPos","x","pageX","y","pageY","onTouchMove","diff","onTouchEnd","changePageOnTouch","onIndicatorKeydown","event","code","onRightKey","onLeftKey","onHomeKey","onEndKey","onTabKey","indicators","_toConsumableArray","find","indicatorContent","activeIndex","findFocusedIndicatorIndex","changedFocusedIndicator","highlightedIndex","findIndex","ind","getAttribute","activeIndicator","findSingle","parentElement","children","tabIndex","prevInd","nextInd","focus","_this","documentResizeListener","addEventListener","removeEventListener","_this2","interval","setInterval","clearInterval","carouselStyle","_this$$primevue","document","createElement","setAttribute","$primevue","config","csp","nonce","body","appendChild","innerHTML","$attrSelector","_responsiveOptions","comparer","localeComparator","sort","data1","data2","value1","value2","ariaSlideNumber","locale","aria","slideNumber","replace","undefined","ariaPageLabel","pageLabel","computed","max","ceil","backwardIsDisabled","forwardIsDisabled","ariaSlideLabel","slide","ariaPrevButtonLabel","prevPageLabel","ariaNextButtonLabel","nextPageLabel","emptyMessageText","_this$$primevue$confi","emptyMessage","components","Button","ChevronRightIcon","ChevronDownIcon","ChevronLeftIcon","ChevronUpIcon","directives","ripple","Ripple","_openBlock","_createElementBlock","_mergeProps","_ctx","cx","role","ptmi","$slots","header","_renderSlot","$options","_createElementVNode","$data","_createBlock","_component_Button","disabled","unstyled","onClick","pt","icon","_withCtx","slotProps","_resolveDynamicComponent","height","onTouchend","apply","arguments","onTouchstart","onTouchmove","ref","onTransitionend","_Fragment","_renderList","slice","item","onKeydown","indicator","toString","tabindex","$event","_hoisted_5","footer"],"mappings":"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"}