1(function(){if(window.ComingSoonNotify&&window.ComingSoonNotify.initialized)return;var SELECTOR="[data-coming-soon-notify]";function normalizeLocale(raw){return!raw||typeof raw!="string"?"":raw.trim().replace(/_/g,"-")}function isValidEmail(value){return/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(String(value||"").trim())}function getMessage(root,key){var tpl=root.querySelector("[data-coming-soon-msg-"+key+"]");return tpl?tpl.tagName==="TEMPLATE"&&tpl.content?tpl.content.textContent.trim():(tpl.textContent||"").trim():""}function setStatus(root,type,message){var status=root.querySelector("[data-coming-soon-status]");status&&(status.hidden=!message,status.textContent=message||"",status.className="coming-soon-notify__status coming-soon-notify__status--"+(type||"idle"),message?status.removeAttribute("hidden"):status.setAttribute("hidden",""))}function setLoading(root,loading){var btn=root.querySelector("[data-coming-soon-submit]");btn&&(btn.disabled=!!loading,btn.classList.toggle("btn--loading",!!loading),btn.setAttribute("aria-busy",loading?"true":"false"))}function updateSku(root,sku){var next=sku||"";root.dataset.sku=next;var email=root.querySelector("[data-coming-soon-email]");if(email&&email.setAttribute("aria-describedby",root.querySelector("[data-coming-soon-status]")?.id||""),!next)setStatus(root,"error",getMessage(root,"missing-sku"));else if(root.querySelector("[data-coming-soon-status]")?.classList.contains("coming-soon-notify__status--error")){var msg=root.querySelector("[data-coming-soon-status]").textContent;msg===getMessage(root,"missing-sku")&&setStatus(root,"idle","")}}function resolveEndpoint(root){return(root.dataset.endpoint||"/api/coming-soon").trim()}async function submitNotify(root){var emailInput=root.querySelector("[data-coming-soon-email]"),honeypot=root.querySelector("[data-coming-soon-honeypot]"),email=emailInput?emailInput.value.trim():"",locale=normalizeLocale(root.dataset.locale),sku=(root.dataset.sku||"").trim(),website=honeypot?honeypot.value:"";if(setStatus(root,"idle",""),website){setStatus(root,"error",getMessage(root,"error"));return}if(!isValidEmail(email)){setStatus(root,"error",getMessage(root,"invalid-email")),emailInput&&emailInput.focus();return}if(!sku){setStatus(root,"error",getMessage(root,"missing-sku"));return}if(!locale){setStatus(root,"error",getMessage(root,"error"));return}setLoading(root,!0);var controller=new AbortController,timeoutId=setTimeout(function(){controller.abort()},2e4),headers={Accept:"application/json","Content-Type":"application/json"},shopDomain=(root.dataset.shopDomain||"").trim();shopDomain&&(headers["x-shopify-shop-domain"]=shopDomain);try{var res=await fetch(resolveEndpoint(root),{method:"POST",headers,credentials:"same-origin",signal:controller.signal,body:JSON.stringify({email,locale,sku,productId:root.dataset.productId||void 0,website})});clearTimeout(timeoutId);var body={};try{body=await res.json()}catch{body={}}if(res.ok&&body.ok){body.alreadySubscribed?setStatus(root,"already",getMessage(root,"already")):setStatus(root,"success",getMessage(root,"success"));return}if(res.status===409||body.code==="ALREADY_SUBSCRIBED"){setStatus(root,"already",getMessage(root,"already"));return}if(res.status===400&&body.code==="INVALID_EMAIL"){setStatus(root,"error",getMessage(root,"invalid-email"));return}if(res.status===400&&body.code==="MISSING_SKU"){setStatus(root,"error",getMessage(root,"missing-sku"));return}setStatus(root,"error",getMessage(root,"error"))}catch{clearTimeout(timeoutId),setStatus(root,"error",getMessage(root,"error"))}finally{setLoading(root,!1)}}function bindAll(scope){(scope||document).querySelectorAll(SELECTOR).forEach(function(root){updateSku(root,root.dataset.sku||"")})}function onVariantChange(evt){var variant=evt&&evt.detail&&evt.detail.variant;variant&&document.querySelectorAll(SELECTOR).forEach(function(root){if(root.dataset.lockSku!=="true"){var sectionId=root.dataset.sectionId;if(sectionId){var variantJsonEl=document.getElementById("CurrentVariantJson-"+sectionId)||document.getElementById("VariantsJson-"+sectionId);if(!variantJsonEl){updateSku(root,variant.sku||"");return}updateSku(root,variant.sku||"")}}})}var OVERLAY_SELECTOR="[data-coming-soon-overlay]";function openOverlay(targetId){var overlay=targetId&&document.getElementById(targetId);if(overlay){overlay.parentElement!==document.body&&document.body.appendChild(overlay),overlay.hidden=!1,document.body.classList.add("bis-overlay-open");var closeBtn=overlay.querySelector(".js-coming-soon-overlay-close");closeBtn&&closeBtn.focus()}}function closeOverlay(overlay){overlay&&(overlay.hidden=!0,document.querySelector(OVERLAY_SELECTOR+":not([hidden])")||document.body.classList.remove("bis-overlay-open"))}document.addEventListener("click",function(e){var openBtn=e.target.closest(".
1js-coming-soon-notify-btn");if(openBtn){e.preventDefault(),e.stopPropagation(),openOverlay(openBtn.getAttribute("data-overlay-target")||openBtn.dataset.overlayTarget);return}var closeEl=e.target.closest(".js-coming-soon-overlay-close");if(closeEl){closeOverlay(closeEl.closest(OVERLAY_SELECTOR));return}var btn=e.target.closest("[data-coming-soon-submit]");if(btn){var root=btn.closest(SELECTOR);root&&submitNotify(root)}}),document.addEventListener("keydown",function(e){if(e.key==="Escape"){var open=document.querySelectorAll(OVERLAY_SELECTOR+":not([hidden])");open.forEach(function(overlay){closeOverlay(overlay)})}}),document.addEventListener("keydown",function(e){if(e.key==="Enter"){var input=e.target.closest("[data-coming-soon-email]");if(input){var root=input.closest(SELECTOR);root&&(e.preventDefault(),submitNotify(root))}}}),bindAll(document),document.addEventListener("variant:change",onVariantChange),document.addEventListener("variantChange",onVariantChange),document.addEventListener("shopify:section:load",function(){bindAll(document)}),document.querySelectorAll("form.product-single__main-form").forEach(function(form){form.querySelector("[data-coming-soon-blocked]")&&form.addEventListener("submit",function(e){e.preventDefault(),e.stopPropagation()})}),window.ComingSoonNotify={initialized:!0,bindAll,updateSku}})(); 2//# sourceMappingURL=/cdn/shop/t/132/assets/coming-soon-notify.js.map?v=174443105118755488791790672546
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.