{"version":3,"file":"7505.js?id=3574a0c26b929d33","mappings":"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","sources":["webpack://website-js/./src/components/product-details/ProductImages.vue?844c","webpack://website-js/./src/utils/CpEventBus.ts","webpack://website-js/./src/components/product-details/ProductImages.vue","webpack://website-js/./src/components/product-details/DetailsBadges.vue","webpack://website-js/./src/components/product-details/DetailsBadges.vue?ba7e","webpack://website-js/./src/components/product-details/DetailsBadges.vue?2159","webpack://website-js/./src/components/product-details/DetailsBadges.vue?60f0","webpack://website-js/./src/components/product-details/DetailsIcons.vue","webpack://website-js/./src/components/product-details/DetailsIcons.vue?88f4","webpack://website-js/./src/components/product-details/DetailsIcons.vue?08af","webpack://website-js/./src/components/product-details/DetailsIcons.vue?b34e","webpack://website-js/./src/components/product-details/ProductImages.vue?8929","webpack://website-js/./src/components/product-details/ProductImages.vue?0b77","webpack://website-js/./src/components/product-details/ProductImages.vue?42cb","webpack://website-js/./src/components/product-details/ProductImages.vue?8816"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.icon-video{fill:red}.video-container{position:relative;padding-bottom:56.25%;height:0}.video-container iframe{position:absolute;top:0;left:0;width:100%;height:100%}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","import { ref } from 'vue';\r\n\r\n// Define the event bus with a record of event names to arrays of callback functions\r\nexport const CpEventBus = ref(new class {\r\n listeners: Record<string, Array<(...args: any[]) => void>> = {};\r\n\r\n // Method to register a listener for a specific event\r\n $on(event: string, callback: (...args: any[]) => void) {\r\n if (!this.listeners[event]) {\r\n this.listeners[event] = [];\r\n }\r\n this.listeners[event].push(callback);\r\n }\r\n\r\n // Method to emit an event and call all registered listeners for it\r\n $emit(event: string, ...args: any[]) {\r\n if (this.listeners[event]) {\r\n this.listeners[event].forEach((callback) => callback(...args));\r\n }\r\n }\r\n});\r\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"product-images uk-flex uk-flex-1\"},[(!_vm.showAsSlider)?_c('div',{staticClass:\"product-images-grid\",class:{'has-media-browser': _vm.showMediaBrowser}},[(_vm.images.length || _vm.has360)?[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showMediaBrowser),expression:\"showMediaBrowser\"}],staticClass:\"media-browser-container\"},[(_vm.has360)?_c('ul',{staticClass:\"media-browser\"},[_c('li',{staticClass:\"btn-360\",class:{'uk-active': _vm.show360}},[_c('a',{class:{'cbx-border': _vm.show360, 'uk-border': !_vm.show360},attrs:{\"href\":\"#\",\"data-type\":\"image\"},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.activate360()}}},[_c('img',{attrs:{\"src\":_vm.images360[0],\"alt\":\"\",\"loading\":\"lazy\",\"width\":_vm.thumbnailWidth,\"height\":_vm.thumbnailHeight}}),_c('span',{staticClass:\"icon-360\",attrs:{\"uk-icon\":\"icon: 360; ratio: 1.5\"}})])])]):_vm._e(),_c('ul',{staticClass:\"media-browser\",attrs:{\"id\":_vm.lightboxId,\"uk-lightbox\":\"\"}},_vm._l((_vm.images),function(img){return _c('li',{key:img.url,class:{'uk-active': img === _vm.activeImage && !_vm.show360}},[_c('a',{class:{'cbx-border': img === _vm.activeImage && !_vm.show360, 'uk-border': img !== _vm.activeImage || _vm.show360},attrs:{\"href\":_vm.getSizeUrl(img, 'large'),\"data-type\":\"image\"},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.setActiveImage(img)}}},[_c('img',{attrs:{\"src\":_vm.getSizeUrl(img, 'small'),\"alt\":\"\",\"loading\":\"lazy\",\"width\":_vm.thumbnailWidth,\"height\":_vm.thumbnailHeight}})])])}),0),(_vm.hasVideo)?_c('ul',{staticClass:\"media-browser\"},[_c('li',{staticClass:\"btn-youtube\"},[_c('a',{staticClass:\"uk-border uk-text-center\",attrs:{\"href\":\"#video-container\",\"data-cbx-toggle\":\"scroll\"},on:{\"click\":_vm.setVideo}},[_c('span',{staticClass:\"icon-video\",attrs:{\"uk-icon\":\"icon: youtube; ratio: 3\"}})])])]):_vm._e()]),(_vm.images.length || _vm.has360 || _vm.hasVideo)?_c('div',{staticClass:\"product-images-main-area\"},[(_vm.show360)?_c('div',{staticClass:\"uk-flex uk-flex-1\"},[_c('div',{staticClass:\"container-360 cbx-border\"},[_c('Image360',{ref:\"spritespin\",attrs:{\"images\":_vm.images360}}),_c('span',{staticClass:\"icon-360\",attrs:{\"uk-icon\":\"icon: 360; ratio: 2\"}})],1)]):_c('div',{staticClass:\"uk-flex uk-flex-1\"},[_c('a',{staticClass:\"uk-flex uk-flex-1 uk-flex-center cbx-border uk-position-relative active-product-image-container\",attrs:{\"href\":_vm.getSizeUrl(_vm.activeImage, 'large'),\"data-type\":\"image\"},on:{\"click\":function($event){$event.preventDefault();return _vm.toggleLightbox()}}},[_c('img',{staticClass:\"uk-flex uk-flex-1 active-product-image\",attrs:{\"src\":_vm.getSizeUrl(_vm.activeImage, 'default'),\"alt\":_vm.productName,\"width\":_vm.imageWidth,\"height\":_vm.imageHeight}}),_c('DetailsBadges'),_c('DetailsIcons')],1)])]):_vm._e()]:(_vm.fallbackImage)?_c('div',{staticClass:\"uk-flex uk-flex-1 uk-flex-center uk-flex-middle\"},[_c('div',{staticClass:\"cbx-border uk-position-relative\"},[_c('img',{attrs:{\"src\":_vm.fallbackImage,\"alt\":\"\",\"width\":_vm.imageWidth,\"height\":_vm.imageHeight}}),_c('DetailsBadges'),_c('DetailsIcons')],1)]):_vm._e()],2):_c('div',{staticClass:\"uk-flex-1\"},[(_vm.isMobileReady)?_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.images.length || _vm.has360 || _vm.videos.length),expression:\"images.length || has360 || videos.length\"}],staticClass:\"uk-position-relative uk-visible-toggle cbx-border\",attrs:{\"tabindex\":\"-1\",\"uk-slider\":\"draggable: false\"}},[_c('ul',{staticClass:\"uk-slider-items uk-child-width-1-1\",attrs:{\"id\":_vm.lightboxId,\"uk-lightbox\":\"\"}},[(_vm.has360)?_c('li',[_c('div',{staticClass:\"container-360\"},[_c('Image360',{ref:\"spritespin\",attrs:{\"images\":_vm.images360}}),_c('span',{staticClass:\"icon-360\",attrs:{\"uk-icon\":\"icon: 360; ratio: 2\"}})],1)]):_vm._e(),_vm._l((_vm.images),function(img,imgIdx){return _c('li',{key:img.url},[_c('a',{attrs:{\"href\":_vm.getSizeUrl(img, 'large'),\"data-type\":\"image\"}},[_c('img',{staticClass:\"uk-width-1-1\",attrs:{\"src\":_vm.getSizeUrl(img, 'small'),\"alt\":\"\",\"loading\":(imgIdx > 0 ? 'lazy' : 'eager'),\"width\":_vm.thumbnailWidth,\"height\":_vm.thumbnailHeight}})])])})],2),_c('a',{staticClass:\"uk-position-center-left uk-position-small\",attrs:{\"href\":\"#\",\"uk-slidenav-previous\":\"\",\"uk-slider-item\":\"previous\",\"aria-label\":_vm.$t('actions.previous', ['Previous'])}}),_c('a',{staticClass:\"uk-position-center-right uk-position-small\",staticStyle:{\"z-index\":\"1\"},attrs:{\"href\":\"#\",\"uk-slidenav-next\":\"\",\"uk-slider-item\":\"next\",\"aria-label\":_vm.$t('actions.next', ['Next'])}}),_c('DetailsBadges'),_c('DetailsIcons')],1):_vm._e()])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.translationsReady && _vm.badges.length)?_c('div',{staticClass:\"badges-overlay uk-position-absolute uk-position-top-left\"},_vm._l((_vm.badges),function(badge){return _c('span',{key:badge,staticClass:\"uk-label uk-text-medium\",class:_vm.getCssClassName(badge)},[_vm._v(_vm._s(_vm.$t('product.badge-' + badge.toLowerCase(), [badge])))])}),0):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue } from 'vue-property-decorator';\r\nimport ProductDetailsModule from '../../store/modules/ProductDetailsModule';\r\nimport {toCssClassName } from '../../utils/StringUtils'\r\n\r\n@Component({\r\n name: 'DetailsBadges',\r\n components: {\r\n },\r\n})\r\nexport default class DetailsBadges extends Vue {\r\n\r\n get translationsReady(): boolean {\r\n return this.$root.$data.translationsLoaded === true;\r\n }\r\n\r\n get badges(): string[] {\r\n if (ProductDetailsModule.VARIANTS?.length > 0)\r\n return ProductDetailsModule.SELECTED_VARIANT?.badges ?? [];\r\n else \r\n return ProductDetailsModule.PRODUCT?.badges ?? [];\r\n }\r\n\r\n private getCssClassName(badge: string) {\r\n return toCssClassName('badge', badge);\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./DetailsBadges.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./DetailsBadges.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DetailsBadges.vue?vue&type=template&id=49f94cc5&\"\nimport script from \"./DetailsBadges.vue?vue&type=script&lang=ts&\"\nexport * from \"./DetailsBadges.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.icons.length)?_c('div',{staticClass:\"icons-overlay uk-position-absolute uk-position-bottom-right\"},_vm._l((_vm.icons),function(icon){return _c('span',{key:icon,staticClass:\"icon\",class:_vm.getCssClassName(icon)})}),0):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue } from 'vue-property-decorator';\r\nimport ProductDetailsModule from '../../store/modules/ProductDetailsModule';\r\nimport {toCssClassName } from '../../utils/StringUtils'\r\n\r\n@Component({\r\n name: 'DetailsIcons',\r\n components: {\r\n },\r\n})\r\nexport default class DetailsIcons extends Vue {\r\n\r\n get icons(): string[] {\r\n if (ProductDetailsModule.VARIANTS?.length > 0)\r\n return ProductDetailsModule.SELECTED_VARIANT?.icons ?? [];\r\n else \r\n return ProductDetailsModule.PRODUCT?.icons ?? [];\r\n }\r\n\r\n private getCssClassName(icon: string) {\r\n return toCssClassName('icon', icon);\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./DetailsIcons.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./DetailsIcons.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DetailsIcons.vue?vue&type=template&id=5e0f1894&\"\nimport script from \"./DetailsIcons.vue?vue&type=script&lang=ts&\"\nexport * from \"./DetailsIcons.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\nconst UIkit = (window as any).UIkit;\r\nimport { Component, Prop, Vue, Watch } from 'vue-property-decorator';\r\nimport ProductDetailsModule from '../../store/modules/ProductDetailsModule';\r\nimport DetailsBadges from './DetailsBadges.vue';\r\nimport DetailsIcons from './DetailsIcons.vue';\r\nimport { ProductResourceImage } from '@/models/Product';\r\nimport { CpEventBus } from '../../utils/CpEventBus';\r\n\r\n@Component({\r\n name: 'ProductImages',\r\n components: {\r\n Image360: () => import('./Image360.vue'),\r\n DetailsBadges,\r\n DetailsIcons,\r\n },\r\n})\r\nexport default class ProductImages extends Vue {\r\n @Prop({ type: Number, required: false, default: 1024 }) private imageWidth: number;\r\n @Prop({ type: Number, required: false, default: 768 }) private imageHeight: number;\r\n @Prop({ type: Number, required: false, default: 400 }) private thumbnailWidth: number;\r\n @Prop({ type: Number, required: false, default: 300 }) private thumbnailHeight: number;\r\n\r\n private activeImage: ProductResourceImage = null;\r\n private show360: boolean = this.has360;\r\n private activeVideo: string = '';\r\n private lightboxId: string = 'product-images-lightbox';\r\n\r\n get isMobile() {\r\n return this.$screen.breakpoint === 'mobile';\r\n }\r\n\r\n get isMobileReady() {\r\n return this.isMobile && ProductDetailsModule.PRODUCT;\r\n }\r\n\r\n get showAsSlider() {\r\n return this.isMobile && this.showMediaBrowser;\r\n }\r\n\r\n get images360(): string[] {\r\n return ProductDetailsModule.PRODUCT?.images360 ?? [];\r\n }\r\n\r\n get videos(): string[] {\r\n return ProductDetailsModule.PRODUCT?.videos ?? [];\r\n }\r\n\r\n get images(): ProductResourceImage[] {\r\n /*\r\n - Use current product by default\r\n - If variants are active\r\n - Use parent product by default (IF WE ALWAYS REDIRECT TO PARENT IN THE CONTROLLER, THIS WONT BE NECESSARY!)\r\n - If a variant dimension is selected, add dimension images to the front\r\n - If a variant is selected, add variant images to the front\r\n */\r\n const variantImages = ProductDetailsModule.SELECTED_VARIANT?.images ?? [];\r\n const dimensionImages = ProductDetailsModule.PRODUCT?.dimension1images[ProductDetailsModule.SELECTED_DIMENSION_1?.toLowerCase()] ?? [];\r\n const productImages = ProductDetailsModule.PRODUCT?.images ?? [];\r\n const variantHasImages = variantImages.length > 1;\r\n return [...new Set([\r\n ...variantImages,\r\n ...dimensionImages.length > 0 ? [] : dimensionImages,\r\n ...variantHasImages ? [] : productImages,\r\n ])];\r\n }\r\n\r\n get fallbackImage(): string {\r\n return ProductDetailsModule.PRODUCT?.image;\r\n }\r\n\r\n get has360(): boolean {\r\n return this.images360.length > 0;\r\n }\r\n get showMediaBrowser(): boolean {\r\n return this.has360 || this.hasVideo ? this.imageCount > 0 : this.imageCount > 1;\r\n }\r\n\r\n get hasVideo(): boolean {\r\n return this.videos.length > 0;\r\n }\r\n\r\n get mainImage(): ProductResourceImage {\r\n return this.images[0];\r\n }\r\n\r\n get imageCount(): number {\r\n return this.images?.length ?? 0;\r\n }\r\n\r\n get activeImageIndex(): number {\r\n return this.images?.map(i => i.url)?.indexOf(this.activeImage?.url) ?? -1;\r\n }\r\n\r\n get activeVideoIndex(): number {\r\n return this.videos?.indexOf(this.activeVideo) ?? -1;\r\n }\r\n\r\n get productName(): string {\r\n return ProductDetailsModule.PRODUCT?.name;\r\n }\r\n\r\n private getSizeUrl(img: ProductResourceImage, size: string = 'large') {\r\n return img?.variants[size] ?? img?.url;\r\n }\r\n\r\n private getVideoUrl(video: string) {\r\n return \"https://www.youtube-nocookie.com/embed/\" + video;\r\n }\r\n\r\n private setActiveImage(img: ProductResourceImage) {\r\n this.show360 = false;\r\n this.activeVideo = '';\r\n this.activeImage = img;\r\n }\r\n\r\n private toggleLightbox() {\r\n this.show360 = false;\r\n this.activeVideo = '';\r\n UIkit.lightbox(`#${this.lightboxId}`).show(this.activeImageIndex);\r\n }\r\n\r\n private activate360() {\r\n this.show360 = true;\r\n }\r\n\r\n private setActiveVideo(video: string) {\r\n this.activeVideo = video;\r\n }\r\n\r\n private removeSpinner() {\r\n const elem = document.querySelector('#product-images-spinner');\r\n if (elem)\r\n elem.parentElement.removeChild(elem);\r\n }\r\n\r\n private setVideo(): void {\r\n CpEventBus.value.$emit('selectvideo', this.videos[0]);\r\n }\r\n\r\n @Watch('images', {immediate: true})\r\n private onImagesChange() {\r\n this.setActiveImage(this.mainImage);\r\n this.removeSpinner();\r\n }\r\n\r\n @Watch('images360', {immediate: true})\r\n private onImages360Change() {\r\n if (this.has360) {\r\n this.activate360();\r\n this.removeSpinner();\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./ProductImages.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??clonedRuleSet-41.use[0]!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[3]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./ProductImages.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ProductImages.vue?vue&type=template&id=748be848&\"\nimport script from \"./ProductImages.vue?vue&type=script&lang=ts&\"\nexport * from \"./ProductImages.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ProductImages.vue?vue&type=style&index=0&id=748be848&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!../../../node_modules/@vue/cli-service/node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!../../../node_modules/@vue/cli-service/node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-22.use[4]!../../../node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./ProductImages.vue?vue&type=style&index=0&id=748be848&prod&lang=scss&\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"99e5e7b4\", content, true, {\"sourceMap\":false,\"shadowMode\":false});"],"names":["___CSS_LOADER_EXPORT___","push","module","id","CpEventBus","ref","constructor","_defineProperty","$on","event","callback","this","listeners","$emit","args","forEach","render","_vm","_c","_self","_setupProxy","staticClass","showAsSlider","isMobileReady","directives","name","rawName","value","images","length","has360","videos","expression","attrs","lightboxId","images360","_e","_l","img","imgIdx","key","url","getSizeUrl","thumbnailWidth","thumbnailHeight","$t","staticStyle","class","showMediaBrowser","show360","on","$event","stopPropagation","preventDefault","activate360","activeImage","setActiveImage","hasVideo","setVideo","toggleLightbox","productName","imageWidth","imageHeight","fallbackImage","staticRenderFns","translationsReady","badges","badge","getCssClassName","_v","_s","toLowerCase","DetailsBadges","Vue","$root","$data","translationsLoaded","ProductDetailsModule","VARIANTS","SELECTED_VARIANT","PRODUCT","toCssClassName","__decorate","Component","components","component","icons","icon","DetailsIcons","UIkit","window","ProductImages","isMobile","$screen","breakpoint","variantImages","dimensionImages","dimension1images","SELECTED_DIMENSION_1","productImages","variantHasImages","Set","image","imageCount","mainImage","activeImageIndex","map","i","indexOf","activeVideoIndex","activeVideo","size","variants","getVideoUrl","video","lightbox","show","setActiveVideo","removeSpinner","elem","document","querySelector","parentElement","removeChild","onImagesChange","onImages360Change","Prop","type","Number","required","default","Watch","immediate","Image360","content","__esModule","locals","exports","add"],"sourceRoot":""}