Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;// bundle: authAppJs___89c208cd64e31806a550867f70e00d2c_ba7515af-0c9c-49f1-bccc-caea60ea2699_m
- ;// files: dist/login.js
- ;// dist/login.js
- "use strict";
- robloxApp.directive("toggleLoading", [function() {
- return {
- restrict: "A",
- link: function(n, t, i) {
- var f = '<div class="spinner spinner-sm spinner-no-margin' + (i.isInline ? "" : " spinner-block") + '"></div>', r = angular.element(f), u;
- t.after(r),
- r.hide(),
- u = n.$watch(i.isLoading, function(n, i) {
- if (n !== i)
- if (n) {
- var u = t[0].offsetHeight
- , f = t[0].offsetWidth;
- r.css("height", u + "px"),
- r.css("width", f + "px"),
- t.hide(),
- r.show()
- } else
- t.show(),
- r.hide()
- }, !0),
- n.$on("$destroy", function() {
- u && u()
- })
- }
- }
- }
- ]),
- robloxApp.directive("systemFeedback", [function() {
- return {
- restrict: "A",
- replace: !1,
- templateUrl: "system-feedback",
- scope: {
- showErrorBanner: "=",
- bannerText: "="
- },
- link: function(n) {
- n.closeErrorBanner = function() {
- n.showErrorBanner = !1
- }
- }
- }
- }
- ]);
- var login = angular.module("login", ["captcha", "roblox.formEvents", "modal"]).config(["languageResourceProvider", function(n) {
- n.setLanguageKeysFromFile(Roblox.Lang.LoginResources),
- n.setLanguageKeysFromFile(Roblox.Lang.CaptchaResources)
- }
- ]);
- angular.element(function() {
- angular.bootstrap("#login-container", ["robloxApp", "authAppHtmlTemplateApp", "login"])
- }),
- login.constant("loginConstants", {
- urls: {
- metaData: "/login/meta-data",
- loginApi: "/v2/login",
- credentialsVerificationApi: "/v2/credentials/verification",
- credentialsVerificationSendApi: "/v2/credentials/verification/send",
- loginCaptchaApi: "/captcha/validate/login",
- twoStepVerification: "/login/twostepverification",
- forgotCredentials: "/login/forgot-password-or-username",
- games: "/games",
- home: "/home",
- securityNotification: "/login/securityNotification",
- login: "/login",
- redirectToFb: "/social/redirect-to-facebook",
- signUpRedirect: "/account/signupredir"
- },
- templates: {
- verifyEmail: "verify-email"
- },
- controllers: {
- verifyEmail: "verifyEmailController"
- },
- errorCodes: {
- unknownError: 0,
- badCredentials: 1,
- captcha: 2,
- accountNotFound: 3,
- passwordResetRequired: 4,
- noPassword: 5,
- accountIssue: 6,
- tooManyAttempts: 7,
- defaultLoginRequired: 9,
- unverifiedCredentials: 10,
- captchaLoadFailed: 11,
- captchaVerifyFailed: 12,
- captchaUnknownError: 13
- },
- sendVerificationEmailErrorCodes: {
- tooManyAttempts: 2
- },
- statusCodes: {
- flooded: 429
- },
- credentialTypes: {
- username: "Username",
- email: "Email",
- phone: "PhoneNumber"
- },
- urlQueryNames: {
- errorCode: "errorCode",
- cType: "ctype",
- username: "username",
- samlRequest: "samlRequest",
- samlRelayState: "samlRelayState"
- },
- counters: {
- prefix: "WebsiteLogin_",
- firstAttempt: "FirstAttempt",
- attempt: "Attempt",
- success: "Success",
- captcha: "Captcha",
- passwordResetRequired: "PasswordResetRequired",
- unverifiedAccount: "UnverifiedAccount",
- invalidCredentials: "InvalidCredentials",
- accountNotFound: "AccountNotFound",
- noPassword: "NoPassword",
- accountIssue: "AccountIssue",
- tooManyAttempts: "TooManyAttempts",
- defaultLoginRequired: "DefaultLoginRequired",
- redirectToLogin: "RedirectToLogin",
- captchaLoadFailed: "CaptchaLoadFailed",
- captchaVerifyFailed: "CaptchaVerifyFailed",
- captchaUnknownError: "CaptchaUnknownError",
- unknownError: "UnknownError"
- },
- newLoginQueryString: "nl=true",
- loginSubmitButtonName: "loginSubmit",
- fbLoginButtonName: "fbLoginSubmit",
- landingContext: "landing",
- atSymbol: "@",
- verifyEmailContextSuffix: "_verifyEmail"
- }),
- login.factory("loginService", ["httpService", "loginConstants", function(n, t) {
- return {
- getMetaData: function() {
- var i = {
- url: Roblox.EnvironmentUrls.authAppSite + t.urls.metaData
- };
- return n.httpGet(i)
- },
- login: function(i) {
- var r = {
- url: Roblox.EnvironmentUrls.authApi + t.urls.loginApi
- };
- return n.httpPost(r, i, !0)
- },
- canVerifyCredentials: function(i) {
- var r = {
- url: Roblox.EnvironmentUrls.authApi + t.urls.credentialsVerificationApi
- };
- return n.httpGet(r, i, !0)
- },
- verifyCredentials: function(i) {
- var r = {
- url: Roblox.EnvironmentUrls.authApi + t.urls.credentialsVerificationSendApi
- };
- return n.httpPost(r, i, !0)
- },
- setReturnUrl: function(n) {
- Roblox.Auth = Roblox.Auth || {},
- Roblox.Auth.returnUrl = n
- },
- getReturnUrl: function() {
- return Roblox.Auth && Roblox.Auth.returnUrl
- }
- }
- }
- ]),
- login.directive("loginBase", [function() {
- return {
- restrict: "A",
- replace: !1,
- templateUrl: "login-base",
- controller: "loginController",
- link: function(n, t, i) {
- n.loginBaseParams = {
- isLoginFunCaptchaEnabled: "true" === i.isLoginFunCaptchaEnabled,
- isAlwaysCaptchaLoginEnabled: "true" === i.isAlwaysCaptchaLoginEnabled
- }
- }
- }
- }
- ]),
- login.directive("loginForm", [function() {
- return {
- restrict: "A",
- replace: !1,
- templateUrl: "login-form",
- controller: "loginFormController",
- link: function(n, t, i) {
- n.loginParams = {
- context: i.context,
- redirectToLoginPageOnError: "true" === i.redirectToLoginPageOnError,
- redirectToHomePostLogin: "true" === i.redirectToHomePostLogin,
- redirectToLoginPageWhenUsernameIsRequired: "true" === i.redirectToLoginPageWhenUsernameIsRequired,
- isFacebookSignInEnabled: "true" === i.isFacebookSignInEnabled,
- useFacebookRedirect: "true" === i.useFacebookRedirect,
- includeMessageBanner: "true" === i.includeMessageBanner,
- isLoginFunCaptchaEnabled: "true" === i.isLoginFunCaptchaEnabled,
- isAlwaysCaptchaLoginEnabled: "true" === i.isAlwaysCaptchaLoginEnabled
- }
- }
- }
- }
- ]),
- login.controller("loginController", ["$scope", "$httpParamSerializerJQLike", "loginService", "urlConstants", "loginConstants", function(n, t, i, r, u) {
- var f = Roblox.EnvironmentUrls.websiteUrl + u.urls.signUpRedirect;
- n.loginData = {
- signUpUrl: f
- },
- n.init = function() {
- var t = i.getReturnUrl();
- t ? n.appendReturnUrlToSignUpUrl(t) : i.getMetaData().then(function(t) {
- i.setReturnUrl(t.ReturnUrl),
- n.appendReturnUrlToSignUpUrl(t.ReturnUrl)
- })
- }
- ,
- n.appendReturnUrlToSignUpUrl = function(i) {
- if (i) {
- var u = {
- returnUrl: i
- }
- , e = r.urlQueryStringPrefix + t(u);
- n.loginData.signUpUrl = f + e
- }
- }
- ,
- n.init()
- }
- ]),
- login.controller("loginFormController", ["$scope", "$injector", "$window", "$timeout", "$httpParamSerializerJQLike", "$uibModal", "urlService", "phoneService", "languageResource", "loginService", "captchaInterface", "loginConstants", "urlConstants", function(n, t, i, r, u, f, e, o, s, h, c, l, a) {
- n.loginFormData = {
- captchaApiUrl: Roblox.EnvironmentUrls.apiProxyUrl + l.urls.loginCaptchaApi,
- forgotCredentialsUrl: Roblox.EnvironmentUrls.websiteUrl + l.urls.forgotCredentials,
- homeUrl: Roblox.EnvironmentUrls.websiteUrl + l.urls.home,
- loginPageUrl: Roblox.EnvironmentUrls.websiteUrl + l.urls.login,
- securityNotificationUrl: Roblox.EnvironmentUrls.websiteUrl + l.urls.securityNotification,
- redirectToFb: Roblox.EnvironmentUrls.websiteUrl + l.urls.redirectToFb
- },
- n.loginLayout = {
- isFirstSubmit: !0
- },
- n.forms = {},
- n.loginParams = n.loginParams || {},
- n.funCaptchaSetting = {};
- var v = n.$watch(function() {
- return n.loginParams
- }, function(t) {
- var i, r;
- t && (i = n.getUrlParamValue(l.urlQueryNames.errorCode),
- i && !n.loginParams.redirectToLoginPageOnError ? (r = n.getUrlParamValue(l.urlQueryNames.cType),
- n.loginFormData.credentialValue = n.getUrlParamValue(l.urlQueryNames.username),
- n.setEnteredCredentialType(r),
- n.loginLayout.error = i ? n.getErrorMessage(parseInt(i, 10)) : null) : n.loginFormData.credentialValue = null,
- n.loginParams.isLoginFunCaptchaEnabled && (n.setFunCaptchaSetting(),
- n.loginLayout.forceCaptcha = !0))
- }, !0);
- n.getUrlParamValue = function(n) {
- if (!Roblox.UrlParser)
- return null;
- var t = Roblox.UrlParser.getParameterValueByName(n);
- return t ? encodeURIComponent(t) : t
- }
- ,
- n.$on("$destroy", function() {
- v()
- }),
- n.init = function(t) {
- h.getMetaData().then(function(t) {
- angular.extend(n.loginFormData, {
- returnUrl: t.ReturnUrl
- }),
- h.setReturnUrl(t.ReturnUrl)
- }),
- n.loginLayout.isProcessing = !1,
- n.captchaSetting = {
- id: t || c.ids.login,
- isActivated: !1,
- captchaType: c.types.login,
- successCB: null,
- errorCB: null
- },
- n.loginFormData.samlRequest = n.getUrlParamValue(l.urlQueryNames.samlRequest),
- n.loginFormData.samlRelayState = n.getUrlParamValue(l.urlQueryNames.samlRelayState)
- }
- ,
- n.setFunCaptchaSetting = function() {
- var i = t.get("funCaptchaInterface");
- n.funCaptchaSetting = {
- id: i.ids.login,
- isActivated: !1,
- captchaType: i.types.login,
- successCb: function() {
- n.loginLayout.forceCaptcha = !1,
- n.submit()
- },
- errorCb: function(t) {
- var i = n.getLoginErrorCodeFromCaptchaErrorCode(t);
- r(function() {
- n.loginLayout.isProcessing = !1,
- n.setErrorMessage(i, !0)
- })
- },
- closedCb: function() {
- n.loginLayout.isProcessing = !1
- },
- showInModal: !0,
- extraValidationParams: {
- credentialsType: n.loginFormData.enteredCredentialType,
- credentialsValue: n.loginFormData.credentialValue
- }
- }
- }
- ,
- n.getLoginErrorCodeFromCaptchaErrorCode = function(n) {
- switch (n) {
- case Roblox.CaptchaConstants.errorCodes.failedToLoadProviderScript:
- return l.errorCodes.captchaLoadFailed;
- case Roblox.CaptchaConstants.errorCodes.failedToVerify:
- return l.errorCodes.captchaVerifyFailed;
- default:
- return l.errorCodes.captchaUnknownError
- }
- }
- ,
- n.setEnteredCredentialType = function(t) {
- n.loginFormData.enteredCredentialType = t ? t : n.isEmail(n.loginFormData.credentialValue) ? l.credentialTypes.email : o.isPhoneNumber(n.loginFormData.credentialValue) ? l.credentialTypes.phone : l.credentialTypes.username
- }
- ,
- n.login = function() {
- var t = n.isEmail(n.loginFormData.credentialValue), r = o.isPhoneNumber(n.loginFormData.credentialValue), u;
- (n.loginFormData.isDefaultLoginRequired || (t ? n.loginFormData.enteredCredentialType = l.credentialTypes.email : r && (n.loginFormData.enteredCredentialType = l.credentialTypes.phone)),
- t || r || (n.loginLayout.showErrorBanner = !1),
- n.loginParams.isAlwaysCaptchaLoginEnabled && n.loginLayout.forceCaptcha) ? n.activateCaptcha() : (u = {
- cvalue: n.loginFormData.credentialValue,
- ctype: n.loginFormData.enteredCredentialType,
- password: n.loginFormData.password
- },
- h.login(u).then(function(t) {
- n.incrementEphemeralCounter(l.counters.success);
- var r = t.data;
- n.loginFormData.samlRequest ? n.handleSamlRequest(r) : i.location.href = n.getRedirectUrl(r)
- }, function(t) {
- n.handleLoginError(t.data, t.status)
- }))
- }
- ,
- n.handleLoginError = function(t, i) {
- var r, u;
- if (i !== l.statusCodes.flooded) {
- r = t && t.errors && t.errors.length > 0 && t.errors[0].code;
- switch (r) {
- case l.errorCodes.captcha:
- return n.activateCaptcha(!0),
- n.loginLayout.isProcessing = !1,
- void n.incrementEphemeralCounter(l.counters.captcha);
- case l.errorCodes.passwordResetRequired:
- return n.incrementEphemeralCounter(l.counters.passwordResetRequired),
- void n.navigateToSecurityNotificationPage()
- }
- r === l.errorCodes.unverifiedCredentials && n.loginFormData.enteredCredentialType === l.credentialTypes.email ? (n.incrementEphemeralCounter(l.counters.unverifiedAccount),
- u = {
- credentialType: l.credentialTypes.email,
- credentialValue: n.loginFormData.credentialValue,
- password: n.loginFormData.password
- },
- h.canVerifyCredentials(u).then(function(t) {
- t && t.data && t.data.canSend ? (n.promptUserToVerifyEmail(),
- n.loginLayout.isProcessing = !1) : n.setErrorMessage(r)
- }, function() {
- n.setErrorMessage(r)
- })) : n.setErrorMessage(r, !0)
- } else
- n.setErrorMessage(l.errorCodes.tooManyAttempts, !0)
- }
- ,
- n.promptUserToVerifyEmail = function() {
- f.open({
- backdrop: "static",
- templateUrl: l.templates.verifyEmail,
- controller: l.controllers.verifyEmail,
- resolve: {
- injectedData: {
- context: n.loginParams.context,
- email: n.loginFormData.credentialValue,
- password: n.loginFormData.password
- }
- }
- }).result.then(angular.noop, angular.noop)
- }
- ,
- n.setErrorMessage = function(t, r) {
- var e = t === l.errorCodes.defaultLoginRequired || t === l.errorCodes.unverifiedCredentials, f;
- if (n.loginParams.redirectToLoginPageOnError || n.loginParams.redirectToLoginPageWhenUsernameIsRequired && e)
- return f = {
- errorCode: t,
- ctype: n.loginFormData.enteredCredentialType
- },
- e || (f.username = n.loginFormData.credentialValue),
- n.incrementEphemeralCounter(l.counters.redirectToLogin),
- void (i.location.href = n.loginFormData.loginPageUrl + a.urlQueryStringPrefix + u(f));
- n.loginLayout.isProcessing = !1,
- n.loginLayout.error = n.getErrorMessage(t, r)
- }
- ,
- n.getErrorMessage = function(t, i) {
- var r, u;
- switch (t) {
- case l.errorCodes.badCredentials:
- return i && n.incrementEphemeralCounter(l.counters.invalidCredentials),
- n.getInvalidCredentialsErrorMessage();
- case l.errorCodes.accountNotFound:
- return i && n.incrementEphemeralCounter(l.counters.accountNotFound),
- s.get("Response.AccountNotFound");
- case l.errorCodes.noPassword:
- return i && n.incrementEphemeralCounter(l.counters.noPassword),
- s.get("Response.UseSocialSignOn");
- case l.errorCodes.accountIssue:
- return i && n.incrementEphemeralCounter(l.counters.accountIssue),
- s.get("Response.AccountIssueErrorContactSupport");
- case l.errorCodes.tooManyAttempts:
- return i && n.incrementEphemeralCounter(l.counters.tooManyAttempts),
- s.get("Response.TooManyAttemptsPleaseWait");
- case l.errorCodes.defaultLoginRequired:
- return i && n.incrementEphemeralCounter(l.counters.defaultLoginRequired),
- r = n.getDefaultLoginRequiredErrorMessage(),
- n.handleDefaultLoginRequired(r),
- null;
- case l.errorCodes.unverifiedCredentials:
- return i && n.incrementEphemeralCounter(l.counters.unverifiedAccount),
- u = n.getUnverifiedCredentialsErrorMessage(),
- n.handleDefaultLoginRequired(u),
- null;
- case l.errorCodes.captchaLoadFailed:
- return i && n.incrementEphemeralCounter(l.counters.captchaLoadFailed),
- s.get("Response.CaptchaErrorFailedToLoad");
- case l.errorCodes.captchaVerifyFailed:
- return i && n.incrementEphemeralCounter(l.counters.captchaVerifyFailed),
- s.get("Response.CaptchaErrorFailedToVerify");
- case l.errorCodes.captchaUnknownError:
- return i && n.incrementEphemeralCounter(l.counters.captchaUnknownError),
- s.get("Message.UnknownErrorTryAgain");
- default:
- return i && n.incrementEphemeralCounter(l.counters.unknownError),
- s.get("Message.UnknownErrorTryAgain")
- }
- }
- ,
- n.activateCaptcha = function(t) {
- n.loginLayout.forceCaptcha = t,
- n.loginParams.isLoginFunCaptchaEnabled ? (n.funCaptchaSetting.extraValidationParams.credentialsType = n.loginFormData.credentialType,
- n.funCaptchaSetting.extraValidationParams.credentialsValue = n.loginFormData.credentialValue,
- n.funCaptchaSetting.isActivated = !0) : (Roblox.Captcha.setEndpoint(Roblox.Captcha.types.login, n.loginFormData.captchaApiUrl + "?" + u({
- username: n.loginFormData.credentialValue
- })),
- n.captchaSetting.successCB = function() {
- n.submit()
- }
- ,
- n.captchaSetting.isActivated = !0)
- }
- ,
- n.navigateToSecurityNotificationPage = function() {
- i.location.href = n.loginFormData.securityNotificationUrl
- }
- ,
- n.handleSamlRequest = function(t) {
- var i, f = n.loginFormData.credentialValue, e, r;
- t && t.tl ? i = t.tl : t && t.twoStepVerificationData && (i = t.twoStepVerificationData.ticket,
- f = t.user.name),
- e = i ? l.urls.twoStepVerification + "?" + u({
- username: f,
- tl: i,
- returnUrl: n.loginFormData.returnUrl
- }) : n.loginFormData.returnUrl,
- r = n.forms.samlRequestForm.$$element,
- r.attr("action", e),
- r[0].submit()
- }
- ,
- n.getInvalidCredentialsErrorMessage = function() {
- switch (n.loginFormData.enteredCredentialType) {
- case l.credentialTypes.email:
- return s.get("Response.IncorrectEmailOrPassword");
- case l.credentialTypes.phone:
- return s.get("Response.IncorrectPhoneOrPassword");
- default:
- return s.get("Response.IncorrectUsernamePassword")
- }
- }
- ,
- n.getDefaultLoginRequiredErrorMessage = function() {
- switch (n.loginFormData.enteredCredentialType) {
- case l.credentialTypes.email:
- return s.get("Response.EmailLinkedToMultipleAccountsLoginWithUsername");
- case l.credentialTypes.phone:
- return s.get("Response.LoginWithUsername");
- default:
- return ""
- }
- }
- ,
- n.getUnverifiedCredentialsErrorMessage = function() {
- switch (n.loginFormData.enteredCredentialType) {
- case l.credentialTypes.email:
- return s.get("Response.UnverifiedEmailLoginWithUsername");
- case l.credentialTypes.phone:
- return s.get("Response.UnverifiedPhoneLoginWithUsername");
- default:
- return ""
- }
- }
- ,
- n.handleDefaultLoginRequired = function(t) {
- n.loginFormData.isDefaultLoginRequired = !0,
- n.loginFormData.credentialValue = null,
- n.loginFormData.password = null,
- t && (n.loginLayout.bannerErrorMessage = t,
- n.loginLayout.showErrorBanner = !0)
- }
- ,
- n.getRedirectUrl = function(t) {
- var i, r = n.loginFormData.returnUrl, f;
- return (t && t.tl ? i = {
- username: n.loginFormData.credentialValue,
- tl: t.tl
- } : t && t.twoStepVerificationData && (i = {
- username: t.user.name,
- tl: t.twoStepVerificationData.ticket
- }),
- i) ? (r ? i.returnUrl = r : n.loginParams.redirectToHomePostLogin || (i.returnUrl = n.getCurrentLocation()),
- e.getAbsoluteUrl(l.urls.twoStepVerification) + a.urlQueryStringPrefix + u(i)) : t && (t.userId || t.user && t.user.id) ? r ? (f = n.addNewLoginQueryStringToUrl(r),
- e.getAbsoluteUrl(f)) : n.loginParams.redirectToHomePostLogin ? n.loginFormData.homeUrl + a.urlQueryStringPrefix + u({
- nl: !0
- }) : n.getCurrentLocation() : e.getAbsoluteUrl("/")
- }
- ,
- n.getCurrentLocation = function() {
- var t = i.location.href
- , r = t ? t.indexOf(a.hashSign) : -1;
- return r > -1 && (t = t.slice(0, -1 * (t.length - r))),
- n.addNewLoginQueryStringToUrl(t)
- }
- ,
- n.addNewLoginQueryStringToUrl = function(n) {
- if (!n)
- return "/";
- var t = n;
- return t += n.indexOf(a.urlQueryStringPrefix) > -1 ? a.urlQueryParameterSeparator : a.urlQueryStringPrefix,
- t += l.newLoginQueryString
- }
- ,
- n.loginWithFb = function() {
- n.sendInteractionClickEvent(l.fbLoginButtonName),
- i.location.href = n.loginFormData.redirectToFb
- }
- ,
- n.sendInteractionClickEvent = function(t) {
- Roblox.FormEvents && Roblox.FormEvents.SendInteractionClick(n.loginParams.context, t)
- }
- ,
- n.submit = function(t) {
- n.clearError(),
- n.loginFormData.credentialValue && n.loginFormData.password ? (t && (n.sendInteractionClickEvent(l.loginSubmitButtonName),
- n.incrementEphemeralCounter(l.counters.attempt),
- n.loginLayout.isFirstSubmit && (n.loginLayout.isFirstSubmit = !1,
- n.incrementEphemeralCounter(l.counters.firstAttempt))),
- n.loginLayout.isProcessing = !0,
- n.loginFormData.enteredCredentialType = l.credentialTypes.username,
- n.login()) : n.loginParams.redirectToLoginPageOnError || (n.loginLayout.error = s.get("Message.UsernameAndPasswordRequired"))
- }
- ,
- n.clearError = function() {
- n.loginLayout.error = null
- }
- ,
- n.getCredentialPlaceholder = function() {
- return n.loginFormData.isDefaultLoginRequired ? s.get("Label.Username") : s.get("Label.UsernameEmailPhone")
- }
- ,
- n.isEmail = function(n) {
- return n && n.indexOf(l.atSymbol) > -1
- }
- ,
- n.incrementEphemeralCounter = function(n) {
- EventTracker && n && EventTracker.fireEvent(l.counters.prefix + n)
- }
- }
- ]),
- login.controller("verifyEmailController", ["$scope", "eventStreamService", "loginService", "loginConstants", "languageResource", "injectedData", function(n, t, i, r, u, f) {
- n.layout = {},
- n.init = function() {
- n.layout.headerText = u.get("Label.EmailNeedsVerification"),
- t.sendModalShownEvent(f.context + r.verifyEmailContextSuffix)
- }
- ,
- n.sendVerificationEmail = function() {
- n.layout.error = null,
- n.layout.isSubmitBusy = !0;
- var t = {
- credentialType: r.credentialTypes.email,
- credentialValue: f.email,
- password: f.password
- };
- i.verifyCredentials(t).then(function() {
- n.layout.headerText = u.get("Label.VerificationEmailSent"),
- n.layout.emailSent = !0,
- n.sendSendVerificationEmailEvent(!0)
- }, function(t) {
- switch (t && t.data && t.data.errors && t.data.errors.length > 0 && t.data.errors[0].code) {
- case r.sendVerificationEmailErrorCodes.tooManyAttempts:
- n.layout.error = u.get("Response.TooManyAttemptsPleaseWait");
- break;
- default:
- n.layout.error = u.get("Message.UnknownErrorTryAgain")
- }
- n.sendSendVerificationEmailEvent(!1)
- }).finally(function() {
- n.layout.isSubmitBusy = !1
- })
- }
- ,
- n.sendSendVerificationEmailEvent = function(n, i) {
- t.sendEventWithTarget(t.eventNames.account.sendVerificationEmail, f.context + r.verifyEmailContextSuffix, {
- success: n,
- msg: i
- })
- }
- ,
- n.init()
- }
- ]);
- ;//Bundle detector
- Roblox && Roblox.BundleDetector && Roblox.BundleDetector.bundleDetected('authAppJs');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement