PageSourceSearch

https://www.tonisailer.com/cdn/shop/t/47/assets/model_element.js?v=138706003718670059521787124668

js tonisailer.com collected 2026-10-02 19:20:44 UTC 2,713 bytes, 2 lines download raw bytes

1customElements.get("model-element")||customElements.define("model-element",class extends HTMLElement{constructor(){super(),this.initialize(),this.showModelBound=this.showModel.bind(this),this.closeButtonBound=this.closeButton.bind(this)}connectedCallback(){this.modelBtn=this.querySelector(".model-btn"),this.modelBtn?.addEventListener("click",this.showModelBound)}disconnectedCallback(){this.modelBtn?.removeEventListener("click",this.showModelBound)}getFocusableElements(){const focusableElementsSelector="button, [href], input, select, [tabindex], iframe",focusableElements=()=>Array.from(this.modelContainer.querySelectorAll(focusableElementsSelector)).filter(el=>!el.hasAttribute("disabled")&&el.tabIndex>=0);return{focusableElements,first:focusableElements()[0],last:focusableElements()[focusableElements().length-1]}}initialize(){const els=this.querySelectorAll('[data-model="true"]');this.elsArr=Array.from(els),this.ul=this.querySelectorAll("ul"),this.modelContainer=document.querySelector(".model-container"),this.modelWrapper=this.modelContainer?.querySelector(".model"),this.closeBtn=this.modelContainer?.querySelector(".close-btn"),this.iframe=this.querySelector("iframe"),this.modelContainer.addEventListener("keydown",e=>{const isTabPressed=e.key==="Tab"||e.keyCode===9||e.code==="Tab",{first,last}=this.getFocusableElements();(e.key==="Escape"||e.keyCode===27||e.code==="Escape")&&this.closeBtn.click(),isTabPressed&&(e.shiftKey&&document.activeElement===first?(last.focus(),e.preventDefault()):!e.shiftKey&&document.activeElement===last&&(first.focus(),e.preventDefault()))})}showModel(e){this.trigger=e.currentTarget,document.body.style.overflow="hidden",this.backBtn=this.modelWrapper.querySelector(".hero__button--link"),this.backBtn?.addEventListener("click",this.closeButtonBound),this.closeBtn?.addEventListener("click",this.closeButtonBound),this.modelViewer=this.querySelector("model-viewer")||this.iframe,this.modelWrapper?.insertBefore(this.modelViewer.cloneNode(!0),this.backBtn),this.modelContainer?.classList.remove("hidden"),this.closeBtn.setAttribute("tabindex","0"),this.closeBtn.focus()}closeButton(e){e?.stopPropagation(),document.body.style.overflow="auto",this.modelContainer?.classList.add("hidden"),this.backBtn?.removeEventListener("click",this.closeButtonBound),this.closeBtn?.removeEventListener("click",this.closeButtonBound);const elementToRemove=this.modelWrapper.querySelector("model-viewer")||this.modelWrapper.querySelector("iframe");elementToRemove&&this.modelWrapper.removeChild(elementToRemove),this.closeBtn.setAttribute("tabindex","-1"),this.trigger?.focus()}});
2//# sourceMappingURL=/cdn/shop/t/47/assets/model_element.js.map?v=138706003718670059521787124668

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.