PageSourceSearch

https://www.smackpetfood.com/cdn/shop/t/88/assets/details-modal.js?v=80196261892624041141785435404

js smackpetfood.com collected 2026-09-26 01:05:47 UTC 2,732 bytes, 2 lines download raw bytes

1class DetailsModal extends HTMLElement{constructor(){super(),this.detailsContainer=this.querySelector("details"),this.summaryToggle=this.querySelector("summary"),this.contentContainer=this.detailsContainer.lastElementChild,this.contentWrapper=this.contentContainer.querySelector(".details-modal__content"),this.overlay=this.querySelector("#Details-Modal-Overlay"),this._open=this.detailsContainer.hasAttribute("open"),this.ease=[.7,0,.2,1],this.detailsContainer&&this.detailsContainer.addEventListener("keyup",event=>event.code==="Escape"&&this.close()),this.summaryToggle&&(this.summaryToggle.addEventListener("click",this.onSummaryClick.bind(this)),this.summaryToggle.setAttribute("role","button"));const closeButton=this.querySelector('button[type="button"]');closeButton&&closeButton.addEventListener("click",()=>this.open=!1)}set open(value){value!==this._open&&(this._open=value,this.isConnected&&this.animate(value))}get open(){return this._open}onSummaryClick(event){event.preventDefault(),this.open=!this.open}onBodyClick(event){(!this.contains(event.target)||event.target.classList.contains("modal-overlay"))&&(this.open=!1)}async animate(value){value?(this.onBodyClickEvent=this.onBodyClickEvent||this.onBodyClick.bind(this),this.detailsContainer.setAttribute("open",!0),document.body.addEventListener("click",this.onBodyClickEvent),document.body.classList.add("overflow-hidden"),document.documentElement.setAttribute("scroll-lock",""),this.detailsContainer&&trapFocus(this.detailsContainer.querySelector('[tabindex="-1"]'),this.detailsContainer.querySelector('input:not([type="hidden"])')),await this.animateOpen()):(removeTrapFocus(this.summaryToggle),document.body.removeEventListener("click",this.onBodyClickEvent),document.body.classList.remove("overflow-hidden"),document.documentElement.removeAttribute("scroll-lock"),await this.animateClose(),this.detailsContainer&&!this.open&&setTimeout(()=>{this.detailsContainer.removeAttribute("open")},50))}async animateOpen(){Motion.timeline([[this.contentContainer,{opacity:[0,1],visibility:"visible"},{duration:theme.config.motionReduced?0:.3,easing:this.ease}],[this.contentWrapper,{transform:["translateY(-100%)","translateY(0)"]},{duration:theme.config.motionReduced?0:.3,easing:this.ease}]]).finished}async animateClose(){Motion.timeline([[this.contentWrapper,{transform:"translateY(-100%)"},{duration:theme.config.motionReduced?0:.3,easing:this.ease}],[this.contentContainer,{opacity:0,visibility:"hidden"},{duration:theme.config.motionReduced?0:.3,easing:this.ease}]]).finished}}customElements.get("details-modal")||customElements.define("details-modal",DetailsModal);
2//# sourceMappingURL=/cdn/shop/t/88/assets/details-modal.js.map?v=80196261892624041141785435404

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.