var c=Object.defineProperty;var l=(i,e,s)=>e in i?c(i,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):i[e]=s;var n=(i,e,s)=>(l(i,typeof e!="symbol"?e+"":e,s),s);class d{constructor(e){this.body=e,this.submit=this.submit.bind(this),this.errors=this.errors.bind(this),this.process=this.process.bind(this),this.success=this.success.bind(this),this.successMessage=this.body.getAttribute("data-success-message")||"Success! Please verify your email address to confirm your subscription.",this.alreadySubscribedMessage=this.body.getAttribute("data-already-subscribed-message")||"You already subscribed to this newsletter.",this.initialize.call(this)}initialize(){const e=this.body.querySelector("[data-element='success']");e&&(e.style.display="none");const s=this.body.querySelector("[data-element='errors']");s&&(s.style.display="none"),this.body.addEventListener("submit",this.submit.bind(this))}async submit(e){e&&(e.preventDefault(),e.stopPropagation()),this.reset();const s=this.body,t=new FormData(s),o=document.referrer;t.append("referrer",o);try{const r=fetch(s.action,{method:"POST",body:t,headers:{Accept:"application/json"}});this.toggle(s.querySelectorAll("input, button"),!0),this.process(s,await r)}catch(r){this.toggle(s.querySelectorAll("input, button"),!1),this.errors({fields:["errors"],messages:[r]})}}async process(e,s){this.toggle(e.querySelectorAll("input, button"),!1);const t=await s.json();if(!s.ok)return this.errors(Object.entries(t.errors));switch(t.status){case"success":this.success(t);break;default:this.errors(t.errors);break}}success(e){this.afterSubscribe(e)}afterSubscribe(e){let s=e.is_new===!1?"already-subscribed":"success",t=e.is_new===!1?this.alreadySubscribedMessage:this.successMessage;const o=this.body.querySelector("[data-element='"+s+"']");if(o){o.style.display="block";return}const r=document.createElement("div");r.className="sendstack-alert sendstack-alert-"+s,r.dataset.element=s,r.dataset.group="alert",r.innerText=t;const a=this.body.querySelector("[data-element='fields']")||this.body;a.parentElement.replaceChild(r,a)}errors(e){const s=this.body.querySelector("[data-element='errors']");!s||(s.style.display="block",e.forEach(t=>{const o=document.createElement("li");o.innerText=t[1],s.appendChild(o)}))}toggle(e,s){e.forEach(t=>{t.disabled=s})}reset(){const e=this.body.querySelector("[data-element='errors']");!e||(e.innerHTML="",e.style.display="none")}}class u{constructor(){n(this,"forms",[]);/comp|inter|loaded/.test(document.readyState)?this.initialize():document.addEventListener("DOMContentLoaded",()=>{this.initialize()})}getFormElements(){return[].slice.call(document.querySelectorAll("[data-sendstack-form]"))}initialize(){this.getFormElements().forEach(s=>{this.forms.includes(s)||(this.forms.push(s),new d(s))})}}window!==void 0&&(window.SendStack=new u);