{"version":3,"sources":["webpack:///./src/project/product/product-details/ProductDetailsMediaOverlay.vue?694f","webpack:///./src/project/modals/Modal.vue","webpack:///./src/project/modals/Modal.vue?4482","webpack:///./src/project/modals/Modal.vue?1301","webpack:///./src/project/product/product-details/ProductDetailsMediaOverlay.vue?9ec0","webpack:///./src/project/product/product-details/ProductDetailsMediaOverlay.vue","webpack:///./src/project/product/product-details/ProductDetailsMediaOverlay.vue?ecc3","webpack:///./src/project/product/product-details/ProductDetailsMediaOverlay.vue?dbe8"],"names":["data","ModalState","hideModal","this","modal","id","type","Object","required","render","staticRenderFns","component","_vm","_h","$createElement","_c","_self","staticClass","style","attrs","name","brandPage","params","brandName","brandLogos","brandLogoUrl","_e","ref","sliderOptions","scopedSlots","_u","key","fn","class","prevButtonSelector","_f","proxy","nextButtonSelector","_l","image","uri","productName","video","Modal","Date","valueOf","initialSlide","activeIndex","spaceBetween","slidesPerView","slidesPerGroup","loop","loopFillGroupWithBlank","watchSlidesVisibility","watchOverflow","setWrapperSize","pagination","el","clickable","navigation","nextEl","prevEl","grabCursor","keyboard","enabled","onlyInViewPort","controller","control","thumbs","$swiper","padding","aspectRatio","toFixed","paddingTop","BRAND","Array","Number","default","String","components","ProductDetailsImageVideo"],"mappings":"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","file":"js/chunk-dba5d07a.c0a1b11c.js","sourcesContent":["import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--11-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductDetailsMediaOverlay.vue?vue&type=style&index=0&id=70516e5c&lang=less&scoped=true&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--11-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--11-oneOf-1-2!../../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductDetailsMediaOverlay.vue?vue&type=style&index=0&id=70516e5c&lang=less&scoped=true&\"","\r\nimport { Vue, Component, Prop } from 'vue-property-decorator';\r\nimport { IModal, ModalState } from '@/core/modals/ModalState';\r\n\r\n@Component\r\nexport default class Modal extends Vue {\r\n @Prop({ type: Object, required: true })\r\n protected modal!: IModal;\r\n\r\n protected closeOverlay(data?: any) {\r\n ModalState.hideModal(this.modal.id, data);\r\n }\r\n}\r\n","var render, staticRenderFns\nimport script from \"./Modal.vue?vue&type=script&lang=ts&\"\nexport * from \"./Modal.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/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","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Modal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Modal.vue?vue&type=script&lang=ts&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"panel-wrapper\"},[_c('div',{staticClass:\"bg-white py-35 px-40\"},[_c('div',{staticClass:\"relative h-0 block\",style:(_vm.style)},[_c('div',{staticClass:\"aspect-ratio-container p-15\"},[(_vm.brandLogos)?_c('RouterLink',{staticClass:\"brandlogo\",attrs:{\"to\":{ name: _vm.brandPage, params: { brandName: _vm.brandName } }}},[_c('img',{attrs:{\"src\":_vm.brandLogos.brandLogoUrl,\"alt\":_vm.brandName}})]):_vm._e(),_c('Swiper',{ref:\"slider\",staticClass:\"w-full h-full\",attrs:{\"options\":_vm.sliderOptions},scopedSlots:_vm._u([{key:\"button-prev\",fn:function(){return [_c('button',{staticClass:\"custom-swiper-button-prev hidden md:block\",class:_vm.prevButtonSelector,attrs:{\"type\":\"button\",\"aria-label\":_vm._f(\"t\")('Generic.Prev')}},[_c('CIcon',{attrs:{\"name\":\"arrow-left\",\"width\":\"25\",\"height\":\"25\"}})],1)]},proxy:true},{key:\"button-next\",fn:function(){return [_c('button',{staticClass:\"custom-swiper-button-next hidden md:block\",class:_vm.nextButtonSelector,attrs:{\"type\":\"button\",\"aria-label\":_vm._f(\"t\")('Generic.Next')}},[_c('CIcon',{attrs:{\"name\":\"arrow-right\",\"width\":\"25\",\"height\":\"25\"}})],1)]},proxy:true},{key:\"pagination\",fn:function(){return [_c('div',{staticClass:\"swiper-pagination\"})]},proxy:true}])},[_vm._l((_vm.images),function(image){return _c('SwiperSlide',{key:image.uri},[_c('div',{staticClass:\"relative w-full h-full outline-none p-30\"},[_c('ProductDetailsImageVideo',{attrs:{\"url\":image.uri,\"image-name\":_vm.productName,\"media-mode\":\"fullscreen\"}})],1)])}),_vm._l((_vm.videos),function(video){return _c('SwiperSlide',{key:video.uri},[_c('div',{staticClass:\"w-full h-full p-30\"},[_c('ProductDetailsImageVideo',{attrs:{\"url\":video.uri,\"media-mode\":\"fullscreen\",\"is-video\":\"\"}})],1)])})],2)],1)])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Modal from '@/project/modals/Modal.vue';\r\nimport { Component, Prop } from 'vue-property-decorator';\r\nimport { BrandLogoViewModel, ImageViewObject, VideoViewObject } from '@/types/apiServerContract';\r\nimport ProductDetailsImageVideo from './ProductDetailsImageVideo.vue';\r\nimport { PageName } from '@/router/routes/constants';\r\n\r\n@Component({\r\n components: { ProductDetailsImageVideo }\r\n})\r\nexport default class ProductDetailsMediaOverlay extends Modal {\r\n @Prop({ type: Array, required: true })\r\n private images!: ImageViewObject[];\r\n\r\n @Prop({ type: Array, required: true })\r\n private videos!: VideoViewObject[];\r\n\r\n @Prop({ required: false })\r\n private brandLogos!: BrandLogoViewModel;\r\n\r\n @Prop({ required: false })\r\n private brandName!: string;\r\n\r\n @Prop({ type: Number, default: 16 / 9 })\r\n private aspectRatio!: number;\r\n\r\n @Prop({ type: Number, default: 0 })\r\n private activeIndex!: number;\r\n\r\n @Prop({ type: String, required: true })\r\n private productName!: string;\r\n\r\n @Prop({ type: Object, required: true })\r\n private thumbs!: any; // Swiper\r\n\r\n private get id() {\r\n return new Date().valueOf();\r\n }\r\n\r\n private get prevButtonSelector() {\r\n return 'custom-swiper-button-prev-' + this.id;\r\n }\r\n\r\n private get nextButtonSelector() {\r\n return 'custom-swiper-button-next-' + this.id;\r\n }\r\n\r\n private get sliderOptions() {\r\n return {\r\n initialSlide: this.activeIndex,\r\n spaceBetween: 0,\r\n slidesPerView: 1,\r\n slidesPerGroup: 1,\r\n loop: false,\r\n loopFillGroupWithBlank: false,\r\n watchSlidesVisibility: true,\r\n watchOverflow: true,\r\n setWrapperSize: true,\r\n pagination: {\r\n el: '.swiper-pagination',\r\n clickable: true\r\n },\r\n navigation: {\r\n nextEl: '.' + this.nextButtonSelector,\r\n prevEl: '.' + this.prevButtonSelector\r\n },\r\n grabCursor: true,\r\n keyboard: {\r\n enabled: true,\r\n onlyInViewPort: true\r\n },\r\n controller: {\r\n control: this.thumbs.$swiper\r\n }\r\n };\r\n }\r\n\r\n private get style(): object {\r\n const padding = `${(100 / this.aspectRatio).toFixed(2)}%`;\r\n return { paddingTop: padding };\r\n }\r\n\r\n private get brandPage() {\r\n return PageName.BRAND;\r\n }\r\n\r\n $refs!: Vue['$refs'] & {\r\n slider: any // todo: typesafety\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductDetailsMediaOverlay.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductDetailsMediaOverlay.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ProductDetailsMediaOverlay.vue?vue&type=template&id=70516e5c&scoped=true&\"\nimport script from \"./ProductDetailsMediaOverlay.vue?vue&type=script&lang=ts&\"\nexport * from \"./ProductDetailsMediaOverlay.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ProductDetailsMediaOverlay.vue?vue&type=style&index=0&id=70516e5c&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"70516e5c\",\n null\n \n)\n\nexport default component.exports"],"sourceRoot":""}