{"version":3,"file":"js/app.e86596bc367fdb8002d5.js","mappings":"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","sources":["webpack:///./resources/area/web/default/js/components/catalog/product/ProductProductRow.vue?138d","webpack:///./resources/area/web/default/js/components/catalog/product/ProductProductRow.vue","webpack:///./resources/area/web/default/js/components/catalog/product/ProductProductRow.vue?d247","webpack:///./resources/area/web/default/js/components/catalog/product/ProductProductRow.vue?af31"],"sourcesContent":["\nimport {Component, Vue, Prop} from 'vue-property-decorator';\nimport ServiceContainer from '@flashpointbv/solar-service-container';\nimport {SolarDataLayer} from '@flashpointbv/solar-datalayer/dist';\n\n@Component({\n name: 'catalog-product-product-row',\n components: ServiceContainer().getComponents()\n})\n\nexport default class extends Vue {\n @Prop({default: null}) readonly productId!: null | number;\n @Prop({default: 12}) readonly limit!: number;\n @Prop({default: true}) readonly showTitle!: boolean;\n @Prop({default: ''}) readonly title!: string;\n @Prop() readonly rowType!: string;\n @Prop() readonly itemListName!: string;\n @Prop() readonly itemListId!: string;\n @Prop() readonly sliderId!: string;\n @Prop({default: null}) readonly tweakwiseRecommendation!: null | object;\n\n private products: Array<object> = [];\n private rowTitle: string = '';\n private isLoading: boolean = false;\n\n private get showComponent(): boolean {\n return this.isLoading || this.products.length > 0;\n }\n\n private get fetchProductRequestParams(): object {\n return {\n limit: this.limit\n };\n }\n\n private get dataLayerProducts(): Array<object> {\n const products = [...this.products];\n\n return products.map((product: object) => {\n return {\n ...product,\n 'item_id': product['product_id'],\n 'item_group_id': product['product_id'],\n };\n });\n }\n\n private async fetchProducts(): Promise<boolean> {\n this.isLoading = true;\n\n const productId = this.productId || this.$store.state.CatalogProduct.productData.product_id;\n\n try {\n const {data} = await this.$solarClient.get(`catalog/product/${productId}/${this.rowType}/list`, {\n params: this.fetchProductRequestParams\n });\n\n this.products = data;\n this.rowTitle = this.title;\n\n if (this.products.length) {\n SolarDataLayer.init().addViewItemsList(this.dataLayerProducts, this.itemListName);\n }\n\n return true;\n } catch (e) {\n console.error(e);\n } finally {\n this.isLoading = false;\n }\n\n return false;\n }\n\n private async getTweakWiseRecommendations(): Promise<boolean> {\n if ( ! this.tweakwiseRecommendation) {\n return false;\n }\n\n this.isLoading = true;\n\n try {\n let url = `tweakwise/recommendations/${this.tweakwiseRecommendation['id']}`;\n if (this.productId) {\n url += `/${this.productId}`;\n }\n\n const {data} = await this.$solarClient.get(url);\n\n if (data && data.length) {\n this.products = data[0]['products'];\n this.rowTitle = this.tweakwiseRecommendation['title'] ?\n this.tweakwiseRecommendation['title'] :\n this.title;\n\n if (this.products.length) {\n SolarDataLayer.init().addViewItemsList(this.dataLayerProducts, this.itemListName);\n }\n\n return true;\n }\n } catch (e) {\n console.error(e);\n } finally {\n this.isLoading = false;\n }\n\n return false;\n }\n\n private async handleDataFetching(): Promise<void> {\n const isTweakwiseRecommendation = await this.getTweakWiseRecommendations();\n\n if (isTweakwiseRecommendation) {\n return;\n }\n\n if (null !== this.productId) {\n await this.fetchProducts();\n return;\n }\n\n this.$store.subscribe(async (mutation) => {\n if (mutation.type === 'CatalogProduct/SET_PRODUCT_DATA') {\n await this.fetchProducts();\n }\n });\n }\n\n async created(): Promise<void> {\n await this.handleDataFetching();\n }\n\n private updated(): void {\n this.$nextTick(() => {\n const el = document.getElementById(`${this.sliderId}-slider`);\n if (el) {\n new window.BlazeSlider(el, {\n all: {\n slidesToShow: 1.8,\n slideGap: '0px',\n loop: false,\n fixedSlides: true,\n },\n '(min-width: 768px)': {\n slidesToShow: 4,\n },\n '(min-width: 1024px)': {\n slidesToShow: 5,\n }\n });\n }\n });\n }\n}\n","import { render, staticRenderFns } from \"./ProductProductRow.vue?vue&type=template&id=b1f65f48&\"\nimport script from \"./ProductProductRow.vue?vue&type=script&lang=ts&\"\nexport * from \"./ProductProductRow.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/ts-loader/index.js??clonedRuleSet-6.use[0]!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductProductRow.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[0]!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductProductRow.vue?vue&type=script&lang=ts&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showComponent),expression:\"showComponent\"}],staticClass:\"catalog__category-list product__product--row\",class:`${_vm.sliderId}-slider`},[_c('div',{staticClass:\"blaze-slider\",attrs:{\"id\":`${_vm.sliderId}-slider`}},[_c('div',{staticClass:\"--header\"},[(_vm.showTitle)?_c('h2',[_vm._v(_vm._s(_vm.$t(_vm.rowTitle)))]):_vm._e(),_vm._v(\" \"),_vm._m(0)]),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isLoading),expression:\"isLoading\"}],staticClass:\"--loading\"},[_c('div',{staticClass:\"--spinner\"})]),_vm._v(\" \"),_c('div',{staticClass:\"blaze-container\"},[_c('div',{staticClass:\"blaze-track-container\"},[_c('div',{staticClass:\"blaze-track\"},_vm._l((_vm.products),function(product){return _c('div',{key:product['id'],staticClass:\"slider__product\"},[_c('catalog-product-list-item',{attrs:{\"data-source\":\"CatalogCategory\",\"product\":product,\"type\":\"product-row\",\"tag\":\"div\"}})],1)}),0)])])])])\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"blaze-controls --compact\"},[_c('button',{staticClass:\"blaze-prev\",attrs:{\"aria-label\":\"Go to previous slide\"}}),_vm._v(\" \"),_c('span',[_vm._v(\"/\")]),_vm._v(\" \"),_c('button',{staticClass:\"blaze-next\",attrs:{\"aria-label\":\"Go to next slide\"}})])\n}]\n\nexport { render, staticRenderFns }"],"names":["Vue","products","rowTitle","isLoading","showComponent","this","length","fetchProductRequestParams","limit","dataLayerProducts","map","product","fetchProducts","productId","$store","state","CatalogProduct","productData","product_id","data","$solarClient","get","rowType","params","title","SolarDataLayer","init","addViewItemsList","itemListName","e","console","error","getTweakWiseRecommendations","tweakwiseRecommendation","url","handleDataFetching","subscribe","mutation","type","created","updated","$nextTick","el","document","getElementById","sliderId","window","BlazeSlider","all","slidesToShow","slideGap","loop","fixedSlides","Prop","default","Component","name","components","getComponents","render","_vm","_c","_self","_setupProxy","directives","rawName","value","expression","staticClass","class","attrs","_v","_s","$t","_e","_m","_l","key","staticRenderFns"],"sourceRoot":""}