{"version":3,"file":"5548.js?id=3e98fb9955eadb98","mappings":"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","sources":["webpack://website-js/./src/components/product-details/CpDetailsUpsellProducts.vue?2d87","webpack://website-js/./src/components/product-details/CpDetailsUpsellProducts.vue","webpack://website-js/./src/components/product-details/CpDetailsUpsellProducts.vue?51de","webpack://website-js/./src/components/product-details/CpDetailsUpsellProducts.vue?3684","webpack://website-js/./src/components/product-details/CpDetailsUpsellProducts.vue?51d2","webpack://website-js/./src/components/product-details/CpDetailsUpsellProducts.vue?fa13"],"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, `.details-upsell-products{background-color:#f6f4f5;padding:15px}.details-upsell-products-list{display:flex;flex-direction:column;gap:15px}.details-upsell-products-list-item{display:flex;flex:1;gap:15px;align-items:center}.details-upsell-products-list-item .image{width:75px;height:75px;flex:none;position:relative;overflow:hidden;border:1px solid #0000001a;background-color:#fff}.details-upsell-products-list-item .image img{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}.details-upsell-products-list-item .info{flex:1}.details-upsell-products-list-item .info .name a{color:inherit}.details-upsell-products-list-item .action{flex:none;max-width:150px}.details-upsell-products-list-item .action .add-to-cart-button .uk-icon{margin-right:5px}.details-upsell-products-list-item .action .colli{display:none}.details-upsell-products-list-item .action .out-of-stock-msg{font-weight:600;color:var(--warning-color)}.details-upsell-products-list-item .action .price{font-size:1.2rem;font-weight:600;text-align:center}@media(max-width:640px){.details-upsell-products-list-item{flex-wrap:wrap;flex-direction:row;gap:0}.details-upsell-products-list-item .image{flex:0 0 25%;max-width:100px;box-sizing:border-box}.details-upsell-products-list-item .info{flex:1;box-sizing:border-box;padding-left:15px}.details-upsell-products-list-item .action{display:flex;flex:100%;align-items:center;justify-content:space-around;max-width:none}}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.translationsReady && _vm.showUpsellProducts)?_c('div',{staticClass:\"uk-overflow-auto cbx-border uk-margin-top\",class:{ 'details-upsell-products' : _vm.showUpsellProducts }},[_c('div',{staticClass:\"uk-h3\"},[_vm._v(_vm._s(_vm.$t('product.upsell', ['Upsell'])))]),_c('div',{staticClass:\"details-upsell-products-list\"},_vm._l((_vm.upsellProducts.filter(prod => prod.allowpurchase)),function(prod){return _c('div',{key:prod.id,staticClass:\"details-upsell-products-list-item\"},[_c('div',{staticClass:\"image\"},[_c('img',{attrs:{\"src\":prod.image,\"alt\":\"\"}})]),_c('div',{staticClass:\"info\"},[_c('div',{staticClass:\"name\"},[(prod.hascategories)?_c('a',{attrs:{\"href\":prod.url}},[_vm._v(_vm._s(prod.name))]):_c('span',[_vm._v(_vm._s(prod.name))])])]),(prod.allowpurchase)?_c('div',{staticClass:\"action\"},[(prod.price && prod.showprices && !prod.isparent)?_c('div',{staticClass:\"price uk-margin-small-top\"},[_vm._v(\" \"+_vm._s(_vm.getPrice(prod.price))+\" \"+_vm._s(prod.price.currency)+\" \")]):_vm._e(),(prod.isparent)?_c('div',[_c('a',{staticClass:\"uk-button uk-button-success uk-width-1\",attrs:{\"href\":prod.url}},[_c('span',{attrs:{\"uk-icon\":\"icon: thumbnails\"}}),_c('span',[_vm._v(_vm._s(_vm.$t('product.show-more', ['Show more'])))])])]):(prod.allowpurchase)?_c('AddToCartButton',{attrs:{\"sku\":prod.id,\"variantid\":_vm.getVariantId(prod),\"button-text\":_vm.upsellButtonText,\"unit\":prod.unit,\"quantity\":_vm.colli,\"show-qty-buttons\":false,\"colli\":_vm.colli}}):(prod.stockmessage && !prod.stockmessage.instock)?_c('div',{staticClass:\"out-of-stock-msg\"},[_vm._v(_vm._s(prod.stockmessage.message))]):_vm._e()],1):_vm._e()])}),0)]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue, Watch } from 'vue-property-decorator';\r\nimport { DisplayPriceInfo, ProductSearchResultProduct } from '../../models/Product';\r\nimport ProductDetailsModule from '../../store/modules/ProductDetailsModule';\r\nimport ProductService from '../../services/ProductService';\r\n\r\n@Component({\r\n    name: 'CpDetailsUpsellProducts',\r\n    components: {\r\n    }\r\n})\r\nexport default class CpDetailsUpsellProducts extends Vue {\r\n\r\n    private ps: ProductService = new ProductService();\r\n    private upsellProducts: ProductSearchResultProduct[] = [];\r\n\r\n    get translationsReady(): boolean {\r\n        return this.$root.$data.translationsLoaded === true;\r\n    }\r\n\r\n    get showUpsellProducts(): boolean {\r\n        return this.showprices && this.allowpurchase && this.upsellProducts.length && this.upsellProducts.some((prod) => prod.allowpurchase);\r\n    }\r\n\r\n    get product(): ProductSearchResultProduct {\r\n        return ProductDetailsModule.PRODUCT;\r\n    }\r\n\r\n    get productId(): string {\r\n        if (ProductDetailsModule.VARIANTS?.length > 0) {\r\n            return ProductDetailsModule.SELECTED_VARIANT?.sku;\r\n        }\r\n        return this.product?.id;\r\n    }\r\n\r\n    get upsellProductIds(): string[] {\r\n        if (ProductDetailsModule.VARIANTS?.length > 0) {\r\n            return ProductDetailsModule.SELECTED_VARIANT?.upsellproducts ?? [];\r\n        }\r\n        return this.product?.upsellproducts ?? [];\r\n    }\r\n\r\n    get colli(): number {\r\n        if (ProductDetailsModule.VARIANTS?.length > 0) {\r\n            return ProductDetailsModule.SELECTED_VARIANT?.colli;\r\n        }\r\n        return this.product?.colli;\r\n    }\r\n\r\n    get showprices(): boolean {\r\n        return this.product?.showprices ?? false;\r\n    }\r\n\r\n    get allowpurchase(): boolean {\r\n        if (ProductDetailsModule.VARIANTS?.length > 0) {\r\n            return ProductDetailsModule.SELECTED_VARIANT?.allowpurchase;\r\n        }\r\n        return this.product?.allowpurchase;\r\n    }\r\n\r\n    get upsellButtonText(): any {\r\n        return this.$t('product.add-to-cart-upsell', ['Buy bundle']);\r\n    }\r\n\r\n    private getVariantId(prod: ProductSearchResultProduct): string {\r\n        return 'combination-' + this.productId + '-' + prod.id;\r\n    }\r\n\r\n    private getPrice(price: DisplayPriceInfo)\r\n    {\r\n        if (price.showpricesincvat)\r\n            return price.priceincvat\r\n\r\n        return price.priceexvat;\r\n    }\r\n\r\n    @Watch(\"upsellProductIds\")\r\n    private async onUpsellProductIdsChange() {\r\n        if (!this.upsellProductIds.length)\r\n            this.upsellProducts = [];\r\n        else\r\n            this.upsellProducts = await this.ps.getProductsById(this.upsellProductIds);\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!./CpDetailsUpsellProducts.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!./CpDetailsUpsellProducts.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CpDetailsUpsellProducts.vue?vue&type=template&id=32082a6d&\"\nimport script from \"./CpDetailsUpsellProducts.vue?vue&type=script&lang=ts&\"\nexport * from \"./CpDetailsUpsellProducts.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CpDetailsUpsellProducts.vue?vue&type=style&index=0&id=32082a6d&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!./CpDetailsUpsellProducts.vue?vue&type=style&index=0&id=32082a6d&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(\"62cc6e5e\", content, true, {\"sourceMap\":false,\"shadowMode\":false});"],"names":["___CSS_LOADER_EXPORT___","push","module","id","render","_vm","this","_c","_self","_setupProxy","translationsReady","showUpsellProducts","staticClass","class","_v","_s","$t","_l","upsellProducts","filter","prod","allowpurchase","key","attrs","image","hascategories","url","name","price","showprices","isparent","getPrice","currency","_e","getVariantId","upsellButtonText","unit","colli","stockmessage","instock","message","staticRenderFns","CpDetailsUpsellProducts","Vue","constructor","args","_defineProperty","ProductService","$root","$data","translationsLoaded","length","some","product","ProductDetailsModule","PRODUCT","productId","VARIANTS","SELECTED_VARIANT","sku","upsellProductIds","upsellproducts","showpricesincvat","priceincvat","priceexvat","async","ps","getProductsById","__decorate","Watch","Component","components","component","content","__esModule","default","locals","exports","add"],"sourceRoot":""}