@annalib/anna-cognito-lib 2.3.7 → 2.3.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/README.md +66 -66
  2. package/{esm2020 → esm2022}/annalib-anna-cognito-lib.mjs +4 -4
  3. package/esm2022/lib/components/anna-login/anna-login.component.mjs +67 -0
  4. package/esm2022/lib/components/cognito-and-sso-login-container/cognito-and-sso-login-container.component.mjs +22 -0
  5. package/esm2022/lib/components/forgot-password/forgot-password.component.mjs +133 -0
  6. package/esm2022/lib/components/password-matching/password-matching.component.mjs +92 -0
  7. package/esm2022/lib/components/powered-by-logo-template/powered-by-logo-template.component.mjs +14 -0
  8. package/esm2022/lib/components/set-new-password/set-new-password.component.mjs +71 -0
  9. package/{esm2020 → esm2022}/lib/components/sso-login/sso-login.component.mjs +38 -38
  10. package/esm2022/lib/components/surewaves-year-logo/surewaves-year-logo.component.mjs +15 -0
  11. package/esm2022/lib/components/verify-and-set-new-password/verify-and-set-new-password.component.mjs +90 -0
  12. package/esm2022/lib/components/version-and-term-policy/version-and-term-policy.component.mjs +19 -0
  13. package/esm2022/lib/config/acl-service.token.mjs +4 -0
  14. package/esm2022/lib/config/auth-service.token.mjs +4 -0
  15. package/{esm2020 → esm2022}/lib/config/config-service.token.mjs +4 -4
  16. package/esm2022/lib/config/sso-login-service.token.mjs +4 -0
  17. package/esm2022/lib/constants/loginConstant.mjs +55 -0
  18. package/{esm2020 → esm2022}/lib/directives/spinner-button/index.mjs +2 -2
  19. package/{esm2020 → esm2022}/lib/directives/spinner-button/spinner-button.directive.mjs +43 -43
  20. package/{esm2020 → esm2022}/lib/models/auth.model.mjs +24 -24
  21. package/{esm2020 → esm2022}/lib/services/acl.service.mjs +27 -27
  22. package/{esm2020 → esm2022}/lib/services/auth.service.mjs +312 -312
  23. package/{esm2020 → esm2022}/lib/services/config.service.mjs +20 -20
  24. package/{esm2020 → esm2022}/lib/services/sso-login.service.mjs +20 -20
  25. package/{esm2020 → esm2022}/public-api.mjs +28 -28
  26. package/fesm2022/annalib-anna-cognito-lib.mjs +965 -0
  27. package/fesm2022/annalib-anna-cognito-lib.mjs.map +1 -0
  28. package/index.d.ts +5 -5
  29. package/lib/components/anna-login/anna-login.component.d.ts +20 -20
  30. package/lib/components/cognito-and-sso-login-container/cognito-and-sso-login-container.component.d.ts +10 -10
  31. package/lib/components/forgot-password/forgot-password.component.d.ts +42 -42
  32. package/lib/components/password-matching/password-matching.component.d.ts +22 -22
  33. package/lib/components/powered-by-logo-template/powered-by-logo-template.component.d.ts +8 -8
  34. package/lib/components/set-new-password/set-new-password.component.d.ts +28 -28
  35. package/lib/components/sso-login/sso-login.component.d.ts +14 -14
  36. package/lib/components/surewaves-year-logo/surewaves-year-logo.component.d.ts +9 -9
  37. package/lib/components/verify-and-set-new-password/verify-and-set-new-password.component.d.ts +32 -32
  38. package/lib/components/version-and-term-policy/version-and-term-policy.component.d.ts +10 -10
  39. package/lib/config/acl-service.token.d.ts +38 -38
  40. package/lib/config/auth-service.token.d.ts +23 -23
  41. package/lib/config/config-service.token.d.ts +13 -13
  42. package/lib/config/sso-login-service.token.d.ts +10 -10
  43. package/lib/constants/loginConstant.d.ts +49 -49
  44. package/lib/directives/spinner-button/index.d.ts +1 -1
  45. package/lib/directives/spinner-button/spinner-button.directive.d.ts +15 -15
  46. package/lib/models/auth.model.d.ts +21 -21
  47. package/lib/services/acl.service.d.ts +11 -11
  48. package/lib/services/auth.service.d.ts +47 -47
  49. package/lib/services/config.service.d.ts +8 -8
  50. package/lib/services/sso-login.service.d.ts +8 -8
  51. package/package.json +5 -11
  52. package/public-api.d.ts +20 -20
  53. package/esm2020/lib/components/anna-login/anna-login.component.mjs +0 -67
  54. package/esm2020/lib/components/cognito-and-sso-login-container/cognito-and-sso-login-container.component.mjs +0 -22
  55. package/esm2020/lib/components/forgot-password/forgot-password.component.mjs +0 -133
  56. package/esm2020/lib/components/password-matching/password-matching.component.mjs +0 -92
  57. package/esm2020/lib/components/powered-by-logo-template/powered-by-logo-template.component.mjs +0 -14
  58. package/esm2020/lib/components/set-new-password/set-new-password.component.mjs +0 -71
  59. package/esm2020/lib/components/surewaves-year-logo/surewaves-year-logo.component.mjs +0 -15
  60. package/esm2020/lib/components/verify-and-set-new-password/verify-and-set-new-password.component.mjs +0 -90
  61. package/esm2020/lib/components/version-and-term-policy/version-and-term-policy.component.mjs +0 -19
  62. package/esm2020/lib/config/acl-service.token.mjs +0 -4
  63. package/esm2020/lib/config/auth-service.token.mjs +0 -4
  64. package/esm2020/lib/config/sso-login-service.token.mjs +0 -4
  65. package/esm2020/lib/constants/loginConstant.mjs +0 -55
  66. package/fesm2015/annalib-anna-cognito-lib.mjs +0 -1011
  67. package/fesm2015/annalib-anna-cognito-lib.mjs.map +0 -1
  68. package/fesm2020/annalib-anna-cognito-lib.mjs +0 -965
  69. package/fesm2020/annalib-anna-cognito-lib.mjs.map +0 -1
