@falcon-ng/tailwind 0.0.9 → 0.0.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,3 +1,3 @@
1
1
  export class EnvironmentViewModel {
2
2
  }
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZmFsY29uLW5nL3RhaWx3aW5kL3NyYy9saWIvbW9kZWwvZW52aXJvbm1lbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBZ0Isb0JBQW9CO0NBS3pDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGFic3RyYWN0IGNsYXNzIEVudmlyb25tZW50Vmlld01vZGVsIHtcbiAgICBhYnN0cmFjdCByZWFkb25seSBwcm9kdWN0aW9uOiBib29sZWFuO1xuICAgIGFic3RyYWN0IHJlYWRvbmx5IG9wZW5JRD86IElPcGVuSWRWaWV3TW9kZWw7XG4gICAgYWJzdHJhY3QgcmVhZG9ubHkgYmFzZVVybD86IHN0cmluZztcbiAgICBhYnN0cmFjdCByZWFkb25seSBzbmFja0JhckVuYWJsZT86IGJvb2xlYW5cbn1cblxuXG4vKipcbiAqIEBkZXNjcmlwdGlvblxuICogSW50ZXJmYWNlIHVzZSBmb3IgYW4gYXBwIHNldHRpbmcgY29uZmlndXJhdGlvbiBmb3IgT3BlbiBJZCBDbGllbnQgc2V0dGluZy5cbiAqL1xuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIElPcGVuSWRWaWV3TW9kZWwge1xuICAgIGF1dGhvcml0eT86IHN0cmluZztcbiAgICBjbGllbnRfaWQ/OiBzdHJpbmc7XG4gICAgcmVkaXJlY3RfdXJpPzogc3RyaW5nO1xuICAgIHJlc3BvbnNlX3R5cGU/OiBzdHJpbmc7XG4gICAgc2NvcGU/OiBzdHJpbmc7XG4gICAgc2lsZW50X3JlZGlyZWN0X3VyaT86IHN0cmluZztcbiAgICBwb3N0X2xvZ291dF9yZWRpcmVjdF91cmk/OiBzdHJpbmc7XG4gICAgZmlsdGVyUHJvdG9jb2xDbGFpbXM/OiBib29sZWFuXG4gICAgbG9hZFVzZXJJbmZvPzogYm9vbGVhblxuICAgIGF1dG9tYXRpY1NpbGVudFJlbmV3PzogYm9vbGVhbjtcbiAgICBtb25pdG9yU2Vzc2lvbj86IGJvb2xlYW47XG4gICAgYWNjZXNzVG9rZW5FeHBpcmluZ05vdGlmaWNhdGlvblRpbWU/OiBudW1iZXI7XG4gICAgY2hlY2tTZXNzaW9uSW50ZXJ2YWw/OiBudW1iZXI7XG4gICAgc2lsZW50UmVxdWVzdFRpbWVvdXQ/OiBudW1iZXI7XG59Il19
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZmFsY29uLW5nL3RhaWx3aW5kL3NyYy9saWIvbW9kZWwvZW52aXJvbm1lbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBZ0Isb0JBQW9CO0NBS3pDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGFic3RyYWN0IGNsYXNzIEVudmlyb25tZW50Vmlld01vZGVsIHtcbiAgYWJzdHJhY3QgcmVhZG9ubHkgcHJvZHVjdGlvbjogYm9vbGVhbjtcbiAgYWJzdHJhY3QgcmVhZG9ubHkgb3BlbklEPzogSU9wZW5JZFZpZXdNb2RlbDtcbiAgYWJzdHJhY3QgcmVhZG9ubHkgYmFzZVVybD86IHN0cmluZztcbiAgYWJzdHJhY3QgcmVhZG9ubHkgc25hY2tCYXJFbmFibGU/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvblxuICogSW50ZXJmYWNlIHVzZSBmb3IgYW4gYXBwIHNldHRpbmcgY29uZmlndXJhdGlvbiBmb3IgT3BlbiBJZCBDbGllbnQgc2V0dGluZy5cbiAqL1xuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIElPcGVuSWRWaWV3TW9kZWwge1xuICBhdXRob3JpdHk/OiBzdHJpbmc7XG4gIGNsaWVudF9pZD86IHN0cmluZztcbiAgcmVkaXJlY3RfdXJpPzogc3RyaW5nO1xuICByZXNwb25zZV90eXBlPzogc3RyaW5nO1xuICBzY29wZT86IHN0cmluZztcbiAgc2lsZW50X3JlZGlyZWN0X3VyaT86IHN0cmluZztcbiAgcG9zdF9sb2dvdXRfcmVkaXJlY3RfdXJpPzogc3RyaW5nO1xuICBmaWx0ZXJQcm90b2NvbENsYWltcz86IGJvb2xlYW47XG4gIGxvYWRVc2VySW5mbz86IGJvb2xlYW47XG4gIGF1dG9tYXRpY1NpbGVudFJlbmV3PzogYm9vbGVhbjtcbiAgbW9uaXRvclNlc3Npb24/OiBib29sZWFuO1xuICBhY2Nlc3NUb2tlbkV4cGlyaW5nTm90aWZpY2F0aW9uVGltZT86IG51bWJlcjtcbiAgY2hlY2tTZXNzaW9uSW50ZXJ2YWw/OiBudW1iZXI7XG4gIHNpbGVudFJlcXVlc3RUaW1lb3V0PzogbnVtYmVyO1xufVxuIl19
@@ -1,11 +1,11 @@
1
1
  import { Injectable } from '@angular/core';
2
- import { UserManager } from 'oidc-client';
2
+ import { UserManager, } from 'oidc-client-ts';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "../logger.service";
5
5
  import * as i2 from "./TokenHelperService";
