1import{prepareTransition}from"@archetype-themes/scripts/helpers/utils";import{trapFocus,removeTrapFocus,lockMobileScrolling,unlockMobileScrolling}from"@archetype-themes/scripts/helpers/a11y";import"@archetype-themes/scripts/helpers/delegate";export default class Drawers{constructor(id,name){this.config={id,close:".js-drawer-close",open:".js-drawer-open-"+name,openClass:"js-drawer-open",closingClass:"js-drawer-closing",activeDrawer:"drawer--is-open",namespace:".drawer-"+name},this.nodes={page:document.querySelector("#MainContent")},this.drawer=document.querySelector("#"+id),this.isOpen=!1,this.drawer&&this.init()}init(){document.querySelectorAll(this.config.open).forEach(openBtn=>{openBtn.setAttribute("aria-expanded","false"),openBtn.addEventListener("click",this.open.bind(this))}),this.drawer.querySelector(this.config.close).addEventListener("click",this.close.bind(this)),document.addEventListener("modalOpen",function(){this.close()}.bind(this))}open(evt,returnFocusEl){evt&&evt.preventDefault(),!this.isOpen&&(evt&&evt.stopPropagation?(evt.stopPropagation(),evt.currentTarget.setAttribute("aria-expanded","true"),this.activeSource=evt.currentTarget):returnFocusEl&&(returnFocusEl.setAttribute("aria-expanded","true"),this.activeSource=returnFocusEl),prepareTransition(this.drawer,function(){this.drawer.classList.add(this.config.activeDrawer)}.bind(this)),document.documentElement.classList.add(this.config.openClass),this.isOpen=!0,trapFocus({container:this.drawer,namespace:"drawer_focus"}),document.dispatchEvent(new CustomEvent("drawerOpen")),document.dispatchEvent(new CustomEvent("drawerOpen."+this.config.id)),this.bindEvents())}close(evt){if(this.isOpen){if(evt&&!evt.target.closest(".js-drawer-close")){if(evt.target.closest(".drawer"))return}document.activeElement.blur(),prepareTransition(this.drawer,function(){this.drawer.classList.remove(this.config.activeDrawer)}.bind(this)),document.documentElement.classList.remove(this.config.openClass),document.documentElement.classList.add(this.config.closingClass),window.setTimeout(function(){document.documentElement.classList.remove(this.config.closingClass),this.activeSource&&this.activeSource.getAttribute("aria-expanded")&&(this.activeSource.setAttribute("aria-expanded","false"),this.activeSource.focus())}.bind(this),500),this.isOpen=!1,removeTrapFocus({container:this.drawer,namespace:"drawer_focus"}),this.unbindEvents()}}bindEvents(){window.on("click"+this.config.namespace,function(evt){this.close(evt)}.bind(this)),window.on("keyup"+this.config.namespace,function(evt){evt.keyCode===27&&this.close()}.bind(this)),lockMobileScrolling(this.config.namespace,this.nodes.page)}unbindEvents(){window.off("click"+this.config.namespace),window.off("keyup"+this.config.namespace),unlockMobileScrolling(this.config.namespace,this.nodes.page)}} 2//# sourceMappingURL=/cdn/shop/t/13/assets/drawers.js.map?v=41461249279569037491722214002
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.