package/README.md CHANGED
@@ -1,66 +1,66 @@
1
- # AnnaCognitoLib
2
-
3
- ## How to use the library in the consuming project ?
4
-
5
- 1. Install the package from npm `npm install @annalib/anna-cognito-lib` (if not working use with --force flag).
6
- 2. After installing the Library, you need to install it's peer dependancies. You can find the peer-dependecies in
7
- package.json file of library. Install all the peer depedencies with respective version number mentioned. this is
8
- important step otherwise library will throw error. ex: `npm install ngx-toastr@13.2.1`
9
- 3. Also make sure to Install the Roboto font locally in assets folder of your consuming project.
10
-
11
- If using the library locally (library from your system locally not npm),then in angular json file you have to set
12
- `preserveSymlinks: true`.
13
-
14
- ## Adding Configuration
15
-
16
- 1. import the `AnnaCognitoLibModule` module and pass the configuration to root
17
- `AnnaCognitoLibModule.forRoot(appGenericConfig)`
18
- 2. configuration const should be:
19
- ````const appGenericConfig = {
20
- cognito : {
21
- userPoolId: "",
22
- clientId: "",
23
- },
24
- loginPageLogoImgUrl: ""
25
- } ```
26
- ````
27
- 3. Keep the logo image in consuming project and provide the path for loginPageLogoImgUrl. ex:
28
- "assets/images/Anna-Logo.png" Note: for better loading of logo image, provide logo image in minified format.
29
-
30
- ## Adding new custom function implemetation for any service file.
31
-
32
- 1. Background Understanding - when we want to provide custom implemenetation - We write the custom implementation in a
33
- service file of consuming project and that is injected in the library. Injection is taken care by library itself. You
34
- just need to provide the definition and implementation of new function added.
35
- 2. Ex: let's say we want to add a new function `onSuccessfulAuthenticatingUser() this function is called from library
36
- when user is succesfully authenticated and logged in. (Note: this function is already present in lib).
37
- 3. Then In library add the new function declaration `onSuccessfulAuthenticatingUser()` in interface file `IAuthService`
38
- of `auth-service.token.ts` file.
39
- 4. In consuming project, for `onSuccessfulAuthenticatingUser()` provide the implementation in the service file say
40
- `AuthService` of `auth.service.ts`.
41
- 5. Then In consuming project, app.module.ts file add following in providers array.
42
- `{ provide: AUTH_SERVICE_TOKEN, useExisting: AuthService }` i.e. your consuming project's existing AuthService will
43
- be injected in Library's auth-service file with the help of AUTH_SERVICE_TOKEN.
44
- 6. Now you're good to go!
45
-
46
- ## List of function implementation we need to provide in consuming project.
47
-
48
- 1. `onSuccessfulAuthenticatingUser()` - provide the implementation of what happens when user is succefully logged in.
49
- (any API call or routing you need to provide).
50
- 2. `isUsernameAvailable()` - in thie implementation call an backend API to find out if username is already present in
51
- Database or not. format of response should be `{"isUsernameAvailable":true}`. This is used in forgot-password page
52
- before calling forgot-password cognito sdk call, we need to check thorough backend db if the username is actually
53
- available.
54
- 3. `isLoggingIn` - set this variable to false. this will stop the spinner on top on button. use case: after successful
55
- login i.e. when we are done with all API call we need to call post succesfull calling or when we have routed to home
56
- page.
57
-
58
- ## How to make changes in library and build it
59
-
60
- 1. Make the changes and Run `ng build anna-cognito-lib` to build the project.
61
- 2. The build artifacts will be stored in the `dist/` directory.
62
-
63
- ## Publishing
64
-
65
- After building your library with `ng build anna-cognito-lib`, go to the dist folder `cd dist/anna-cognito-lib` and run
66
- `npm publish`.
1
+ # AnnaCognitoLib
2
+
3
+ ## How to use the library in the consuming project ?
4
+
5
+ 1. Install the package from npm `npm install @annalib/anna-cognito-lib` (if not working use with --force flag).
6
+ 2. After installing the Library, you need to install it's peer dependancies. You can find the peer-dependecies in
7
+ package.json file of library. Install all the peer depedencies with respective version number mentioned. this is
8
+ important step otherwise library will throw error. ex: `npm install ngx-toastr@13.2.1`
9
+ 3. Also make sure to Install the Roboto font locally in assets folder of your consuming project.
10
+
11
+ If using the library locally (library from your system locally not npm),then in angular json file you have to set
12
+ `preserveSymlinks: true`.
13
+
14
+ ## Adding Configuration
15
+
16
+ 1. import the `AnnaCognitoLibModule` module and pass the configuration to root
17
+ `AnnaCognitoLibModule.forRoot(appGenericConfig)`
18
+ 2. configuration const should be:
19
+ ````const appGenericConfig = {
20
+ cognito : {
21
+ userPoolId: "",
22
+ clientId: "",
23
+ },
24
+ loginPageLogoImgUrl: ""
25
+ } ```
26
+ ````
27
+ 3. Keep the logo image in consuming project and provide the path for loginPageLogoImgUrl. ex:
28
+ "assets/images/Anna-Logo.png" Note: for better loading of logo image, provide logo image in minified format.
29
+
30
+ ## Adding new custom function implemetation for any service file.
31
+
32
+ 1. Background Understanding - when we want to provide custom implemenetation - We write the custom implementation in a
33
+ service file of consuming project and that is injected in the library. Injection is taken care by library itself. You
34
+ just need to provide the definition and implementation of new function added.
35
+ 2. Ex: let's say we want to add a new function `onSuccessfulAuthenticatingUser() this function is called from library
36
+ when user is succesfully authenticated and logged in. (Note: this function is already present in lib).
37
+ 3. Then In library add the new function declaration `onSuccessfulAuthenticatingUser()` in interface file `IAuthService`
38
+ of `auth-service.token.ts` file.
39
+ 4. In consuming project, for `onSuccessfulAuthenticatingUser()` provide the implementation in the service file say
40
+ `AuthService` of `auth.service.ts`.
41
+ 5. Then In consuming project, app.module.ts file add following in providers array.
42
+ `{ provide: AUTH_SERVICE_TOKEN, useExisting: AuthService }` i.e. your consuming project's existing AuthService will
43
+ be injected in Library's auth-service file with the help of AUTH_SERVICE_TOKEN.
44
+ 6. Now you're good to go!
45
+
46
+ ## List of function implementation we need to provide in consuming project.
47
+
48
+ 1. `onSuccessfulAuthenticatingUser()` - provide the implementation of what happens when user is succefully logged in.
49
+ (any API call or routing you need to provide).
50
+ 2. `isUsernameAvailable()` - in thie implementation call an backend API to find out if username is already present in
51
+ Database or not. format of response should be `{"isUsernameAvailable":true}`. This is used in forgot-password page
52
+ before calling forgot-password cognito sdk call, we need to check thorough backend db if the username is actually
53
+ available.
54
+ 3. `isLoggingIn` - set this variable to false. this will stop the spinner on top on button. use case: after successful
55
+ login i.e. when we are done with all API call we need to call post succesfull calling or when we have routed to home
56
+ page.
57
+
58
+ ## How to make changes in library and build it
59
+
60
+ 1. Make the changes and Run `ng build anna-cognito-lib` to build the project.
61
+ 2. The build artifacts will be stored in the `dist/` directory.
62
+
63
+ ## Publishing
64
+
65
+ After building your library with `ng build anna-cognito-lib`, go to the dist folder `cd dist/anna-cognito-lib` and run
66
+ `npm publish`.
@@ -1,5 +1,5 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public-api';
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
5
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5uYWxpYi1hbm5hLWNvZ25pdG8tbGliLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcHJvamVjdHMvYW5uYS1jb2duaXRvLWxpYi9zcmMvYW5uYWxpYi1hbm5hLWNvZ25pdG8tbGliLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG4iXX0=
@@ -0,0 +1,67 @@
1
+ // Angular import statements
2
+ import { Component, Inject } from '@angular/core';
3
+ import { FormBuilder, FormsModule, ReactiveFormsModule } from '@angular/forms';
4
+ // User defined import statements
5
+ import { LoginConstant } from '../../constants/loginConstant';
6
+ import { AnnaLibAuthService } from '../../services/auth.service';
7
+ import { CONFIG_SERVICE_TOKEN } from '../../config/config-service.token';
8
+ import { SSO_LOGIN_SERVICE_TOKEN } from '../../config/sso-login-service.token';
9
+ import { VersionAndTermPolicyComponent } from '../version-and-term-policy/version-and-term-policy.component';
10
+ import { SurewavesYearLogoComponent } from '../surewaves-year-logo/surewaves-year-logo.component';
11
+ import { PoweredByLogoTemplateComponent } from '../powered-by-logo-template/powered-by-logo-template.component';
12
+ import { SpinnerButtonDirective } from '../../directives/spinner-button/spinner-button.directive';
13
+ import { RouterLink } from '@angular/router';
14
+ import { NgIf, NgOptimizedImage, NgClass } from '@angular/common';
15
+ import * as i0 from "@angular/core";
16
+ import * as i1 from "../../services/auth.service";
17
+ import * as i2 from "@angular/forms";
18
+ export class AnnaLoginComponent {
19
+ constructor(authService, fb, consumingProjectConfigService, consumingProjectSSOLoginService) {
20
+ this.authService = authService;
21
+ this.fb = fb;
22
+ this.consumingProjectConfigService = consumingProjectConfigService;
23
+ this.consumingProjectSSOLoginService = consumingProjectSSOLoginService;
24
+ }
25
+ ngOnInit() {
26
+ this.authService.consumingProjectAuthService.isLoggingIn = false;
27
+ this.consumingProjectSSOLoginService.loggedInViaSso = false;
28
+ this.constants = LoginConstant;
29
+ this.onIntialiseForm();
30
+ }
31
+ onIntialiseForm() {
32
+ this.loginForm = this.fb.group({
33
+ username: [null],
34
+ password: [null],
35
+ });
36
+ }
37
+ OnLogin() {
38
+ this.authService.consumingProjectAuthService.isLoggingIn = true;
39
+ const username = this.loginForm.controls['username'].value;
40
+ const password = this.loginForm.controls['password'].value;
41
+ this.authService.handleSignIn({ username, password });
42
+ }
43
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AnnaLoginComponent, deps: [{ token: i1.AnnaLibAuthService }, { token: i2.FormBuilder }, { token: CONFIG_SERVICE_TOKEN }, { token: SSO_LOGIN_SERVICE_TOKEN }], target: i0.ɵɵFactoryTarget.Component }); }
44
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AnnaLoginComponent, isStandalone: true, selector: "anna-cognito-lib-anna-login", ngImport: i0, template: "<div class=\"main\">\n <!-- Load login page when all constant variable are intiated otherwise it will show a glitch. that's why ngIf check of constants.forgotPassword -->\n <section *ngIf=\"constants.forgotPassword\">\n <header>\n <img\n [ngSrc]=\"consumingProjectConfigService.appGenericConfig.loginPageLogoImgUrl\"\n width=\"145\"\n height=\"50\"\n alt=\"Anna Logo\"\n priority\n />\n </header>\n <article>\n <form\n [formGroup]=\"loginForm\"\n (ngSubmit)=\"OnLogin()\"\n >\n <div\n id=\"alert-div\"\n *ngIf=\"authService.loginErrorMessage\"\n >\n <span class=\"material-icons\">report</span>\n <p>{{ authService.loginErrorMessage }}</p>\n </div>\n\n <input\n type=\"text\"\n tabindex=\"1\"\n formControlName=\"username\"\n [ngClass]=\"{ 'input-invalid': authService.loginErrorMessage }\"\n [placeholder]=\"\n consumingProjectSSOLoginService?.isSsoIntegrated\n ? constants.enterUserCode\n : constants.enterEmail\n \"\n autocomplete=\"username\"\n autofocus\n />\n\n <input\n type=\"password\"\n tabindex=\"2\"\n formControlName=\"password\"\n [ngClass]=\"{ 'input-invalid': authService.loginErrorMessage }\"\n [placeholder]=\"constants.password\"\n autocomplete=\"current-password\"\n autofocus\n />\n\n <a\n tabindex=\"4\"\n [routerLink]=\"constants.forgortPasswordPageUrl\"\n >{{ constants.forgotPassword }}</a\n >\n <button\n tabindex=\"3\"\n class=\"login-btn\"\n [anna-cognito-lib-SpinnerButton]=\"authService.consumingProjectAuthService.isLoggingIn\"\n [spinnerButtonText]=\"constants.login\"\n ></button>\n </form>\n </article>\n <footer>\n <anna-cognito-lib-powered-by-logo-template> </anna-cognito-lib-powered-by-logo-template>\n </footer>\n </section>\n</div>\n\n<div class=\"page-footer\">\n <anna-cognito-lib-surewaves-year-logo></anna-cognito-lib-surewaves-year-logo>\n <anna-cognito-lib-version-and-term-policy></anna-cognito-lib-version-and-term-policy>\n</div>\n", styles: ["@keyframes show{0%{opacity:0}50%{opacity:.5}to{opacity:1}}html{overflow-y:scroll}.main{background-color:#fff;background-size:cover;font-family:Roboto;height:calc(100vh - 50px)}section{top:45%;left:50%;position:absolute;transform:translate(-50%,-50%);width:20.875rem;animation:show .5s 1;-moz-animation:show .5s 1}.container{width:100%;height:100%;overflow:auto}header{height:auto;width:100%;text-align:center}article{margin-top:.9375rem;margin-bottom:.9375rem;border:1px solid #979797;background-color:#f4f4f4;padding:2rem 1.375rem;border-radius:.375rem;box-shadow:0 .125rem .4375rem #0000001a}article .sub-title{color:#6e6e6e;font-family:Roboto;font-size:1.25rem;font-weight:700;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}article #heading{color:#212121;text-align:center;margin-bottom:1.5rem;font-family:Roboto;font-size:1.125rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}p{text-align:center;margin-bottom:1rem}#alert-div{padding:.3125rem 0;margin-bottom:.75rem;border-radius:.25rem;border:solid 1px #f9b3ae;background-color:#fde4e3;justify-content:left;align-items:center;display:flex}#alert-div .material-icons{color:#f44336;font-size:1rem;margin-left:.5rem}#alert-div p{margin-left:4px!important;margin:0;color:#4a4a4a;font-family:Roboto;font-size:.75rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}#info-div{padding:6px 0;margin-bottom:.75rem;border-radius:.25rem;border:1px solid #268bff;background:#e3f0ff}#info-div .mdi-info{color:#268bff;font-size:1rem;margin-left:6px}#info-div p{margin:-1.5625rem 0 0 1.8rem;padding:.3125rem 0;color:#4a4a4a;font-family:Roboto;font-size:.75rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}footer{align-items:baseline;color:#6e6e6e;opacity:.9;display:flex;font-family:Ubuntu;font-size:1.25rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal;justify-content:center}footer span{font-size:1.5625rem;margin-left:.25rem}input[type=password],input[type=text],input[type=number]{width:100%;height:30px;padding:.75rem 1rem;border:1px solid #979797;margin-bottom:.625rem;border-radius:.375rem}.login-btn{width:100%;height:2.5rem;border:0;color:#fff;background-color:#268bff;border-radius:.375rem;font-size:1rem}.login-btn:hover{background-color:#4099ff;cursor:pointer}.login-btn:disabled{background-color:#ccc;color:#fff;cursor:not-allowed}.input-invalid{border:1px solid #fe3824!important}input[type=password].ng-dirty.ng-invalid,input[type=text].ng-dirty.ng-invalid{border:1px solid #fe3824}input[type=submit]:focus,input[type=password]:focus,input[type=text]:focus,input[type=checkbox]:focus,button:focus{outline:none}input::placeholder{color:#a4a4a4}:host ::ng-deep .verison-and-policy{color:#8bac2a}a{float:right;color:#268bff;font-family:Roboto;font-size:.875rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal;text-decoration:underline;margin-bottom:.9375rem}a:hover{cursor:pointer}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgOptimizedImage, selector: "img[ngSrc]", inputs: ["ngSrc", "ngSrcset", "sizes", "width", "height", "loading", "priority", "loaderParams", "disableOptimizedSrcset", "fill", "src", "srcset"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: SpinnerButtonDirective, selector: "[anna-cognito-lib-SpinnerButton]", inputs: ["anna-cognito-lib-SpinnerButton", "spinnerButtonText"] }, { kind: "component", type: PoweredByLogoTemplateComponent, selector: "anna-cognito-lib-powered-by-logo-template" }, { kind: "component", type: SurewavesYearLogoComponent, selector: "anna-cognito-lib-surewaves-year-logo" }, { kind: "component", type: VersionAndTermPolicyComponent, selector: "anna-cognito-lib-version-and-term-policy" }] }); }
45
+ }
46
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AnnaLoginComponent, decorators: [{
47
+ type: Component,
48
+ args: [{ selector: 'anna-cognito-lib-anna-login', standalone: true, imports: [
49
+ NgIf,
50
+ NgOptimizedImage,
51
+ FormsModule,
52
+ ReactiveFormsModule,
53
+ NgClass,
54
+ RouterLink,
55
+ SpinnerButtonDirective,
56
+ PoweredByLogoTemplateComponent,
57
+ SurewavesYearLogoComponent,
58
+ VersionAndTermPolicyComponent,
59
+ ], template: "<div class=\"main\">\n <!-- Load login page when all constant variable are intiated otherwise it will show a glitch. that's why ngIf check of constants.forgotPassword -->\n <section *ngIf=\"constants.forgotPassword\">\n <header>\n <img\n [ngSrc]=\"consumingProjectConfigService.appGenericConfig.loginPageLogoImgUrl\"\n width=\"145\"\n height=\"50\"\n alt=\"Anna Logo\"\n priority\n />\n </header>\n <article>\n <form\n [formGroup]=\"loginForm\"\n (ngSubmit)=\"OnLogin()\"\n >\n <div\n id=\"alert-div\"\n *ngIf=\"authService.loginErrorMessage\"\n >\n <span class=\"material-icons\">report</span>\n <p>{{ authService.loginErrorMessage }}</p>\n </div>\n\n <input\n type=\"text\"\n tabindex=\"1\"\n formControlName=\"username\"\n [ngClass]=\"{ 'input-invalid': authService.loginErrorMessage }\"\n [placeholder]=\"\n consumingProjectSSOLoginService?.isSsoIntegrated\n ? constants.enterUserCode\n : constants.enterEmail\n \"\n autocomplete=\"username\"\n autofocus\n />\n\n <input\n type=\"password\"\n tabindex=\"2\"\n formControlName=\"password\"\n [ngClass]=\"{ 'input-invalid': authService.loginErrorMessage }\"\n [placeholder]=\"constants.password\"\n autocomplete=\"current-password\"\n autofocus\n />\n\n <a\n tabindex=\"4\"\n [routerLink]=\"constants.forgortPasswordPageUrl\"\n >{{ constants.forgotPassword }}</a\n >\n <button\n tabindex=\"3\"\n class=\"login-btn\"\n [anna-cognito-lib-SpinnerButton]=\"authService.consumingProjectAuthService.isLoggingIn\"\n [spinnerButtonText]=\"constants.login\"\n ></button>\n </form>\n </article>\n <footer>\n <anna-cognito-lib-powered-by-logo-template> </anna-cognito-lib-powered-by-logo-template>\n </footer>\n </section>\n</div>\n\n<div class=\"page-footer\">\n <anna-cognito-lib-surewaves-year-logo></anna-cognito-lib-surewaves-year-logo>\n <anna-cognito-lib-version-and-term-policy></anna-cognito-lib-version-and-term-policy>\n</div>\n", styles: ["@keyframes show{0%{opacity:0}50%{opacity:.5}to{opacity:1}}html{overflow-y:scroll}.main{background-color:#fff;background-size:cover;font-family:Roboto;height:calc(100vh - 50px)}section{top:45%;left:50%;position:absolute;transform:translate(-50%,-50%);width:20.875rem;animation:show .5s 1;-moz-animation:show .5s 1}.container{width:100%;height:100%;overflow:auto}header{height:auto;width:100%;text-align:center}article{margin-top:.9375rem;margin-bottom:.9375rem;border:1px solid #979797;background-color:#f4f4f4;padding:2rem 1.375rem;border-radius:.375rem;box-shadow:0 .125rem .4375rem #0000001a}article .sub-title{color:#6e6e6e;font-family:Roboto;font-size:1.25rem;font-weight:700;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}article #heading{color:#212121;text-align:center;margin-bottom:1.5rem;font-family:Roboto;font-size:1.125rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}p{text-align:center;margin-bottom:1rem}#alert-div{padding:.3125rem 0;margin-bottom:.75rem;border-radius:.25rem;border:solid 1px #f9b3ae;background-color:#fde4e3;justify-content:left;align-items:center;display:flex}#alert-div .material-icons{color:#f44336;font-size:1rem;margin-left:.5rem}#alert-div p{margin-left:4px!important;margin:0;color:#4a4a4a;font-family:Roboto;font-size:.75rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}#info-div{padding:6px 0;margin-bottom:.75rem;border-radius:.25rem;border:1px solid #268bff;background:#e3f0ff}#info-div .mdi-info{color:#268bff;font-size:1rem;margin-left:6px}#info-div p{margin:-1.5625rem 0 0 1.8rem;padding:.3125rem 0;color:#4a4a4a;font-family:Roboto;font-size:.75rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}footer{align-items:baseline;color:#6e6e6e;opacity:.9;display:flex;font-family:Ubuntu;font-size:1.25rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal;justify-content:center}footer span{font-size:1.5625rem;margin-left:.25rem}input[type=password],input[type=text],input[type=number]{width:100%;height:30px;padding:.75rem 1rem;border:1px solid #979797;margin-bottom:.625rem;border-radius:.375rem}.login-btn{width:100%;height:2.5rem;border:0;color:#fff;background-color:#268bff;border-radius:.375rem;font-size:1rem}.login-btn:hover{background-color:#4099ff;cursor:pointer}.login-btn:disabled{background-color:#ccc;color:#fff;cursor:not-allowed}.input-invalid{border:1px solid #fe3824!important}input[type=password].ng-dirty.ng-invalid,input[type=text].ng-dirty.ng-invalid{border:1px solid #fe3824}input[type=submit]:focus,input[type=password]:focus,input[type=text]:focus,input[type=checkbox]:focus,button:focus{outline:none}input::placeholder{color:#a4a4a4}:host ::ng-deep .verison-and-policy{color:#8bac2a}a{float:right;color:#268bff;font-family:Roboto;font-size:.875rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal;text-decoration:underline;margin-bottom:.9375rem}a:hover{cursor:pointer}\n"] }]
60
+ }], ctorParameters: function () { return [{ type: i1.AnnaLibAuthService }, { type: i2.FormBuilder }, { type: undefined, decorators: [{
61
+ type: Inject,
62
+ args: [CONFIG_SERVICE_TOKEN]
63
+ }] }, { type: undefined, decorators: [{
64
+ type: Inject,
65
+ args: [SSO_LOGIN_SERVICE_TOKEN]
66
+ }] }]; } });
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5uYS1sb2dpbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbm5hLWNvZ25pdG8tbGliL3NyYy9saWIvY29tcG9uZW50cy9hbm5hLWxvZ2luL2FubmEtbG9naW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5uYS1jb2duaXRvLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvYW5uYS1sb2dpbi9hbm5hLWxvZ2luLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDRCQUE0QjtBQUM1QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUUsV0FBVyxFQUFhLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTFGLGlDQUFpQztBQUNqQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDakUsT0FBTyxFQUFFLG9CQUFvQixFQUFrQixNQUFNLG1DQUFtQyxDQUFDO0FBQ3pGLE9BQU8sRUFBb0IsdUJBQXVCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNqRyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUM3RyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUNsRyxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQztBQUNoSCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUNsRyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQW9CbEUsTUFBTSxPQUFPLGtCQUFrQjtJQUkzQixZQUNXLFdBQStCLEVBQzlCLEVBQWUsRUFDYyw2QkFBNkMsRUFDMUMsK0JBQWlEO1FBSGxGLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQUM5QixPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ2Msa0NBQTZCLEdBQTdCLDZCQUE2QixDQUFnQjtRQUMxQyxvQ0FBK0IsR0FBL0IsK0JBQStCLENBQWtCO0lBQzFGLENBQUM7SUFFSixRQUFRO1FBQ0osSUFBSSxDQUFDLFdBQVcsQ0FBQywyQkFBMkIsQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ2pFLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO1FBQzVELElBQUksQ0FBQyxTQUFTLEdBQUcsYUFBYSxDQUFDO1FBQy9CLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsZUFBZTtRQUNYLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDM0IsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDO1lBQ2hCLFFBQVEsRUFBRSxDQUFDLElBQUksQ0FBQztTQUNuQixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsT0FBTztRQUNILElBQUksQ0FBQyxXQUFXLENBQUMsMkJBQTJCLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUNoRSxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDM0QsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQzNELElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDMUQsQ0FBQzsrR0E5QlEsa0JBQWtCLCtFQU9mLG9CQUFvQixhQUNwQix1QkFBdUI7bUdBUjFCLGtCQUFrQix1RkNsQy9CLDh4RkF3RUEsK2xHRGxEUSxJQUFJLDZGQUNKLGdCQUFnQiwyTUFDaEIsV0FBVywycEJBQ1gsbUJBQW1CLGdWQUNuQixPQUFPLG9GQUNQLFVBQVUsNE5BQ1Ysc0JBQXNCLDhJQUN0Qiw4QkFBOEIsc0ZBQzlCLDBCQUEwQixpRkFDMUIsNkJBQTZCOzs0RkFHeEIsa0JBQWtCO2tCQWxCOUIsU0FBUzsrQkFDSSw2QkFBNkIsY0FHM0IsSUFBSSxXQUNQO3dCQUNMLElBQUk7d0JBQ0osZ0JBQWdCO3dCQUNoQixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsT0FBTzt3QkFDUCxVQUFVO3dCQUNWLHNCQUFzQjt3QkFDdEIsOEJBQThCO3dCQUM5QiwwQkFBMEI7d0JBQzFCLDZCQUE2QjtxQkFDaEM7OzBCQVNJLE1BQU07MkJBQUMsb0JBQW9COzswQkFDM0IsTUFBTTsyQkFBQyx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyIGltcG9ydCBzdGF0ZW1lbnRzXG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuLy8gVXNlciBkZWZpbmVkIGltcG9ydCBzdGF0ZW1lbnRzXG5pbXBvcnQgeyBMb2dpbkNvbnN0YW50IH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2xvZ2luQ29uc3RhbnQnO1xuaW1wb3J0IHsgQW5uYUxpYkF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IENPTkZJR19TRVJWSUNFX1RPS0VOLCBJQ29uZmlnU2VydmljZSB9IGZyb20gJy4uLy4uL2NvbmZpZy9jb25maWctc2VydmljZS50b2tlbic7XG5pbXBvcnQgeyBJU1NPTG9naW5TZXJ2aWNlLCBTU09fTE9HSU5fU0VSVklDRV9UT0tFTiB9IGZyb20gJy4uLy4uL2NvbmZpZy9zc28tbG9naW4tc2VydmljZS50b2tlbic7XG5pbXBvcnQgeyBWZXJzaW9uQW5kVGVybVBvbGljeUNvbXBvbmVudCB9IGZyb20gJy4uL3ZlcnNpb24tYW5kLXRlcm0tcG9saWN5L3ZlcnNpb24tYW5kLXRlcm0tcG9saWN5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTdXJld2F2ZXNZZWFyTG9nb0NvbXBvbmVudCB9IGZyb20gJy4uL3N1cmV3YXZlcy15ZWFyLWxvZ28vc3VyZXdhdmVzLXllYXItbG9nby5jb21wb25lbnQnO1xuaW1wb3J0IHsgUG93ZXJlZEJ5TG9nb1RlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vcG93ZXJlZC1ieS1sb2dvLXRlbXBsYXRlL3Bvd2VyZWQtYnktbG9nby10ZW1wbGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3Bpbm5lckJ1dHRvbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvc3Bpbm5lci1idXR0b24vc3Bpbm5lci1idXR0b24uZGlyZWN0aXZlJztcbmltcG9ydCB7IFJvdXRlckxpbmsgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgTmdJZiwgTmdPcHRpbWl6ZWRJbWFnZSwgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYW5uYS1jb2duaXRvLWxpYi1hbm5hLWxvZ2luJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYW5uYS1sb2dpbi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vYW5uYS1sb2dpbi5jb21wb25lbnQuc2NzcyddLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBOZ0lmLFxuICAgICAgICBOZ09wdGltaXplZEltYWdlLFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICAgICAgTmdDbGFzcyxcbiAgICAgICAgUm91dGVyTGluayxcbiAgICAgICAgU3Bpbm5lckJ1dHRvbkRpcmVjdGl2ZSxcbiAgICAgICAgUG93ZXJlZEJ5TG9nb1RlbXBsYXRlQ29tcG9uZW50LFxuICAgICAgICBTdXJld2F2ZXNZZWFyTG9nb0NvbXBvbmVudCxcbiAgICAgICAgVmVyc2lvbkFuZFRlcm1Qb2xpY3lDb21wb25lbnQsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQW5uYUxvZ2luQ29tcG9uZW50IHtcbiAgICBsb2dpbkZvcm06IEZvcm1Hcm91cDtcbiAgICBjb25zdGFudHM6IHR5cGVvZiBMb2dpbkNvbnN0YW50O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBhdXRoU2VydmljZTogQW5uYUxpYkF1dGhTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcbiAgICAgICAgQEluamVjdChDT05GSUdfU0VSVklDRV9UT0tFTikgcHVibGljIGNvbnN1bWluZ1Byb2plY3RDb25maWdTZXJ2aWNlOiBJQ29uZmlnU2VydmljZSxcbiAgICAgICAgQEluamVjdChTU09fTE9HSU5fU0VSVklDRV9UT0tFTikgcHVibGljIGNvbnN1bWluZ1Byb2plY3RTU09Mb2dpblNlcnZpY2U6IElTU09Mb2dpblNlcnZpY2UsXG4gICAgKSB7fVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuYXV0aFNlcnZpY2UuY29uc3VtaW5nUHJvamVjdEF1dGhTZXJ2aWNlLmlzTG9nZ2luZ0luID0gZmFsc2U7XG4gICAgICAgIHRoaXMuY29uc3VtaW5nUHJvamVjdFNTT0xvZ2luU2VydmljZS5sb2dnZWRJblZpYVNzbyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmNvbnN0YW50cyA9IExvZ2luQ29uc3RhbnQ7XG4gICAgICAgIHRoaXMub25JbnRpYWxpc2VGb3JtKCk7XG4gICAgfVxuXG4gICAgb25JbnRpYWxpc2VGb3JtKCkge1xuICAgICAgICB0aGlzLmxvZ2luRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgICAgICAgdXNlcm5hbWU6IFtudWxsXSxcbiAgICAgICAgICAgIHBhc3N3b3JkOiBbbnVsbF0sXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIE9uTG9naW4oKSB7XG4gICAgICAgIHRoaXMuYXV0aFNlcnZpY2UuY29uc3VtaW5nUHJvamVjdEF1dGhTZXJ2aWNlLmlzTG9nZ2luZ0luID0gdHJ1ZTtcbiAgICAgICAgY29uc3QgdXNlcm5hbWUgPSB0aGlzLmxvZ2luRm9ybS5jb250cm9sc1sndXNlcm5hbWUnXS52YWx1ZTtcbiAgICAgICAgY29uc3QgcGFzc3dvcmQgPSB0aGlzLmxvZ2luRm9ybS5jb250cm9sc1sncGFzc3dvcmQnXS52YWx1ZTtcbiAgICAgICAgdGhpcy5hdXRoU2VydmljZS5oYW5kbGVTaWduSW4oeyB1c2VybmFtZSwgcGFzc3dvcmQgfSk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm1haW5cIj5cbiAgICA8IS0tIExvYWQgbG9naW4gcGFnZSB3aGVuIGFsbCBjb25zdGFudCB2YXJpYWJsZSBhcmUgaW50aWF0ZWQgb3RoZXJ3aXNlIGl0IHdpbGwgc2hvdyBhIGdsaXRjaC4gdGhhdCdzIHdoeSBuZ0lmIGNoZWNrIG9mIGNvbnN0YW50cy5mb3Jnb3RQYXNzd29yZCAtLT5cbiAgICA8c2VjdGlvbiAqbmdJZj1cImNvbnN0YW50cy5mb3Jnb3RQYXNzd29yZFwiPlxuICAgICAgICA8aGVhZGVyPlxuICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgIFtuZ1NyY109XCJjb25zdW1pbmdQcm9qZWN0Q29uZmlnU2VydmljZS5hcHBHZW5lcmljQ29uZmlnLmxvZ2luUGFnZUxvZ29JbWdVcmxcIlxuICAgICAgICAgICAgICAgIHdpZHRoPVwiMTQ1XCJcbiAgICAgICAgICAgICAgICBoZWlnaHQ9XCI1MFwiXG4gICAgICAgICAgICAgICAgYWx0PVwiQW5uYSBMb2dvXCJcbiAgICAgICAgICAgICAgICBwcmlvcml0eVxuICAgICAgICAgICAgLz5cbiAgICAgICAgPC9oZWFkZXI+XG4gICAgICAgIDxhcnRpY2xlPlxuICAgICAgICAgICAgPGZvcm1cbiAgICAgICAgICAgICAgICBbZm9ybUdyb3VwXT1cImxvZ2luRm9ybVwiXG4gICAgICAgICAgICAgICAgKG5nU3VibWl0KT1cIk9uTG9naW4oKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBpZD1cImFsZXJ0LWRpdlwiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiYXV0aFNlcnZpY2UubG9naW5FcnJvck1lc3NhZ2VcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1pY29uc1wiPnJlcG9ydDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPHA+e3sgYXV0aFNlcnZpY2UubG9naW5FcnJvck1lc3NhZ2UgfX08L3A+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD1cIjFcIlxuICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ1c2VybmFtZVwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2lucHV0LWludmFsaWQnOiBhdXRoU2VydmljZS5sb2dpbkVycm9yTWVzc2FnZSB9XCJcbiAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3VtaW5nUHJvamVjdFNTT0xvZ2luU2VydmljZT8uaXNTc29JbnRlZ3JhdGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBjb25zdGFudHMuZW50ZXJVc2VyQ29kZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnRzLmVudGVyRW1haWxcbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwidXNlcm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICBhdXRvZm9jdXNcbiAgICAgICAgICAgICAgICAvPlxuXG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJwYXNzd29yZFwiXG4gICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiMlwiXG4gICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInBhc3N3b3JkXCJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaW5wdXQtaW52YWxpZCc6IGF1dGhTZXJ2aWNlLmxvZ2luRXJyb3JNZXNzYWdlIH1cIlxuICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiY29uc3RhbnRzLnBhc3N3b3JkXCJcbiAgICAgICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwiY3VycmVudC1wYXNzd29yZFwiXG4gICAgICAgICAgICAgICAgICAgIGF1dG9mb2N1c1xuICAgICAgICAgICAgICAgIC8+XG5cbiAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD1cIjRcIlxuICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJjb25zdGFudHMuZm9yZ29ydFBhc3N3b3JkUGFnZVVybFwiXG4gICAgICAgICAgICAgICAgICAgID57eyBjb25zdGFudHMuZm9yZ290UGFzc3dvcmQgfX08L2FcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD1cIjNcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImxvZ2luLWJ0blwiXG4gICAgICAgICAgICAgICAgICAgIFthbm5hLWNvZ25pdG8tbGliLVNwaW5uZXJCdXR0b25dPVwiYXV0aFNlcnZpY2UuY29uc3VtaW5nUHJvamVjdEF1dGhTZXJ2aWNlLmlzTG9nZ2luZ0luXCJcbiAgICAgICAgICAgICAgICAgICAgW3NwaW5uZXJCdXR0b25UZXh0XT1cImNvbnN0YW50cy5sb2dpblwiXG4gICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgPC9mb3JtPlxuICAgICAgICA8L2FydGljbGU+XG4gICAgICAgIDxmb290ZXI+XG4gICAgICAgICAgICA8YW5uYS1jb2duaXRvLWxpYi1wb3dlcmVkLWJ5LWxvZ28tdGVtcGxhdGU+IDwvYW5uYS1jb2duaXRvLWxpYi1wb3dlcmVkLWJ5LWxvZ28tdGVtcGxhdGU+XG4gICAgICAgIDwvZm9vdGVyPlxuICAgIDwvc2VjdGlvbj5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwicGFnZS1mb290ZXJcIj5cbiAgICA8YW5uYS1jb2duaXRvLWxpYi1zdXJld2F2ZXMteWVhci1sb2dvPjwvYW5uYS1jb2duaXRvLWxpYi1zdXJld2F2ZXMteWVhci1sb2dvPlxuICAgIDxhbm5hLWNvZ25pdG8tbGliLXZlcnNpb24tYW5kLXRlcm0tcG9saWN5PjwvYW5uYS1jb2duaXRvLWxpYi12ZXJzaW9uLWFuZC10ZXJtLXBvbGljeT5cbjwvZGl2PlxuIl19
@@ -0,0 +1,22 @@
1
+ import { Component, Inject } from '@angular/core';
2
+ import { SSO_LOGIN_SERVICE_TOKEN } from '../../config/sso-login-service.token';
3
+ import { SsoLoginComponent } from '../sso-login/sso-login.component';
4
+ import { AnnaLoginComponent } from '../anna-login/anna-login.component';
5
+ import { NgIf } from '@angular/common';
6
+ import * as i0 from "@angular/core";
7
+ export class CognitoAndSSOLoginContainerComponent {
8
+ constructor(consumingProjectSSOLoginService) {
9
+ this.consumingProjectSSOLoginService = consumingProjectSSOLoginService;
10
+ }
11
+ ngOnInit() { }
12
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CognitoAndSSOLoginContainerComponent, deps: [{ token: SSO_LOGIN_SERVICE_TOKEN }], target: i0.ɵɵFactoryTarget.Component }); }
13
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CognitoAndSSOLoginContainerComponent, isStandalone: true, selector: "anna-cognito-lib-cognito-and-sso-login-container", ngImport: i0, template: "<anna-cognito-lib-anna-login *ngIf=\"!consumingProjectSSOLoginService?.isSsoIntegrated\"></anna-cognito-lib-anna-login>\n<anna-cognito-lib-sso-login *ngIf=\"consumingProjectSSOLoginService?.isSsoIntegrated\"></anna-cognito-lib-sso-login>\n", styles: [""], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: AnnaLoginComponent, selector: "anna-cognito-lib-anna-login" }, { kind: "component", type: SsoLoginComponent, selector: "anna-cognito-lib-sso-login" }] }); }
14
+ }
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CognitoAndSSOLoginContainerComponent, decorators: [{
16
+ type: Component,
17
+ args: [{ selector: 'anna-cognito-lib-cognito-and-sso-login-container', standalone: true, imports: [NgIf, AnnaLoginComponent, SsoLoginComponent], template: "<anna-cognito-lib-anna-login *ngIf=\"!consumingProjectSSOLoginService?.isSsoIntegrated\"></anna-cognito-lib-anna-login>\n<anna-cognito-lib-sso-login *ngIf=\"consumingProjectSSOLoginService?.isSsoIntegrated\"></anna-cognito-lib-sso-login>\n" }]
18
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
19
+ type: Inject,
20
+ args: [SSO_LOGIN_SERVICE_TOKEN]
21
+ }] }]; } });
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29nbml0by1hbmQtc3NvLWxvZ2luLWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbm5hLWNvZ25pdG8tbGliL3NyYy9saWIvY29tcG9uZW50cy9jb2duaXRvLWFuZC1zc28tbG9naW4tY29udGFpbmVyL2NvZ25pdG8tYW5kLXNzby1sb2dpbi1jb250YWluZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5uYS1jb2duaXRvLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvY29nbml0by1hbmQtc3NvLWxvZ2luLWNvbnRhaW5lci9jb2duaXRvLWFuZC1zc28tbG9naW4tY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBb0IsdUJBQXVCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNqRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBU3ZDLE1BQU0sT0FBTyxvQ0FBb0M7SUFDN0MsWUFBb0QsK0JBQWlEO1FBQWpELG9DQUErQixHQUEvQiwrQkFBK0IsQ0FBa0I7SUFBRyxDQUFDO0lBRXpHLFFBQVEsS0FBSSxDQUFDOytHQUhKLG9DQUFvQyxrQkFDekIsdUJBQXVCO21HQURsQyxvQ0FBb0MsNEdDYmpELGlQQUVBLDBERFNjLElBQUksNkZBQUUsa0JBQWtCLHdFQUFFLGlCQUFpQjs7NEZBRTVDLG9DQUFvQztrQkFQaEQsU0FBUzsrQkFDSSxrREFBa0QsY0FHaEQsSUFBSSxXQUNQLENBQUMsSUFBSSxFQUFFLGtCQUFrQixFQUFFLGlCQUFpQixDQUFDOzswQkFHekMsTUFBTTsyQkFBQyx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJU1NPTG9naW5TZXJ2aWNlLCBTU09fTE9HSU5fU0VSVklDRV9UT0tFTiB9IGZyb20gJy4uLy4uL2NvbmZpZy9zc28tbG9naW4tc2VydmljZS50b2tlbic7XG5pbXBvcnQgeyBTc29Mb2dpbkNvbXBvbmVudCB9IGZyb20gJy4uL3Nzby1sb2dpbi9zc28tbG9naW4uY29tcG9uZW50JztcbmltcG9ydCB7IEFubmFMb2dpbkNvbXBvbmVudCB9IGZyb20gJy4uL2FubmEtbG9naW4vYW5uYS1sb2dpbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYW5uYS1jb2duaXRvLWxpYi1jb2duaXRvLWFuZC1zc28tbG9naW4tY29udGFpbmVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY29nbml0by1hbmQtc3NvLWxvZ2luLWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vY29nbml0by1hbmQtc3NvLWxvZ2luLWNvbnRhaW5lci5jb21wb25lbnQuc2NzcyddLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nSWYsIEFubmFMb2dpbkNvbXBvbmVudCwgU3NvTG9naW5Db21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBDb2duaXRvQW5kU1NPTG9naW5Db250YWluZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIGNvbnN0cnVjdG9yKEBJbmplY3QoU1NPX0xPR0lOX1NFUlZJQ0VfVE9LRU4pIHB1YmxpYyBjb25zdW1pbmdQcm9qZWN0U1NPTG9naW5TZXJ2aWNlOiBJU1NPTG9naW5TZXJ2aWNlKSB7fVxuXG4gICAgbmdPbkluaXQoKSB7fVxufVxuIiwiPGFubmEtY29nbml0by1saWItYW5uYS1sb2dpbiAqbmdJZj1cIiFjb25zdW1pbmdQcm9qZWN0U1NPTG9naW5TZXJ2aWNlPy5pc1Nzb0ludGVncmF0ZWRcIj48L2FubmEtY29nbml0by1saWItYW5uYS1sb2dpbj5cbjxhbm5hLWNvZ25pdG8tbGliLXNzby1sb2dpbiAqbmdJZj1cImNvbnN1bWluZ1Byb2plY3RTU09Mb2dpblNlcnZpY2U/LmlzU3NvSW50ZWdyYXRlZFwiPjwvYW5uYS1jb2duaXRvLWxpYi1zc28tbG9naW4+XG4iXX0=
@@ -0,0 +1,133 @@
1
+ // Angular import statements
2
+ import { Component, Inject } from '@angular/core';
3
+ import { FormBuilder, Validators, FormsModule, ReactiveFormsModule } from '@angular/forms';
4
+ // Third party import statements
5
+ import { ToastrService } from 'ngx-toastr';
6
+ import { forkJoin } from 'rxjs';
7
+ // User defined import statements
8
+ import { UsernameInfo, UserState } from '../../models/auth.model';
9
+ import { AnnaLibAuthService } from '../../services/auth.service';
10
+ import { LoginConstant } from '../../constants/loginConstant';
11
+ import { Router } from '@angular/router';
12
+ import { CONFIG_SERVICE_TOKEN } from '../../config/config-service.token';
13
+ import { AUTH_SERVICE_TOKEN } from '../../config/auth-service.token';
14
+ import { SSO_LOGIN_SERVICE_TOKEN } from '../../config/sso-login-service.token';
15
+ import { VersionAndTermPolicyComponent } from '../version-and-term-policy/version-and-term-policy.component';
16
+ import { SurewavesYearLogoComponent } from '../surewaves-year-logo/surewaves-year-logo.component';
17
+ import { PoweredByLogoTemplateComponent } from '../powered-by-logo-template/powered-by-logo-template.component';
18
+ import { SpinnerButtonDirective } from '../../directives/spinner-button/spinner-button.directive';
19
+ import { NgIf, NgClass } from '@angular/common';
20
+ import * as i0 from "@angular/core";
21
+ import * as i1 from "../../services/auth.service";
22
+ import * as i2 from "@angular/forms";
23
+ import * as i3 from "ngx-toastr";
24
+ import * as i4 from "@angular/router";
25
+ export class ForgotPasswordComponent {
26
+ constructor(authService, fb, toastr, router, consumingProjectConfigService, consumingProjectAuthService, consumingProjectSSOLoginService) {
27
+ this.authService = authService;
28
+ this.fb = fb;
29
+ this.toastr = toastr;
30
+ this.router = router;
31
+ this.consumingProjectConfigService = consumingProjectConfigService;
32
+ this.consumingProjectAuthService = consumingProjectAuthService;
33
+ this.consumingProjectSSOLoginService = consumingProjectSSOLoginService;
34
+ this.passwordNotMatching = false;
35
+ this.password = { value: null, status: null };
36
+ this.confirmPassword = { value: null, status: null };
37
+ this.infoMessageToRedirectLogin = null;
38
+ this.isLoading = false;
39
+ }
40
+ ngOnInit() {
41
+ this.infoMessageToRedirectLogin = null;
42
+ this.constants = LoginConstant;
43
+ this.onIntialiseForm();
44
+ if (this.consumingProjectAuthService.userName) {
45
+ this.onUpdateForm();
46
+ }
47
+ this.authService.forgotPasswordAndGlobalSignoutLoader = false;
48
+ }
49
+ onIntialiseForm() {
50
+ this.verifyRegisteredEmail = this.fb.group({
51
+ email: [null, [Validators.required]],
52
+ });
53
+ }
54
+ onUpdateForm() {
55
+ this.verifyRegisteredEmail.patchValue({
56
+ email: this.consumingProjectAuthService.userName,
57
+ });
58
+ }
59
+ isFormValid() {
60
+ return this.verifyRegisteredEmail.valid;
61
+ }
62
+ onLoginOrGetOtpButtonClick() {
63
+ if (this.infoMessageToRedirectLogin) {
64
+ this.router.navigate([LoginConstant.loginPageUrl]);
65
+ }
66
+ else {
67
+ this.onVerifyRegisteredEmail();
68
+ }
69
+ }
70
+ onVerifyRegisteredEmail() {
71
+ this.isLoading = true;
72
+ this.errorMessage = null;
73
+ this.infoMessageToRedirectLogin = null;
74
+ let username = this.verifyRegisteredEmail.controls['email'].value;
75
+ let isUsernameAvailable = this.authService.consumingProjectAuthService.isUsernameAvailable(username);
76
+ let isUsernameTempPasswordSet = this.authService.consumingProjectAuthService.getUserState(username);
77
+ forkJoin([isUsernameAvailable, isUsernameTempPasswordSet]).subscribe({
78
+ next: (result) => {
79
+ let isUsernameAvailable = new UsernameInfo(result[0]).isUsernameAvailable;
80
+ let isUserWithTempPassword = new UserState(result[1]).isUserWithTempPassword;
81
+ this.onGettingUserStatus(isUsernameAvailable, isUserWithTempPassword, username);
82
+ this.isLoading = false;
83
+ },
84
+ error: (error) => {
85
+ if (error.status == 400) {
86
+ this.errorMessage = this.constants.userNotFound;
87
+ }
88
+ else {
89
+ this.toastr.error(LoginConstant.apiFailErrorMessage);
90
+ }
91
+ this.isLoading = false;
92
+ },
93
+ });
94
+ }
95
+ onGettingUserStatus(isUsernameAvailable, isUserWithTempPassword, username) {
96
+ if (!isUsernameAvailable) {
97
+ if (!isUserWithTempPassword) {
98
+ this.authService.onForgotPasswordGenerateOTP(username);
99
+ }
100
+ else {
101
+ this.infoMessageToRedirectLogin = this.constants.firstTimeLoginUserTempPasswordMsg;
102
+ }
103
+ }
104
+ else {
105
+ this.errorMessage = this.constants.userNotFound;
106
+ }
107
+ }
108
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ForgotPasswordComponent, deps: [{ token: i1.AnnaLibAuthService }, { token: i2.FormBuilder }, { token: i3.ToastrService }, { token: i4.Router }, { token: CONFIG_SERVICE_TOKEN }, { token: AUTH_SERVICE_TOKEN }, { token: SSO_LOGIN_SERVICE_TOKEN }], target: i0.ɵɵFactoryTarget.Component }); }
109
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ForgotPasswordComponent, isStandalone: true, selector: "anna-cognito-lib-forgot-password", ngImport: i0, template: "<div class=\"main\">\n <section>\n <header>\n <img\n [src]=\"consumingProjectConfigService.appGenericConfig.loginPageLogoImgUrl\"\n alt=\"Anna Logo\"\n />\n </header>\n <article>\n <form [formGroup]=\"verifyRegisteredEmail\">\n <ng-container *ngIf=\"!infoMessageToRedirectLogin\">\n <div id=\"heading\">\n {{ constants.forgotPasswordHeading }}\n </div>\n <p>\n {{\n consumingProjectSSOLoginService?.isSsoIntegrated\n ? constants.PleaseEnterYourUsercodeMessage\n : constants.PleaseEnterYourUsernameMessage\n }}\n </p>\n </ng-container>\n <div\n id=\"alert-div\"\n *ngIf=\"errorMessage\"\n >\n <span class=\"material-icons\">report</span>\n <p id=\"alert-msg\">{{ errorMessage }}</p>\n </div>\n <div\n id=\"info-div\"\n *ngIf=\"infoMessageToRedirectLogin\"\n >\n <i class=\"mi mdi-info\"></i>\n <p>{{ infoMessageToRedirectLogin }}</p>\n </div>\n\n <input\n *ngIf=\"!infoMessageToRedirectLogin\"\n type=\"text\"\n tabindex=\"1\"\n formControlName=\"email\"\n [placeholder]=\"\n consumingProjectSSOLoginService?.isSsoIntegrated\n ? constants.enterUserCode\n : constants.enterEmail\n \"\n [ngClass]=\"{\n 'input-invalid':\n verifyRegisteredEmail.get('email')?.dirty && verifyRegisteredEmail.get('email')?.errors\n }\"\n />\n\n <button\n tabindex=\"2\"\n type=\"submit\"\n class=\"login-btn\"\n [anna-cognito-lib-SpinnerButton]=\"isLoading\"\n (click)=\"onLoginOrGetOtpButtonClick()\"\n [spinnerButtonText]=\"infoMessageToRedirectLogin ? constants.login : constants.forgotPasswordButton\"\n ></button>\n </form>\n </article>\n <footer>\n <anna-cognito-lib-powered-by-logo-template> </anna-cognito-lib-powered-by-logo-template>\n </footer>\n </section>\n</div>\n\n<div class=\"page-footer\">\n <anna-cognito-lib-surewaves-year-logo></anna-cognito-lib-surewaves-year-logo>\n <anna-cognito-lib-version-and-term-policy></anna-cognito-lib-version-and-term-policy>\n</div>\n", styles: ["@keyframes show{0%{opacity:0}50%{opacity:.5}to{opacity:1}}html{overflow-y:scroll}.main{background-color:#fff;background-size:cover;font-family:Roboto;height:calc(100vh - 50px)}section{top:45%;left:50%;position:absolute;transform:translate(-50%,-50%);width:20.875rem;animation:show .5s 1;-moz-animation:show .5s 1}.container{width:100%;height:100%;overflow:auto}header{height:auto;width:100%;text-align:center}article{margin-top:.9375rem;margin-bottom:.9375rem;border:1px solid #979797;background-color:#f4f4f4;padding:2rem 1.375rem;border-radius:.375rem;box-shadow:0 .125rem .4375rem #0000001a}article .sub-title{color:#6e6e6e;font-family:Roboto;font-size:1.25rem;font-weight:700;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}article #heading{color:#212121;text-align:center;margin-bottom:1.5rem;font-family:Roboto;font-size:1.125rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}p{text-align:center;margin-bottom:1rem}#alert-div{padding:.3125rem 0;margin-bottom:.75rem;border-radius:.25rem;border:solid 1px #f9b3ae;background-color:#fde4e3;justify-content:left;align-items:center;display:flex}#alert-div .material-icons{color:#f44336;font-size:1rem;margin-left:.5rem}#alert-div p{margin-left:4px!important;margin:0;color:#4a4a4a;font-family:Roboto;font-size:.75rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}#info-div{padding:6px 0;margin-bottom:.75rem;border-radius:.25rem;border:1px solid #268bff;background:#e3f0ff}#info-div .mdi-info{color:#268bff;font-size:1rem;margin-left:6px}#info-div p{margin:-1.5625rem 0 0 1.8rem;padding:.3125rem 0;color:#4a4a4a;font-family:Roboto;font-size:.75rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}footer{align-items:baseline;color:#6e6e6e;opacity:.9;display:flex;font-family:Ubuntu;font-size:1.25rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal;justify-content:center}footer span{font-size:1.5625rem;margin-left:.25rem}input[type=password],input[type=text],input[type=number]{width:100%;height:30px;padding:.75rem 1rem;border:1px solid #979797;margin-bottom:.625rem;border-radius:.375rem}.login-btn{width:100%;height:2.5rem;border:0;color:#fff;background-color:#268bff;border-radius:.375rem;font-size:1rem}.login-btn:hover{background-color:#4099ff;cursor:pointer}.login-btn:disabled{background-color:#ccc;color:#fff;cursor:not-allowed}.input-invalid{border:1px solid #fe3824!important}input[type=password].ng-dirty.ng-invalid,input[type=text].ng-dirty.ng-invalid{border:1px solid #fe3824}input[type=submit]:focus,input[type=password]:focus,input[type=text]:focus,input[type=checkbox]:focus,button:focus{outline:none}input::placeholder{color:#a4a4a4}:host ::ng-deep .verison-and-policy{color:#8bac2a}p{color:#4a4a4a;font-family:Roboto;font-size:1rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}input[type=text]{margin-bottom:16px}input[type=text]:focus{box-shadow:none}.back-btn{font-size:27px;position:relative;color:#268bff;float:left;top:-30px;left:-15px;font-weight:400!important}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: SpinnerButtonDirective, selector: "[anna-cognito-lib-SpinnerButton]", inputs: ["anna-cognito-lib-SpinnerButton", "spinnerButtonText"] }, { kind: "component", type: PoweredByLogoTemplateComponent, selector: "anna-cognito-lib-powered-by-logo-template" }, { kind: "component", type: SurewavesYearLogoComponent, selector: "anna-cognito-lib-surewaves-year-logo" }, { kind: "component", type: VersionAndTermPolicyComponent, selector: "anna-cognito-lib-version-and-term-policy" }] }); }
110
+ }
111
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ForgotPasswordComponent, decorators: [{
112
+ type: Component,
113
+ args: [{ selector: 'anna-cognito-lib-forgot-password', standalone: true, imports: [
114
+ FormsModule,
115
+ ReactiveFormsModule,
116
+ NgIf,
117
+ NgClass,
118
+ SpinnerButtonDirective,
119
+ PoweredByLogoTemplateComponent,
120
+ SurewavesYearLogoComponent,
121
+ VersionAndTermPolicyComponent,
122
+ ], template: "<div class=\"main\">\n <section>\n <header>\n <img\n [src]=\"consumingProjectConfigService.appGenericConfig.loginPageLogoImgUrl\"\n alt=\"Anna Logo\"\n />\n </header>\n <article>\n <form [formGroup]=\"verifyRegisteredEmail\">\n <ng-container *ngIf=\"!infoMessageToRedirectLogin\">\n <div id=\"heading\">\n {{ constants.forgotPasswordHeading }}\n </div>\n <p>\n {{\n consumingProjectSSOLoginService?.isSsoIntegrated\n ? constants.PleaseEnterYourUsercodeMessage\n : constants.PleaseEnterYourUsernameMessage\n }}\n </p>\n </ng-container>\n <div\n id=\"alert-div\"\n *ngIf=\"errorMessage\"\n >\n <span class=\"material-icons\">report</span>\n <p id=\"alert-msg\">{{ errorMessage }}</p>\n </div>\n <div\n id=\"info-div\"\n *ngIf=\"infoMessageToRedirectLogin\"\n >\n <i class=\"mi mdi-info\"></i>\n <p>{{ infoMessageToRedirectLogin }}</p>\n </div>\n\n <input\n *ngIf=\"!infoMessageToRedirectLogin\"\n type=\"text\"\n tabindex=\"1\"\n formControlName=\"email\"\n [placeholder]=\"\n consumingProjectSSOLoginService?.isSsoIntegrated\n ? constants.enterUserCode\n : constants.enterEmail\n \"\n [ngClass]=\"{\n 'input-invalid':\n verifyRegisteredEmail.get('email')?.dirty && verifyRegisteredEmail.get('email')?.errors\n }\"\n />\n\n <button\n tabindex=\"2\"\n type=\"submit\"\n class=\"login-btn\"\n [anna-cognito-lib-SpinnerButton]=\"isLoading\"\n (click)=\"onLoginOrGetOtpButtonClick()\"\n [spinnerButtonText]=\"infoMessageToRedirectLogin ? constants.login : constants.forgotPasswordButton\"\n ></button>\n </form>\n </article>\n <footer>\n <anna-cognito-lib-powered-by-logo-template> </anna-cognito-lib-powered-by-logo-template>\n </footer>\n </section>\n</div>\n\n<div class=\"page-footer\">\n <anna-cognito-lib-surewaves-year-logo></anna-cognito-lib-surewaves-year-logo>\n <anna-cognito-lib-version-and-term-policy></anna-cognito-lib-version-and-term-policy>\n</div>\n", styles: ["@keyframes show{0%{opacity:0}50%{opacity:.5}to{opacity:1}}html{overflow-y:scroll}.main{background-color:#fff;background-size:cover;font-family:Roboto;height:calc(100vh - 50px)}section{top:45%;left:50%;position:absolute;transform:translate(-50%,-50%);width:20.875rem;animation:show .5s 1;-moz-animation:show .5s 1}.container{width:100%;height:100%;overflow:auto}header{height:auto;width:100%;text-align:center}article{margin-top:.9375rem;margin-bottom:.9375rem;border:1px solid #979797;background-color:#f4f4f4;padding:2rem 1.375rem;border-radius:.375rem;box-shadow:0 .125rem .4375rem #0000001a}article .sub-title{color:#6e6e6e;font-family:Roboto;font-size:1.25rem;font-weight:700;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}article #heading{color:#212121;text-align:center;margin-bottom:1.5rem;font-family:Roboto;font-size:1.125rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}p{text-align:center;margin-bottom:1rem}#alert-div{padding:.3125rem 0;margin-bottom:.75rem;border-radius:.25rem;border:solid 1px #f9b3ae;background-color:#fde4e3;justify-content:left;align-items:center;display:flex}#alert-div .material-icons{color:#f44336;font-size:1rem;margin-left:.5rem}#alert-div p{margin-left:4px!important;margin:0;color:#4a4a4a;font-family:Roboto;font-size:.75rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}#info-div{padding:6px 0;margin-bottom:.75rem;border-radius:.25rem;border:1px solid #268bff;background:#e3f0ff}#info-div .mdi-info{color:#268bff;font-size:1rem;margin-left:6px}#info-div p{margin:-1.5625rem 0 0 1.8rem;padding:.3125rem 0;color:#4a4a4a;font-family:Roboto;font-size:.75rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}footer{align-items:baseline;color:#6e6e6e;opacity:.9;display:flex;font-family:Ubuntu;font-size:1.25rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal;justify-content:center}footer span{font-size:1.5625rem;margin-left:.25rem}input[type=password],input[type=text],input[type=number]{width:100%;height:30px;padding:.75rem 1rem;border:1px solid #979797;margin-bottom:.625rem;border-radius:.375rem}.login-btn{width:100%;height:2.5rem;border:0;color:#fff;background-color:#268bff;border-radius:.375rem;font-size:1rem}.login-btn:hover{background-color:#4099ff;cursor:pointer}.login-btn:disabled{background-color:#ccc;color:#fff;cursor:not-allowed}.input-invalid{border:1px solid #fe3824!important}input[type=password].ng-dirty.ng-invalid,input[type=text].ng-dirty.ng-invalid{border:1px solid #fe3824}input[type=submit]:focus,input[type=password]:focus,input[type=text]:focus,input[type=checkbox]:focus,button:focus{outline:none}input::placeholder{color:#a4a4a4}:host ::ng-deep .verison-and-policy{color:#8bac2a}p{color:#4a4a4a;font-family:Roboto;font-size:1rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}input[type=text]{margin-bottom:16px}input[type=text]:focus{box-shadow:none}.back-btn{font-size:27px;position:relative;color:#268bff;float:left;top:-30px;left:-15px;font-weight:400!important}\n"] }]
123
+ }], ctorParameters: function () { return [{ type: i1.AnnaLibAuthService }, { type: i2.FormBuilder }, { type: i3.ToastrService }, { type: i4.Router }, { type: undefined, decorators: [{
124
+ type: Inject,
125
+ args: [CONFIG_SERVICE_TOKEN]
126
+ }] }, { type: undefined, decorators: [{
127
+ type: Inject,
128
+ args: [AUTH_SERVICE_TOKEN]
129
+ }] }, { type: undefined, decorators: [{
130
+ type: Inject,
131
+ args: [SSO_LOGIN_SERVICE_TOKEN]
132
+ }] }]; } });
133
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yZ290LXBhc3N3b3JkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FubmEtY29nbml0by1saWIvc3JjL2xpYi9jb21wb25lbnRzL2ZvcmdvdC1wYXNzd29yZC9mb3Jnb3QtcGFzc3dvcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5uYS1jb2duaXRvLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvZm9yZ290LXBhc3N3b3JkL2ZvcmdvdC1wYXNzd29yZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw0QkFBNEI7QUFDNUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBYSxVQUFVLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEcsZ0NBQWdDO0FBQ2hDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDM0MsT0FBTyxFQUFFLFFBQVEsRUFBeUIsTUFBTSxNQUFNLENBQUM7QUFFdkQsaUNBQWlDO0FBQ2pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDakUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzlELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsb0JBQW9CLEVBQWtCLE1BQU0sbUNBQW1DLENBQUM7QUFDekYsT0FBTyxFQUFFLGtCQUFrQixFQUFnQixNQUFNLGlDQUFpQyxDQUFDO0FBQ25GLE9BQU8sRUFBb0IsdUJBQXVCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNqRyxP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UUFBUSxDQUFDLENBQUM7YUFDMUQ7aUJBQU07Z0JBQ0gsSUFBSSxDQUFDLDBCQUEwQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsaUNBQWlDLENBQUM7YUFDdEY7U0FDSjthQUFNO1lBQ0gsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQztTQUNuRDtJQUNMLENBQUM7K0dBM0ZRLHVCQUF1QixrSUFlcEIsb0JBQW9CLGFBQ3BCLGtCQUFrQixhQUNsQix1QkFBdUI7bUdBakIxQix1QkFBdUIsNEZDdkNwQyxrNUZBeUVBLHFzR0Q1Q1EsV0FBVywycEJBQ1gsbUJBQW1CLGdWQUNuQixJQUFJLDZGQUNKLE9BQU8sb0ZBQ1Asc0JBQXNCLDhJQUN0Qiw4QkFBOEIsc0ZBQzlCLDBCQUEwQixpRkFDMUIsNkJBQTZCOzs0RkFHeEIsdUJBQXVCO2tCQWhCbkMsU0FBUzsrQkFDSSxrQ0FBa0MsY0FHaEMsSUFBSSxXQUNQO3dCQUNMLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixJQUFJO3dCQUNKLE9BQU87d0JBQ1Asc0JBQXNCO3dCQUN0Qiw4QkFBOEI7d0JBQzlCLDBCQUEwQjt3QkFDMUIsNkJBQTZCO3FCQUNoQzs7MEJBaUJJLE1BQU07MkJBQUMsb0JBQW9COzswQkFDM0IsTUFBTTsyQkFBQyxrQkFBa0I7OzBCQUN6QixNQUFNOzJCQUFDLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFuZ3VsYXIgaW1wb3J0IHN0YXRlbWVudHNcbmltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG4vLyBUaGlyZCBwYXJ0eSBpbXBvcnQgc3RhdGVtZW50c1xuaW1wb3J0IHsgVG9hc3RyU2VydmljZSB9IGZyb20gJ25neC10b2FzdHInO1xuaW1wb3J0IHsgZm9ya0pvaW4sIGNhdGNoRXJyb3IsIHBpcGUsIG1hcCB9IGZyb20gJ3J4anMnO1xuXG4vLyBVc2VyIGRlZmluZWQgaW1wb3J0IHN0YXRlbWVudHNcbmltcG9ydCB7IFVzZXJuYW1lSW5mbywgVXNlclN0YXRlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2F1dGgubW9kZWwnO1xuaW1wb3J0IHsgQW5uYUxpYkF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IExvZ2luQ29uc3RhbnQgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvbG9naW5Db25zdGFudCc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQ09ORklHX1NFUlZJQ0VfVE9LRU4sIElDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29uZmlnL2NvbmZpZy1zZXJ2aWNlLnRva2VuJztcbmltcG9ydCB7IEFVVEhfU0VSVklDRV9UT0tFTiwgSUF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29uZmlnL2F1dGgtc2VydmljZS50b2tlbic7XG5pbXBvcnQgeyBJU1NPTG9naW5TZXJ2aWNlLCBTU09fTE9HSU5fU0VSVklDRV9UT0tFTiB9IGZyb20gJy4uLy4uL2NvbmZpZy9zc28tbG9naW4tc2VydmljZS50b2tlbic7XG5pbXBvcnQgeyBWZXJzaW9uQW5kVGVybVBvbGljeUNvbXBvbmVudCB9IGZyb20gJy4uL3ZlcnNpb24tYW5kLXRlcm0tcG9saWN5L3ZlcnNpb24tYW5kLXRlcm0tcG9saWN5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTdXJld2F2ZXNZZWFyTG9nb0NvbXBvbmVudCB9IGZyb20gJy4uL3N1cmV3YXZlcy15ZWFyLWxvZ28vc3VyZXdhdmVzLXllYXItbG9nby5jb21wb25lbnQnO1xuaW1wb3J0IHsgUG93ZXJlZEJ5TG9nb1RlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vcG93ZXJlZC1ieS1sb2dvLXRlbXBsYXRlL3Bvd2VyZWQtYnktbG9nby10ZW1wbGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3Bpbm5lckJ1dHRvbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvc3Bpbm5lci1idXR0b24vc3Bpbm5lci1idXR0b24uZGlyZWN0aXZlJztcbmltcG9ydCB7IE5nSWYsIE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG50eXBlIHBhc3N3b3JkVHlwZSA9IHsgdmFsdWU6IHN0cmluZzsgc3RhdHVzOiBzdHJpbmcgfTtcbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYW5uYS1jb2duaXRvLWxpYi1mb3Jnb3QtcGFzc3dvcmQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9mb3Jnb3QtcGFzc3dvcmQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2ZvcmdvdC1wYXNzd29yZC5jb21wb25lbnQuc2NzcyddLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICAgICAgTmdJZixcbiAgICAgICAgTmdDbGFzcyxcbiAgICAgICAgU3Bpbm5lckJ1dHRvbkRpcmVjdGl2ZSxcbiAgICAgICAgUG93ZXJlZEJ5TG9nb1RlbXBsYXRlQ29tcG9uZW50LFxuICAgICAgICBTdXJld2F2ZXNZZWFyTG9nb0NvbXBvbmVudCxcbiAgICAgICAgVmVyc2lvbkFuZFRlcm1Qb2xpY3lDb21wb25lbnQsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRm9yZ290UGFzc3dvcmRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIGVycm9yTWVzc2FnZTogc3RyaW5nO1xuICAgIHZlcmlmeVJlZ2lzdGVyZWRFbWFpbDogRm9ybUdyb3VwO1xuICAgIHBhc3N3b3JkTm90TWF0Y2hpbmcgPSBmYWxzZTtcbiAgICBjb25zdGFudHM6IHR5cGVvZiBMb2dpbkNvbnN0YW50O1xuICAgIHBhc3N3b3JkOiBwYXNzd29yZFR5cGUgPSB7IHZhbHVlOiBudWxsLCBzdGF0dXM6IG51bGwgfTtcbiAgICBjb25maXJtUGFzc3dvcmQ6IHBhc3N3b3JkVHlwZSA9IHsgdmFsdWU6IG51bGwsIHN0YXR1czogbnVsbCB9O1xuICAgIGluZm9NZXNzYWdlVG9SZWRpcmVjdExvZ2luOiBzdHJpbmcgPSBudWxsO1xuICAgIGlzTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEFubmFMaWJBdXRoU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgICAgIHByaXZhdGUgdG9hc3RyOiBUb2FzdHJTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgICAgICBASW5qZWN0KENPTkZJR19TRVJWSUNFX1RPS0VOKSBwdWJsaWMgY29uc3VtaW5nUHJvamVjdENvbmZpZ1NlcnZpY2U6IElDb25maWdTZXJ2aWNlLFxuICAgICAgICBASW5qZWN0KEFVVEhfU0VSVklDRV9UT0tFTikgcHVibGljIGNvbnN1bWluZ1Byb2plY3RBdXRoU2VydmljZTogSUF1dGhTZXJ2aWNlLFxuICAgICAgICBASW5qZWN0KFNTT19MT0dJTl9TRVJWSUNFX1RPS0VOKSBwdWJsaWMgY29uc3VtaW5nUHJvamVjdFNTT0xvZ2luU2VydmljZTogSVNTT0xvZ2luU2VydmljZSxcbiAgICApIHt9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5pbmZvTWVzc2FnZVRvUmVkaXJlY3RMb2dpbiA9IG51bGw7XG4gICAgICAgIHRoaXMuY29uc3RhbnRzID0gTG9naW5Db25zdGFudDtcbiAgICAgICAgdGhpcy5vbkludGlhbGlzZUZvcm0oKTtcbiAgICAgICAgaWYgKHRoaXMuY29uc3VtaW5nUHJvamVjdEF1dGhTZXJ2aWNlLnVzZXJOYW1lKSB7XG4gICAgICAgICAgICB0aGlzLm9uVXBkYXRlRm9ybSgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZm9yZ290UGFzc3dvcmRBbmRHbG9iYWxTaWdub3V0TG9hZGVyID0gZmFsc2U7XG4gICAgfVxuXG4gICAgb25JbnRpYWxpc2VGb3JtKCkge1xuICAgICAgICB0aGlzLnZlcmlmeVJlZ2lzdGVyZWRFbWFpbCA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgICAgICAgZW1haWw6IFtudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvblVwZGF0ZUZvcm0oKSB7XG4gICAgICAgIHRoaXMudmVyaWZ5UmVnaXN0ZXJlZEVtYWlsLnBhdGNoVmFsdWUoe1xuICAgICAgICAgICAgZW1haWw6IHRoaXMuY29uc3VtaW5nUHJvamVjdEF1dGhTZXJ2aWNlLnVzZXJOYW1lLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBpc0Zvcm1WYWxpZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmVyaWZ5UmVnaXN0ZXJlZEVtYWlsLnZhbGlkO1xuICAgIH1cblxuICAgIG9uTG9naW5PckdldE90cEJ1dHRvbkNsaWNrKCkge1xuICAgICAgICBpZiAodGhpcy5pbmZvTWVzc2FnZVRvUmVkaXJlY3RMb2dpbikge1xuICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW0xvZ2luQ29uc3RhbnQubG9naW5QYWdlVXJsXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm9uVmVyaWZ5UmVnaXN0ZXJlZEVtYWlsKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblZlcmlmeVJlZ2lzdGVyZWRFbWFpbCgpIHtcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IG51bGw7XG4gICAgICAgIHRoaXMuaW5mb01lc3NhZ2VUb1JlZGlyZWN0TG9naW4gPSBudWxsO1xuICAgICAgICBsZXQgdXNlcm5hbWUgPSB0aGlzLnZlcmlmeVJlZ2lzdGVyZWRFbWFpbC5jb250cm9sc1snZW1haWwnXS52YWx1ZTtcblxuICAgICAgICBsZXQgaXNVc2VybmFtZUF2YWlsYWJsZSA9IHRoaXMuYXV0aFNlcnZpY2UuY29uc3VtaW5nUHJvamVjdEF1dGhTZXJ2aWNlLmlzVXNlcm5hbWVBdmFpbGFibGUodXNlcm5hbWUpO1xuICAgICAgICBsZXQgaXNVc2VybmFtZVRlbXBQYXNzd29yZFNldCA9IHRoaXMuYXV0aFNlcnZpY2UuY29uc3VtaW5nUHJvamVjdEF1dGhTZXJ2aWNlLmdldFVzZXJTdGF0ZSh1c2VybmFtZSk7XG5cbiAgICAgICAgZm9ya0pvaW4oW2lzVXNlcm5hbWVBdmFpbGFibGUsIGlzVXNlcm5hbWVUZW1wUGFzc3dvcmRTZXRdKS5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgbmV4dDogKHJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgICAgIGxldCBpc1VzZXJuYW1lQXZhaWxhYmxlID0gbmV3IFVzZXJuYW1lSW5mbyhyZXN1bHRbMF0pLmlzVXNlcm5hbWVBdmFpbGFibGU7XG4gICAgICAgICAgICAgICAgbGV0IGlzVXNlcldpdGhUZW1wUGFzc3dvcmQgPSBuZXcgVXNlclN0YXRlKHJlc3VsdFsxXSkuaXNVc2VyV2l0aFRlbXBQYXNzd29yZDtcbiAgICAgICAgICAgICAgICB0aGlzLm9uR2V0dGluZ1VzZXJTdGF0dXMoaXNVc2VybmFtZUF2YWlsYWJsZSwgaXNVc2VyV2l0aFRlbXBQYXNzd29yZCwgdXNlcm5hbWUpO1xuICAgICAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChlcnJvci5zdGF0dXMgPT0gNDAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gdGhpcy5jb25zdGFudHMudXNlck5vdEZvdW5kO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudG9hc3RyLmVycm9yKExvZ2luQ29uc3RhbnQuYXBpRmFpbEVycm9yTWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvbkdldHRpbmdVc2VyU3RhdHVzKGlzVXNlcm5hbWVBdmFpbGFibGU6IGJvb2xlYW4sIGlzVXNlcldpdGhUZW1wUGFzc3dvcmQ6IGJvb2xlYW4sIHVzZXJuYW1lOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKCFpc1VzZXJuYW1lQXZhaWxhYmxlKSB7XG4gICAgICAgICAgICBpZiAoIWlzVXNlcldpdGhUZW1wUGFzc3dvcmQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLm9uRm9yZ290UGFzc3dvcmRHZW5lcmF0ZU9UUCh1c2VybmFtZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuaW5mb01lc3NhZ2VUb1JlZGlyZWN0TG9naW4gPSB0aGlzLmNvbnN0YW50cy5maXJzdFRpbWVMb2dpblVzZXJUZW1wUGFzc3dvcmRNc2c7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHRoaXMuY29uc3RhbnRzLnVzZXJOb3RGb3VuZDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJtYWluXCI+XG4gICAgPHNlY3Rpb24+XG4gICAgICAgIDxoZWFkZXI+XG4gICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgW3NyY109XCJjb25zdW1pbmdQcm9qZWN0Q29uZmlnU2VydmljZS5hcHBHZW5lcmljQ29uZmlnLmxvZ2luUGFnZUxvZ29JbWdVcmxcIlxuICAgICAgICAgICAgICAgIGFsdD1cIkFubmEgTG9nb1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICA8L2hlYWRlcj5cbiAgICAgICAgPGFydGljbGU+XG4gICAgICAgICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cInZlcmlmeVJlZ2lzdGVyZWRFbWFpbFwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaW5mb01lc3NhZ2VUb1JlZGlyZWN0TG9naW5cIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD1cImhlYWRpbmdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGNvbnN0YW50cy5mb3Jnb3RQYXNzd29yZEhlYWRpbmcgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdW1pbmdQcm9qZWN0U1NPTG9naW5TZXJ2aWNlPy5pc1Nzb0ludGVncmF0ZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBjb25zdGFudHMuUGxlYXNlRW50ZXJZb3VyVXNlcmNvZGVNZXNzYWdlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnRzLlBsZWFzZUVudGVyWW91clVzZXJuYW1lTWVzc2FnZVxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJhbGVydC1kaXZcIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImVycm9yTWVzc2FnZVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLWljb25zXCI+cmVwb3J0PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8cCBpZD1cImFsZXJ0LW1zZ1wiPnt7IGVycm9yTWVzc2FnZSB9fTwvcD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGlkPVwiaW5mby1kaXZcIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImluZm9NZXNzYWdlVG9SZWRpcmVjdExvZ2luXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwibWkgbWRpLWluZm9cIj48L2k+XG4gICAgICAgICAgICAgICAgICAgIDxwPnt7IGluZm9NZXNzYWdlVG9SZWRpcmVjdExvZ2luIH19PC9wPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIWluZm9NZXNzYWdlVG9SZWRpcmVjdExvZ2luXCJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD1cIjFcIlxuICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJlbWFpbFwiXG4gICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN1bWluZ1Byb2plY3RTU09Mb2dpblNlcnZpY2U/LmlzU3NvSW50ZWdyYXRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gY29uc3RhbnRzLmVudGVyVXNlckNvZGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50cy5lbnRlckVtYWlsXG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICdpbnB1dC1pbnZhbGlkJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJpZnlSZWdpc3RlcmVkRW1haWwuZ2V0KCdlbWFpbCcpPy5kaXJ0eSAmJiB2ZXJpZnlSZWdpc3RlcmVkRW1haWwuZ2V0KCdlbWFpbCcpPy5lcnJvcnNcbiAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgLz5cblxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9XCIyXCJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibG9naW4tYnRuXCJcbiAgICAgICAgICAgICAgICAgICAgW2FubmEtY29nbml0by1saWItU3Bpbm5lckJ1dHRvbl09XCJpc0xvYWRpbmdcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25Mb2dpbk9yR2V0T3RwQnV0dG9uQ2xpY2soKVwiXG4gICAgICAgICAgICAgICAgICAgIFtzcGlubmVyQnV0dG9uVGV4dF09XCJpbmZvTWVzc2FnZVRvUmVkaXJlY3RMb2dpbiA/IGNvbnN0YW50cy5sb2dpbiA6IGNvbnN0YW50cy5mb3Jnb3RQYXNzd29yZEJ1dHRvblwiXG4gICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgPC9mb3JtPlxuICAgICAgICA8L2FydGljbGU+XG4gICAgICAgIDxmb290ZXI+XG4gICAgICAgICAgICA8YW5uYS1jb2duaXRvLWxpYi1wb3dlcmVkLWJ5LWxvZ28tdGVtcGxhdGU+IDwvYW5uYS1jb2duaXRvLWxpYi1wb3dlcmVkLWJ5LWxvZ28tdGVtcGxhdGU+XG4gICAgICAgIDwvZm9vdGVyPlxuICAgIDwvc2VjdGlvbj5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwicGFnZS1mb290ZXJcIj5cbiAgICA8YW5uYS1jb2duaXRvLWxpYi1zdXJld2F2ZXMteWVhci1sb2dvPjwvYW5uYS1jb2duaXRvLWxpYi1zdXJld2F2ZXMteWVhci1sb2dvPlxuICAgIDxhbm5hLWNvZ25pdG8tbGliLXZlcnNpb24tYW5kLXRlcm0tcG9saWN5PjwvYW5uYS1jb2duaXRvLWxpYi12ZXJzaW9uLWFuZC10ZXJtLXBvbGljeT5cbjwvZGl2PlxuIl19