@annalib/anna-cognito-lib 0.4.4 → 0.5.1

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.
@@ -0,0 +1,4 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ /** Token to inject the auth service */
3
+ export const CONFIG_SERVICE_TOKEN = new InjectionToken('Cognito config service token');
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLXNlcnZpY2UudG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbm5hLWNvZ25pdG8tbGliL3NyYy9saWIvY29uZmlnL2NvbmZpZy1zZXJ2aWNlLnRva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0MsdUNBQXVDO0FBQ3ZDLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUV6QixJQUFJLGNBQWMsQ0FBaUIsOEJBQThCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG4vKiogVG9rZW4gdG8gaW5qZWN0IHRoZSBhdXRoIHNlcnZpY2UgKi9cclxuZXhwb3J0IGNvbnN0IENPTkZJR19TRVJWSUNFX1RPS0VOOlxyXG4gICAgSW5qZWN0aW9uVG9rZW48SUNvbmZpZ1NlcnZpY2U+ID1cclxuICAgICAgICBuZXcgSW5qZWN0aW9uVG9rZW48SUNvbmZpZ1NlcnZpY2U+KCdDb2duaXRvIGNvbmZpZyBzZXJ2aWNlIHRva2VuJyk7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElDb25maWdTZXJ2aWNlIHtcclxuICBhbm5hQ29nbml0b0xpYnJhcnlDb25maWcgOiB7IFxyXG4gICAgbG9naW5QYWdlTG9nb0ltZ1VybDogc3RyaW5nLFxyXG4gICAgY29nbml0byA6IHtcclxuICAgICAgdXNlclBvb2xJZDogc3RyaW5nLFxyXG4gICAgICBjbGllbnRJZDogc3RyaW5nLFxyXG4gICAgfSxcclxuICAgIGN1cnJlbnRBbm5hVmVyc2lvbjogc3RyaW5nXHJcbiAgfTtcclxuXHJcbn0iXX0=
@@ -8,23 +8,24 @@ import { CognitoUserPool, CognitoUser, AuthenticationDetails } from "amazon-cogn
8
8
  import { LoginConstant } from "../constants/loginConstant";
9
9
  import { AuthenticationData, UserPoolInformation } from "../models/auth.model";
10
10
  import { AnnaLibAclService } from './acl.service';
11
- import { LibraryConfig } from '../config/library.config';
12
11
  import { AUTH_SERVICE_TOKEN } from '../config/auth-service.token';
13
12
  import { ToastrService } from 'ngx-toastr';
13
+ import { CONFIG_SERVICE_TOKEN } from '../config/config-service.token';
14
14
  import * as i0 from "@angular/core";
15
15
  import * as i1 from "@angular/router";
16
16
  import * as i2 from "./acl.service";
17
- import * as i3 from "../config/library.config";
18
- import * as i4 from "@angular/common/http";
19
- import * as i5 from "ngx-toastr";
17
+ import * as i3 from "@angular/common/http";
18
+ import * as i4 from "ngx-toastr";
20
19
  export class AnnaLibAuthService {
21
- constructor(router, aclService, libraryConfig, httpClient, toastr, consumingProjectAuthService) {
20
+ constructor(router, aclService,
21
+ // public libraryConfig: LibraryConfig,
22
+ httpClient, toastr, consumingProjectAuthService, consumingProjectConfigService) {
22
23
  this.router = router;
23
24
  this.aclService = aclService;
24
- this.libraryConfig = libraryConfig;
25
25
  this.httpClient = httpClient;
26
26
  this.toastr = toastr;
27
27
  this.consumingProjectAuthService = consumingProjectAuthService;
28
+ this.consumingProjectConfigService = consumingProjectConfigService;
28
29
  this.noOfAttempts = 0;
29
30
  this.sessionLocked = false;
30
31
  if (!consumingProjectAuthService) {
@@ -104,12 +105,12 @@ export class AnnaLibAuthService {
104
105
  return expTime;
105
106
  }
106
107
  getCurrentUserDetails() {
107
- let poolData = new UserPoolInformation(this.libraryConfig.cognito.userPoolId, this.libraryConfig.cognito.clientId);
108
+ let poolData = new UserPoolInformation(this.consumingProjectConfigService.annaCognitoLibraryConfig.cognito.userPoolId, this.consumingProjectConfigService.annaCognitoLibraryConfig.cognito.clientId);
108
109
  let userPool = new CognitoUserPool(poolData);
109
110
  return userPool.getCurrentUser();
110
111
  }
111
112
  getCognitoUserDetails(email) {
112
- this.poolData = new UserPoolInformation(this.libraryConfig.cognito.userPoolId, this.libraryConfig.cognito.clientId);
113
+ this.poolData = new UserPoolInformation(this.consumingProjectConfigService.annaCognitoLibraryConfig.cognito.userPoolId, this.consumingProjectConfigService.annaCognitoLibraryConfig.cognito.clientId);
113
114
  this.userPool = new CognitoUserPool(this.poolData);
114
115
  let userData = {
115
116
  Username: email,
@@ -252,15 +253,18 @@ export class AnnaLibAuthService {
252
253
  });
253
254
  }
254
255
  }
255
- 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: i5.ToastrService }, { token: AUTH_SERVICE_TOKEN }], target: i0.ɵɵFactoryTarget.Injectable });
256
+ 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.HttpClient }, { token: i4.ToastrService }, { token: AUTH_SERVICE_TOKEN }, { token: CONFIG_SERVICE_TOKEN }], target: i0.ɵɵFactoryTarget.Injectable });
256
257
  AnnaLibAuthService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: AnnaLibAuthService, providedIn: "root" });
257
258
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: AnnaLibAuthService, decorators: [{
258
259
  type: Injectable,
259
260
  args: [{
260
261
  providedIn: "root",
261
262
  }]
262
- }], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.AnnaLibAclService }, { type: i3.LibraryConfig }, { type: i4.HttpClient }, { type: i5.ToastrService }, { type: undefined, decorators: [{
263
+ }], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.AnnaLibAclService }, { type: i3.HttpClient }, { type: i4.ToastrService }, { type: undefined, decorators: [{
263
264
  type: Inject,
264
265
  args: [AUTH_SERVICE_TOKEN]
266
+ }] }, { type: undefined, decorators: [{
267
+ type: Inject,
268
+ args: [CONFIG_SERVICE_TOKEN]
265
269
  }] }]; } });