6
6
  export class AuthService {
7
- static { this.USER_LOADED_EVENT = "USER_LOADED"; }
8
- static { this.USER_UNLOADED_EVENT = "USER_UNLOADED"; }
7
+ static { this.USER_LOADED_EVENT = 'USER_LOADED'; }
8
+ static { this.USER_UNLOADED_EVENT = 'USER_UNLOADED'; }
9
9
  constructor(logger, tokenHelperService) {
10
10
  this.logger = logger;
11
11
  this.tokenHelperService = tokenHelperService;
@@ -21,29 +21,29 @@ export class AuthService {
21
21
  this.user = user;
22
22
  });
23
23
  this.userManager.events.addAccessTokenExpiring(() => {
24
- this.logger.info("IdSvr token expiring " + new Date().toLocaleString());
24
+ this.logger.info('IdSvr token expiring ' + new Date().toLocaleString());
25
25
  });
26
26
  this.userManager.events.addAccessTokenExpired(() => {
27
- this.logger.info("IdSvr token expired " + new Date().toLocaleString());
27
+ this.logger.info('IdSvr token expired ' + new Date().toLocaleString());
28
28
  this.logout(false);
29
29
  });
30
30
  this.userManager.events.addSilentRenewError(e => {
31
- this.logger.error("IdSvr silent renew error " + e.message + new Date().toLocaleString());
31
+ this.logger.error('IdSvr silent renew error ' + e.message + new Date().toLocaleString());
32
32
  this.logout(false);
33
33
  });
34
34
  this.userManager.events.addUserLoaded(user => {
35
- this.logger.info("IdSvr user session is ready " + new Date().toLocaleString());
35
+ this.logger.info('IdSvr user session is ready ' + new Date().toLocaleString());
36
36
  this.accessToken = this.tokenHelperService.getPayloadFromToken(user.access_token, false);
37
37
  this.user = user;
38
38
  });
39
39
  this.userManager.events.addUserUnloaded(() => {
40
- this.logger.info("IdSvr user session has ended " + new Date().toLocaleString());
40
+ this.logger.info('IdSvr user session has ended ' + new Date().toLocaleString());
41
41
  if (!this.signingOut) {
42
42
  this.startAuthentication(window.location.pathname + window.location.search);
43
43
  }
44
44
  });
45
45
  this.userManager.events.addUserSignedOut(() => {
46
- this.logger.info("IdSvr user signed out " + new Date().toLocaleString());
46
+ this.logger.info('IdSvr user signed out ' + new Date().toLocaleString());
47
47
  this.logout(false);
48
48
  });
49
49
  this.user = await this.userManager.getUser();
@@ -67,29 +67,17 @@ export class AuthService {
67
67
  return '';
68
68
  }
69
69
  getAccessToken() {
70
- return this.accessToken || this.tokenHelperService.getPayloadFromToken(this.user.access_token, false);
71
- ;
70
+ return (this.accessToken ||
71
+ this.tokenHelperService.getPayloadFromToken(this.user.access_token, false));
72
72
  }
73
73
  async startAuthentication(returnUrl) {
74
- this.logger.info("[AuthService] startAuthentication", returnUrl);
74
+ this.logger.info('[AuthService] startAuthentication', returnUrl);
75
75
  await this.userManager.clearStaleState();
76
- await this.userManager.signinRedirect({ data: { returnUrl: returnUrl } }).catch(err => {
77
- //this.$log.debug("IdSvr sign in failed", err);
76
+ await this.userManager.signinRedirect().catch(err => {
77
+ //this.log.debug("IdSvr sign in failed", err);
78
78
  return err;
79
79
  });
80
80
  }
81
- async completeAuthentication() {
82
- this.logger.info("[AuthService] completeAuthentication");
83
- let user = await new Promise((resolve, reject) => {
84
- this.userManager.signinRedirectCallback().then(user => {
85
- resolve(user);
86
- }).catch(error => {
87
- reject(error);
88
- });
89
- });
90
- this.user = user;
91
- return this.user;
92
- }
93
81
  login() {
94
82
  return this.userManager.signinRedirect();
95
83
  }
@@ -116,19 +104,19 @@ export class AuthService {
116
104
  monitorSession: true,
117
105
  silent_redirect_uri: environment?.openID?.silent_redirect_uri,
118
106
  automaticSilentRenew: environment?.openID?.automaticSilentRenew,
119
- accessTokenExpiringNotificationTime: 20,
120
- checkSessionInterval: 2000,
121
- silentRequestTimeout: 20000,
107
+ accessTokenExpiringNotificationTimeInSeconds: 2,
108
+ checkSessionIntervalInSeconds: 2,
109
+ silentRequestTimeoutInSeconds: 2,
122
110
  };
123
111
  }
124
112
  async isServiceReady() {
125
113
  return new Promise(async (resolve, reject) => {
126
114
  if (this.initialized) {
127
- this.logger.info("[AuthService] isServiceReady", true);
115
+ this.logger.info('[AuthService] isServiceReady', true);
128
116
  resolve(true);
129
117
  }
130
118
  else {
131
- this.logger.info("[AuthService] isServiceReady", false);
119
+ this.logger.info('[AuthService] isServiceReady', false);
132
120
  reject(false);
133
121
  }
134
122
  });
@@ -139,7 +127,7 @@ export class AuthService {
139
127
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: AuthService, decorators: [{
140
128
  type: Injectable,
141
129
  args: [{
142
- providedIn: 'root'
130
+ providedIn: 'root',
143
131
  }]
144
132
  }], ctorParameters: () => [{ type: i1.LoggerService }, { type: i2.TokenHelperService }] });
145
133
  export function authServiceFactory(authService, appSettings, environment) {
@@ -150,5 +138,4 @@ export function authServiceFactory(authService, appSettings, environment) {
150
138
  });
151
139
  };
152
140
  }
