{"version":3,"file":"5156.js?id=c024bb2811dfd49e","mappings":"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","sources":["webpack://website-js/./src/components/product-details/CpDetailsVideoSelector.vue?62ff","webpack://website-js/./src/utils/CpEventBus.ts","webpack://website-js/./src/components/product-details/CpDetailsVideoSelector.vue","webpack://website-js/./src/components/product-details/CpDetailsVideoSelector.vue?72c4","webpack://website-js/./src/components/product-details/CpDetailsVideoSelector.vue?a342","webpack://website-js/./src/components/product-details/CpDetailsVideoSelector.vue?0569","webpack://website-js/./src/components/product-details/CpDetailsVideoSelector.vue?cb44"],"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, `.video-selector .thumb{position:relative;margin:10px;max-width:200px;border:1px var(--primary-color) solid;border-radius:14px;cursor:pointer;overflow:hidden}.video-selector .thumb .overlay{position:absolute;top:50%;left:50%;font-weight:700;transform:translate(-50%,-50%);padding:.5rem;color:red}`, \"\"]);\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 (_vm.show)?_c('div',{staticClass:\"uk-margin-top\"},[(_vm.translationsReady && _vm.external)?_c('p',{staticClass:\"uk-margin-remove uk-text-bold\"},[_vm._v(_vm._s(_vm.$t('product.product-videos', ['Product videos'])))]):_vm._e(),_c('div',{staticClass:\"video-selector uk-flex\",class:{ 'uk-flex-center': !_vm.external }},_vm._l((_vm.videos.slice(0, _vm.numbersToShow)),function(video){return _c('a',{key:video,staticClass:\"thumb uk-position-relative\",attrs:{\"href\":\"#video-container\",\"data-cbx-toggle\":\"scroll\"},on:{\"click\":function($event){return _vm.setVideo(video)}}},[_c('img',{attrs:{\"src\":_vm.videoThumbnail(video)}}),(_vm.external)?_c('span',{staticClass:\"overlay\",attrs:{\"uk-icon\":_vm.icon}}):_vm._e()])}),0)]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport ProductDetailsModule from '../../store/modules/ProductDetailsModule';\r\nimport { CpEventBus } from '../../utils/CpEventBus';\r\n\r\n@Component({\r\n    name: 'CpDetailsVideoSelector',\r\n    components: {},\r\n})\r\nexport default class CpDetailsVideoSelector extends Vue {\r\n    @Prop({ type: Boolean, required: false, default: true }) private external: boolean;\r\n    \r\n    get translationsReady(): boolean {\r\n        return this.$root.$data.translationsLoaded === true;\r\n    }\r\n\r\n    get isMobile() {\r\n        return this.$screen.breakpoint === 'mobile';\r\n    }\r\n\r\n    get show(): boolean {\r\n        return this.videos && (this.videos.length > 1 || (this.external && this.videos.length > 0));\r\n    }\r\n\r\n    get numbersToShow(): number {\r\n        if (this.isMobile)\r\n            return 2;\r\n        return 3;\r\n    }\r\n\r\n    get icon(): string {\r\n        const icon = \"icon: youtube; ratio: \";\r\n        if (this.isMobile)\r\n            return icon + \"1.5\";\r\n        return icon + \"2\";\r\n    }\r\n    \r\n    get videos(): string[] {\r\n        return ProductDetailsModule.PRODUCT?.videos;\r\n    }\r\n\r\n    private setVideo(video: string): void {\r\n        CpEventBus.value.$emit('selectvideo', video);\r\n    }\r\n\r\n    private videoThumbnail(video: string): string {\r\n        return \"https://img.youtube.com/vi/\" + video + \"/mqdefault.jpg\";\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!./CpDetailsVideoSelector.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!./CpDetailsVideoSelector.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CpDetailsVideoSelector.vue?vue&type=template&id=53c32864&\"\nimport script from \"./CpDetailsVideoSelector.vue?vue&type=script&lang=ts&\"\nexport * from \"./CpDetailsVideoSelector.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CpDetailsVideoSelector.vue?vue&type=style&index=0&id=53c32864&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!./CpDetailsVideoSelector.vue?vue&type=style&index=0&id=53c32864&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(\"28556a96\", 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","show","staticClass","translationsReady","external","_v","_s","$t","_e","class","_l","videos","slice","numbersToShow","video","key","attrs","on","$event","setVideo","videoThumbnail","icon","staticRenderFns","CpDetailsVideoSelector","Vue","$root","$data","translationsLoaded","isMobile","$screen","breakpoint","length","ProductDetailsModule","PRODUCT","value","__decorate","Prop","type","Boolean","required","default","Component","name","components","component","content","__esModule","locals","exports","add"],"sourceRoot":""}