1class LocalizationDrawer extends HTMLElement{constructor(){super(),this.drawerClass="wt-localization-drawer",this.drawer=this,this.classDrawerActive=`${this.drawerClass}--open`,this.pageOverlayClass="wt-localization-drawer-overlay",this.activeOverlayBodyClass=`${this.pageOverlayClass}-on`,this.body=document.body,this.triggerQuery=[".wt-localization-trigger",".wt-localization-drawer__close",`.${this.pageOverlayClass}`].join(", "),this.isOpen=!1,this.mainTrigger=document.querySelector(".wt-header__localization-trigger")||null}connectedCallback(){this.init()}getFocusableElements(){const focusableElements=Array.from(this.querySelectorAll("button, [href], input, select, [tabindex]")).filter(el=>!el.hasAttribute("disabled")&&el.tabIndex>=0);return{first:focusableElements[0],last:focusableElements[focusableElements.length-1]}}temporaryHideFocusVisible(){document.body.classList.add("no-focus-visible"),setTimeout(()=>{document.body.classList.remove("no-focus-visible")},200)}onToggle(){if(this.hasAttribute("open"))this.removeAttribute("open"),this.isOpen=!1,this.mainTrigger&&this.mainTrigger.focus();else{this.setAttribute("open",""),this.isOpen=!0;const closeBtn=this.querySelector(".wt-localization-drawer__close");closeBtn&&closeBtn.focus()}this.temporaryHideFocusVisible()}toggleDrawerClasses(){this.onToggle(),this.drawer.classList.toggle(this.classDrawerActive),this.body.classList.toggle(this.activeOverlayBodyClass)}setActiveTab(tabKey){const tabTriggers=this.querySelectorAll(".wt-localization-drawer__tab__trigger"),tabContents=this.querySelectorAll(".wt-localization-drawer__tab__content");tabTriggers.forEach(t=>t.classList.remove("wt-localization-drawer__tab__trigger--active")),tabContents.forEach(c=>c.classList.remove("is-active"));const matchingTrigger=this.querySelector(`[data-tab-target="${tabKey}"]`);matchingTrigger&&matchingTrigger.classList.add("wt-localization-drawer__tab__trigger--active");const matchingContent=this.querySelector(`[data-tab-content="${tabKey}"]`);matchingContent&&matchingContent.classList.add("is-active")}init(){this.addEventListener("keydown",e=>{if(!this.isOpen)return;const{first,last}=this.getFocusableElements(),isTab=e.key==="Tab"||e.keyCode===9||e.code==="Tab";e.key==="Escape"||e.keyCode===27||e.code==="Escape"?(e.preventDefault(),this.toggleDrawerClasses()):isTab&&(e.shiftKey&&document.activeElement===first?(e.preventDefault(),last.focus()):!e.shiftKey&&document.activeElement===last&&(e.preventDefault(),first.focus()))}),document.querySelectorAll(this.triggerQuery).forEach(trigger=>{trigger.addEventListener("click",e=>{e.preventDefault();const openTab=trigger.dataset.openDrawer;this.toggleDrawerClasses(),openTab&&this.setActiveTab(openTab)})});const searchInput=this.querySelector(".wt-localization-drawer__search-country__input");searchInput&&searchInput.addEventListener("input",()=>{const searchValue=searchInput.value.toLowerCase().trim();this.querySelectorAll(".country-selector__item").forEach(item=>{const countryName=(item.dataset.filterName||"").toLowerCase();item.style.display=countryName.includes(searchValue)?"":"none"})});const tabTriggers=this.querySelectorAll(".wt-localization-drawer__tab__trigger"),tabContents=this.querySelectorAll(".wt-localization-drawer__tab__content");tabTriggers.forEach(trigger=>{trigger.addEventListener("click",e=>{e.preventDefault(),tabTriggers.forEach(t=>t.classList.remove("wt-localization-drawer__tab__trigger--active")),tabContents.forEach(c=>c.classList.remove("is-active")),trigger.classList.add("wt-localization-drawer__tab__trigger--active");const targetKey=trigger.dataset.tabTarget,matchedContent=this.querySelector(`[data-tab-content="${targetKey}"]`);matchedContent&&matchedContent.classList.add("is-active")})});const countryForm=document.querySelector("#DrawerCountryForm");if(countryForm){const countryInput=countryForm.querySelector('[name="country_code"]');this.querySelectorAll(".country-selector__trigger").forEach(link=>{link.addEventListener("click",e=>{e.preventDefault(),countryInput.value=link.dataset.value,countryForm.submit()})})}
1const languageForm=this.querySelector("form#DrawerLanguageForm");languageForm&&languageForm.querySelectorAll('input[name="language_code"]').forEach(radio=>{radio.addEventListener("change",()=>{languageForm.submit()})})}}customElements.define("localization-drawer",LocalizationDrawer); 2//# sourceMappingURL=/cdn/shop/t/60/assets/localization-drawer.js.map?v=176566798183020555291786401177
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.