PageSourceSearch

https://riyoherbsindia.com/cdn/shop/t/7/assets/sidebar-mega-menu.js?v=174659109953120172981772463425

js riyoherbsindia.com collected 2026-10-08 16:23:00 UTC 4,652 bytes, 2 lines download raw bytes

1(function(){"use strict";class SidebarMegaMenu extends HTMLElement{constructor(){super(),this._isOpen=!1,this._activeL1Handle=null,this._activeL2Handle=null}connectedCallback(){this.backdrop=document.querySelector(".sidebar-backdrop"),this.panel1=this.querySelector(".sidebar-panel--level-1"),this.panel2=this.querySelector(".sidebar-panel--level-2"),this.panel3=this.querySelector(".sidebar-panel--level-3"),this.closeBtn=this.querySelector("[data-sidebar-close]"),this.backL2Btn=this.querySelector("[data-sidebar-back-l2]"),this.backL3Btn=this.querySelector("[data-sidebar-back-l3]"),this.openBtn=document.querySelector("[data-sidebar-open]"),this.openBtn?.addEventListener("click",()=>this.open()),this.closeBtn?.addEventListener("click",()=>this.close()),this.backdrop?.addEventListener("click",()=>this.close()),this.backL2Btn?.addEventListener("click",()=>this._closeLevel2()),this.backL3Btn?.addEventListener("click",()=>this._closeLevel3()),this.panel1.querySelectorAll("[data-sidebar-l1]").forEach(btn=>{btn.addEventListener("click",e=>{e.preventDefault();const handle=btn.dataset.sidebarL1;this._openLevel2(handle,btn.dataset.sidebarTitle)})}),this.panel2.querySelectorAll("[data-sidebar-l2]").forEach(btn=>{btn.addEventListener("click",e=>{e.preventDefault();const l1Handle=btn.dataset.l1,l2Handle=btn.dataset.sidebarL2;this._openLevel3(l1Handle,l2Handle,btn.dataset.sidebarTitle)})}),document.addEventListener("keydown",e=>{e.key==="Escape"&&this._isOpen&&this.close()}),this.addEventListener("keydown",e=>this._trapFocus(e))}open(){this._isOpen=!0,this.classList.add("is-open"),this.backdrop?.classList.add("is-visible"),document.body.classList.add("sidebar-open"),document.querySelector("[data-sidebar-open]")?.setAttribute("aria-expanded","true"),this.querySelector("a, button")?.focus()}close(){this._isOpen=!1,this.classList.remove("is-open"),this.backdrop?.classList.remove("is-visible"),document.body.classList.remove("sidebar-open");const btn=document.querySelector("[data-sidebar-open]");btn?.setAttribute("aria-expanded","false"),btn?.focus(),setTimeout(()=>{this._closeLevel3(!1),this._closeLevel2(!1)},380)}_openLevel2(l1Handle,title){this.panel2.querySelectorAll(".sidebar-subnav").forEach(el=>{el.classList.remove("is-active")});const target=this.panel2.querySelector(`[data-subnav="${l1Handle}"]`);target&&target.classList.add("is-active");const heading=this.panel2.querySelector(".sidebar-panel-heading");heading&&(heading.textContent=title||""),this.panel1.querySelectorAll("[data-sidebar-l1]").forEach(btn=>{btn.classList.toggle("is-active",btn.dataset.sidebarL1===l1Handle)}),this._closeLevel3(!1),this.panel2.classList.add("is-active"),this._activeL1Handle=l1Handle,setTimeout(()=>{this.panel2.querySelector("a, button")?.focus()},50)}_closeLevel2(animate=!0){this.panel2.classList.remove("is-active"),this._closeLevel3(!1),this._activeL1Handle=null,this.panel1.querySelectorAll("[data-sidebar-l1]").forEach(btn=>{btn.classList.remove("is-active")}),animate&&setTimeout(()=>{this.panel1.querySelector("button, a")?.focus()},50)}_openLevel3(l1Handle,l2Handle,title){const key=`${l1Handle}--${l2Handle}`;this.panel3.querySelectorAll(".sidebar-subnav").forEach(el=>{el.classList.remove("is-active")});const target=this.panel3.querySelector(`[data-subnav="${key}"]`);target&&target.classList.add("is-active");const heading=this.panel3.querySelector(".sidebar-panel-heading");heading&&(heading.textContent=title||""),this.panel2.querySelectorAll("[data-sidebar-l2]").forEach(btn=>{btn.classList.toggle("is-active",btn.dataset.sidebarL2===l2Handle&&btn.dataset.l1===l1Handle)}),this.panel3.classList.add("is-active"),this._activeL2Handle=l2Handle,setTimeout(()=>{this.panel3.querySelector("a, button")?.focus()},50)}_closeLevel3(animate=!0){this.panel3.classList.remove("is-active"),this._activeL2Handle=null,this.panel2.querySelectorAll("[data-sidebar-l2]").forEach(btn=>{btn.classList.remove("is-active")}),animate&&setTimeout(()=>{this.panel2.querySelector("button, a")?.focus()},50)}_trapFocus(e){if(!this._isOpen||e.key!=="Tab")return;const focusable=Array.from(this.querySelectorAll('a[href], button:not([disabled]), [tabindex]:not
1([tabindex="-1"])')).filter(el=>!el.closest(".sidebar-subnav:not(.is-active)"));if(!focusable.length)return;const first=focusable[0],last=focusable[focusable.length-1];e.shiftKey&&document.activeElement===first?(e.preventDefault(),last.focus()):!e.shiftKey&&document.activeElement===last&&(e.preventDefault(),first.focus())}}customElements.define("sidebar-mega-menu",SidebarMegaMenu)})();
2//# sourceMappingURL=/cdn/shop/t/7/assets/sidebar-mega-menu.js.map?v=174659109953120172981772463425

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.