PageSourceSearch

https://topcelebstyle.com/cdn/shop/t/7/assets/details-modal.js?v=9085695634636910971783780455

js topcelebstyle.com collected 2026-09-26 10:41:00 UTC 3,073 bytes, 2 lines download raw bytes

1class DetailsModal extends HTMLElement{constructor(){super(),this.detailsContainer=this.querySelector("details"),this.summaryToggle=this.querySelector("summary"),this.handleKeyUp=event=>event.code?.toUpperCase()==="ESCAPE"&&this.close(),this.handleSummaryClick=this.onSummaryClick.bind(this),this.handleCloseClick=this.close.bind(this),this.detailsContainer&&this.detailsContainer.addEventListener("keyup",this.handleKeyUp),this.summaryToggle&&(this.summaryToggle.addEventListener("click",this.handleSummaryClick),this.summaryToggle.setAttribute("role","button"),this.summaryToggle.setAttribute("aria-expanded","false")),this.closeButton=this.querySelector('button[type="button"]'),this.closeButton&&this.closeButton.addEventListener("click",this.handleCloseClick)}disconnectedCallback(){this.detailsContainer&&this.detailsContainer.removeEventListener("keyup",this.handleKeyUp),this.summaryToggle&&this.summaryToggle.removeEventListener("click",this.handleSummaryClick),this.closeButton&&this.closeButton.removeEventListener("click",this.handleCloseClick),this.onBodyClickEvent&&document.body.removeEventListener("click",this.onBodyClickEvent),this.disconnectContentObserver()}isOpen(){return this.detailsContainer.hasAttribute("open")}onSummaryClick(event){event.preventDefault(),event.target.closest("details").hasAttribute("open")?this.close():this.open(event)}onBodyClick(event){(!this.contains(event.target)||event.target.classList.contains("modal-overlay"))&&this.close(!1)}open(event){this.onBodyClickEvent=this.onBodyClickEvent||this.onBodyClick.bind(this),event.target.closest("details").setAttribute("open",!0),document.body.addEventListener("click",this.onBodyClickEvent),document.body.classList.add("overflow-hidden"),this.summaryToggle&&this.summaryToggle.setAttribute("aria-expanded","true"),this.trapContainer=this.detailsContainer.querySelector('[tabindex="-1"]');const focusTarget=this.detailsContainer.querySelector('input:not([type="hidden"])');this.trapContainer&&(trapFocus(this.trapContainer,focusTarget||this.trapContainer),this.observeContentChanges(this.trapContainer,focusTarget))}close(focusToggle=!0){this.disconnectContentObserver(),removeTrapFocus(focusToggle?this.summaryToggle:null),this.detailsContainer&&this.detailsContainer.removeAttribute("open"),this.summaryToggle&&this.summaryToggle.setAttribute("aria-expanded","false"),document.body.removeEventListener("click",this.onBodyClickEvent),document.body.classList.remove("overflow-hidden")}observeContentChanges(container,focusTarget){typeof MutationObserver>"u"||(this.disconnectContentObserver(),this.contentObserver=new MutationObserver(()=>{this.isOpen()&&(container.contains(document.activeElement)||(focusTarget||container).focus({preventScroll:!0}))}),this.contentObserver.observe(container,{childList:!0,subtree:!0}))}disconnectContentObserver(){this.contentObserver&&(this.contentObserver.disconnect(),this.contentObserver=null)}}customElements.define("details-modal",DetailsModal);
2//# sourceMappingURL=/cdn/shop/t/7/assets/details-modal.js.map?v=9085695634636910971783780455

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.