PageSourceSearch

https://www.ohpolly.com/cdn/shop/t/1735/assets/site-drawers.js?v=71066914394319020551782836742

js ohpolly.com collected 2026-09-25 15:12:02 UTC 4,175 bytes, 2 lines download raw bytes

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.clickedElement=!1,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,"mousedown",event=>{this.clickedElement=event.target}),this.listeners.add(document.documentElement,"click",this.handleClick.bind(this)),this.listeners.add(document.documentElement,"keydown",e=>{if(e.key==="Escape"){if(this.activeDrawerIsBlocking)return;this.activeDrawerKey=""}})}handleClick(e){if(e.target!==this.clickedElement)return;this.clickedElement=!1;const EVENTS={TRIGGER:"TRIGGER",CLOSE:"CLOSE",BACKDROP:"BACKDROP",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.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.BACKDROP&&this.activeDrawerIsBlocking||(eventType===EVENTS.CLOSE||eventType===EVENTS.BACKDROP)&&(this.activeDrawerKey="")}}open(key){this.activeDrawerKey=key}close(key){if(key){this.activeDrawerKey===key&&(this.activeDrawerKey="");return}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.drawerEls.some(drawer=>drawer.isOpen)}get drawerEls(){return Array.from(document.querySelectorAll(this.config.matches.drawer))}get activeDrawer(){return this.drawerEls.find(drawer=>drawer.key===this.activeDrawerKey)}get activeDrawerIsBlocking(){return this.activeDrawer?.dataset.drawerBlocking==="true"}get activeDrawerKey(){return this._activeDrawerKey}set activeDrawerKey(key){const prevKey=this._activeDrawerKey;this._activeDrawerKey=key,this.drawerEls.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),prevKey&&document.body.classList.remove(`drw-Drawers-${prevKey}`),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]",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/1735/assets/site-drawers.js.map?v=71066914394319020551782836742

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.