{"version":3,"file":"src_app_modules_auth_modules_login_login_module_ts.e7bcb97c41e94d71.js","mappings":"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","names":["META_DATA","form","title","defaultFormValue","username","password","remember","LoginFormConfig","constructor","value","fb","FormBuilder","nonNullable","this","control","VALIDATORS","routes","path","component","LoginComponent","authApiService","settingStorageService","responseMessageService","dialog","router","loggerService","cdr","pattern","Subject","ngOnInit","log","UtilityService","showBrowserAdviceModal","isRemembered","checkIfRememberMeOn","defaultLoginFormValue","getUserName","loginForm","FormGroup","ngOnDestroy","destroy$","next","complete","f","controls","hasMessage","message","length","updateRemember","updateSetting","rememberMe","submit","isLoading","simpleAuth","pipe","takeUntil","tap","navigate","catchError","err","errorContent","markForCheck","of","subscribe","confirm","data","body","onConfirm","okButton","hideCancelButton","i0","selectors","ctx","isPublic","isSimpleLogin","LoginRoutingModule","RouterModule","LoginModule","CoreModule","SharedModule","FormsModule","ReactiveFormsModule","DuiCardModule","DuiValidationErrorModule","DuiCoreModule"],"sourceRoot":"webpack:///","sources":["./src/app/modules/auth/modules/login/login.metadata.ts","./src/app/modules/auth/modules/login/configs/login-form.config.ts","./src/app/modules/auth/modules/login/login-routing.module.ts","./src/app/modules/auth/modules/login/login.component.ts","./src/app/modules/auth/modules/login/login.component.html","./src/app/modules/auth/modules/login/login.module.ts"],"sourcesContent":["export const META_DATA = {\r\n form: {\r\n title: \"Log In\",\r\n },\r\n};\r\n","import { FormBuilder, FormControl } from \"@angular/forms\";\r\nimport { VALIDATORS } from \"@databank-ui\";\r\nimport { FormGroupRawValue, FormGroupValue } from \"@shared/interfaces/form.interface\";\r\n\r\nexport type LoginFormValue = FormGroupValue;\r\nexport type LoginFormRawValue = FormGroupRawValue;\r\n\r\nconst defaultFormValue: LoginFormValue = {\r\n username: \"\",\r\n password: \"\",\r\n remember: null,\r\n};\r\n\r\nexport class LoginFormConfig {\r\n username: FormControl;\r\n password: FormControl;\r\n remember: FormControl;\r\n\r\n constructor(value: LoginFormValue = defaultFormValue) {\r\n const fb = new FormBuilder().nonNullable;\r\n\r\n this.username = fb.control(value.username, [VALIDATORS.requiredAndNonWhitespace]);\r\n this.password = fb.control(value.password, [VALIDATORS.required]);\r\n this.remember = fb.control(value.remember);\r\n }\r\n}\r\n","import { NgModule } from \"@angular/core\";\r\nimport { Routes, RouterModule } from \"@angular/router\";\r\nimport { LoginComponent } from \"./login.component\";\r\n\r\nconst routes: Routes = [\r\n {\r\n path: \"\",\r\n component: LoginComponent,\r\n data: {\r\n isPublic: true,\r\n isSimpleLogin: true,\r\n },\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule],\r\n})\r\nexport class LoginRoutingModule {}\r\n","import { ChangeDetectorRef, Component, OnDestroy, OnInit } from \"@angular/core\";\r\nimport { FormBuilder, FormGroup } from \"@angular/forms\";\r\nimport { AuthApiService } from \"@core/services/auth-api.service\";\r\nimport { LoggerService } from \"@core/services/logger.service\";\r\nimport { SettingStorageService } from \"@core/services/storages/setting-storage.service\";\r\nimport { DialogService, UtilityService } from \"@databank-ui\";\r\nimport { of, Subject } from \"rxjs\";\r\nimport { catchError, takeUntil, tap } from \"rxjs/operators\";\r\nimport { Router } from \"@angular/router\";\r\nimport { ResponseMessageService } from \"../../services/response-message.service\";\r\nimport { META_DATA } from \"./login.metadata\";\r\nimport { LoginFormConfig, LoginFormValue } from \"./configs/login-form.config\";\r\n\r\n@Component({\r\n selector: \"dbp-login\",\r\n templateUrl: \"./login.component.html\",\r\n styleUrls: [\"../../auth.module.scss\", \"./login.component.scss\"],\r\n})\r\nexport class LoginComponent implements OnInit, OnDestroy {\r\n public meta = META_DATA;\r\n public message = \"\";\r\n public loginForm: FormGroup;\r\n public defaultLoginFormValue: LoginFormValue;\r\n public isLoading = false;\r\n passwordCustomErrors = {\r\n pattern:\r\n \"Should contain at least 1 digit, 1 special character and 1 uppercase and lowercase characters\",\r\n };\r\n\r\n private destroy$: Subject = new Subject();\r\n\r\n constructor(\r\n private authApiService: AuthApiService,\r\n private settingStorageService: SettingStorageService,\r\n private responseMessageService: ResponseMessageService,\r\n private fb: FormBuilder,\r\n private dialog: DialogService,\r\n private router: Router,\r\n private loggerService: LoggerService,\r\n private cdr: ChangeDetectorRef\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.loggerService.log(\"[LoginComponent] ngOnInit\");\r\n if (UtilityService.isIEBrowser()) {\r\n this.showBrowserAdviceModal();\r\n }\r\n\r\n const isRemembered = this.settingStorageService.checkIfRememberMeOn();\r\n if (isRemembered) {\r\n this.defaultLoginFormValue = {\r\n username: this.settingStorageService.getUserName(),\r\n remember: !!isRemembered,\r\n };\r\n }\r\n // Form creation\r\n this.loginForm = new FormGroup(new LoginFormConfig(this.defaultLoginFormValue));\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n }\r\n\r\n // convenience getter for easy access to form fields\r\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\r\n get f() {\r\n return this.loginForm.controls;\r\n }\r\n\r\n get hasMessage(): boolean {\r\n return !!this.message?.length;\r\n }\r\n\r\n updateRemember(value: boolean): void {\r\n this.settingStorageService.updateSetting({\r\n rememberMe: value,\r\n });\r\n }\r\n\r\n submit(): void {\r\n // show spinner\r\n this.isLoading = true;\r\n // clean up previous error message\r\n this.message = \"\";\r\n\r\n // send a request\r\n this.authApiService\r\n .simpleAuth(this.f.username.value, this.f.password.value)\r\n .pipe(\r\n takeUntil(this.destroy$),\r\n tap(() => {\r\n // Update RememberMe Checkbox\r\n this.updateRemember(this.f.remember.value);\r\n this.router.navigate([\"/home\"]);\r\n }),\r\n catchError(err => {\r\n // process the error and display the error text\r\n this.isLoading = false;\r\n this.message = err.errorContent;\r\n this.cdr.markForCheck();\r\n return of(err);\r\n })\r\n )\r\n .subscribe(() => {\r\n this.isLoading = false;\r\n this.cdr.markForCheck();\r\n });\r\n }\r\n\r\n private showBrowserAdviceModal() {\r\n this.dialog.confirm({\r\n data: {\r\n body: `For the best experience while using the DataBank Portal,
please use one of the following browsers:\r\n
    \r\n
  • Google Chrome (click here to navigate)
  • \r\n
  • Microsoft Edge (click here to navigate)
  • \r\n
`,\r\n title: \"Browser recommendations\",\r\n onConfirm: () => {},\r\n okButton: \"Continue\",\r\n hideCancelButton: true,\r\n },\r\n });\r\n }\r\n}\r\n","\r\n

{{ meta.form.title }}

\r\n\r\n
    \r\n
  • \r\n \r\n Username\r\n \r\n \r\n \r\n \r\n \r\n
  • \r\n
  • \r\n \r\n Password\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
    {{ message }}
    \r\n
  • \r\n
  • \r\n Remember Me\r\n
  • \r\n
  • \r\n
    \r\n SUBMIT\r\n
    \r\n
  • \r\n
\r\n\r\n \r\n\r\n\r\n","import { NgModule } from \"@angular/core\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { RouterModule } from \"@angular/router\";\r\nimport { CoreModule } from \"@core/core.module\";\r\nimport { DuiCoreModule, DuiCardModule, DuiValidationErrorModule } from \"@databank-ui\";\r\nimport { SharedModule } from \"@shared/shared.module\";\r\nimport { LoginRoutingModule } from \"./login-routing.module\";\r\nimport { LoginComponent } from \"./login.component\";\r\n\r\n@NgModule({\r\n declarations: [LoginComponent],\r\n imports: [\r\n CoreModule,\r\n SharedModule,\r\n LoginRoutingModule,\r\n RouterModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n DuiCardModule,\r\n DuiValidationErrorModule,\r\n DuiCoreModule,\r\n ],\r\n providers: [],\r\n exports: [LoginComponent],\r\n})\r\nexport class LoginModule {}\r\n"],"x_google_ignoreList":[]}