1if(!customElements.get("promo-message")){let activePromoInstance=null,globalListenersAttached=!1,resizeDebounceTimer=null;const handleGlobalClick=e=>{if(!activePromoInstance)return;const{trigger,tooltip}=activePromoInstance;!trigger.contains(e.target)&&!tooltip.contains(e.target)&&(activePromoInstance.isPinned=!1,activePromoInstance.closeTooltip())},handleGlobalKeydown=e=>{e.key==="Escape"&&activePromoInstance&&(activePromoInstance.isPinned=!1,activePromoInstance.closeTooltip(),activePromoInstance.trigger.focus())},handleGlobalResize=()=>{clearTimeout(resizeDebounceTimer),resizeDebounceTimer=setTimeout(()=>{activePromoInstance&&activePromoInstance.handleResize()},100)},initGlobalListeners=()=>{globalListenersAttached||(document.addEventListener("click",handleGlobalClick),document.addEventListener("touchstart",handleGlobalClick,{passive:!0}),document.addEventListener("keydown",handleGlobalKeydown),window.addEventListener("resize",handleGlobalResize),globalListenersAttached=!0)};customElements.define("promo-message",class extends HTMLElement{connectedCallback(){this.container=this.querySelector(".product-promo-message"),this.trigger=this.querySelector(".product-promo-info-icon"),this.tooltip=this.querySelector(".product-promo-info-tooltip"),this.closeBtn=this.querySelector(".promo-tooltip-close-mobile"),!(!this.trigger||!this.tooltip||!this.container)&&(this.tooltipMounted=!1,this.isOpen=!1,this.isPinned=!1,this.closeTimer=null,this.lastOpenedOnDesktop=null,this.tooltip.style.display="none",initGlobalListeners(),this.bindEvents())}disconnectedCallback(){clearTimeout(this.closeTimer),this.tooltip&&this.tooltip.parentNode===document.body&&document.body.removeChild(this.tooltip),activePromoInstance===this&&(activePromoInstance=null)}bindEvents(){this.addEventListener("mouseenter",()=>{window.innerWidth>=768&&!this.isPinned&&this.openTooltip()}),this.addEventListener("mouseleave",()=>{window.innerWidth>=768&&!this.isPinned&&this.closeTooltip()}),this.tooltip.addEventListener("mouseenter",()=>{window.innerWidth>=768&&!this.isPinned&&this.openTooltip()}),this.tooltip.addEventListener("mouseleave",()=>{window.innerWidth>=768&&!this.isPinned&&this.closeTooltip()}),this.trigger.addEventListener("focus",()=>{window.innerWidth>=768&&this.openTooltip()}),this.trigger.addEventListener("blur",()=>{window.innerWidth>=768&&!this.isPinned&&this.closeTooltip()}),this.trigger.addEventListener("click",e=>{e.preventDefault(),e.stopPropagation(),window.innerWidth>=768?(this.isPinned=!this.isPinned,this.isPinned?this.openTooltip():this.closeTooltip()):this.isOpen?this.closeTooltip():this.openTooltip()}),this.closeBtn&&this.closeBtn.addEventListener("click",e=>{e.preventDefault(),e.stopPropagation(),this.isPinned=!1,this.closeTooltip()})}handleResize(){if(!this.isOpen||!this.tooltipMounted)return;const isDesktop=window.innerWidth>=768;if(this.lastOpenedOnDesktop!==null&&this.lastOpenedOnDesktop!==isDesktop){this.tooltip.style.top="",this.tooltip.style.left="",this.tooltip.style.width="",this.tooltip.classList.remove("align-left","align-right"),this.isPinned=!1,this.closeTooltip();return}isDesktop?this.positionDesktopTooltip():(this.tooltip.style.top="",this.tooltip.style.left="",this.tooltip.classList.remove("align-left","align-right"))}openTooltip(){activePromoInstance&&activePromoInstance!==this&&(activePromoInstance.isPinned=!1,activePromoInstance.closeTooltip()),this.tooltipMounted||(document.body.appendChild(this.tooltip),this.tooltipMounted=!0),clearTimeout(this.closeTimer),this.tooltip.style.display="",this.lastOpenedOnDesktop=window.innerWidth>=768,activePromoInstance=this,this.isOpen=!0,this.tooltip.classList.add("is-active"),this.tooltip.setAttribute("aria-hidden","false"),this.trigger.setAttribute("aria-expanded","true"),window.innerWidth>=768?this.positionDesktopTooltip():(this.tooltip.style.top="",this.tooltip.style.left="")}closeTooltip(){clearTimeout(this.closeTimer),this.isOpen=!1,this.lastOpenedOnDesktop=null,this.tooltip.classList.remove("is-active"),this.tooltip.setAttribute("aria-hidden","true"),this.trigger.setAttribute("aria-expanded","fal
1se"),this.closeTimer=setTimeout(()=>{this.isOpen||(this.tooltip.style.display="none")},300),activePromoInstance===this&&(activePromoInstance=null)}positionDesktopTooltip(){const iconRect=this.trigger.getBoundingClientRect(),containerRect=this.container.getBoundingClientRect(),viewportWidth=window.innerWidth,top=containerRect.bottom+window.scrollY+12,left=iconRect.left+window.scrollX+iconRect.width/2;this.tooltip.style.top=`${top}px`,this.tooltip.style.left=`${left}px`,this.tooltip.classList.remove("align-left","align-right"),iconRect.left+160>viewportWidth-16?this.tooltip.classList.add("align-right"):iconRect.left-160<16&&this.tooltip.classList.add("align-left")}})} 2//# sourceMappingURL=/cdn/shop/t/18/assets/promo-message.js.map?v=169424602366355825661773366326
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.