{"version":3,"file":"product-about-info-fragment.js?v=c3ef4f41fb2c0befe506","mappings":"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","sources":["webpack://RdoWeb/./ResourcePackages/Main/assets/src/scripts/stores/mutations.js","webpack://RdoWeb/./ResourcePackages/Main/assets/src/scripts/stores/product-store.js","webpack://RdoWeb/./ResourcePackages/Main/assets/src/scripts/mixins/product-mixin.js","webpack://RdoWeb/./ResourcePackages/Main/assets/src/scripts/widgets/product/about-info-fragment.js"],"sourcesContent":["export let Mutations = Object.freeze({\r\n ProductStore: Object.freeze({\r\n FETCH_PRODUCT: \"FETCH_PRODUCT\",\r\n FETCH_CROSS_SELL_PRODUCTS: \"FETCH_CROSS_SELL_PRODUCTS\",\r\n FETCH_SIMILAR_PRODUCTS: \"FETCH_SIMILAR_PRODUCTS\",\r\n FETCH_PROGRAMS: \"FETCH_PROGRAMS\",\r\n FETCH_PROMOTIONS: \"FETCH_PROMOTIONS\",\r\n FETCH_SPECIFICATIONS: \"FETCH_SPECIFICATIONS\",\r\n FETCH_COMPARE_FIELDS: \"FETCH_COMPARE_FIELDS\",\r\n PRODUCT_FETCHED: \"PRODUCT_FETCHED\"\r\n })\r\n});","import Vue from 'vue';\r\nimport Vuex from \"vuex\";\r\nimport { Constants } from '../functions/constants';\r\nimport { StringUtils } from '../functions/string-utils';\r\nimport { ProductService } from '../services/product-service';\r\nimport { Mutations } from './mutations';\r\nimport { parseValue, parseValueAsArray, getPricing } from '../functions/product-model';\r\nimport { ArrayUtils } from '../functions/array-utils';\r\nimport { ProductDecorator } from \"../functions/product-decorator\";\r\n\r\nVue.use(Vuex);\r\n\r\nexport const productStore = new Vuex.Store({\r\n state: {\r\n isProductFetched: false,\r\n product: {},\r\n similarProducts: [],\r\n crossSellProducts: [],\r\n programInfo: [],\r\n promotionInfo: [],\r\n specifications: [],\r\n compareFields: []\r\n },\r\n getters: {\r\n warranty: state => {\r\n if (!state.product?.warranty)\r\n return {};\r\n\r\n let parsedWarranty = StringUtils.jsonTryParse(state.product?.warranty);\r\n return (parsedWarranty) ? parsedWarranty : {};\r\n },\r\n getFromWarranty: (state, getters) => (key) => {\r\n if (!state.isProductFetched || typeof key !== \"string\")\r\n return null;\r\n\r\n return getters.warranty[key];\r\n },\r\n customFields: state => {\r\n return state.product?.customFields;\r\n },\r\n getCustomField: (state, getters) => (key) => {\r\n if (!state.isProductFetched || typeof key !== \"string\")\r\n return null;\r\n\r\n let customFieldValue = getters.customFields.find(f => f.name === key)?.value;\r\n return (customFieldValue) ? customFieldValue : null;\r\n },\r\n betterTogetherIds: (state, getters) => {\r\n let crossSellProductIds = parseValueAsArray(getters.getCustomField(Constants.ALGOLIA.PRODUCT.CROSS_SELL), Constants.PRODUCT.CARROT_SEPARATOR);\r\n\r\n return ArrayUtils.isNotEmpty(crossSellProductIds) ? crossSellProductIds : [];\r\n },\r\n relatedProducts: (state, getters) => {\r\n\r\n let relatedProducts = parseValueAsArray(getters.getCustomField(Constants.ALGOLIA.PRODUCT.SIMILAR_PRODUCT_IDS), Constants.PRODUCT.CARROT_SEPARATOR);\r\n\r\n\r\n return ArrayUtils.isNotEmpty(relatedProducts) ? relatedProducts : [];\r\n },\r\n programs: (state, getters) => {\r\n return parseValueAsArray(getters.getFromWarranty(Constants.ALGOLIA.PRODUCT.PROGRAM_TEXT), Constants.PRODUCT.CARROT_SEPARATOR);\r\n },\r\n promoFeatures: (state, getters) => {\r\n return parseValueAsArray(getters.getFromWarranty(Constants.ALGOLIA.PRODUCT.PROMO_TEXT), Constants.PRODUCT.CARROT_SEPARATOR);\r\n },\r\n },\r\n actions: {\r\n async getProduct({ commit, dispatch, getters, state }, data) {\r\n const productService = new ProductService();\r\n const product = await productService.getProduct(data?.productId);\r\n\r\n commit(Mutations.ProductStore.FETCH_PRODUCT, { ...data.model, ...product });\r\n if (product) {\r\n commit(Mutations.ProductStore.PRODUCT_FETCHED, true);\r\n await dispatch(\"getProgramInfo\");\r\n await dispatch(\"getPromotionInfo\");\r\n await dispatch(\"getCrossSellProducts\");\r\n await dispatch(\"getSpecifications\");\r\n\r\n if (getters.relatedProducts?.length)\r\n await dispatch(\"getCompareDefinitions\");\r\n\r\n if (state.compareFields?.length)\r\n await dispatch(\"getSimilarProducts\");\r\n }\r\n },\r\n async getProgramInfo({ commit, getters }) {\r\n const productService = new ProductService();\r\n const programNames = getters.programs;\r\n if (!programNames?.length)\r\n return false;\r\n\r\n const programInfo = await productService.getProgramData(programNames);\r\n if (programInfo)\r\n commit(Mutations.ProductStore.FETCH_PROGRAMS, programInfo);\r\n },\r\n async getPromotionInfo({ commit, getters }) {\r\n const productService = new ProductService();\r\n const featureNames = getters.promoFeatures;\r\n if (!featureNames?.length)\r\n return false;\r\n\r\n const promotions = await productService.getPromotionData(featureNames);\r\n if (promotions)\r\n commit(Mutations.ProductStore.FETCH_PROMOTIONS, promotions);\r\n },\r\n\r\n async getCrossSellProducts({ commit, getters }) {\r\n const productService = new ProductService();\r\n const crossSellProductIds = getters.betterTogetherIds;\r\n const crossSellProducts = await productService.getCrossSellProducts(crossSellProductIds);\r\n\r\n commit(Mutations.ProductStore.FETCH_CROSS_SELL_PRODUCTS, crossSellProducts);\r\n },\r\n\r\n async getSpecifications({ commit, getters }) {\r\n const productService = new ProductService();\r\n const family = parseValue(getters.getCustomField(Constants.ALGOLIA.PRODUCT.FAMILY));\r\n if (!family)\r\n return false;\r\n\r\n const specifications = await productService.getSpecifications(family);\r\n if (specifications)\r\n commit(Mutations.ProductStore.FETCH_SPECIFICATIONS, specifications);\r\n },\r\n async getCompareDefinitions({ commit, getters }, data) {\r\n const productService = new ProductService();\r\n const family = parseValue(getters.getCustomField(Constants.ALGOLIA.PRODUCT.FAMILY));\r\n if (!family)\r\n return false;\r\n\r\n const compareDefinitions = await productService.getCompareDefinitions(family);\r\n if (compareDefinitions)\r\n commit(Mutations.ProductStore.FETCH_COMPARE_FIELDS, compareDefinitions);\r\n },\r\n async getSimilarProducts({ commit, getters }, data) {\r\n const productService = new ProductService();\r\n const similarProductIds = getters.relatedProducts;\r\n const similarProducts = await productService.getRelatedProducts(similarProductIds);\r\n\r\n if (similarProducts) {\r\n commit(Mutations.ProductStore.FETCH_SIMILAR_PRODUCTS, similarProducts);\r\n }\r\n }\r\n },\r\n mutations: {\r\n FETCH_PRODUCT(state, product) {\r\n state.product = product;\r\n },\r\n FETCH_CROSS_SELL_PRODUCTS(state, crossSellProducts) {\r\n state.crossSellProducts = crossSellProducts;\r\n },\r\n FETCH_PROGRAMS(state, programInfo) {\r\n state.programInfo = programInfo;\r\n },\r\n FETCH_PROMOTIONS(state, promotionInfo) {\r\n state.promotionInfo = promotionInfo;\r\n },\r\n FETCH_SPECIFICATIONS(state, specifications) {\r\n state.specifications = specifications;\r\n },\r\n PRODUCT_FETCHED(state, isProductFetched) {\r\n state.isProductFetched = isProductFetched;\r\n },\r\n FETCH_COMPARE_FIELDS(state, compareFields) {\r\n state.compareFields = compareFields;\r\n },\r\n FETCH_SIMILAR_PRODUCTS(state, similarProducts) {\r\n state.similarProducts = similarProducts;\r\n }\r\n }\r\n});","import { mapState, mapGetters } from 'vuex';\r\nimport { Constants } from \"../functions/constants\";\r\nimport { getProductName, parseValue, parseValueAsArray, getPricing, getEmptyProductPrice } from \"../functions/product-model\";\r\nimport { productStore } from \"../stores/product-store\";\r\nimport { ProductDecorator } from \"../functions/product-decorator\";\r\n\r\nexport const productMixin = {\r\n store: productStore,\r\n methods: {\r\n shouldShowPrice: function (isBusinessCustomer) {\r\n if (!this.productDetails)\r\n return false;\r\n\r\n return this.productDetails.shouldShowPrice(isBusinessCustomer);\r\n }\r\n },\r\n computed: {\r\n ...mapState({\r\n isProductFetched: state => state.isProductFetched,\r\n product: state => state.product\r\n }),\r\n ...mapGetters({\r\n warranty: 'warranty',\r\n getFromWarranty: 'getFromWarranty',\r\n customFields: 'customFields',\r\n getCustomField: 'getCustomField',\r\n programs: 'programs',\r\n promoFeatures: 'promoFeatures'\r\n }),\r\n productDetails: function () {\r\n var options = {\r\n product: this.product\r\n };\r\n this.product.productDetails = new ProductDecorator(options);\r\n return this.product.productDetails;\r\n },\r\n family: function () {\r\n return parseValue(this.getCustomField(Constants.ALGOLIA.PRODUCT.FAMILY));\r\n },\r\n bulletOne: function () {\r\n return parseValue(this.getFromWarranty(Constants.ALGOLIA.PRODUCT.BULLET1));\r\n },\r\n bulletTwo: function () {\r\n return parseValue(this.getFromWarranty(Constants.ALGOLIA.PRODUCT.BULLET2));\r\n },\r\n bulletThree: function () {\r\n return parseValue(this.getFromWarranty(Constants.ALGOLIA.PRODUCT.BULLET3));\r\n },\r\n bulletFour: function () {\r\n return parseValue(this.getFromWarranty(Constants.ALGOLIA.PRODUCT.BULLET4));\r\n },\r\n bulletFive: function () {\r\n return parseValue(this.getFromWarranty(Constants.ALGOLIA.PRODUCT.BULLET5));\r\n },\r\n shippingFulfillmentBullet: function () {\r\n return parseValue(this.getFromWarranty(Constants.ALGOLIA.PRODUCT.SHIPPING_FULLFILLMENT_BULLET));\r\n },\r\n backorderAvailabilityBullet: function () {\r\n return parseValue(this.getFromWarranty(Constants.ALGOLIA.PRODUCT.BACKORDER_AVAILABILITY_BULLET));\r\n },\r\n productLimitationBullet: function () {\r\n return parseValue(this.getFromWarranty(Constants.ALGOLIA.PRODUCT.PRODUCT_LIMITATION_BULLET));\r\n },\r\n addedFeesBullet: function () {\r\n return parseValue(this.getFromWarranty(Constants.ALGOLIA.PRODUCT.ADDED_FEES_BULLET));\r\n },\r\n youTubeVideos: function () {\r\n return parseValueAsArray(this.getFromWarranty(Constants.ALGOLIA.PRODUCT.YOUTUBE));\r\n },\r\n vimeoVideos: function () {\r\n return parseValueAsArray(this.getFromWarranty(Constants.ALGOLIA.PRODUCT.VIMEO));\r\n },\r\n price: function () {\r\n return this.product ?.prices ?.price ?.value;\r\n },\r\n description: function () {\r\n return this.product ?.description;\r\n },\r\n productPrice: function () {\r\n if (!this.productDetails) \r\n return getEmptyProductPrice();\r\n\r\n var pricingObject = this.productDetails.getPrices();\r\n var pricing = getPricing(pricingObject ?.price ?.value, pricingObject ?.retailPrice ?.value, pricingObject ?.salePrice ?.value);\r\n return pricing;\r\n },\r\n productDetailUrl: function () {\r\n return GlobalApp.generalSettings.productDetailsPageUrl;\r\n },\r\n isPart: function () {\r\n return this.productDetails.isPart();\r\n },\r\n isEquipment: function () {\r\n return this.productDetails.isEquipment();\r\n },\r\n isNewEquipment: function () {\r\n return this.productDetails.isNewEquipment();\r\n },\r\n isUsedEquipment: function () {\r\n return this.productDetails.isUsedEquipment();\r\n },\r\n skuText: function () {\r\n if (this.isNewEquipment) {\r\n return this.productDetails.getModel()\r\n }\r\n\r\n if (this.isUsedEquipment || this.isPart) {\r\n return this.productDetails.getSku()\r\n }\r\n\r\n return \"\"\r\n },\r\n }\r\n}","import { mapState } from \"vuex\";\r\nimport { WidgetInitializer } from \"../../functions/widget-initializer\";\r\nimport { Constants } from \"../../functions/constants\";\r\nimport { parseValue } from \"../../functions/product-model\";\r\nimport { productMixin } from \"../../mixins/product-mixin\";\r\nimport { ConfigUtils } from \"../../functions/config-utils\";\r\n\r\nvar widgetInitializer = new WidgetInitializer(Constants.COMPONENTS.PRODUCT_ABOUT_INFO_FRAGMENT);\r\nGlobalApp.registerInitializationHandler(Constants.COMPONENTS.PRODUCT_ABOUT_INFO_FRAGMENT, function () {\r\n widgetInitializer.initialize(initAboutFragment);\r\n});\r\n\r\nfunction initAboutFragment(element) {\r\n var config = ConfigUtils.getConfigFor(element);\r\n\r\n var vueApp = new Vue({\r\n el: '#' + element.id,\r\n data: {\r\n initializationReadyHook: GlobalApp.getInitializationReadyHook(),\r\n data_loaded: false\r\n },\r\n mixins: [productMixin],\r\n methods: {\r\n toPdfLinks: function (linksString, staticLinkText) {\r\n if (typeof linksString !== \"string\" || typeof staticLinkText !== \"string\")\r\n return [];\r\n\r\n let links = linksString.split(\",\");\r\n if (links.length == 1)\r\n return links.map(link => ({ text: staticLinkText, url: link }));\r\n\r\n return links.map((link, index) => ({ text: staticLinkText + \" - \" + (index + 1), url: link }));\r\n },\r\n cleanContent: function (content) {\r\n return content ? content.replace(/</g, '<').replace(/>/g, '>') : \"\"\r\n }\r\n },\r\n computed: {\r\n ...mapState({\r\n programInfo: state => state.programInfo,\r\n promotionInfo: state => state.promotionInfo\r\n }),\r\n adDescription: function () {\r\n return parseValue(this.getFromWarranty(Constants.ALGOLIA.PRODUCT.AD_DESCRIPTION));\r\n },\r\n featureWholegoods: function () {\r\n return parseValue(this.getFromWarranty(Constants.ALGOLIA.PRODUCT.FEATURE_WHOLEGOODS));\r\n },\r\n specPdfs: function () {\r\n const staticText = \"Product Specifications\";\r\n let sheetUrlsString = parseValue(this.getFromWarranty(Constants.ALGOLIA.PRODUCT.SPEC_SHEET_URL));\r\n return this.toPdfLinks(sheetUrlsString, staticText);\r\n },\r\n brochurePdfs: function () {\r\n const staticText = \"Product Brochure\";\r\n let brochureUrlsString = parseValue(this.getFromWarranty(Constants.ALGOLIA.PRODUCT.BROCHURE_URL));\r\n return this.toPdfLinks(brochureUrlsString, staticText);\r\n },\r\n showPrograms: function () {\r\n return this.programInfo?.length > 0;\r\n },\r\n showPromos: function () {\r\n return this.promotionInfo?.length > 0;\r\n },\r\n productOverviewContent: function () {\r\n var section_content = [\r\n this.description,\r\n this.adDescription,\r\n this.featureWholegoods];\r\n \r\n return section_content.map(el => this.cleanContent(el)).filter(el => el); \r\n },\r\n showProductOverviewHeading: function () {\r\n return this.productOverviewContent.length && this.data_loaded\r\n },\r\n featuresBulletsContent: function () {\r\n var section_content = [\r\n this.bulletOne,\r\n this.bulletTwo,\r\n this.bulletThree,\r\n this.bulletFour,\r\n this.bulletFive,\r\n this.shippingFulfillmentBullet,\r\n this.backorderAvailabilityBullet,\r\n this.productLimitationBullet,\r\n this.addedFeesBullet];\r\n \r\n return section_content.map(el => el).filter(el => el); \r\n },\r\n showFeaturesHeading: function () { \r\n return this.featuresBulletsContent.length && this.data_loaded\r\n },\r\n showPromotiionsHeading: function() {\r\n return ((this.showPrograms | this.showPromos) && this.data_loaded)\r\n },\r\n showInformationHeading: function() {\r\n return ((this.specPdfs.length > 0 | this.brochurePdfs.length > 0) && this.data_loaded)\r\n },\r\n sectionTitle: function () {\r\n return this.isEquipment ? `${config.displayName} Information` : \"About This Product\";\r\n },\r\n featuresTitle: function () {\r\n return this.isEquipment ? `${this.product?.brand?.name} ${this.skuText} Features` : \"Features\";\r\n },\r\n promoOfferTitle: function () {\r\n return this.isEquipment ? `${this.product?.brand?.name} ${this.skuText} Promotions and Offers` : \"Promotions and Offers\";\r\n }\r\n\r\n },\r\n updated: function () {\r\n this.data_loaded = true\r\n },\r\n created: function () {\r\n this.initializationReadyHook(element.id);\r\n }\r\n });\r\n\r\n return vueApp.$el;\r\n}"],"names":["Mutations","Object","freeze","ProductStore","FETCH_PRODUCT","FETCH_CROSS_SELL_PRODUCTS","FETCH_SIMILAR_PRODUCTS","FETCH_PROGRAMS","FETCH_PROMOTIONS","FETCH_SPECIFICATIONS","FETCH_COMPARE_FIELDS","PRODUCT_FETCHED","Vue","Vuex","productMixin","store","state","isProductFetched","product","similarProducts","crossSellProducts","programInfo","promotionInfo","specifications","compareFields","getters","warranty","_state$product","_state$product2","parsedWarranty","StringUtils","jsonTryParse","getFromWarranty","key","customFields","_state$product3","getCustomField","_getters$customFields","customFieldValue","find","f","name","value","betterTogetherIds","crossSellProductIds","parseValueAsArray","Constants","ALGOLIA","PRODUCT","CROSS_SELL","CARROT_SEPARATOR","ArrayUtils","isNotEmpty","relatedProducts","SIMILAR_PRODUCT_IDS","programs","PROGRAM_TEXT","promoFeatures","PROMO_TEXT","actions","getProduct","_ref","data","_asyncToGenerator","_getters$relatedProdu","_state$compareFields","productService","ProductService","productId","commit","_objectSpread","model","dispatch","length","getProgramInfo","_ref2","programNames","getProgramData","getPromotionInfo","_ref3","featureNames","promotions","getPromotionData","getCrossSellProducts","_ref4","getSpecifications","_ref5","family","parseValue","FAMILY","getCompareDefinitions","_ref6","compareDefinitions","getSimilarProducts","_ref7","similarProductIds","getRelatedProducts","mutations","methods","shouldShowPrice","isBusinessCustomer","this","productDetails","computed","mapState","mapGetters","options","ProductDecorator","bulletOne","BULLET1","bulletTwo","BULLET2","bulletThree","BULLET3","bulletFour","BULLET4","bulletFive","BULLET5","shippingFulfillmentBullet","SHIPPING_FULLFILLMENT_BULLET","backorderAvailabilityBullet","BACKORDER_AVAILABILITY_BULLET","productLimitationBullet","PRODUCT_LIMITATION_BULLET","addedFeesBullet","ADDED_FEES_BULLET","youTubeVideos","YOUTUBE","vimeoVideos","VIMEO","price","_this$product","prices","description","_this$product2","productPrice","_pricingObject$price","_pricingObject$retail","_pricingObject$salePr","getEmptyProductPrice","pricingObject","getPrices","getPricing","retailPrice","salePrice","productDetailUrl","GlobalApp","generalSettings","productDetailsPageUrl","isPart","isEquipment","isNewEquipment","isUsedEquipment","skuText","getModel","getSku","widgetInitializer","WidgetInitializer","COMPONENTS","PRODUCT_ABOUT_INFO_FRAGMENT","initAboutFragment","element","config","ConfigUtils","getConfigFor","el","id","initializationReadyHook","getInitializationReadyHook","data_loaded","mixins","toPdfLinks","linksString","staticLinkText","links","split","map","link","text","url","index","cleanContent","content","replace","adDescription","AD_DESCRIPTION","featureWholegoods","FEATURE_WHOLEGOODS","specPdfs","sheetUrlsString","SPEC_SHEET_URL","brochurePdfs","brochureUrlsString","BROCHURE_URL","showPrograms","_this$programInfo","showPromos","_this$promotionInfo","productOverviewContent","filter","showProductOverviewHeading","featuresBulletsContent","showFeaturesHeading","showPromotiionsHeading","showInformationHeading","sectionTitle","concat","displayName","featuresTitle","brand","promoOfferTitle","updated","created","$el","registerInitializationHandler","initialize"],"sourceRoot":""}