153
- ;
154
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZmFsY29uLW5nL3RhaWx3aW5kL3NyYy9saWIvc2VydmljZS9vcGVuLWlkL2F1dGguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBZ0IsV0FBVyxFQUFzQixNQUFNLGFBQWEsQ0FBQzs7OztBQVM1RSxNQUFNLE9BQU8sV0FBVzthQUNmLHNCQUFpQixHQUFHLGFBQWEsQUFBaEIsQ0FBaUI7YUFDbEMsd0JBQW1CLEdBQUcsZUFBZSxBQUFsQixDQUFtQjtJQVU3QyxZQUFvQixNQUFxQixFQUFVLGtCQUFzQztRQUFyRSxXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQVUsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQVJqRixnQkFBVyxHQUFZLEtBQUssQ0FBQztRQU03QixlQUFVLEdBQVksS0FBSyxDQUFDO0lBSXBDLENBQUM7SUFFRCxLQUFLLENBQUMsVUFBVSxDQUFDLFdBQWlDO1FBQ2hELElBQUksSUFBSSxDQUFDLFdBQVc7WUFBRSxPQUFPO1FBQzdCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUMzQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNuQixDQUFDLENBQUMsQ0FBQztRQUdILElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLHNCQUFzQixDQUFDLEdBQUcsRUFBRTtZQUNsRCxJQUFJLENBQUMsTUFBTSxD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LEVBQUU7WUFDdkMsb0JBQW9CLEVBQUUsSUFBSTtZQUMxQixvQkFBb0IsRUFBRSxLQUFLO1NBQzVCLENBQUM7SUFDSixDQUFDO0lBRUQsS0FBSyxDQUFDLGNBQWM7UUFDbEIsT0FBTyxJQUFJLE9BQU8sQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQzNDLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFDcEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsOEJBQThCLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQ3ZELE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNmO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLDhCQUE4QixFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUN4RCxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDZjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0E5SlUsV0FBVztrSEFBWCxXQUFXLGNBRlYsTUFBTTs7MkZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7O0FBa0tELE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxXQUF3QixFQUFFLFdBQThCLEVBQUUsV0FBaUM7SUFDNUgsT0FBTyxLQUFLLElBQUksRUFBRTtRQUNoQixXQUFXLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUMxQyxJQUFJLElBQUk7Z0JBQ04sV0FBVyxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN4QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQTtBQUNILENBQUM7QUFBQSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7UHJvZmlsZSwgVXNlciwgVXNlck1hbmFnZXIsIFVzZXJNYW5hZ2VyU2V0dGluZ3N9IGZyb20gJ29pZGMtY2xpZW50JztcbmltcG9ydCB7TG9nZ2VyU2VydmljZX0gZnJvbSAnLi4vbG9nZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHtUb2tlbkhlbHBlclNlcnZpY2V9IGZyb20gJy4vVG9rZW5IZWxwZXJTZXJ2aWNlJztcbmltcG9ydCB7RW52aXJvbm1lbnRWaWV3TW9kZWx9IGZyb20gXCIuLi8uLi9tb2RlbC9lbnZpcm9ubWVudHNcIjtcbmltcG9ydCB7QXBwU2V0dGluZ1NlcnZpY2V9IGZyb20gXCIuLi9hcHBzZXR0aW5nLnNlcnZpY2VcIjtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQXV0aFNlcnZpY2Uge1xuICBzdGF0aWMgVVNFUl9MT0FERURfRVZFTlQgPSBcIlVTRVJfTE9BREVEXCI7XG4gIHN0YXRpYyBVU0VSX1VOTE9BREVEX0VWRU5UID0gXCJVU0VSX1VOTE9BREVEXCI7XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplZDogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIHVzZXJNYW5hZ2VyITogVXNlck1hbmFnZXI7XG4gIHByaXZhdGUgdXNlcjogYW55O1xuICBwdWJsaWMgc2V0dGluZ3MhOiBVc2VyTWFuYWdlclNldHRpbmdzO1xuXG4gIHByaXZhdGUgYWNjZXNzVG9rZW4hOiBPYmplY3Q7XG4gIHByaXZhdGUgc2lnbmluZ091dDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbG9nZ2VyOiBMb2dnZXJTZXJ2aWNlLCBwcml2YXRlIHRva2VuSGVscGVyU2VydmljZTogVG9rZW5IZWxwZXJTZXJ2aWNlKSB7XG5cbiAgfVxuXG4gIGFzeW5jIGluaXRpYWxpemUoZW52aXJvbm1lbnQ6IEVudmlyb25tZW50Vmlld01vZGVsKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQpIHJldHVybjtcbiAgICB0aGlzLnNldHRpbmdzID0gdGhpcy5nZXRDbGllbnRTZXR0aW5ncyhlbnZpcm9ubWVudCk7XG4gICAgdGhpcy51c2VyTWFuYWdlciA9IG5ldyBVc2VyTWFuYWdlcih0aGlzLnNldHRpbmdzKTtcbiAgICB0aGlzLnVzZXJNYW5hZ2VyLmV2ZW50cy5hZGRVc2VyTG9hZGVkKHVzZXIgPT4ge1xuICAgICAgdGhpcy51c2VyID0gdXNlcjtcbiAgICB9KTtcblxuXG4gICAgdGhpcy51c2VyTWFuYWdlci5ldmVudHMuYWRkQWNjZXNzVG9rZW5FeHBpcmluZygoKSA9PiB7XG4gICAgICB0aGlzLmxvZ2dlci5pbmZvKFwiSWRTdnIgdG9rZW4gZXhwaXJpbmcgXCIgKyBuZXcgRGF0ZSgpLnRvTG9jYWxlU3RyaW5nKCkpO1xuICAgIH0pO1xuXG4gICAgdGhpcy51c2VyTWFuYWdlci5ldmVudHMuYWRkQWNjZXNzVG9rZW5FeHBpcmVkKCgpID0+IHtcbiAgICAgIHRoaXMubG9nZ2VyLmluZm8oXCJJZFN2ciB0b2tlbiBleHBpcmVkIFwiICsgbmV3IERhdGUoKS50b0xvY2FsZVN0cmluZygpKTtcbiAgICAgIHRoaXMubG9nb3V0KGZhbHNlKTtcbiAgICB9KTtcblxuICAgIHRoaXMudXNlck1hbmFnZXIuZXZlbnRzLmFkZFNpbGVudFJlbmV3RXJyb3IoZSA9PiB7XG4gICAgICB0aGlzLmxvZ2dlci5lcnJvcihcIklkU3ZyIHNpbGVudCByZW5ldyBlcnJvciBcIiArIGUubWVzc2FnZSArIG5ldyBEYXRlKCkudG9Mb2NhbGVTdHJpbmcoKSk7XG4gICAgICB0aGlzLmxvZ291dChmYWxzZSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnVzZXJNYW5hZ2VyLmV2ZW50cy5hZGRVc2VyTG9hZGVkKHVzZXIgPT4ge1xuICAgICAgdGhpcy5sb2dnZXIuaW5mbyhcIklkU3ZyIHVzZXIgc2Vzc2lvbiBpcyByZWFkeSBcIiArIG5ldyBEYXRlKCkudG9Mb2NhbGVTdHJpbmcoKSk7XG4gICAgICB0aGlzLmFjY2Vzc1Rva2VuID0gdGhpcy50b2tlbkhlbHBlclNlcnZpY2UuZ2V0UGF5bG9hZEZyb21Ub2tlbih1c2VyLmFjY2Vzc190b2tlbiwgZmFsc2UpO1xuICAgICAgdGhpcy51c2VyID0gdXNlcjtcbiAgICB9KTtcblxuICAgIHRoaXMudXNlck1hbmFnZXIuZXZlbnRzLmFkZFVzZXJVbmxvYWRlZCgoKSA9PiB7XG4gICAgICB0aGlzLmxvZ2dlci5pbmZvKFwiSWRTdnIgdXNlciBzZXNzaW9uIGhhcyBlbmRlZCBcIiArIG5ldyBEYXRlKCkudG9Mb2NhbGVTdHJpbmcoKSk7XG5cbiAgICAgIGlmICghdGhpcy5zaWduaW5nT3V0KSB7XG4gICAgICAgIHRoaXMuc3RhcnRBdXRoZW50aWNhdGlvbih3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUgKyB3aW5kb3cubG9jYXRpb24uc2VhcmNoKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMudXNlck1hbmFnZXIuZXZlbnRzLmFkZFVzZXJTaWduZWRPdXQoKCkgPT4ge1xuICAgICAgdGhpcy5sb2dnZXIuaW5mbyhcIklkU3ZyIHVzZXIgc2lnbmVkIG91dCBcIiArIG5ldyBEYXRlKCkudG9Mb2NhbGVTdHJpbmcoKSk7XG4gICAgICB0aGlzLmxvZ291dChmYWxzZSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnVzZXIgPSBhd2FpdCB0aGlzLnVzZXJNYW5hZ2VyLmdldFVzZXIoKTtcbiAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTtcbiAgfVxuXG4gIHB1YmxpYyBpc0xvZ2dlZEluKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnVzZXIgIT0gbnVsbCAmJiAhdGhpcy51c2VyLmV4cGlyZWQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0VXNlcigpOiBQcm9taXNlPFVzZXIgfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMudXNlck1hbmFnZXIuZ2V0VXNlcigpO1xuICB9XG5cbiAgcHVibGljIGdldFByb2ZpbGUoKTogUHJvZmlsZSB7XG4gICAgcmV0dXJuIHRoaXMudXNlci5wcm9maWxlO1xuICB9XG5cbiAgcHVibGljIGdldENsYWltcygpOiBQcm9maWxlIHtcbiAgICByZXR1cm4gdGhpcy51c2VyLnByb2ZpbGU7XG4gIH1cblxuICBwdWJsaWMgZ2V0QXV0aG9yaXphdGlvbkhlYWRlclZhbHVlKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMudXNlciAhPSBudWxsKVxuICAgICAgcmV0dXJuIGAke3RoaXMudXNlci50b2tlbl90eXBlfSAke3RoaXMudXNlci5hY2Nlc3NfdG9rZW59YDtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBnZXRBY2Nlc3NUb2tlbigpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLmFjY2Vzc1Rva2VuIHx8IHRoaXMudG9rZW5IZWxwZXJTZXJ2aWNlLmdldFBheWxvYWRGcm9tVG9rZW4odGhpcy51c2VyLmFjY2Vzc190b2tlbiwgZmFsc2UpO1xuICAgIDtcbiAgfVxuXG4gIGFzeW5jIHN0YXJ0QXV0aGVudGljYXRpb24ocmV0dXJuVXJsOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmxvZ2dlci5pbmZvKFwiW0F1dGhTZXJ2aWNlXSBzdGFydEF1dGhlbnRpY2F0aW9uXCIsIHJldHVyblVybCk7XG4gICAgYXdhaXQgdGhpcy51c2VyTWFuYWdlci5jbGVhclN0YWxlU3RhdGUoKTtcbiAgICBhd2FpdCB0aGlzLnVzZXJNYW5hZ2VyLnNpZ25pblJlZGlyZWN0KHtkYXRhOiB7cmV0dXJuVXJsOiByZXR1cm5Vcmx9fSkuY2F0Y2goZXJyID0+IHtcbiAgICAgIC8vdGhpcy4kbG9nLmRlYnVnKFwiSWRTdnIgc2lnbiBpbiBmYWlsZWRcIiwgZXJyKTtcbiAgICAgIHJldHVybiBlcnI7XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBjb21wbGV0ZUF1dGhlbnRpY2F0aW9uKCk6IFByb21pc2U8T2lkYy5Vc2VyPiB7XG4gICAgdGhpcy5sb2dnZXIuaW5mbyhcIltBdXRoU2VydmljZV0gY29tcGxldGVBdXRoZW50aWNhdGlvblwiKTtcbiAgICBsZXQgdXNlciA9IGF3YWl0IG5ldyBQcm9taXNlPE9pZGMuVXNlcj4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdGhpcy51c2VyTWFuYWdlci5zaWduaW5SZWRpcmVjdENhbGxiYWNrKCkudGhlbih1c2VyID0+IHtcbiAgICAgICAgcmVzb2x2ZSh1c2VyKVxuICAgICAgfSkuY2F0Y2goZXJyb3IgPT4ge1xuICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gICAgdGhpcy51c2VyID0gdXNlcjtcbiAgICByZXR1cm4gdGhpcy51c2VyO1xuICB9XG5cbiAgcHVibGljIGxvZ2luKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLnVzZXJNYW5hZ2VyLnNpZ25pblJlZGlyZWN0KCk7XG4gIH1cblxuICBwdWJsaWMgcmVuZXdUb2tlbigpOiBQcm9taXNlPFVzZXI+IHtcbiAgICByZXR1cm4gdGhpcy51c2VyTWFuYWdlci5zaWduaW5TaWxlbnQoKTtcbiAgfVxuXG4gIHB1YmxpYyBsb2dvdXQoc2lnbm91dFJlZGlyZWN0PzogYm9vbGVhbik6IFByb21pc2U8dm9pZD4ge1xuXG4gICAgaWYgKHNpZ25vdXRSZWRpcmVjdCA9PT0gdW5kZWZpbmVkIHx8IHNpZ25vdXRSZWRpcmVjdCAhPT0gZmFsc2UpIHtcbiAgICAgIHRoaXMuc2lnbmluZ091dCA9IHRydWU7XG4gICAgICBzaWdub3V0UmVkaXJlY3QgPSB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnVzZXJNYW5hZ2VyLnNpZ25vdXRSZWRpcmVjdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDbGllbnRTZXR0aW5ncyhlbnZpcm9ubWVudDogRW52aXJvbm1lbnRWaWV3TW9kZWwpOiBVc2VyTWFuYWdlclNldHRpbmdzIHtcbiAgICByZXR1cm4ge1xuICAgICAgYXV0aG9yaXR5OiBlbnZpcm9ubWVudD8ub3BlbklEPy5hdXRob3JpdHksXG4gICAgICBjbGllbnRfaWQ6IGVudmlyb25tZW50Py5vcGVuSUQ/LmNsaWVudF9pZCxcbiAgICAgIHJlZGlyZWN0X3VyaTogZW52aXJvbm1lbnQ/Lm9wZW5JRD8ucmVkaXJlY3RfdXJpLFxuICAgICAgcG9zdF9sb2dvdXRfcmVkaXJlY3RfdXJpOiBlbnZpcm9ubWVudD8ub3BlbklEPy5wb3N0X2xvZ291dF9yZWRpcmVjdF91cmksXG4gICAgICByZXNwb25zZV90eXBlOiBlbnZpcm9ubWVudD8ub3BlbklEPy5yZXNwb25zZV90eXBlLFxuICAgICAgc2NvcGU6IGVudmlyb25tZW50Py5vcGVuSUQ/LnNjb3BlLFxuICAgICAgZmlsdGVyUHJvdG9jb2xDbGFpbXM6IGVudmlyb25tZW50Py5vcGVuSUQ/LmZpbHRlclByb3RvY29sQ2xhaW1zLFxuICAgICAgbG9hZFVzZXJJbmZvOiB0cnVlLFxuICAgICAgbW9uaXRvclNlc3Npb246IHRydWUsXG4gICAgICBzaWxlbnRfcmVkaXJlY3RfdXJpOiBlbnZpcm9ubWVudD8ub3BlbklEPy5zaWxlbnRfcmVkaXJlY3RfdXJpLFxuICAgICAgYXV0b21hdGljU2lsZW50UmVuZXc6IGVudmlyb25tZW50Py5vcGVuSUQ/LmF1dG9tYXRpY1NpbGVudFJlbmV3LFxuICAgICAgYWNjZXNzVG9rZW5FeHBpcmluZ05vdGlmaWNhdGlvblRpbWU6IDIwLCAvL2RlZmF1bHQgNjBcbiAgICAgIGNoZWNrU2Vzc2lvbkludGVydmFsOiAyMDAwLCAvL2RlZmF1bHQgMjAwMFxuICAgICAgc2lsZW50UmVxdWVzdFRpbWVvdXQ6IDIwMDAwLFxuICAgIH07XG4gIH1cblxuICBhc3luYyBpc1NlcnZpY2VSZWFkeSgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuaW5mbyhcIltBdXRoU2VydmljZV0gaXNTZXJ2aWNlUmVhZHlcIiwgdHJ1ZSk7XG4gICAgICAgIHJlc29sdmUodHJ1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmxvZ2dlci5pbmZvKFwiW0F1dGhTZXJ2aWNlXSBpc1NlcnZpY2VSZWFkeVwiLCBmYWxzZSk7XG4gICAgICAgIHJlamVjdChmYWxzZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGF1dGhTZXJ2aWNlRmFjdG9yeShhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsIGFwcFNldHRpbmdzOiBBcHBTZXR0aW5nU2VydmljZSwgZW52aXJvbm1lbnQ6IEVudmlyb25tZW50Vmlld01vZGVsKSB7XG4gIHJldHVybiBhc3luYyAoKSA9PiB7XG4gICAgYXBwU2V0dGluZ3MuaXNTZXJ2aWNlUmVhZHkuc3Vic2NyaWJlKGl0ZW0gPT4ge1xuICAgICAgaWYgKGl0ZW0pXG4gICAgICAgIGF1dGhTZXJ2aWNlLmluaXRpYWxpemUoZW52aXJvbm1lbnQpO1xuICAgIH0pO1xuICB9XG59OyJdfQ==
141
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZmFsY29uLW5nL3RhaWx3aW5kL3NyYy9saWIvc2VydmljZS9vcGVuLWlkL2F1dGguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSzNDLE9BQU8sRUFFTCxXQUFXLEdBR1osTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQUt4QixNQUFNLE9BQU8sV0FBVzthQUNmLHNCQUFpQixHQUFHLGFBQWEsQUFBaEIsQ0FBaUI7YUFDbEMsd0JBQW1CLEdBQUcsZUFBZSxBQUFsQixDQUFtQjtJQVU3QyxZQUNVLE1BQXFCLEVBQ3JCLGtCQUFzQztRQUR0QyxXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFWeEMsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFNN0IsZUFBVSxHQUFZLEtBQUssQ0FBQztJQUtqQyxDQUFDO0lBRUosS0FBSyxDQUFDLFVBQVUsQ0FBQyxXQUFpQztRQUNoRCxJQUFJLElBQUksQ0FBQyxXQUFXO1lBQUUsT0FBTztRQUM3QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDM0MsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDbkIsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLEVBQUU7WUFDbEQsSUFBSSxDQUFDLE1BQU0s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QUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COztBQW1LRCxNQUFNLFVBQVUsa0JBQWtCLENBQ2hDLFdBQXdCLEVBQ3hCLFdBQThCLEVBQzlCLFdBQWlDO0lBRWpDLE9BQU8sS0FBSyxJQUFJLEVBQUU7UUFDaEIsV0FBVyxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDMUMsSUFBSSxJQUFJO2dCQUFFLFdBQVcsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDaEQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTG9nZ2VyU2VydmljZSB9IGZyb20gJy4uL2xvZ2dlci5zZXJ2aWNlJztcbmltcG9ydCB7IFRva2VuSGVscGVyU2VydmljZSB9IGZyb20gJy4vVG9rZW5IZWxwZXJTZXJ2aWNlJztcbmltcG9ydCB7IEVudmlyb25tZW50Vmlld01vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWwvZW52aXJvbm1lbnRzJztcbmltcG9ydCB7IEFwcFNldHRpbmdTZXJ2aWNlIH0gZnJvbSAnLi4vYXBwc2V0dGluZy5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIFVzZXIsXG4gIFVzZXJNYW5hZ2VyLFxuICBVc2VyTWFuYWdlclNldHRpbmdzLFxuICBVc2VyUHJvZmlsZSxcbn0gZnJvbSAnb2lkYy1jbGllbnQtdHMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQXV0aFNlcnZpY2Uge1xuICBzdGF0aWMgVVNFUl9MT0FERURfRVZFTlQgPSAnVVNFUl9MT0FERUQnO1xuICBzdGF0aWMgVVNFUl9VTkxPQURFRF9FVkVOVCA9ICdVU0VSX1VOTE9BREVEJztcblxuICBwcml2YXRlIGluaXRpYWxpemVkOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyB1c2VyTWFuYWdlciE6IFVzZXJNYW5hZ2VyO1xuICBwcml2YXRlIHVzZXI6IGFueTtcbiAgcHVibGljIHNldHRpbmdzITogVXNlck1hbmFnZXJTZXR0aW5ncztcblxuICBwcml2YXRlIGFjY2Vzc1Rva2VuITogT2JqZWN0O1xuICBwcml2YXRlIHNpZ25pbmdPdXQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGxvZ2dlcjogTG9nZ2VyU2VydmljZSxcbiAgICBwcml2YXRlIHRva2VuSGVscGVyU2VydmljZTogVG9rZW5IZWxwZXJTZXJ2aWNlXG4gICkge31cblxuICBhc3luYyBpbml0aWFsaXplKGVudmlyb25tZW50OiBFbnZpcm9ubWVudFZpZXdNb2RlbCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLmluaXRpYWxpemVkKSByZXR1cm47XG4gICAgdGhpcy5zZXR0aW5ncyA9IHRoaXMuZ2V0Q2xpZW50U2V0dGluZ3MoZW52aXJvbm1lbnQpO1xuICAgIHRoaXMudXNlck1hbmFnZXIgPSBuZXcgVXNlck1hbmFnZXIodGhpcy5zZXR0aW5ncyk7XG4gICAgdGhpcy51c2VyTWFuYWdlci5ldmVudHMuYWRkVXNlckxvYWRlZCh1c2VyID0+IHtcbiAgICAgIHRoaXMudXNlciA9IHVzZXI7XG4gICAgfSk7XG5cbiAgICB0aGlzLnVzZXJNYW5hZ2VyLmV2ZW50cy5hZGRBY2Nlc3NUb2tlbkV4cGlyaW5nKCgpID0+IHtcbiAgICAgIHRoaXMubG9nZ2VyLmluZm8oJ0lkU3ZyIHRva2VuIGV4cGlyaW5nICcgKyBuZXcgRGF0ZSgpLnRvTG9jYWxlU3RyaW5nKCkpO1xuICAgIH0pO1xuXG4gICAgdGhpcy51c2VyTWFuYWdlci5ldmVudHMuYWRkQWNjZXNzVG9rZW5FeHBpcmVkKCgpID0+IHtcbiAgICAgIHRoaXMubG9nZ2VyLmluZm8oJ0lkU3ZyIHRva2VuIGV4cGlyZWQgJyArIG5ldyBEYXRlKCkudG9Mb2NhbGVTdHJpbmcoKSk7XG4gICAgICB0aGlzLmxvZ291dChmYWxzZSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnVzZXJNYW5hZ2VyLmV2ZW50cy5hZGRTaWxlbnRSZW5ld0Vycm9yKGUgPT4ge1xuICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoXG4gICAgICAgICdJZFN2ciBzaWxlbnQgcmVuZXcgZXJyb3IgJyArIGUubWVzc2FnZSArIG5ldyBEYXRlKCkudG9Mb2NhbGVTdHJpbmcoKVxuICAgICAgKTtcbiAgICAgIHRoaXMubG9nb3V0KGZhbHNlKTtcbiAgICB9KTtcblxuICAgIHRoaXMudXNlck1hbmFnZXIuZXZlbnRzLmFkZFVzZXJMb2FkZWQodXNlciA9PiB7XG4gICAgICB0aGlzLmxvZ2dlci5pbmZvKFxuICAgICAgICAnSWRTdnIgdXNlciBzZXNzaW9uIGlzIHJlYWR5ICcgKyBuZXcgRGF0ZSgpLnRvTG9jYWxlU3RyaW5nKClcbiAgICAgICk7XG4gICAgICB0aGlzLmFjY2Vzc1Rva2VuID0gdGhpcy50b2tlbkhlbHBlclNlcnZpY2UuZ2V0UGF5bG9hZEZyb21Ub2tlbihcbiAgICAgICAgdXNlci5hY2Nlc3NfdG9rZW4sXG4gICAgICAgIGZhbHNlXG4gICAgICApO1xuICAgICAgdGhpcy51c2VyID0gdXNlcjtcbiAgICB9KTtcblxuICAgIHRoaXMudXNlck1hbmFnZXIuZXZlbnRzLmFkZFVzZXJVbmxvYWRlZCgoKSA9PiB7XG4gICAgICB0aGlzLmxvZ2dlci5pbmZvKFxuICAgICAgICAnSWRTdnIgdXNlciBzZXNzaW9uIGhhcyBlbmRlZCAnICsgbmV3IERhdGUoKS50b0xvY2FsZVN0cmluZygpXG4gICAgICApO1xuXG4gICAgICBpZiAoIXRoaXMuc2lnbmluZ091dCkge1xuICAgICAgICB0aGlzLnN0YXJ0QXV0aGVudGljYXRpb24oXG4gICAgICAgICAgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lICsgd2luZG93LmxvY2F0aW9uLnNlYXJjaFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy51c2VyTWFuYWdlci5ldmVudHMuYWRkVXNlclNpZ25lZE91dCgoKSA9PiB7XG4gICAgICB0aGlzLmxvZ2dlci5pbmZvKCdJZFN2ciB1c2VyIHNpZ25lZCBvdXQgJyArIG5ldyBEYXRlKCkudG9Mb2NhbGVTdHJpbmcoKSk7XG4gICAgICB0aGlzLmxvZ291dChmYWxzZSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnVzZXIgPSBhd2FpdCB0aGlzLnVzZXJNYW5hZ2VyLmdldFVzZXIoKTtcbiAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTtcbiAgfVxuXG4gIHB1YmxpYyBpc0xvZ2dlZEluKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnVzZXIgIT0gbnVsbCAmJiAhdGhpcy51c2VyLmV4cGlyZWQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0VXNlcigpOiBQcm9taXNlPFVzZXIgfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMudXNlck1hbmFnZXIuZ2V0VXNlcigpO1xuICB9XG5cbiAgcHVibGljIGdldFByb2ZpbGUoKTogVXNlclByb2ZpbGUge1xuICAgIHJldHVybiB0aGlzLnVzZXIucHJvZmlsZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDbGFpbXMoKTogVXNlclByb2ZpbGUge1xuICAgIHJldHVybiB0aGlzLnVzZXIucHJvZmlsZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRBdXRob3JpemF0aW9uSGVhZGVyVmFsdWUoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy51c2VyICE9IG51bGwpXG4gICAgICByZXR1cm4gYCR7dGhpcy51c2VyLnRva2VuX3R5cGV9ICR7dGhpcy51c2VyLmFjY2Vzc190b2tlbn1gO1xuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIGdldEFjY2Vzc1Rva2VuKCk6IGFueSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuYWNjZXNzVG9rZW4gfHxcbiAgICAgIHRoaXMudG9rZW5IZWxwZXJTZXJ2aWNlLmdldFBheWxvYWRGcm9tVG9rZW4odGhpcy51c2VyLmFjY2Vzc190b2tlbiwgZmFsc2UpXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIHN0YXJ0QXV0aGVudGljYXRpb24ocmV0dXJuVXJsOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmxvZ2dlci5pbmZvKCdbQXV0aFNlcnZpY2VdIHN0YXJ0QXV0aGVudGljYXRpb24nLCByZXR1cm5VcmwpO1xuICAgIGF3YWl0IHRoaXMudXNlck1hbmFnZXIuY2xlYXJTdGFsZVN0YXRlKCk7XG4gICAgYXdhaXQgdGhpcy51c2VyTWFuYWdlci5zaWduaW5SZWRpcmVjdCgpLmNhdGNoKGVyciA9PiB7XG4gICAgICAvL3RoaXMubG9nLmRlYnVnKFwiSWRTdnIgc2lnbiBpbiBmYWlsZWRcIiwgZXJyKTtcbiAgICAgIHJldHVybiBlcnI7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbG9naW4oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMudXNlck1hbmFnZXIuc2lnbmluUmVkaXJlY3QoKTtcbiAgfVxuXG4gIHB1YmxpYyByZW5ld1Rva2VuKCk6IFByb21pc2U8VXNlciB8IG51bGw+IHtcbiAgICByZXR1cm4gdGhpcy51c2VyTWFuYWdlci5zaWduaW5TaWxlbnQoKTtcbiAgfVxuXG4gIHB1YmxpYyBsb2dvdXQoc2lnbm91dFJlZGlyZWN0PzogYm9vbGVhbik6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmIChzaWdub3V0UmVkaXJlY3QgPT09IHVuZGVmaW5lZCB8fCBzaWdub3V0UmVkaXJlY3QgIT09IGZhbHNlKSB7XG4gICAgICB0aGlzLnNpZ25pbmdPdXQgPSB0cnVlO1xuICAgICAgc2lnbm91dFJlZGlyZWN0ID0gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy51c2VyTWFuYWdlci5zaWdub3V0UmVkaXJlY3QoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q2xpZW50U2V0dGluZ3MoXG4gICAgZW52aXJvbm1lbnQ6IEVudmlyb25tZW50Vmlld01vZGVsXG4gICk6IFVzZXJNYW5hZ2VyU2V0dGluZ3Mge1xuICAgIHJldHVybiB7XG4gICAgICBhdXRob3JpdHk6IGVudmlyb25tZW50Py5vcGVuSUQ/LmF1dGhvcml0eSBhcyBzdHJpbmcsXG4gICAgICBjbGllbnRfaWQ6IGVudmlyb25tZW50Py5vcGVuSUQ/LmNsaWVudF9pZCBhcyBzdHJpbmcsXG4gICAgICByZWRpcmVjdF91cmk6IGVudmlyb25tZW50Py5vcGVuSUQ/LnJlZGlyZWN0X3VyaSBhcyBzdHJpbmcsXG4gICAgICBwb3N0X2xvZ291dF9yZWRpcmVjdF91cmk6IGVudmlyb25tZW50Py5vcGVuSUQ/LnBvc3RfbG9nb3V0X3JlZGlyZWN0X3VyaSxcbiAgICAgIHJlc3BvbnNlX3R5cGU6IGVudmlyb25tZW50Py5vcGVuSUQ/LnJlc3BvbnNlX3R5cGUsXG4gICAgICBzY29wZTogZW52aXJvbm1lbnQ/Lm9wZW5JRD8uc2NvcGUsXG4gICAgICBmaWx0ZXJQcm90b2NvbENsYWltczogZW52aXJvbm1lbnQ/Lm9wZW5JRD8uZmlsdGVyUHJvdG9jb2xDbGFpbXMsXG4gICAgICBsb2FkVXNlckluZm86IHRydWUsXG4gICAgICBtb25pdG9yU2Vzc2lvbjogdHJ1ZSxcbiAgICAgIHNpbGVudF9yZWRpcmVjdF91cmk6IGVudmlyb25tZW50Py5vcGVuSUQ/LnNpbGVudF9yZWRpcmVjdF91cmksXG4gICAgICBhdXRvbWF0aWNTaWxlbnRSZW5ldzogZW52aXJvbm1lbnQ/Lm9wZW5JRD8uYXV0b21hdGljU2lsZW50UmVuZXcsXG4gICAgICBhY2Nlc3NUb2tlbkV4cGlyaW5nTm90aWZpY2F0aW9uVGltZUluU2Vjb25kczogMixcbiAgICAgIGNoZWNrU2Vzc2lvbkludGVydmFsSW5TZWNvbmRzOiAyLFxuICAgICAgc2lsZW50UmVxdWVzdFRpbWVvdXRJblNlY29uZHM6IDIsXG4gICAgfTtcbiAgfVxuXG4gIGFzeW5jIGlzU2VydmljZVJlYWR5KCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZShhc3luYyAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBpZiAodGhpcy5pbml0aWFsaXplZCkge1xuICAgICAgICB0aGlzLmxvZ2dlci5pbmZvKCdbQXV0aFNlcnZpY2VdIGlzU2VydmljZVJlYWR5JywgdHJ1ZSk7XG4gICAgICAgIHJlc29sdmUodHJ1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmxvZ2dlci5pbmZvKCdbQXV0aFNlcnZpY2VdIGlzU2VydmljZVJlYWR5JywgZmFsc2UpO1xuICAgICAgICByZWplY3QoZmFsc2UpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhdXRoU2VydmljZUZhY3RvcnkoXG4gIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcbiAgYXBwU2V0dGluZ3M6IEFwcFNldHRpbmdTZXJ2aWNlLFxuICBlbnZpcm9ubWVudDogRW52aXJvbm1lbnRWaWV3TW9kZWxcbikge1xuICByZXR1cm4gYXN5bmMgKCkgPT4ge1xuICAgIGFwcFNldHRpbmdzLmlzU2VydmljZVJlYWR5LnN1YnNjcmliZShpdGVtID0+IHtcbiAgICAgIGlmIChpdGVtKSBhdXRoU2VydmljZS5pbml0aWFsaXplKGVudmlyb25tZW50KTtcbiAgICB9KTtcbiAgfTtcbn1cbiJdfQ==
@@ -84,7 +84,7 @@ import { AngularEditorModule } from '@kolkov/angular-editor';
84
84
  import * as i1$7 from '@angular/common/http';
