{"version":3,"file":"Login.js","sourceRoot":"","sources":["../../../Pages/Login/Login.ts"],"names":[],"mappings":"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","sourcesContent":["namespace Page.Login {\r\n\r\n //#region Contracts\r\n\r\n interface LoginForm {\r\n account: string;\r\n username: string;\r\n password: string;\r\n }\r\n\r\n interface AccountUsernameData {\r\n account: string;\r\n username: string;\r\n }\r\n\r\n interface PasswordData {\r\n password: string;\r\n }\r\n\r\n abstract class LoginRequest extends G2.ClientSessionRequest {\r\n \r\n }\r\n\r\n interface LoginResponse extends G2.ServerResponse {\r\n }\r\n\r\n class AccountUsernameRequest extends LoginRequest {\r\n public timeZoneOffset: number;\r\n constructor(public accountUsernameData: AccountUsernameData) {\r\n super(\"AccountUsername\");\r\n this.timeZoneOffset = new Date().getTimezoneOffset();\r\n }\r\n }\r\n\r\n interface AccountUsernameResponse extends LoginResponse {\r\n invalidProperties: G2.InvalidProperties;\r\n configureExternalIdPUrl: string;\r\n externalIdpUrl: string;\r\n forgotPasswordUrl: string;\r\n noEmailAddress: boolean;\r\n }\r\n\r\n class LoginInitiateRequest extends LoginRequest {\r\n public timeZoneOffset: number;\r\n constructor(public form: LoginForm) {\r\n super(\"LoginInitiate\");\r\n this.timeZoneOffset = new Date().getTimezoneOffset();\r\n }\r\n }\r\n\r\n interface LoginInitiateResponse extends LoginResponse, Dialog.LoginTotp.TotpChallengeResponse {\r\n invalidProperties: G2.InvalidProperties;\r\n }\r\n\r\n //#endregion Contracts\r\n\r\n namespace Server {\r\n export function Post(request: LoginRequest): Promise {\r\n return new G2.Handler(\"LoginHandler\").Post(request);\r\n }\r\n\r\n } // namespace Server\r\n\r\n\r\n namespace LoginForm {\r\n\r\n const Form = new G2.BoundForm(\"#login-form\");\r\n const AccountUsernameForm = new G2.BoundForm(\"#account-username-form\");\r\n const PasswordForm = new G2.BoundForm(\"#password-form\");\r\n\r\n let HasNoEmailAddress = false;\r\n\r\n function ContinueButton() { return $(\"#login-continue\"); }\r\n function LoginButton() { return $(\"#login-login\"); }\r\n function ForgotButton() { return $(\"#login-forgot-password\"); }\r\n function PasswordTag() { return $(\"#login-password\"); }\r\n function NoEmailMessage() { return $(\"#login-no-email\"); }\r\n function PasswordEye() { return $(\"#login-password-eye\"); }\r\n\r\n function ContinueClick() {\r\n if (AccountUsernameForm.Validate()) {\r\n const accountUsernameData = AccountUsernameForm.GetProperties();\r\n Server.Post(new AccountUsernameRequest(accountUsernameData))\r\n .then(r => {\r\n HasNoEmailAddress = r.noEmailAddress;\r\n if (AccountUsernameForm.SetProperties(accountUsernameData, r.invalidProperties)) {\r\n if (r.configureExternalIdPUrl) {\r\n location.href = r.configureExternalIdPUrl;\r\n }\r\n else if (r.externalIdpUrl) {\r\n location.replace(r.externalIdpUrl);\r\n } else if (r.forgotPasswordUrl) {\r\n location.href = r.forgotPasswordUrl;\r\n } else {\r\n ShowPasswordControls(true);\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n function ShowPasswordControls(show: boolean) {\r\n NoEmailMessage().hide();\r\n PasswordForm.Container().toggle(show);\r\n if (show) {\r\n AccountUsernameForm.Container().find(\"input\").attr(\"readonly\", \"\");\r\n setTimeout(() => { PasswordTag().trigger(G2.EventFocus.Focus); }, 0);\r\n } else {\r\n AccountUsernameForm.Container().find(\"input\").removeAttr(\"readonly\");\r\n PasswordTag().val(\"\");\r\n Form.Tag(r => r.account).trigger(G2.EventFocus.Focus);\r\n }\r\n ContinueButton().toggle(!show);\r\n }\r\n\r\n function InitiateLogon() {\r\n if (Form.Validate()) {\r\n const loginForm = Form.GetProperties();\r\n Server.Post(new LoginInitiateRequest(loginForm))\r\n .then(r => {\r\n if (Form.SetProperties(loginForm, r.invalidProperties)) {\r\n if (r.totpDialogHtml) {\r\n Dialog.LoginTotp.Open(r);\r\n } else {\r\n location.replace(r.loginActionsUrl);\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n function ForgotPassword() {\r\n if (HasNoEmailAddress) {\r\n NoEmailMessage().show();\r\n } else {\r\n let url = ForgotButton().attr(\"data-url\");\r\n let account = \"\";\r\n if (AccountUsernameForm.Validate()) {\r\n account = AccountUsernameForm.GetProperties().account;\r\n }\r\n account = encodeURIComponent(account);\r\n const username = encodeURIComponent($(\"#username\").val() as string);\r\n url = `${url}?a=${account}&u=${username}`;\r\n location.href = url;\r\n }\r\n }\r\n\r\n function InitializeAutoComplete() { //NOSONAR\r\n\r\n // Get the AccountList from LocalStorage\r\n let accountList = new wijmo.collections.ObservableArray(G2.LocalStorage.GetKeyValuePairs(G2.LocalStorage.LocalStorageName.AccountList));\r\n const selectedValue: string = $(\"#account-default\").val();\r\n\r\n // Reusable code to add an account (temporarily) to the list so it can be submitted. \r\n // This will not survive a refresh unless it is successfully logged into\r\n const addAccountToAutoComplete = (accountId: string) => {\r\n accountList.push(>{ key: accountId.toLowerCase(), value: accountId });\r\n setTimeout(() => {\r\n AccountAutoComplete.selectedValue = accountId.toLowerCase();\r\n }, 1);\r\n\r\n };\r\n\r\n // If there isn't anything in the list and there is a \"default\" value either from the cookie or URL, it will add it to the list\r\n // OR if it's the default and it's not in the list\r\n if (selectedValue?.length > 0 && (accountList.find(x => x.key === selectedValue.toLowerCase()) === undefined)) {\r\n addAccountToAutoComplete(selectedValue);\r\n }\r\n\r\n // initialize AutoComplete control\r\n const AccountAutoComplete = new wijmo.input.AutoComplete(\"#account\", {\r\n itemsSource: accountList,\r\n displayMemberPath: \"value\",\r\n selectedValuePath: \"key\",\r\n selectedValue: selectedValue.toLowerCase(),\r\n isEditable: true,\r\n minLength: 1,\r\n delay: 0,\r\n // if control loses focus and item isn't in the list, add it.\r\n lostFocus: (sender) => {\r\n let item: string = sender.text;\r\n if (item && accountList.find(x => x.key === item.toLowerCase()) === undefined) {\r\n addAccountToAutoComplete(item);\r\n\r\n }\r\n }\r\n });\r\n\r\n // add a sort\r\n if (accountList.length > 0) {\r\n AccountAutoComplete.collectionView.sortDescriptions.push(new wijmo.collections.SortDescription(\"value\", true));\r\n }\r\n\r\n // trap the \"Enter\" key to add the value to the list if necessary before moving on.\r\n AccountAutoComplete.inputElement.addEventListener(\"keydown\", (e) => {\r\n if (e.key === \"Enter\" || e.key === \"Tab\") {\r\n if (accountList.find(x => x.key == AccountAutoComplete.inputElement.value.toLowerCase()) === undefined) {\r\n e.preventDefault();\r\n e.cancelBubble = true; //NOSONAR\r\n const newValue = AccountAutoComplete.inputElement.value\r\n addAccountToAutoComplete(newValue);\r\n } else if (AccountAutoComplete.selectedIndex === -1) {\r\n AccountAutoComplete.selectedValue = AccountAutoComplete.inputElement.value.toLowerCase();\r\n }\r\n if (e.key === \"Enter\") {\r\n setTimeout(ContinueClick, 10);\r\n } else {\r\n $(\"#username\").trigger(G2.EventFocus.Focus); //NOSONAR\r\n }\r\n }\r\n });\r\n }\r\n\r\n G2.Events.OnLoad(() => {\r\n ContinueButton().on(G2.EventMouse.Click, ContinueClick);\r\n LoginButton().on(G2.EventMouse.Click, InitiateLogon);\r\n ForgotButton().on(G2.EventMouse.Click, ForgotPassword);\r\n Form.Container().on(G2.EventKey.Down, evt => {\r\n if (evt.key === G2.Key.Enter) {\r\n evt.preventDefault(); // Prevent form submission on Enter key\r\n if (ContinueButton().is(\":visible\")) {\r\n ContinueClick();\r\n } else {\r\n InitiateLogon();\r\n }\r\n }\r\n });\r\n\r\n const changeUsername = $(\"#login-change-username\");\r\n changeUsername.on(G2.EventMouse.Click, () => ShowPasswordControls(false));\r\n\r\n PasswordEye().on(G2.EventMouse.Click, () => {\r\n const isPassword = PasswordTag().prop(\"type\") === \"password\";\r\n PasswordTag().prop(\"type\", isPassword ? \"text\" : \"password\");\r\n $(\"#login-password-eye-off\").toggle(!isPassword);\r\n $(\"#login-password-eye-on\").toggle(isPassword);\r\n });\r\n\r\n InitializeAutoComplete();\r\n\r\n const usernameInfo = $(\"#username-info\");\r\n const versionInfo = $(\"#version-info\");\r\n const tooltip = new wijmo.Tooltip({ showDelay: 100 });\r\n tooltip.setTooltip(usernameInfo[0], usernameInfo.attr(\"data-tooltip\"));\r\n tooltip.setTooltip(changeUsername[0], changeUsername.attr(\"data-tooltip\"));\r\n tooltip.setTooltip(versionInfo[0], versionInfo.attr(\"data-tooltip\"));\r\n\r\n if (!Form.Tag(r => r.account).val()) {\r\n Form.Tag(r => r.account).trigger(G2.EventFocus.Focus);\r\n } else {\r\n Form.Tag(r => r.username).trigger(G2.EventFocus.Focus);\r\n }\r\n });\r\n\r\n } // namespace LoginForm\r\n\r\n\r\n}"]}