1(function(){'use strict';class VoomUser{constructor(){this.wrapper=document.getElementById('voomUser');if(!this.wrapper||this.wrapper.dataset.loggedIn==='true')return;this.toggle=this.wrapper.querySelector('.voom-user-toggle');this.dropdown=document.getElementById('voomUserDropdown');this.overlay=document.getElementById('voomUserOverlay');this.isOpen=!1;this.isMobile=window.innerWidth<=576;this.init()} 2init(){if(!this.toggle)return;this.toggle.addEventListener('click',(e)=>{e.preventDefault();e.stopPropagation();this.toggleDropdown()});if(this.overlay){this.overlay.addEventListener('click',()=>this.close())} 3document.addEventListener('keydown',(e)=>{if(e.key==='Escape'&&this.isOpen)this.close();});document.addEventListener('click',(e)=>{if(this.isOpen&&!this.wrapper.contains(e.target))this.close();});window.addEventListener('resize',VoomCore.utils.debounce(()=>{this.isMobile=window.innerWidth<=576},150))} 4toggleDropdown(){if(this.isOpen){this.close()}else{this.open()}} 5open(){if(this.isOpen)return;this.isOpen=!0;if(window.voomSearch&&window.voomSearch.isOpen)window.voomSearch.close();if(window.voomCart&&window.voomCart.isOpen)window.voomCart.close();this.wrapper.classList.add('is-open','is-active');this.toggle.setAttribute('aria-expanded','true');if(this.isMobile){document.body.style.overflow='hidden'} 6if(this.isMobile){gsap.fromTo(this.dropdown,{y:'100%'},{y:'0%',duration:0.4,ease:'power3.out'})}else{gsap.fromTo(this.dropdown,{opacity:0,y:-10,scale:0.95},{opacity:1,y:0,scale:1,duration:0.3,ease:'power2.out'})} 7const buttons=this.dropdown.querySelectorAll('.voom-user-btn');if(buttons.length){gsap.fromTo(buttons,{opacity:0,y:10},{opacity:1,y:0,duration:0.3,stagger:0.1,delay:0.1,ease:'power2.out'})}} 8close(){if(!this.isOpen)return;this.isOpen=!1;document.body.style.overflow='';if(this.isMobile){gsap.to(this.dropdown,{y:'100%',duration:0.3,ease:'power2.inOut',onComplete:()=>this.cleanupClose()})}else{gsap.to(this.dropdown,{opacity:0,y:-10,scale:0.95,duration:0.2,ease:'power2.in',onComplete:()=>this.cleanupClose()})}} 9cleanupClose(){this.wrapper.classList.remove('is-open','is-active');this.toggle.setAttribute('aria-expanded','false')}} 10function initUser(){window.voomUser=new VoomUser()} 11VoomCore.utils.waitForGsap(function(){if(document.readyState==='loading'){document.addEventListener('DOMContentLoaded',initUser)}else{initUser()}})})()
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.