(function(){let ANALYTICS_KEY="boostPFSAnalytics";var SESSION_KEY="boostPFSSessionId",CLICKED_PRODUCT_KEY="boostPFSClickedProduct",CART_TOKEN="",SESSION="",VIEWED_PRODUCT_DATA=null,boostPFSRequestIds="boostPFSRequestIds",AnalyticsEnum={UserAction:{VIEW_PRODUCT:"view_product",QUICK_VIEW:"quick_view",ADD_TO_CART:"add_to_cart",BUY_NOW:"buy_now"},Action:{FILTER:"filter",SEARCH:"search",SUGGEST:"suggest"}};Analytics.initInstantSearch=function(){Settings.getSettingValue("search.enableSuggestion")&&jQ("."+Class.searchSuggestionWrapper).length>0&&jQ("."+Class.searchSuggestionWrapper).each((index,suggestionElement)=>{suggestionElement.addEventListener("click",Analytics.onClickProductInSuggestion,!0),document.addEventListener("keydown",Analytics.onClickProductInSuggestion,!0)})},Analytics.initCollectionSearchPage=function(){Selector.trackingProduct&&jQ(Selector.products).length>0&&document.addEventListener("click",Analytics.onClickProductInFilterResult,!0)},Analytics.initOtherPage=function(){let dataList=Analytics.getLocalStorage(ANALYTICS_KEY);Array.isArray(dataList)&&(dataList.forEach(data=>{Analytics.sendProductClickData(data),data.pid==boostPFSAppConfig.general.product_id&&(VIEWED_PRODUCT_DATA=data)}),Utils.isProductPage()&&(Selector.trackingAddToCart&&jQ(Selector.trackingAddToCart).length>0&&document.addEventListener("click",Analytics.onClickAddToCartInProductPage,!0),Selector.trackingBuyNow&&jQ(Selector.trackingBuyNow).length>0&&document.addEventListener("click",Analytics.onClickBuyNowInProductPage,!0)),document.addEventListener("click",Analytics.detectClickFromRecommendation,!0))},Analytics.refreshCartToken=function(dataToRetry){let xhr=new XMLHttpRequest;xhr.open("GET","/cart.js"),xhr.onload=function(){if(xhr.readyState>3&&xhr.status==200){let cart=JSON.parse(xhr.responseText);var cartToken=cart.item_count<=0?"":cart.token;CART_TOKEN=cartToken,dataToRetry&&(dataToRetry.ct=cartToken,Analytics.sendProductClickData(dataToRetry,!0))}},xhr.send()},Analytics.generateUUID=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(c){let r=Math.random()*16|0;var v=c=="x"?r:r&3|8;return v.toString(16)})},Analytics.onClickProductInFilterResult=function(event){if(!event||!event.target)return;var $clickedElement=jQ(event.target),action=Utils.isSearchPage()?AnalyticsEnum.Action.SEARCH:AnalyticsEnum.Action.FILTER,userAction=AnalyticsEnum.UserAction.VIEW_PRODUCT;Selector.trackingQuickView&&$clickedElement.closest(Selector.trackingQuickView).length>0&&(userAction=AnalyticsEnum.UserAction.QUICK_VIEW),Selector.trackingAddToCart&&$clickedElement.closest(Selector.trackingAddToCart).length>0&&(userAction=AnalyticsEnum.UserAction.ADD_TO_CART),Selector.trackingBuyNow&&$clickedElement.closest(Selector.trackingBuyNow).length>0&&(userAction=AnalyticsEnum.UserAction.BUY_NOW);let productId="";var $productElement=$clickedElement.closest(Selector.trackingProduct);if($productElement.length>0?productId=$productElement.attr("data-id"):VIEWED_PRODUCT_DATA&&(userAction==AnalyticsEnum.UserAction.ADD_TO_CART||userAction==AnalyticsEnum.UserAction.BUY_NOW)&&(productId=VIEWED_PRODUCT_DATA.pid),!!productId){var data=Analytics.buildProductClickData(productId,userAction,action);Analytics.addProductClickData(data),Analytics.sendProductClickData(data),userAction==AnalyticsEnum.UserAction.QUICK_VIEW?VIEWED_PRODUCT_DATA=data:VIEWED_PRODUCT_DATA=null}},Analytics.onClickProductInSuggestion=function(event){if(!(!event||!event.target)&&!(event.type=="keydown"&&event.keyCode!=13)){var $clickedElement=jQ(event.target),$productElement=$clickedElement.closest("."+Class.searchSuggestionItem+"-product");if($productElement){var productId=$productElement.attr("data-id");if(productId){var data=Analytics.buildProductClickData(productId,AnalyticsEnum.UserAction.VIEW_PRODUCT,AnalyticsEnum.Action.SUGGEST);Analytics.addProductClickData(data)}}}},Analytics.onClickAddToCartInProductPage=function(event){if(event&&event.target&&jQ(event.target).closest(Selector.trackingAddToCart).length>0){let data={tid:Globals.shopDomain,pid:boostPFSAppConfig.general.product_id.toString(),u:AnalyticsEnum.UserAction.ADD_TO_CART,ct:CART_TOKEN};var productClickedData=Analytics.getLocalStorage(CLICKED_PRODUCT_KEY);productClickedData[boostPFSAppConfig.general.product_id]&&(data=productClickedData[boostPFSAppConfig.general.product_id],data.u=AnalyticsEnum.UserAction.ADD_TO_CART,Analytics.addProductClickData(data),Analytics.sendProductClickData(data))}},Analytics.onClickBuyNowInProductPage=function(event){if(event&&event.target&&jQ(event.target).closest(Selector.trackingBuyNow).length>0){let data={tid:Globals.shopDomain,pid:boostPFSAppConfig.general.product_id.toString(),u:AnalyticsEnum.UserAction.BUY_NOW,ct:CART_TOKEN};var productClickedData=Analytics.getLocalStorage(CLICKED_PRODUCT_KEY);productClickedData[boostPFSAppConfig.general.product_id]&&(data=productClickedData[boostPFSAppConfig.general.product_id],data.u=AnalyticsEnum.UserAction.BUY_NOW,Analytics.addProductClickData(data),Analytics.sendProductClickData(data))}},Analytics.buildProductClickData=(productId,userAction,action)=>{let currentTime=new Date;var cartToken=CART_TOKEN,mergeUserAction=userAction==AnalyticsEnum.UserAction.QUICK_VIEW?AnalyticsEnum.UserAction.VIEW_PRODUCT:userAction,queryString="";if(action==AnalyticsEnum.Action.FILTER?queryString+="collection_scope="+Globals.collectionId:queryString+="q="+Globals.currentTerm,action==AnalyticsEnum.Action.FILTER||action==AnalyticsEnum.Action.SEARCH){let filteredKeys=Object.keys(Globals.queryParams).filter(key=>key.startsWith(Globals.prefix));filteredKeys&&filteredKeys.length>0&&filteredKeys.forEach(key=>{let values=Globals.queryParams[key];Array.isArray(values)?values.forEach(value=>{queryString+="&"+key+"="+encodeURIComponent(value)}):queryString+="&"+key+"="+encodeURIComponent(values)})}let requestIds=Analytics.getLocalStorage(boostPFSRequestIds);var data={tid:Globals.shopDomain,ct:cartToken,pid:productId,t:currentTime.toISOString(),u:mergeUserAction,a:action,qs:queryString,r:document.referrer,rid:requestIds[action]?.rid};let preValue=Analytics.getLocalStorage(CLICKED_PRODUCT_KEY)||{};return Analytics.setLocalStorage(CLICKED_PRODUCT_KEY,{[productId]:{...data},...preValue}),data},Analytics.detectClickFromRecommendation=function(event){if(!(!event||!event.target)){var $clickedElement=jQ(event.target),productItemV3=$clickedElement.closest(".boost-sd__product-item");if(productItemV3.length>0){let productId=productItemV3[0].id;var variantId=productItemV3[0]["data-product-id"];productId&&Analytics.removeProductIdClickedProductItemInRecommendation(productId),variantId&&Analytics.removeProductIdClickedProductItemInRecommendation(variantId)}}},Analytics.removeProductIdClickedProductItemInRecommendation=function(productId){let preValue=Analytics.getLocalStorage(CLICKED_PRODUCT_KEY)||{};delete preValue[productId],Analytics.setLocalStorage(CLICKED_PRODUCT_KEY,{...preValue})},Analytics.addProductClickData=function(data){let dataList=Analytics.getLocalStorage(ANALYTICS_KEY);Array.isArray(dataList)||(dataList=[]);var newDataList=dataList.filter(x=>x.pid!=data.productId);newDataList.push(data),Analytics.setLocalStorage(ANALYTICS_KEY,newDataList)},Analytics.removeProductClickData=function(productId){let dataList=Analytics.getLocalStorage(ANALYTICS_KEY);if(Array.isArray(dataList)){var newDataList=dataList.filter(x=>x.pid!=productId);Analytics.setLocalStorage(ANALYTICS_KEY,newDataList)}},Analytics.getLocalStorage=function(key){try{return JSON.parse(localStorage.getItem(key))}catch{return null}},Analytics.setLocalStorage=function(key,value){try{value!=null?localStorage.setItem(key,JSON.stringify(value)):localStorage.setItem(key,"")}catch{}},Analytics.sendProductClickData=function(data,triedToGetToken){if(!triedToGetToken&&!data.ct){setTimeout(function(){Analytics.refreshCartToken(data)},1e3);return}data.sid=SESSION;var xhr=new XMLHttpRequest;xhr.open("POST",Api.getApiUrl("analytics")),xhr.setRequestHeader("Content-Type","application/json;charset=UTF-8"),xhr.onload=function(){xhr.readyState>3&&xhr.status==200&&Analytics.removeProductClickData(data.pid)},xhr.send(JSON.stringify(data))},Analytics.getSessionId=function(){return SESSION||(SESSION=Analytics.getLocalStorage(SESSION_KEY),SESSION||(SESSION=Analytics.generateUUID(),Analytics.setLocalStorage(SESSION_KEY,SESSION)),SESSION)},(Utils.isSearchPage()||Utils.isSearchPage())&&!Utils.isProductPage()&&(FilterApi.afterCall=function(result,eventType,eventInfo){let key=AnalyticsEnum.Action.FILTER;Utils.isSearchPage()&&(key=AnalyticsEnum.Action.SEARCH);let preValue=Analytics.getLocalStorage(boostPFSRequestIds)||{};Analytics.setLocalStorage(boostPFSRequestIds,{...preValue,[key]:{rid:result?.meta?.rid,data:result}})}),InstantSearchApi.afterCall=function(result){let preValue=Analytics.getLocalStorage(boostPFSRequestIds)||{};Analytics.setLocalStorage(boostPFSRequestIds,{...preValue,[AnalyticsEnum.Action.SUGGEST]:{rid:result?.meta?.rid,data:result}})},Analytics.init=function(){window.XMLHttpRequest&&(CART_TOKEN="",SESSION=Analytics.getLocalStorage(SESSION_KEY),SESSION||(SESSION=Analytics.generateUUID(),Analytics.setLocalStorage(SESSION_KEY,SESSION)),Analytics.initInstantSearch(),Analytics.initCollectionSearchPage(),Analytics.initOtherPage())},window.Analytics=Analytics})(),Analytics.init(); //# sourceMappingURL=/cdn/shop/t/388/assets/boost-pfs-analytics-custom.js.map?v=175703700746435265481723653115