1class DialogComponent extends HTMLElement{#lastWidth=window.innerWidth;constructor(){super(),this.dialogButton=null,this.dialogModal=null,this.closeButton=null,this.resizeHandler=null,this.animationDuration=null}connectedCallback(){this.dialogButton=this.querySelector('[data-ref="popup-toggle"]'),this.dialogModal=this.querySelector('[data-ref="popup-modal"]'),this.closeButton=this.querySelector('[data-ref="popup-close"]'),this.animationDuration=parseFloat(getComputedStyle(this.closest(".shopify-section")).getPropertyValue("--animation-speed").replace("s","")),this.dialogModal&&(this.dialogButton&&this.dialogButton.addEventListener("click",this.#showModal.bind(this)),this.closeButton.addEventListener("click",this.#closeModal.bind(this)),this.dialogModal.addEventListener("close",this.#onClose.bind(this)),this.dialogModal.addEventListener("click",this.#onBackdropClick.bind(this)),this.resizeHandler=this.#onResize.bind(this),window.addEventListener("resize",this.resizeHandler))}disconnectedCallback(){this.dialogButton&&this.dialogButton.removeEventListener("click",this.#showModal.bind(this)),this.dialogModal&&(this.dialogModal.removeEventListener("close",this.#onClose.bind(this)),this.dialogModal.removeEventListener("click",this.#onBackdropClick.bind(this))),this.closeButton&&this.closeButton.removeEventListener("click",this.#closeModal.bind(this)),this.resizeHandler&&window.removeEventListener("resize",this.resizeHandler)}#showModal(event){event&&event.preventDefault(),this.dialogModal.showModal(),this.dialogModal.scrollTop=0,document.body.classList.add("overflow-hidden")}#closeModal(event){event&&event.preventDefault(),this.#animateClose()}#animateClose(){if(!this.dialogModal||!this.dialogModal.open)return;this.dialogModal.classList.add("dialog-modal--closing");const handleAnimationEnd=()=>{this.dialogModal.classList.remove("dialog-modal--closing"),this.dialogModal.removeEventListener("animationend",handleAnimationEnd),this.dialogModal.close()};this.dialogModal.addEventListener("animationend",handleAnimationEnd),setTimeout(()=>{this.dialogModal.classList.contains("dialog-modal--closing")&&handleAnimationEnd()},this.animationDuration*1e3)}#onClose(){document.body.classList.remove("overflow-hidden")}#onBackdropClick(event){const rect=this.dialogModal.getBoundingClientRect();rect.top<=event.clientY&&event.clientY<=rect.top+rect.height&&rect.left<=event.clientX&&event.clientX<=rect.left+rect.width||this.#animateClose()}#onResize(){const currentWidth=window.innerWidth;currentWidth!==this.#lastWidth&&(this.#lastWidth=currentWidth,this.isOpen&&this.#animateClose())}open(){this.#showModal()}close(){this.dialogModal&&this.dialogModal.open&&this.#animateClose()}get isOpen(){return this.dialogModal?this.dialogModal.open:!1}}customElements.get("dialog-component")||customElements.define("dialog-component",DialogComponent); 2//# sourceMappingURL=/cdn/shop/t/18/assets/popup.js.map?v=73383993937682072941781090903
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.