266
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5uYS1jb2duaXRvLWxpYi9zcmMvbGliL3NlcnZpY2VzL2F1dGguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw0QkFBNEI7QUFDNUIsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxnQ0FBZ0M7QUFDaEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUscUJBQXFCLEVBQXNCLE1BQU0sNEJBQTRCLENBQUM7QUFFckgsaUNBQWlDO0FBQ2pDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBZ0Isa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDOzs7Ozs7O0FBSzNDLE1BQU0sT0FBTyxrQkFBa0I7SUFxQjNCLFlBQ1ksTUFBYyxFQUNmLFVBQTZCLEVBQzdCLGFBQTRCLEVBQzVCLFVBQXFCLEVBQ3BCLE1BQXFCLEVBQ00sMkJBQXlDO1FBTHBFLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZixlQUFVLEdBQVYsVUFBVSxDQUFtQjtRQUM3QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixlQUFVLEdBQVYsVUFBVSxDQUFXO1FBQ3BCLFdBQU0s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QkFBbUIsRUFBRSxDQUFDO1lBQy9CLENBQUM7WUFDRCxTQUFTLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxHQUFFLENBQUM7WUFDdEIsbUJBQW1CLEVBQUUsQ0FBQyxJQUFRLEVBQUUsRUFBRSxHQUFFLENBQUM7U0FDdEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELG1CQUFtQjtRQUNqQixJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQztZQUM3QixTQUFTLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRTtnQkFFcEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDcEIsSUFBSSxDQUFDLG9DQUFvQyxHQUFHLEtBQUssQ0FBQztnQkFDbEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztZQUNyRCxDQUFDO1lBQ0QsU0FBUyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsR0FBRSxDQUFDO1NBQ3ZCLENBQUMsQ0FBQztJQUNMLENBQUM7OytHQS9RUSxrQkFBa0IsNkpBMkJmLGtCQUFrQjttSEEzQnJCLGtCQUFrQixjQUZmLE1BQU07MkZBRVQsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7MEJBNEJRLE1BQU07MkJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQW5ndWxhciBpbXBvcnQgc3RhdGVtZW50c1xyXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuLy8gVGhpcmQgcGFydHkgaW1wb3J0IHN0YXRlbWVudHNcclxuaW1wb3J0IHsgQ29nbml0b1VzZXJQb29sLCBDb2duaXRvVXNlciwgQXV0aGVudGljYXRpb25EZXRhaWxzLCBDb2duaXRvVXNlclNlc3Npb24gfSBmcm9tIFwiYW1hem9uLWNvZ25pdG8taWRlbnRpdHktanNcIjtcclxuXHJcbi8vIFVzZXIgZGVmaW5lZCBpbXBvcnQgc3RhdGVtZW50c1xyXG5pbXBvcnQgeyBMb2dpbkNvbnN0YW50IH0gZnJvbSBcIi4uL2NvbnN0YW50cy9sb2dpbkNvbnN0YW50XCI7XHJcbmltcG9ydCB7IEF1dGhlbnRpY2F0aW9uRGF0YSwgVXNlclBvb2xJbmZvcm1hdGlvbiB9IGZyb20gXCIuLi9tb2RlbHMvYXV0aC5tb2RlbFwiO1xyXG5pbXBvcnQgeyBBbm5hTGliQWNsU2VydmljZSB9IGZyb20gJy4vYWNsLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMaWJyYXJ5Q29uZmlnIH0gZnJvbSAnLi4vY29uZmlnL2xpYnJhcnkuY29uZmlnJztcclxuaW1wb3J0IHsgSUF1dGhTZXJ2aWNlLCBBVVRIX1NFUlZJQ0VfVE9LRU4gfSBmcm9tICcuLi9jb25maWcvYXV0aC1zZXJ2aWNlLnRva2VuJztcclxuaW1wb3J0IHsgVG9hc3RyU2VydmljZSB9IGZyb20gJ25neC10b2FzdHInO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogXCJyb290XCIsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBbm5hTGliQXV0aFNlcnZpY2UgIHtcclxuICAgIHBvb2xEYXRhOiBVc2VyUG9vbEluZm9ybWF0aW9uO1xyXG4gICAgdXNlclBvb2w6IENvZ25pdG9Vc2VyUG9vbDtcclxuICAgIGNvZ25pdG9Vc2VyOiBDb2duaXRvVXNlcjtcclxuICAgIGF1dGhlbnRpY2F0aW9uRGV0YWlsczogQXV0aGVudGljYXRpb25EZXRhaWxzO1xyXG4gICAgdG9rZW5WYWxpZDogYm9vbGVhbjtcclxuICAgIGFjY2Vzc1Rva2VuOiBzdHJpbmc7XHJcbiAgICB1c2VyQXR0cmlidXRlOiBhbnk7XHJcbiAgICBsb2dpbkVycm9yTWVzc2FnZTogc3RyaW5nIHwgbnVsbDtcclxuICAgIHNldE5ld1Bhc3N3b3JkRXJyb3JNZXNzYWdlOiBzdHJpbmc7XHJcbiAgICBzZXROZXdQYXNzd29yZEJ1dHRvbk1lc3NhZ2U6IHN0cmluZztcclxuICAgIHZlcmlmeUFuZFNldE5ld1Bhc3N3b3JkRXJyb3JNZXNzYWdlOiBzdHJpbmc7XHJcbiAgICB2ZXJpZnlBbmRTZXROZXdQYXNzd29yZE1lc3NhZ2U6IHN0cmluZztcclxuICAgIHZlcmlmeUFuZFNldE5ld1Bhc3N3b3JkQnV0dG9uOiBzdHJpbmc7XHJcbiAgICBub09mQXR0ZW1wdHMgPSAwO1xyXG4gICAgc2Vzc2lvbkxvY2tlZCA9IGZhbHNlO1xyXG4gICAgdXNlck5hbWU6IGFueTtcclxuICAgIGFjY2Vzc1Rva2VuVGltZXJJZDogYW55O1xyXG4gICAgSWRUb2tlbjogYW55O1xyXG4gIGZvcmdvdFBhc3N3b3JkQW5kR2xvYmFsU2lnbm91dExvYWRlcjogYm9vbGVhbjtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgICAgIHB1YmxpYyBhY2xTZXJ2aWNlOiBBbm5hTGliQWNsU2VydmljZSxcclxuICAgICAgICBwdWJsaWMgbGlicmFyeUNvbmZpZzogTGlicmFyeUNvbmZpZyxcclxuICAgICAgICBwdWJsaWMgaHR0cENsaWVudDpIdHRwQ2xpZW50LFxyXG4gICAgICAgIHByaXZhdGUgdG9hc3RyOiBUb2FzdHJTZXJ2aWNlLFxyXG4gICAgICAgIEBJbmplY3QoQVVUSF9TRVJWSUNFX1RPS0VOKSBwdWJsaWMgY29uc3VtaW5nUHJvamVjdEF1dGhTZXJ2aWNlOiBJQXV0aFNlcnZpY2UpIHtcclxuICAgICAgICAgIGlmKCFjb25zdW1pbmdQcm9qZWN0QXV0aFNlcnZpY2UpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdZb3UgbXVzdCBwcm92aWRlIGEgYXV0aFNlcnZpY2UnKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7fVxyXG5cclxuICAgIC8qKipcclxuICAgMS4gdGFrZXMgdXNlciBwb29sIGRhdGEgKHVzZXJQb29sIElEIGFuZCBjbGllbnQgSUQpXHJcbiAgIDIuIGlmIGN1cnJlbnQgdXNlciBpcyBudWxsIHRoZW4gaXQgbWVhbnMgdXNlciBhbHJlYWR5IGxvZ2dlZCBvdXQgdGhlbiBzaW1wbHkgcmV0dXJuIFByb21pc2U8ZmFsc2U+XHJcbiAgIDMuIGlmIGN1cnJlbnQgdXNlciBwcmVzZW50IGNoZWNrIGlmIHRva2VuIGlzIHZhbGlkIGZvciBpdC5cclxuICovXHJcbiAgICBpc1VzZXJMb2dnZWRJbigpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgICAgICBsZXQgY3VycmVudFVzZXIgPSB0aGlzLmdldEN1cnJlbnRVc2VyRGV0YWlscygpO1xyXG4gICAgICAgIGlmIChjdXJyZW50VXNlcikge1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICAgICAgICAgIGN1cnJlbnRVc2VyICYmIGN1cnJlbnRVc2VyLmdldFNlc3Npb24oKGVycm9yOiBFcnJvciwgdG9rZW46IENvZ25pdG9Vc2VyU2Vzc2lvbiB8IG51bGwpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAodG9rZW4pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRBbGxDb2duaXRvVG9rZW5BbmRHcm91cHModG9rZW4pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHRydWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudG9hc3RyLmVycm9yKExvZ2luQ29uc3RhbnQuc2Vzc2lvbkV4cGlyZWRFcnJvcik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2Vzc2lvblRpbWVvdXQoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLmFjY2Vzc1Rva2VuVGltZXJJZCk7XHJcbiAgICAgICAgICAgICAgICByZXNvbHZlKGZhbHNlKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHNlc3Npb25UaW1lb3V0KCkge1xyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5jbGVhcigpO1xyXG4gICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5hY2Nlc3NUb2tlblRpbWVySWQpO1xyXG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtMb2dpbkNvbnN0YW50LmxvZ2luUGFnZVVybF0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJlZnJlc2hBY2Nlc3NUb2tlbigpIHtcclxuICAgICAgICBsZXQgY3VycmVudFVzZXIgPSB0aGlzLmdldEN1cnJlbnRVc2VyRGV0YWlscygpO1xyXG4gICAgICAgIGxldCBhY2Nlc3NUb2tlbkV4cGlyYXRpb24gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImFjY2Vzc1Rva2VuRXhwaXJhdGlvblwiKTtcclxuICAgICAgICBsZXQgZXhwVGltZSA9IGFjY2Vzc1Rva2VuRXhwaXJhdGlvbiA/IHBhcnNlSW50KGFjY2Vzc1Rva2VuRXhwaXJhdGlvbikgOiAwO1xyXG4gICAgICAgIHRoaXMuYWNjZXNzVG9rZW5UaW1lcklkID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xyXG4gICAgICAgICAgICBsZXQgY291bnRlciA9IDEwMDA7XHJcbiAgICAgICAgICAgIGxldCBkZWxheUZ1bmN0aW9uID0gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgY3VycmVudFVzZXIgJiYgY3VycmVudFVzZXIuZ2V0U2Vzc2lvbigoZXJyb3I6IGFueSwgdG9rZW46IENvZ25pdG9Vc2VyU2Vzc2lvbiB8IG51bGwpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAodG9rZW4pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRBbGxDb2duaXRvVG9rZW5BbmRHcm91cHModG9rZW4pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3RXhwVGltZSA9IHRoaXMuY29tcHV0ZVRva2VuRXhwaXJhdGlvbih0aGlzLklkVG9rZW4pO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5ld0V4cFRpbWUgPD0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3RXhwVGltZSA9IDEwMDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudGVyID0gMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkZWxheUZ1bmN0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChkZWxheUZ1bmN0aW9uKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBleHBUaW1lID0gbmV3RXhwVGltZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXCJhY2Nlc3NUb2tlbkV4cGlyYXRpb25cIiwgbmV3RXhwVGltZS50b1N0cmluZygpKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLmFjY2Vzc1Rva2VuVGltZXJJZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVmcmVzaEFjY2Vzc1Rva2VuKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChlcnJvci5jb2RlID09PSBcIk5vdEF1dGhvcml6ZWRFeGNlcHRpb25cIikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRvYXN0ci5lcnJvcihMb2dpbkNvbnN0YW50LnNlc3Npb25FeHBpcmVkRXJyb3IpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlc3Npb25UaW1lb3V0KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0sIGNvdW50ZXIpO1xyXG4gICAgICAgIH0sIGV4cFRpbWUpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbXB1dGVUb2tlbkV4cGlyYXRpb24odG9rZW46IGFueSkge1xyXG4gICAgICAgIGxldCBjdXJyZW50VGltZSA9IE1hdGguZmxvb3IoRGF0ZS5ub3coKSAvIDEwMDApO1xyXG4gICAgICAgIGxldCB0b2tlblRpbWUgPSB0b2tlbi5wYXlsb2FkLmV4cDtcclxuICAgICAgICBsZXQgZXhwVGltZSA9ICh0b2tlblRpbWUgLSBjdXJyZW50VGltZSkgKiAxMDAwO1xyXG4gICAgICAgIHJldHVybiBleHBUaW1lO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBnZXRDdXJyZW50VXNlckRldGFpbHMoKSB7XHJcbiAgICAgICAgbGV0IHBvb2xEYXRhID0gbmV3IFVzZXJQb29sSW5mb3JtYXRpb24odGhpcy5saWJyYXJ5Q29uZmlnLmNvZ25pdG8udXNlclBvb2xJZCwgdGhpcy5saWJyYXJ5Q29uZmlnLmNvZ25pdG8uY2xpZW50SWQpO1xyXG4gICAgICAgIGxldCB1c2VyUG9vbCA9IG5ldyBDb2duaXRvVXNlclBvb2wocG9vbERhdGEpO1xyXG4gICAgICAgIHJldHVybiB1c2VyUG9vbC5nZXRDdXJyZW50VXNlcigpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldENvZ25pdG9Vc2VyRGV0YWlscyhlbWFpbDogc3RyaW5nKTogQ29nbml0b1VzZXIge1xyXG4gICAgICAgIHRoaXMucG9vbERhdGEgPSBuZXcgVXNlclBvb2xJbmZvcm1hdGlvbih0aGlzLmxpYnJhcnlDb25maWcuY29nbml0by51c2VyUG9vbElkLCB0aGlzLmxpYnJhcnlDb25maWcuY29nbml0by5jbGllbnRJZCk7XHJcbiAgICAgICAgdGhpcy51c2VyUG9vbCA9IG5ldyBDb2duaXRvVXNlclBvb2wodGhpcy5wb29sRGF0YSk7XHJcblxyXG4gICAgICAgIGxldCB1c2VyRGF0YSA9IHtcclxuICAgICAgICAgICAgVXNlcm5hbWU6IGVtYWlsLFxyXG4gICAgICAgICAgICBQb29sOiB0aGlzLnVzZXJQb29sLFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgbGV0IGNvZ25pdG9Vc2VyID0gbmV3IENvZ25pdG9Vc2VyKHVzZXJEYXRhKTtcclxuICAgICAgICByZXR1cm4gY29nbml0b1VzZXI7XHJcbiAgICB9XHJcblxyXG4gICAgYXV0aGVudGljYXRlKGVtYWlsOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLmxvZ2luRXJyb3JNZXNzYWdlID0gbnVsbDtcclxuICAgICAgICBsZXQgYXV0aERhdGEgPSBuZXcgQXV0aGVudGljYXRpb25EYXRhKGVtYWlsLCBwYXNzd29yZCk7XHJcbiAgICAgICAgdGhpcy5hdXRoZW50aWNhdGlvbkRldGFpbHMgPSBuZXcgQXV0aGVudGljYXRpb25EZXRhaWxzKGF1dGhEYXRhKTtcclxuXHJcbiAgICAgICAgdGhpcy5jb2duaXRvVXNlciA9IHRoaXMuZ2V0Q29nbml0b1VzZXJEZXRhaWxzKGVtYWlsKTtcclxuICAgICAgICB0aGlzLkNvZ25pdG9BdXRoZW50aWNhdGlvbih0aGlzLmF1dGhlbnRpY2F0aW9uRGV0YWlscyk7XHJcbiAgICB9XHJcblxyXG4gICAgQ29nbml0b0F1dGhlbnRpY2F0aW9uKGF1dGhlbnRpY2F0aW9uRGV0YWlsczogQXV0aGVudGljYXRpb25EZXRhaWxzKSB7XHJcbiAgICAgICAgdGhpcy5jb2duaXRvVXNlci5hdXRoZW50aWNhdGVVc2VyKGF1dGhlbnRpY2F0aW9uRGV0YWlscywge1xyXG4gICAgICAgICAgICBvblN1Y2Nlc3M6IGFzeW5jIChyZXN1bHQpID0+IHtcclxuICAgICAgICAgICAgICAgIGxldCBuZXdFeHBUaW1lID0gdGhpcy5jb21wdXRlVG9rZW5FeHBpcmF0aW9uKHJlc3VsdC5nZXRJZFRva2VuKCkpO1xyXG4gICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXCJhY2Nlc3NUb2tlbkV4cGlyYXRpb25cIiwgbmV3RXhwVGltZS50b1N0cmluZygpKTtcclxuICAgICAgICAgICAgICAgIHRoaXMucmVmcmVzaEFjY2Vzc1Rva2VuKCk7XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0QWxsQ29nbml0b1Rva2VuQW5kR3JvdXBzKHJlc3VsdCk7XHJcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLmNvbnN1bWluZ1Byb2plY3RBdXRoU2VydmljZS5vblN1Y2Nlc3NmdWxBdXRoZW50aWNhdGluZ1VzZXIocmVzdWx0KTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgb25GYWlsdXJlOiAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnN1bWluZ1Byb2plY3RBdXRoU2VydmljZS5pc0xvZ2dpbmdJbiA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgaWYgKGVyci5tZXNzYWdlID09IExvZ2luQ29uc3RhbnQudGVtcFBhc3N3b3JkRXhwaXJ5RXJyb3IpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmxvZ2luRXJyb3JNZXNzYWdlID0gTG9naW5Db25zdGFudC50ZW1wUGFzc3dvcmRPbkV4cGlyeUVycm9yTXNnO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29uc3VtaW5nUHJvamVjdEF1dGhTZXJ2aWNlLnNlbmRSZWdlbmVyYXRpb25FbWFpbCh0aGlzLmF1dGhlbnRpY2F0aW9uRGV0YWlscy5nZXRVc2VybmFtZSgpKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKGVyci5tZXNzYWdlID09PSBcIlBhc3N3b3JkIGF0dGVtcHRzIGV4Y2VlZGVkXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmxvZ2luRXJyb3JNZXNzYWdlID0gTG9naW5Db25zdGFudC5hdHRlbXB0TGltaXRFeGNlZWRlZDtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2dpbkVycm9yTWVzc2FnZSA9IExvZ2luQ29uc3RhbnQudXNlck5hbWVQYXNzd29yZEluY29ycmVjdDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgbmV3UGFzc3dvcmRSZXF1aXJlZDogKGRhdGE6YW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnN1bWluZ1Byb2plY3RBdXRoU2VydmljZS5pc0xvZ2dpbmdJbiA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy51c2VyQXR0cmlidXRlID0gZGF0YTtcclxuICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtMb2dpbkNvbnN0YW50LnNldE5ld1Bhc3N3b3JkVXJsXSk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgXHJcbiAgICBzZXROZXdQYXNzd29yZChuZXdQYXNzd29yZDogYW55KSB7XHJcbiAgICAgICAgZGVsZXRlIHRoaXMudXNlckF0dHJpYnV0ZS5lbWFpbDtcclxuICAgICAgICBkZWxldGUgdGhpcy51c2VyQXR0cmlidXRlLmVtYWlsX3ZlcmlmaWVkO1xyXG4gICAgICAgIGRlbGV0ZSB0aGlzLnVzZXJBdHRyaWJ1dGUucGhvbmVfbnVtYmVyX3ZlcmlmaWVkO1xyXG4gICAgICAgIHRoaXMuY29nbml0b1VzZXIuY29tcGxldGVOZXdQYXNzd29yZENoYWxsZW5nZShuZXdQYXNzd29yZCwgdGhpcy51c2VyQXR0cmlidXRlLCB7XHJcbiAgICAgICAgICAgIG9uU3VjY2VzczogKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW0xvZ2luQ29uc3RhbnQubG9naW5QYWdlVXJsXSk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIG9uRmFpbHVyZTogKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldE5ld1Bhc3N3b3JkRXJyb3JNZXNzYWdlID0gTG9naW5Db25zdGFudC5zZXNzaW9uRXhwaXJlZDtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0TmV3UGFzc3dvcmRCdXR0b25NZXNzYWdlID0gTG9naW5Db25zdGFudC5sb2dpbkFnYWluO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG9uRm9yZ290UGFzc3dvcmRHZW5lcmF0ZU9UUChlbWFpbDogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy51c2VyTmFtZSA9IGVtYWlsO1xyXG4gICAgICAgIHRoaXMuY29nbml0b1VzZXIgPSB0aGlzLmdldENvZ25pdG9Vc2VyRGV0YWlscyhlbWFpbCk7XHJcbiAgICAgICAgdGhpcy5jb2duaXRvVXNlci5mb3Jnb3RQYXNzd29yZCh7XHJcbiAgICAgICAgICAgIG9uU3VjY2VzczogKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy52ZXJpZnlBbmRTZXROZXdQYXNzd29yZE1lc3NhZ2UgPVxyXG4gICAgICAgICAgICAgICAgICAgIExvZ2luQ29uc3RhbnQudmVyaWZ5QW5kU2V0TmV3UGFzc3dvcmRNZXNzYWdlICtcclxuICAgICAgICAgICAgICAgICAgICByZXN1bHQuQ29kZURlbGl2ZXJ5RGV0YWlscy5EZXN0aW5hdGlvbiArXHJcbiAgICAgICAgICAgICAgICAgICAgTG9naW5Db25zdGFudC5wbGVhc2VFbnRlckl0QmVsb3c7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbTG9naW5Db25zdGFudC52ZXJpZnlBbmRTZXROZXdQYXNzd29yZFVybF0pO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBvbkZhaWx1cmU6IChlcnIpID0+IHt9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHZlcmlmeUNvZGUodmVyaWZpY2F0aW9uQ29kZTogc3RyaW5nLCBuZXdQYXNzd29yZDogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5jb2duaXRvVXNlci5jb25maXJtUGFzc3dvcmQodmVyaWZpY2F0aW9uQ29kZSwgbmV3UGFzc3dvcmQsIHtcclxuICAgICAgICAgICAgb25GYWlsdXJlOiAoZXJyb3IpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9PZkF0dGVtcHRzID0gdGhpcy5ub09mQXR0ZW1wdHMgKyAxO1xyXG4gICAgICAgICAgICAgICAgdGhpcy52ZXJpZnlBbmRTZXROZXdQYXNzd29yZEVycm9yTWVzc2FnZSA9IHRoaXMuZm9yZ290UGFzc3dvcmRFcnJvcihlcnJvciwgdGhpcy5ub09mQXR0ZW1wdHMpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5mb3Jnb3RQYXNzd29yZEFuZEdsb2JhbFNpZ25vdXRMb2FkZXIgPSBmYWxzZTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgb25TdWNjZXNzOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmV4cGlyeUFsbEV4aXN0aW5nQ3VycmVudFNlc3Npb24obmV3UGFzc3dvcmQpO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGZvcmdvdFBhc3N3b3JkRXJyb3IoZXJyOiBhbnksIG5vT2ZBdHRlbXB0czogbnVtYmVyKSB7XHJcbiAgICAgICAgbGV0IGVycm9yTWVzc2FnZTtcclxuICAgICAgICBzd2l0Y2ggKGVyci5jb2RlKSB7XHJcbiAgICAgICAgICAgIGNhc2UgXCJMaW1pdEV4Y2VlZGVkRXhjZXB0aW9uXCI6XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlc3Npb25Mb2NrZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gTG9naW5Db25zdGFudC5hdHRlbXB0TGltaXRFeGNlZWRlZDtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFwiRXhwaXJlZENvZGVFeGNlcHRpb25cIjpcclxuICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IExvZ2luQ29uc3RhbnQuc2Vzc2lvbkV4cGlyZWQ7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnZlcmlmeUFuZFNldE5ld1Bhc3N3b3JkQnV0dG9uID0gTG9naW5Db25zdGFudC5yZWdlbmVyYXRlT3RwO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBMb2dpbkNvbnN0YW50LmF0dGVtcHQgKyBcIiBcIiArIG5vT2ZBdHRlbXB0cyArIExvZ2luQ29uc3RhbnQuYXR0ZW1wdE1lc3NhZ2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBlcnJvck1lc3NhZ2U7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0QWxsQ29nbml0b1Rva2VuQW5kR3JvdXBzKHRva2VuOiBDb2duaXRvVXNlclNlc3Npb24pIHtcclxuICAgICAgdGhpcy5hY2Nlc3NUb2tlbiA9IHRva2VuLmdldEFjY2Vzc1Rva2VuKCkuZ2V0Snd0VG9rZW4oKTtcclxuICAgICAgdGhpcy5JZFRva2VuID0gdG9rZW4uZ2V0SWRUb2tlbigpO1xyXG4gICAgICBpZiAoXCJjb2duaXRvOmdyb3Vwc1wiIGluIHRva2VuLmdldEFjY2Vzc1Rva2VuKCkucGF5bG9hZCkge1xyXG4gICAgICAgICAgdGhpcy5hY2xTZXJ2aWNlLnVzZXJHcm91cHNJbkNvZ25pdG9KV1QgPSB0b2tlbi5nZXRBY2Nlc3NUb2tlbigpLnBheWxvYWRbXCJjb2duaXRvOmdyb3Vwc1wiXTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuYWNsU2VydmljZS51c2VyR3JvdXBzSW5Db2duaXRvSldUID0gW107XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBleHBpcnlBbGxFeGlzdGluZ0N1cnJlbnRTZXNzaW9uKG5ld1Bhc3N3b3JkOiBzdHJpbmcpe1xyXG4gICAgICBsZXQgdXNlcm5hbWUgPSAgdGhpcy5jb2duaXRvVXNlci5nZXRVc2VybmFtZSgpO1xyXG4gICAgICB0aGlzLnNldFVzZXJEZXRhaWxzKHVzZXJuYW1lLCBuZXdQYXNzd29yZCk7XHJcbiAgICAgIHRoaXMub25Mb2dpbkluQ29nbnRpb1RvR2V0QWNjZXNzVG9rZW4oKTtcclxuICAgIH1cclxuXHJcbiAgICBzZXRVc2VyRGV0YWlscyh1c2VybmFtZTogc3RyaW5nLCBuZXdQYXNzd29yZDogc3RyaW5nKXtcclxuICAgICAgdGhpcy5sb2dpbkVycm9yTWVzc2FnZSA9IG51bGw7XHJcbiAgICAgIGxldCBhdXRoRGF0YSA9IG5ldyBBdXRoZW50aWNhdGlvbkRhdGEodXNlcm5hbWUsIG5ld1Bhc3N3b3JkKTtcclxuICAgICAgdGhpcy5hdXRoZW50aWNhdGlvbkRldGFpbHMgPSBuZXcgQXV0aGVudGljYXRpb25EZXRhaWxzKGF1dGhEYXRhKTtcclxuICAgICAgdGhpcy5jb2duaXRvVXNlciA9IHRoaXMuZ2V0Q29nbml0b1VzZXJEZXRhaWxzKHVzZXJuYW1lKTtcclxuICAgIH1cclxuXHJcbiAgICBvbkxvZ2luSW5Db2dudGlvVG9HZXRBY2Nlc3NUb2tlbigpe1xyXG4gICAgICB0aGlzLmNvZ25pdG9Vc2VyLmF1dGhlbnRpY2F0ZVVzZXIodGhpcy5hdXRoZW50aWNhdGlvbkRldGFpbHMsIHtcclxuICAgICAgICBvblN1Y2Nlc3M6IGFzeW5jIChyZXN1bHQ6IENvZ25pdG9Vc2VyU2Vzc2lvbikgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmdldEFsbENvZ25pdG9Ub2tlbkFuZEdyb3VwcyhyZXN1bHQpO1xyXG4gICAgICAgICAgICB0aGlzLm9uQ2FsbEdsb2JhbFNpZ25vdXQoKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uRmFpbHVyZTogKGVycikgPT4ge30sXHJcbiAgICAgICAgbmV3UGFzc3dvcmRSZXF1aXJlZDogKGRhdGE6YW55KSA9PiB7fSxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgb25DYWxsR2xvYmFsU2lnbm91dCgpe1xyXG4gICAgICB0aGlzLmNvZ25pdG9Vc2VyLmdsb2JhbFNpZ25PdXQoe1xyXG4gICAgICAgIG9uU3VjY2VzczogKHJlc3VsdCkgPT4gXHJcbiAgICAgICAgeyBcclxuICAgICAgICAgIGNvbnNvbGUubG9nKHJlc3VsdCk7ICAgXHJcbiAgICAgICAgICB0aGlzLmZvcmdvdFBhc3N3b3JkQW5kR2xvYmFsU2lnbm91dExvYWRlciA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW0xvZ2luQ29uc3RhbnQubG9naW5QYWdlVXJsXSk7IFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgb25GYWlsdXJlOiAoZXJyKSA9PiB7fVxyXG4gICAgICB9KTtcclxuICAgIH1cclxufVxyXG4iXX0=
270
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5uYS1jb2duaXRvLWxpYi9zcmMvbGliL3NlcnZpY2VzL2F1dGguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw0QkFBNEI7QUFDNUIsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxnQ0FBZ0M7QUFDaEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUscUJBQXFCLEVBQXNCLE1BQU0sNEJBQTRCLENBQUM7QUFFckgsaUNBQWlDO0FBQ2pDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbEQsT0FBTyxFQUFnQixrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDM0MsT0FBTyxFQUFFLG9CQUFvQixFQUFrQixNQUFNLGdDQUFnQyxDQUFDOzs7Ozs7QUFLdEYsTUFBTSxPQUFPLGtCQUFrQjtJQXFCM0IsWUFDWSxNQUFjLEVBQ2YsVUFBNkI7SUFDcEMsdUNBQXVDO0lBQ2hDLFVBQXFCLEVBQ3BCLE1BQXFCLEVBQ00sMkJBQXlDLEVBQ3ZDLDZCQUE2QztRQU4xRSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2YsZUFBVSxHQUFWLFVBQVUsQ0FBbUI7UUFFN0IsZUFBVSxHQUFWLFVBQVUsQ0FBVztRQUNwQixXQUFNLEdBQU4sTUFBTSxD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QUEwQixFQUFFLEVBQUU7Z0JBQzVDLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDekMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDL0IsQ0FBQztZQUNELFNBQVMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEdBQUUsQ0FBQztZQUN0QixtQkFBbUIsRUFBRSxDQUFDLElBQVEsRUFBRSxFQUFFLEdBQUUsQ0FBQztTQUN0QyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsbUJBQW1CO1FBQ2pCLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDO1lBQzdCLFNBQVMsRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUVwQixPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUNwQixJQUFJLENBQUMsb0NBQW9DLEdBQUcsS0FBSyxDQUFDO2dCQUNsRCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1lBQ3JELENBQUM7WUFDRCxTQUFTLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxHQUFFLENBQUM7U0FDdkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7K0dBaFJRLGtCQUFrQixnSUEyQmYsa0JBQWtCLGFBQ2xCLG9CQUFvQjttSEE1QnZCLGtCQUFrQixjQUZmLE1BQU07MkZBRVQsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7MEJBNEJRLE1BQU07MkJBQUMsa0JBQWtCOzswQkFDekIsTUFBTTsyQkFBQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyIGltcG9ydCBzdGF0ZW1lbnRzXHJcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG4vLyBUaGlyZCBwYXJ0eSBpbXBvcnQgc3RhdGVtZW50c1xyXG5pbXBvcnQgeyBDb2duaXRvVXNlclBvb2wsIENvZ25pdG9Vc2VyLCBBdXRoZW50aWNhdGlvbkRldGFpbHMsIENvZ25pdG9Vc2VyU2Vzc2lvbiB9IGZyb20gXCJhbWF6b24tY29nbml0by1pZGVudGl0eS1qc1wiO1xyXG5cclxuLy8gVXNlciBkZWZpbmVkIGltcG9ydCBzdGF0ZW1lbnRzXHJcbmltcG9ydCB7IExvZ2luQ29uc3RhbnQgfSBmcm9tIFwiLi4vY29uc3RhbnRzL2xvZ2luQ29uc3RhbnRcIjtcclxuaW1wb3J0IHsgQXV0aGVudGljYXRpb25EYXRhLCBVc2VyUG9vbEluZm9ybWF0aW9uIH0gZnJvbSBcIi4uL21vZGVscy9hdXRoLm1vZGVsXCI7XHJcbmltcG9ydCB7IEFubmFMaWJBY2xTZXJ2aWNlIH0gZnJvbSAnLi9hY2wuc2VydmljZSc7XHJcbmltcG9ydCB7IExpYnJhcnlDb25maWcgfSBmcm9tICcuLi9jb25maWcvbGlicmFyeS5jb25maWcnO1xyXG5pbXBvcnQgeyBJQXV0aFNlcnZpY2UsIEFVVEhfU0VSVklDRV9UT0tFTiB9IGZyb20gJy4uL2NvbmZpZy9hdXRoLXNlcnZpY2UudG9rZW4nO1xyXG5pbXBvcnQgeyBUb2FzdHJTZXJ2aWNlIH0gZnJvbSAnbmd4LXRvYXN0cic7XHJcbmltcG9ydCB7IENPTkZJR19TRVJWSUNFX1RPS0VOLCBJQ29uZmlnU2VydmljZSB9IGZyb20gJy4uL2NvbmZpZy9jb25maWctc2VydmljZS50b2tlbic7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiBcInJvb3RcIixcclxufSlcclxuZXhwb3J0IGNsYXNzIEFubmFMaWJBdXRoU2VydmljZSAge1xyXG4gICAgcG9vbERhdGE6IFVzZXJQb29sSW5mb3JtYXRpb247XHJcbiAgICB1c2VyUG9vbDogQ29nbml0b1VzZXJQb29sO1xyXG4gICAgY29nbml0b1VzZXI6IENvZ25pdG9Vc2VyO1xyXG4gICAgYXV0aGVudGljYXRpb25EZXRhaWxzOiBBdXRoZW50aWNhdGlvbkRldGFpbHM7XHJcbiAgICB0b2tlblZhbGlkOiBib29sZWFuO1xyXG4gICAgYWNjZXNzVG9rZW46IHN0cmluZztcclxuICAgIHVzZXJBdHRyaWJ1dGU6IGFueTtcclxuICAgIGxvZ2luRXJyb3JNZXNzYWdlOiBzdHJpbmcgfCBudWxsO1xyXG4gICAgc2V0TmV3UGFzc3dvcmRFcnJvck1lc3NhZ2U6IHN0cmluZztcclxuICAgIHNldE5ld1Bhc3N3b3JkQnV0dG9uTWVzc2FnZTogc3RyaW5nO1xyXG4gICAgdmVyaWZ5QW5kU2V0TmV3UGFzc3dvcmRFcnJvck1lc3NhZ2U6IHN0cmluZztcclxuICAgIHZlcmlmeUFuZFNldE5ld1Bhc3N3b3JkTWVzc2FnZTogc3RyaW5nO1xyXG4gICAgdmVyaWZ5QW5kU2V0TmV3UGFzc3dvcmRCdXR0b246IHN0cmluZztcclxuICAgIG5vT2ZBdHRlbXB0cyA9IDA7XHJcbiAgICBzZXNzaW9uTG9ja2VkID0gZmFsc2U7XHJcbiAgICB1c2VyTmFtZTogYW55O1xyXG4gICAgYWNjZXNzVG9rZW5UaW1lcklkOiBhbnk7XHJcbiAgICBJZFRva2VuOiBhbnk7XHJcbiAgZm9yZ290UGFzc3dvcmRBbmRHbG9iYWxTaWdub3V0TG9hZGVyOiBib29sZWFuO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICAgICAgcHVibGljIGFjbFNlcnZpY2U6IEFubmFMaWJBY2xTZXJ2aWNlLFxyXG4gICAgICAgIC8vIHB1YmxpYyBsaWJyYXJ5Q29uZmlnOiBMaWJyYXJ5Q29uZmlnLFxyXG4gICAgICAgIHB1YmxpYyBodHRwQ2xpZW50Okh0dHBDbGllbnQsXHJcbiAgICAgICAgcHJpdmF0ZSB0b2FzdHI6IFRvYXN0clNlcnZpY2UsXHJcbiAgICAgICAgQEluamVjdChBVVRIX1NFUlZJQ0VfVE9LRU4pIHB1YmxpYyBjb25zdW1pbmdQcm9qZWN0QXV0aFNlcnZpY2U6IElBdXRoU2VydmljZSxcclxuICAgICAgICBASW5qZWN0KENPTkZJR19TRVJWSUNFX1RPS0VOKSBwdWJsaWMgY29uc3VtaW5nUHJvamVjdENvbmZpZ1NlcnZpY2U6IElDb25maWdTZXJ2aWNlKSB7XHJcbiAgICAgICAgICBpZighY29uc3VtaW5nUHJvamVjdEF1dGhTZXJ2aWNlKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignWW91IG11c3QgcHJvdmlkZSBhIGF1dGhTZXJ2aWNlJyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCkge31cclxuXHJcbiAgICAvKioqXHJcbiAgIDEuIHRha2VzIHVzZXIgcG9vbCBkYXRhICh1c2VyUG9vbCBJRCBhbmQgY2xpZW50IElEKVxyXG4gICAyLiBpZiBjdXJyZW50IHVzZXIgaXMgbnVsbCB0aGVuIGl0IG1lYW5zIHVzZXIgYWxyZWFkeSBsb2dnZWQgb3V0IHRoZW4gc2ltcGx5IHJldHVybiBQcm9taXNlPGZhbHNlPlxyXG4gICAzLiBpZiBjdXJyZW50IHVzZXIgcHJlc2VudCBjaGVjayBpZiB0b2tlbiBpcyB2YWxpZCBmb3IgaXQuXHJcbiAqL1xyXG4gICAgaXNVc2VyTG9nZ2VkSW4oKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICAgICAgbGV0IGN1cnJlbnRVc2VyID0gdGhpcy5nZXRDdXJyZW50VXNlckRldGFpbHMoKTtcclxuICAgICAgICBpZiAoY3VycmVudFVzZXIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgICAgICAgICBjdXJyZW50VXNlciAmJiBjdXJyZW50VXNlci5nZXRTZXNzaW9uKChlcnJvcjogRXJyb3IsIHRva2VuOiBDb2duaXRvVXNlclNlc3Npb24gfCBudWxsKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRva2VuKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0QWxsQ29nbml0b1Rva2VuQW5kR3JvdXBzKHRva2VuKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSh0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRvYXN0ci5lcnJvcihMb2dpbkNvbnN0YW50LnNlc3Npb25FeHBpcmVkRXJyb3IpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlc3Npb25UaW1lb3V0KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcclxuICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5hY2Nlc3NUb2tlblRpbWVySWQpO1xyXG4gICAgICAgICAgICAgICAgcmVzb2x2ZShmYWxzZSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzZXNzaW9uVGltZW91dCgpIHtcclxuICAgICAgICBsb2NhbFN0b3JhZ2UuY2xlYXIoKTtcclxuICAgICAgICBjbGVhckludGVydmFsKHRoaXMuYWNjZXNzVG9rZW5UaW1lcklkKTtcclxuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbTG9naW5Db25zdGFudC5sb2dpblBhZ2VVcmxdKTtcclxuICAgIH1cclxuXHJcbiAgICByZWZyZXNoQWNjZXNzVG9rZW4oKSB7XHJcbiAgICAgICAgbGV0IGN1cnJlbnRVc2VyID0gdGhpcy5nZXRDdXJyZW50VXNlckRldGFpbHMoKTtcclxuICAgICAgICBsZXQgYWNjZXNzVG9rZW5FeHBpcmF0aW9uID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJhY2Nlc3NUb2tlbkV4cGlyYXRpb25cIik7XHJcbiAgICAgICAgbGV0IGV4cFRpbWUgPSBhY2Nlc3NUb2tlbkV4cGlyYXRpb24gPyBwYXJzZUludChhY2Nlc3NUb2tlbkV4cGlyYXRpb24pIDogMDtcclxuICAgICAgICB0aGlzLmFjY2Vzc1Rva2VuVGltZXJJZCA9IHNldEludGVydmFsKCgpID0+IHtcclxuICAgICAgICAgICAgbGV0IGNvdW50ZXIgPSAxMDAwO1xyXG4gICAgICAgICAgICBsZXQgZGVsYXlGdW5jdGlvbiA9IHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgIGN1cnJlbnRVc2VyICYmIGN1cnJlbnRVc2VyLmdldFNlc3Npb24oKGVycm9yOiBhbnksIHRva2VuOiBDb2duaXRvVXNlclNlc3Npb24gfCBudWxsKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRva2VuKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0QWxsQ29nbml0b1Rva2VuQW5kR3JvdXBzKHRva2VuKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld0V4cFRpbWUgPSB0aGlzLmNvbXB1dGVUb2tlbkV4cGlyYXRpb24odGhpcy5JZFRva2VuKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuZXdFeHBUaW1lIDw9IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld0V4cFRpbWUgPSAxMDAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnRlciA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGVsYXlGdW5jdGlvbikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoZGVsYXlGdW5jdGlvbik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgZXhwVGltZSA9IG5ld0V4cFRpbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFwiYWNjZXNzVG9rZW5FeHBpcmF0aW9uXCIsIG5ld0V4cFRpbWUudG9TdHJpbmcoKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5hY2Nlc3NUb2tlblRpbWVySWQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlZnJlc2hBY2Nlc3NUb2tlbigpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZXJyb3IuY29kZSA9PT0gXCJOb3RBdXRob3JpemVkRXhjZXB0aW9uXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b2FzdHIuZXJyb3IoTG9naW5Db25zdGFudC5zZXNzaW9uRXhwaXJlZEVycm9yKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXNzaW9uVGltZW91dCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9LCBjb3VudGVyKTtcclxuICAgICAgICB9LCBleHBUaW1lKTtcclxuICAgIH1cclxuXHJcbiAgICBjb21wdXRlVG9rZW5FeHBpcmF0aW9uKHRva2VuOiBhbnkpIHtcclxuICAgICAgICBsZXQgY3VycmVudFRpbWUgPSBNYXRoLmZsb29yKERhdGUubm93KCkgLyAxMDAwKTtcclxuICAgICAgICBsZXQgdG9rZW5UaW1lID0gdG9rZW4ucGF5bG9hZC5leHA7XHJcbiAgICAgICAgbGV0IGV4cFRpbWUgPSAodG9rZW5UaW1lIC0gY3VycmVudFRpbWUpICogMTAwMDtcclxuICAgICAgICByZXR1cm4gZXhwVGltZTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgZ2V0Q3VycmVudFVzZXJEZXRhaWxzKCkge1xyXG4gICAgICAgIGxldCBwb29sRGF0YSA9IG5ldyBVc2VyUG9vbEluZm9ybWF0aW9uKHRoaXMuY29uc3VtaW5nUHJvamVjdENvbmZpZ1NlcnZpY2UuYW5uYUNvZ25pdG9MaWJyYXJ5Q29uZmlnLmNvZ25pdG8udXNlclBvb2xJZCwgdGhpcy5jb25zdW1pbmdQcm9qZWN0Q29uZmlnU2VydmljZS5hbm5hQ29nbml0b0xpYnJhcnlDb25maWcuY29nbml0by5jbGllbnRJZCk7XHJcbiAgICAgICAgbGV0IHVzZXJQb29sID0gbmV3IENvZ25pdG9Vc2VyUG9vbChwb29sRGF0YSk7XHJcbiAgICAgICAgcmV0dXJuIHVzZXJQb29sLmdldEN1cnJlbnRVc2VyKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0Q29nbml0b1VzZXJEZXRhaWxzKGVtYWlsOiBzdHJpbmcpOiBDb2duaXRvVXNlciB7XHJcbiAgICAgICAgdGhpcy5wb29sRGF0YSA9IG5ldyBVc2VyUG9vbEluZm9ybWF0aW9uKHRoaXMuY29uc3VtaW5nUHJvamVjdENvbmZpZ1NlcnZpY2UuYW5uYUNvZ25pdG9MaWJyYXJ5Q29uZmlnLmNvZ25pdG8udXNlclBvb2xJZCwgdGhpcy5jb25zdW1pbmdQcm9qZWN0Q29uZmlnU2VydmljZS5hbm5hQ29nbml0b0xpYnJhcnlDb25maWcuY29nbml0by5jbGllbnRJZCk7XHJcbiAgICAgICAgdGhpcy51c2VyUG9vbCA9IG5ldyBDb2duaXRvVXNlclBvb2wodGhpcy5wb29sRGF0YSk7XHJcblxyXG4gICAgICAgIGxldCB1c2VyRGF0YSA9IHtcclxuICAgICAgICAgICAgVXNlcm5hbWU6IGVtYWlsLFxyXG4gICAgICAgICAgICBQb29sOiB0aGlzLnVzZXJQb29sLFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgbGV0IGNvZ25pdG9Vc2VyID0gbmV3IENvZ25pdG9Vc2VyKHVzZXJEYXRhKTtcclxuICAgICAgICByZXR1cm4gY29nbml0b1VzZXI7XHJcbiAgICB9XHJcblxyXG4gICAgYXV0aGVudGljYXRlKGVtYWlsOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLmxvZ2luRXJyb3JNZXNzYWdlID0gbnVsbDtcclxuICAgICAgICBsZXQgYXV0aERhdGEgPSBuZXcgQXV0aGVudGljYXRpb25EYXRhKGVtYWlsLCBwYXNzd29yZCk7XHJcbiAgICAgICAgdGhpcy5hdXRoZW50aWNhdGlvbkRldGFpbHMgPSBuZXcgQXV0aGVudGljYXRpb25EZXRhaWxzKGF1dGhEYXRhKTtcclxuXHJcbiAgICAgICAgdGhpcy5jb2duaXRvVXNlciA9IHRoaXMuZ2V0Q29nbml0b1VzZXJEZXRhaWxzKGVtYWlsKTtcclxuICAgICAgICB0aGlzLkNvZ25pdG9BdXRoZW50aWNhdGlvbih0aGlzLmF1dGhlbnRpY2F0aW9uRGV0YWlscyk7XHJcbiAgICB9XHJcblxyXG4gICAgQ29nbml0b0F1dGhlbnRpY2F0aW9uKGF1dGhlbnRpY2F0aW9uRGV0YWlsczogQXV0aGVudGljYXRpb25EZXRhaWxzKSB7XHJcbiAgICAgICAgdGhpcy5jb2duaXRvVXNlci5hdXRoZW50aWNhdGVVc2VyKGF1dGhlbnRpY2F0aW9uRGV0YWlscywge1xyXG4gICAgICAgICAgICBvblN1Y2Nlc3M6IGFzeW5jIChyZXN1bHQpID0+IHtcclxuICAgICAgICAgICAgICAgIGxldCBuZXdFeHBUaW1lID0gdGhpcy5jb21wdXRlVG9rZW5FeHBpcmF0aW9uKHJlc3VsdC5nZXRJZFRva2VuKCkpO1xyXG4gICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXCJhY2Nlc3NUb2tlbkV4cGlyYXRpb25cIiwgbmV3RXhwVGltZS50b1N0cmluZygpKTtcclxuICAgICAgICAgICAgICAgIHRoaXMucmVmcmVzaEFjY2Vzc1Rva2VuKCk7XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0QWxsQ29nbml0b1Rva2VuQW5kR3JvdXBzKHJlc3VsdCk7XHJcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLmNvbnN1bWluZ1Byb2plY3RBdXRoU2VydmljZS5vblN1Y2Nlc3NmdWxBdXRoZW50aWNhdGluZ1VzZXIocmVzdWx0KTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgb25GYWlsdXJlOiAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnN1bWluZ1Byb2plY3RBdXRoU2VydmljZS5pc0xvZ2dpbmdJbiA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgaWYgKGVyci5tZXNzYWdlID09IExvZ2luQ29uc3RhbnQudGVtcFBhc3N3b3JkRXhwaXJ5RXJyb3IpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmxvZ2luRXJyb3JNZXNzYWdlID0gTG9naW5Db25zdGFudC50ZW1wUGFzc3dvcmRPbkV4cGlyeUVycm9yTXNnO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29uc3VtaW5nUHJvamVjdEF1dGhTZXJ2aWNlLnNlbmRSZWdlbmVyYXRpb25FbWFpbCh0aGlzLmF1dGhlbnRpY2F0aW9uRGV0YWlscy5nZXRVc2VybmFtZSgpKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKGVyci5tZXNzYWdlID09PSBcIlBhc3N3b3JkIGF0dGVtcHRzIGV4Y2VlZGVkXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmxvZ2luRXJyb3JNZXNzYWdlID0gTG9naW5Db25zdGFudC5hdHRlbXB0TGltaXRFeGNlZWRlZDtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2dpbkVycm9yTWVzc2FnZSA9IExvZ2luQ29uc3RhbnQudXNlck5hbWVQYXNzd29yZEluY29ycmVjdDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgbmV3UGFzc3dvcmRSZXF1aXJlZDogKGRhdGE6YW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnN1bWluZ1Byb2plY3RBdXRoU2VydmljZS5pc0xvZ2dpbmdJbiA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy51c2VyQXR0cmlidXRlID0gZGF0YTtcclxuICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtMb2dpbkNvbnN0YW50LnNldE5ld1Bhc3N3b3JkVXJsXSk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgXHJcbiAgICBzZXROZXdQYXNzd29yZChuZXdQYXNzd29yZDogYW55KSB7XHJcbiAgICAgICAgZGVsZXRlIHRoaXMudXNlckF0dHJpYnV0ZS5lbWFpbDtcclxuICAgICAgICBkZWxldGUgdGhpcy51c2VyQXR0cmlidXRlLmVtYWlsX3ZlcmlmaWVkO1xyXG4gICAgICAgIGRlbGV0ZSB0aGlzLnVzZXJBdHRyaWJ1dGUucGhvbmVfbnVtYmVyX3ZlcmlmaWVkO1xyXG4gICAgICAgIHRoaXMuY29nbml0b1VzZXIuY29tcGxldGVOZXdQYXNzd29yZENoYWxsZW5nZShuZXdQYXNzd29yZCwgdGhpcy51c2VyQXR0cmlidXRlLCB7XHJcbiAgICAgICAgICAgIG9uU3VjY2VzczogKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW0xvZ2luQ29uc3RhbnQubG9naW5QYWdlVXJsXSk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIG9uRmFpbHVyZTogKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldE5ld1Bhc3N3b3JkRXJyb3JNZXNzYWdlID0gTG9naW5Db25zdGFudC5zZXNzaW9uRXhwaXJlZDtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0TmV3UGFzc3dvcmRCdXR0b25NZXNzYWdlID0gTG9naW5Db25zdGFudC5sb2dpbkFnYWluO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG9uRm9yZ290UGFzc3dvcmRHZW5lcmF0ZU9UUChlbWFpbDogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy51c2VyTmFtZSA9IGVtYWlsO1xyXG4gICAgICAgIHRoaXMuY29nbml0b1VzZXIgPSB0aGlzLmdldENvZ25pdG9Vc2VyRGV0YWlscyhlbWFpbCk7XHJcbiAgICAgICAgdGhpcy5jb2duaXRvVXNlci5mb3Jnb3RQYXNzd29yZCh7XHJcbiAgICAgICAgICAgIG9uU3VjY2VzczogKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy52ZXJpZnlBbmRTZXROZXdQYXNzd29yZE1lc3NhZ2UgPVxyXG4gICAgICAgICAgICAgICAgICAgIExvZ2luQ29uc3RhbnQudmVyaWZ5QW5kU2V0TmV3UGFzc3dvcmRNZXNzYWdlICtcclxuICAgICAgICAgICAgICAgICAgICByZXN1bHQuQ29kZURlbGl2ZXJ5RGV0YWlscy5EZXN0aW5hdGlvbiArXHJcbiAgICAgICAgICAgICAgICAgICAgTG9naW5Db25zdGFudC5wbGVhc2VFbnRlckl0QmVsb3c7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbTG9naW5Db25zdGFudC52ZXJpZnlBbmRTZXROZXdQYXNzd29yZFVybF0pO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBvbkZhaWx1cmU6IChlcnIpID0+IHt9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHZlcmlmeUNvZGUodmVyaWZpY2F0aW9uQ29kZTogc3RyaW5nLCBuZXdQYXNzd29yZDogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5jb2duaXRvVXNlci5jb25maXJtUGFzc3dvcmQodmVyaWZpY2F0aW9uQ29kZSwgbmV3UGFzc3dvcmQsIHtcclxuICAgICAgICAgICAgb25GYWlsdXJlOiAoZXJyb3IpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9PZkF0dGVtcHRzID0gdGhpcy5ub09mQXR0ZW1wdHMgKyAxO1xyXG4gICAgICAgICAgICAgICAgdGhpcy52ZXJpZnlBbmRTZXROZXdQYXNzd29yZEVycm9yTWVzc2FnZSA9IHRoaXMuZm9yZ290UGFzc3dvcmRFcnJvcihlcnJvciwgdGhpcy5ub09mQXR0ZW1wdHMpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5mb3Jnb3RQYXNzd29yZEFuZEdsb2JhbFNpZ25vdXRMb2FkZXIgPSBmYWxzZTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgb25TdWNjZXNzOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmV4cGlyeUFsbEV4aXN0aW5nQ3VycmVudFNlc3Npb24obmV3UGFzc3dvcmQpO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGZvcmdvdFBhc3N3b3JkRXJyb3IoZXJyOiBhbnksIG5vT2ZBdHRlbXB0czogbnVtYmVyKSB7XHJcbiAgICAgICAgbGV0IGVycm9yTWVzc2FnZTtcclxuICAgICAgICBzd2l0Y2ggKGVyci5jb2RlKSB7XHJcbiAgICAgICAgICAgIGNhc2UgXCJMaW1pdEV4Y2VlZGVkRXhjZXB0aW9uXCI6XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlc3Npb25Mb2NrZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gTG9naW5Db25zdGFudC5hdHRlbXB0TGltaXRFeGNlZWRlZDtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFwiRXhwaXJlZENvZGVFeGNlcHRpb25cIjpcclxuICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IExvZ2luQ29uc3RhbnQuc2Vzc2lvbkV4cGlyZWQ7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnZlcmlmeUFuZFNldE5ld1Bhc3N3b3JkQnV0dG9uID0gTG9naW5Db25zdGFudC5yZWdlbmVyYXRlT3RwO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBMb2dpbkNvbnN0YW50LmF0dGVtcHQgKyBcIiBcIiArIG5vT2ZBdHRlbXB0cyArIExvZ2luQ29uc3RhbnQuYXR0ZW1wdE1lc3NhZ2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBlcnJvck1lc3NhZ2U7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0QWxsQ29nbml0b1Rva2VuQW5kR3JvdXBzKHRva2VuOiBDb2duaXRvVXNlclNlc3Npb24pIHtcclxuICAgICAgdGhpcy5hY2Nlc3NUb2tlbiA9IHRva2VuLmdldEFjY2Vzc1Rva2VuKCkuZ2V0Snd0VG9rZW4oKTtcclxuICAgICAgdGhpcy5JZFRva2VuID0gdG9rZW4uZ2V0SWRUb2tlbigpO1xyXG4gICAgICBpZiAoXCJjb2duaXRvOmdyb3Vwc1wiIGluIHRva2VuLmdldEFjY2Vzc1Rva2VuKCkucGF5bG9hZCkge1xyXG4gICAgICAgICAgdGhpcy5hY2xTZXJ2aWNlLnVzZXJHcm91cHNJbkNvZ25pdG9KV1QgPSB0b2tlbi5nZXRBY2Nlc3NUb2tlbigpLnBheWxvYWRbXCJjb2duaXRvOmdyb3Vwc1wiXTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuYWNsU2VydmljZS51c2VyR3JvdXBzSW5Db2duaXRvSldUID0gW107XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBleHBpcnlBbGxFeGlzdGluZ0N1cnJlbnRTZXNzaW9uKG5ld1Bhc3N3b3JkOiBzdHJpbmcpe1xyXG4gICAgICBsZXQgdXNlcm5hbWUgPSAgdGhpcy5jb2duaXRvVXNlci5nZXRVc2VybmFtZSgpO1xyXG4gICAgICB0aGlzLnNldFVzZXJEZXRhaWxzKHVzZXJuYW1lLCBuZXdQYXNzd29yZCk7XHJcbiAgICAgIHRoaXMub25Mb2dpbkluQ29nbnRpb1RvR2V0QWNjZXNzVG9rZW4oKTtcclxuICAgIH1cclxuXHJcbiAgICBzZXRVc2VyRGV0YWlscyh1c2VybmFtZTogc3RyaW5nLCBuZXdQYXNzd29yZDogc3RyaW5nKXtcclxuICAgICAgdGhpcy5sb2dpbkVycm9yTWVzc2FnZSA9IG51bGw7XHJcbiAgICAgIGxldCBhdXRoRGF0YSA9IG5ldyBBdXRoZW50aWNhdGlvbkRhdGEodXNlcm5hbWUsIG5ld1Bhc3N3b3JkKTtcclxuICAgICAgdGhpcy5hdXRoZW50aWNhdGlvbkRldGFpbHMgPSBuZXcgQXV0aGVudGljYXRpb25EZXRhaWxzKGF1dGhEYXRhKTtcclxuICAgICAgdGhpcy5jb2duaXRvVXNlciA9IHRoaXMuZ2V0Q29nbml0b1VzZXJEZXRhaWxzKHVzZXJuYW1lKTtcclxuICAgIH1cclxuXHJcbiAgICBvbkxvZ2luSW5Db2dudGlvVG9HZXRBY2Nlc3NUb2tlbigpe1xyXG4gICAgICB0aGlzLmNvZ25pdG9Vc2VyLmF1dGhlbnRpY2F0ZVVzZXIodGhpcy5hdXRoZW50aWNhdGlvbkRldGFpbHMsIHtcclxuICAgICAgICBvblN1Y2Nlc3M6IGFzeW5jIChyZXN1bHQ6IENvZ25pdG9Vc2VyU2Vzc2lvbikgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmdldEFsbENvZ25pdG9Ub2tlbkFuZEdyb3VwcyhyZXN1bHQpO1xyXG4gICAgICAgICAgICB0aGlzLm9uQ2FsbEdsb2JhbFNpZ25vdXQoKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uRmFpbHVyZTogKGVycikgPT4ge30sXHJcbiAgICAgICAgbmV3UGFzc3dvcmRSZXF1aXJlZDogKGRhdGE6YW55KSA9PiB7fSxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgb25DYWxsR2xvYmFsU2lnbm91dCgpe1xyXG4gICAgICB0aGlzLmNvZ25pdG9Vc2VyLmdsb2JhbFNpZ25PdXQoe1xyXG4gICAgICAgIG9uU3VjY2VzczogKHJlc3VsdCkgPT4gXHJcbiAgICAgICAgeyBcclxuICAgICAgICAgIGNvbnNvbGUubG9nKHJlc3VsdCk7ICAgXHJcbiAgICAgICAgICB0aGlzLmZvcmdvdFBhc3N3b3JkQW5kR2xvYmFsU2lnbm91dExvYWRlciA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW0xvZ2luQ29uc3RhbnQubG9naW5QYWdlVXJsXSk7IFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgb25GYWlsdXJlOiAoZXJyKSA9PiB7fVxyXG4gICAgICB9KTtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,20 @@
1
+ import { Inject, Injectable } from "@angular/core";
2
+ import { CONFIG_SERVICE_TOKEN } from '../config/config-service.token';
3
+ import * as i0 from "@angular/core";
4
+ export class AnnaConfigService {
5
+ constructor(consumingProjectConfigService) {
6
+ this.consumingProjectConfigService = consumingProjectConfigService;
7
+ }
8
+ }
9
+ AnnaConfigService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: AnnaConfigService, deps: [{ token: CONFIG_SERVICE_TOKEN }], target: i0.ɵɵFactoryTarget.Injectable });
10
+ AnnaConfigService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: AnnaConfigService, providedIn: "root" });
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: AnnaConfigService, decorators: [{
12
+ type: Injectable,
13
+ args: [{
14
+ providedIn: "root",
15
+ }]
16
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
17
+ type: Inject,
18
+ args: [CONFIG_SERVICE_TOKEN]
19
+ }] }]; } });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbm5hLWNvZ25pdG8tbGliL3NyYy9saWIvc2VydmljZXMvY29uZmlnLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFrQixvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOztBQUt0RixNQUFNLE9BQU8saUJBQWlCO0lBRTFCLFlBQWlELDZCQUE2QztRQUE3QyxrQ0FBNkIsR0FBN0IsNkJBQTZCLENBQWdCO0lBQUcsQ0FBQzs7OEdBRnpGLGlCQUFpQixrQkFFTixvQkFBb0I7a0hBRi9CLGlCQUFpQixjQUZkLE1BQU07MkZBRVQsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7MEJBR2dCLE1BQU07MkJBQUMsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgSUNvbmZpZ1NlcnZpY2UsIENPTkZJR19TRVJWSUNFX1RPS0VOIH0gZnJvbSAnLi4vY29uZmlnL2NvbmZpZy1zZXJ2aWNlLnRva2VuJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46IFwicm9vdFwiLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQW5uYUNvbmZpZ1NlcnZpY2Uge1xyXG4gICBcclxuICAgIGNvbnN0cnVjdG9yKEBJbmplY3QoQ09ORklHX1NFUlZJQ0VfVE9LRU4pIHB1YmxpYyBjb25zdW1pbmdQcm9qZWN0Q29uZmlnU2VydmljZTogSUNvbmZpZ1NlcnZpY2UpIHt9XHJcblxyXG5cclxufVxyXG4iXX0=
@@ -17,8 +17,10 @@ export * from './lib/services/acl.service';
17
17
  export * from './lib/config/auth-service.token';