85
85
  import { HttpEventType, HttpRequest, withInterceptors, provideHttpClient } from '@angular/common/http';
86
86
  import { Observable, Subject, from } from 'rxjs';
87
- import { UserManager } from 'oidc-client';
87
+ import { UserManager } from 'oidc-client-ts';
88
88
 
89
89
  class AngularmaterialModule {
90
90
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: AngularmaterialModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
@@ -961,8 +961,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImpor
961
961
  }], ctorParameters: () => [] });
962
962
 
963
963
  class AuthService {
964
- static { this.USER_LOADED_EVENT = "USER_LOADED"; }
965
- static { this.USER_UNLOADED_EVENT = "USER_UNLOADED"; }
964
+ static { this.USER_LOADED_EVENT = 'USER_LOADED'; }
965
+ static { this.USER_UNLOADED_EVENT = 'USER_UNLOADED'; }
966
966
  constructor(logger, tokenHelperService) {
967
967
  this.logger = logger;
968
968
  this.tokenHelperService = tokenHelperService;
@@ -978,29 +978,29 @@ class AuthService {
978
978
  this.user = user;
979
979
  });
980
980
  this.userManager.events.addAccessTokenExpiring(() => {
981
- this.logger.info("IdSvr token expiring " + new Date().toLocaleString());
981
+ this.logger.info('IdSvr token expiring ' + new Date().toLocaleString());
982
982
  });
983
983
  this.userManager.events.addAccessTokenExpired(() => {
984
- this.logger.info("IdSvr token expired " + new Date().toLocaleString());
984
+ this.logger.info('IdSvr token expired ' + new Date().toLocaleString());
985
985
  this.logout(false);
986
986
  });
987
987
  this.userManager.events.addSilentRenewError(e => {
988
- this.logger.error("IdSvr silent renew error " + e.message + new Date().toLocaleString());
988
+ this.logger.error('IdSvr silent renew error ' + e.message + new Date().toLocaleString());
989
989
  this.logout(false);
990
990
  });
991
991
  this.userManager.events.addUserLoaded(user => {
992
- this.logger.info("IdSvr user session is ready " + new Date().toLocaleString());
992
+ this.logger.info('IdSvr user session is ready ' + new Date().toLocaleString());
993
993
  this.accessToken = this.tokenHelperService.getPayloadFromToken(user.access_token, false);
994
994
  this.user = user;
995
995
  });
996
996
  this.userManager.events.addUserUnloaded(() => {
997
- this.logger.info("IdSvr user session has ended " + new Date().toLocaleString());
997
+ this.logger.info('IdSvr user session has ended ' + new Date().toLocaleString());
998
998
  if (!this.signingOut) {
999
999
  this.startAuthentication(window.location.pathname + window.location.search);
1000
1000
  }
1001
1001
  });
1002
1002
  this.userManager.events.addUserSignedOut(() => {
1003
- this.logger.info("IdSvr user signed out " + new Date().toLocaleString());
1003
+ this.logger.info('IdSvr user signed out ' + new Date().toLocaleString());
1004
1004
  this.logout(false);
1005
1005
  });
1006
1006
  this.user = await this.userManager.getUser();
@@ -1024,29 +1024,17 @@ class AuthService {
1024
1024
  return '';
1025
1025
  }
1026
1026
  getAccessToken() {
1027
- return this.accessToken || this.tokenHelperService.getPayloadFromToken(this.user.access_token, false);
1028
- ;
1027
+ return (this.accessToken ||
1028
+ this.tokenHelperService.getPayloadFromToken(this.user.access_token, false));
1029
1029
  }
1030
1030
  async startAuthentication(returnUrl) {
1031
- this.logger.info("[AuthService] startAuthentication", returnUrl);
1031
+ this.logger.info('[AuthService] startAuthentication', returnUrl);
1032
1032
  await this.userManager.clearStaleState();
1033
- await this.userManager.signinRedirect({ data: { returnUrl: returnUrl } }).catch(err => {
1034
- //this.$log.debug("IdSvr sign in failed", err);
1033
+ await this.userManager.signinRedirect().catch(err => {
1034
+ //this.log.debug("IdSvr sign in failed", err);
1035
1035
  return err;
1036
1036
  });
1037
1037
  }
1038
- async completeAuthentication() {
1039
- this.logger.info("[AuthService] completeAuthentication");
1040
- let user = await new Promise((resolve, reject) => {
1041
- this.userManager.signinRedirectCallback().then(user => {
1042
- resolve(user);
1043
- }).catch(error => {
1044
- reject(error);
1045
- });
1046
- });
1047
- this.user = user;
1048
- return this.user;
1049
- }
1050
1038
  login() {
1051
1039
  return this.userManager.signinRedirect();
1052
1040
  }
@@ -1073,19 +1061,19 @@ class AuthService {
1073
1061
  monitorSession: true,
1074
1062
  silent_redirect_uri: environment?.openID?.silent_redirect_uri,
1075
1063
  automaticSilentRenew: environment?.openID?.automaticSilentRenew,
1076
- accessTokenExpiringNotificationTime: 20,
1077
- checkSessionInterval: 2000,
1078
- silentRequestTimeout: 20000,
1064
+ accessTokenExpiringNotificationTimeInSeconds: 2,
1065
+ checkSessionIntervalInSeconds: 2,
1066
+ silentRequestTimeoutInSeconds: 2,
1079
1067
  };
1080
1068
  }
1081
1069
  async isServiceReady() {
1082
1070
  return new Promise(async (resolve, reject) => {
1083
1071
  if (this.initialized) {
1084
- this.logger.info("[AuthService] isServiceReady", true);
1072
+ this.logger.info('[AuthService] isServiceReady', true);
1085
1073
  resolve(true);
1086
1074
  }
1087
1075
  else {
1088
- this.logger.info("[AuthService] isServiceReady", false);
1076
+ this.logger.info('[AuthService] isServiceReady', false);
1089
1077
  reject(false);
1090
1078
  }
1091
1079
  });
@@ -1096,7 +1084,7 @@ class AuthService {
1096
1084
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: AuthService, decorators: [{
1097
1085
  type: Injectable,
1098
1086
  args: [{
1099
- providedIn: 'root'
1087
+ providedIn: 'root',
1100
1088
  }]
1101
1089
  }], ctorParameters: () => [{ type: LoggerService }, { type: TokenHelperService }] });
1102
1090
  function authServiceFactory(authService, appSettings, environment) {
@@ -1107,7 +1095,6 @@ function authServiceFactory(authService, appSettings, environment) {
1107
1095
  });
1108
1096
  };
1109
1097
  }
1110
- ;
1111
1098
 
1112
1099
  class DialogComponent {
1113
1100
  constructor(data) {