{"version":3,"file":"index.mjs","sources":["../../src/carousel/BaseCarousel.vue","../../src/carousel/Carousel.vue","../../src/carousel/Carousel.vue?vue&type=template&id=7b779638&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=\"ptm('item')\"\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=\"ptm('indicator', getIndicatorPTOptions(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=\"ptm('indicatorButton', getIndicatorPTOptions(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 { UniqueComponentId } from '@primevue/core/utils';\nimport { removeClass, addClass, find, findSingle, getAttribute, 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.$el.setAttribute(this.attributeSelector, '');\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(index) {\n            return {\n                context: {\n                    highlighted: index === this.d_page\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.attributeSelector}] .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.attributeSelector}] .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        attributeSelector() {\n            return UniqueComponentId();\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=\"ptm('item')\"\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=\"ptm('indicator', getIndicatorPTOptions(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=\"ptm('indicatorButton', getIndicatorPTOptions(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 { UniqueComponentId } from '@primevue/core/utils';\nimport { removeClass, addClass, find, findSingle, getAttribute, 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.$el.setAttribute(this.attributeSelector, '');\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(index) {\n            return {\n                context: {\n                    highlighted: index === this.d_page\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.attributeSelector}] .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.attributeSelector}] .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        attributeSelector() {\n            return UniqueComponentId();\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","$el","setAttribute","attributeSelector","createStyle","calculatePosition","bindDocumentListeners","isCircular","length","isAutoplay","startAutoplay","updated","empty","stopAutoplay","totalIndicators","$emit","$refs","itemsContainer","transform","isVertical","concat","beforeUnmount","unbindDocumentListeners","methods","getIndicatorPTOptions","index","context","highlighted","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","$primevue","config","csp","nonce","body","appendChild","innerHTML","_responsiveOptions","comparer","localeComparator","sort","data1","data2","value1","value2","firstIndex","lastIndex","ariaSlideNumber","locale","aria","slideNumber","replace","undefined","ariaPageLabel","pageLabel","computed","max","ceil","backwardIsDisabled","forwardIsDisabled","ariaSlideLabel","slide","ariaPrevButtonLabel","prevPageLabel","ariaNextButtonLabel","nextPageLabel","UniqueComponentId","emptyMessageText","_this$$primevue$confi","emptyMessage","components","Button","ChevronRightIcon","ChevronDownIcon","ChevronLeftIcon","ChevronUpIcon","directives","ripple","Ripple","_openBlock","_createElementBlock","_mergeProps","_ctx","cx","role","ptmi","$slots","header","ptm","_renderSlot","$options","_createElementVNode","$data","_createBlock","_component_Button","disabled","unstyled","onClick","pt","icon","_withCtx","slotProps","_resolveDynamicComponent","height","onTouchend","apply","arguments","onTouchstart","onTouchmove","ref","onTransitionend","_Fragment","key","_renderList","slice","item","onKeydown","indicator","toString","tabindex","$event","_hoisted_5","footer"],"mappings":"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"}