PageSourceSearch

https://www.lussostone.com/cdn/shop/t/318/assets/accordion.js?v=135709208332794956931785844651

js lussostone.com collected 2026-10-02 07:41:03 UTC 3,258 bytes, 2 lines download raw bytes

1class Accordion extends HTMLElement{constructor(){super(),this.listeners()}listeners(){document.querySelectorAll("accordion-wrapper").forEach(el=>{const accordionHeaders=el.querySelectorAll(".accordion__header");el.getAttribute("data-open-first")==="true"===!0&&this.openFirstItem(el),accordionHeaders.forEach(el2=>el2.addEventListener("click",this.accordionClickEvent))})}openFirstItem(el){const firstItem=el.querySelector(".accordion__item"),content=firstItem.querySelector(".accordion__content");firstItem.classList.add("accordion__item--open"),content.style.height=getComputedStyle(content).height,el.removeAttribute("data-open-first")}accordionClickEvent(){const accordionItem=this.closest(".accordion__item"),accordionContainer=this.closest("accordion-wrapper"),mobileOnly=accordionContainer.getAttribute("data-mobile-only")==="true",touchOnly=accordionContainer.getAttribute("data-touch-only")==="true",mediaQuery=window.matchMedia("(max-width: 989px)");mobileOnly||touchOnly?mediaQuery.matches&&Accordion.toggleStates(accordionContainer,accordionItem):Accordion.toggleStates(accordionContainer,accordionItem)}static toggleStates(container,item){const wrapper=container.closest(".js-accordion-container"),parent=container.parentNode,accordionItems=(wrapper||parent).querySelectorAll(".accordion__item:not(.accordion__item--disabled)"),autoClose=container.getAttribute("data-auto-close")==="true";let isDelay=!1;item.classList.contains("accordion__item--open")?this.closeAccordion(item):(autoClose===!0&&accordionItems.forEach(el=>{el.classList.contains("accordion__item--open")&&(this.closeAccordion(el),isDelay=!0)}),setTimeout(()=>this.openAccordion(item),isDelay?250:0))}static openAccordion(el){el.classList.add("accordion__item--open");const content=el.querySelector(".accordion__content");content.style.width=getComputedStyle(content).width,content.style.position="absolute",content.style.visibility="hidden",content.style.height="auto";const height=getComputedStyle(content).height;content.style.width=null,content.style.position=null,content.style.visibility=null,content.style.height="0",getComputedStyle(content).height,requestAnimationFrame(()=>content.style.height=height),content.addEventListener("transitionend",()=>{el.classList.contains("accordion__item--open")&&(content.style.height="auto")})}static repositionViewport(el){const isMobile=window.matchMedia("(max-width: 749px)").matches,offset=document.documentElement.scrollTop,target=el.getBoundingClientRect().top,header=document.documentElement.style.getPropertyValue("--header-height");let stickyHeader=0;isMobile||(stickyHeader=document.querySelector(".sticky-bag").getBoundingClientRect().top);const y=target+offset-header.replace("px","")-stickyHeader;requestAnimationFrame(()=>window.scrollTo({top:y,behavior:"smooth"}))}static closeAccordion(el){el.classList.remove("accordion__item--open");const content=el.querySelector(".accordion__content");content.style.height=getComputedStyle(content).height,getComputedStyle(content).height,requestAnimationFrame(()=>content.style.height="0")}}customElements.get("accordion-wrapper")||customElements.define("accordion-wrapper",Accordion);
2//# sourceMappingURL=/cdn/shop/t/318/assets/accordion.js.map?v=135709208332794956931785844651

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.