18
18
  export * from './lib/config/acl-service.token';
19
19
  export * from './lib/config/library.config';
20
+ export * from './lib/config/config-service.token';
21
+ export * from './lib/services/config.service';
20
22
  //DIRECTIVES
21
23
  export * from './lib/directives/spinner-button';
22
24
  //CONSTANTS
23
25
  export * from './lib/constants/loginConstant';
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2FubmEtY29nbml0by1saWIvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLCtCQUErQixDQUFDO0FBRTlDLGFBQWE7QUFDYixjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsNERBQTRELENBQUM7QUFDM0UsY0FBYyw4REFBOEQsQ0FBQztBQUM3RSxjQUFjLGdFQUFnRSxDQUFDO0FBQy9FLGNBQWMsb0ZBQW9GLENBQUM7QUFDbkcsY0FBYyw0RUFBNEUsQ0FBQztBQUMzRixjQUFjLDhFQUE4RSxDQUFDO0FBQzdGLGNBQWMsb0VBQW9FLENBQUM7QUFFbkYsV0FBVztBQUNYLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyw2QkFBNkIsQ0FBQztBQUU1QyxhQUFhO0FBQ2IsY0FBYyxpQ0FBaUMsQ0FBQztBQUVoRCxZQUFZO0FBQ1osY0FBYywrQkFBK0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBhbm5hLWNvZ25pdG8tbGliXHJcbiAqL1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYW5uYS1jb2duaXRvLWxpYi5tb2R1bGUnO1xyXG5cclxuLy9DT01QT05FTlRTIFxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2xvZ2luL2xvZ2luLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZm9yZ290LXBhc3N3b3JkL2ZvcmdvdC1wYXNzd29yZC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3NldC1uZXctcGFzc3dvcmQvc2V0LW5ldy1wYXNzd29yZC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3Bhc3N3b3JkLW1hdGNoaW5nL3Bhc3N3b3JkLW1hdGNoaW5nLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdmVyaWZ5LWFuZC1zZXQtbmV3LXBhc3N3b3JkL3ZlcmlmeS1hbmQtc2V0LW5ldy1wYXNzd29yZC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3ZlcnNpb24tYW5kLXRlcm0tcG9saWN5L3ZlcnNpb24tYW5kLXRlcm0tcG9saWN5LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvcG93ZXJlZC1ieS1sb2dvLXRlbXBsYXRlL3Bvd2VyZWQtYnktbG9nby10ZW1wbGF0ZS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3N1cmV3YXZlcy15ZWFyLWxvZ28vc3VyZXdhdmVzLXllYXItbG9nby5jb21wb25lbnQnO1xyXG5cclxuLy9TRVJWSUNFUyBcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvYXV0aC5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvYWNsLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb25maWcvYXV0aC1zZXJ2aWNlLnRva2VuJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29uZmlnL2FjbC1zZXJ2aWNlLnRva2VuJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29uZmlnL2xpYnJhcnkuY29uZmlnJztcclxuXHJcbi8vRElSRUNUSVZFUyBcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9zcGlubmVyLWJ1dHRvbic7XHJcblxyXG4vL0NPTlNUQU5UUyBcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29uc3RhbnRzL2xvZ2luQ29uc3RhbnQnO1xyXG5cclxuXHJcbiJdfQ==
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2FubmEtY29nbml0by1saWIvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLCtCQUErQixDQUFDO0FBRTlDLGFBQWE7QUFDYixjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsNERBQTRELENBQUM7QUFDM0UsY0FBYyw4REFBOEQsQ0FBQztBQUM3RSxjQUFjLGdFQUFnRSxDQUFDO0FBQy9FLGNBQWMsb0ZBQW9GLENBQUM7QUFDbkcsY0FBYyw0RUFBNEUsQ0FBQztBQUMzRixjQUFjLDhFQUE4RSxDQUFDO0FBQzdGLGNBQWMsb0VBQW9FLENBQUM7QUFFbkYsV0FBVztBQUNYLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsK0JBQStCLENBQUM7QUFFOUMsYUFBYTtBQUNiLGNBQWMsaUNBQWlDLENBQUM7QUFFaEQsWUFBWTtBQUNaLGNBQWMsK0JBQStCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgYW5uYS1jb2duaXRvLWxpYlxyXG4gKi9cclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FubmEtY29nbml0by1saWIubW9kdWxlJztcclxuXHJcbi8vQ09NUE9ORU5UUyBcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9sb2dpbi9sb2dpbi5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2ZvcmdvdC1wYXNzd29yZC9mb3Jnb3QtcGFzc3dvcmQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9zZXQtbmV3LXBhc3N3b3JkL3NldC1uZXctcGFzc3dvcmQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9wYXNzd29yZC1tYXRjaGluZy9wYXNzd29yZC1tYXRjaGluZy5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3ZlcmlmeS1hbmQtc2V0LW5ldy1wYXNzd29yZC92ZXJpZnktYW5kLXNldC1uZXctcGFzc3dvcmQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy92ZXJzaW9uLWFuZC10ZXJtLXBvbGljeS92ZXJzaW9uLWFuZC10ZXJtLXBvbGljeS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3Bvd2VyZWQtYnktbG9nby10ZW1wbGF0ZS9wb3dlcmVkLWJ5LWxvZ28tdGVtcGxhdGUuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9zdXJld2F2ZXMteWVhci1sb2dvL3N1cmV3YXZlcy15ZWFyLWxvZ28uY29tcG9uZW50JztcclxuXHJcbi8vU0VSVklDRVMgXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2F1dGguc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2FjbC5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29uZmlnL2F1dGgtc2VydmljZS50b2tlbic7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbmZpZy9hY2wtc2VydmljZS50b2tlbic7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbmZpZy9saWJyYXJ5LmNvbmZpZyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbmZpZy9jb25maWctc2VydmljZS50b2tlbic7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2NvbmZpZy5zZXJ2aWNlJztcclxuXHJcbi8vRElSRUNUSVZFUyBcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9zcGlubmVyLWJ1dHRvbic7XHJcblxyXG4vL0NPTlNUQU5UUyBcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29uc3RhbnRzL2xvZ2luQ29uc3RhbnQnO1xyXG5cclxuXHJcbiJdfQ==
@@ -4,8 +4,8 @@ import { __awaiter } from 'tslib';
4
4
  import { CognitoUserPool, CognitoUser, AuthenticationDetails } from 'amazon-cognito-identity-js';
