{"version":3,"sources":["Pages/Getting-Started/SignUp.js"],"names":["Dialog","Form","xhr","SignUp","formElement","confirmationMessageContainerId","agreeTermsOfServiceId","requireTermsDialogId","preorderCheckUrl","_emailAddress","_forgeryToken","_agreeTermsCheckbox","document","getElementById","_requireTermsDialog","_preorderCheckUrl","_email","addEventListener","_onEmailInput","bind","_signUpForm","done","href","data","resendUrl","Email","value","setTimeout","window","location","split","fail","e","JSON","parse","err","responseText","type","errorContainer","errorElement","querySelector","error","code","innerHTML","message","classList","remove","add","onbeforesubmit","_onBeforeSubmit","form","checked","open","parentNode","style","zIndex","_emailCheckBusy","email","target","_hidePreorder","_isEmail","_emailCheckTimeout","clearTimeout","checkedEmail","_checkForPreorder","re","test","container","disabled","items","querySelectorAll","i","length","then","preOrderExists","innerText","firstName","orderDate"],"mappings":"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","file":"SignUp.js","sourcesContent":["import { Dialog } from \"../../Components/Dialog.js\";\r\nimport { Form } from \"../../Components/Forms.js\";\r\nimport { xhr } from \"../../Components/Ajax.js\";\r\n\r\nclass SignUp {\r\n\r\n initializeSignUpForm(formElement, confirmationMessageContainerId, agreeTermsOfServiceId, requireTermsDialogId, preorderCheckUrl) {\r\n this._emailAddress = \"\";\r\n this._forgeryToken = \"\";\r\n this._agreeTermsCheckbox = document.getElementById(agreeTermsOfServiceId);\r\n this._requireTermsDialog = new Dialog(requireTermsDialogId);\r\n this._preorderCheckUrl = preorderCheckUrl;\r\n this._email = document.getElementById(\"Email\");\r\n this._email != null ? this._email.addEventListener(\"input\", this._onEmailInput.bind(this), true) : \"\";\r\n\r\n this._signUpForm = new Form(\r\n formElement,\r\n {\r\n done: data => {\r\n document.getElementById(\"resend\").href = data.resendUrl;\r\n\r\n this._emailAddress = formElement.Email.value;\r\n this._forgeryToken = formElement[\"__RequestVerificationToken\"].value;\r\n\r\n setTimeout(() => {\r\n window.location = location.href.split('/')[0]+\"/\"+data.resendUrl;\r\n\r\n }, 750);\r\n },\r\n\r\n fail: err => {\r\n let e = JSON.parse(err.responseText);\r\n\r\n if (e && e.type === \"app\") {\r\n let errorContainer = document.getElementById(\"error-div\");\r\n let errorElement = errorContainer.querySelector(\".error\");\r\n\r\n if (e.error.code === 1) {\r\n errorElement.innerHTML = `${e.error.message} Please contact our support team.`;\r\n errorContainer.classList.remove(\"hide\");\r\n }\r\n else if (e.error.code === 2) {\r\n errorElement.innerHTML = e.error.message;\r\n errorContainer.classList.remove(\"hide\");\r\n }\r\n else {\r\n document.getElementById(\"unknown-error-div\").classList.remove(\"hide\");\r\n }\r\n\r\n formElement.classList.add(\"submit-error\");\r\n }\r\n }\r\n });\r\n\r\n this._signUpForm.onbeforesubmit = this._onBeforeSubmit.bind(this);\r\n }\r\n _onBeforeSubmit(form) {\r\n // Show a dialog if terms have not been agreed to\r\n if (!this._agreeTermsCheckbox.checked) {\r\n this._requireTermsDialog.open();\r\n document.querySelector(\".dialog-box.require-terms\").parentNode.classList.remove(\"removing\");\r\n document.querySelector(\".dialog-box.require-terms\").parentNode.style.zIndex = \"2001\";\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n _onEmailInput(e) {\r\n\r\n if (this._emailCheckBusy)\r\n return;\r\n\r\n var email = e.target.value;\r\n\r\n if (email === \"\")\r\n this._hidePreorder();\r\n\r\n if (this._isEmail(email) === false)\r\n return;\r\n\r\n if (this._emailCheckTimeout)\r\n window.clearTimeout(this._emailCheckTimeout);\r\n\r\n this._emailCheckTimeout = window.setTimeout(() => {\r\n this._emailCheckBusy = true;\r\n this._emailCheckTimeout = null;\r\n\r\n try {\r\n var checkedEmail;\r\n do {\r\n checkedEmail = e.target.value;\r\n this._checkForPreorder(checkedEmail);\r\n } while (checkedEmail !== e.target.value);\r\n } finally {\r\n this._emailCheckBusy = false;\r\n }\r\n\r\n }, 500);\r\n }\r\n\r\n _isEmail(email) {\r\n const re = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,})$/;\r\n return re.test(email);\r\n }\r\n\r\n _hidePreorder() {\r\n var container = document.getElementById('preorder-confirm');\r\n container.classList.add('hide');\r\n this._signUpForm.form.querySelector('button[type=submit]').disabled = '';\r\n var items = document.querySelectorAll('.full-signup');\r\n for (var i = 0; i < items.length; ++i)\r\n items[i].classList.remove('hide');\r\n }\r\n\r\n _checkForPreorder(email) {\r\n xhr(this._preorderCheckUrl + '?email=' + email).then((data) => {\r\n var container = document.getElementById('preorder-confirm');\r\n if (data.preOrderExists) {\r\n document.getElementById('PreorderFirstName').innerText = data.firstName;\r\n document.getElementById('PreorderOrderDate').innerText = data.orderDate;\r\n document.getElementById('EmailAddress').value = email;\r\n container.classList.remove('hide');\r\n this._signUpForm.form.querySelector('button[type=submit]').disabled = 'disabled';\r\n\r\n var items = document.querySelectorAll('.full-signup');\r\n for (var i = 0; i < items.length; ++i)\r\n items[i].classList.add('hide');\r\n } else {\r\n this._hidePreorder();\r\n }\r\n });\r\n }\r\n}\r\n\r\nexport { SignUp };\r\n"]}