{"version":3,"file":"index.mjs","sources":["../../src/galleria/BaseGalleria.vue","../../src/galleria/GalleriaItem.vue","../../src/galleria/GalleriaItem.vue?vue&type=template&id=7a6d5c4d&lang.js","../../src/galleria/GalleriaThumbnails.vue","../../src/galleria/GalleriaThumbnails.vue?vue&type=template&id=7620fc09&lang.js","../../src/galleria/GalleriaContent.vue","../../src/galleria/GalleriaContent.vue?vue&type=template&id=ad149006&lang.js","../../src/galleria/Galleria.vue","../../src/galleria/Galleria.vue?vue&type=template&id=01a7b3d5&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\" :activeIndex=\"activeIndex\" :tabindex=\"activeIndex === index ? '0' : '-1'\" />\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\"] > [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\"] > [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        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        ariaSlideLabel() {\n            return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.slide : undefined;\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    },\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\" :activeIndex=\"activeIndex\" :tabindex=\"activeIndex === index ? '0' : '-1'\" />\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\"] > [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\"] > [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        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        ariaSlideLabel() {\n            return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.slide : undefined;\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    },\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            const touchThreshold = 10\n\n            if(Math.abs(diff) < touchThreshold) {\n                // only a click/tap\n                return;\n            }\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\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        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    },\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            const touchThreshold = 10\n\n            if(Math.abs(diff) < touchThreshold) {\n                // only a click/tap\n                return;\n            }\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\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        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    },\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 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            activeIndex: this.$attrs.activeIndex,\n            numVisible: this.$attrs.numVisible,\n            slideShowActive: false\n        };\n    },\n    watch: {\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    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 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            activeIndex: this.$attrs.activeIndex,\n            numVisible: this.$attrs.numVisible,\n            slideShowActive: false\n        };\n    },\n    watch: {\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    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\" @leave=\"onLeave\" @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\"\n                    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 { addClass, focus } from '@primeuix/utils/dom';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport FocusTrap from 'primevue/focustrap';\nimport Portal from 'primevue/portal';\nimport { blockBodyScroll, unblockBodyScroll } from 'primevue/utils';\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    documentKeydownListener: null,\n    data() {\n        return {\n            containerVisible: this.visible,\n            target: null\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.$el || 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.target = document.activeElement;\n            this.mask.style.zIndex = String(parseInt(el.style.zIndex, 10) - 1);\n            blockBodyScroll();\n            this.focus();\n            this.bindGlobalListeners();\n        },\n        onBeforeLeave() {\n            !this.isUnstyled && addClass(this.mask, 'p-overlay-mask-leave-active');\n        },\n        onLeave() {\n            focus(this.target);\n            this.target = null;\n        },\n        onAfterLeave(el) {\n            ZIndex.clear(el);\n            this.containerVisible = false;\n            unblockBodyScroll();\n            this.unbindGlobalListeners();\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        onKeyDown(event) {\n            if (event.code === 'Escape') {\n                this.maskHide();\n            }\n        },\n        bindDocumentKeyDownListener() {\n            if (!this.documentKeydownListener) {\n                this.documentKeydownListener = this.onKeyDown.bind(this);\n                window.document.addEventListener('keydown', this.documentKeydownListener);\n            }\n        },\n        unbindDocumentKeyDownListener() {\n            if (this.documentKeydownListener) {\n                window.document.removeEventListener('keydown', this.documentKeydownListener);\n                this.documentKeydownListener = null;\n            }\n        },\n        bindGlobalListeners() {\n            if (this.fullScreen) {\n                this.bindDocumentKeyDownListener();\n            }\n        },\n        unbindGlobalListeners() {\n            if (this.fullScreen) {\n                this.unbindDocumentKeyDownListener();\n            }\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\" @leave=\"onLeave\" @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\"\n                    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 { addClass, focus } from '@primeuix/utils/dom';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport FocusTrap from 'primevue/focustrap';\nimport Portal from 'primevue/portal';\nimport { blockBodyScroll, unblockBodyScroll } from 'primevue/utils';\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    documentKeydownListener: null,\n    data() {\n        return {\n            containerVisible: this.visible,\n            target: null\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.$el || 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.target = document.activeElement;\n            this.mask.style.zIndex = String(parseInt(el.style.zIndex, 10) - 1);\n            blockBodyScroll();\n            this.focus();\n            this.bindGlobalListeners();\n        },\n        onBeforeLeave() {\n            !this.isUnstyled && addClass(this.mask, 'p-overlay-mask-leave-active');\n        },\n        onLeave() {\n            focus(this.target);\n            this.target = null;\n        },\n        onAfterLeave(el) {\n            ZIndex.clear(el);\n            this.containerVisible = false;\n            unblockBodyScroll();\n            this.unbindGlobalListeners();\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        onKeyDown(event) {\n            if (event.code === 'Escape') {\n                this.maskHide();\n            }\n        },\n        bindDocumentKeyDownListener() {\n            if (!this.documentKeydownListener) {\n                this.documentKeydownListener = this.onKeyDown.bind(this);\n                window.document.addEventListener('keydown', this.documentKeydownListener);\n            }\n        },\n        unbindDocumentKeyDownListener() {\n            if (this.documentKeydownListener) {\n                window.document.removeEventListener('keydown', this.documentKeydownListener);\n                this.documentKeydownListener = null;\n            }\n        },\n        bindGlobalListeners() {\n            if (this.fullScreen) {\n                this.bindDocumentKeyDownListener();\n            }\n        },\n        unbindGlobalListeners() {\n            if (this.fullScreen) {\n                this.unbindDocumentKeyDownListener();\n            }\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","ariaSlideNumber","$primevue","config","locale","aria","slideNumber","replace","undefined","ariaPageLabel","pageLabel","computed","activeItem","ariaSlideLabel","slide","isNavBackwardDisabled","isNavForwardDisabled","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","touchThreshold","abs","_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","$attrsValue","newVal","$attrsActiveIndex","$attrsNumVisible","$attrsAutoPlay","startSlideShow","getPTOptions","pt","unstyled","isAutoPlayActive","setInterval","clearInterval","getPositionClass","preClassName","position","positions","pos","closeAriaLabel","close","GalleriaItem","GalleriaThumbnails","TimesIcon","$id","autofocus","_createVNode","_component_GalleriaItem","$data","onStartSlideshow","onStopSlideshow","_component_GalleriaThumbnails","BaseGalleria","container","mask","documentKeydownListener","containerVisible","target","unblockBodyScroll","ZIndex","clear","$el","onBeforeEnter","el","set","zIndex","modal","onEnter","activeElement","blockBodyScroll","bindGlobalListeners","onBeforeLeave","onLeave","onAfterLeave","unbindGlobalListeners","onActiveItemChange","maskHide","containerRef","maskRef","onKeyDown","bindDocumentKeyDownListener","bind","unbindDocumentKeyDownListener","focusTarget","querySelector","GalleriaContent","Portal","focustrap","FocusTrap","_component_Portal","_Transition","appear","_component_GalleriaContent","onMaskHide","$slots","onActiveitemChange"],"mappings":"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"}