5
5
  import * as i3 from '@angular/router';
6
6
  import { RouterModule } from '@angular/router';
7
- import * as i4 from '@angular/common/http';
8
- import * as i5 from 'ngx-toastr';
7
+ import * as i3$1 from '@angular/common/http';
8
+ import * as i4 from 'ngx-toastr';
9
9
  import * as i2 from '@angular/forms';
10
10
  import { Validators, FormBuilder, FormsModule, ReactiveFormsModule } from '@angular/forms';
11
11
  import * as i9 from '@angular/common';
@@ -90,6 +90,9 @@ class UserState {
90
90
  /** Token to inject the auth service */
91
91
  const AUTH_SERVICE_TOKEN = new InjectionToken('Auth service token');
92
92
 
93
+ /** Token to inject the auth service */
94
+ const CONFIG_SERVICE_TOKEN = new InjectionToken('Cognito config service token');
95
+
93
96
  /** Token to inject the acl service */
94
97
  const ACL_SERVICE_TOKEN = new InjectionToken('ACL service token');
95
98
 
@@ -119,21 +122,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
119
122
  }] }];
120
123
  } });
121
124
 
122
- class LibraryConfig {
123
- constructor() {
124
- this.loginPageLogoImgUrl = '';
125
- this.currentAnnaVersion = '';
126
- }
127
- }
128
-
129
125
  class AnnaLibAuthService {
130
- constructor(router, aclService, libraryConfig, httpClient, toastr, consumingProjectAuthService) {
126
+ constructor(router, aclService,
127
+ // public libraryConfig: LibraryConfig,
128
+ httpClient, toastr, consumingProjectAuthService, consumingProjectConfigService) {
131
129
  this.router = router;
132
130
  this.aclService = aclService;
133
- this.libraryConfig = libraryConfig;
134
131
  this.httpClient = httpClient;
135
132
  this.toastr = toastr;
136
133
  this.consumingProjectAuthService = consumingProjectAuthService;
134
+ this.consumingProjectConfigService = consumingProjectConfigService;
137
135
  this.noOfAttempts = 0;
138
136
  this.sessionLocked = false;
139
137
  if (!consumingProjectAuthService) {
@@ -213,12 +211,12 @@ class AnnaLibAuthService {
213
211
  return expTime;
214
212
  }
215
213
  getCurrentUserDetails() {
216
- let poolData = new UserPoolInformation(this.libraryConfig.cognito.userPoolId, this.libraryConfig.cognito.clientId);
214
+ let poolData = new UserPoolInformation(this.consumingProjectConfigService.annaCognitoLibraryConfig.cognito.userPoolId, this.consumingProjectConfigService.annaCognitoLibraryConfig.cognito.clientId);
217
215
  let userPool = new CognitoUserPool(poolData);
218
216
  return userPool.getCurrentUser();
219
217
  }
220
218
  getCognitoUserDetails(email) {
221
- this.poolData = new UserPoolInformation(this.libraryConfig.cognito.userPoolId, this.libraryConfig.cognito.clientId);
219
+ this.poolData = new UserPoolInformation(this.consumingProjectConfigService.annaCognitoLibraryConfig.cognito.userPoolId, this.consumingProjectConfigService.annaCognitoLibraryConfig.cognito.clientId);
222
220
  this.userPool = new CognitoUserPool(this.poolData);
223
221
  let userData = {
224
222
  Username: email,
@@ -361,7 +359,7 @@ class AnnaLibAuthService {
361
359
  });
362
360
  }
363
361
  }
364
- AnnaLibAuthService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: AnnaLibAuthService, deps: [{ token: i3.Router }, { token: AnnaLibAclService }, { token: LibraryConfig }, { token: i4.HttpClient }, { token: i5.ToastrService }, { token: AUTH_SERVICE_TOKEN }], target: i0.ɵɵFactoryTarget.Injectable });
362
+ AnnaLibAuthService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: AnnaLibAuthService, deps: [{ token: i3.Router }, { token: AnnaLibAclService }, { token: i3$1.HttpClient }, { token: i4.ToastrService }, { token: AUTH_SERVICE_TOKEN }, { token: CONFIG_SERVICE_TOKEN }], target: i0.ɵɵFactoryTarget.Injectable });
365
363
  AnnaLibAuthService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: AnnaLibAuthService, providedIn: "root" });
