@annalib/anna-cognito-lib 0.2.4 → 0.2.7
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.
- package/annalib-anna-cognito-lib.d.ts +5 -0
- package/esm2020/annalib-anna-cognito-lib.mjs +5 -0
- package/esm2020/lib/anna-cognito-lib.module.mjs +74 -0
- package/esm2020/lib/components/forgot-password/forgot-password.component.mjs +72 -0
- package/esm2020/lib/components/login/login.component.mjs +44 -0
- package/esm2020/lib/components/password-matching/password-matching.component.mjs +90 -0
- package/esm2020/lib/components/set-new-password/set-new-password.component.mjs +58 -0
- package/esm2020/lib/components/verify-and-set-new-password/verify-and-set-new-password.component.mjs +71 -0
- package/esm2020/lib/config/acl-service.token.mjs +4 -0
- package/esm2020/lib/config/auth-service.token.mjs +4 -0
- package/esm2020/lib/config/library.config.mjs +6 -0
- package/esm2020/lib/constants/loginConstant.mjs +46 -0
- package/esm2020/lib/directives/spinner-button/index.mjs +2 -0
- package/esm2020/lib/directives/spinner-button/spinner-button.directive.mjs +42 -0
- package/esm2020/lib/models/auth.model.mjs +18 -0
- package/esm2020/lib/services/acl.service.mjs +30 -0
- package/esm2020/lib/services/auth.service.mjs +226 -0
- package/esm2020/public-api.mjs +21 -0
- package/fesm2015/annalib-anna-cognito-lib.mjs +714 -0
- package/fesm2015/annalib-anna-cognito-lib.mjs.map +1 -0
- package/fesm2020/annalib-anna-cognito-lib.mjs +708 -0
- package/fesm2020/annalib-anna-cognito-lib.mjs.map +1 -0
- package/lib/anna-cognito-lib.module.d.ts +18 -0
- package/lib/components/forgot-password/forgot-password.component.d.ts +27 -0
- package/lib/components/login/login.component.d.ts +19 -0
- package/lib/components/password-matching/password-matching.component.d.ts +22 -0
- package/lib/components/set-new-password/set-new-password.component.d.ts +28 -0
- package/lib/components/verify-and-set-new-password/verify-and-set-new-password.component.d.ts +32 -0
- package/lib/config/acl-service.token.d.ts +19 -0
- package/lib/config/auth-service.token.d.ts +12 -0
- package/lib/config/library.config.d.ts +7 -0
- package/lib/constants/loginConstant.d.ts +40 -0
- package/{src/lib/directives/spinner-button/index.ts → lib/directives/spinner-button/index.d.ts} +0 -0
- package/lib/directives/spinner-button/spinner-button.directive.d.ts +15 -0
- package/lib/models/auth.model.d.ts +16 -0
- package/lib/services/acl.service.d.ts +12 -0
- package/lib/services/auth.service.d.ts +55 -0
- package/package.json +37 -14
- package/{src/public-api.ts → public-api.d.ts} +0 -14
- package/.browserslistrc +0 -16
- package/karma.conf.js +0 -44
- package/ng-package.json +0 -7
- package/src/assets/.gitkeep +0 -0
- package/src/assets/images/Anna-Logo.png +0 -0
- package/src/lib/anna-cognito-lib.module.ts +0 -51
- package/src/lib/components/forgot-password/forgot-password.component.html +0 -44
- package/src/lib/components/forgot-password/forgot-password.component.scss +0 -22
- package/src/lib/components/forgot-password/forgot-password.component.spec.ts +0 -25
- package/src/lib/components/forgot-password/forgot-password.component.ts +0 -75
- package/src/lib/components/login/login.component.html +0 -45
- package/src/lib/components/login/login.component.scss +0 -10
- package/src/lib/components/login/login.component.spec.ts +0 -25
- package/src/lib/components/login/login.component.ts +0 -47
- package/src/lib/components/password-matching/password-matching.component.html +0 -84
- package/src/lib/components/password-matching/password-matching.component.scss +0 -83
- package/src/lib/components/password-matching/password-matching.component.spec.ts +0 -25
- package/src/lib/components/password-matching/password-matching.component.ts +0 -92
- package/src/lib/components/set-new-password/set-new-password.component.html +0 -31
- package/src/lib/components/set-new-password/set-new-password.component.scss +0 -1
- package/src/lib/components/set-new-password/set-new-password.component.spec.ts +0 -25
- package/src/lib/components/set-new-password/set-new-password.component.ts +0 -54
- package/src/lib/components/verify-and-set-new-password/verify-and-set-new-password.component.html +0 -54
- package/src/lib/components/verify-and-set-new-password/verify-and-set-new-password.component.scss +0 -40
- package/src/lib/components/verify-and-set-new-password/verify-and-set-new-password.component.spec.ts +0 -25
- package/src/lib/components/verify-and-set-new-password/verify-and-set-new-password.component.ts +0 -70
- package/src/lib/config/acl-service.token.ts +0 -22
- package/src/lib/config/auth-service.token.ts +0 -15
- package/src/lib/config/library.config.ts +0 -8
- package/src/lib/constants/loginConstant.ts +0 -50
- package/src/lib/directives/spinner-button/spinner-button.directive.spec.ts +0 -40
- package/src/lib/directives/spinner-button/spinner-button.directive.ts +0 -36
- package/src/lib/models/auth.model.ts +0 -24
- package/src/lib/scss/_colors.scss +0 -107
- package/src/lib/scss/_fonts.scss +0 -86
- package/src/lib/scss/_loginTemplate.scss +0 -164
- package/src/lib/services/acl.service.ts +0 -24
- package/src/lib/services/auth.service.ts +0 -243
- package/src/test.ts +0 -27
- package/tsconfig.lib.json +0 -18
- package/tsconfig.lib.prod.json +0 -10
- package/tsconfig.spec.json +0 -17
package/esm2020/lib/components/verify-and-set-new-password/verify-and-set-new-password.component.mjs
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
// Angular import statements
|
|
2
|
+
import { Component } from "@angular/core";
|
|
3
|
+
import { FormBuilder, Validators } from "@angular/forms";
|
|
4
|
+
import { Router } from "@angular/router";
|
|
5
|
+
// User defined import statements
|
|
6
|
+
import { LoginConstant } from "../../constants/loginConstant";
|
|
7
|
+
import { AnnaLibAuthService } from '../../services/auth.service';
|
|
8
|
+
import { LibraryConfig } from '../../config/library.config';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "../../services/auth.service";
|
|
11
|
+
import * as i2 from "@angular/forms";
|
|
12
|
+
import * as i3 from "@angular/router";
|
|
13
|
+
import * as i4 from "../../config/library.config";
|
|
14
|
+
import * as i5 from "../password-matching/password-matching.component";
|
|
15
|
+
import * as i6 from "@angular/common";
|
|
16
|
+
export class VerifyAndSetNewPasswordComponent {
|
|
17
|
+
constructor(authService, fb, router, libraryConfig) {
|
|
18
|
+
this.authService = authService;
|
|
19
|
+
this.fb = fb;
|
|
20
|
+
this.router = router;
|
|
21
|
+
this.libraryConfig = libraryConfig;
|
|
22
|
+
this.passwordNotMatching = false;
|
|
23
|
+
this.password = { value: null, status: null };
|
|
24
|
+
this.confirmPassword = { value: null, status: null };
|
|
25
|
+
}
|
|
26
|
+
ngOnInit() {
|
|
27
|
+
this.constants = LoginConstant;
|
|
28
|
+
this.authService.verifyAndSetNewPasswordButton = LoginConstant.setNewPasswordButton;
|
|
29
|
+
this.onIntialiseForm();
|
|
30
|
+
}
|
|
31
|
+
onIntialiseForm() {
|
|
32
|
+
this.verifyOtpForm = this.fb.group({
|
|
33
|
+
otp: [null, [Validators.required]],
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
isFormValid() {
|
|
37
|
+
if (this.password.status === "VALID" &&
|
|
38
|
+
this.confirmPassword.status === "VALID" &&
|
|
39
|
+
this.verifyOtpForm.controls['otp'].valid) {
|
|
40
|
+
return true;
|
|
41
|
+
}
|
|
42
|
+
return false;
|
|
43
|
+
}
|
|
44
|
+
onPasswordChange($event) {
|
|
45
|
+
this.password = $event;
|
|
46
|
+
}
|
|
47
|
+
onConfirmPasswordChange($event) {
|
|
48
|
+
this.confirmPassword = $event;
|
|
49
|
+
}
|
|
50
|
+
onVerifyOtpSettingNewPassword() {
|
|
51
|
+
if (this.password.value != this.confirmPassword.value) {
|
|
52
|
+
this.passwordNotMatching = true;
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
this.passwordNotMatching = false;
|
|
56
|
+
if (this.authService.verifyAndSetNewPasswordButton === LoginConstant.regenerateOtp) {
|
|
57
|
+
this.router.navigate([LoginConstant.forgortPasswordPageUrl]);
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
this.password.value && this.authService.verifyCode(this.verifyOtpForm.controls['otp'].value, this.password.value);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
VerifyAndSetNewPasswordComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: VerifyAndSetNewPasswordComponent, deps: [{ token: i1.AnnaLibAuthService }, { token: i2.FormBuilder }, { token: i3.Router }, { token: i4.LibraryConfig }], target: i0.ɵɵFactoryTarget.Component });
|
|
66
|
+
VerifyAndSetNewPasswordComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: VerifyAndSetNewPasswordComponent, selector: "anna-cognito-lib-verify-and-set-new-password", ngImport: i0, template: "<div class=\"main\" [ngClass]=\"{ 'main-height': authService.verifyAndSetNewPasswordErrorMessage }\">\r\n <section>\r\n <header>\r\n <img [src]=\"libraryConfig.loginPageLogoImgUrl\" alt=\"Anna Logo\" />\r\n </header>\r\n <article>\r\n <span class=\"back-btn\" [routerLink]=\"constants.forgortPasswordPageUrl\">\r\n <i class=\"mdi mdi-arrow-left\"></i>\r\n </span>\r\n\r\n <form [formGroup]=\"verifyOtpForm\">\r\n <div class=\"pull-left\" id=\"heading\">\r\n {{ constants.verifyAndSetNewPasswordheading }}\r\n </div>\r\n <p>{{ authService.verifyAndSetNewPasswordMessage }}</p>\r\n\r\n <div id=\"alert-div\" *ngIf=\"authService.verifyAndSetNewPasswordErrorMessage\">\r\n <div id=\"icon-div\">\r\n <span class=\"material-icons\">report</span>\r\n </div>\r\n <p id=\"display-block-msg\">{{ authService.verifyAndSetNewPasswordErrorMessage }}</p>\r\n </div>\r\n\r\n <input\r\n type=\"text\"\r\n tabindex=\"1\"\r\n formControlName=\"otp\"\r\n [placeholder]=\"constants.enterOtp\"\r\n autocomplete=\"new-field-name\"\r\n [ngClass]=\"{ 'input-invalid': authService.verifyAndSetNewPasswordErrorMessage }\"\r\n />\r\n\r\n <anna-cognito-lib-password-matching\r\n (passwordChange)=\"onPasswordChange($event)\"\r\n (confirmPasswordChange)=\"onConfirmPasswordChange($event)\"\r\n [passwordNotMatching]=\"passwordNotMatching\"\r\n >\r\n </anna-cognito-lib-password-matching>\r\n <button\r\n tabindex=\"4\"\r\n type=\"submit\"\r\n class=\"login-btn\"\r\n [disabled]=\"authService.sessionLocked || !isFormValid()\"\r\n (click)=\"onVerifyOtpSettingNewPassword()\"\r\n >\r\n {{ authService.verifyAndSetNewPasswordButton }}\r\n </button>\r\n </form>\r\n </article>\r\n <footer>\r\n Powered by <span> <strong>SureWaves</strong> </span>\r\n </footer>\r\n </section>\r\n</div>\r\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:100vh}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 #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}#alert-div{padding:.25rem 0 0;margin-bottom:.75rem;border-radius:.25rem;border:solid 1px #f9b3ae;background-color:#fde4e3}#alert-div .material-icons{color:#f44336;font-size:1rem;margin-left:.5rem}#alert-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:1rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal;justify-content:center}footer span{font-size:1.3125rem;font-weight:700;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;margin-top:.9375rem}.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}.main-height{height:105vh}section{top:52%}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:24px}input[type=text]:focus{box-shadow:none}.back-btn{width:27px;height:27px;top:-27px;left:-15px;cursor:pointer;position:relative;color:#268bff;float:left;border-radius:50%;border:1px solid #268bff;background-color:#f4f4f4}.back-btn i{position:absolute;top:.1875rem;left:.25rem}\n"], components: [{ type: i5.PasswordMatchingComponent, selector: "anna-cognito-lib-password-matching", inputs: ["passwordNotMatching"], outputs: ["passwordChange", "confirmPasswordChange"] }], directives: [{ type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.RouterLink, selector: ":not(a):not(area)[routerLink]", inputs: ["queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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]" }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
|
|
67
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: VerifyAndSetNewPasswordComponent, decorators: [{
|
|
68
|
+
type: Component,
|
|
69
|
+
args: [{ selector: 'anna-cognito-lib-verify-and-set-new-password', template: "<div class=\"main\" [ngClass]=\"{ 'main-height': authService.verifyAndSetNewPasswordErrorMessage }\">\r\n <section>\r\n <header>\r\n <img [src]=\"libraryConfig.loginPageLogoImgUrl\" alt=\"Anna Logo\" />\r\n </header>\r\n <article>\r\n <span class=\"back-btn\" [routerLink]=\"constants.forgortPasswordPageUrl\">\r\n <i class=\"mdi mdi-arrow-left\"></i>\r\n </span>\r\n\r\n <form [formGroup]=\"verifyOtpForm\">\r\n <div class=\"pull-left\" id=\"heading\">\r\n {{ constants.verifyAndSetNewPasswordheading }}\r\n </div>\r\n <p>{{ authService.verifyAndSetNewPasswordMessage }}</p>\r\n\r\n <div id=\"alert-div\" *ngIf=\"authService.verifyAndSetNewPasswordErrorMessage\">\r\n <div id=\"icon-div\">\r\n <span class=\"material-icons\">report</span>\r\n </div>\r\n <p id=\"display-block-msg\">{{ authService.verifyAndSetNewPasswordErrorMessage }}</p>\r\n </div>\r\n\r\n <input\r\n type=\"text\"\r\n tabindex=\"1\"\r\n formControlName=\"otp\"\r\n [placeholder]=\"constants.enterOtp\"\r\n autocomplete=\"new-field-name\"\r\n [ngClass]=\"{ 'input-invalid': authService.verifyAndSetNewPasswordErrorMessage }\"\r\n />\r\n\r\n <anna-cognito-lib-password-matching\r\n (passwordChange)=\"onPasswordChange($event)\"\r\n (confirmPasswordChange)=\"onConfirmPasswordChange($event)\"\r\n [passwordNotMatching]=\"passwordNotMatching\"\r\n >\r\n </anna-cognito-lib-password-matching>\r\n <button\r\n tabindex=\"4\"\r\n type=\"submit\"\r\n class=\"login-btn\"\r\n [disabled]=\"authService.sessionLocked || !isFormValid()\"\r\n (click)=\"onVerifyOtpSettingNewPassword()\"\r\n >\r\n {{ authService.verifyAndSetNewPasswordButton }}\r\n </button>\r\n </form>\r\n </article>\r\n <footer>\r\n Powered by <span> <strong>SureWaves</strong> </span>\r\n </footer>\r\n </section>\r\n</div>\r\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:100vh}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 #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}#alert-div{padding:.25rem 0 0;margin-bottom:.75rem;border-radius:.25rem;border:solid 1px #f9b3ae;background-color:#fde4e3}#alert-div .material-icons{color:#f44336;font-size:1rem;margin-left:.5rem}#alert-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:1rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal;justify-content:center}footer span{font-size:1.3125rem;font-weight:700;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;margin-top:.9375rem}.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}.main-height{height:105vh}section{top:52%}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:24px}input[type=text]:focus{box-shadow:none}.back-btn{width:27px;height:27px;top:-27px;left:-15px;cursor:pointer;position:relative;color:#268bff;float:left;border-radius:50%;border:1px solid #268bff;background-color:#f4f4f4}.back-btn i{position:absolute;top:.1875rem;left:.25rem}\n"] }]
|
|
70
|
+
}], ctorParameters: function () { return [{ type: i1.AnnaLibAuthService }, { type: i2.FormBuilder }, { type: i3.Router }, { type: i4.LibraryConfig }]; } });
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyaWZ5LWFuZC1zZXQtbmV3LXBhc3N3b3JkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FubmEtY29nbml0by1saWIvc3JjL2xpYi9jb21wb25lbnRzL3ZlcmlmeS1hbmQtc2V0LW5ldy1wYXNzd29yZC92ZXJpZnktYW5kLXNldC1uZXctcGFzc3dvcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5uYS1jb2duaXRvLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvdmVyaWZ5LWFuZC1zZXQtbmV3LXBhc3N3b3JkL3ZlcmlmeS1hbmQtc2V0LW5ldy1wYXNzd29yZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw0QkFBNEI7QUFDNUIsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsV0FBVyxFQUFhLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV6QyxpQ0FBaUM7QUFDakMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzlELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7Ozs7QUFRNUQsTUFBTSxPQUFPLGdDQUFnQztJQU8zQyxZQUNXLFdBQStCLEVBQzlCLEVBQWUsRUFDZixNQUFjLEVBQ2YsYUFBNEI7UUFINUIsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO1FBQzlCLE9BQUUsR0FBRixFQUFFLENBQWE7UUFDZixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2Ysa0JBQWEsR0FBYixhQUFhLENBQWU7UUFUdkMsd0JBQW1CLEdBQUcsS0FBSyxDQUFDO1FBRTVCLGFBQVEsR0FBaUIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUN2RCxvQkFBZSxHQUFpQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDO0lBTzNELENBQUM7SUFFSixRQUFRO1FBQ0osSUFBSSxDQUFDLFNBQVMsR0FBRyxhQUFhLENBQUM7UUFDL0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyw2QkFBNkIsR0FBRyxhQUFhLENBQUMsb0JBQW9CLENBQUM7UUFDcEYsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxlQUFlO1FBQ1gsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUMvQixHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDckMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUNJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxLQUFLLE9BQU87WUFDaEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEtBQUssT0FBTztZQUN2QyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQzFDO1lBQ0UsT0FBTyxJQUFJLENBQUM7U0FDZjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxNQUFvQjtRQUNqQyxJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQztJQUMzQixDQUFDO0lBRUQsdUJBQXVCLENBQUMsTUFBb0I7UUFDeEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxNQUFNLENBQUM7SUFDbEMsQ0FBQztJQUVELDZCQUE2QjtRQUN6QixJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFO1lBQ25ELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUM7U0FDbkM7YUFBTTtZQUNILElBQUksQ0FBQyxtQkFBbUIsR0FBRyxLQUFLLENBQUM7WUFDakMsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLDZCQUE2QixLQUFLLGFBQWEsQ0FBQyxhQUFhLEVBQUU7Z0JBQ2hGLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsYUFBYSxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQzthQUNoRTtpQkFBTTtnQkFDSCxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNySDtTQUNKO0lBQ0wsQ0FBQzs7NkhBeERVLGdDQUFnQztpSEFBaEMsZ0NBQWdDLG9GQ2hCN0MsazBFQXNEQTsyRkR0Q2EsZ0NBQWdDO2tCQUw1QyxTQUFTOytCQUNFLDhDQUE4QyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFuZ3VsYXIgaW1wb3J0IHN0YXRlbWVudHNcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuXHJcbi8vIFVzZXIgZGVmaW5lZCBpbXBvcnQgc3RhdGVtZW50c1xyXG5pbXBvcnQgeyBMb2dpbkNvbnN0YW50IH0gZnJvbSBcIi4uLy4uL2NvbnN0YW50cy9sb2dpbkNvbnN0YW50XCI7XHJcbmltcG9ydCB7IEFubmFMaWJBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2F1dGguc2VydmljZSc7XHJcbmltcG9ydCB7IExpYnJhcnlDb25maWcgfSBmcm9tICcuLi8uLi9jb25maWcvbGlicmFyeS5jb25maWcnO1xyXG50eXBlIHBhc3N3b3JkVHlwZSA9IHsgdmFsdWU6IHN0cmluZyB8IG51bGwsIHN0YXR1czogc3RyaW5nIHwgbnVsbCB9O1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhbm5hLWNvZ25pdG8tbGliLXZlcmlmeS1hbmQtc2V0LW5ldy1wYXNzd29yZCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3ZlcmlmeS1hbmQtc2V0LW5ldy1wYXNzd29yZC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdmVyaWZ5LWFuZC1zZXQtbmV3LXBhc3N3b3JkLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFZlcmlmeUFuZFNldE5ld1Bhc3N3b3JkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICB2ZXJpZnlPdHBGb3JtOiBGb3JtR3JvdXA7XHJcbiAgcGFzc3dvcmROb3RNYXRjaGluZyA9IGZhbHNlO1xyXG4gIGNvbnN0YW50czogdHlwZW9mIExvZ2luQ29uc3RhbnQ7XHJcbiAgcGFzc3dvcmQ6IHBhc3N3b3JkVHlwZSA9IHsgdmFsdWU6IG51bGwsIHN0YXR1czogbnVsbCB9O1xyXG4gIGNvbmZpcm1QYXNzd29yZDogcGFzc3dvcmRUeXBlID0geyB2YWx1ZTogbnVsbCwgc3RhdHVzOiBudWxsIH07XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgICBwdWJsaWMgYXV0aFNlcnZpY2U6IEFubmFMaWJBdXRoU2VydmljZSxcclxuICAgICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXHJcbiAgICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICAgIHB1YmxpYyBsaWJyYXJ5Q29uZmlnOiBMaWJyYXJ5Q29uZmlnXHJcbiAgKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgICAgdGhpcy5jb25zdGFudHMgPSBMb2dpbkNvbnN0YW50O1xyXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLnZlcmlmeUFuZFNldE5ld1Bhc3N3b3JkQnV0dG9uID0gTG9naW5Db25zdGFudC5zZXROZXdQYXNzd29yZEJ1dHRvbjtcclxuICAgICAgdGhpcy5vbkludGlhbGlzZUZvcm0oKTtcclxuICB9XHJcblxyXG4gIG9uSW50aWFsaXNlRm9ybSgpIHtcclxuICAgICAgdGhpcy52ZXJpZnlPdHBGb3JtID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgICAgICBvdHA6IFtudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGlzRm9ybVZhbGlkKCkge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgICB0aGlzLnBhc3N3b3JkLnN0YXR1cyA9PT0gXCJWQUxJRFwiICYmXHJcbiAgICAgICAgICB0aGlzLmNvbmZpcm1QYXNzd29yZC5zdGF0dXMgPT09IFwiVkFMSURcIiAmJlxyXG4gICAgICAgICAgdGhpcy52ZXJpZnlPdHBGb3JtLmNvbnRyb2xzWydvdHAnXS52YWxpZFxyXG4gICAgICApIHtcclxuICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIG9uUGFzc3dvcmRDaGFuZ2UoJGV2ZW50OiBwYXNzd29yZFR5cGUpIHtcclxuICAgICAgdGhpcy5wYXNzd29yZCA9ICRldmVudDtcclxuICB9XHJcblxyXG4gIG9uQ29uZmlybVBhc3N3b3JkQ2hhbmdlKCRldmVudDogcGFzc3dvcmRUeXBlKSB7XHJcbiAgICAgIHRoaXMuY29uZmlybVBhc3N3b3JkID0gJGV2ZW50O1xyXG4gIH1cclxuXHJcbiAgb25WZXJpZnlPdHBTZXR0aW5nTmV3UGFzc3dvcmQoKSB7XHJcbiAgICAgIGlmICh0aGlzLnBhc3N3b3JkLnZhbHVlICE9IHRoaXMuY29uZmlybVBhc3N3b3JkLnZhbHVlKSB7XHJcbiAgICAgICAgICB0aGlzLnBhc3N3b3JkTm90TWF0Y2hpbmcgPSB0cnVlO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5wYXNzd29yZE5vdE1hdGNoaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICBpZiAodGhpcy5hdXRoU2VydmljZS52ZXJpZnlBbmRTZXROZXdQYXNzd29yZEJ1dHRvbiA9PT0gTG9naW5Db25zdGFudC5yZWdlbmVyYXRlT3RwKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW0xvZ2luQ29uc3RhbnQuZm9yZ29ydFBhc3N3b3JkUGFnZVVybF0pO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLnBhc3N3b3JkLnZhbHVlICYmIHRoaXMuYXV0aFNlcnZpY2UudmVyaWZ5Q29kZSh0aGlzLnZlcmlmeU90cEZvcm0uY29udHJvbHNbJ290cCddLnZhbHVlLCB0aGlzLnBhc3N3b3JkLnZhbHVlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgfVxyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cIm1haW5cIiBbbmdDbGFzc109XCJ7ICdtYWluLWhlaWdodCc6IGF1dGhTZXJ2aWNlLnZlcmlmeUFuZFNldE5ld1Bhc3N3b3JkRXJyb3JNZXNzYWdlIH1cIj5cclxuICA8c2VjdGlvbj5cclxuICAgICAgPGhlYWRlcj5cclxuICAgICAgICAgIDxpbWcgW3NyY109XCJsaWJyYXJ5Q29uZmlnLmxvZ2luUGFnZUxvZ29JbWdVcmxcIiBhbHQ9XCJBbm5hIExvZ29cIiAvPlxyXG4gICAgICA8L2hlYWRlcj5cclxuICAgICAgPGFydGljbGU+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhY2stYnRuXCIgW3JvdXRlckxpbmtdPVwiY29uc3RhbnRzLmZvcmdvcnRQYXNzd29yZFBhZ2VVcmxcIj5cclxuICAgICAgICAgICAgICA8aSBjbGFzcz1cIm1kaSBtZGktYXJyb3ctbGVmdFwiPjwvaT5cclxuICAgICAgICAgIDwvc3Bhbj5cclxuXHJcbiAgICAgICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cInZlcmlmeU90cEZvcm1cIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHVsbC1sZWZ0XCIgaWQ9XCJoZWFkaW5nXCI+XHJcbiAgICAgICAgICAgICAgICAgIHt7IGNvbnN0YW50cy52ZXJpZnlBbmRTZXROZXdQYXNzd29yZGhlYWRpbmcgfX1cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8cD57eyBhdXRoU2VydmljZS52ZXJpZnlBbmRTZXROZXdQYXNzd29yZE1lc3NhZ2UgfX08L3A+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgaWQ9XCJhbGVydC1kaXZcIiAqbmdJZj1cImF1dGhTZXJ2aWNlLnZlcmlmeUFuZFNldE5ld1Bhc3N3b3JkRXJyb3JNZXNzYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJpY29uLWRpdlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1pY29uc1wiPnJlcG9ydDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxwIGlkPVwiZGlzcGxheS1ibG9jay1tc2dcIj57eyBhdXRoU2VydmljZS52ZXJpZnlBbmRTZXROZXdQYXNzd29yZEVycm9yTWVzc2FnZSB9fTwvcD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9XCIxXCJcclxuICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwib3RwXCJcclxuICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImNvbnN0YW50cy5lbnRlck90cFwiXHJcbiAgICAgICAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm5ldy1maWVsZC1uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaW5wdXQtaW52YWxpZCc6IGF1dGhTZXJ2aWNlLnZlcmlmeUFuZFNldE5ld1Bhc3N3b3JkRXJyb3JNZXNzYWdlIH1cIlxyXG4gICAgICAgICAgICAgIC8+XHJcblxyXG4gICAgICAgICAgICAgIDxhbm5hLWNvZ25pdG8tbGliLXBhc3N3b3JkLW1hdGNoaW5nXHJcbiAgICAgICAgICAgICAgICAgIChwYXNzd29yZENoYW5nZSk9XCJvblBhc3N3b3JkQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAoY29uZmlybVBhc3N3b3JkQ2hhbmdlKT1cIm9uQ29uZmlybVBhc3N3b3JkQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICBbcGFzc3dvcmROb3RNYXRjaGluZ109XCJwYXNzd29yZE5vdE1hdGNoaW5nXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPC9hbm5hLWNvZ25pdG8tbGliLXBhc3N3b3JkLW1hdGNoaW5nPlxyXG4gICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9XCI0XCJcclxuICAgICAgICAgICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwibG9naW4tYnRuXCJcclxuICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImF1dGhTZXJ2aWNlLnNlc3Npb25Mb2NrZWQgfHwgIWlzRm9ybVZhbGlkKClcIlxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25WZXJpZnlPdHBTZXR0aW5nTmV3UGFzc3dvcmQoKVwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICB7eyBhdXRoU2VydmljZS52ZXJpZnlBbmRTZXROZXdQYXNzd29yZEJ1dHRvbiB9fVxyXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPC9mb3JtPlxyXG4gICAgICA8L2FydGljbGU+XHJcbiAgICAgIDxmb290ZXI+XHJcbiAgICAgICAgICBQb3dlcmVkIGJ5IDxzcGFuPiA8c3Ryb25nPlN1cmVXYXZlczwvc3Ryb25nPiA8L3NwYW4+XHJcbiAgICAgIDwvZm9vdGVyPlxyXG4gIDwvc2VjdGlvbj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
|
+
/** Token to inject the acl service */
|
|
3
|
+
export const ACL_SERVICE_TOKEN = new InjectionToken('ACL service token');
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNsLXNlcnZpY2UudG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbm5hLWNvZ25pdG8tbGliL3NyYy9saWIvY29uZmlnL2FjbC1zZXJ2aWNlLnRva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0Msc0NBQXNDO0FBQ3RDLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUV0QixJQUFJLGNBQWMsQ0FBYyxtQkFBbUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbi8qKiBUb2tlbiB0byBpbmplY3QgdGhlIGFjbCBzZXJ2aWNlICovXHJcbmV4cG9ydCBjb25zdCBBQ0xfU0VSVklDRV9UT0tFTjpcclxuICAgIEluamVjdGlvblRva2VuPElBY2xTZXJ2aWNlPiA9XHJcbiAgICAgICAgbmV3IEluamVjdGlvblRva2VuPElBY2xTZXJ2aWNlPignQUNMIHNlcnZpY2UgdG9rZW4nKTtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUFjbFNlcnZpY2Uge1xyXG4gICB1cmxUb0NvZ25pdG9Qcml2aWxlZ2VNYXA6IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9O1xyXG4gICBEQUlMWV9SRVZJU0lPTl9SRVBPUlRfV1JJVEU6IHN0cmluZztcclxuICAgTFVSX1NFVFRJTkdTX1dSSVRFOiBzdHJpbmc7XHJcbiAgIE1BTkFHRV9CVVNJTkVTU19SVUxFU19XUklURTogc3RyaW5nO1xyXG4gICBNQU5BR0VfVVNFUlNfV1JJVEU6IHN0cmluZztcclxuICAgT1JERVJfQklaX1JVTEVTX1dSSVRFOiBzdHJpbmc7XHJcbiAgIE9SREVSX1JFVklTSU9OU19XUklURTogc3RyaW5nO1xyXG4gICBPUkRFUl9TUE9UU19SRVBPUlRfV1JJVEU6IHN0cmluZztcclxuICAgUkFURV9DQVJEX1dSSVRFOiBzdHJpbmc7XHJcbiAgIFNUQVRJT05fU1lTVEVNX1NFVFRJTkdTX1dSSVRFOiBzdHJpbmc7XHJcbiAgIFBPTElUSUNBTF9XSU5ET1dfV1JJVEU6IHN0cmluZztcclxuICAgXHJcbiAgIGlzVXNlckF1dGhvcmlzZVRvQWNlc3NNYW5hZ2VVc2VyKCk6IGJvb2xlYW47XHJcbn0iXX0=
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
|
+
/** Token to inject the auth service */
|
|
3
|
+
export const AUTH_SERVICE_TOKEN = new InjectionToken('Auth service token');
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1zZXJ2aWNlLnRva2VuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5uYS1jb2duaXRvLWxpYi9zcmMvbGliL2NvbmZpZy9hdXRoLXNlcnZpY2UudG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcvQyx1Q0FBdUM7QUFDdkMsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBRXZCLElBQUksY0FBYyxDQUFlLG9CQUFvQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcblxyXG4vKiogVG9rZW4gdG8gaW5qZWN0IHRoZSBhdXRoIHNlcnZpY2UgKi9cclxuZXhwb3J0IGNvbnN0IEFVVEhfU0VSVklDRV9UT0tFTjpcclxuICAgIEluamVjdGlvblRva2VuPElBdXRoU2VydmljZT4gPVxyXG4gICAgICAgIG5ldyBJbmplY3Rpb25Ub2tlbjxJQXV0aFNlcnZpY2U+KCdBdXRoIHNlcnZpY2UgdG9rZW4nKTtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUF1dGhTZXJ2aWNlIHtcclxuICAgaXNMb2dnaW5nSW46IGJvb2xlYW47IFxyXG4gICBvblN1Y2Nlc3NmdWxBdXRoZW50aWNhdGluZ1VzZXIocmVzdWx0OiBhbnkpOiB2b2lkO1xyXG4gICBpc1VzZXJuYW1lQXZhaWxhYmxlKHVzZXJuYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT47XHJcbiAgIG5hdmlnYXRlQmFzZWRPblVzZXJSb2xlKGxvZ2luVXNlckRhdGE6IGFueSk6IHZvaWQ7XHJcbiAgIGdldFB1YmxpY0lwKCk6IHN0cmluZztcclxuICAgc2VuZFJlZ2VuZXJhdGlvbkVtYWlsKHVzZXJDb2RlOnN0cmluZyk6dm9pZDtcclxufSJdfQ==
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export class LibraryConfig {
|
|
2
|
+
constructor() {
|
|
3
|
+
this.loginPageLogoImgUrl = '';
|
|
4
|
+
}
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlicmFyeS5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbm5hLWNvZ25pdG8tbGliL3NyYy9saWIvY29uZmlnL2xpYnJhcnkuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxhQUFhO0lBQTFCO1FBQ0Usd0JBQW1CLEdBQVcsRUFBRSxDQUFDO0lBTW5DLENBQUM7Q0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBMaWJyYXJ5Q29uZmlnIHsgXHJcbiAgbG9naW5QYWdlTG9nb0ltZ1VybDogc3RyaW5nID0gJyc7XHJcbiAgY29nbml0byA6IHtcclxuICAgIHVzZXJQb29sSWQ6IHN0cmluZztcclxuICAgIGNsaWVudElkOiBzdHJpbmc7IFxyXG4gIH1cclxuIFxyXG59Il19
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
export class LoginConstant {
|
|
2
|
+
}
|
|
3
|
+
// Login page
|
|
4
|
+
LoginConstant.enterEmail = "Enter your username";
|
|
5
|
+
LoginConstant.password = "Password";
|
|
6
|
+
LoginConstant.confirmPassword = "Confirm Password";
|
|
7
|
+
LoginConstant.login = "Login";
|
|
8
|
+
LoginConstant.otp = "OTP";
|
|
9
|
+
LoginConstant.forgotPassword = "Forgot " + LoginConstant.password.toLowerCase() + "?";
|
|
10
|
+
// set new password
|
|
11
|
+
LoginConstant.setNewPasswordHeading = "Set new " + LoginConstant.password.toLowerCase();
|
|
12
|
+
LoginConstant.setNewPasswordButton = "Set and " + LoginConstant.login.toLowerCase() + " again";
|
|
13
|
+
LoginConstant.passwordMustContain = "The password must contain:";
|
|
14
|
+
LoginConstant.minimumCharacter = "Minimum 8 characters";
|
|
15
|
+
LoginConstant.oneUppercase = "1 Uppercase";
|
|
16
|
+
LoginConstant.oneLowercase = "1 Lowercase";
|
|
17
|
+
LoginConstant.oneNumber = "1 Numerical";
|
|
18
|
+
LoginConstant.specialCharacter = "1 Special character";
|
|
19
|
+
LoginConstant.passwordNotMatching = "The passwords do not match. Please try again.";
|
|
20
|
+
LoginConstant.userNamePasswordIncorrect = "Incorrect username or password";
|
|
21
|
+
LoginConstant.userNotFound = "No registered user found";
|
|
22
|
+
LoginConstant.loginAgain = LoginConstant.login + " again";
|
|
23
|
+
// verify OTP & set new password
|
|
24
|
+
LoginConstant.verifyAndSetNewPasswordheading = "Enter " + LoginConstant.otp + " & set new password";
|
|
25
|
+
LoginConstant.verifyAndSetNewPasswordMessage = "An " + LoginConstant.otp + " has been succesfully emailed to ";
|
|
26
|
+
LoginConstant.pleaseEnterItBelow = ". Please enter it below.";
|
|
27
|
+
LoginConstant.regenerateOtp = "Regenerate " + LoginConstant.otp;
|
|
28
|
+
LoginConstant.enterOtp = "Enter " + LoginConstant.otp;
|
|
29
|
+
LoginConstant.submit = "Submit";
|
|
30
|
+
LoginConstant.attempt = "Attempt";
|
|
31
|
+
LoginConstant.attemptLimitExceeded = "You have exceeded the maximum number of allowed attempts. Please try again after 15 minutes.";
|
|
32
|
+
LoginConstant.attemptMessage = " of 5. The OTP entered is incorrect. Please try again with the right one.";
|
|
33
|
+
LoginConstant.sessionExpired = "The session has expired. Please try again.";
|
|
34
|
+
// forgot password
|
|
35
|
+
LoginConstant.forgotPasswordHeading = "Forgot your password?";
|
|
36
|
+
LoginConstant.forgotPasswordMessage = "Please enter your username.";
|
|
37
|
+
LoginConstant.forgotPasswordButton = "Get " + LoginConstant.otp;
|
|
38
|
+
LoginConstant.apiFailErrorMessage = "Unable to connect to server right now. Please try after some time.";
|
|
39
|
+
//url
|
|
40
|
+
LoginConstant.setNewPasswordUrl = "/set-new-password";
|
|
41
|
+
LoginConstant.forgortPasswordPageUrl = "/forgot-password";
|
|
42
|
+
LoginConstant.verifyAndSetNewPasswordUrl = "/verify-and-set-new-password";
|
|
43
|
+
LoginConstant.loginPageUrl = "/login";
|
|
44
|
+
LoginConstant.homePageUrl = "/home";
|
|
45
|
+
LoginConstant.stationSettingUrl = "/station-settings";
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW5Db25zdGFudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FubmEtY29nbml0by1saWIvc3JjL2xpYi9jb25zdGFudHMvbG9naW5Db25zdGFudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sYUFBYTs7QUFDeEIsYUFBYTtBQUNHLHdCQUFVLEdBQUcscUJBQXFCLENBQUM7QUFDbkMsc0JBQVEsR0FBRyxVQUFVLENBQUM7QUFDdEIsNkJBQWUsR0FBRyxrQkFBa0IsQ0FBQztBQUNyQyxtQkFBSyxHQUFHLE9BQU8sQ0FBQztBQUNoQixpQkFBRyxHQUFHLEtBQUssQ0FBQztBQUNaLDRCQUFjLEdBQUcsU0FBUyxHQUFHLGFBQWEsQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLEdBQUcsR0FBRyxDQUFDO0FBRXhGLG1CQUFtQjtBQUNILG1DQUFxQixHQUFHLFVBQVUsR0FBRyxhQUFhLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO0FBQzFFLGtDQUFvQixHQUFHLFVBQVUsR0FBRyxhQUFhLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxHQUFHLFFBQVEsQ0FBQztBQUNqRixpQ0FBbUIsR0FBRyw0QkFBNEIsQ0FBQztBQUNuRCw4QkFBZ0IsR0FBRyxzQkFBc0IsQ0FBQztBQUMxQywwQkFBWSxHQUFHLGFBQWEsQ0FBQztBQUM3QiwwQkFBWSxHQUFHLGFBQWEsQ0FBQztBQUM3Qix1QkFBUyxHQUFHLGFBQWEsQ0FBQztBQUMxQiw4QkFBZ0IsR0FBRyxxQkFBcUIsQ0FBQztBQUN6QyxpQ0FBbUIsR0FBRywrQ0FBK0MsQ0FBQztBQUN0RSx1Q0FBeUIsR0FBRyxnQ0FBZ0MsQ0FBQztBQUM3RCwwQkFBWSxHQUFHLDBCQUEwQixDQUFDO0FBQzFDLHdCQUFVLEdBQUcsYUFBYSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUM7QUFFNUQsZ0NBQWdDO0FBQ2hCLDRDQUE4QixHQUFHLFFBQVEsR0FBRyxhQUFhLENBQUMsR0FBRyxHQUFHLHFCQUFxQixDQUFDO0FBQ3RGLDRDQUE4QixHQUFHLEtBQUssR0FBRyxhQUFhLENBQUMsR0FBRyxHQUFHLG1DQUFtQyxDQUFDO0FBQ2pHLGdDQUFrQixHQUFHLDBCQUEwQixDQUFDO0FBQ2hELDJCQUFhLEdBQUcsYUFBYSxHQUFHLGFBQWEsQ0FBQyxHQUFHLENBQUM7QUFDbEQsc0JBQVEsR0FBRyxRQUFRLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQztBQUN4QyxvQkFBTSxHQUFHLFFBQVEsQ0FBQztBQUNsQixxQkFBTyxHQUFHLFNBQVMsQ0FBQztBQUNwQixrQ0FBb0IsR0FDaEMsOEZBQThGLENBQUM7QUFDbkYsNEJBQWMsR0FBRywyRUFBMkUsQ0FBQztBQUM3Riw0QkFBYyxHQUFHLDRDQUE0QyxDQUFDO0FBRTlFLGtCQUFrQjtBQUNGLG1DQUFxQixHQUFHLHVCQUF1QixDQUFDO0FBQ2hELG1DQUFxQixHQUFHLDZCQUE2QixDQUFDO0FBQ3RELGtDQUFvQixHQUFHLE1BQU0sR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDO0FBQ2xELGlDQUFtQixHQUFHLG9FQUFvRSxDQUFDO0FBRTNHLEtBQUs7QUFDVywrQkFBaUIsR0FBRyxtQkFBbUIsQ0FBQztBQUN4QyxvQ0FBc0IsR0FBRyxrQkFBa0IsQ0FBQztBQUM1Qyx3Q0FBMEIsR0FBRyw4QkFBOEIsQ0FBQztBQUM1RCwwQkFBWSxHQUFHLFFBQVEsQ0FBQztBQUN4Qix5QkFBVyxHQUFHLE9BQU8sQ0FBQztBQUN0QiwrQkFBaUIsR0FBRyxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBMb2dpbkNvbnN0YW50IHtcclxuICAvLyBMb2dpbiBwYWdlXHJcbiAgc3RhdGljIHJlYWRvbmx5IGVudGVyRW1haWwgPSBcIkVudGVyIHlvdXIgdXNlcm5hbWVcIjtcclxuICBzdGF0aWMgcmVhZG9ubHkgcGFzc3dvcmQgPSBcIlBhc3N3b3JkXCI7XHJcbiAgc3RhdGljIHJlYWRvbmx5IGNvbmZpcm1QYXNzd29yZCA9IFwiQ29uZmlybSBQYXNzd29yZFwiO1xyXG4gIHN0YXRpYyByZWFkb25seSBsb2dpbiA9IFwiTG9naW5cIjtcclxuICBzdGF0aWMgcmVhZG9ubHkgb3RwID0gXCJPVFBcIjtcclxuICBzdGF0aWMgcmVhZG9ubHkgZm9yZ290UGFzc3dvcmQgPSBcIkZvcmdvdCBcIiArIExvZ2luQ29uc3RhbnQucGFzc3dvcmQudG9Mb3dlckNhc2UoKSArIFwiP1wiO1xyXG5cclxuICAvLyBzZXQgbmV3IHBhc3N3b3JkXHJcbiAgc3RhdGljIHJlYWRvbmx5IHNldE5ld1Bhc3N3b3JkSGVhZGluZyA9IFwiU2V0IG5ldyBcIiArIExvZ2luQ29uc3RhbnQucGFzc3dvcmQudG9Mb3dlckNhc2UoKTtcclxuICBzdGF0aWMgcmVhZG9ubHkgc2V0TmV3UGFzc3dvcmRCdXR0b24gPSBcIlNldCBhbmQgXCIgKyBMb2dpbkNvbnN0YW50LmxvZ2luLnRvTG93ZXJDYXNlKCkgKyBcIiBhZ2FpblwiO1xyXG4gIHN0YXRpYyByZWFkb25seSBwYXNzd29yZE11c3RDb250YWluID0gXCJUaGUgcGFzc3dvcmQgbXVzdCBjb250YWluOlwiO1xyXG4gIHN0YXRpYyByZWFkb25seSBtaW5pbXVtQ2hhcmFjdGVyID0gXCJNaW5pbXVtIDggY2hhcmFjdGVyc1wiO1xyXG4gIHN0YXRpYyByZWFkb25seSBvbmVVcHBlcmNhc2UgPSBcIjEgVXBwZXJjYXNlXCI7XHJcbiAgc3RhdGljIHJlYWRvbmx5IG9uZUxvd2VyY2FzZSA9IFwiMSBMb3dlcmNhc2VcIjtcclxuICBzdGF0aWMgcmVhZG9ubHkgb25lTnVtYmVyID0gXCIxIE51bWVyaWNhbFwiO1xyXG4gIHN0YXRpYyByZWFkb25seSBzcGVjaWFsQ2hhcmFjdGVyID0gXCIxIFNwZWNpYWwgY2hhcmFjdGVyXCI7XHJcbiAgc3RhdGljIHJlYWRvbmx5IHBhc3N3b3JkTm90TWF0Y2hpbmcgPSBcIlRoZSBwYXNzd29yZHMgZG8gbm90IG1hdGNoLiBQbGVhc2UgdHJ5IGFnYWluLlwiO1xyXG4gIHN0YXRpYyByZWFkb25seSB1c2VyTmFtZVBhc3N3b3JkSW5jb3JyZWN0ID0gXCJJbmNvcnJlY3QgdXNlcm5hbWUgb3IgcGFzc3dvcmRcIjtcclxuICBzdGF0aWMgcmVhZG9ubHkgdXNlck5vdEZvdW5kID0gXCJObyByZWdpc3RlcmVkIHVzZXIgZm91bmRcIjtcclxuICBzdGF0aWMgcmVhZG9ubHkgbG9naW5BZ2FpbiA9IExvZ2luQ29uc3RhbnQubG9naW4gKyBcIiBhZ2FpblwiO1xyXG5cclxuICAvLyB2ZXJpZnkgT1RQICYgc2V0IG5ldyBwYXNzd29yZFxyXG4gIHN0YXRpYyByZWFkb25seSB2ZXJpZnlBbmRTZXROZXdQYXNzd29yZGhlYWRpbmcgPSBcIkVudGVyIFwiICsgTG9naW5Db25zdGFudC5vdHAgKyBcIiAmIHNldCBuZXcgcGFzc3dvcmRcIjtcclxuICBzdGF0aWMgcmVhZG9ubHkgdmVyaWZ5QW5kU2V0TmV3UGFzc3dvcmRNZXNzYWdlID0gXCJBbiBcIiArIExvZ2luQ29uc3RhbnQub3RwICsgXCIgaGFzIGJlZW4gc3VjY2VzZnVsbHkgZW1haWxlZCB0byBcIjtcclxuICBzdGF0aWMgcmVhZG9ubHkgcGxlYXNlRW50ZXJJdEJlbG93ID0gXCIuIFBsZWFzZSBlbnRlciBpdCBiZWxvdy5cIjtcclxuICBzdGF0aWMgcmVhZG9ubHkgcmVnZW5lcmF0ZU90cCA9IFwiUmVnZW5lcmF0ZSBcIiArIExvZ2luQ29uc3RhbnQub3RwO1xyXG4gIHN0YXRpYyByZWFkb25seSBlbnRlck90cCA9IFwiRW50ZXIgXCIgKyBMb2dpbkNvbnN0YW50Lm90cDtcclxuICBzdGF0aWMgcmVhZG9ubHkgc3VibWl0ID0gXCJTdWJtaXRcIjtcclxuICBzdGF0aWMgcmVhZG9ubHkgYXR0ZW1wdCA9IFwiQXR0ZW1wdFwiO1xyXG4gIHN0YXRpYyByZWFkb25seSBhdHRlbXB0TGltaXRFeGNlZWRlZCA9XHJcbiAgICAgIFwiWW91IGhhdmUgZXhjZWVkZWQgdGhlIG1heGltdW0gbnVtYmVyIG9mIGFsbG93ZWQgYXR0ZW1wdHMuIFBsZWFzZSB0cnkgYWdhaW4gYWZ0ZXIgMTUgbWludXRlcy5cIjtcclxuICBzdGF0aWMgcmVhZG9ubHkgYXR0ZW1wdE1lc3NhZ2UgPSBcIiBvZiA1LiBUaGUgT1RQIGVudGVyZWQgaXMgaW5jb3JyZWN0LiBQbGVhc2UgdHJ5IGFnYWluIHdpdGggdGhlIHJpZ2h0IG9uZS5cIjtcclxuICBzdGF0aWMgcmVhZG9ubHkgc2Vzc2lvbkV4cGlyZWQgPSBcIlRoZSBzZXNzaW9uIGhhcyBleHBpcmVkLiBQbGVhc2UgdHJ5IGFnYWluLlwiO1xyXG5cclxuICAvLyBmb3Jnb3QgcGFzc3dvcmRcclxuICBzdGF0aWMgcmVhZG9ubHkgZm9yZ290UGFzc3dvcmRIZWFkaW5nID0gXCJGb3Jnb3QgeW91ciBwYXNzd29yZD9cIjtcclxuICBzdGF0aWMgcmVhZG9ubHkgZm9yZ290UGFzc3dvcmRNZXNzYWdlID0gXCJQbGVhc2UgZW50ZXIgeW91ciB1c2VybmFtZS5cIjtcclxuICBzdGF0aWMgcmVhZG9ubHkgZm9yZ290UGFzc3dvcmRCdXR0b24gPSBcIkdldCBcIiArIExvZ2luQ29uc3RhbnQub3RwO1xyXG4gIHN0YXRpYyByZWFkb25seSBhcGlGYWlsRXJyb3JNZXNzYWdlID0gXCJVbmFibGUgdG8gY29ubmVjdCB0byBzZXJ2ZXIgcmlnaHQgbm93LiBQbGVhc2UgdHJ5IGFmdGVyIHNvbWUgdGltZS5cIjtcclxuXHJcbiAgLy91cmxcclxuICBzdGF0aWMgcmVhZG9ubHkgc2V0TmV3UGFzc3dvcmRVcmwgPSBcIi9zZXQtbmV3LXBhc3N3b3JkXCI7XHJcbiAgc3RhdGljIHJlYWRvbmx5IGZvcmdvcnRQYXNzd29yZFBhZ2VVcmwgPSBcIi9mb3Jnb3QtcGFzc3dvcmRcIjtcclxuICBzdGF0aWMgcmVhZG9ubHkgdmVyaWZ5QW5kU2V0TmV3UGFzc3dvcmRVcmwgPSBcIi92ZXJpZnktYW5kLXNldC1uZXctcGFzc3dvcmRcIjtcclxuICBzdGF0aWMgcmVhZG9ubHkgbG9naW5QYWdlVXJsID0gXCIvbG9naW5cIjtcclxuICBzdGF0aWMgcmVhZG9ubHkgaG9tZVBhZ2VVcmwgPSBcIi9ob21lXCI7XHJcbiAgc3RhdGljIHJlYWRvbmx5IHN0YXRpb25TZXR0aW5nVXJsID0gXCIvc3RhdGlvbi1zZXR0aW5nc1wiO1xyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from "./spinner-button.directive";
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbm5hLWNvZ25pdG8tbGliL3NyYy9saWIvZGlyZWN0aXZlcy9zcGlubmVyLWJ1dHRvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDRCQUE0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vc3Bpbm5lci1idXR0b24uZGlyZWN0aXZlXCI7XHJcbiJdfQ==
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { Directive, ElementRef, Input, Renderer2 } from "@angular/core";
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class SpinnerButtonDirective {
|
|
4
|
+
constructor(el, renderer) {
|
|
5
|
+
this.el = el;
|
|
6
|
+
this.renderer = renderer;
|
|
7
|
+
this.button = this.el.nativeElement;
|
|
8
|
+
this.child = document.createElement("div");
|
|
9
|
+
}
|
|
10
|
+
ngOnInit() { }
|
|
11
|
+
ngOnChanges(changes) {
|
|
12
|
+
if (changes['spinnerButtonText'] && changes['spinnerButtonText'].currentValue) {
|
|
13
|
+
this.button.innerHTML = this.spinnerButtonText;
|
|
14
|
+
}
|
|
15
|
+
if (changes['loading'] && changes['loading'].currentValue) {
|
|
16
|
+
this.button.innerHTML = "";
|
|
17
|
+
this.button.setAttribute("disabled", "true");
|
|
18
|
+
this.child.classList.add("spinner-for-button-directive");
|
|
19
|
+
this.renderer.appendChild(this.button, this.child);
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
this.child.classList.remove("spinner-for-button-directive");
|
|
23
|
+
this.button.removeAttribute("disabled");
|
|
24
|
+
this.button.innerHTML = this.spinnerButtonText;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
SpinnerButtonDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SpinnerButtonDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
|
|
29
|
+
SpinnerButtonDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.7", type: SpinnerButtonDirective, selector: "[anna-cognito-lib-SpinnerButton]", inputs: { loading: ["anna-cognito-lib-SpinnerButton", "loading"], spinnerButtonText: "spinnerButtonText" }, usesOnChanges: true, ngImport: i0 });
|
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SpinnerButtonDirective, decorators: [{
|
|
31
|
+
type: Directive,
|
|
32
|
+
args: [{
|
|
33
|
+
selector: "[anna-cognito-lib-SpinnerButton]",
|
|
34
|
+
}]
|
|
35
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { loading: [{
|
|
36
|
+
type: Input,
|
|
37
|
+
args: ["anna-cognito-lib-SpinnerButton"]
|
|
38
|
+
}], spinnerButtonText: [{
|
|
39
|
+
type: Input,
|
|
40
|
+
args: ["spinnerButtonText"]
|
|
41
|
+
}] } });
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Bpbm5lci1idXR0b24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5uYS1jb2duaXRvLWxpYi9zcmMvbGliL2RpcmVjdGl2ZXMvc3Bpbm5lci1idXR0b24vc3Bpbm5lci1idXR0b24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQW9DLE1BQU0sZUFBZSxDQUFDOztBQUsxRyxNQUFNLE9BQU8sc0JBQXNCO0lBTS9CLFlBQ1UsRUFBYyxFQUNkLFFBQW1CO1FBRG5CLE9BQUUsR0FBRixFQUFFLENBQVk7UUFDZCxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ3pCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUM7UUFDcEMsSUFBSSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxRQUFRLEtBQUksQ0FBQztJQUViLFdBQVcsQ0FBQyxPQUFzQjtRQUM5QixJQUFJLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLFlBQVksRUFBRTtZQUMzRSxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUM7U0FDbEQ7UUFDRCxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsWUFBWSxFQUFFO1lBQ3ZELElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDN0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLDhCQUE4QixDQUFDLENBQUM7WUFDekQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDdEQ7YUFBTTtZQUNILElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1lBQzVELElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3hDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztTQUNsRDtJQUNMLENBQUM7O21IQTdCUSxzQkFBc0I7dUdBQXRCLHNCQUFzQjsyRkFBdEIsc0JBQXNCO2tCQUhsQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxrQ0FBa0M7aUJBQy9DO3lIQUU0QyxPQUFPO3NCQUEvQyxLQUFLO3VCQUFDLGdDQUFnQztnQkFDWCxpQkFBaUI7c0JBQTVDLEtBQUs7dUJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dCwgUmVuZGVyZXIyLCBTaW1wbGVDaGFuZ2VzLCBPbkNoYW5nZXMsIE9uSW5pdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICAgIHNlbGVjdG9yOiBcIlthbm5hLWNvZ25pdG8tbGliLVNwaW5uZXJCdXR0b25dXCIsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTcGlubmVyQnV0dG9uRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xyXG4gICAgQElucHV0KFwiYW5uYS1jb2duaXRvLWxpYi1TcGlubmVyQnV0dG9uXCIpIGxvYWRpbmc6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoXCJzcGlubmVyQnV0dG9uVGV4dFwiKSBzcGlubmVyQnV0dG9uVGV4dDogc3RyaW5nO1xyXG4gICAgY2hpbGQ6IEhUTUxEaXZFbGVtZW50O1xyXG4gICAgYnV0dG9uOiBhbnk7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgIHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsIFxyXG4gICAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHtcclxuICAgICAgICB0aGlzLmJ1dHRvbiA9IHRoaXMuZWwubmF0aXZlRWxlbWVudDtcclxuICAgICAgICB0aGlzLmNoaWxkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHt9XHJcblxyXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgICAgIGlmIChjaGFuZ2VzWydzcGlubmVyQnV0dG9uVGV4dCddICYmIGNoYW5nZXNbJ3NwaW5uZXJCdXR0b25UZXh0J10uY3VycmVudFZhbHVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYnV0dG9uLmlubmVySFRNTCA9IHRoaXMuc3Bpbm5lckJ1dHRvblRleHQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChjaGFuZ2VzWydsb2FkaW5nJ10gJiYgY2hhbmdlc1snbG9hZGluZyddLmN1cnJlbnRWYWx1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLmJ1dHRvbi5pbm5lckhUTUwgPSBcIlwiO1xyXG4gICAgICAgICAgICB0aGlzLmJ1dHRvbi5zZXRBdHRyaWJ1dGUoXCJkaXNhYmxlZFwiLCBcInRydWVcIik7XHJcbiAgICAgICAgICAgIHRoaXMuY2hpbGQuY2xhc3NMaXN0LmFkZChcInNwaW5uZXItZm9yLWJ1dHRvbi1kaXJlY3RpdmVcIik7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5idXR0b24sIHRoaXMuY2hpbGQpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2hpbGQuY2xhc3NMaXN0LnJlbW92ZShcInNwaW5uZXItZm9yLWJ1dHRvbi1kaXJlY3RpdmVcIik7XHJcbiAgICAgICAgICAgIHRoaXMuYnV0dG9uLnJlbW92ZUF0dHJpYnV0ZShcImRpc2FibGVkXCIpO1xyXG4gICAgICAgICAgICB0aGlzLmJ1dHRvbi5pbm5lckhUTUwgPSB0aGlzLnNwaW5uZXJCdXR0b25UZXh0O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export class AuthenticationData {
|
|
2
|
+
constructor(Username, Password) {
|
|
3
|
+
this.Username = Username;
|
|
4
|
+
this.Password = Password;
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
export class UserPoolInformation {
|
|
8
|
+
constructor(UserPoolId, ClientId) {
|
|
9
|
+
this.UserPoolId = UserPoolId;
|
|
10
|
+
this.ClientId = ClientId;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
export class UsernameInfo {
|
|
14
|
+
constructor(object) {
|
|
15
|
+
this.isUsernameAvailable = object.isUsernameAvailable;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FubmEtY29nbml0by1saWIvc3JjL2xpYi9tb2RlbHMvYXV0aC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sa0JBQWtCO0lBRzdCLFlBQVksUUFBZ0IsRUFBRSxRQUFnQjtRQUMxQyxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUM3QixDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sbUJBQW1CO0lBRzlCLFlBQVksVUFBa0IsRUFBRSxRQUFnQjtRQUM1QyxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUM3QixDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sWUFBWTtJQUV2QixZQUFZLE1BQXdDO1FBQ2hELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUM7SUFDMUQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIEF1dGhlbnRpY2F0aW9uRGF0YSB7XHJcbiAgVXNlcm5hbWU6IHN0cmluZztcclxuICBQYXNzd29yZDogc3RyaW5nO1xyXG4gIGNvbnN0cnVjdG9yKFVzZXJuYW1lOiBzdHJpbmcsIFBhc3N3b3JkOiBzdHJpbmcpIHtcclxuICAgICAgdGhpcy5Vc2VybmFtZSA9IFVzZXJuYW1lO1xyXG4gICAgICB0aGlzLlBhc3N3b3JkID0gUGFzc3dvcmQ7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgVXNlclBvb2xJbmZvcm1hdGlvbiB7XHJcbiAgVXNlclBvb2xJZDogc3RyaW5nO1xyXG4gIENsaWVudElkOiBzdHJpbmc7XHJcbiAgY29uc3RydWN0b3IoVXNlclBvb2xJZDogc3RyaW5nLCBDbGllbnRJZDogc3RyaW5nKSB7XHJcbiAgICAgIHRoaXMuVXNlclBvb2xJZCA9IFVzZXJQb29sSWQ7XHJcbiAgICAgIHRoaXMuQ2xpZW50SWQgPSBDbGllbnRJZDtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBVc2VybmFtZUluZm8ge1xyXG4gIGlzVXNlcm5hbWVBdmFpbGFibGU6IGJvb2xlYW47XHJcbiAgY29uc3RydWN0b3Iob2JqZWN0OiB7IGlzVXNlcm5hbWVBdmFpbGFibGU6IGJvb2xlYW4gfSkge1xyXG4gICAgICB0aGlzLmlzVXNlcm5hbWVBdmFpbGFibGUgPSBvYmplY3QuaXNVc2VybmFtZUF2YWlsYWJsZTtcclxuICB9XHJcbn0iXX0=
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Inject, Injectable } from "@angular/core";
|
|
2
|
+
import { ACL_SERVICE_TOKEN } from '../config/acl-service.token';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class AnnaLibAclService {
|
|
5
|
+
constructor(consumingProjectAclService) {
|
|
6
|
+
this.consumingProjectAclService = consumingProjectAclService;
|
|
7
|
+
}
|
|
8
|
+
isUserAuthorisedToAccessPage(url) {
|
|
9
|
+
let privilegeName = this.consumingProjectAclService.urlToCognitoPrivilegeMap[url];
|
|
10
|
+
return this.userGroupsInCognitoJWT.includes(privilegeName);
|
|
11
|
+
}
|
|
12
|
+
isUserAuthorisedToAccessElement(privilege) {
|
|
13
|
+
return this.userGroupsInCognitoJWT.includes(privilege);
|
|
14
|
+
}
|
|
15
|
+
isUserAuthoriseToAcessManageUser() {
|
|
16
|
+
return this.consumingProjectAclService.isUserAuthoriseToAcessManageUser();
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
AnnaLibAclService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: AnnaLibAclService, deps: [{ token: ACL_SERVICE_TOKEN }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
20
|
+
AnnaLibAclService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: AnnaLibAclService, providedIn: "root" });
|
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: AnnaLibAclService, decorators: [{
|
|
22
|
+
type: Injectable,
|
|
23
|
+
args: [{
|
|
24
|
+
providedIn: "root",
|
|
25
|
+
}]
|
|
26
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
27
|
+
type: Inject,
|
|
28
|
+
args: [ACL_SERVICE_TOKEN]
|
|
29
|
+
}] }]; } });
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNsLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbm5hLWNvZ25pdG8tbGliL3NyYy9saWIvc2VydmljZXMvYWNsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFlLGlCQUFpQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7O0FBSzdFLE1BQU0sT0FBTyxpQkFBaUI7SUFDMUIsWUFBOEMsMEJBQXVDO1FBQXZDLCtCQUEwQixHQUExQiwwQkFBMEIsQ0FBYTtJQUFHLENBQUM7SUFHekYsNEJBQTRCLENBQUMsR0FBVztRQUNwQyxJQUFJLGFBQWEsR0FBRyxJQUFJLENBQUMsMEJBQTBCLENBQUMsd0JBQXdCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbEYsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCwrQkFBK0IsQ0FBQyxTQUFpQjtRQUM3QyxPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELGdDQUFnQztRQUM5QixPQUFPLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxnQ0FBZ0MsRUFBRSxDQUFDO0lBQzVFLENBQUM7OzhHQWZRLGlCQUFpQixrQkFDTixpQkFBaUI7a0hBRDVCLGlCQUFpQixjQUZkLE1BQU07MkZBRVQsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7MEJBRWdCLE1BQU07MkJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgSUFjbFNlcnZpY2UsIEFDTF9TRVJWSUNFX1RPS0VOIH0gZnJvbSAnLi4vY29uZmlnL2FjbC1zZXJ2aWNlLnRva2VuJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46IFwicm9vdFwiLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQW5uYUxpYkFjbFNlcnZpY2Uge1xyXG4gICAgY29uc3RydWN0b3IoQEluamVjdChBQ0xfU0VSVklDRV9UT0tFTikgcHVibGljIGNvbnN1bWluZ1Byb2plY3RBY2xTZXJ2aWNlOiBJQWNsU2VydmljZSkge31cclxuXHJcbiAgICB1c2VyR3JvdXBzSW5Db2duaXRvSldUOiBzdHJpbmdbXTtcclxuICAgIGlzVXNlckF1dGhvcmlzZWRUb0FjY2Vzc1BhZ2UodXJsOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICBsZXQgcHJpdmlsZWdlTmFtZSA9IHRoaXMuY29uc3VtaW5nUHJvamVjdEFjbFNlcnZpY2UudXJsVG9Db2duaXRvUHJpdmlsZWdlTWFwW3VybF07XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudXNlckdyb3Vwc0luQ29nbml0b0pXVC5pbmNsdWRlcyhwcml2aWxlZ2VOYW1lKTtcclxuICAgIH1cclxuXHJcbiAgICBpc1VzZXJBdXRob3Jpc2VkVG9BY2Nlc3NFbGVtZW50KHByaXZpbGVnZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudXNlckdyb3Vwc0luQ29nbml0b0pXVC5pbmNsdWRlcyhwcml2aWxlZ2UpO1xyXG4gICAgfVxyXG5cclxuICAgIGlzVXNlckF1dGhvcmlzZVRvQWNlc3NNYW5hZ2VVc2VyKCk6IGJvb2xlYW4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5jb25zdW1pbmdQcm9qZWN0QWNsU2VydmljZS5pc1VzZXJBdXRob3Jpc2VUb0FjZXNzTWFuYWdlVXNlcigpO1xyXG4gICAgfVxyXG5cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
// Angular import statements
|
|
2
|
+
import { Inject, Injectable } from "@angular/core";
|
|
3
|
+
import { Router } from "@angular/router";
|
|
4
|
+
import { HttpClient } from "@angular/common/http";
|
|
5
|
+
// Third party import statements
|
|
6
|
+
import { CognitoUserPool, CognitoUser, AuthenticationDetails } from "amazon-cognito-identity-js";
|
|
7
|
+
// User defined import statements
|
|
8
|
+
import { LoginConstant } from "../constants/loginConstant";
|
|
9
|
+
import { AuthenticationData, UserPoolInformation } from "../models/auth.model";
|
|
10
|
+
import { AnnaLibAclService } from './acl.service';
|
|
11
|
+
import { LibraryConfig } from '../config/library.config';
|
|
12
|
+
import { AUTH_SERVICE_TOKEN } from '../config/auth-service.token';
|
|
13
|
+
import * as i0 from "@angular/core";
|
|
14
|
+
import * as i1 from "@angular/router";
|
|
15
|
+
import * as i2 from "./acl.service";
|
|
16
|
+
import * as i3 from "../config/library.config";
|
|
17
|
+
import * as i4 from "@angular/common/http";
|
|
18
|
+
export class AnnaLibAuthService {
|
|
19
|
+
constructor(router, aclService, libraryConfig, httpClient, consumingProjectAuthService) {
|
|
20
|
+
this.router = router;
|
|
21
|
+
this.aclService = aclService;
|
|
22
|
+
this.libraryConfig = libraryConfig;
|
|
23
|
+
this.httpClient = httpClient;
|
|
24
|
+
this.consumingProjectAuthService = consumingProjectAuthService;
|
|
25
|
+
this.noOfAttempts = 0;
|
|
26
|
+
this.sessionLocked = false;
|
|
27
|
+
if (!consumingProjectAuthService) {
|
|
28
|
+
throw new Error('You must provide a authService');
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
ngOnInit() { }
|
|
32
|
+
/***
|
|
33
|
+
1. takes user pool data (userPool ID and client ID)
|
|
34
|
+
2. if current user is null then it means user already logged out then simply return Promise<false>
|
|
35
|
+
3. if current user present check if token is valid for it.
|
|
36
|
+
*/
|
|
37
|
+
isUserLoggedIn() {
|
|
38
|
+
let currentUser = this.getCurrentUserDetails();
|
|
39
|
+
if (currentUser) {
|
|
40
|
+
return new Promise((resolve, reject) => {
|
|
41
|
+
currentUser && currentUser.getSession((error, token) => {
|
|
42
|
+
if (token) {
|
|
43
|
+
this.getAllCognitoTokenAndGroups(token);
|
|
44
|
+
resolve(true);
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
this.sessionTimeout();
|
|
48
|
+
resolve(false);
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
return new Promise((resolve) => {
|
|
55
|
+
clearInterval(this.accessTokenTimerId);
|
|
56
|
+
resolve(false);
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
sessionTimeout() {
|
|
61
|
+
localStorage.clear();
|
|
62
|
+
clearInterval(this.accessTokenTimerId);
|
|
63
|
+
this.router.navigate([LoginConstant.loginPageUrl]);
|
|
64
|
+
}
|
|
65
|
+
refreshAccessToken() {
|
|
66
|
+
let currentUser = this.getCurrentUserDetails();
|
|
67
|
+
let accessTokenExpiration = localStorage.getItem("accessTokenExpiration");
|
|
68
|
+
let expTime = accessTokenExpiration ? parseInt(accessTokenExpiration) : 0;
|
|
69
|
+
this.accessTokenTimerId = setInterval(() => {
|
|
70
|
+
let counter = 1000;
|
|
71
|
+
let delayFunction = setTimeout(() => {
|
|
72
|
+
currentUser && currentUser.getSession((error, token) => {
|
|
73
|
+
if (token) {
|
|
74
|
+
this.getAllCognitoTokenAndGroups(token);
|
|
75
|
+
let newExpTime = this.computeTokenExpiration(this.IdToken);
|
|
76
|
+
if (newExpTime <= 0) {
|
|
77
|
+
newExpTime = 1000;
|
|
78
|
+
counter = 0;
|
|
79
|
+
if (delayFunction) {
|
|
80
|
+
clearInterval(delayFunction);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
expTime = newExpTime;
|
|
84
|
+
localStorage.setItem("accessTokenExpiration", newExpTime.toString());
|
|
85
|
+
clearInterval(this.accessTokenTimerId);
|
|
86
|
+
this.refreshAccessToken();
|
|
87
|
+
}
|
|
88
|
+
else if (error.code === "NotAuthorizedException") {
|
|
89
|
+
this.sessionTimeout();
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
}, counter);
|
|
93
|
+
}, expTime);
|
|
94
|
+
}
|
|
95
|
+
computeTokenExpiration(token) {
|
|
96
|
+
let currentTime = Math.floor(Date.now() / 1000);
|
|
97
|
+
let tokenTime = token.payload.exp;
|
|
98
|
+
let expTime = (tokenTime - currentTime) * 1000;
|
|
99
|
+
return expTime;
|
|
100
|
+
}
|
|
101
|
+
getCurrentUserDetails() {
|
|
102
|
+
let poolData = new UserPoolInformation(this.libraryConfig.cognito.userPoolId, this.libraryConfig.cognito.clientId);
|
|
103
|
+
let userPool = new CognitoUserPool(poolData);
|
|
104
|
+
return userPool.getCurrentUser();
|
|
105
|
+
}
|
|
106
|
+
getCognitoUserDetails(email) {
|
|
107
|
+
this.poolData = new UserPoolInformation(this.libraryConfig.cognito.userPoolId, this.libraryConfig.cognito.clientId);
|
|
108
|
+
this.userPool = new CognitoUserPool(this.poolData);
|
|
109
|
+
let userData = {
|
|
110
|
+
Username: email,
|
|
111
|
+
Pool: this.userPool,
|
|
112
|
+
};
|
|
113
|
+
let cognitoUser = new CognitoUser(userData);
|
|
114
|
+
return cognitoUser;
|
|
115
|
+
}
|
|
116
|
+
authenticate(email, password) {
|
|
117
|
+
this.loginErrorMessage = null;
|
|
118
|
+
let authData = new AuthenticationData(email, password);
|
|
119
|
+
this.authenticationDetails = new AuthenticationDetails(authData);
|
|
120
|
+
this.cognitoUser = this.getCognitoUserDetails(email);
|
|
121
|
+
this.CognitoAuthentication(this.authenticationDetails);
|
|
122
|
+
}
|
|
123
|
+
CognitoAuthentication(authenticationDetails) {
|
|
124
|
+
this.cognitoUser.authenticateUser(authenticationDetails, {
|
|
125
|
+
onSuccess: async (result) => {
|
|
126
|
+
this.getAllCognitoTokenAndGroups(result);
|
|
127
|
+
await this.consumingProjectAuthService.onSuccessfulAuthenticatingUser(result);
|
|
128
|
+
},
|
|
129
|
+
onFailure: (err) => {
|
|
130
|
+
this.consumingProjectAuthService.isLoggingIn = false;
|
|
131
|
+
if (err.message === "Temporary password has expired and must be reset by an administrator.") {
|
|
132
|
+
this.loginErrorMessage = "Password has expired. A new password has been sent to your registered email. Kindly login again with new link and credentials.";
|
|
133
|
+
this.consumingProjectAuthService.sendRegenerationEmail(this.authenticationDetails.getUsername());
|
|
134
|
+
}
|
|
135
|
+
else if (err.message === "Password attempts exceeded") {
|
|
136
|
+
this.loginErrorMessage = LoginConstant.attemptLimitExceeded;
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
this.loginErrorMessage = LoginConstant.userNamePasswordIncorrect;
|
|
140
|
+
}
|
|
141
|
+
},
|
|
142
|
+
newPasswordRequired: (data) => {
|
|
143
|
+
this.consumingProjectAuthService.isLoggingIn = false;
|
|
144
|
+
this.userAttribute = data;
|
|
145
|
+
this.router.navigate([LoginConstant.setNewPasswordUrl]);
|
|
146
|
+
},
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
setNewPassword(newPassword) {
|
|
150
|
+
delete this.userAttribute.email;
|
|
151
|
+
delete this.userAttribute.email_verified;
|
|
152
|
+
delete this.userAttribute.phone_number_verified;
|
|
153
|
+
this.cognitoUser.completeNewPasswordChallenge(newPassword, this.userAttribute, {
|
|
154
|
+
onSuccess: (result) => {
|
|
155
|
+
this.router.navigate([LoginConstant.loginPageUrl]);
|
|
156
|
+
},
|
|
157
|
+
onFailure: (error) => {
|
|
158
|
+
this.setNewPasswordErrorMessage = LoginConstant.sessionExpired;
|
|
159
|
+
this.setNewPasswordButtonMessage = LoginConstant.loginAgain;
|
|
160
|
+
},
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
onForgotPasswordGenerateOTP(email) {
|
|
164
|
+
this.userName = email;
|
|
165
|
+
this.cognitoUser = this.getCognitoUserDetails(email);
|
|
166
|
+
this.cognitoUser.forgotPassword({
|
|
167
|
+
onSuccess: (result) => {
|
|
168
|
+
this.verifyAndSetNewPasswordMessage =
|
|
169
|
+
LoginConstant.verifyAndSetNewPasswordMessage +
|
|
170
|
+
result.CodeDeliveryDetails.Destination +
|
|
171
|
+
LoginConstant.pleaseEnterItBelow;
|
|
172
|
+
this.router.navigate([LoginConstant.verifyAndSetNewPasswordUrl]);
|
|
173
|
+
},
|
|
174
|
+
onFailure: (err) => { },
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
verifyCode(verificationCode, newPassword) {
|
|
178
|
+
this.cognitoUser.confirmPassword(verificationCode, newPassword, {
|
|
179
|
+
onFailure: (error) => {
|
|
180
|
+
this.noOfAttempts = this.noOfAttempts + 1;
|
|
181
|
+
this.verifyAndSetNewPasswordErrorMessage = this.forgotPasswordError(error, this.noOfAttempts);
|
|
182
|
+
},
|
|
183
|
+
onSuccess: () => {
|
|
184
|
+
this.router.navigate([LoginConstant.loginPageUrl]);
|
|
185
|
+
},
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
forgotPasswordError(err, noOfAttempts) {
|
|
189
|
+
let errorMessage;
|
|
190
|
+
switch (err.code) {
|
|
191
|
+
case "LimitExceededException":
|
|
192
|
+
this.sessionLocked = true;
|
|
193
|
+
errorMessage = LoginConstant.attemptLimitExceeded;
|
|
194
|
+
break;
|
|
195
|
+
case "ExpiredCodeException":
|
|
196
|
+
errorMessage = LoginConstant.sessionExpired;
|
|
197
|
+
this.verifyAndSetNewPasswordButton = LoginConstant.regenerateOtp;
|
|
198
|
+
break;
|
|
199
|
+
default:
|
|
200
|
+
errorMessage = LoginConstant.attempt + " " + noOfAttempts + LoginConstant.attemptMessage;
|
|
201
|
+
}
|
|
202
|
+
return errorMessage;
|
|
203
|
+
}
|
|
204
|
+
getAllCognitoTokenAndGroups(token) {
|
|
205
|
+
this.accessToken = token.getAccessToken().getJwtToken();
|
|
206
|
+
this.IdToken = token.getIdToken();
|
|
207
|
+
if ("cognito:groups" in token.getAccessToken().payload) {
|
|
208
|
+
this.aclService.userGroupsInCognitoJWT = token.getAccessToken().payload["cognito:groups"];
|
|
209
|
+
}
|
|
210
|
+
else {
|
|
211
|
+
this.aclService.userGroupsInCognitoJWT = [];
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
AnnaLibAuthService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: AnnaLibAuthService, deps: [{ token: i1.Router }, { token: i2.AnnaLibAclService }, { token: i3.LibraryConfig }, { token: i4.HttpClient }, { token: AUTH_SERVICE_TOKEN }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
216
|
+
AnnaLibAuthService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: AnnaLibAuthService, providedIn: "root" });
|
|
217
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: AnnaLibAuthService, decorators: [{
|
|
218
|
+
type: Injectable,
|
|
219
|
+
args: [{
|
|
220
|
+
providedIn: "root",
|
|
221
|
+
}]
|
|
222
|
+
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.AnnaLibAclService }, { type: i3.LibraryConfig }, { type: i4.HttpClient }, { type: undefined, decorators: [{
|
|
223
|
+
type: Inject,
|
|
224
|
+
args: [AUTH_SERVICE_TOKEN]
|
|
225
|
+
}] }]; } });
|
|
226
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5uYS1jb2duaXRvLWxpYi9zcmMvbGliL3NlcnZpY2VzL2F1dGguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw0QkFBNEI7QUFDNUIsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxnQ0FBZ0M7QUFDaEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUscUJBQXFCLEVBQXNCLE1BQU0sNEJBQTRCLENBQUM7QUFFckgsaUNBQWlDO0FBQ2pDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBZ0Isa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7Ozs7O0FBS2hGLE1BQU0sT0FBTyxrQkFBa0I7SUFvQjNCLFlBQ1ksTUFBYyxFQUNmLFVBQTZCLEVBQzdCLGFBQTRCLEVBQzVCLFVBQXFCLEVBQ08sMkJBQXlDO1FBSnBFLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZixlQUFVLEdBQVYsVUFBVSxDQUFtQjtRQUM3QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixlQUFVLEdBQVYsVUFBVSxDQUFXO1FBQ08sZ0NBQTJCLEdBQTNCLDJCQUEyQixDQUFjO1FBWGhGLGlCQUFZLEdBQUcsQ0FBQyxDQUFDO1FBQ2pCLGtC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QkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyIGltcG9ydCBzdGF0ZW1lbnRzXHJcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG4vLyBUaGlyZCBwYXJ0eSBpbXBvcnQgc3RhdGVtZW50c1xyXG5pbXBvcnQgeyBDb2duaXRvVXNlclBvb2wsIENvZ25pdG9Vc2VyLCBBdXRoZW50aWNhdGlvbkRldGFpbHMsIENvZ25pdG9Vc2VyU2Vzc2lvbiB9IGZyb20gXCJhbWF6b24tY29nbml0by1pZGVudGl0eS1qc1wiO1xyXG5cclxuLy8gVXNlciBkZWZpbmVkIGltcG9ydCBzdGF0ZW1lbnRzXHJcbmltcG9ydCB7IExvZ2luQ29uc3RhbnQgfSBmcm9tIFwiLi4vY29uc3RhbnRzL2xvZ2luQ29uc3RhbnRcIjtcclxuaW1wb3J0IHsgQXV0aGVudGljYXRpb25EYXRhLCBVc2VyUG9vbEluZm9ybWF0aW9uIH0gZnJvbSBcIi4uL21vZGVscy9hdXRoLm1vZGVsXCI7XHJcbmltcG9ydCB7IEFubmFMaWJBY2xTZXJ2aWNlIH0gZnJvbSAnLi9hY2wuc2VydmljZSc7XHJcbmltcG9ydCB7IExpYnJhcnlDb25maWcgfSBmcm9tICcuLi9jb25maWcvbGlicmFyeS5jb25maWcnO1xyXG5pbXBvcnQgeyBJQXV0aFNlcnZpY2UsIEFVVEhfU0VSVklDRV9UT0tFTiB9IGZyb20gJy4uL2NvbmZpZy9hdXRoLXNlcnZpY2UudG9rZW4nO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogXCJyb290XCIsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBbm5hTGliQXV0aFNlcnZpY2UgIHtcclxuICAgIHBvb2xEYXRhOiBVc2VyUG9vbEluZm9ybWF0aW9uO1xyXG4gICAgdXNlclBvb2w6IENvZ25pdG9Vc2VyUG9vbDtcclxuICAgIGNvZ25pdG9Vc2VyOiBDb2duaXRvVXNlcjtcclxuICAgIGF1dGhlbnRpY2F0aW9uRGV0YWlsczogQXV0aGVudGljYXRpb25EZXRhaWxzO1xyXG4gICAgdG9rZW5WYWxpZDogYm9vbGVhbjtcclxuICAgIGFjY2Vzc1Rva2VuOiBzdHJpbmc7XHJcbiAgICB1c2VyQXR0cmlidXRlOiBhbnk7XHJcbiAgICBsb2dpbkVycm9yTWVzc2FnZTogc3RyaW5nIHwgbnVsbDtcclxuICAgIHNldE5ld1Bhc3N3b3JkRXJyb3JNZXNzYWdlOiBzdHJpbmc7XHJcbiAgICBzZXROZXdQYXNzd29yZEJ1dHRvbk1lc3NhZ2U6IHN0cmluZztcclxuICAgIHZlcmlmeUFuZFNldE5ld1Bhc3N3b3JkRXJyb3JNZXNzYWdlOiBzdHJpbmc7XHJcbiAgICB2ZXJpZnlBbmRTZXROZXdQYXNzd29yZE1lc3NhZ2U6IHN0cmluZztcclxuICAgIHZlcmlmeUFuZFNldE5ld1Bhc3N3b3JkQnV0dG9uOiBzdHJpbmc7XHJcbiAgICBub09mQXR0ZW1wdHMgPSAwO1xyXG4gICAgc2Vzc2lvbkxvY2tlZCA9IGZhbHNlO1xyXG4gICAgdXNlck5hbWU6IGFueTtcclxuICAgIGFjY2Vzc1Rva2VuVGltZXJJZDogYW55O1xyXG4gICAgSWRUb2tlbjogYW55O1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICAgICAgcHVibGljIGFjbFNlcnZpY2U6IEFubmFMaWJBY2xTZXJ2aWNlLFxyXG4gICAgICAgIHB1YmxpYyBsaWJyYXJ5Q29uZmlnOiBMaWJyYXJ5Q29uZmlnLFxyXG4gICAgICAgIHB1YmxpYyBodHRwQ2xpZW50Okh0dHBDbGllbnQsXHJcbiAgICAgICAgQEluamVjdChBVVRIX1NFUlZJQ0VfVE9LRU4pIHB1YmxpYyBjb25zdW1pbmdQcm9qZWN0QXV0aFNlcnZpY2U6IElBdXRoU2VydmljZSkge1xyXG4gICAgICAgICAgaWYoIWNvbnN1bWluZ1Byb2plY3RBdXRoU2VydmljZSkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1lvdSBtdXN0IHByb3ZpZGUgYSBhdXRoU2VydmljZScpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHt9XHJcblxyXG4gICAgLyoqKlxyXG4gICAxLiB0YWtlcyB1c2VyIHBvb2wgZGF0YSAodXNlclBvb2wgSUQgYW5kIGNsaWVudCBJRClcclxuICAgMi4gaWYgY3VycmVudCB1c2VyIGlzIG51bGwgdGhlbiBpdCBtZWFucyB1c2VyIGFscmVhZHkgbG9nZ2VkIG91dCB0aGVuIHNpbXBseSByZXR1cm4gUHJvbWlzZTxmYWxzZT5cclxuICAgMy4gaWYgY3VycmVudCB1c2VyIHByZXNlbnQgY2hlY2sgaWYgdG9rZW4gaXMgdmFsaWQgZm9yIGl0LlxyXG4gKi9cclxuICAgIGlzVXNlckxvZ2dlZEluKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG4gICAgICAgIGxldCBjdXJyZW50VXNlciA9IHRoaXMuZ2V0Q3VycmVudFVzZXJEZXRhaWxzKCk7XHJcbiAgICAgICAgaWYgKGN1cnJlbnRVc2VyKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgY3VycmVudFVzZXIgJiYgY3VycmVudFVzZXIuZ2V0U2Vzc2lvbigoZXJyb3I6IEVycm9yLCB0b2tlbjogQ29nbml0b1VzZXJTZXNzaW9uIHwgbnVsbCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0b2tlbikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmdldEFsbENvZ25pdG9Ub2tlbkFuZEdyb3Vwcyh0b2tlbik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUodHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXNzaW9uVGltZW91dCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKGZhbHNlKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjbGVhckludGVydmFsKHRoaXMuYWNjZXNzVG9rZW5UaW1lcklkKTtcclxuICAgICAgICAgICAgICAgIHJlc29sdmUoZmFsc2UpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc2Vzc2lvblRpbWVvdXQoKSB7XHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLmNsZWFyKCk7XHJcbiAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLmFjY2Vzc1Rva2VuVGltZXJJZCk7XHJcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW0xvZ2luQ29uc3RhbnQubG9naW5QYWdlVXJsXSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVmcmVzaEFjY2Vzc1Rva2VuKCkge1xyXG4gICAgICAgIGxldCBjdXJyZW50VXNlciA9IHRoaXMuZ2V0Q3VycmVudFVzZXJEZXRhaWxzKCk7XHJcbiAgICAgICAgbGV0IGFjY2Vzc1Rva2VuRXhwaXJhdGlvbiA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiYWNjZXNzVG9rZW5FeHBpcmF0aW9uXCIpO1xyXG4gICAgICAgIGxldCBleHBUaW1lID0gYWNjZXNzVG9rZW5FeHBpcmF0aW9uID8gcGFyc2VJbnQoYWNjZXNzVG9rZW5FeHBpcmF0aW9uKSA6IDA7XHJcbiAgICAgICAgdGhpcy5hY2Nlc3NUb2tlblRpbWVySWQgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGxldCBjb3VudGVyID0gMTAwMDtcclxuICAgICAgICAgICAgbGV0IGRlbGF5RnVuY3Rpb24gPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICBjdXJyZW50VXNlciAmJiBjdXJyZW50VXNlci5nZXRTZXNzaW9uKChlcnJvcjogYW55LCB0b2tlbjogQ29nbml0b1VzZXJTZXNzaW9uIHwgbnVsbCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0b2tlbikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmdldEFsbENvZ25pdG9Ub2tlbkFuZEdyb3Vwcyh0b2tlbik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdFeHBUaW1lID0gdGhpcy5jb21wdXRlVG9rZW5FeHBpcmF0aW9uKHRoaXMuSWRUb2tlbik7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobmV3RXhwVGltZSA8PSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdFeHBUaW1lID0gMTAwMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50ZXIgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRlbGF5RnVuY3Rpb24pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGVhckludGVydmFsKGRlbGF5RnVuY3Rpb24pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4cFRpbWUgPSBuZXdFeHBUaW1lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShcImFjY2Vzc1Rva2VuRXhwaXJhdGlvblwiLCBuZXdFeHBUaW1lLnRvU3RyaW5nKCkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGVhckludGVydmFsKHRoaXMuYWNjZXNzVG9rZW5UaW1lcklkKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWZyZXNoQWNjZXNzVG9rZW4oKTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGVycm9yLmNvZGUgPT09IFwiTm90QXV0aG9yaXplZEV4Y2VwdGlvblwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2Vzc2lvblRpbWVvdXQoKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSwgY291bnRlcik7XHJcbiAgICAgICAgfSwgZXhwVGltZSk7XHJcbiAgICB9XHJcblxyXG4gICAgY29tcHV0ZVRva2VuRXhwaXJhdGlvbih0b2tlbjogYW55KSB7XHJcbiAgICAgICAgbGV0IGN1cnJlbnRUaW1lID0gTWF0aC5mbG9vcihEYXRlLm5vdygpIC8gMTAwMCk7XHJcbiAgICAgICAgbGV0IHRva2VuVGltZSA9IHRva2VuLnBheWxvYWQuZXhwO1xyXG4gICAgICAgIGxldCBleHBUaW1lID0gKHRva2VuVGltZSAtIGN1cnJlbnRUaW1lKSAqIDEwMDA7XHJcbiAgICAgICAgcmV0dXJuIGV4cFRpbWU7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGdldEN1cnJlbnRVc2VyRGV0YWlscygpIHtcclxuICAgICAgICBsZXQgcG9vbERhdGEgPSBuZXcgVXNlclBvb2xJbmZvcm1hdGlvbih0aGlzLmxpYnJhcnlDb25maWcuY29nbml0by51c2VyUG9vbElkLCB0aGlzLmxpYnJhcnlDb25maWcuY29nbml0by5jbGllbnRJZCk7XHJcbiAgICAgICAgbGV0IHVzZXJQb29sID0gbmV3IENvZ25pdG9Vc2VyUG9vbChwb29sRGF0YSk7XHJcbiAgICAgICAgcmV0dXJuIHVzZXJQb29sLmdldEN1cnJlbnRVc2VyKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0Q29nbml0b1VzZXJEZXRhaWxzKGVtYWlsOiBzdHJpbmcpOiBDb2duaXRvVXNlciB7XHJcbiAgICAgICAgdGhpcy5wb29sRGF0YSA9IG5ldyBVc2VyUG9vbEluZm9ybWF0aW9uKHRoaXMubGlicmFyeUNvbmZpZy5jb2duaXRvLnVzZXJQb29sSWQsIHRoaXMubGlicmFyeUNvbmZpZy5jb2duaXRvLmNsaWVudElkKTtcclxuICAgICAgICB0aGlzLnVzZXJQb29sID0gbmV3IENvZ25pdG9Vc2VyUG9vbCh0aGlzLnBvb2xEYXRhKTtcclxuXHJcbiAgICAgICAgbGV0IHVzZXJEYXRhID0ge1xyXG4gICAgICAgICAgICBVc2VybmFtZTogZW1haWwsXHJcbiAgICAgICAgICAgIFBvb2w6IHRoaXMudXNlclBvb2wsXHJcbiAgICAgICAgfTtcclxuICAgICAgICBsZXQgY29nbml0b1VzZXIgPSBuZXcgQ29nbml0b1VzZXIodXNlckRhdGEpO1xyXG4gICAgICAgIHJldHVybiBjb2duaXRvVXNlcjtcclxuICAgIH1cclxuXHJcbiAgICBhdXRoZW50aWNhdGUoZW1haWw6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMubG9naW5FcnJvck1lc3NhZ2UgPSBudWxsO1xyXG4gICAgICAgIGxldCBhdXRoRGF0YSA9IG5ldyBBdXRoZW50aWNhdGlvbkRhdGEoZW1haWwsIHBhc3N3b3JkKTtcclxuICAgICAgICB0aGlzLmF1dGhlbnRpY2F0aW9uRGV0YWlscyA9IG5ldyBBdXRoZW50aWNhdGlvbkRldGFpbHMoYXV0aERhdGEpO1xyXG5cclxuICAgICAgICB0aGlzLmNvZ25pdG9Vc2VyID0gdGhpcy5nZXRDb2duaXRvVXNlckRldGFpbHMoZW1haWwpO1xyXG4gICAgICAgIHRoaXMuQ29nbml0b0F1dGhlbnRpY2F0aW9uKHRoaXMuYXV0aGVudGljYXRpb25EZXRhaWxzKTtcclxuICAgIH1cclxuXHJcbiAgICBDb2duaXRvQXV0aGVudGljYXRpb24oYXV0aGVudGljYXRpb25EZXRhaWxzOiBBdXRoZW50aWNhdGlvbkRldGFpbHMpIHtcclxuICAgICAgICB0aGlzLmNvZ25pdG9Vc2VyLmF1dGhlbnRpY2F0ZVVzZXIoYXV0aGVudGljYXRpb25EZXRhaWxzLCB7XHJcbiAgICAgICAgICAgIG9uU3VjY2VzczogYXN5bmMgKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5nZXRBbGxDb2duaXRvVG9rZW5BbmRHcm91cHMocmVzdWx0KTtcclxuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuY29uc3VtaW5nUHJvamVjdEF1dGhTZXJ2aWNlLm9uU3VjY2Vzc2Z1bEF1dGhlbnRpY2F0aW5nVXNlcihyZXN1bHQpO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBvbkZhaWx1cmU6IChlcnIpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY29uc3VtaW5nUHJvamVjdEF1dGhTZXJ2aWNlLmlzTG9nZ2luZ0luID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyLm1lc3NhZ2UgPT09IFwiVGVtcG9yYXJ5IHBhc3N3b3JkIGhhcyBleHBpcmVkIGFuZCBtdXN0IGJlIHJlc2V0IGJ5IGFuIGFkbWluaXN0cmF0b3IuXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmxvZ2luRXJyb3JNZXNzYWdlID0gXCJQYXNzd29yZCBoYXMgZXhwaXJlZC4gQSBuZXcgcGFzc3dvcmQgaGFzIGJlZW4gc2VudCB0byB5b3VyIHJlZ2lzdGVyZWQgZW1haWwuIEtpbmRseSBsb2dpbiBhZ2FpbiB3aXRoIG5ldyBsaW5rIGFuZCBjcmVkZW50aWFscy5cIjtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnN1bWluZ1Byb2plY3RBdXRoU2VydmljZS5zZW5kUmVnZW5lcmF0aW9uRW1haWwodGhpcy5hdXRoZW50aWNhdGlvbkRldGFpbHMuZ2V0VXNlcm5hbWUoKSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChlcnIubWVzc2FnZSA9PT0gXCJQYXNzd29yZCBhdHRlbXB0cyBleGNlZWRlZFwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2dpbkVycm9yTWVzc2FnZSA9IExvZ2luQ29uc3RhbnQuYXR0ZW1wdExpbWl0RXhjZWVkZWQ7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9naW5FcnJvck1lc3NhZ2UgPSBMb2dpbkNvbnN0YW50LnVzZXJOYW1lUGFzc3dvcmRJbmNvcnJlY3Q7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIG5ld1Bhc3N3b3JkUmVxdWlyZWQ6IChkYXRhOmFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb25zdW1pbmdQcm9qZWN0QXV0aFNlcnZpY2UuaXNMb2dnaW5nSW4gPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHRoaXMudXNlckF0dHJpYnV0ZSA9IGRhdGE7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbTG9naW5Db25zdGFudC5zZXROZXdQYXNzd29yZFVybF0pO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIFxyXG4gICAgc2V0TmV3UGFzc3dvcmQobmV3UGFzc3dvcmQ6IGFueSkge1xyXG4gICAgICAgIGRlbGV0ZSB0aGlzLnVzZXJBdHRyaWJ1dGUuZW1haWw7XHJcbiAgICAgICAgZGVsZXRlIHRoaXMudXNlckF0dHJpYnV0ZS5lbWFpbF92ZXJpZmllZDtcclxuICAgICAgICBkZWxldGUgdGhpcy51c2VyQXR0cmlidXRlLnBob25lX251bWJlcl92ZXJpZmllZDtcclxuICAgICAgICB0aGlzLmNvZ25pdG9Vc2VyLmNvbXBsZXRlTmV3UGFzc3dvcmRDaGFsbGVuZ2UobmV3UGFzc3dvcmQsIHRoaXMudXNlckF0dHJpYnV0ZSwge1xyXG4gICAgICAgICAgICBvblN1Y2Nlc3M6IChyZXN1bHQpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtMb2dpbkNvbnN0YW50LmxvZ2luUGFnZVVybF0pO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBvbkZhaWx1cmU6IChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXROZXdQYXNzd29yZEVycm9yTWVzc2FnZSA9IExvZ2luQ29uc3RhbnQuc2Vzc2lvbkV4cGlyZWQ7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldE5ld1Bhc3N3b3JkQnV0dG9uTWVzc2FnZSA9IExvZ2luQ29uc3RhbnQubG9naW5BZ2FpbjtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBvbkZvcmdvdFBhc3N3b3JkR2VuZXJhdGVPVFAoZW1haWw6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMudXNlck5hbWUgPSBlbWFpbDtcclxuICAgICAgICB0aGlzLmNvZ25pdG9Vc2VyID0gdGhpcy5nZXRDb2duaXRvVXNlckRldGFpbHMoZW1haWwpO1xyXG4gICAgICAgIHRoaXMuY29nbml0b1VzZXIuZm9yZ290UGFzc3dvcmQoe1xyXG4gICAgICAgICAgICBvblN1Y2Nlc3M6IChyZXN1bHQpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMudmVyaWZ5QW5kU2V0TmV3UGFzc3dvcmRNZXNzYWdlID1cclxuICAgICAgICAgICAgICAgICAgICBMb2dpbkNvbnN0YW50LnZlcmlmeUFuZFNldE5ld1Bhc3N3b3JkTWVzc2FnZSArXHJcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0LkNvZGVEZWxpdmVyeURldGFpbHMuRGVzdGluYXRpb24gK1xyXG4gICAgICAgICAgICAgICAgICAgIExvZ2luQ29uc3RhbnQucGxlYXNlRW50ZXJJdEJlbG93O1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW0xvZ2luQ29uc3RhbnQudmVyaWZ5QW5kU2V0TmV3UGFzc3dvcmRVcmxdKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgb25GYWlsdXJlOiAoZXJyKSA9PiB7fSxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB2ZXJpZnlDb2RlKHZlcmlmaWNhdGlvbkNvZGU6IHN0cmluZywgbmV3UGFzc3dvcmQ6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuY29nbml0b1VzZXIuY29uZmlybVBhc3N3b3JkKHZlcmlmaWNhdGlvbkNvZGUsIG5ld1Bhc3N3b3JkLCB7XHJcbiAgICAgICAgICAgIG9uRmFpbHVyZTogKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vT2ZBdHRlbXB0cyA9IHRoaXMubm9PZkF0dGVtcHRzICsgMTtcclxuICAgICAgICAgICAgICAgIHRoaXMudmVyaWZ5QW5kU2V0TmV3UGFzc3dvcmRFcnJvck1lc3NhZ2UgPSB0aGlzLmZvcmdvdFBhc3N3b3JkRXJyb3IoZXJyb3IsIHRoaXMubm9PZkF0dGVtcHRzKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgb25TdWNjZXNzOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbTG9naW5Db25zdGFudC5sb2dpblBhZ2VVcmxdKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBmb3Jnb3RQYXNzd29yZEVycm9yKGVycjogYW55LCBub09mQXR0ZW1wdHM6IG51bWJlcikge1xyXG4gICAgICAgIGxldCBlcnJvck1lc3NhZ2U7XHJcbiAgICAgICAgc3dpdGNoIChlcnIuY29kZSkge1xyXG4gICAgICAgICAgICBjYXNlIFwiTGltaXRFeGNlZWRlZEV4Y2VwdGlvblwiOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXNzaW9uTG9ja2VkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IExvZ2luQ29uc3RhbnQuYXR0ZW1wdExpbWl0RXhjZWVkZWQ7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBcIkV4cGlyZWRDb2RlRXhjZXB0aW9uXCI6XHJcbiAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBMb2dpbkNvbnN0YW50LnNlc3Npb25FeHBpcmVkO1xyXG4gICAgICAgICAgICAgICAgdGhpcy52ZXJpZnlBbmRTZXROZXdQYXNzd29yZEJ1dHRvbiA9IExvZ2luQ29uc3RhbnQucmVnZW5lcmF0ZU90cDtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gTG9naW5Db25zdGFudC5hdHRlbXB0ICsgXCIgXCIgKyBub09mQXR0ZW1wdHMgKyBMb2dpbkNvbnN0YW50LmF0dGVtcHRNZXNzYWdlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZXJyb3JNZXNzYWdlO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEFsbENvZ25pdG9Ub2tlbkFuZEdyb3Vwcyh0b2tlbjogQ29nbml0b1VzZXJTZXNzaW9uKSB7XHJcbiAgICAgIHRoaXMuYWNjZXNzVG9rZW4gPSB0b2tlbi5nZXRBY2Nlc3NUb2tlbigpLmdldEp3dFRva2VuKCk7XHJcbiAgICAgIHRoaXMuSWRUb2tlbiA9IHRva2VuLmdldElkVG9rZW4oKTtcclxuICAgICAgaWYgKFwiY29nbml0bzpncm91cHNcIiBpbiB0b2tlbi5nZXRBY2Nlc3NUb2tlbigpLnBheWxvYWQpIHtcclxuICAgICAgICAgIHRoaXMuYWNsU2VydmljZS51c2VyR3JvdXBzSW5Db2duaXRvSldUID0gdG9rZW4uZ2V0QWNjZXNzVG9rZW4oKS5wYXlsb2FkW1wiY29nbml0bzpncm91cHNcIl07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmFjbFNlcnZpY2UudXNlckdyb3Vwc0luQ29nbml0b0pXVCA9IFtdO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuXHJcbn1cclxuXHJcbiJdfQ==
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Public API Surface of anna-cognito-lib
|
|
3
|
+
*/
|
|
4
|
+
export * from './lib/anna-cognito-lib.module';
|
|
5
|
+
//COMPONENTS
|
|
6
|
+
export * from './lib/components/login/login.component';
|
|
7
|
+
export * from './lib/components/forgot-password/forgot-password.component';
|
|
8
|
+
export * from './lib/components/set-new-password/set-new-password.component';
|
|
9
|
+
export * from './lib/components/password-matching/password-matching.component';
|
|
10
|
+
export * from './lib/components/verify-and-set-new-password/verify-and-set-new-password.component';
|
|
11
|
+
//SERVICES
|
|
12
|
+
export * from './lib/services/auth.service';
|
|
13
|
+
export * from './lib/services/acl.service';
|
|
14
|
+
export * from './lib/config/auth-service.token';
|
|
15
|
+
export * from './lib/config/acl-service.token';
|
|
16
|
+
export * from './lib/config/library.config';
|
|
17
|
+
//DIRECTIVES
|
|
18
|
+
export * from './lib/directives/spinner-button';
|
|
19
|
+
//CONSTANTS
|
|
20
|
+
export * from './lib/constants/loginConstant';
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2FubmEtY29nbml0by1saWIvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLCtCQUErQixDQUFDO0FBRTlDLGFBQWE7QUFDYixjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsNERBQTRELENBQUM7QUFDM0UsY0FBYyw4REFBOEQsQ0FBQztBQUM3RSxjQUFjLGdFQUFnRSxDQUFDO0FBQy9FLGNBQWMsb0ZBQW9GLENBQUM7QUFFbkcsV0FBVztBQUNYLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyw2QkFBNkIsQ0FBQztBQUU1QyxhQUFhO0FBQ2IsY0FBYyxpQ0FBaUMsQ0FBQztBQUVoRCxZQUFZO0FBQ1osY0FBYywrQkFBK0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBhbm5hLWNvZ25pdG8tbGliXHJcbiAqL1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYW5uYS1jb2duaXRvLWxpYi5tb2R1bGUnO1xyXG5cclxuLy9DT01QT05FTlRTIFxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2xvZ2luL2xvZ2luLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZm9yZ290LXBhc3N3b3JkL2ZvcmdvdC1wYXNzd29yZC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3NldC1uZXctcGFzc3dvcmQvc2V0LW5ldy1wYXNzd29yZC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3Bhc3N3b3JkLW1hdGNoaW5nL3Bhc3N3b3JkLW1hdGNoaW5nLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdmVyaWZ5LWFuZC1zZXQtbmV3LXBhc3N3b3JkL3ZlcmlmeS1hbmQtc2V0LW5ldy1wYXNzd29yZC5jb21wb25lbnQnO1xyXG5cclxuLy9TRVJWSUNFUyBcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvYXV0aC5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvYWNsLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb25maWcvYXV0aC1zZXJ2aWNlLnRva2VuJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29uZmlnL2FjbC1zZXJ2aWNlLnRva2VuJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29uZmlnL2xpYnJhcnkuY29uZmlnJztcclxuXHJcbi8vRElSRUNUSVZFUyBcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9zcGlubmVyLWJ1dHRvbic7XHJcblxyXG4vL0NPTlNUQU5UUyBcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29uc3RhbnRzL2xvZ2luQ29uc3RhbnQnO1xyXG5cclxuXHJcbiJdfQ==
|