1(function(){"use strict";async function sha256(str){const data=new TextEncoder().encode(str),hashBuffer=await crypto.subtle.digest("SHA-256",data);return Array.from(new Uint8Array(hashBuffer)).map(function(b){return b.toString(16).padStart(2,"0")}).join("")}function normalize(str){return str?str.toLowerCase().replace(/\s+/g,"_"):null}function generateEventId(){return Date.now()+"."+Math.random().toString(36).slice(2,12)}function parseCategories(value){if(!value)return[];try{return typeof value=="string"?JSON.parse(value):Array.isArray(value)?value:[]}catch{return[]}}function centsToFloat(cents){return(cents||0)/100}function pushEvent(name,data){window.dataLayer=window.dataLayer||[];var payload={event:name};for(var k in data)Object.prototype.hasOwnProperty.call(data,k)&&(payload[k]=data[k]);window.dataLayer.push(payload)}function pushEcommerce(){window.dataLayer=window.dataLayer||[],window.dataLayer.push({ecommerce:null})}function getStr(v){return typeof v=="string"&&v.trim()?v.toLowerCase():null}async function hashCustomer(customer){for(var raw={id:getStr(customer.id?String(customer.id):null),email:getStr(customer.email),phone_number:getStr(customer.phone),first_name:getStr(customer.first_name),last_name:getStr(customer.last_name),city:getStr(customer.default_address&&customer.default_address.city),zip_code:getStr(customer.default_address&&customer.default_address.zip),country:getStr(customer.default_address&&customer.default_address.country_code)},result={},keys=Object.keys(raw),i=0;i<keys.length;i++){var key=keys[i];raw[key]!==null&&(result[key]=await sha256(raw[key]))}return result}async function pushWSetup(overrides){var pageData=Object.assign({},window.goovi&&window.goovi.pageData,overrides);if(pageData.page_type){var eventData={ss_event_id:generateEventId(),country:pageData.country,language:pageData.language,environment:"production",page_type:pageData.page_type,cart_total_items:pageData.cart_total_items||0,cart_total_price:pageData.cart_total_price||0,currency:pageData.currency||"EUR"};pageData.first_level_category&&(eventData.first_level_category=normalize(pageData.first_level_category)||void 0);var customer=window.goovi&&window.goovi.customer;if(customer)try{var hash=await hashCustomer(customer);hash.id&&(eventData.userID=hash.id),hash.email&&(eventData.email=hash.email),hash.phone_number&&(eventData.phone_number=hash.phone_number);var hashNoId={};for(var k in hash)k!=="id"&&Object.prototype.hasOwnProperty.call(hash,k)&&(hashNoId[k]=hash[k]);eventData.user_info=hashNoId}catch{}pushEvent("wSetup",eventData)}}function pushViewItem(){var data=window.goovi&&window.goovi.productData;if(data){var categories=parseCategories(data.category_attributes),price=parseFloat(data.price)||0,cap=parseFloat(data.compare_at_price)||0,discount=cap>price?parseFloat((cap-price).toFixed(2)):0;pushEcommerce(),pushEvent("view_item",{ecommerce:{currency:window.goovi.pageData&&window.goovi.pageData.currency||"EUR",items:[{item_name:normalize(data.title),item_id:data.sku||"",price,discount,item_category:normalize(categories[0]),item_main_category:normalize(categories[1]),quantity:1,coupon:"no_coupon"}]}})}}function pushViewItemList(){var products=window.goovi&&window.goovi.collectionProducts;if(!(!products||!products.length)){var currency=window.goovi.pageData&&window.goovi.pageData.currency||"EUR",items=products.map(function(product,index){var categories=parseCategories(product.category_attributes),price=parseFloat(product.price)||0,cap=parseFloat(product.compare_at_price)||0,discount=cap>price?parseFloat((cap-price).toFixed(2)):0;return{item_name:normalize(product.title),item_id:product.sku||"",price,discount,item_category:normalize(categories[0]),item_main_category:normalize(categories[1]),index,quantity:1,coupon:"no_coupon"}});pushEcommerce(),pushEvent("view_item_list",{ecommerce:{currency,items}})}}function pushViewCart(cartData){var data=cartData||window.goovi&&window.goovi.cartData;if(data){var currency=data.currency||window.goovi.pageData&&window.goovi.pageData.currency||"EUR",value=centsToFloat(data.total_price),items=(data.items||[]).map(function(item){var categories=parseCategories(item.category_attributes),price=ce
1ntsToFloat(item.price),cap=centsToFloat(item.compare_at_price),discount=cap>price?parseFloat((cap-price).toFixed(2)):0;return{item_name:normalize(item.product_title||item.title),item_id:item.sku||"",price,discount,item_category:normalize(categories[0]),item_main_category:normalize(categories[1])}});pushEcommerce(),pushEvent("view_cart",{ecommerce:{currency,value,items}})}}function pushAddToCart(item,cart){if(item){var catRaw=item.category_attributes||window.goovi&&window.goovi.productData&&window.goovi.productData.category_attributes||null,categories=parseCategories(catRaw),price=centsToFloat(item.price),cap=centsToFloat(item.compare_at_price),discount=cap>price?parseFloat((cap-price).toFixed(2)):0,currency=cart&&cart.currency||window.goovi&&window.goovi.pageData&&window.goovi.pageData.currency||"EUR";pushEcommerce(),pushEvent("add_to_cart",{ecommerce:{currency,value:cart?centsToFloat(cart.total_price):price,items:[{item_name:normalize(item.title),item_id:item.sku||"",price,discount,item_category:normalize(categories[0]),item_main_category:normalize(categories[1]),quantity:item.quantity||1,coupon:"no_coupon"}]}}),document.body.classList.contains("template-cart")&&cart&&pushViewCart(cart)}}function pushRemoveFromCart(item,cart){if(item){var categories=parseCategories(item.category_attributes),price=centsToFloat(item.price),cap=centsToFloat(item.compare_at_price),discount=cap>price?parseFloat((cap-price).toFixed(2)):0,currency=cart&&cart.currency||window.goovi&&window.goovi.pageData&&window.goovi.pageData.currency||"EUR";pushEcommerce(),pushEvent("remove_from_cart",{ecommerce:{currency,value:cart?centsToFloat(cart.total_price):0,items:[{item_name:normalize(item.title),item_id:item.sku||"",price,discount,item_category:normalize(categories[0]),item_main_category:normalize(categories[1]),quantity:item.quantity||1,coupon:"no_coupon"}]}}),document.body.classList.contains("template-cart")&&cart&&pushViewCart(cart)}}function pushAddToWishlist(btn){if(btn){var title=btn.dataset.productTitle||"",sku=btn.dataset.productSku||"",price=parseFloat(btn.dataset.productPrice)||0,cap=parseFloat(btn.dataset.compareAtPrice)||0,catRaw=btn.dataset.categoryAttributes||null,categories=parseCategories(catRaw),discount=cap>price?parseFloat((cap-price).toFixed(2)):0,currency=window.goovi&&window.goovi.pageData&&window.goovi.pageData.currency||"EUR";pushEcommerce(),pushEvent("add_to_wishlist",{ecommerce:{currency,value:price,items:[{item_name:normalize(title),item_id:sku,price,discount,item_category:normalize(categories[0]),item_main_category:normalize(categories[1]),index:0,quantity:1,coupon:"no_coupon"}]}})}}function pushRemoveFromWishlist(btn){btn&&(pushEcommerce(),pushEvent("GA4event",{eventName:"remove_from_wishlist",product:normalize(btn.dataset.productTitle||""),position:null}))}function pushSearchBar(searchTerm,type){pushEvent("GA4event",{eventName:"search_bar",searchTerm,type})}function setupInteractionListeners(){document.addEventListener("click",function(e){var card=e.target.closest("[data-analytics-product-card]");if(card){var categories=parseCategories(card.dataset.categoryAttributes||null),price=parseFloat(card.dataset.price)||0,cap=parseFloat(card.dataset.compareAtPrice)||0,discount=cap>price?parseFloat((cap-price).toFixed(2)):0,currency=window.goovi&&window.goovi.pageData&&window.goovi.pageData.currency||"EUR";pushEcommerce(),pushEvent("select_item",{ecommerce:{currency,items:[{item_name:normalize(card.dataset.productTitle||""),item_id:card.dataset.sku||"",price,discount,item_category:normalize(categories[0]),item_main_category:normalize(categories[1]),quantity:1,coupon:"no_coupon"}]}})}}),document.addEventListener("click",function(e){e.target.closest("[data-jkl-cart-open]")&&pushEvent("GA4event",{eventName:"mini_cart",label:"view_cart"})}),document.addEventListener("click",function(e){var link=e.target.closest("[data-analytics-social]");link&&pushEvent("GA4event",{eventName:"social",label:normalize(link.dataset.analyticsLabel||link.getAttribute("aria-label")||""),position:link.dataset.analyticsPosition||"footer"})}),document.addEventListener("click",function(e){var link=e.target.closest("[data-analytics-footer]");link&&pushEvent("GA4event",{eventName:"footer",label:normalize(link.dataset.analyticsLabel||link.textContent.trim()),type:normalize(link.dataset.analyticsType||"link")})}),document.addEventListener("click",function(e){var link=e.target.closest("[data-analytics-header]");link&&pushEvent("GA4event",{eventName:"header",position:link.dataset.analyticsPosition||"",label:link.dataset.analyticsLabel||link.textContent.trim()})}),document.addEventListener("click",function(e){var link=e.target.closest("[data-analytics-menu]");link&&pushEvent("GA4event",{eventName:"menu",position:link.dataset.analyticsPosition||"",label:normalize(link.dataset.analyticsLabel||link.textContent.trim())})}),document.addEventListener("click",function(e){var link=e.target.closest("[data-analytics-filter]");link&&pushEvent("GA4event",{eventName:"add_listing_filter",action:link.dataset.analyticsAction||"select",label:link.dataset.analyticsLabel||normalize(link.textContent.trim())})}),document.addEventListener("click",function(e){var link=e.target.closest("[data-analytics-sort]");link&&pushEvent("GA4event",{eventName:"listing_sorting_by",label:normalize(link.dataset.analyticsLabel||link.textContent.trim())})}),document.addEventListener("submit",function(e){var form=e.target;if(!(!form.matches('form[action*="/search"]')&&!form.classList.contains("store-search-form"))){var input=form.querySelector('input[name="q"]');input&&input.value.trim()&&pushSearchBar(input.value.trim(),"search_frequent")}})}async function onPageReady(){var goovi=window.goovi||{},pageData=goovi.pageData||{},pageType=pageData.page_type||"other";if(setupInteractionListeners(),pageType==="product"){await pushWSetup({first_level_category:goovi.productData&&goovi.productData.product_title}),pushViewItem();return}if(pageType==="collection"){await pushWSetup(),pushViewItemList();return}if(pageType==="cart"){await pushWSetup(),goovi.cartData&&pushViewCart();return}if(pageType==="search"){await pushWSetup();var q=new URLSearchParams(window.location.search).get("q")||"";q&&pushSearchBar(q,"search_listing");return}await pushWSetup()}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",onPageReady):onPageReady(),window.gooviAnalytics={pushEvent,pushEcommerce,pushWSetup,pushViewCart,pushAddToCart,pushRemoveFromCart,pushAddToWishlist,pushRemoveFromWishlist,pushSearchBar,normalize,parseCategories,sha256}})(); 2//# sourceMappingURL=/cdn/shop/t/6/assets/goovi-analytics.js.map?v=107535192271541097531778594135
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.