366
364
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: AnnaLibAuthService, decorators: [{
367
365
  type: Injectable,
@@ -369,12 +367,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
369
367
  providedIn: "root",
370
368
  }]
371
369
  }], ctorParameters: function () {
372
- return [{ type: i3.Router }, { type: AnnaLibAclService }, { type: LibraryConfig }, { type: i4.HttpClient }, { type: i5.ToastrService }, { type: undefined, decorators: [{
370
+ return [{ type: i3.Router }, { type: AnnaLibAclService }, { type: i3$1.HttpClient }, { type: i4.ToastrService }, { type: undefined, decorators: [{
373
371
  type: Inject,
374
372
  args: [AUTH_SERVICE_TOKEN]
373
+ }] }, { type: undefined, decorators: [{
374
+ type: Inject,
375
+ args: [CONFIG_SERVICE_TOKEN]
375
376
  }] }];
376
377
  } });
377
378
 
379
+ class LibraryConfig {
380
+ constructor() {
381
+ this.loginPageLogoImgUrl = '';
382
+ this.currentAnnaVersion = '';
383
+ }
384
+ }
385
+
378
386
  class PoweredByLogoTemplateComponent {
379
387
  constructor() { }
380
388
  ngOnInit() {
@@ -693,12 +701,12 @@ class ForgotPasswordComponent {
693
701
  }
694
702
  }
695
703
  }
696
- ForgotPasswordComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: ForgotPasswordComponent, deps: [{ token: AnnaLibAuthService }, { token: i2.FormBuilder }, { token: i5.ToastrService }, { token: i3.Router }, { token: LibraryConfig }], target: i0.ɵɵFactoryTarget.Component });
704
+ ForgotPasswordComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: ForgotPasswordComponent, deps: [{ token: AnnaLibAuthService }, { token: i2.FormBuilder }, { token: i4.ToastrService }, { token: i3.Router }, { token: LibraryConfig }], target: i0.ɵɵFactoryTarget.Component });
697
705
  ForgotPasswordComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: ForgotPasswordComponent, selector: "anna-cognito-lib-forgot-password", ngImport: i0, template: "<div class=\"main\">\r\n <section>\r\n <header>\r\n <img [src]=\"libraryConfig.loginPageLogoImgUrl\" alt=\"Anna Logo\" />\r\n </header>\r\n <article>\r\n <form [formGroup]=\"verifyRegisteredEmail\">\r\n <ng-container *ngIf=\"!infoMessageToRedirectLogin\">\r\n <div id=\"heading\">\r\n {{ constants.forgotPasswordHeading }}\r\n </div>\r\n <p>\r\n {{ constants.forgotPasswordMessage }}\r\n </p>\r\n </ng-container>\r\n <div id=\"alert-div\" *ngIf=\"errorMessage\">\r\n <span class=\"material-icons\">report</span>\r\n <p id=\"alert-msg\">{{ errorMessage }}</p>\r\n </div>\r\n <div id=\"info-div\" *ngIf=\"infoMessageToRedirectLogin\">\r\n <i class=\"mi mdi-info\"></i>\r\n <p>{{ infoMessageToRedirectLogin }}</p>\r\n </div>\r\n\r\n <input *ngIf=\"!infoMessageToRedirectLogin\"\r\n type=\"text\"\r\n tabindex=\"1\"\r\n formControlName=\"email\"\r\n [placeholder]=\"constants.enterEmail\"\r\n [ngClass]=\"{\r\n 'input-invalid': verifyRegisteredEmail.get('email')?.dirty && verifyRegisteredEmail.get('email')?.errors\r\n }\"\r\n />\r\n\r\n <button\r\n tabindex=\"2\"\r\n type=\"submit\"\r\n class=\"login-btn\"\r\n [anna-cognito-lib-SpinnerButton]=\"isLoading\"\r\n (click)=\"onLoginOrGetOtpButtonClick()\"\r\n [spinnerButtonText]=\"infoMessageToRedirectLogin ? constants.login : constants.forgotPasswordButton\"\r\n ></button>\r\n </form>\r\n </article>\r\n <footer>\r\n <anna-cognito-lib-powered-by-logo-template>\r\n </anna-cognito-lib-powered-by-logo-template>\r\n </footer>\r\n </section>\r\n</div>\r\n\r\n<div class=\"page-footer\">\r\n <anna-cognito-lib-surewaves-year-logo></anna-cognito-lib-surewaves-year-logo>\r\n <anna-cognito-lib-version-and-term-policy></anna-cognito-lib-version-and-term-policy>\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: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 #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 .mdi-info{color:#268bff;font-size:1rem}#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}#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;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}: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"], components: [{ type: PoweredByLogoTemplateComponent, selector: "anna-cognito-lib-powered-by-logo-template" }, { type: SurewavesYearLogoComponent, selector: "anna-cognito-lib-surewaves-year-logo" }, { type: VersionAndTermPolicyComponent, selector: "anna-cognito-lib-version-and-term-policy" }], directives: [{ 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: i9.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"] }, { type: i9.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: SpinnerButtonDirective, selector: "[anna-cognito-lib-SpinnerButton]", inputs: ["anna-cognito-lib-SpinnerButton", "spinnerButtonText"] }] });
698
706
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: ForgotPasswordComponent, decorators: [{
699
707
  type: Component,
700
708
  args: [{ selector: 'anna-cognito-lib-forgot-password', template: "<div class=\"main\">\r\n <section>\r\n <header>\r\n <img [src]=\"libraryConfig.loginPageLogoImgUrl\" alt=\"Anna Logo\" />\r\n </header>\r\n <article>\r\n <form [formGroup]=\"verifyRegisteredEmail\">\r\n <ng-container *ngIf=\"!infoMessageToRedirectLogin\">\r\n <div id=\"heading\">\r\n {{ constants.forgotPasswordHeading }}\r\n </div>\r\n <p>\r\n {{ constants.forgotPasswordMessage }}\r\n </p>\r\n </ng-container>\r\n <div id=\"alert-div\" *ngIf=\"errorMessage\">\r\n <span class=\"material-icons\">report</span>\r\n <p id=\"alert-msg\">{{ errorMessage }}</p>\r\n </div>\r\n <div id=\"info-div\" *ngIf=\"infoMessageToRedirectLogin\">\r\n <i class=\"mi mdi-info\"></i>\r\n <p>{{ infoMessageToRedirectLogin }}</p>\r\n </div>\r\n\r\n <input *ngIf=\"!infoMessageToRedirectLogin\"\r\n type=\"text\"\r\n tabindex=\"1\"\r\n formControlName=\"email\"\r\n [placeholder]=\"constants.enterEmail\"\r\n [ngClass]=\"{\r\n 'input-invalid': verifyRegisteredEmail.get('email')?.dirty && verifyRegisteredEmail.get('email')?.errors\r\n }\"\r\n />\r\n\r\n <button\r\n tabindex=\"2\"\r\n type=\"submit\"\r\n class=\"login-btn\"\r\n [anna-cognito-lib-SpinnerButton]=\"isLoading\"\r\n (click)=\"onLoginOrGetOtpButtonClick()\"\r\n [spinnerButtonText]=\"infoMessageToRedirectLogin ? constants.login : constants.forgotPasswordButton\"\r\n ></button>\r\n </form>\r\n </article>\r\n <footer>\r\n <anna-cognito-lib-powered-by-logo-template>\r\n </anna-cognito-lib-powered-by-logo-template>\r\n </footer>\r\n </section>\r\n</div>\r\n\r\n<div class=\"page-footer\">\r\n <anna-cognito-lib-surewaves-year-logo></anna-cognito-lib-surewaves-year-logo>\r\n <anna-cognito-lib-version-and-term-policy></anna-cognito-lib-version-and-term-policy>\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: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 #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 .mdi-info{color:#268bff;font-size:1rem}#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}#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;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}: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"] }]
701
- }], ctorParameters: function () { return [{ type: AnnaLibAuthService }, { type: i2.FormBuilder }, { type: i5.ToastrService }, { type: i3.Router }, { type: LibraryConfig }]; } });
709
+ }], ctorParameters: function () { return [{ type: AnnaLibAuthService }, { type: i2.FormBuilder }, { type: i4.ToastrService }, { type: i3.Router }, { type: LibraryConfig }]; } });
702
710
 
