{ "version": 3, "sources": ["../../../../../../Modules/Membership/Account/Login/LoginPage.tsx"], "sourcesContent": ["import { LoginForm, LoginPageModel, LoginRequest } from \"@/ServerTypes/Membership\";\r\nimport { Texts } from \"@/ServerTypes/Texts\";\r\nimport { Authorization, Fluent, PropertyPanel, getCookie, localText, notifyError, parseQueryString, resolveUrl, serviceCall, stringFormat, tryGetText } from \"@serenity-is/corelib\";\r\nimport { PromptDialog } from \"@serenity-is/extensions\";\r\n\r\nexport default (props: LoginPageModel) => {\r\n return {\r\n let form = panel.form;\r\n if (props?.ActivatedUser) {\r\n form.Username.value = props.ActivatedUser;\r\n form.Password.element.focus();\r\n }\r\n }} />\r\n};\r\n\r\nclass LoginPanel extends PropertyPanel {\r\n\r\n protected getFormKey() { return LoginForm.formKey; }\r\n\r\n readonly form = new LoginForm(this.idPrefix);\r\n\r\n constructor(props: any) {\r\n super(props);\r\n this.getIP2();\r\n }\r\n\r\n protected getIP() {\r\n var ip = \"\";\r\n fetch(\"https://api.ipify.org?format=json\").then(resp => {\r\n resp.ok && resp.json().then(data => {\r\n Fluent.findFirst('#Ltrip').text(data.ip);\r\n });\r\n });\r\n }\r\n\r\n protected getIP2() {\r\n fetch(\"https://apiip.net/api/check?accessKey=c0f2e238-98ae-4898-b195-6f3e4d161beb\").then(resp => {\r\n resp.ok && resp.json().then(data => {\r\n // notifySuccess(\"IP Address: \" + data.ip);\r\n Fluent.findFirst('#Ltrip').text(data.ip);\r\n })\r\n }).catch(error => {\r\n notifyError(\"Error getting IP Address\");\r\n Fluent.findFirst('#Ltrip').text(\"0.0.0.0\");\r\n });\r\n }\r\n\r\n protected loginClick() {\r\n if (!this.validateForm())\r\n return;\r\n\r\n var request = this.getSaveEntity();\r\n\r\n serviceCall({\r\n url: resolveUrl('~/Account/Login'),\r\n request: request,\r\n onSuccess: redirectToReturnUrl,\r\n onError: (response) => {\r\n if (response?.Error?.Code === \"TwoFactorAuthenticationRequired\") {\r\n var args = response.Error.Arguments.split('|');\r\n handleTwoFactorAuth(request.Username, request.Password, args[1], args[0]);\r\n return true;\r\n }\r\n\r\n if (response?.Error?.Code === \"RedirectUserTo\") {\r\n window.location.href = response.Error.Arguments;\r\n return true;\r\n }\r\n\r\n if (response?.Error?.Message?.length) {\r\n notifyError(response.Error.Message);\r\n this.form.Password.element.focus();\r\n return true;\r\n }\r\n }\r\n });\r\n\r\n }\r\n\r\n protected renderContents() {\r\n const id = this.useIdPrefix();\r\n const texts = Texts.Forms.Membership.Login;\r\n return (<>\r\n
\r\n \r\n

XandaPay

\r\n
\r\n

Payroll & HR Management Service

\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n
{texts.LoginToYourAccount}
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n );\r\n }\r\n}\r\n\r\nfunction getReturnUrl() {\r\n var q = parseQueryString();\r\n return q['returnUrl'] || q['ReturnUrl'];\r\n}\r\n\r\nfunction handleTwoFactorAuth(user: string, pass: string, twoFactorGuid: string, info: string) {\r\n var tries = 0;\r\n var remaining = 120;\r\n var dialog: PromptDialog = null;\r\n var showDialog = () => {\r\n dialog = new PromptDialog({\r\n title: \"Two Factor Authentication\",\r\n editorOptions: {\r\n maxLength: 4\r\n },\r\n editorType: \"Integer\",\r\n message: info,\r\n isHtml: true,\r\n required: true,\r\n validateValue: (x) => {\r\n if (x >= 1000 && x <= 9999) {\r\n tries++;\r\n serviceCall({\r\n url: resolveUrl('~/Account/Login'),\r\n request: {\r\n Username: user,\r\n Password: pass,\r\n TwoFactorGuid: twoFactorGuid,\r\n TwoFactorCode: x\r\n },\r\n onSuccess: redirectToReturnUrl,\r\n onError: z => {\r\n notifyError(z.Error.Message);\r\n if (tries > 2) {\r\n notifyError(\"Code entered is invalid! You can't try more than 3 times!\");\r\n dialog = null;\r\n return;\r\n }\r\n showDialog();\r\n }\r\n });\r\n return true;\r\n }\r\n\r\n notifyError(\"Please enter a valid code!\");\r\n return false;\r\n }\r\n });\r\n\r\n dialog.dialogOpen();\r\n };\r\n\r\n function updateCounter() {\r\n remaining -= 1;\r\n if (dialog != null) {\r\n let counter = (dialog.domNode.querySelector(\"span.counter\") as HTMLElement);\r\n counter && (counter.textContent = remaining.toString());\r\n }\r\n\r\n if (remaining >= 0)\r\n setTimeout(updateCounter, 1000);\r\n else if (dialog != null)\r\n dialog.dialogClose(\"done\");\r\n };\r\n\r\n showDialog();\r\n window.setTimeout(updateCounter, 1000);\r\n}\r\n\r\nfunction redirectToReturnUrl() {\r\n var returnUrl = getReturnUrl();\r\n if (returnUrl && /^\\//.test(returnUrl)) {\r\n var hash = window.location.hash;\r\n if (hash != null && hash != '#')\r\n returnUrl += hash;\r\n if (Authorization.hasPermission(\"Dashboards:Main:View\")) {\r\n // If the user has permission to view the main dashboard, redirect to the main dashboard\r\n window.location.href = returnUrl;\r\n //window.location.href = resolveUrl('~/');\r\n return;\r\n }\r\n else {\r\n // If the user doesn't have permission to view the main dashboard, redirect to the first dashboard they have permission to view\r\n //got to Dashboard/Employee\r\n window.location.href = resolveUrl('~/Dashboard/Employee');\r\n }\r\n }\r\n else {\r\n if (Authorization.hasPermission(\"Dashboards:Main:View\")) {\r\n // If the user has permission to view the main dashboard, redirect to the main dashboard\r\n window.location.href = resolveUrl('~/Default');\r\n return;\r\n }\r\n else {\r\n // If the user doesn't have permission to view the main dashboard, redirect to the first dashboard they have permission to view\r\n //got to Dashboard/Employee\r\n window.location.href = resolveUrl('~/Dashboard/Employee');\r\n }\r\n }\r\n}\r\n\r\nconst externalLoginColorMap = {\r\n \"Google\": \"#ea4335\",\r\n \"GitHub\": \"#333\",\r\n \"Microsoft\": \"#0078d7\"\r\n}\r\n\r\nfunction ExternalLoginSection({ providers }: { providers: string[] }) {\r\n let texts = Texts.Forms.Membership.Login;\r\n let returnUrl = getReturnUrl();\r\n let customRedirectUrl = '/Account/CustomRedirect';\r\n return <>\r\n {providers?.length > 0 &&\r\n
\r\n {texts.OR}\r\n
}\r\n {providers?.map(providerName =>\r\n
\r\n \r\n
\r\n \r\n
\r\n
)}\r\n \r\n}"], "mappings": "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", "names": ["import_corelib", "import_extensions", "LoginPage_default", "__name", "props", "jsx", "LoginPanel", "__spreadProps", "__spreadValues", "panel", "form", "_LoginPanel", "LoginForm", "ip", "resp", "data", "error", "request", "redirectToReturnUrl", "response", "_a", "_b", "_c", "_d", "args", "handleTwoFactorAuth", "id", "texts", "Texts", "Fragment", "e", "ExternalLoginSection", "getReturnUrl", "q", "user", "pass", "twoFactorGuid", "info", "tries", "remaining", "dialog", "showDialog", "x", "z", "updateCounter", "counter", "returnUrl", "hash", "externalLoginColorMap", "providers", "customRedirectUrl", "providerName"] }