https://www.bundabergrum.com.au/cdn/shop/t/31/assets/m-diageo-anal…?v=156067857522148103231788174050
1class DiageoAnalyticsEvent extends HTMLElement{constructor(){super(),this.eventName=this.dataset.eventName,this.root=this.closest(".shopify-section")||this,this.root.closest("#header-group")&&(this.root=document.body)}connectedCallback(){switch(this.eventName){case"view_item_list":case"video":case"form":case"content_interaction":this.setupHandler[this.eventName]();break;default:console.warn("Unknown diageo analytics event: ",this.eventName);break}}setupHandler={view_item_list:()=>{this.observer=null,this.sectionName=this.dataset.sectionName;const parsedThreshold=Number(this.dataset.scrollThreshold);this.scrollThreshold=Number.isNaN(parsedThreshold)?.5:parsedThreshold,this.viewed=!1,this.itemSelector=this.dataset.itemSelector,this.setupViewItemListTracking()},video:()=>{this.setupVideoTracking()},form:()=>{this.formSelector=this.dataset.formSelector,this.formType=this.dataset.formType;try{this.isNewsletter=JSON.parse(this.dataset.isNewsletter||"false")}catch{this.isNewsletter=!1}this.formStarted=!1,this.setupFormTracking()},content_interaction:()=>{this.contentSelector=this.dataset.contentSelector,this.listenerType=this.dataset.listenerType,this.journeyType=this.dataset.journeyType,this.interactionType=this.dataset.interactionType,this.interactionName=this.dataset.interactionName,this.setupContentInteractionTracking()}};setupViewItemListTracking(){if(this.viewed)return;this.viewed=!0,this.observer=new IntersectionObserver((entries,observer)=>{for(const entry of entries)if(entry.isIntersecting&&entry.intersectionRatio>=(this.scrollThreshold||.5)){const payload_vil=this.removeNulls(this.parsePayload());if(!payload_vil||!Array.isArray(payload_vil.items)||payload_vil.items.length===0)continue;window.dataLayerPush({event:"view_item_list",data:{timestamp:new Date().toISOString(),data:{sectionName:this.sectionName,id:this.root.id,payload:payload_vil}}}),observer.disconnect();break}},{threshold:this.scrollThreshold}),this.observer.observe(this);const payload=this.removeNulls(this.parsePayload());!this.itemSelector||!payload?.items||this.root.querySelectorAll(this.itemSelector).forEach(item=>{item.addEventListener("click",()=>{const id=item.dataset.productId,selectedItem=payload.items.find(i=>i.id==id);selectedItem&&window.dataLayerPush({event:"select_item",data:{timestamp:new Date().toISOString(),data:{payload:{currency:payload.currency,value:selectedItem.price,item:{...selectedItem}}}}})})})}setupVideoTracking(){const startVideoTracking=(video,type)=>{const details={title:type=="iframe"?video?.getAttribute("title"):video?.getAttribute("aria-label"),src:type=="iframe"?video?.getAttribute("src"):video?.querySelector("source")?.getAttribute("src")};return details.src?.startsWith("//")&&(details.src="https:"+details.src),window.dataLayerPush({event:"video_start",data:{timestamp:Date.now(),data:{videoTitle:details.title,videoSrc:details.src}}}),details},setupVideoProgressTracking=(video,details)=>{if(!video)return;const videoProgressFired={"25%":!1,"50%":!1,"75%":!1};video.addEventListener("timeupdate",()=>{const percent=video.currentTime/video.duration*100;!videoProgressFired["25%"]&&percent>=25&&(videoProgressFired["25%"]=!0,window.dataLayerPush({event:"video_progress",data:{timestamp:Date.now(),data:{videoTitle:details.title,videoSrc:details.src,progress:25}}})),!videoProgressFired["50%"]&&percent>=50&&(videoProgressFired["50%"]=!0,window.dataLayerPush({event:"video_progress",data:{timestamp:Date.now(),data:{videoTitle:details.title,videoSrc:details.src,progress:50}}})),!videoProgressFired["75%"]&&percent>=75&&(videoProgressFired["75%"]=!0,window.dataLayerPush({event:"video_progress",data:{timestamp:Date.now(),data:{videoTitle:details.title,videoSrc:details.src,progress:75}}}))}),video.addEventListener("ended",()=>{window.dataLayerPush({event:"video_complete",data:{timestamp:Date.now(),data:{videoTitle:details.title,videoSrc:details.src,progress:100}}})})};this.root.querySelectorAll("video").forEach(video=>{video.addEventListener("play",()=>{const details=startVideoTracking.call(this,video);setupVideoProgressTracking.call(this,video,details)})}),customElements.whenDefined("deferred-media").then(()=>{customElements.get("deferred-media")&&this.root.querySelectorAll("deferred-media").forEach(deferredMedia=>{const originalLoadContent=deferredMedia.loadContent.bind(deferredMedia),originalPlayMedia=deferredMedia.playMedia.bind(deferredMedia);deferredMedia.loadContent=()=>{originalLoadContent();const iframe=deferredMedia.querySelector("iframe"),video=deferredMedia.querySelector("video");if(!iframe?.src?.includes("youtube.com")){const details=startVideoTracking.call(this,iframe||video,iframe?"iframe":"");setupVideoProgressTracking.call(this,video,details)}},deferredMedia.playMedia=()=>{originalPlayMedia();const iframe=deferredMedia.querySelector("iframe"),video=deferredMedia.querySelector("video");if(!iframe?.src?.includes("youtube.com")){const details=startVideoTracking.call(this,iframe||video,iframe?"iframe":"");setupVideoProgressTracking.call(this,video,details)}}})})}async setupFormTracking(){if(!this.formSelector)return;let form=this.root.querySelector(this.formSelector);const handleFormEvents=()=>{form&&(form.querySelectorAll("input, textarea, select").forEach(input=>{const handleInputTracking=()=>{this.formStarted||(this.formStarted=!0,window.dataLayerPush({event:"form_start",data:{timestamp:new Date().toISOString(),data:{...this.isNewsletter?{formType:"Newsletter"}:{formType:this.formType}}}}))};input.addEventListener("focus",handleInputTracking),input.addEventListener("input",handleInputTracking),input.addEventListener("change",handleInputTracking),input.addEventListener("click",handleInputTracking)}),form.addEventListener("submit",()=>{const formStatus=form.querySelector('[role="alert"]')?"Failed":"Success";window.dataLayerPush({event:this.isNewsletter?"newsletter_signup":"form_submit",data:{timestamp:new Date().toISOString(),data:{...this.isNewsletter?{formType:"Newsletter"}:{formType:this.formType},status:formStatus,...this.isNewsletter?{newsletterOptinType:"Standard"}:{}}}})}))};if(this.formSelector=="shopify-forms-embed"){let formEmbed=this.root.querySelector("shopify-forms-embed");formEmbed?.shadowRoot||await new Promise(resolve=>{const interval=setInterval(()=>{formEmbed=this.root.querySelector("shopify-forms-embed"),formEmbed?.shadowRoot&&(clearInterval(interval),resolve())},50)}),form=formEmbed?.shadowRoot?.querySelector("form")??null}handleFormEvents()}setupContentInteractionTracking(){this.contentSelector&&this.listenerType&&this.root.querySelectorAll(this.contentSelector).forEach(content=>{content.addEventListener(this.listenerType,()=>{window.dataLayerPush({event:"content_interaction",data:{timestamp:new Date().toISOString(),data:{journeyType:this.journeyType,interactionType:this.interactionType,interactionName:this.interactionName}}})})})}
1removeNulls(obj){return Array.isArray(obj)?(obj.forEach(item=>this.removeNulls(item)),obj):(obj&&typeof obj=="object"&&Object.keys(obj).forEach(key=>{obj[key]===null?delete obj[key]:this.removeNulls(obj[key])}),obj)}parsePayload(){const jsonNode=this.querySelector('script[type="application/json"]');if(!jsonNode)return;const textContent=(jsonNode.textContent||"").trim();if(textContent)try{return JSON.parse(textContent)}catch(error){console.warn(error);return}}}customElements.define("diageo-analytics-event",DiageoAnalyticsEvent); 2//# sourceMappingURL=/cdn/shop/t/31/assets/m-diageo-analytics-event.js.map?v=156067857522148103231788174050
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.