1const{getElement,getElements}=window.BAO.Utils;export class SiteDrawers extends window.BAO.CustomElement(){constructor(){if(super(),this.hasAlreadyBeenUsed)throw new Error(`You can only use 1 instance of ${this.nodeName.toLowerCase()}`);this._activeDrawerKey="",this.drawers=[],window.drawers=this,this.drawerKeys.filter(key=>!this.triggerKeys.includes(key)).forEach(key=>console.info(`Drawer exists for ${key} but there is no trigger`))}setupListeners(){super.setupListeners(),this.listeners.add(document.documentElement,"click",this.handleClick.bind(this)),this.listeners.add(document.documentElement,"keydown",e=>{e.key==="Escape"&&(this.activeDrawerKey="")})}handleClick(e){const EVENTS={TRIGGER:"TRIGGER",CLOSE:"CLOSE",BACKDROP:"BACKDROP",SUBNAV:"SUBNAV",SUBNAVBACK:"SUBNAVBACK",UNKNOWN:"UNKNOWN"},eventType=(()=>{if(e.target.closest(this.config.matches.trigger)!==null)return EVENTS.TRIGGER;if(e.target.closest(this.config.matches.close)!==null)return EVENTS.CLOSE;if(e.target.closest(this.config.matches.subNav)!==null)return EVENTS.SUBNAV;if(e.target.closest(this.config.matches.subNavBack)!==null)return EVENTS.SUBNAVBACK;if(e.target.closest(this.config.matches.backdrop)!==null)return EVENTS.BACKDROP;if(e.target.closest(this.config.matches.drawer)!==null&&e.detail!==0){const dialogDimensions=e.target.closest(this.config.matches.drawer).getBoundingClientRect();if(e.clientX<dialogDimensions.left||e.clientX>dialogDimensions.right||e.clientY<dialogDimensions.top||e.clientY>dialogDimensions.bottom)return EVENTS.BACKDROP}return EVENTS.UNKNOWN})();if(eventType!==EVENTS.UNKNOWN){if(e.preventDefault(),eventType===EVENTS.TRIGGER){const key=e.target.closest(this.config.matches.trigger).getAttribute("data-drawers-trigger");this.activeDrawerKey=key===this.activeDrawerKey?"":key}(eventType===EVENTS.CLOSE||eventType===EVENTS.BACKDROP)&&(this.activeDrawerKey="")}}open(key){this.activeDrawerKey=key}close(){this.activeDrawerKey=""}get triggerKeys(){return getElements("[data-drawers-trigger]").map(el=>el.getAttribute("data-drawers-trigger"))}get drawerKeys(){return getElements("[data-module-drawers-drawer]").map(el=>el.getAttribute("data-module-drawers-drawer"))}get hasAlreadyBeenUsed(){return getElement(this.nodeName.toLowerCase())!==this}get aDrawerIsOpen(){return this.drawers.some(drawer=>drawer.isOpen)}get activeDrawerKey(){return this._activeDrawerKey}set activeDrawerKey(key){this._activeDrawerKey=key,this.drawers.forEach(drawer=>drawer.isOpen=drawer.key===key),this.config.elements.drawers.classList.toggle(this.config.classes.activeClass,this.aDrawerIsOpen),document.body.classList.toggle(this.config.classes.siteOverflowed,this.aDrawerIsOpen),document.body.classList.toggle(this.config.classes.drawersOpenUtility,this.aDrawerIsOpen),key!==""?(this.els.drawer.element.classList.add("drw-Drawers_Drawer-active"),document.body.classList.add(`drw-Drawers-${key}`)):this.els.drawer.element.classList.remove("drw-Drawers_Drawer-active"),document.dispatchEvent(new CustomEvent("drawer-changed"))}get config(){return{matches:{trigger:"[data-drawers-trigger]",subNav:"[data-drawers-sub-nav]",subNavBack:"[data-drawers-sub-nav-back]",close:"[data-drawers-close]",backdrop:'[data-site-drawers-el="backdrop"]',drawer:'[is="site-drawer"]'},classes:{activeClass:"drw-Drawers-active",activeDrawerClass:"drw-Drawer-active",siteOverflowed:"util-SiteOverflowed",drawersOpenUtility:"util-DrawersOpen"},elements:{body:document.body||document.documentElement,backdrop:'[data-site-drawers-el="backdrop"]',drawers:document.querySelector("site-drawers")}}}}customElements.define("site-drawers",SiteDrawers); 2//# sourceMappingURL=/cdn/shop/t/105/assets/bao-site-drawers.js.map?v=26368382652967542591759911396
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.