(()=>{class e{constructor(){this.initElements()}initElements(){this.selectors={magic:"form#magic-link-form",login:"form#loginform"},this.ui=window.uiFromSelectors(this.selectors),this.forms={};for(let[e,t]of Object.entries(this.ui))t&&(this.forms[e]=window.jvbForm.registerForm(t,{cache:!1,showStatus:!1,useQueue:!1}),"magic"===e&&window.jvbForm.subscribe((n,i)=>{if(i.config===this.forms[e])if("form-submit"===n)t.hidden=!0,this.spinner=window.jvbTemplates.create("spinner",{}),t.parentElement.append(this.spinner);else if("form-success"===n){t.hidden=!0;let e=window.jvbTemplates.create("formSummary",{config:t,changes:{}});Array.from(e.children).forEach(e=>{if("H2"===e.tagName)e.textContent="Check your email!";else if(e.classList.contains("message")){let t=Array.from(e.children);t[0].textContent="You'll find a magic link to log in in your email",t[1].textContent="If you can't find it - check your spam folder.",t[2].textContent="The link will expire in 15 minutes.",t[3].remove()}else e.classList.contains("summary")&&e.remove()}),this.spinner&&this.spinner.remove(),t.parentElement.append(e)}else if("form-error"===n)if(this.spinner&&this.spinner.remove(),Object.hasOwn(i.data,"code")&&"rate_limit_exceeded"===i.data.code){let e=window.jvbTemplates.create("formSummary",{config:t,changes:{}});Array.from(e.children).forEach(e=>{if("H2"===e.tagName)e.textContent="Slow down there!";else if(e.classList.contains("message")){let t=Array.from(e.children);t[0].textContent="You tried submitting a few too many times in a short window.",t[1].textContent="Try again in an hour or so.",t[2].remove(),t[3].remove()}else e.classList.contains("summary")&&e.remove()}),t.parentElement.append(e)}else{let e=window.jvbTemplates.create("formSummary",{config:t,changes:{}});Array.from(e.children).forEach(e=>{if("H2"===e.tagName)e.textContent="Something went wrong.";else if(e.classList.contains("message")){let t=Array.from(e.children);t[0].textContent="We aren't exactly sure what.",t[1].textContent="Try clearing your cookies and trying again. If the problem persists, let us know!",t[2].remove(),t[3].remove()}else e.classList.contains("summary")&&e.remove()}),t.parentElement.append(e)}}))}}document.addEventListener("DOMContentLoaded",async function(){window.auth.subscribe(t=>{"auth-loaded"===t&&(window.login=new e)})})})();