703
711
  // Angular import statements
704
712
  class VerifyAndSetNewPasswordComponent {
@@ -832,6 +840,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
832
840
  }]
833
841
  }] });
834
842
 
843
+ class AnnaConfigService {
844
+ constructor(consumingProjectConfigService) {
845
+ this.consumingProjectConfigService = consumingProjectConfigService;
846
+ }
847
+ }
848
+ AnnaConfigService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: AnnaConfigService, deps: [{ token: CONFIG_SERVICE_TOKEN }], target: i0.ɵɵFactoryTarget.Injectable });
849
+ AnnaConfigService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: AnnaConfigService, providedIn: "root" });
850
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: AnnaConfigService, decorators: [{
851
+ type: Injectable,
852
+ args: [{
853
+ providedIn: "root",
854
+ }]
855
+ }], ctorParameters: function () {
856
+ return [{ type: undefined, decorators: [{
857
+ type: Inject,
858
+ args: [CONFIG_SERVICE_TOKEN]
859
+ }] }];
860
+ } });
861
+
835
862
  /*
836
863
  * Public API Surface of anna-cognito-lib
837
864
  */
@@ -840,5 +867,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
840
867
  * Generated bundle index. Do not edit.
841
868
  */
842
869
 
843
- export { ACL_SERVICE_TOKEN, AUTH_SERVICE_TOKEN, AnnaCognitoLibModule, AnnaLibAclService, AnnaLibAuthService, ForgotPasswordComponent, LibraryConfig, LoginComponent, LoginConstant, PasswordMatchingComponent, PoweredByLogoTemplateComponent, SetNewPasswordComponent, SpinnerButtonDirective, SurewavesYearLogoComponent, VerifyAndSetNewPasswordComponent, VersionAndTermPolicyComponent };
870
+ export { ACL_SERVICE_TOKEN, AUTH_SERVICE_TOKEN, AnnaCognitoLibModule, AnnaConfigService, AnnaLibAclService, AnnaLibAuthService, CONFIG_SERVICE_TOKEN, ForgotPasswordComponent, LibraryConfig, LoginComponent, LoginConstant, PasswordMatchingComponent, PoweredByLogoTemplateComponent, SetNewPasswordComponent, SpinnerButtonDirective, SurewavesYearLogoComponent, VerifyAndSetNewPasswordComponent, VersionAndTermPolicyComponent };
844
871
  //# sourceMappingURL=annalib-anna-cognito-lib.mjs.map