{"version":3,"file":"recommendations-algolia.js?v=69cf447db30bd0da6f17","mappings":"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","sources":["webpack://RdoWeb/./ResourcePackages/Main/assets/src/scripts/widgets/recommendations-algolia.js"],"sourcesContent":["import { WidgetInitializer } from \"../functions/widget-initializer\";\r\nimport { ConfigUtils } from \"../functions/config-utils\";\r\nimport { ArrayUtils } from \"../functions/array-utils\";\r\nimport { ProductDecorator } from \"../functions/product-decorator\";\r\nimport { Constants } from \"../functions/constants\";\r\nimport { RouteUtils } from \"../functions/route-utils\";\r\nimport Product from \"../components/cards/Product\";\r\nimport ResourceAlgolia from \"../components/cards/ResourceAlgolia\";\r\nimport PageCard from \"../components/cards/PageCard\";\r\nimport { Splide, SplideSlide } from '@splidejs/vue-splide';\r\nimport algoliasearch from 'algoliasearch/lite';\r\n\r\nvar widgetInitializer = new WidgetInitializer(Constants.COMPONENTS.RECOMMENDATIONS_ALGOLIA);\r\nGlobalApp.registerInitializationHandler(Constants.COMPONENTS.RECOMMENDATIONS_ALGOLIA, function () {\r\n widgetInitializer.initialize(initRecommendationApp);\r\n});\r\n\r\nfunction initRecommendationApp(element) {\r\n const config = ConfigUtils.getConfigFor(element);\r\n const productConfig = ConfigUtils.getConfigWithId(\"CurrentProductSettings\");\r\n const algoliarecommend = require('@algolia/recommend');\r\n const recommendClient = algoliarecommend(config.appId, config.apiKey);\r\n const instantSearchClient = algoliasearch(config.appId, config.apiKey);\r\n\r\n let vueApp = new Vue({\r\n el: '#' + element.id,\r\n data() {\r\n return {\r\n initializationReadyHook: GlobalApp.getInitializationReadyHook(),\r\n recommendClient: recommendClient,\r\n instantSearchClient: instantSearchClient,\r\n title: \"\",\r\n recommendations: [],\r\n shouldGetDynamicPrices: false,\r\n isSliderMounted: false,\r\n options: Constants.SLIDERS.RECOMMENDATIONS\r\n }\r\n },\r\n components: {\r\n Product,\r\n Resource: ResourceAlgolia,\r\n Page: PageCard,\r\n Splide,\r\n SplideSlide\r\n },\r\n computed: {\r\n config: () => config,\r\n productConfig: () => productConfig,\r\n slider: function () {\r\n if (!this.isSliderMounted)\r\n return null;\r\n\r\n let slider = this.$refs.recomm_slider.splide;\r\n return slider;\r\n },\r\n sliderPageSize: function () {\r\n if (!this.slider)\r\n return null;\r\n\r\n return this.slider.options.perPage;\r\n },\r\n doesSliderHavePager: function () {\r\n if (!this.sliderPageSize)\r\n return false;\r\n\r\n if (this.recommendations.length <= this.sliderPageSize)\r\n return false;\r\n\r\n return true;\r\n },\r\n arrowsData: function () {\r\n const slider = this.slider;\r\n if (!slider)\r\n return null;\r\n\r\n const sliderPageSize = this.sliderPageSize;\r\n\r\n return {\r\n index: slider.index,\r\n length: slider.length,\r\n showPrevArrow: slider.index > 0 && slider.length > sliderPageSize,\r\n showNextArrow: (slider.length - slider.index) > sliderPageSize,\r\n prevArrowText: '+' + slider.index,\r\n nextArrowText: '+' + (slider.length - slider.index - sliderPageSize)\r\n }\r\n },\r\n currentIndex: function () {\r\n return this.productConfig?.model?.CurrentSearchIndex ?? this.config.selectedIndexName;\r\n },\r\n currentProductId: function () {\r\n return this.productConfig?.entityId ? `bc_${this.productConfig.entityId}` : null;\r\n }\r\n },\r\n methods: {\r\n getComponentType: function (item) {\r\n var type = 'page';\r\n\r\n if (item && item.customDict && item.customDict.type) {\r\n type = item.customDict.type;\r\n } else if (item && item.resourcetype) {\r\n type = 'resource'\r\n }\r\n\r\n switch (type) {\r\n case 'page': return 'product';\r\n case 'resource': return 'resource';\r\n default: return 'product';\r\n }\r\n },\r\n onSplideMounted(slider, data) {\r\n this.isSliderMounted = true;\r\n\r\n const isPaginationUpdated = this.updateSplidePagination(slider.options);\r\n if (isPaginationUpdated) {\r\n slider.options = slider.options;\r\n }\r\n\r\n document.body.classList.add(Constants.CLASS_NAMES.BODY_SLIDERS_READY_CLASS);\r\n },\r\n onSplideUpdated(slider, data) {\r\n this.updateSplidePagination(data);\r\n },\r\n updateSplidePagination(options) {\r\n if (options.pagination !== this.doesSliderHavePager) {\r\n options.pagination = this.doesSliderHavePager;\r\n return true;\r\n }\r\n\r\n return false;\r\n },\r\n goPrev: function () {\r\n this.$refs.recomm_slider.splide.go('<');\r\n },\r\n goNext: function () {\r\n this.$refs.recomm_slider.splide.go('>');\r\n },\r\n onClick: function (hit) {\r\n if (hit.pageurl)\r\n if (hit.__queryID && hit.item_type)\r\n window.location.href = `${RouteUtils.ensureNoTrailingSlash(hit.pageurl)}?aqid=${hit.__queryID}`;\r\n else\r\n window.location.href = `${RouteUtils.ensureNoTrailingSlash(hit.pageurl)}`;\r\n else if (hit.relative_url_path)\r\n window.location.href = `${RouteUtils.ensureNoTrailingSlash(hit.relative_url_path)}`;\r\n else if (hit.redirect && hit.redirectUrl)\r\n window.location.href = `${RouteUtils.ensureNoTrailingSlash(hit.redirectUrl)}`;\r\n },\r\n initializeHits(hits) {\r\n if (hits[0]?.item_type === Constants.PRODUCT.TYPES.PARTS)\r\n return this.initializeParts(hits);\r\n else if (hits[0]?.item_type)\r\n return this.initializeEquipment(hits);\r\n else if (hits[0]?.resource_type)\r\n return this.initializeResources(hits);\r\n else\r\n return this.initializePages(hits);\r\n },\r\n initializeParts(hits) {\r\n return hits.map(item => ({\r\n ...item,\r\n DocId: item.objectID,\r\n Document: {\r\n name: [item.name],\r\n url_detail: [item.pageurl],\r\n image: [item.image],\r\n brand: [item.brand_name],\r\n sku: [item.sku],\r\n cta_call_to_actionecommerce: [item.custom_fields_object['cta_call_to_action-ecommerce']],\r\n unique_id: [item.objectID],\r\n type: [Constants.PRODUCT.TYPES.PARTS],\r\n [Constants.ALGOLIA.PRODUCT.PART_SDK_PRODUCT_LINE]: [item.warranty_field_object.part_cdk_product_line]\r\n }\r\n }));\r\n },\r\n initializeEquipment(hits) {\r\n return hits.map(item => ({\r\n ...item,\r\n DocId: item.objectID,\r\n Document: {\r\n name: [item.name],\r\n url_detail: [item.pageurl],\r\n image: [item.image],\r\n brand: [item.brand_name],\r\n sku: [item.sku],\r\n stock_number: [item.sku],\r\n [Constants.ALGOLIA.PRODUCT.BULLET1]: [item.warranty_field_object.feature_bullet_1],\r\n [Constants.ALGOLIA.PRODUCT.BULLET2]: [item.warranty_field_object.feature_bullet_2],\r\n [Constants.ALGOLIA.PRODUCT.BULLET3]: [item.warranty_field_object.feature_bullet_3],\r\n cta_call_to_actionecommerce: [item.custom_fields_object['cta_call_to_action-ecommerce']],\r\n item_condition: [item.condition],\r\n unique_id: [item.objectID],\r\n type: [item.item_type]\r\n }\r\n }));\r\n },\r\n initializeResources(hits) {\r\n return hits.map(item => ({\r\n ...item,\r\n DocId: item.objectID,\r\n itemName: item.title,\r\n url: item.pageurl,\r\n resourcetype: item.resource_type,\r\n author: item.author,\r\n authorUrl: item.author_url,\r\n Document: {\r\n name: [item.title],\r\n url_detail: [item.pageurl],\r\n image: [this.getResourceThumbnailUrl(item)],\r\n summary: [item.summary],\r\n tags: item.tags\r\n }\r\n }));\r\n },\r\n initializePages(hits) {\r\n return hits.map(item => ({\r\n ...item,\r\n DocId: item.objectID,\r\n itemName: item.title,\r\n pageurl: item.relative_url_path,\r\n Document: {\r\n name: [item.title],\r\n url_detail: [item.relative_url_path],\r\n image: [this.getResourceThumbnailUrl(item)],\r\n },\r\n }));\r\n },\r\n getResourceThumbnailUrl(resource) {\r\n let thumbnailUrl = Constants.IMAGES.DEFAULT_THUMBNAIL_STATIC_URL;\r\n\r\n if (resource.image) {\r\n thumbnailUrl = resource.image;\r\n }\r\n else if (resource.youtube_object?.Thumbnail) {\r\n thumbnailUrl = resource.youtube_object.Thumbnail;\r\n }\r\n else if (resource.youtube_object?.thumbnails?.length) {\r\n thumbnailUrl = resource.youtube_object.thumbnails[0].url;\r\n }\r\n\r\n return thumbnailUrl;\r\n },\r\n async getRecommendations() {\r\n if (this.config.selectedDataSource === Constants.ALGOLIA.RECOMMENDATIONS.DATA_SOURCE.RECOMMENDATIONS) {\r\n const payload = {\r\n \"indexName\": this.currentIndex,\r\n \"model\": this.config.selectedModel,\r\n \"threshold\": 10,\r\n \"maxRecommendations\": this.config.maxResults\r\n };\r\n\r\n if (this.currentProductId)\r\n payload.objectID = this.currentProductId;\r\n\r\n var recs = this.recommendClient.getRecommendations([payload]).then(({ results }) => {\r\n if (results && results[0].hits?.length)\r\n return results[0].hits;\r\n else\r\n return null;\r\n }).catch(err => {\r\n console.warn(Constants.ERROR_MESSAGES.SOMETHING_WENT_WRONG, err);\r\n return Promise.reject(err);\r\n });\r\n\r\n return recs;\r\n } else if (this.config.selectedDataSource === Constants.ALGOLIA.RECOMMENDATIONS.DATA_SOURCE.INSTANT_SEARCH) {\r\n\r\n const index = this.instantSearchClient.initIndex(this.config.selectedIndexName);\r\n\r\n const searchOptions = {\r\n hitsPerPage: this.config.maxResults,\r\n ruleContexts: this.config.ruleContext,\r\n filters: this.config.advancedFilter\r\n };\r\n\r\n var recs = index.search('', searchOptions).then(({ hits }) => {\r\n if (hits && hits.length)\r\n return hits;\r\n else\r\n return null;\r\n\r\n }).catch(err => {\r\n console.warn(Constants.ERROR_MESSAGES.SOMETHING_WENT_WRONG, err);\r\n return Promise.reject(err);\r\n });\r\n\r\n return recs;\r\n } else {\r\n return null;\r\n }\r\n\r\n },\r\n async init() {\r\n this.shouldGetDynamicPrices = await GlobalApp.CustomerService.shouldGetDynamicPrices();\r\n var results = await this.getRecommendations();\r\n\r\n if (results && results.length > 0) {\r\n var initializedRecommendations = this.initializeHits(results);\r\n\r\n if (ArrayUtils.isNotEmpty(initializedRecommendations)) {\r\n var anyItemIsPart = false;\r\n var anyItemHasPricing = false;\r\n\r\n for (var i = 0; i < initializedRecommendations.length; i++) {\r\n var recommendation = initializedRecommendations[i];\r\n recommendation.productDetails = new ProductDecorator(recommendation);\r\n recommendation.IsPriceReloading = recommendation.productDetails.isPart() || recommendation.productDetails.isEquipment();\r\n\r\n if (!anyItemIsPart)\r\n anyItemIsPart = recommendation.productDetails.isPart();\r\n\r\n if (!anyItemHasPricing)\r\n anyItemHasPricing = recommendation.productDetails.isEquipment() || recommendation.productDetails.isPart();\r\n\r\n }\r\n\r\n if (anyItemIsPart && this.shouldGetDynamicPrices)\r\n GlobalApp.ProductService.populateDynamicPrices(initializedRecommendations, true);\r\n else if (anyItemHasPricing) {\r\n GlobalApp.ProductService.populateProductPrices(initializedRecommendations, true);\r\n }\r\n\r\n }\r\n\r\n this.recommendations = initializedRecommendations;\r\n }\r\n }\r\n },\r\n async created() {\r\n await this.init();\r\n this.initializationReadyHook(element.id);\r\n document.lazyLoadAssetCover.update();\r\n },\r\n });\r\n\r\n return vueApp.$el;\r\n}"],"names":["widgetInitializer","WidgetInitializer","Constants","COMPONENTS","RECOMMENDATIONS_ALGOLIA","initRecommendationApp","element","config","ConfigUtils","getConfigFor","productConfig","getConfigWithId","recommendClient","require","algoliarecommend","appId","apiKey","instantSearchClient","algoliasearch","Vue","el","id","data","initializationReadyHook","GlobalApp","getInitializationReadyHook","title","recommendations","shouldGetDynamicPrices","isSliderMounted","options","SLIDERS","RECOMMENDATIONS","components","Product","Resource","ResourceAlgolia","Page","PageCard","Splide","SplideSlide","computed","slider","this","$refs","recomm_slider","splide","sliderPageSize","perPage","doesSliderHavePager","length","arrowsData","index","showPrevArrow","showNextArrow","prevArrowText","nextArrowText","currentIndex","_this$productConfig$m","_this$productConfig","model","CurrentSearchIndex","selectedIndexName","currentProductId","_this$productConfig2","entityId","concat","methods","getComponentType","item","type","customDict","resourcetype","onSplideMounted","updateSplidePagination","document","body","classList","add","CLASS_NAMES","BODY_SLIDERS_READY_CLASS","onSplideUpdated","pagination","goPrev","go","goNext","onClick","hit","pageurl","__queryID","item_type","window","location","href","RouteUtils","ensureNoTrailingSlash","relative_url_path","redirect","redirectUrl","initializeHits","hits","_hits$","_hits$2","_hits$3","PRODUCT","TYPES","PARTS","initializeParts","initializeEquipment","resource_type","initializeResources","initializePages","map","_objectSpread","DocId","objectID","Document","name","url_detail","image","brand","brand_name","sku","cta_call_to_actionecommerce","custom_fields_object","unique_id","ALGOLIA","PART_SDK_PRODUCT_LINE","warranty_field_object","part_cdk_product_line","stock_number","BULLET1","feature_bullet_1","BULLET2","feature_bullet_2","BULLET3","feature_bullet_3","item_condition","condition","itemName","url","author","authorUrl","author_url","getResourceThumbnailUrl","summary","tags","resource","_resource$youtube_obj","_resource$youtube_obj2","thumbnailUrl","IMAGES","DEFAULT_THUMBNAIL_STATIC_URL","youtube_object","Thumbnail","thumbnails","getRecommendations","_this","_asyncToGenerator","selectedDataSource","DATA_SOURCE","payload","selectedModel","maxResults","then","_ref","_results$0$hits","results","catch","err","console","warn","ERROR_MESSAGES","SOMETHING_WENT_WRONG","Promise","reject","INSTANT_SEARCH","initIndex","searchOptions","hitsPerPage","ruleContexts","ruleContext","filters","advancedFilter","search","_ref2","init","_this2","CustomerService","initializedRecommendations","ArrayUtils","isNotEmpty","anyItemIsPart","anyItemHasPricing","i","recommendation","productDetails","ProductDecorator","IsPriceReloading","isPart","isEquipment","ProductService","populateDynamicPrices","populateProductPrices","created","_this3","lazyLoadAssetCover","update","$el","registerInitializationHandler","initialize"],"sourceRoot":""}