PageSourceSearch

https://www.nealsyarddairy.co.uk/cdn/shop/t/185/assets/drawers.js?v=107619225559659722991728421714

js nealsyarddairy.co.uk collected 2026-09-24 20:09:41 UTC 2,957 bytes, 2 lines download raw bytes

1import{prepareTransition}from"@archetype-themes/scripts/helpers/utils";import{trapFocus,removeTrapFocus,lockMobileScrolling,unlockMobileScrolling}from"@archetype-themes/scripts/helpers/a11y";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.abortController=new AbortController,this.drawer&&this.init()}init(){document.querySelectorAll(this.config.open).forEach(openBtn=>{openBtn.setAttribute("aria-expanded","false"),openBtn.addEventListener("click",this.open.bind(this),{signal:this.abortController.signal})}),this.drawer.querySelector(this.config.close).addEventListener("click",this.close.bind(this),{signal:this.abortController.signal}),document.addEventListener("modalOpen",this.close.bind(this),{signal:this.abortController.signal})}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,()=>{this.drawer.classList.add(this.config.activeDrawer)}),document.documentElement.classList.add(this.config.openClass),this.isOpen=!0,trapFocus(this.drawer),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,()=>{this.drawer.classList.remove(this.config.activeDrawer)}),document.documentElement.classList.remove(this.config.openClass),document.documentElement.classList.add(this.config.closingClass),window.setTimeout(()=>{document.documentElement.classList.remove(this.config.closingClass),this.activeSource&&this.activeSource.getAttribute("aria-expanded")&&(this.activeSource.setAttribute("aria-expanded","false"),this.activeSource.focus())},500),this.isOpen=!1,removeTrapFocus(),this.unbindEvents()}}bindEvents(){this._clickHandler=this._handleClickOutside.bind(this),this._keyupHandler=this._handleKeyUp.bind(this),document.addEventListener("click",this._clickHandler,{signal:this.abortController.signal}),document.addEventListener("keyup",this._keyupHandler,{signal:this.abortController.signal}),lockMobileScrolling(this.nodes.page)}unbindEvents(){this.abortController.abort(),unlockMobileScrolling(this.nodes.page)}_handleClickOutside(evt){this.close(evt)}_handleKeyUp(evt){evt.keyCode===27&&this.close()}}
2//# sourceMappingURL=/cdn/shop/t/185/assets/drawers.js.map?v=107619225559659722991728421714

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.