{"version":3,"file":"index.mjs","sources":["../../src/galleria/BaseGalleria.vue","../../src/galleria/GalleriaItem.vue","../../src/galleria/GalleriaItem.vue?vue&type=template&id=5d2e898a&lang.js","../../src/galleria/GalleriaThumbnails.vue","../../src/galleria/GalleriaThumbnails.vue?vue&type=template&id=75d361a8&lang.js","../../src/galleria/GalleriaContent.vue","../../src/galleria/GalleriaContent.vue?vue&type=template&id=059a0f61&lang.js","../../src/galleria/Galleria.vue","../../src/galleria/Galleria.vue?vue&type=template&id=68640091&lang.js"],"sourcesContent":["<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport GalleriaStyle from 'primevue/galleria/style';\n\nexport default {\n    name: 'BaseGalleria',\n    extends: BaseComponent,\n    props: {\n        id: {\n            type: String,\n            default: null\n        },\n        value: {\n            type: Array,\n            default: null\n        },\n        activeIndex: {\n            type: Number,\n            default: 0\n        },\n        fullScreen: {\n            type: Boolean,\n            default: false\n        },\n        visible: {\n            type: Boolean,\n            default: false\n        },\n        numVisible: {\n            type: Number,\n            default: 3\n        },\n        responsiveOptions: {\n            type: Array,\n            default: null\n        },\n        showItemNavigators: {\n            type: Boolean,\n            default: false\n        },\n        showThumbnailNavigators: {\n            type: Boolean,\n            default: true\n        },\n        showItemNavigatorsOnHover: {\n            type: Boolean,\n            default: false\n        },\n        changeItemOnIndicatorHover: {\n            type: Boolean,\n            default: false\n        },\n        circular: {\n            type: Boolean,\n            default: false\n        },\n        autoPlay: {\n            type: Boolean,\n            default: false\n        },\n        transitionInterval: {\n            type: Number,\n            default: 4000\n        },\n        showThumbnails: {\n            type: Boolean,\n            default: true\n        },\n        thumbnailsPosition: {\n            type: String,\n            default: 'bottom'\n        },\n        verticalThumbnailViewPortHeight: {\n            type: String,\n            default: '300px'\n        },\n        showIndicators: {\n            type: Boolean,\n            default: false\n        },\n        showIndicatorsOnItem: {\n            type: Boolean,\n            default: false\n        },\n        indicatorsPosition: {\n            type: String,\n            default: 'bottom'\n        },\n        baseZIndex: {\n            type: Number,\n            default: 0\n        },\n        maskClass: {\n            type: String,\n            default: null\n        },\n        containerStyle: {\n            type: null,\n            default: null\n        },\n        containerClass: {\n            type: null,\n            default: null\n        },\n        containerProps: {\n            type: null,\n            default: null\n        },\n        prevButtonProps: {\n            type: null,\n            default: null\n        },\n        nextButtonProps: {\n            type: null,\n            default: null\n        },\n        ariaLabel: {\n            type: String,\n            default: null\n        },\n        ariaRoledescription: {\n            type: String,\n            default: null\n        }\n    },\n    style: GalleriaStyle,\n    provide() {\n        return {\n            $pcGalleria: this,\n            $parentInstance: this\n        };\n    }\n};\n</script>\n","<template>\n    <div :class=\"cx('itemsContainer')\" v-bind=\"ptm('itemsContainer')\">\n        <div :class=\"cx('items')\" v-bind=\"ptm('items')\">\n            <button v-if=\"showItemNavigators\" v-ripple type=\"button\" :class=\"cx('prevButton')\" @click=\"navBackward($event)\" :disabled=\"isNavBackwardDisabled()\" v-bind=\"ptm('prevButton')\" data-pc-group-section=\"itemnavigator\">\n                <component :is=\"templates.previousitemicon || 'ChevronLeftIcon'\" :class=\"cx('prevIcon')\" v-bind=\"ptm('prevIcon')\" />\n            </button>\n            <div :id=\"id + '_item_' + activeIndex\" :class=\"cx('item')\" role=\"group\" :aria-label=\"ariaSlideNumber(activeIndex + 1)\" :aria-roledescription=\"ariaSlideLabel\" v-bind=\"ptm('item')\">\n                <component v-if=\"templates.item\" :is=\"templates.item\" :item=\"activeItem\" />\n            </div>\n            <button v-if=\"showItemNavigators\" v-ripple type=\"button\" :class=\"cx('nextButton')\" @click=\"navForward($event)\" :disabled=\"isNavForwardDisabled()\" v-bind=\"ptm('nextButton')\" data-pc-group-section=\"itemnavigator\">\n                <component :is=\"templates.nextitemicon || 'ChevronRightIcon'\" :class=\"cx('nextIcon')\" v-bind=\"ptm('nextIcon')\" />\n            </button>\n            <div v-if=\"templates['caption']\" :class=\"cx('caption')\" v-bind=\"ptm('caption')\">\n                <component v-if=\"templates.caption\" :is=\"templates.caption\" :item=\"activeItem\" />\n            </div>\n        </div>\n        <ul v-if=\"showIndicators\" ref=\"indicatorContent\" :class=\"cx('indicatorList')\" v-bind=\"ptm('indicatorList')\">\n            <li\n                v-for=\"(item, index) of value\"\n                :key=\"`p-galleria-indicator-${index}`\"\n                :class=\"cx('indicator', { index })\"\n                :aria-label=\"ariaPageLabel(index + 1)\"\n                :aria-selected=\"activeIndex === index\"\n                :aria-controls=\"id + '_item_' + index\"\n                @click=\"onIndicatorClick(index)\"\n                @mouseenter=\"onIndicatorMouseEnter(index)\"\n                @keydown=\"onIndicatorKeyDown($event, index)\"\n                v-bind=\"ptm('indicator', getIndicatorPTOptions(index))\"\n                :data-p-active=\"isIndicatorItemActive(index)\"\n            >\n                <button v-if=\"!templates['indicator']\" type=\"button\" :tabindex=\"activeIndex === index ? '0' : '-1'\" :class=\"cx('indicatorButton')\" v-bind=\"ptm('indicatorButton', getIndicatorPTOptions(index))\"></button>\n                <component v-if=\"templates.indicator\" :is=\"templates.indicator\" :index=\"index\" />\n            </li>\n        </ul>\n    </div>\n</template>\n\n<script>\nimport { find, findSingle, getAttribute } from '@primeuix/utils/dom';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport ChevronLeftIcon from '@primevue/icons/chevronleft';\nimport ChevronRightIcon from '@primevue/icons/chevronright';\nimport Ripple from 'primevue/ripple';\n\nexport default {\n    name: 'GalleriaItem',\n    hostName: 'Galleria',\n    extends: BaseComponent,\n    emits: ['start-slideshow', 'stop-slideshow', 'update:activeIndex'],\n    props: {\n        circular: {\n            type: Boolean,\n            default: false\n        },\n        activeIndex: {\n            type: Number,\n            default: 0\n        },\n        value: {\n            type: Array,\n            default: null\n        },\n        showItemNavigators: {\n            type: Boolean,\n            default: true\n        },\n        showIndicators: {\n            type: Boolean,\n            default: true\n        },\n        slideShowActive: {\n            type: Boolean,\n            default: true\n        },\n        changeItemOnIndicatorHover: {\n            type: Boolean,\n            default: true\n        },\n        autoPlay: {\n            type: Boolean,\n            default: false\n        },\n        templates: {\n            type: null,\n            default: null\n        },\n        id: {\n            type: String,\n            default: null\n        }\n    },\n    mounted() {\n        if (this.autoPlay) {\n            this.$emit('start-slideshow');\n        }\n    },\n    methods: {\n        getIndicatorPTOptions(index) {\n            return {\n                context: {\n                    highlighted: this.activeIndex === index\n                }\n            };\n        },\n        next() {\n            let nextItemIndex = this.activeIndex + 1;\n            let activeIndex = this.circular && this.value.length - 1 === this.activeIndex ? 0 : nextItemIndex;\n\n            this.$emit('update:activeIndex', activeIndex);\n        },\n        prev() {\n            let prevItemIndex = this.activeIndex !== 0 ? this.activeIndex - 1 : 0;\n            let activeIndex = this.circular && this.activeIndex === 0 ? this.value.length - 1 : prevItemIndex;\n\n            this.$emit('update:activeIndex', activeIndex);\n        },\n        stopSlideShow() {\n            if (this.slideShowActive && this.stopSlideShow) {\n                this.$emit('stop-slideshow');\n            }\n        },\n        navBackward(e) {\n            this.stopSlideShow();\n            this.prev();\n\n            if (e && e.cancelable) {\n                e.preventDefault();\n            }\n        },\n        navForward(e) {\n            this.stopSlideShow();\n            this.next();\n\n            if (e && e.cancelable) {\n                e.preventDefault();\n            }\n        },\n        onIndicatorClick(index) {\n            this.stopSlideShow();\n            this.$emit('update:activeIndex', index);\n        },\n        onIndicatorMouseEnter(index) {\n            if (this.changeItemOnIndicatorHover) {\n                this.stopSlideShow();\n\n                this.$emit('update:activeIndex', index);\n            }\n        },\n        onIndicatorKeyDown(event, index) {\n            switch (event.code) {\n                case 'Enter':\n                case 'NumpadEnter':\n                case 'Space':\n                    this.stopSlideShow();\n\n                    this.$emit('update:activeIndex', index);\n                    event.preventDefault();\n                    break;\n\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 'Tab':\n                    this.onTabKey();\n                    break;\n\n                case 'ArrowDown':\n                case 'ArrowUp':\n                case 'PageUp':\n                case 'PageDown':\n                    event.preventDefault();\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        isIndicatorItemActive(index) {\n            return this.activeIndex === index;\n        },\n        isNavBackwardDisabled() {\n            return !this.circular && this.activeIndex === 0;\n        },\n        isNavForwardDisabled() {\n            return !this.circular && this.activeIndex === this.value.length - 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        activeItem() {\n            return this.value[this.activeIndex];\n        },\n\n        ariaSlideLabel() {\n            return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.slide : undefined;\n        }\n    },\n    components: {\n        ChevronLeftIcon: ChevronLeftIcon,\n        ChevronRightIcon: ChevronRightIcon\n    },\n    directives: {\n        ripple: Ripple\n    }\n};\n</script>\n","<template>\n    <div :class=\"cx('itemsContainer')\" v-bind=\"ptm('itemsContainer')\">\n        <div :class=\"cx('items')\" v-bind=\"ptm('items')\">\n            <button v-if=\"showItemNavigators\" v-ripple type=\"button\" :class=\"cx('prevButton')\" @click=\"navBackward($event)\" :disabled=\"isNavBackwardDisabled()\" v-bind=\"ptm('prevButton')\" data-pc-group-section=\"itemnavigator\">\n                <component :is=\"templates.previousitemicon || 'ChevronLeftIcon'\" :class=\"cx('prevIcon')\" v-bind=\"ptm('prevIcon')\" />\n            </button>\n            <div :id=\"id + '_item_' + activeIndex\" :class=\"cx('item')\" role=\"group\" :aria-label=\"ariaSlideNumber(activeIndex + 1)\" :aria-roledescription=\"ariaSlideLabel\" v-bind=\"ptm('item')\">\n                <component v-if=\"templates.item\" :is=\"templates.item\" :item=\"activeItem\" />\n            </div>\n            <button v-if=\"showItemNavigators\" v-ripple type=\"button\" :class=\"cx('nextButton')\" @click=\"navForward($event)\" :disabled=\"isNavForwardDisabled()\" v-bind=\"ptm('nextButton')\" data-pc-group-section=\"itemnavigator\">\n                <component :is=\"templates.nextitemicon || 'ChevronRightIcon'\" :class=\"cx('nextIcon')\" v-bind=\"ptm('nextIcon')\" />\n            </button>\n            <div v-if=\"templates['caption']\" :class=\"cx('caption')\" v-bind=\"ptm('caption')\">\n                <component v-if=\"templates.caption\" :is=\"templates.caption\" :item=\"activeItem\" />\n            </div>\n        </div>\n        <ul v-if=\"showIndicators\" ref=\"indicatorContent\" :class=\"cx('indicatorList')\" v-bind=\"ptm('indicatorList')\">\n            <li\n                v-for=\"(item, index) of value\"\n                :key=\"`p-galleria-indicator-${index}`\"\n                :class=\"cx('indicator', { index })\"\n                :aria-label=\"ariaPageLabel(index + 1)\"\n                :aria-selected=\"activeIndex === index\"\n                :aria-controls=\"id + '_item_' + index\"\n                @click=\"onIndicatorClick(index)\"\n                @mouseenter=\"onIndicatorMouseEnter(index)\"\n                @keydown=\"onIndicatorKeyDown($event, index)\"\n                v-bind=\"ptm('indicator', getIndicatorPTOptions(index))\"\n                :data-p-active=\"isIndicatorItemActive(index)\"\n            >\n                <button v-if=\"!templates['indicator']\" type=\"button\" :tabindex=\"activeIndex === index ? '0' : '-1'\" :class=\"cx('indicatorButton')\" v-bind=\"ptm('indicatorButton', getIndicatorPTOptions(index))\"></button>\n                <component v-if=\"templates.indicator\" :is=\"templates.indicator\" :index=\"index\" />\n            </li>\n        </ul>\n    </div>\n</template>\n\n<script>\nimport { find, findSingle, getAttribute } from '@primeuix/utils/dom';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport ChevronLeftIcon from '@primevue/icons/chevronleft';\nimport ChevronRightIcon from '@primevue/icons/chevronright';\nimport Ripple from 'primevue/ripple';\n\nexport default {\n    name: 'GalleriaItem',\n    hostName: 'Galleria',\n    extends: BaseComponent,\n    emits: ['start-slideshow', 'stop-slideshow', 'update:activeIndex'],\n    props: {\n        circular: {\n            type: Boolean,\n            default: false\n        },\n        activeIndex: {\n            type: Number,\n            default: 0\n        },\n        value: {\n            type: Array,\n            default: null\n        },\n        showItemNavigators: {\n            type: Boolean,\n            default: true\n        },\n        showIndicators: {\n            type: Boolean,\n            default: true\n        },\n        slideShowActive: {\n            type: Boolean,\n            default: true\n        },\n        changeItemOnIndicatorHover: {\n            type: Boolean,\n            default: true\n        },\n        autoPlay: {\n            type: Boolean,\n            default: false\n        },\n        templates: {\n            type: null,\n            default: null\n        },\n        id: {\n            type: String,\n            default: null\n        }\n    },\n    mounted() {\n        if (this.autoPlay) {\n            this.$emit('start-slideshow');\n        }\n    },\n    methods: {\n        getIndicatorPTOptions(index) {\n            return {\n                context: {\n                    highlighted: this.activeIndex === index\n                }\n            };\n        },\n        next() {\n            let nextItemIndex = this.activeIndex + 1;\n            let activeIndex = this.circular && this.value.length - 1 === this.activeIndex ? 0 : nextItemIndex;\n\n            this.$emit('update:activeIndex', activeIndex);\n        },\n        prev() {\n            let prevItemIndex = this.activeIndex !== 0 ? this.activeIndex - 1 : 0;\n            let activeIndex = this.circular && this.activeIndex === 0 ? this.value.length - 1 : prevItemIndex;\n\n            this.$emit('update:activeIndex', activeIndex);\n        },\n        stopSlideShow() {\n            if (this.slideShowActive && this.stopSlideShow) {\n                this.$emit('stop-slideshow');\n            }\n        },\n        navBackward(e) {\n            this.stopSlideShow();\n            this.prev();\n\n            if (e && e.cancelable) {\n                e.preventDefault();\n            }\n        },\n        navForward(e) {\n            this.stopSlideShow();\n            this.next();\n\n            if (e && e.cancelable) {\n                e.preventDefault();\n            }\n        },\n        onIndicatorClick(index) {\n            this.stopSlideShow();\n            this.$emit('update:activeIndex', index);\n        },\n        onIndicatorMouseEnter(index) {\n            if (this.changeItemOnIndicatorHover) {\n                this.stopSlideShow();\n\n                this.$emit('update:activeIndex', index);\n            }\n        },\n        onIndicatorKeyDown(event, index) {\n            switch (event.code) {\n                case 'Enter':\n                case 'NumpadEnter':\n                case 'Space':\n                    this.stopSlideShow();\n\n                    this.$emit('update:activeIndex', index);\n                    event.preventDefault();\n                    break;\n\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 'Tab':\n                    this.onTabKey();\n                    break;\n\n                case 'ArrowDown':\n                case 'ArrowUp':\n                case 'PageUp':\n                case 'PageDown':\n                    event.preventDefault();\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        isIndicatorItemActive(index) {\n            return this.activeIndex === index;\n        },\n        isNavBackwardDisabled() {\n            return !this.circular && this.activeIndex === 0;\n        },\n        isNavForwardDisabled() {\n            return !this.circular && this.activeIndex === this.value.length - 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        activeItem() {\n            return this.value[this.activeIndex];\n        },\n\n        ariaSlideLabel() {\n            return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.slide : undefined;\n        }\n    },\n    components: {\n        ChevronLeftIcon: ChevronLeftIcon,\n        ChevronRightIcon: ChevronRightIcon\n    },\n    directives: {\n        ripple: Ripple\n    }\n};\n</script>\n","<template>\n    <div :class=\"cx('thumbnails')\" v-bind=\"ptm('thumbnails')\">\n        <div :class=\"cx('thumbnailContent')\" v-bind=\"ptm('thumbnailContent')\">\n            <button\n                v-if=\"showThumbnailNavigators\"\n                v-ripple\n                :class=\"cx('thumbnailPrevButton')\"\n                :disabled=\"isNavBackwardDisabled()\"\n                type=\"button\"\n                :aria-label=\"ariaPrevButtonLabel\"\n                @click=\"navBackward($event)\"\n                v-bind=\"{ ...prevButtonProps, ...ptm('thumbnailPrevButton') }\"\n                data-pc-group-section=\"thumbnailnavigator\"\n            >\n                <component :is=\"templates.previousthumbnailicon || (isVertical ? 'ChevronUpIcon' : 'ChevronLeftIcon')\" :class=\"cx('thumbnailPrevIcon')\" v-bind=\"ptm('thumbnailPrevIcon')\" />\n            </button>\n            <div :class=\"cx('thumbnailsViewport')\" :style=\"{ height: isVertical ? contentHeight : '' }\" v-bind=\"ptm('thumbnailsViewport')\">\n                <div\n                    ref=\"itemsContainer\"\n                    :class=\"cx('thumbnailItems')\"\n                    role=\"tablist\"\n                    @transitionend=\"onTransitionEnd($event)\"\n                    @touchstart=\"onTouchStart($event)\"\n                    @touchmove=\"onTouchMove($event)\"\n                    @touchend=\"onTouchEnd($event)\"\n                    v-bind=\"ptm('thumbnailItems')\"\n                >\n                    <div\n                        v-for=\"(item, index) of value\"\n                        :key=\"`p-galleria-thumbnail-item-${index}`\"\n                        :class=\"cx('thumbnailItem', { index, activeIndex })\"\n                        role=\"tab\"\n                        :data-p-active=\"activeIndex === index\"\n                        :aria-selected=\"activeIndex === index\"\n                        :aria-controls=\"containerId + '_item_' + index\"\n                        @keydown=\"onThumbnailKeydown($event, index)\"\n                        v-bind=\"ptm('thumbnailItem')\"\n                        :data-p-galleria-thumbnail-item-current=\"activeIndex === index\"\n                        :data-p-galleria-thumbnail-item-active=\"isItemActive(index)\"\n                        :data-p-galleria-thumbnail-item-start=\"firstItemAciveIndex() === index\"\n                        :data-p-galleria-thumbnail-item-end=\"lastItemActiveIndex() === index\"\n                    >\n                        <div\n                            :class=\"cx('thumbnail')\"\n                            :tabindex=\"activeIndex === index ? '0' : '-1'\"\n                            :aria-label=\"ariaPageLabel(index + 1)\"\n                            :aria-current=\"activeIndex === index ? 'page' : undefined\"\n                            @click=\"onItemClick(index)\"\n                            v-bind=\"ptm('thumbnail')\"\n                        >\n                            <component v-if=\"templates.thumbnail\" :is=\"templates.thumbnail\" :item=\"item\" />\n                        </div>\n                    </div>\n                </div>\n            </div>\n            <button\n                v-if=\"showThumbnailNavigators\"\n                v-ripple\n                :class=\"cx('thumbnailNextButton')\"\n                :disabled=\"isNavForwardDisabled()\"\n                type=\"button\"\n                :aria-label=\"ariaNextButtonLabel\"\n                @click=\"navForward($event)\"\n                v-bind=\"{ ...nextButtonProps, ...ptm('thumbnailNextButton') }\"\n                data-pc-group-section=\"thumbnailnavigator\"\n            >\n                <component :is=\"templates.nextthumbnailicon || (isVertical ? 'ChevronDownIcon' : 'ChevronRightIcon')\" :class=\"cx('thumbnailNextIcon')\" v-bind=\"ptm('thumbnailNextIcon')\" />\n            </button>\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 BaseComponent from '@primevue/core/basecomponent';\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 Ripple from 'primevue/ripple';\n\nexport default {\n    name: 'GalleriaThumbnails',\n    hostName: 'Galleria',\n    extends: BaseComponent,\n    emits: ['stop-slideshow', 'update:activeIndex'],\n    props: {\n        containerId: {\n            type: String,\n            default: null\n        },\n        value: {\n            type: Array,\n            default: null\n        },\n        numVisible: {\n            type: Number,\n            default: 3\n        },\n        activeIndex: {\n            type: Number,\n            default: 0\n        },\n        isVertical: {\n            type: Boolean,\n            default: false\n        },\n        slideShowActive: {\n            type: Boolean,\n            default: false\n        },\n        circular: {\n            type: Boolean,\n            default: false\n        },\n        responsiveOptions: {\n            type: Array,\n            default: null\n        },\n        contentHeight: {\n            type: String,\n            default: '300px'\n        },\n        showThumbnailNavigators: {\n            type: Boolean,\n            default: true\n        },\n        templates: {\n            type: null,\n            default: null\n        },\n        prevButtonProps: {\n            type: null,\n            default: null\n        },\n        nextButtonProps: {\n            type: null,\n            default: null\n        }\n    },\n    startPos: null,\n    thumbnailsStyle: null,\n    sortedResponsiveOptions: null,\n    data() {\n        return {\n            d_numVisible: this.numVisible,\n            d_oldNumVisible: this.numVisible,\n            d_activeIndex: this.activeIndex,\n            d_oldActiveItemIndex: this.activeIndex,\n            totalShiftedItems: 0,\n            page: 0\n        };\n    },\n    watch: {\n        numVisible(newValue, oldValue) {\n            this.d_numVisible = newValue;\n            this.d_oldNumVisible = oldValue;\n        },\n        activeIndex(newValue, oldValue) {\n            this.d_activeIndex = newValue;\n            this.d_oldActiveItemIndex = oldValue;\n        }\n    },\n    mounted() {\n        this.createStyle();\n        this.calculatePosition();\n\n        if (this.responsiveOptions) {\n            this.bindDocumentListeners();\n        }\n    },\n    updated() {\n        let totalShiftedItems = this.totalShiftedItems;\n\n        if (this.d_oldNumVisible !== this.d_numVisible || this.d_oldActiveItemIndex !== this.d_activeIndex) {\n            if (this.d_activeIndex <= this.getMedianItemIndex()) {\n                totalShiftedItems = 0;\n            } else if (this.value.length - this.d_numVisible + this.getMedianItemIndex() < this.d_activeIndex) {\n                totalShiftedItems = this.d_numVisible - this.value.length;\n            } else if (this.value.length - this.d_numVisible < this.d_activeIndex && this.d_numVisible % 2 === 0) {\n                totalShiftedItems = this.d_activeIndex * -1 + this.getMedianItemIndex() + 1;\n            } else {\n                totalShiftedItems = this.d_activeIndex * -1 + this.getMedianItemIndex();\n            }\n\n            if (totalShiftedItems !== this.totalShiftedItems) {\n                this.totalShiftedItems = totalShiftedItems;\n            }\n\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            if (this.d_oldActiveItemIndex !== this.d_activeIndex) {\n                document.body.setAttribute('data-p-items-hidden', 'false');\n                !this.isUnstyled && removeClass(this.$refs.itemsContainer, 'p-items-hidden');\n                this.$refs.itemsContainer.style.transition = 'transform 500ms ease 0s';\n            }\n\n            this.d_oldActiveItemIndex = this.d_activeIndex;\n            this.d_oldNumVisible = this.d_numVisible;\n        }\n    },\n    beforeUnmount() {\n        if (this.responsiveOptions) {\n            this.unbindDocumentListeners();\n        }\n\n        if (this.thumbnailsStyle) {\n            this.thumbnailsStyle.parentNode.removeChild(this.thumbnailsStyle);\n        }\n    },\n    methods: {\n        step(dir) {\n            let totalShiftedItems = this.totalShiftedItems + dir;\n\n            if (dir < 0 && -1 * totalShiftedItems + this.d_numVisible > this.value.length - 1) {\n                totalShiftedItems = this.d_numVisible - this.value.length;\n            } else if (dir > 0 && totalShiftedItems > 0) {\n                totalShiftedItems = 0;\n            }\n\n            if (this.circular) {\n                if (dir < 0 && this.value.length - 1 === this.d_activeIndex) {\n                    totalShiftedItems = 0;\n                } else if (dir > 0 && this.d_activeIndex === 0) {\n                    totalShiftedItems = this.d_numVisible - this.value.length;\n                }\n            }\n\n            if (this.$refs.itemsContainer) {\n                document.body.setAttribute('data-p-items-hidden', 'false');\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        stopSlideShow() {\n            if (this.slideShowActive && this.stopSlideShow) {\n                this.$emit('stop-slideshow');\n            }\n        },\n        getMedianItemIndex() {\n            let index = Math.floor(this.d_numVisible / 2);\n\n            return this.d_numVisible % 2 ? index : index - 1;\n        },\n        navBackward(e) {\n            this.stopSlideShow();\n\n            let prevItemIndex = this.d_activeIndex !== 0 ? this.d_activeIndex - 1 : 0;\n            let diff = prevItemIndex + this.totalShiftedItems;\n\n            if (this.d_numVisible - diff - 1 > this.getMedianItemIndex() && (-1 * this.totalShiftedItems !== 0 || this.circular)) {\n                this.step(1);\n            }\n\n            let activeIndex = this.circular && this.d_activeIndex === 0 ? this.value.length - 1 : prevItemIndex;\n\n            this.$emit('update:activeIndex', activeIndex);\n\n            if (e.cancelable) {\n                e.preventDefault();\n            }\n        },\n        navForward(e) {\n            this.stopSlideShow();\n\n            let nextItemIndex = this.d_activeIndex === this.value.length - 1 ? this.value.length - 1 : this.d_activeIndex + 1;\n\n            if (nextItemIndex + this.totalShiftedItems > this.getMedianItemIndex() && (-1 * this.totalShiftedItems < this.getTotalPageNumber() - 1 || this.circular)) {\n                this.step(-1);\n            }\n\n            let activeIndex = this.circular && this.value.length - 1 === this.d_activeIndex ? 0 : nextItemIndex;\n\n            this.$emit('update:activeIndex', activeIndex);\n\n            if (e.cancelable) {\n                e.preventDefault();\n            }\n        },\n        onItemClick(index) {\n            this.stopSlideShow();\n\n            let selectedItemIndex = index;\n\n            if (selectedItemIndex !== this.d_activeIndex) {\n                const diff = selectedItemIndex + this.totalShiftedItems;\n                let dir = 0;\n\n                if (selectedItemIndex < this.d_activeIndex) {\n                    dir = this.d_numVisible - diff - 1 - this.getMedianItemIndex();\n\n                    if (dir > 0 && -1 * this.totalShiftedItems !== 0) {\n                        this.step(dir);\n                    }\n                } else {\n                    dir = this.getMedianItemIndex() - diff;\n\n                    if (dir < 0 && -1 * this.totalShiftedItems < this.getTotalPageNumber() - 1) {\n                        this.step(dir);\n                    }\n                }\n\n                this.$emit('update:activeIndex', selectedItemIndex);\n            }\n        },\n        onThumbnailKeydown(event, index) {\n            if (event.code === 'Enter' || event.code === 'NumpadEnter' || event.code === 'Space') {\n                this.onItemClick(index);\n                event.preventDefault();\n            }\n\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                    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.itemsContainer, '[data-pc-section=\"thumbnailitem\"]');\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.itemsContainer, '[data-pc-section=\"thumbnailitem\"]');\n            const activeIndex = this.findFocusedIndicatorIndex();\n\n            this.changedFocusedIndicator(activeIndex, indicators.length - 1);\n        },\n        onTabKey() {\n            const indicators = [...find(this.$refs.itemsContainer, '[data-pc-section=\"thumbnailitem\"]')];\n            const highlightedIndex = indicators.findIndex((ind) => getAttribute(ind, 'data-p-active') === true);\n\n            const activeIndicator = findSingle(this.$refs.itemsContainer, '[tabindex=\"0\"]');\n\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.itemsContainer, '[data-pc-section=\"thumbnailitem\"]')];\n            const activeIndicator = findSingle(this.$refs.itemsContainer, '[data-pc-section=\"thumbnailitem\"] > [tabindex=\"0\"]');\n\n            return indicators.findIndex((ind) => ind === activeIndicator.parentElement);\n        },\n        changedFocusedIndicator(prevInd, nextInd) {\n            const indicators = find(this.$refs.itemsContainer, '[data-pc-section=\"thumbnailitem\"]');\n\n            indicators[prevInd].children[0].tabIndex = '-1';\n            indicators[nextInd].children[0].tabIndex = '0';\n            indicators[nextInd].children[0].focus();\n        },\n        onTransitionEnd(e) {\n            if (this.$refs.itemsContainer && e.propertyName === 'transform') {\n                document.body.setAttribute('data-p-items-hidden', 'true');\n                !this.isUnstyled && addClass(this.$refs.itemsContainer, 'p-items-hidden');\n                this.$refs.itemsContainer.style.transition = '';\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            if (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 (diff < 0) {\n                // left\n                this.navForward(e);\n            } else {\n                // right\n                this.navBackward(e);\n            }\n        },\n        getTotalPageNumber() {\n            return this.value.length > this.d_numVisible ? this.value.length - this.d_numVisible + 1 : 0;\n        },\n        createStyle() {\n            if (!this.thumbnailsStyle) {\n                this.thumbnailsStyle = document.createElement('style');\n                this.thumbnailsStyle.type = 'text/css';\n                setAttribute(this.thumbnailsStyle, 'nonce', this.$primevue?.config?.csp?.nonce);\n                document.body.appendChild(this.thumbnailsStyle);\n            }\n\n            let innerHTML = `\n                #${this.containerId} [data-pc-section=\"thumbnailitem\"] {\n                    flex: 1 0 ${100 / this.d_numVisible}%\n                }\n            `;\n\n            if (this.responsiveOptions && !this.isUnstyled) {\n                this.sortedResponsiveOptions = [...this.responsiveOptions];\n                const comparer = localeComparator();\n\n                this.sortedResponsiveOptions.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 < this.sortedResponsiveOptions.length; i++) {\n                    let res = this.sortedResponsiveOptions[i];\n\n                    innerHTML += `\n                        @media screen and (max-width: ${res.breakpoint}) {\n                            #${this.containerId} .p-galleria-thumbnail-item {\n                                flex: 1 0 ${100 / res.numVisible}%\n                            }\n                        }\n                    `;\n                }\n            }\n\n            this.thumbnailsStyle.innerHTML = innerHTML;\n        },\n        calculatePosition() {\n            if (this.$refs.itemsContainer && this.sortedResponsiveOptions) {\n                let windowWidth = window.innerWidth;\n                let matchedResponsiveData = {\n                    numVisible: this.numVisible\n                };\n\n                for (let i = 0; i < this.sortedResponsiveOptions.length; i++) {\n                    let res = this.sortedResponsiveOptions[i];\n\n                    if (parseInt(res.breakpoint, 10) >= windowWidth) {\n                        matchedResponsiveData = res;\n                    }\n                }\n\n                if (this.d_numVisible !== matchedResponsiveData.numVisible) {\n                    this.d_numVisible = matchedResponsiveData.numVisible;\n                }\n            }\n        },\n        bindDocumentListeners() {\n            if (!this.documentResizeListener) {\n                this.documentResizeListener = () => {\n                    this.calculatePosition();\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        isNavBackwardDisabled() {\n            return (!this.circular && this.d_activeIndex === 0) || this.value.length <= this.d_numVisible;\n        },\n        isNavForwardDisabled() {\n            return (!this.circular && this.d_activeIndex === this.value.length - 1) || this.value.length <= this.d_numVisible;\n        },\n        firstItemAciveIndex() {\n            return this.totalShiftedItems * -1;\n        },\n        lastItemActiveIndex() {\n            return this.firstItemAciveIndex() + this.d_numVisible - 1;\n        },\n        isItemActive(index) {\n            return this.firstItemAciveIndex() <= index && this.lastItemActiveIndex() >= index;\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        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    },\n    components: {\n        ChevronLeftIcon: ChevronLeftIcon,\n        ChevronRightIcon: ChevronRightIcon,\n        ChevronUpIcon: ChevronUpIcon,\n        ChevronDownIcon: ChevronDownIcon\n    },\n    directives: {\n        ripple: Ripple\n    }\n};\n</script>\n","<template>\n    <div :class=\"cx('thumbnails')\" v-bind=\"ptm('thumbnails')\">\n        <div :class=\"cx('thumbnailContent')\" v-bind=\"ptm('thumbnailContent')\">\n            <button\n                v-if=\"showThumbnailNavigators\"\n                v-ripple\n                :class=\"cx('thumbnailPrevButton')\"\n                :disabled=\"isNavBackwardDisabled()\"\n                type=\"button\"\n                :aria-label=\"ariaPrevButtonLabel\"\n                @click=\"navBackward($event)\"\n                v-bind=\"{ ...prevButtonProps, ...ptm('thumbnailPrevButton') }\"\n                data-pc-group-section=\"thumbnailnavigator\"\n            >\n                <component :is=\"templates.previousthumbnailicon || (isVertical ? 'ChevronUpIcon' : 'ChevronLeftIcon')\" :class=\"cx('thumbnailPrevIcon')\" v-bind=\"ptm('thumbnailPrevIcon')\" />\n            </button>\n            <div :class=\"cx('thumbnailsViewport')\" :style=\"{ height: isVertical ? contentHeight : '' }\" v-bind=\"ptm('thumbnailsViewport')\">\n                <div\n                    ref=\"itemsContainer\"\n                    :class=\"cx('thumbnailItems')\"\n                    role=\"tablist\"\n                    @transitionend=\"onTransitionEnd($event)\"\n                    @touchstart=\"onTouchStart($event)\"\n                    @touchmove=\"onTouchMove($event)\"\n                    @touchend=\"onTouchEnd($event)\"\n                    v-bind=\"ptm('thumbnailItems')\"\n                >\n                    <div\n                        v-for=\"(item, index) of value\"\n                        :key=\"`p-galleria-thumbnail-item-${index}`\"\n                        :class=\"cx('thumbnailItem', { index, activeIndex })\"\n                        role=\"tab\"\n                        :data-p-active=\"activeIndex === index\"\n                        :aria-selected=\"activeIndex === index\"\n                        :aria-controls=\"containerId + '_item_' + index\"\n                        @keydown=\"onThumbnailKeydown($event, index)\"\n                        v-bind=\"ptm('thumbnailItem')\"\n                        :data-p-galleria-thumbnail-item-current=\"activeIndex === index\"\n                        :data-p-galleria-thumbnail-item-active=\"isItemActive(index)\"\n                        :data-p-galleria-thumbnail-item-start=\"firstItemAciveIndex() === index\"\n                        :data-p-galleria-thumbnail-item-end=\"lastItemActiveIndex() === index\"\n                    >\n                        <div\n                            :class=\"cx('thumbnail')\"\n                            :tabindex=\"activeIndex === index ? '0' : '-1'\"\n                            :aria-label=\"ariaPageLabel(index + 1)\"\n                            :aria-current=\"activeIndex === index ? 'page' : undefined\"\n                            @click=\"onItemClick(index)\"\n                            v-bind=\"ptm('thumbnail')\"\n                        >\n                            <component v-if=\"templates.thumbnail\" :is=\"templates.thumbnail\" :item=\"item\" />\n                        </div>\n                    </div>\n                </div>\n            </div>\n            <button\n                v-if=\"showThumbnailNavigators\"\n                v-ripple\n                :class=\"cx('thumbnailNextButton')\"\n                :disabled=\"isNavForwardDisabled()\"\n                type=\"button\"\n                :aria-label=\"ariaNextButtonLabel\"\n                @click=\"navForward($event)\"\n                v-bind=\"{ ...nextButtonProps, ...ptm('thumbnailNextButton') }\"\n                data-pc-group-section=\"thumbnailnavigator\"\n            >\n                <component :is=\"templates.nextthumbnailicon || (isVertical ? 'ChevronDownIcon' : 'ChevronRightIcon')\" :class=\"cx('thumbnailNextIcon')\" v-bind=\"ptm('thumbnailNextIcon')\" />\n            </button>\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 BaseComponent from '@primevue/core/basecomponent';\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 Ripple from 'primevue/ripple';\n\nexport default {\n    name: 'GalleriaThumbnails',\n    hostName: 'Galleria',\n    extends: BaseComponent,\n    emits: ['stop-slideshow', 'update:activeIndex'],\n    props: {\n        containerId: {\n            type: String,\n            default: null\n        },\n        value: {\n            type: Array,\n            default: null\n        },\n        numVisible: {\n            type: Number,\n            default: 3\n        },\n        activeIndex: {\n            type: Number,\n            default: 0\n        },\n        isVertical: {\n            type: Boolean,\n            default: false\n        },\n        slideShowActive: {\n            type: Boolean,\n            default: false\n        },\n        circular: {\n            type: Boolean,\n            default: false\n        },\n        responsiveOptions: {\n            type: Array,\n            default: null\n        },\n        contentHeight: {\n            type: String,\n            default: '300px'\n        },\n        showThumbnailNavigators: {\n            type: Boolean,\n            default: true\n        },\n        templates: {\n            type: null,\n            default: null\n        },\n        prevButtonProps: {\n            type: null,\n            default: null\n        },\n        nextButtonProps: {\n            type: null,\n            default: null\n        }\n    },\n    startPos: null,\n    thumbnailsStyle: null,\n    sortedResponsiveOptions: null,\n    data() {\n        return {\n            d_numVisible: this.numVisible,\n            d_oldNumVisible: this.numVisible,\n            d_activeIndex: this.activeIndex,\n            d_oldActiveItemIndex: this.activeIndex,\n            totalShiftedItems: 0,\n            page: 0\n        };\n    },\n    watch: {\n        numVisible(newValue, oldValue) {\n            this.d_numVisible = newValue;\n            this.d_oldNumVisible = oldValue;\n        },\n        activeIndex(newValue, oldValue) {\n            this.d_activeIndex = newValue;\n            this.d_oldActiveItemIndex = oldValue;\n        }\n    },\n    mounted() {\n        this.createStyle();\n        this.calculatePosition();\n\n        if (this.responsiveOptions) {\n            this.bindDocumentListeners();\n        }\n    },\n    updated() {\n        let totalShiftedItems = this.totalShiftedItems;\n\n        if (this.d_oldNumVisible !== this.d_numVisible || this.d_oldActiveItemIndex !== this.d_activeIndex) {\n            if (this.d_activeIndex <= this.getMedianItemIndex()) {\n                totalShiftedItems = 0;\n            } else if (this.value.length - this.d_numVisible + this.getMedianItemIndex() < this.d_activeIndex) {\n                totalShiftedItems = this.d_numVisible - this.value.length;\n            } else if (this.value.length - this.d_numVisible < this.d_activeIndex && this.d_numVisible % 2 === 0) {\n                totalShiftedItems = this.d_activeIndex * -1 + this.getMedianItemIndex() + 1;\n            } else {\n                totalShiftedItems = this.d_activeIndex * -1 + this.getMedianItemIndex();\n            }\n\n            if (totalShiftedItems !== this.totalShiftedItems) {\n                this.totalShiftedItems = totalShiftedItems;\n            }\n\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            if (this.d_oldActiveItemIndex !== this.d_activeIndex) {\n                document.body.setAttribute('data-p-items-hidden', 'false');\n                !this.isUnstyled && removeClass(this.$refs.itemsContainer, 'p-items-hidden');\n                this.$refs.itemsContainer.style.transition = 'transform 500ms ease 0s';\n            }\n\n            this.d_oldActiveItemIndex = this.d_activeIndex;\n            this.d_oldNumVisible = this.d_numVisible;\n        }\n    },\n    beforeUnmount() {\n        if (this.responsiveOptions) {\n            this.unbindDocumentListeners();\n        }\n\n        if (this.thumbnailsStyle) {\n            this.thumbnailsStyle.parentNode.removeChild(this.thumbnailsStyle);\n        }\n    },\n    methods: {\n        step(dir) {\n            let totalShiftedItems = this.totalShiftedItems + dir;\n\n            if (dir < 0 && -1 * totalShiftedItems + this.d_numVisible > this.value.length - 1) {\n                totalShiftedItems = this.d_numVisible - this.value.length;\n            } else if (dir > 0 && totalShiftedItems > 0) {\n                totalShiftedItems = 0;\n            }\n\n            if (this.circular) {\n                if (dir < 0 && this.value.length - 1 === this.d_activeIndex) {\n                    totalShiftedItems = 0;\n                } else if (dir > 0 && this.d_activeIndex === 0) {\n                    totalShiftedItems = this.d_numVisible - this.value.length;\n                }\n            }\n\n            if (this.$refs.itemsContainer) {\n                document.body.setAttribute('data-p-items-hidden', 'false');\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        stopSlideShow() {\n            if (this.slideShowActive && this.stopSlideShow) {\n                this.$emit('stop-slideshow');\n            }\n        },\n        getMedianItemIndex() {\n            let index = Math.floor(this.d_numVisible / 2);\n\n            return this.d_numVisible % 2 ? index : index - 1;\n        },\n        navBackward(e) {\n            this.stopSlideShow();\n\n            let prevItemIndex = this.d_activeIndex !== 0 ? this.d_activeIndex - 1 : 0;\n            let diff = prevItemIndex + this.totalShiftedItems;\n\n            if (this.d_numVisible - diff - 1 > this.getMedianItemIndex() && (-1 * this.totalShiftedItems !== 0 || this.circular)) {\n                this.step(1);\n            }\n\n            let activeIndex = this.circular && this.d_activeIndex === 0 ? this.value.length - 1 : prevItemIndex;\n\n            this.$emit('update:activeIndex', activeIndex);\n\n            if (e.cancelable) {\n                e.preventDefault();\n            }\n        },\n        navForward(e) {\n            this.stopSlideShow();\n\n            let nextItemIndex = this.d_activeIndex === this.value.length - 1 ? this.value.length - 1 : this.d_activeIndex + 1;\n\n            if (nextItemIndex + this.totalShiftedItems > this.getMedianItemIndex() && (-1 * this.totalShiftedItems < this.getTotalPageNumber() - 1 || this.circular)) {\n                this.step(-1);\n            }\n\n            let activeIndex = this.circular && this.value.length - 1 === this.d_activeIndex ? 0 : nextItemIndex;\n\n            this.$emit('update:activeIndex', activeIndex);\n\n            if (e.cancelable) {\n                e.preventDefault();\n            }\n        },\n        onItemClick(index) {\n            this.stopSlideShow();\n\n            let selectedItemIndex = index;\n\n            if (selectedItemIndex !== this.d_activeIndex) {\n                const diff = selectedItemIndex + this.totalShiftedItems;\n                let dir = 0;\n\n                if (selectedItemIndex < this.d_activeIndex) {\n                    dir = this.d_numVisible - diff - 1 - this.getMedianItemIndex();\n\n                    if (dir > 0 && -1 * this.totalShiftedItems !== 0) {\n                        this.step(dir);\n                    }\n                } else {\n                    dir = this.getMedianItemIndex() - diff;\n\n                    if (dir < 0 && -1 * this.totalShiftedItems < this.getTotalPageNumber() - 1) {\n                        this.step(dir);\n                    }\n                }\n\n                this.$emit('update:activeIndex', selectedItemIndex);\n            }\n        },\n        onThumbnailKeydown(event, index) {\n            if (event.code === 'Enter' || event.code === 'NumpadEnter' || event.code === 'Space') {\n                this.onItemClick(index);\n                event.preventDefault();\n            }\n\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                    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.itemsContainer, '[data-pc-section=\"thumbnailitem\"]');\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.itemsContainer, '[data-pc-section=\"thumbnailitem\"]');\n            const activeIndex = this.findFocusedIndicatorIndex();\n\n            this.changedFocusedIndicator(activeIndex, indicators.length - 1);\n        },\n        onTabKey() {\n            const indicators = [...find(this.$refs.itemsContainer, '[data-pc-section=\"thumbnailitem\"]')];\n            const highlightedIndex = indicators.findIndex((ind) => getAttribute(ind, 'data-p-active') === true);\n\n            const activeIndicator = findSingle(this.$refs.itemsContainer, '[tabindex=\"0\"]');\n\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.itemsContainer, '[data-pc-section=\"thumbnailitem\"]')];\n            const activeIndicator = findSingle(this.$refs.itemsContainer, '[data-pc-section=\"thumbnailitem\"] > [tabindex=\"0\"]');\n\n            return indicators.findIndex((ind) => ind === activeIndicator.parentElement);\n        },\n        changedFocusedIndicator(prevInd, nextInd) {\n            const indicators = find(this.$refs.itemsContainer, '[data-pc-section=\"thumbnailitem\"]');\n\n            indicators[prevInd].children[0].tabIndex = '-1';\n            indicators[nextInd].children[0].tabIndex = '0';\n            indicators[nextInd].children[0].focus();\n        },\n        onTransitionEnd(e) {\n            if (this.$refs.itemsContainer && e.propertyName === 'transform') {\n                document.body.setAttribute('data-p-items-hidden', 'true');\n                !this.isUnstyled && addClass(this.$refs.itemsContainer, 'p-items-hidden');\n                this.$refs.itemsContainer.style.transition = '';\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            if (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 (diff < 0) {\n                // left\n                this.navForward(e);\n            } else {\n                // right\n                this.navBackward(e);\n            }\n        },\n        getTotalPageNumber() {\n            return this.value.length > this.d_numVisible ? this.value.length - this.d_numVisible + 1 : 0;\n        },\n        createStyle() {\n            if (!this.thumbnailsStyle) {\n                this.thumbnailsStyle = document.createElement('style');\n                this.thumbnailsStyle.type = 'text/css';\n                setAttribute(this.thumbnailsStyle, 'nonce', this.$primevue?.config?.csp?.nonce);\n                document.body.appendChild(this.thumbnailsStyle);\n            }\n\n            let innerHTML = `\n                #${this.containerId} [data-pc-section=\"thumbnailitem\"] {\n                    flex: 1 0 ${100 / this.d_numVisible}%\n                }\n            `;\n\n            if (this.responsiveOptions && !this.isUnstyled) {\n                this.sortedResponsiveOptions = [...this.responsiveOptions];\n                const comparer = localeComparator();\n\n                this.sortedResponsiveOptions.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 < this.sortedResponsiveOptions.length; i++) {\n                    let res = this.sortedResponsiveOptions[i];\n\n                    innerHTML += `\n                        @media screen and (max-width: ${res.breakpoint}) {\n                            #${this.containerId} .p-galleria-thumbnail-item {\n                                flex: 1 0 ${100 / res.numVisible}%\n                            }\n                        }\n                    `;\n                }\n            }\n\n            this.thumbnailsStyle.innerHTML = innerHTML;\n        },\n        calculatePosition() {\n            if (this.$refs.itemsContainer && this.sortedResponsiveOptions) {\n                let windowWidth = window.innerWidth;\n                let matchedResponsiveData = {\n                    numVisible: this.numVisible\n                };\n\n                for (let i = 0; i < this.sortedResponsiveOptions.length; i++) {\n                    let res = this.sortedResponsiveOptions[i];\n\n                    if (parseInt(res.breakpoint, 10) >= windowWidth) {\n                        matchedResponsiveData = res;\n                    }\n                }\n\n                if (this.d_numVisible !== matchedResponsiveData.numVisible) {\n                    this.d_numVisible = matchedResponsiveData.numVisible;\n                }\n            }\n        },\n        bindDocumentListeners() {\n            if (!this.documentResizeListener) {\n                this.documentResizeListener = () => {\n                    this.calculatePosition();\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        isNavBackwardDisabled() {\n            return (!this.circular && this.d_activeIndex === 0) || this.value.length <= this.d_numVisible;\n        },\n        isNavForwardDisabled() {\n            return (!this.circular && this.d_activeIndex === this.value.length - 1) || this.value.length <= this.d_numVisible;\n        },\n        firstItemAciveIndex() {\n            return this.totalShiftedItems * -1;\n        },\n        lastItemActiveIndex() {\n            return this.firstItemAciveIndex() + this.d_numVisible - 1;\n        },\n        isItemActive(index) {\n            return this.firstItemAciveIndex() <= index && this.lastItemActiveIndex() >= index;\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        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    },\n    components: {\n        ChevronLeftIcon: ChevronLeftIcon,\n        ChevronRightIcon: ChevronRightIcon,\n        ChevronUpIcon: ChevronUpIcon,\n        ChevronDownIcon: ChevronDownIcon\n    },\n    directives: {\n        ripple: Ripple\n    }\n};\n</script>\n","<template>\n    <div\n        v-if=\"$attrs.value && $attrs.value.length > 0\"\n        :id=\"id\"\n        role=\"region\"\n        :class=\"[cx('root'), $attrs.containerClass]\"\n        :style=\"$attrs.containerStyle\"\n        :aria-label=\"$attrs.ariaLabel\"\n        :aria-roledescription=\"$attrs.ariaRoledescription\"\n        v-bind=\"{ ...$attrs.containerProps, ...getPTOptions('root') }\"\n    >\n        <button v-if=\"$attrs.fullScreen\" v-ripple autofocus type=\"button\" :class=\"cx('closeButton')\" :aria-label=\"closeAriaLabel\" @click=\"$emit('mask-hide')\" v-bind=\"getPTOptions('closeButton')\">\n            <component :is=\"$attrs.templates['closeicon'] || 'TimesIcon'\" :class=\"cx('closeIcon')\" v-bind=\"getPTOptions('closeIcon')\" />\n        </button>\n        <div v-if=\"$attrs.templates && $attrs.templates['header']\" :class=\"cx('header')\" v-bind=\"getPTOptions('header')\">\n            <component :is=\"$attrs.templates['header']\" />\n        </div>\n        <div :class=\"cx('content')\" :aria-live=\"$attrs.autoPlay ? 'polite' : 'off'\" v-bind=\"getPTOptions('content')\">\n            <GalleriaItem\n                :id=\"id\"\n                v-model:activeIndex=\"activeIndex\"\n                v-model:slideShowActive=\"slideShowActive\"\n                :value=\"$attrs.value\"\n                :circular=\"$attrs.circular\"\n                :templates=\"$attrs.templates\"\n                :showIndicators=\"$attrs.showIndicators\"\n                :changeItemOnIndicatorHover=\"$attrs.changeItemOnIndicatorHover\"\n                :showItemNavigators=\"$attrs.showItemNavigators\"\n                :autoPlay=\"$attrs.autoPlay\"\n                @start-slideshow=\"startSlideShow\"\n                @stop-slideshow=\"stopSlideShow\"\n                :pt=\"pt\"\n                :unstyled=\"unstyled\"\n            />\n\n            <GalleriaThumbnails\n                v-if=\"$attrs.showThumbnails\"\n                v-model:activeIndex=\"activeIndex\"\n                v-model:slideShowActive=\"slideShowActive\"\n                :containerId=\"id\"\n                :value=\"$attrs.value\"\n                :templates=\"$attrs.templates\"\n                :numVisible=\"numVisible\"\n                :responsiveOptions=\"$attrs.responsiveOptions\"\n                :circular=\"$attrs.circular\"\n                :isVertical=\"isVertical()\"\n                :contentHeight=\"$attrs.verticalThumbnailViewPortHeight\"\n                :showThumbnailNavigators=\"$attrs.showThumbnailNavigators\"\n                :prevButtonProps=\"$attrs.prevButtonProps\"\n                :nextButtonProps=\"$attrs.nextButtonProps\"\n                @stop-slideshow=\"stopSlideShow\"\n                :pt=\"pt\"\n                :unstyled=\"unstyled\"\n            />\n        </div>\n        <div v-if=\"$attrs.templates && $attrs.templates['footer']\" :class=\"cx('footer')\" v-bind=\"getPTOptions('footer')\">\n            <component :is=\"$attrs.templates['footer']\" />\n        </div>\n    </div>\n</template>\n\n<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { UniqueComponentId } from '@primevue/core/utils';\nimport TimesIcon from '@primevue/icons/times';\nimport Ripple from 'primevue/ripple';\nimport GalleriaItem from './GalleriaItem.vue';\nimport GalleriaThumbnails from './GalleriaThumbnails.vue';\n\nexport default {\n    name: 'GalleriaContent',\n    hostName: 'Galleria',\n    extends: BaseComponent,\n    inheritAttrs: false,\n    interval: null,\n    emits: ['activeitem-change', 'mask-hide'],\n    data() {\n        return {\n            id: this.$attrs.id || UniqueComponentId(),\n            activeIndex: this.$attrs.activeIndex,\n            numVisible: this.$attrs.numVisible,\n            slideShowActive: false\n        };\n    },\n    watch: {\n        '$attrs.id': function (newValue) {\n            this.id = newValue || UniqueComponentId();\n        },\n        '$attrs.value': function (newVal) {\n            if (newVal && newVal.length < this.numVisible) {\n                this.numVisible = newVal.length;\n            }\n        },\n        '$attrs.activeIndex': function (newVal) {\n            this.activeIndex = newVal;\n        },\n        '$attrs.numVisible': function (newVal) {\n            this.numVisible = newVal;\n        },\n        '$attrs.autoPlay': function (newVal) {\n            newVal ? this.startSlideShow() : this.stopSlideShow();\n        }\n    },\n    mounted() {\n        this.id = this.id || UniqueComponentId();\n    },\n    updated() {\n        this.$emit('activeitem-change', this.activeIndex);\n    },\n    beforeUnmount() {\n        if (this.slideShowActive) {\n            this.stopSlideShow();\n        }\n    },\n    methods: {\n        getPTOptions(key) {\n            return this.ptm(key, {\n                props: {\n                    ...this.$attrs,\n                    pt: this.pt,\n                    unstyled: this.unstyled\n                }\n            });\n        },\n        isAutoPlayActive() {\n            return this.slideShowActive;\n        },\n        startSlideShow() {\n            this.interval = setInterval(() => {\n                let activeIndex = this.$attrs.circular && this.$attrs.value.length - 1 === this.activeIndex ? 0 : this.activeIndex + 1;\n\n                this.activeIndex = activeIndex;\n            }, this.$attrs.transitionInterval);\n\n            this.slideShowActive = true;\n        },\n        stopSlideShow() {\n            if (this.interval) {\n                clearInterval(this.interval);\n            }\n\n            this.slideShowActive = false;\n        },\n        getPositionClass(preClassName, position) {\n            const positions = ['top', 'left', 'bottom', 'right'];\n            const pos = positions.find((item) => item === position);\n\n            return pos ? `${preClassName}-${pos}` : '';\n        },\n        isVertical() {\n            return this.$attrs.thumbnailsPosition === 'left' || this.$attrs.thumbnailsPosition === 'right';\n        }\n    },\n    computed: {\n        closeAriaLabel() {\n            return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.close : undefined;\n        }\n    },\n    components: {\n        GalleriaItem: GalleriaItem,\n        GalleriaThumbnails: GalleriaThumbnails,\n        TimesIcon: TimesIcon\n    },\n    directives: {\n        ripple: Ripple\n    }\n};\n</script>\n","<template>\n    <div\n        v-if=\"$attrs.value && $attrs.value.length > 0\"\n        :id=\"id\"\n        role=\"region\"\n        :class=\"[cx('root'), $attrs.containerClass]\"\n        :style=\"$attrs.containerStyle\"\n        :aria-label=\"$attrs.ariaLabel\"\n        :aria-roledescription=\"$attrs.ariaRoledescription\"\n        v-bind=\"{ ...$attrs.containerProps, ...getPTOptions('root') }\"\n    >\n        <button v-if=\"$attrs.fullScreen\" v-ripple autofocus type=\"button\" :class=\"cx('closeButton')\" :aria-label=\"closeAriaLabel\" @click=\"$emit('mask-hide')\" v-bind=\"getPTOptions('closeButton')\">\n            <component :is=\"$attrs.templates['closeicon'] || 'TimesIcon'\" :class=\"cx('closeIcon')\" v-bind=\"getPTOptions('closeIcon')\" />\n        </button>\n        <div v-if=\"$attrs.templates && $attrs.templates['header']\" :class=\"cx('header')\" v-bind=\"getPTOptions('header')\">\n            <component :is=\"$attrs.templates['header']\" />\n        </div>\n        <div :class=\"cx('content')\" :aria-live=\"$attrs.autoPlay ? 'polite' : 'off'\" v-bind=\"getPTOptions('content')\">\n            <GalleriaItem\n                :id=\"id\"\n                v-model:activeIndex=\"activeIndex\"\n                v-model:slideShowActive=\"slideShowActive\"\n                :value=\"$attrs.value\"\n                :circular=\"$attrs.circular\"\n                :templates=\"$attrs.templates\"\n                :showIndicators=\"$attrs.showIndicators\"\n                :changeItemOnIndicatorHover=\"$attrs.changeItemOnIndicatorHover\"\n                :showItemNavigators=\"$attrs.showItemNavigators\"\n                :autoPlay=\"$attrs.autoPlay\"\n                @start-slideshow=\"startSlideShow\"\n                @stop-slideshow=\"stopSlideShow\"\n                :pt=\"pt\"\n                :unstyled=\"unstyled\"\n            />\n\n            <GalleriaThumbnails\n                v-if=\"$attrs.showThumbnails\"\n                v-model:activeIndex=\"activeIndex\"\n                v-model:slideShowActive=\"slideShowActive\"\n                :containerId=\"id\"\n                :value=\"$attrs.value\"\n                :templates=\"$attrs.templates\"\n                :numVisible=\"numVisible\"\n                :responsiveOptions=\"$attrs.responsiveOptions\"\n                :circular=\"$attrs.circular\"\n                :isVertical=\"isVertical()\"\n                :contentHeight=\"$attrs.verticalThumbnailViewPortHeight\"\n                :showThumbnailNavigators=\"$attrs.showThumbnailNavigators\"\n                :prevButtonProps=\"$attrs.prevButtonProps\"\n                :nextButtonProps=\"$attrs.nextButtonProps\"\n                @stop-slideshow=\"stopSlideShow\"\n                :pt=\"pt\"\n                :unstyled=\"unstyled\"\n            />\n        </div>\n        <div v-if=\"$attrs.templates && $attrs.templates['footer']\" :class=\"cx('footer')\" v-bind=\"getPTOptions('footer')\">\n            <component :is=\"$attrs.templates['footer']\" />\n        </div>\n    </div>\n</template>\n\n<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { UniqueComponentId } from '@primevue/core/utils';\nimport TimesIcon from '@primevue/icons/times';\nimport Ripple from 'primevue/ripple';\nimport GalleriaItem from './GalleriaItem.vue';\nimport GalleriaThumbnails from './GalleriaThumbnails.vue';\n\nexport default {\n    name: 'GalleriaContent',\n    hostName: 'Galleria',\n    extends: BaseComponent,\n    inheritAttrs: false,\n    interval: null,\n    emits: ['activeitem-change', 'mask-hide'],\n    data() {\n        return {\n            id: this.$attrs.id || UniqueComponentId(),\n            activeIndex: this.$attrs.activeIndex,\n            numVisible: this.$attrs.numVisible,\n            slideShowActive: false\n        };\n    },\n    watch: {\n        '$attrs.id': function (newValue) {\n            this.id = newValue || UniqueComponentId();\n        },\n        '$attrs.value': function (newVal) {\n            if (newVal && newVal.length < this.numVisible) {\n                this.numVisible = newVal.length;\n            }\n        },\n        '$attrs.activeIndex': function (newVal) {\n            this.activeIndex = newVal;\n        },\n        '$attrs.numVisible': function (newVal) {\n            this.numVisible = newVal;\n        },\n        '$attrs.autoPlay': function (newVal) {\n            newVal ? this.startSlideShow() : this.stopSlideShow();\n        }\n    },\n    mounted() {\n        this.id = this.id || UniqueComponentId();\n    },\n    updated() {\n        this.$emit('activeitem-change', this.activeIndex);\n    },\n    beforeUnmount() {\n        if (this.slideShowActive) {\n            this.stopSlideShow();\n        }\n    },\n    methods: {\n        getPTOptions(key) {\n            return this.ptm(key, {\n                props: {\n                    ...this.$attrs,\n                    pt: this.pt,\n                    unstyled: this.unstyled\n                }\n            });\n        },\n        isAutoPlayActive() {\n            return this.slideShowActive;\n        },\n        startSlideShow() {\n            this.interval = setInterval(() => {\n                let activeIndex = this.$attrs.circular && this.$attrs.value.length - 1 === this.activeIndex ? 0 : this.activeIndex + 1;\n\n                this.activeIndex = activeIndex;\n            }, this.$attrs.transitionInterval);\n\n            this.slideShowActive = true;\n        },\n        stopSlideShow() {\n            if (this.interval) {\n                clearInterval(this.interval);\n            }\n\n            this.slideShowActive = false;\n        },\n        getPositionClass(preClassName, position) {\n            const positions = ['top', 'left', 'bottom', 'right'];\n            const pos = positions.find((item) => item === position);\n\n            return pos ? `${preClassName}-${pos}` : '';\n        },\n        isVertical() {\n            return this.$attrs.thumbnailsPosition === 'left' || this.$attrs.thumbnailsPosition === 'right';\n        }\n    },\n    computed: {\n        closeAriaLabel() {\n            return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.close : undefined;\n        }\n    },\n    components: {\n        GalleriaItem: GalleriaItem,\n        GalleriaThumbnails: GalleriaThumbnails,\n        TimesIcon: TimesIcon\n    },\n    directives: {\n        ripple: Ripple\n    }\n};\n</script>\n","<template>\n    <Portal v-if=\"fullScreen\">\n        <div v-if=\"containerVisible\" :ref=\"maskRef\" :class=\"[cx('mask'), maskClass]\" role=\"dialog\" :aria-modal=\"fullScreen ? 'true' : undefined\" v-bind=\"ptm('mask')\">\n            <transition name=\"p-galleria\" @before-enter=\"onBeforeEnter\" @enter=\"onEnter\" @before-leave=\"onBeforeLeave\" @after-leave=\"onAfterLeave\" appear v-bind=\"ptm('transition')\">\n                <GalleriaContent v-if=\"visible\" :ref=\"containerRef\" v-focustrap @mask-hide=\"maskHide\" :templates=\"$slots\" @activeitem-change=\"onActiveItemChange\" :pt=\"pt\" :unstyled=\"unstyled\" v-bind=\"$props\" />\n            </transition>\n        </div>\n    </Portal>\n    <GalleriaContent v-else :templates=\"$slots\" @activeitem-change=\"onActiveItemChange\" :pt=\"pt\" :unstyled=\"unstyled\" v-bind=\"$props\" />\n</template>\n\n<script>\nimport { unblockBodyScroll, blockBodyScroll, addClass } from '@primeuix/utils/dom';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport FocusTrap from 'primevue/focustrap';\nimport Portal from 'primevue/portal';\nimport BaseGalleria from './BaseGalleria.vue';\nimport GalleriaContent from './GalleriaContent.vue';\n\nexport default {\n    name: 'Galleria',\n    extends: BaseGalleria,\n    inheritAttrs: false,\n    emits: ['update:activeIndex', 'update:visible'],\n    container: null,\n    mask: null,\n    data() {\n        return {\n            containerVisible: this.visible\n        };\n    },\n    updated() {\n        if (this.fullScreen && this.visible) {\n            this.containerVisible = this.visible;\n        }\n    },\n    beforeUnmount() {\n        if (this.fullScreen) {\n            unblockBodyScroll();\n        }\n\n        this.mask = null;\n\n        if (this.container) {\n            ZIndex.clear(this.container);\n            this.container = null;\n        }\n    },\n    methods: {\n        onBeforeEnter(el) {\n            ZIndex.set('modal', el, this.baseZIndex || this.$primevue.config.zIndex.modal);\n        },\n        onEnter(el) {\n            this.mask.style.zIndex = String(parseInt(el.style.zIndex, 10) - 1);\n            blockBodyScroll();\n            this.focus();\n        },\n        onBeforeLeave() {\n            !this.isUnstyled && addClass(this.mask, 'p-overlay-mask-leave');\n        },\n        onAfterLeave(el) {\n            ZIndex.clear(el);\n            this.containerVisible = false;\n            unblockBodyScroll();\n        },\n        onActiveItemChange(index) {\n            if (this.activeIndex !== index) {\n                this.$emit('update:activeIndex', index);\n            }\n        },\n        maskHide() {\n            this.$emit('update:visible', false);\n        },\n        containerRef(el) {\n            this.container = el;\n        },\n        maskRef(el) {\n            this.mask = el;\n        },\n        focus() {\n            let focusTarget = this.container.$el.querySelector('[autofocus]');\n\n            if (focusTarget) {\n                focusTarget.focus();\n            }\n        }\n    },\n    components: {\n        GalleriaContent: GalleriaContent,\n        Portal: Portal\n    },\n    directives: {\n        focustrap: FocusTrap\n    }\n};\n</script>\n","<template>\n    <Portal v-if=\"fullScreen\">\n        <div v-if=\"containerVisible\" :ref=\"maskRef\" :class=\"[cx('mask'), maskClass]\" role=\"dialog\" :aria-modal=\"fullScreen ? 'true' : undefined\" v-bind=\"ptm('mask')\">\n            <transition name=\"p-galleria\" @before-enter=\"onBeforeEnter\" @enter=\"onEnter\" @before-leave=\"onBeforeLeave\" @after-leave=\"onAfterLeave\" appear v-bind=\"ptm('transition')\">\n                <GalleriaContent v-if=\"visible\" :ref=\"containerRef\" v-focustrap @mask-hide=\"maskHide\" :templates=\"$slots\" @activeitem-change=\"onActiveItemChange\" :pt=\"pt\" :unstyled=\"unstyled\" v-bind=\"$props\" />\n            </transition>\n        </div>\n    </Portal>\n    <GalleriaContent v-else :templates=\"$slots\" @activeitem-change=\"onActiveItemChange\" :pt=\"pt\" :unstyled=\"unstyled\" v-bind=\"$props\" />\n</template>\n\n<script>\nimport { unblockBodyScroll, blockBodyScroll, addClass } from '@primeuix/utils/dom';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport FocusTrap from 'primevue/focustrap';\nimport Portal from 'primevue/portal';\nimport BaseGalleria from './BaseGalleria.vue';\nimport GalleriaContent from './GalleriaContent.vue';\n\nexport default {\n    name: 'Galleria',\n    extends: BaseGalleria,\n    inheritAttrs: false,\n    emits: ['update:activeIndex', 'update:visible'],\n    container: null,\n    mask: null,\n    data() {\n        return {\n            containerVisible: this.visible\n        };\n    },\n    updated() {\n        if (this.fullScreen && this.visible) {\n            this.containerVisible = this.visible;\n        }\n    },\n    beforeUnmount() {\n        if (this.fullScreen) {\n            unblockBodyScroll();\n        }\n\n        this.mask = null;\n\n        if (this.container) {\n            ZIndex.clear(this.container);\n            this.container = null;\n        }\n    },\n    methods: {\n        onBeforeEnter(el) {\n            ZIndex.set('modal', el, this.baseZIndex || this.$primevue.config.zIndex.modal);\n        },\n        onEnter(el) {\n            this.mask.style.zIndex = String(parseInt(el.style.zIndex, 10) - 1);\n            blockBodyScroll();\n            this.focus();\n        },\n        onBeforeLeave() {\n            !this.isUnstyled && addClass(this.mask, 'p-overlay-mask-leave');\n        },\n        onAfterLeave(el) {\n            ZIndex.clear(el);\n            this.containerVisible = false;\n            unblockBodyScroll();\n        },\n        onActiveItemChange(index) {\n            if (this.activeIndex !== index) {\n                this.$emit('update:activeIndex', index);\n            }\n        },\n        maskHide() {\n            this.$emit('update:visible', false);\n        },\n        containerRef(el) {\n            this.container = el;\n        },\n        maskRef(el) {\n            this.mask = el;\n        },\n        focus() {\n            let focusTarget = this.container.$el.querySelector('[autofocus]');\n\n            if (focusTarget) {\n                focusTarget.focus();\n            }\n        }\n    },\n    components: {\n        GalleriaContent: GalleriaContent,\n        Portal: Portal\n    },\n    directives: {\n        focustrap: FocusTrap\n    }\n};\n</script>\n"],"names":["name","BaseComponent","props","id","type","String","value","Array","activeIndex","Number","fullScreen","Boolean","visible","numVisible","responsiveOptions","showItemNavigators","showThumbnailNavigators","showItemNavigatorsOnHover","changeItemOnIndicatorHover","circular","autoPlay","transitionInterval","showThumbnails","thumbnailsPosition","verticalThumbnailViewPortHeight","showIndicators","showIndicatorsOnItem","indicatorsPosition","baseZIndex","maskClass","containerStyle","containerClass","containerProps","prevButtonProps","nextButtonProps","ariaLabel","ariaRoledescription","style","GalleriaStyle","provide","$pcGalleria","$parentInstance","hostName","emits","slideShowActive","templates","mounted","$emit","methods","getIndicatorPTOptions","index","context","highlighted","next","nextItemIndex","length","prev","prevItemIndex","stopSlideShow","navBackward","e","cancelable","preventDefault","navForward","onIndicatorClick","onIndicatorMouseEnter","onIndicatorKeyDown","event","code","onRightKey","onLeftKey","onHomeKey","onEndKey","onTabKey","indicators","_toConsumableArray","find","$refs","indicatorContent","findFocusedIndicatorIndex","changedFocusedIndicator","highlightedIndex","findIndex","ind","getAttribute","activeIndicator","findSingle","parentElement","children","tabIndex","prevInd","nextInd","focus","isIndicatorItemActive","isNavBackwardDisabled","isNavForwardDisabled","ariaSlideNumber","$primevue","config","locale","aria","slideNumber","replace","undefined","ariaPageLabel","pageLabel","computed","activeItem","ariaSlideLabel","slide","components","ChevronLeftIcon","ChevronRightIcon","directives","ripple","Ripple","_openBlock","_createElementBlock","_mergeProps","_ctx","cx","ptm","_createElementVNode","$props","_withDirectives","onClick","_cache","$event","$options","disabled","_createBlock","_resolveDynamicComponent","previousitemicon","role","item","nextitemicon","caption","ref","_Fragment","_renderList","key","concat","onMouseenter","onKeydown","tabindex","_hoisted_5","indicator","containerId","isVertical","contentHeight","startPos","thumbnailsStyle","sortedResponsiveOptions","data","d_numVisible","d_oldNumVisible","d_activeIndex","d_oldActiveItemIndex","totalShiftedItems","page","watch","newValue","oldValue","createStyle","calculatePosition","bindDocumentListeners","updated","getMedianItemIndex","itemsContainer","transform","document","body","setAttribute","isUnstyled","removeClass","transition","beforeUnmount","unbindDocumentListeners","parentNode","removeChild","step","dir","Math","floor","diff","getTotalPageNumber","onItemClick","selectedItemIndex","onThumbnailKeydown","onTransitionEnd","propertyName","addClass","onTouchStart","touchobj","changedTouches","x","pageX","y","pageY","onTouchMove","onTouchEnd","changePageOnTouch","_this$$primevue","createElement","csp","nonce","appendChild","innerHTML","comparer","localeComparator","sort","data1","data2","value1","breakpoint","value2","i","res","windowWidth","window","innerWidth","matchedResponsiveData","parseInt","_this","documentResizeListener","addEventListener","removeEventListener","firstItemAciveIndex","lastItemActiveIndex","isItemActive","ariaPrevButtonLabel","prevPageLabel","ariaNextButtonLabel","nextPageLabel","ChevronUpIcon","ChevronDownIcon","_objectSpread","previousthumbnailicon","height","onTransitionend","onTouchstart","onTouchmove","onTouchend","thumbnail","nextthumbnailicon","inheritAttrs","interval","$attrs","UniqueComponentId","$attrsId","$attrsValue","newVal","$attrsActiveIndex","$attrsNumVisible","$attrsAutoPlay","startSlideShow","getPTOptions","pt","unstyled","isAutoPlayActive","setInterval","clearInterval","getPositionClass","preClassName","position","positions","pos","closeAriaLabel","close","GalleriaItem","GalleriaThumbnails","TimesIcon","$data","autofocus","_createVNode","_component_GalleriaItem","onStartSlideshow","onStopSlideshow","_component_GalleriaThumbnails","BaseGalleria","container","mask","containerVisible","unblockBodyScroll","ZIndex","clear","onBeforeEnter","el","set","zIndex","modal","onEnter","blockBodyScroll","onBeforeLeave","onAfterLeave","onActiveItemChange","maskHide","containerRef","maskRef","focusTarget","$el","querySelector","GalleriaContent","Portal","focustrap","FocusTrap","_component_Portal","_Transition","appear","_component_GalleriaContent","onMaskHide","$slots","onActiveitemChange"],"mappings":"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"}