{"version":3,"file":"js/app.58c0c81a1c964d9008f4.js","mappings":"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","sources":["webpack:///./resources/area/web/default/js/components/catalog/product/StickyAddToCart.vue?a1d5","webpack:///./resources/area/web/default/js/shared/helpers/catalog-helper/index.ts","webpack:///./resources/area/web/default/js/shared/helpers/enhanced-ecommerce/index.ts","webpack:///./resources/area/web/default/js/components/catalog/product/StickyAddToCart.vue?7754","webpack:///./resources/area/web/default/js/components/catalog/product/StickyAddToCart.vue?ffc8","webpack:///./resources/area/web/default/js/components/catalog/product/StickyAddToCart.vue?a054"],"sourcesContent":["\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\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport {Component, Prop, Vue} from 'vue-property-decorator';\nimport ServiceContainer from '@flashpointbv/solar-service-container';\nimport {enhancedEcommerce} from '../../../shared/helpers/enhanced-ecommerce';\nimport {TranslateResult} from 'vue-i18n';\nimport {catalogHelper} from \"../../../shared/helpers/catalog-helper\";\n\n@Component({\n name: 'catalog-product-sticky-add-to-cart',\n components: ServiceContainer().getComponents()\n})\n\nexport default class extends Vue {\n $refs!: {\n addToCart: HTMLElement;\n offcanvasTrigger: HTMLElement;\n }\n\n @Prop() private readonly productData: object;\n\n private showElement: boolean = false;\n private addToCartIsLoading: boolean = false;\n private hasAddToCartSuccess: boolean = false;\n private hasAddToCartSuccessMessage: TranslateResult = '';\n\n private get productImage(): string {\n return catalogHelper.resolveProductImage(this.productData, 95);\n }\n\n private get getSelectedQuantity(): number {\n return this.$store.getters['ProductQuantity/selectedQuantity'];\n }\n\n private get productPrices(): object {\n return catalogHelper.getProductPrice(this.productData);\n }\n\n private get isSaleable(): boolean {\n return this.$store.getters['CatalogProduct/isSaleable']\n && (this.productData['in_stock'] || ! this.productData['manage_stock'])\n && ! (this.productData['show_as_sold_out'] || false)\n && ! this.$store.state.ProductQuantity.disableAddToCart;\n }\n\n private get selectedOptions(): Array<object> {\n return this.$store.getters['CatalogConfigurableProduct/selectedOptions'];\n }\n\n private get isKiosk(): boolean {\n return '1' === (window.Config['is_kiosk'] || '0');\n }\n\n private async productAddToCart(): Promise<void> {\n this.addToCartIsLoading = true;\n\n try {\n let productPayload = {\n sku: this.productData['sku'],\n qty: this.$mobileDetect.mobile() ? this.getSelectedQuantity : 1,\n };\n\n if (this.productData['product_type'] === 'configurable' && this.selectedOptions.length > 0) {\n const productOptions = {\n product_option: {\n extension_attributes: {\n configurable_item_options: this.selectedOptions.map(option => {\n return {\n option_id: option['attributeId'],\n option_value: option['selectedValue']\n }\n })\n }\n }\n }\n productPayload = Object.assign(productPayload, productOptions);\n }\n\n await this.$store.dispatch('CheckoutQuote/addProductToQuote', productPayload);\n\n this.addToCartIsLoading = false;\n this.hasAddToCartSuccessMessage = this.$t('Product has been added to your shopping cart');\n this.hasAddToCartSuccess = true;\n\n setTimeout(() => {\n this.hasAddToCartSuccess = false;\n }, 5000)\n enhancedEcommerce.addProductAddToCart(this.productData, 1);\n this.$mobileDetect.mobile() ? this.$refs.offcanvasTrigger.click() : '';\n } catch (err) {\n //\n }\n }\n\n private mounted(): void {\n if(window.outerWidth < 768) {\n this.showElement = true;\n } else {\n window.addEventListener('scroll', (e) => {\n const footerEl = (document.getElementsByClassName('footer__block--absolute')[0] as HTMLElement);\n if (window.pageYOffset > 500) {\n this.showElement = true;\n footerEl.style.marginBottom = '80px';\n } else {\n this.showElement = false;\n footerEl.style.marginBottom = '0';\n }\n });\n }\n }\n}\n","import Environment from '@flashpointbv/solar-ui-environment';\n\nclass CatalogHelper {\n getProductPrice(product: object, customerGroupId: number = 0): object {\n let priceObject = {\n productPrice: product[`price_incl_tax`] || 0,\n specialPrice: product[`final_price_incl_tax`] || 0,\n discountPrice: product[`price_incl_tax`] || 0\n };\n\n if (priceObject.productPrice !== priceObject.specialPrice) {\n priceObject.discountPrice = priceObject.specialPrice;\n }\n\n return priceObject;\n }\n\n resolveProductImage(product: object, size: number): string {\n const env = window.Config.hasOwnProperty('environment') ? window.Config['environment'] : 'production';\n\n if (env !== 'production') {\n return `https://www.xenos.nl/pub/cdn/${product['sku']}/${size}/${product['sku']}.jpg`;\n }\n\n return this.resolveGalleryImage(product, size);\n }\n\n resolveGalleryImage(product: object, size: number, index: number = 0): string {\n if(Object.keys(product).length === 0) {\n return '';\n }\n\n const selectedItem = product['media_gallery'][index] || false;\n\n if (false === selectedItem) {\n return '';\n }\n\n if (selectedItem['type'] === 'video') {\n return selectedItem['thumbnail'] || '';\n }\n\n if (Environment().get('environment') !== 'production') {\n return `https://www.xenos.nl/pub/cdn/${product['sku']}/${size}/${product['sku']}.jpg`;\n }\n\n return selectedItem['placeholder_url'].replace(/\\{size}/, size);\n }\n\n getProductLabel(product: object): object | null {\n if (product.hasOwnProperty('action_labels')) {\n return {\n label: product['action_labels'][0]['name'],\n color: product['action_labels'][0]['color']\n };\n }\n\n if (product['promotion']) {\n let backgroundColor = '#ec008c';\n\n switch (product['promotion']) {\n case '50% korting':\n backgroundColor = '#1a9bdb';\n break;\n case '30% korting':\n backgroundColor = '#75ad3f';\n break;\n }\n\n return {\n label: product['promotion'],\n color: backgroundColor\n };\n }\n\n if (product['discount_amount'] > 0) {\n return {\n label: `${Math.round(product['discount_percentage'])}% korting`,\n color: '#ec008c'\n };\n }\n\n return null;\n }\n}\n\nconst catalogHelper = new CatalogHelper();\n\nexport {catalogHelper};\n","class EnhancedEcommerce {\n addProductImpressions(products: Array<object>, listType: string = 'product-list', startIndex: number = 0): void {\n const impressions: Array<object> = [];\n const hasImpressionView = window.dataLayer.filter(e => e['event'] === 'ImpressionView').length;\n\n products.forEach((p, i) => {\n impressions.push({\n 'name': p['name'],\n 'id': p['product_id'],\n 'price': p['final_price_incl_tax'],\n 'sku': p['sku'],\n 'ean': p['erp_ean'] || '',\n 'brand': p['xenos_merk'] || 'Xenos',\n 'category': p.hasOwnProperty('category_names') ? p['category_names'].join(' | ') : '',\n 'variant': p['xen_kleur'] || '',\n 'dimension20': p['gses_durability_score_rating'] || null,\n 'list': listType,\n 'position': ((startIndex + i) + 1)\n });\n });\n\n window.dataLayer.push({\n 'event': startIndex !== 0 && hasImpressionView > 0 ? 'ImpressionsPushed' : 'ImpressionView',\n 'ecommerce': {\n 'currencyCode': 'EUR',\n 'impressions': impressions\n }\n });\n }\n\n addProductClick(product: object, index: string | number | boolean | symbol): void {\n window.dataLayer.push({\n 'event': 'productClick',\n 'ecommerce': {\n 'click': {\n 'actionField': {\n 'list': 'product-list'\n },\n 'products': [{\n 'name': product['name'],\n 'id': product['product_id'],\n 'price': product['final_price_incl_tax'],\n 'sku': product['sku'],\n 'ean': product['erp_ean'] || '',\n 'brand': product['xenos_merk'] || 'Xenos',\n 'category': product.hasOwnProperty('category_names') ? product['category_names'].join(' | ') : '',\n 'variant': product['xen_kleur'] || '',\n 'dimension20': product['gses_durability_score_rating'] || null,\n 'position': (index as number) + 1\n }]\n }\n }\n });\n }\n\n addProductDetail(product: object): void {\n window.dataLayer.push({\n 'ecommerce': {\n 'detail': {\n 'products': [{\n 'name': product['name'],\n 'id': product['product_id'],\n 'price': product['final_price_incl_tax'],\n 'sku': product['sku'],\n 'ean': product['erp_ean'] || '',\n 'brand': product['xenos_merk'] || 'Xenos',\n 'category': product.hasOwnProperty('category_names') ? product['category_names'].join(' | ') : '',\n 'variant': product['xen_kleur'] || '',\n 'dimension20': product['gses_durability_score_rating'] || null,\n }]\n }\n }\n });\n }\n\n addProductAddToCart(product: object, qty: number = 1): void {\n window.dataLayer.push({\n 'event': 'addToCart',\n 'ecommerce': {\n 'currencyCode': 'EUR',\n 'add': {\n 'products': [{\n 'name': product['name'],\n 'id': product['product_id'],\n 'price': product['final_price_incl_tax'],\n 'sku': product['sku'],\n 'ean': product['erp_ean'] || '',\n 'brand': product['xenos_merk'] || 'Xenos',\n 'category': product.hasOwnProperty('category_names') ? product['category_names'].join(' | ') : '',\n 'variant': product['xen_kleur'] || '',\n 'dimension20': product['gses_durability_score_rating'] || null,\n 'quantity': qty\n }]\n }\n }\n });\n }\n\n addCrossSellDatalayer(product: object, qty: number = 1): void {\n window.dataLayer.push({\n 'event': 'addtocart-checkout',\n 'ecommerce': {\n 'currencyCode': 'EUR',\n 'add': {\n 'products': [{\n 'name': product['name'],\n 'id': product['product_id'],\n 'price': product['final_price_incl_tax'],\n 'sku': product['sku'],\n 'ean': product['erp_ean'] || '',\n 'brand': product['xenos_merk'] || 'Xenos',\n 'category': product.hasOwnProperty('category_names') ? product['category_names'].join(' | ') : '',\n 'variant': product['xen_kleur'] || '',\n 'dimension20': product['gses_durability_score_rating'] || null,\n 'quantity': qty\n }]\n }\n }\n });\n }\n\n addCheckout(products: Array<object>, step: number, option: string = ''): void {\n const productList: Array<object> = [];\n\n if (step === 1) {\n window.dataLayer.push({\n 'event': 'checkout',\n 'ecommerce': {\n 'checkout': {\n 'actionField': {'step': step, 'option': option},\n 'products': productList\n }\n }\n });\n\n products.forEach(p => {\n productList.push({\n 'name': p['name'],\n 'id': p['item_id'],\n 'price': p['row_total_incl_tax'],\n 'sku': p['extension_attributes']['sku'] || '',\n 'ean': p['extension_attributes']['ean'] || '',\n 'brand': p['extension_attributes']['brand'] || 'Xenos',\n 'category': '',\n 'variant': p['extension_attributes']['variant'] || '',\n 'dimension20': p['gses_durability_score_rating'] || null,\n 'quantity': p['qty']\n });\n });\n } else {\n window.dataLayer.push({\n 'event': 'checkoutOption',\n 'ecommerce': {\n 'checkout_option': {\n 'actionField': {'step': step, 'option': option}\n }\n }\n });\n }\n }\n\n addShopByLookDatalayer(shopByLook: object, product: object | null = null): void {\n if (typeof window.dataLayer === 'undefined') {\n return;\n }\n\n window.dataLayer.push({\n event: `${shopByLook['title'].toLowerCase()}-click`,\n category: shopByLook['title'],\n action: 'click',\n label: shopByLook['title'],\n price: product ? product['final_price_incl_tax'] : shopByLook['final_price'],\n value: product ? `Add to cart: ${product['name']}` : `Add to cart`\n });\n }\n}\n\nconst enhancedEcommerce = new EnhancedEcommerce();\n\nexport {enhancedEcommerce};\n","import { render, staticRenderFns } from \"./StickyAddToCart.vue?vue&type=template&id=98b14000&\"\nimport script from \"./StickyAddToCart.vue?vue&type=script&lang=ts&\"\nexport * from \"./StickyAddToCart.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./StickyAddToCart.vue?vue&type=style&index=0&lang=css&\"\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/ts-loader/index.js??clonedRuleSet-5[0].rules[0].use[0]!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StickyAddToCart.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/ts-loader/index.js??clonedRuleSet-5[0].rules[0].use[0]!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StickyAddToCart.vue?vue&type=script&lang=ts&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (false !== _vm.isSaleable)?_c('div',{staticClass:\"sticky__add-to-cart-holder\",class:{ '--kiosk': _vm.isKiosk, 'saleable': _vm.isSaleable}},[_c('transition',{attrs:{\"name\":\"slide\"}},[_c('form',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showElement),expression:\"showElement\"}],ref:\"addToCart\",staticClass:\"sticky__add-to-cart\",attrs:{\"enctype\":\"multipart/form-data\",\"method\":\"post\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.productAddToCart()}}},[_c('div',{staticClass:\"grid-container\"},[_c('span',{staticClass:\"image__holder hide-for-small-only\"},[_c('img',{directives:[{name:\"lazy\",rawName:\"v-lazy\",value:(_vm.productImage),expression:\"productImage\"}],attrs:{\"width\":\"50\",\"height\":\"50\",\"alt\":_vm.productData['name']}})]),_vm._v(\" \"),_c('div',{staticClass:\"product__information hide-for-small-only\"},[_c('h3',[_vm._v(_vm._s(_vm.productData['name']))]),_vm._v(\" \"),(_vm.productData['review_count'] > 0)?_c('span',{staticClass:\"rating-container\"},[_c('span',{staticClass:\"--fill\",style:({ width: ((_vm.productData['product_rating']) + \"%\")})})]):_vm._e()]),_vm._v(\" \"),_c('div',{staticClass:\"product__add-to-cart-container\"},[_c('catalog-product-quantity',{staticClass:\"show-for-small-only\"}),_vm._v(\" \"),_c('div',{staticClass:\"add-to-cart__holder\"},[_c('button',{staticClass:\"--button --rounded\",class:{ '--cart-loading': _vm.addToCartIsLoading },attrs:{\"disabled\":!_vm.isSaleable || _vm.addToCartIsLoading},domProps:{\"textContent\":_vm._s(_vm.$t('Add to cart'))}})])],1)])])]),_vm._v(\" \"),_c('button',{ref:\"offcanvasTrigger\",attrs:{\"data-toggle\":\"addToCart-offCanvas\"}}),_vm._v(\" \"),_c('div',{staticClass:\"off-canvas position-left is-closed\",attrs:{\"id\":\"addToCart-offCanvas\",\"data-off-canvas\":\"\"}},[_c('div',{staticClass:\"off-canvas__container\"},[_c('span',{staticClass:\"modal__header\"},[_c('span',{staticClass:\"--title\"},[_vm._v(_vm._s(_vm.$t('Added to cart')))]),_vm._v(\" \"),_vm._m(0)]),_vm._v(\" \"),_c('section',[_c('div',{staticClass:\"product__information\"},[_c('section',[_c('div',{staticClass:\"image__holder\"},[_c('img',{attrs:{\"src\":_vm.productImage,\"width\":\"95\",\"height\":\"95\",\"alt\":this.productData['name']}})]),_vm._v(\" \"),_c('div',{staticClass:\"item__details\"},[_c('span',{staticClass:\"--title\"},[_vm._v(_vm._s(this.productData['name']))]),_vm._v(\" \"),_c('span',{staticClass:\"--qty\"},[_vm._v(_vm._s(_vm.$t('Quantity'))+\" \"+_vm._s(_vm.getSelectedQuantity))])]),_vm._v(\" \"),_c('div',{staticClass:\"price__holder\"},[(_vm.productPrices['discountPrice'] !== _vm.productPrices['productPrice'])?_c('span',{staticClass:\"old__price\"},[_vm._v(\"\\n \"+_vm._s((_vm.productPrices['productPrice'] * _vm.getSelectedQuantity).priceFormat())+\"\\n \")]):_vm._e(),_vm._v(\" \"),_c('span',{staticClass:\"price\"},[_vm._v(_vm._s((_vm.productPrices['discountPrice'] * _vm.getSelectedQuantity).priceFormat()))])])]),_vm._v(\" \"),_c('div',{staticClass:\"--actions\"},[_c('a',{staticClass:\"--button --chevron\",attrs:{\"href\":\"/checkout/cart\"}},[_vm._v(_vm._s(_vm.$t('To shopping cart')))])])]),_vm._v(\" \"),_c('catalog-product-upsell-off-canvas',{attrs:{\"product-id\":this.productData['product_id']}})],1)])])],1):_vm._e()}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('button',{staticClass:\"close-button\",attrs:{\"aria-label\":\"Close menu\",\"type\":\"button\",\"data-close\":\"\"}},[_c('span',{attrs:{\"aria-hidden\":\"true\"}},[_vm._v(\"×\")])])}]\n\nexport { render, staticRenderFns }"],"names":["Vue","showElement","addToCartIsLoading","hasAddToCartSuccess","hasAddToCartSuccessMessage","productImage","catalogHelper","resolveProductImage","this","productData","getSelectedQuantity","$store","getters","productPrices","getProductPrice","isSaleable","state","ProductQuantity","disableAddToCart","selectedOptions","isKiosk","window","Config","productAddToCart","productPayload","sku","qty","$mobileDetect","mobile","length","productOptions","product_option","extension_attributes","configurable_item_options","map","option","option_id","option_value","Object","assign","dispatch","$t","setTimeout","enhancedEcommerce","addProductAddToCart","$refs","offcanvasTrigger","click","err","mounted","outerWidth","addEventListener","e","footerEl","document","getElementsByClassName","pageYOffset","style","marginBottom","Prop","Component","name","components","getComponents","CatalogHelper","product","customerGroupId","priceObject","productPrice","specialPrice","discountPrice","size","hasOwnProperty","resolveGalleryImage","index","keys","selectedItem","get","replace","getProductLabel","label","color","backgroundColor","Math","round","EnhancedEcommerce","addProductImpressions","products","listType","startIndex","impressions","hasImpressionView","dataLayer","filter","forEach","p","i","push","join","addProductClick","addProductDetail","addCrossSellDatalayer","addCheckout","step","productList","addShopByLookDatalayer","shopByLook","event","toLowerCase","category","action","price","value","render","_vm","_h","$createElement","_c","_self","staticClass","class","attrs","directives","rawName","expression","ref","on","$event","preventDefault","_v","_s","width","_e","domProps","_m","priceFormat","staticRenderFns"],"sourceRoot":""}