PageSourceSearch

https://buffbeauty.com/cdn/shop/t/105/assets/component-drawer-menu.js?v=168421663106414898171789828315

js buffbeauty.com collected 2026-09-29 22:24:43 UTC 3,019 bytes, 2 lines download raw bytes

1class DrawerMenu extends HTMLElement{constructor(){"use strict";super(),this.el=this,this.mainLevel=this.el.querySelector(".drawer-menu__contents"),this.init()}init(){this.firstLevelItemsWithChildren=this.el.querySelectorAll(".drawer-menu__item__input"),this.firstLevelItemsWithChildren.forEach(input=>{input.addEventListener("change",this.toggleMenuItem.bind(this))}),this.closeButtons=this.el.querySelectorAll("[data-close]"),this.closeButtons.forEach(btn=>{btn.addEventListener("click",this.closeAllItems.bind(this))}),this.overlay=this.el.querySelector("[data-overlay]"),this.overlay.addEventListener("click",this.closeAllItems.bind(this)),this.secondLevelBackButtons=this.el.querySelectorAll("[data-drawer-submenu-close]"),this.secondLevelBackButtons.forEach(button=>{button.addEventListener("click",this.toggleSubPanel.bind(this))}),this.subitemOpeners=document.querySelectorAll("[data-drawer-submenu-open]"),this.subitemOpeners.forEach(button=>{button.addEventListener("click",this.toggleMenuItemFromTheme.bind(this))})}closeAllItems(event,skipEl){this.mainLevel.querySelectorAll("input:checked").forEach(checkbox=>{if(skipEl&&checkbox===skipEl)return;checkbox.checked=!1;const accordion=checkbox.closest("[data-accordion-item]");accordion&&(accordion.classList.remove("is-open"),screen.width<=820&&accordion.closest(".drawer-menu__contents").classList.remove("pull-left"))}),skipEl||this.mainLevel.classList.remove("has-open-submenu")}toggleMenuItem(scope){const input=scope.currentTarget||scope;if(!input)return;this.closeAllItems(scope,input);const accordion=input.closest("[data-accordion-item]");accordion&&(screen.width<=820&&accordion.closest(".drawer-menu__contents").classList.toggle("pull-left"),accordion.classList.toggle("is-open"),accordion.classList.contains("is-open")?this.mainLevel.classList.add("has-open-submenu"):this.mainLevel.classList.remove("has-open-submenu"))}toggleMenuItemFromTheme(scope){let target=!1;const url=(scope.currentTarget||scope).getAttribute("data-drawer-submenu-open");for(const input of this.firstLevelItemsWithChildren)if(input.getAttribute("data-href")===url){target=input;break}if(!target)return;Woolman.ModalsAndDrawers.showModalOrDrawer(this.el.getAttribute("id"));const animationFinished=()=>{this.el.removeEventListener("transitionend",animationFinished);const evt=new Event("change");target.checked=!0,target.dispatchEvent(evt)};this.el.addEventListener("transitionend",animationFinished)}toggleSubPanel(event){this.closeAllItems();const targetSelector=event.currentTarget.getAttribute("data-drawer-submenu-close");if(!targetSelector)return;const input=document.getElementById(targetSelector);input&&input.focus()}}customElements.get("drawer-menu")===void 0&&customElements.define("drawer-menu",DrawerMenu),window.addEventListener("pageshow",()=>{document.querySelectorAll(".drawer-menu__item__input").forEach(cb=>{cb&&(cb.checked=cb.defaultChecked)})});
2//# sourceMappingURL=/cdn/shop/t/105/assets/component-drawer-menu.js.map?v=168421663106414898171789828315

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.