@dontdrinkandroot/ngx-extensions 0.3.1 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/{esm2020 → esm2022}/src/cookie/cookie.service.mjs +4 -4
  2. package/esm2022/src/ddr-extensions.module.mjs +67 -0
  3. package/{esm2020 → esm2022}/src/http/redirect-to-login-interceptor.service.mjs +4 -4
  4. package/{esm2020 → esm2022}/src/http/with-credentials-interceptor.service.mjs +4 -4
  5. package/{esm2020 → esm2022}/src/image/lazy-image.directive.mjs +4 -4
  6. package/{esm2020 → esm2022}/src/jwt/jwt-interceptor.service.mjs +4 -4
  7. package/{esm2020 → esm2022}/src/jwt/jwt-refresh-token-interceptor.service.mjs +4 -4
  8. package/esm2022/src/jwt/jwt.service.mjs +81 -0
  9. package/esm2022/src/logger/console-logger.service.mjs +43 -0
  10. package/esm2022/src/logger/logger.service.mjs +9 -0
  11. package/{esm2020 → esm2022}/src/oauth/oauth2-access-token-interceptor.service.mjs +4 -4
  12. package/esm2022/src/oauth/oauth2-error.mjs +8 -0
  13. package/{esm2020 → esm2022}/src/oauth/oauth2-refresh-token-interceptor.service.mjs +4 -4
  14. package/{esm2020 → esm2022}/src/oauth/oauth2.module.mjs +5 -5
  15. package/esm2022/src/oauth/oauth2.service.mjs +125 -0
  16. package/{esm2020 → esm2022}/src/oauth/redirect-to-oauth2-login-interceptor.service.mjs +4 -4
  17. package/{esm2020 → esm2022}/src/scroll/bottom-hit.directive.mjs +4 -4
  18. package/{esm2020 → esm2022}/src/scroll/scroll.service.mjs +4 -4
  19. package/esm2022/src/storage/local-storage.service.mjs +53 -0
  20. package/{esm2020 → esm2022}/src/visibility/visibility.service.mjs +4 -4
  21. package/{fesm2020 → fesm2022}/dontdrinkandroot-ngx-extensions.mjs +109 -101
  22. package/fesm2022/dontdrinkandroot-ngx-extensions.mjs.map +1 -0
  23. package/package.json +9 -15
  24. package/src/image/lazy-image.directive.d.ts +1 -1
  25. package/src/jwt/jwt.service.d.ts +3 -1
  26. package/src/logger/console-logger.service.d.ts +8 -8
  27. package/src/logger/logger.service.d.ts +5 -5
  28. package/src/oauth/oauth2.service.d.ts +3 -1
  29. package/src/storage/local-storage.service.d.ts +4 -4
  30. package/src/visibility/visibility.service.d.ts +1 -1
  31. package/esm2020/src/ddr-extensions.module.mjs +0 -67
  32. package/esm2020/src/jwt/jwt.service.mjs +0 -79
  33. package/esm2020/src/logger/console-logger.service.mjs +0 -43
  34. package/esm2020/src/logger/logger.service.mjs +0 -9
  35. package/esm2020/src/oauth/oauth2-error.mjs +0 -8
  36. package/esm2020/src/oauth/oauth2.service.mjs +0 -119
  37. package/esm2020/src/storage/local-storage.service.mjs +0 -53
  38. package/fesm2015/dontdrinkandroot-ngx-extensions.mjs +0 -1126
  39. package/fesm2015/dontdrinkandroot-ngx-extensions.mjs.map +0 -1
  40. package/fesm2020/dontdrinkandroot-ngx-extensions.mjs.map +0 -1
  41. /package/{esm2020 → esm2022}/dontdrinkandroot-ngx-extensions.mjs +0 -0
  42. /package/{esm2020 → esm2022}/public-api.mjs +0 -0
  43. /package/{esm2020 → esm2022}/src/http/url-info.mjs +0 -0
  44. /package/{esm2020 → esm2022}/src/jwt/jwt-token-response.mjs +0 -0
  45. /package/{esm2020 → esm2022}/src/methoddecorator/debounce.mjs +0 -0
  46. /package/{esm2020 → esm2022}/src/methoddecorator/limit.mjs +0 -0
  47. /package/{esm2020 → esm2022}/src/oauth/json-web-token.mjs +0 -0
  48. /package/{esm2020 → esm2022}/src/oauth/oauth2-config.mjs +0 -0
  49. /package/{esm2020 → esm2022}/src/oauth/token-response.mjs +0 -0
  50. /package/{esm2020 → esm2022}/src/storage/storage.service.mjs +0 -0
  51. /package/{esm2020 → esm2022}/src/typeguard/is-non-null.mjs +0 -0
  52. /package/{esm2020 → esm2022}/src/util/collection-utils.mjs +0 -0
  53. /package/{esm2020 → esm2022}/src/util/number-utils.mjs +0 -0
  54. /package/{esm2020 → esm2022}/src/util/object-utils.mjs +0 -0
  55. /package/{esm2020 → esm2022}/src/util/string-utils.mjs +0 -0
  56. /package/{esm2020 → esm2022}/src/util/type-utils.mjs +0 -0
@@ -0,0 +1,125 @@
1
+ import { Inject, Injectable } from '@angular/core';
2
+ import { throwError } from 'rxjs';
3
+ import { HttpParams } from '@angular/common/http';
4
+ import { catchError, map, shareReplay } from 'rxjs/operators';
5
+ import { DDR_OAUTH2_CONFIG } from './oauth2-config';
6
+ import { OAuth2Error } from './oauth2-error';
7
+ import { TypeUtils } from '../util/type-utils';
8
+ import { StringUtils } from '../util/string-utils';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "@angular/router";
11
+ import * as i2 from "@angular/common/http";
12
+ import * as i3 from "../logger/logger.service";
13
+ import * as i4 from "./oauth2-config";
14
+ export class OAuth2Service {
15
+ static { this.STORAGE_KEY_CHALLENGE = 'ddr_oauth2_challenge'; }
16
+ static { this.STORAGE_KEY_REFRESH_TOKEN = 'ddr_oauth2_refresh_token'; }
17
+ static { this.STORAGE_KEY_RETURN_URL = 'ddr_oauth2_return_url'; }
18
+ constructor(route, httpClient, loggerService, config) {
19
+ this.route = route;
20
+ this.httpClient = httpClient;
21
+ this.loggerService = loggerService;
22
+ this.config = config;
23
+ this.accessTokenString = null;
24
+ this.accessToken = null;
25
+ this.REFRESH_MARGIN_SECONDS = 60 * 10;
26
+ this.refreshTokenRequest$ = null;
27
+ }
28
+ redirectToLogin() {
29
+ const challenge = this.createChallenge();
30
+ localStorage.setItem(OAuth2Service.STORAGE_KEY_CHALLENGE, challenge);
31
+ const params = new HttpParams()
32
+ .set('client_id', this.config.clientId)
33
+ .set('response_type', 'code')
34
+ .set('redirect_uri', this.config.redirectUri)
35
+ .set('code_challenge', challenge)
36
+ .set('code_challenge_method', 'plain');
37
+ window.location.href = this.config.authorizeUri + '?' + params.toString();
38
+ }
39
+ handleCode() {
40
+ if (this.route.snapshot.queryParamMap.has('error')) {
41
+ const error = this.route.snapshot.queryParamMap.get('error');
42
+ return throwError(() => new OAuth2Error(error ?? 'Unknown error'));
43
+ }
44
+ if (!this.route.snapshot.queryParamMap.has('code')) {
45
+ return throwError(() => new OAuth2Error(OAuth2Error.CODE_NOT_FOUND));
46
+ }
47
+ const code = TypeUtils.notNull(this.route.snapshot.queryParamMap.get('code'));
48
+ const params = new HttpParams()
49
+ .set('grant_type', 'authorization_code')
50
+ .set('code', code)
51
+ .set('redirect_uri', this.config.redirectUri)
52
+ .set('code_verifier', TypeUtils.notNull(localStorage.getItem(OAuth2Service.STORAGE_KEY_CHALLENGE)))
53
+ .set('client_id', this.config.clientId);
54
+ return this.httpClient.post(this.config.tokenUri, params).pipe(map(tokenResponse => this.processTokenResponse(tokenResponse)));
55
+ }
56
+ createChallenge() {
57
+ return StringUtils.createRandomString(64, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890-._~');
58
+ }
59
+ getRefreshToken() {
60
+ return localStorage.getItem(OAuth2Service.STORAGE_KEY_REFRESH_TOKEN);
61
+ }
62
+ getAccessTokenString() {
63
+ return this.accessTokenString;
64
+ }
65
+ isAccessTokenExpired() {
66
+ return (null == this.accessToken
67
+ || this.accessToken.exp * 1000 < Date.now());
68
+ }
69
+ isRefreshPossibleAndRequired(req = null) {
70
+ return ((null == req || !req.url.endsWith(this.config.tokenUri))
71
+ && null != this.getRefreshToken()
72
+ && (null == this.accessToken
73
+ || (this.accessToken.exp - this.REFRESH_MARGIN_SECONDS) * 1000 < Date.now()));
74
+ }
75
+ performRefresh() {
76
+ if (null == this.refreshTokenRequest$) {
77
+ this.loggerService.info('Performing token refesh');
78
+ const params = new HttpParams()
79
+ .set('grant_type', 'refresh_token')
80
+ .set('refresh_token', TypeUtils.notNull(this.getRefreshToken()))
81
+ .set('client_id', this.config.clientId);
82
+ this.refreshTokenRequest$ = this.httpClient.post(this.config.tokenUri, params).pipe(map(tokenResponse => {
83
+ const token = this.processTokenResponse(tokenResponse);
84
+ this.refreshTokenRequest$ = null;
85
+ return token;
86
+ }), catchError(error => {
87
+ this.accessTokenString = null;
88
+ this.accessToken = null;
89
+ localStorage.removeItem(OAuth2Service.STORAGE_KEY_REFRESH_TOKEN);
90
+ this.refreshTokenRequest$ = null;
91
+ return throwError(error);
92
+ }), shareReplay(1));
93
+ }
94
+ return this.refreshTokenRequest$;
95
+ }
96
+ processTokenResponse(tokenResponse) {
97
+ localStorage.removeItem(OAuth2Service.STORAGE_KEY_CHALLENGE);
98
+ this.accessTokenString = tokenResponse.access_token;
99
+ this.accessToken = JSON.parse(atob(tokenResponse.access_token.split('.')[1]));
100
+ this.loggerService.info('Access Token Expiry', new Date(this.accessToken.exp * 1000));
101
+ localStorage.setItem(OAuth2Service.STORAGE_KEY_REFRESH_TOKEN, tokenResponse.refresh_token);
102
+ return this.accessToken;
103
+ }
104
+ clear() {
105
+ this.accessToken = null;
106
+ this.accessTokenString = null;
107
+ localStorage.removeItem(OAuth2Service.STORAGE_KEY_REFRESH_TOKEN);
108
+ localStorage.removeItem(OAuth2Service.STORAGE_KEY_RETURN_URL);
109
+ }
110
+ setReturnUrl(url) {
111
+ localStorage.setItem(OAuth2Service.STORAGE_KEY_RETURN_URL, url);
112
+ }
113
+ getReturnUrl() {
114
+ return localStorage.getItem(OAuth2Service.STORAGE_KEY_RETURN_URL);
115
+ }
116
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: OAuth2Service, deps: [{ token: i1.ActivatedRoute }, { token: i2.HttpClient }, { token: i3.Logger }, { token: DDR_OAUTH2_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable }); }
117
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: OAuth2Service }); }
118
+ }
119
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: OAuth2Service, decorators: [{
120
+ type: Injectable
121
+ }], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i2.HttpClient }, { type: i3.Logger }, { type: i4.OAuth2Config, decorators: [{
122
+ type: Inject,
123
+ args: [DDR_OAUTH2_CONFIG]
124
+ }] }]; } });
125
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2F1dGgyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvb2F1dGgvb2F1dGgyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFakQsT0FBTyxFQUFhLFVBQVUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUM1QyxPQUFPLEVBQWEsVUFBVSxFQUFjLE1BQU0sc0JBQXNCLENBQUM7QUFDekUsT0FBTyxFQUFDLFVBQVUsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFHNUQsT0FBTyxFQUFDLGlCQUFpQixFQUFlLE1BQU0saUJBQWlCLENBQUM7QUFDaEUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUM3QyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sc0JBQXNCLENBQUM7Ozs7OztBQUlqRCxNQUFNLE9BQU8sYUFBYTthQUVQLDBCQUFxQixHQUFHLHNCQUFzQixBQUF6QixDQUEwQjthQUUvQyw4QkFBeUIsR0FBRywwQkFBMEIsQUFBN0IsQ0FBOEI7YUFFeEQsMkJBQXNCLEdBQUcsdUJBQXVCLEFBQTFCLENBQTJCO0lBVS9ELFlBQ1ksS0FBcUIsRUFDckIsVUFBc0IsRUFDdEIsYUFBcUIsRUFDTSxNQUFvQjtRQUgvQyxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLGtCQUFhLEdBQWIsYUFBYSxDQUFRO1FBQ00sV0FBTSxHQUFOLE1BQU0sQ0FBYztRQVpuRCxzQkFBaUIsR0FBa0IsSUFBSSxDQUFDO1FBRXhDLGdCQUFXLEdBQXdCLElBQUksQ0FBQztRQUUvQiwyQkFBc0IsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBRTFDLHlC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LEVBQUUsYUFBYSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRTNGLE9BQU8sSUFBSSxDQUFDLFdBQVksQ0FBQztJQUM3QixDQUFDO0lBRU0sS0FBSztRQUVSLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUM7UUFDOUIsWUFBWSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUNqRSxZQUFZLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFTSxZQUFZLENBQUMsR0FBVztRQUUzQixZQUFZLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxzQkFBc0IsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRU0sWUFBWTtRQUVmLE9BQU8sWUFBWSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUN0RSxDQUFDOzhHQTVKUSxhQUFhLGdHQW9CVixpQkFBaUI7a0hBcEJwQixhQUFhOzsyRkFBYixhQUFhO2tCQUR6QixVQUFVOzswQkFxQkYsTUFBTTsyQkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCB0aHJvd0Vycm9yfSBmcm9tICdyeGpzJztcbmltcG9ydCB7SHR0cENsaWVudCwgSHR0cFBhcmFtcywgSHR0cFJlcXVlc3R9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7Y2F0Y2hFcnJvciwgbWFwLCBzaGFyZVJlcGxheX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtUb2tlblJlc3BvbnNlfSBmcm9tICcuL3Rva2VuLXJlc3BvbnNlJztcbmltcG9ydCB7SnNvbldlYlRva2VufSBmcm9tICcuL2pzb24td2ViLXRva2VuJztcbmltcG9ydCB7RERSX09BVVRIMl9DT05GSUcsIE9BdXRoMkNvbmZpZ30gZnJvbSAnLi9vYXV0aDItY29uZmlnJztcbmltcG9ydCB7T0F1dGgyRXJyb3J9IGZyb20gJy4vb2F1dGgyLWVycm9yJztcbmltcG9ydCB7VHlwZVV0aWxzfSBmcm9tICcuLi91dGlsL3R5cGUtdXRpbHMnO1xuaW1wb3J0IHtTdHJpbmdVdGlsc30gZnJvbSAnLi4vdXRpbC9zdHJpbmctdXRpbHMnO1xuaW1wb3J0IHtMb2dnZXJ9IGZyb20gJy4uL2xvZ2dlci9sb2dnZXIuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBPQXV0aDJTZXJ2aWNlXG57XG4gICAgcHJpdmF0ZSBzdGF0aWMgU1RPUkFHRV9LRVlfQ0hBTExFTkdFID0gJ2Rkcl9vYXV0aDJfY2hhbGxlbmdlJztcblxuICAgIHByaXZhdGUgc3RhdGljIFNUT1JBR0VfS0VZX1JFRlJFU0hfVE9LRU4gPSAnZGRyX29hdXRoMl9yZWZyZXNoX3Rva2VuJztcblxuICAgIHB1YmxpYyBzdGF0aWMgU1RPUkFHRV9LRVlfUkVUVVJOX1VSTCA9ICdkZHJfb2F1dGgyX3JldHVybl91cmwnO1xuXG4gICAgcHJpdmF0ZSBhY2Nlc3NUb2tlblN0cmluZzogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgICBwcml2YXRlIGFjY2Vzc1Rva2VuOiBKc29uV2ViVG9rZW4gfCBudWxsID0gbnVsbDtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgUkVGUkVTSF9NQVJHSU5fU0VDT05EUyA9IDYwICogMTA7XG5cbiAgICBwcml2YXRlIHJlZnJlc2hUb2tlblJlcXVlc3QkOiBPYnNlcnZhYmxlPEpzb25XZWJUb2tlbj4gfCBudWxsID0gbnVsbDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgcHJpdmF0ZSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50LFxuICAgICAgICBwcml2YXRlIGxvZ2dlclNlcnZpY2U6IExvZ2dlcixcbiAgICAgICAgQEluamVjdChERFJfT0FVVEgyX0NPTkZJRykgcHJpdmF0ZSBjb25maWc6IE9BdXRoMkNvbmZpZ1xuICAgIClcbiAgICB7XG4gICAgfVxuXG4gICAgcHVibGljIHJlZGlyZWN0VG9Mb2dpbigpXG4gICAge1xuICAgICAgICBjb25zdCBjaGFsbGVuZ2UgPSB0aGlzLmNyZWF0ZUNoYWxsZW5nZSgpO1xuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShPQXV0aDJTZXJ2aWNlLlNUT1JBR0VfS0VZX0NIQUxMRU5HRSwgY2hhbGxlbmdlKTtcblxuICAgICAgICBjb25zdCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpXG4gICAgICAgICAgICAuc2V0KCdjbGllbnRfaWQnLCB0aGlzLmNvbmZpZy5jbGllbnRJZClcbiAgICAgICAgICAgIC5zZXQoJ3Jlc3BvbnNlX3R5cGUnLCAnY29kZScpXG4gICAgICAgICAgICAuc2V0KCdyZWRpcmVjdF91cmknLCB0aGlzLmNvbmZpZy5yZWRpcmVjdFVyaSlcbiAgICAgICAgICAgIC5zZXQoJ2NvZGVfY2hhbGxlbmdlJywgY2hhbGxlbmdlKVxuICAgICAgICAgICAgLnNldCgnY29kZV9jaGFsbGVuZ2VfbWV0aG9kJywgJ3BsYWluJyk7XG5cbiAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSB0aGlzLmNvbmZpZy5hdXRob3JpemVVcmkgKyAnPycgKyBwYXJhbXMudG9TdHJpbmcoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaGFuZGxlQ29kZSgpOiBPYnNlcnZhYmxlPEpzb25XZWJUb2tlbj5cbiAgICB7XG4gICAgICAgIGlmICh0aGlzLnJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1NYXAuaGFzKCdlcnJvcicpKSB7XG4gICAgICAgICAgICBjb25zdCBlcnJvciA9IHRoaXMucm91dGUuc25hcHNob3QucXVlcnlQYXJhbU1hcC5nZXQoJ2Vycm9yJyk7XG4gICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgT0F1dGgyRXJyb3IoZXJyb3IgPz8gJ1Vua25vd24gZXJyb3InKSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMucm91dGUuc25hcHNob3QucXVlcnlQYXJhbU1hcC5oYXMoJ2NvZGUnKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IE9BdXRoMkVycm9yKE9BdXRoMkVycm9yLkNPREVfTk9UX0ZPVU5EKSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjb2RlID0gVHlwZVV0aWxzLm5vdE51bGwodGhpcy5yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtTWFwLmdldCgnY29kZScpKTtcbiAgICAgICAgY29uc3QgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKVxuICAgICAgICAgICAgLnNldCgnZ3JhbnRfdHlwZScsICdhdXRob3JpemF0aW9uX2NvZGUnKVxuICAgICAgICAgICAgLnNldCgnY29kZScsIGNvZGUpXG4gICAgICAgICAgICAuc2V0KCdyZWRpcmVjdF91cmknLCB0aGlzLmNvbmZpZy5yZWRpcmVjdFVyaSlcbiAgICAgICAgICAgIC5zZXQoJ2NvZGVfdmVyaWZpZXInLCBUeXBlVXRpbHMubm90TnVsbChsb2NhbFN0b3JhZ2UuZ2V0SXRlbShPQXV0aDJTZXJ2aWNlLlNUT1JBR0VfS0VZX0NIQUxMRU5HRSkpKVxuICAgICAgICAgICAgLnNldCgnY2xpZW50X2lkJywgdGhpcy5jb25maWcuY2xpZW50SWQpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3Q8VG9rZW5SZXNwb25zZT4odGhpcy5jb25maWcudG9rZW5VcmksIHBhcmFtcykucGlwZShcbiAgICAgICAgICAgIG1hcCh0b2tlblJlc3BvbnNlID0+IHRoaXMucHJvY2Vzc1Rva2VuUmVzcG9uc2UodG9rZW5SZXNwb25zZSkpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVDaGFsbGVuZ2UoKVxuICAgIHtcbiAgICAgICAgcmV0dXJuIFN0cmluZ1V0aWxzLmNyZWF0ZVJhbmRvbVN0cmluZyg2NCwgJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaMTIzNDU2Nzg5MC0uX34nKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFJlZnJlc2hUb2tlbigpOiBzdHJpbmcgfCBudWxsXG4gICAge1xuICAgICAgICByZXR1cm4gbG9jYWxTdG9yYWdlLmdldEl0ZW0oT0F1dGgyU2VydmljZS5TVE9SQUdFX0tFWV9SRUZSRVNIX1RPS0VOKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0QWNjZXNzVG9rZW5TdHJpbmcoKTogc3RyaW5nIHwgbnVsbFxuICAgIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWNjZXNzVG9rZW5TdHJpbmc7XG4gICAgfVxuXG4gICAgcHVibGljIGlzQWNjZXNzVG9rZW5FeHBpcmVkKCk6IGJvb2xlYW5cbiAgICB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBudWxsID09IHRoaXMuYWNjZXNzVG9rZW5cbiAgICAgICAgICAgIHx8IHRoaXMuYWNjZXNzVG9rZW4uZXhwICogMTAwMCA8IERhdGUubm93KClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNSZWZyZXNoUG9zc2libGVBbmRSZXF1aXJlZChyZXE6IEh0dHBSZXF1ZXN0PGFueT4gfCBudWxsID0gbnVsbCk6IGJvb2xlYW5cbiAgICB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAobnVsbCA9PSByZXEgfHwgIXJlcS51cmwuZW5kc1dpdGgodGhpcy5jb25maWcudG9rZW5VcmkpKVxuICAgICAgICAgICAgJiYgbnVsbCAhPSB0aGlzLmdldFJlZnJlc2hUb2tlbigpXG4gICAgICAgICAgICAmJiAoXG4gICAgICAgICAgICAgICAgbnVsbCA9PSB0aGlzLmFjY2Vzc1Rva2VuXG4gICAgICAgICAgICAgICAgfHwgKHRoaXMuYWNjZXNzVG9rZW4uZXhwIC0gdGhpcy5SRUZSRVNIX01BUkdJTl9TRUNPTkRTKSAqIDEwMDAgPCBEYXRlLm5vdygpXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIHBlcmZvcm1SZWZyZXNoKCk6IE9ic2VydmFibGU8SnNvbldlYlRva2VuPlxuICAgIHtcbiAgICAgICAgaWYgKG51bGwgPT0gdGhpcy5yZWZyZXNoVG9rZW5SZXF1ZXN0JCkge1xuXG4gICAgICAgICAgICB0aGlzLmxvZ2dlclNlcnZpY2UuaW5mbygnUGVyZm9ybWluZyB0b2tlbiByZWZlc2gnKTtcblxuICAgICAgICAgICAgY29uc3QgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKVxuICAgICAgICAgICAgICAgIC5zZXQoJ2dyYW50X3R5cGUnLCAncmVmcmVzaF90b2tlbicpXG4gICAgICAgICAgICAgICAgLnNldCgncmVmcmVzaF90b2tlbicsIFR5cGVVdGlscy5ub3ROdWxsKHRoaXMuZ2V0UmVmcmVzaFRva2VuKCkpKVxuICAgICAgICAgICAgICAgIC5zZXQoJ2NsaWVudF9pZCcsIHRoaXMuY29uZmlnLmNsaWVudElkKTtcblxuICAgICAgICAgICAgdGhpcy5yZWZyZXNoVG9rZW5SZXF1ZXN0JCA9IHRoaXMuaHR0cENsaWVudC5wb3N0PFRva2VuUmVzcG9uc2U+KHRoaXMuY29uZmlnLnRva2VuVXJpLCBwYXJhbXMpLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHRva2VuUmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMucHJvY2Vzc1Rva2VuUmVzcG9uc2UodG9rZW5SZXNwb25zZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVmcmVzaFRva2VuUmVxdWVzdCQgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdG9rZW47XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWNjZXNzVG9rZW5TdHJpbmcgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFjY2Vzc1Rva2VuID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oT0F1dGgyU2VydmljZS5TVE9SQUdFX0tFWV9SRUZSRVNIX1RPS0VOKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWZyZXNoVG9rZW5SZXF1ZXN0JCA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycm9yKTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBzaGFyZVJlcGxheSgxKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLnJlZnJlc2hUb2tlblJlcXVlc3QkO1xuICAgIH1cblxuICAgIHByaXZhdGUgcHJvY2Vzc1Rva2VuUmVzcG9uc2UodG9rZW5SZXNwb25zZTogVG9rZW5SZXNwb25zZSk6IEpzb25XZWJUb2tlblxuICAgIHtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oT0F1dGgyU2VydmljZS5TVE9SQUdFX0tFWV9DSEFMTEVOR0UpO1xuICAgICAgICB0aGlzLmFjY2Vzc1Rva2VuU3RyaW5nID0gdG9rZW5SZXNwb25zZS5hY2Nlc3NfdG9rZW47XG4gICAgICAgIHRoaXMuYWNjZXNzVG9rZW4gPSBKU09OLnBhcnNlKGF0b2IodG9rZW5SZXNwb25zZS5hY2Nlc3NfdG9rZW4uc3BsaXQoJy4nKVsxXSkpO1xuICAgICAgICB0aGlzLmxvZ2dlclNlcnZpY2UuaW5mbygnQWNjZXNzIFRva2VuIEV4cGlyeScsIG5ldyBEYXRlKHRoaXMuYWNjZXNzVG9rZW4hLmV4cCAqIDEwMDApKTtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oT0F1dGgyU2VydmljZS5TVE9SQUdFX0tFWV9SRUZSRVNIX1RPS0VOLCB0b2tlblJlc3BvbnNlLnJlZnJlc2hfdG9rZW4pO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmFjY2Vzc1Rva2VuITtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2xlYXIoKVxuICAgIHtcbiAgICAgICAgdGhpcy5hY2Nlc3NUb2tlbiA9IG51bGw7XG4gICAgICAgIHRoaXMuYWNjZXNzVG9rZW5TdHJpbmcgPSBudWxsO1xuICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShPQXV0aDJTZXJ2aWNlLlNUT1JBR0VfS0VZX1JFRlJFU0hfVE9LRU4pO1xuICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShPQXV0aDJTZXJ2aWNlLlNUT1JBR0VfS0VZX1JFVFVSTl9VUkwpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRSZXR1cm5VcmwodXJsOiBzdHJpbmcpXG4gICAge1xuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShPQXV0aDJTZXJ2aWNlLlNUT1JBR0VfS0VZX1JFVFVSTl9VUkwsIHVybCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFJldHVyblVybCgpOiBzdHJpbmcgfCBudWxsXG4gICAge1xuICAgICAgICByZXR1cm4gbG9jYWxTdG9yYWdlLmdldEl0ZW0oT0F1dGgyU2VydmljZS5TVE9SQUdFX0tFWV9SRVRVUk5fVVJMKTtcbiAgICB9XG59XG4iXX0=
@@ -29,13 +29,13 @@ export class RedirectToOAuth2LoginInterceptor {
29
29
  return throwError(err);
30
30
  }));
31
31
  }
32
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: RedirectToOAuth2LoginInterceptor, deps: [{ token: i1.OAuth2Service }, { token: i2.Router }, { token: DDR_OAUTH2_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable }); }
33
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: RedirectToOAuth2LoginInterceptor }); }
32
34
  }
33
- RedirectToOAuth2LoginInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: RedirectToOAuth2LoginInterceptor, deps: [{ token: i1.OAuth2Service }, { token: i2.Router }, { token: DDR_OAUTH2_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable });
34
- RedirectToOAuth2LoginInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: RedirectToOAuth2LoginInterceptor });
35
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: RedirectToOAuth2LoginInterceptor, decorators: [{
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: RedirectToOAuth2LoginInterceptor, decorators: [{
36
36
  type: Injectable
37
37
  }], ctorParameters: function () { return [{ type: i1.OAuth2Service }, { type: i2.Router }, { type: i3.OAuth2Config, decorators: [{
38
38
  type: Inject,
39
39
  args: [DDR_OAUTH2_CONFIG]
40
40
  }] }]; } });
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkaXJlY3QtdG8tb2F1dGgyLWxvZ2luLWludGVyY2VwdG9yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvb2F1dGgvcmVkaXJlY3QtdG8tb2F1dGgyLWxvZ2luLWludGVyY2VwdG9yLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGlCQUFpQixFQUF1RCxNQUFNLHNCQUFzQixDQUFDO0FBQzdHLE9BQU8sRUFBYSxVQUFVLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDNUMsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRzFDLE9BQU8sRUFBQyxpQkFBaUIsRUFBZSxNQUFNLGlCQUFpQixDQUFDOzs7OztBQUdoRSxNQUFNLE9BQU8sZ0NBQWdDO0lBRXpDLFlBQ1ksYUFBNEIsRUFDNUIsTUFBYyxFQUNhLFlBQTBCO1FBRnJELGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDYSxpQkFBWSxHQUFaLFlBQVksQ0FBYztJQUdqRSxDQUFDO0lBRUQ7O09BRUc7SUFDSSxTQUFTLENBQUMsR0FBcUIsRUFBRSxJQUFpQjtRQUVyRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBRTVDLElBQUksR0FBRyxZQUFZLGlCQUFpQixFQUFFO2dCQUNsQyxJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFO29CQUNwQixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLEVBQUU7d0JBQ2pFLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQzt3QkFDdEUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLEVBQUUsQ0FBQztxQkFDeEM7aUJBQ0o7YUFDSjtZQUVELE9BQU8sVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDUixDQUFDOzs2SEE1QlEsZ0NBQWdDLHFFQUs3QixpQkFBaUI7aUlBTHBCLGdDQUFnQzsyRkFBaEMsZ0NBQWdDO2tCQUQ1QyxVQUFVOzswQkFNRixNQUFNOzJCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SHR0cEVycm9yUmVzcG9uc2UsIEh0dHBFdmVudCwgSHR0cEhhbmRsZXIsIEh0dHBJbnRlcmNlcHRvciwgSHR0cFJlcXVlc3R9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgdGhyb3dFcnJvcn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge2NhdGNoRXJyb3J9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7Um91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtPQXV0aDJTZXJ2aWNlfSBmcm9tICcuL29hdXRoMi5zZXJ2aWNlJztcbmltcG9ydCB7RERSX09BVVRIMl9DT05GSUcsIE9BdXRoMkNvbmZpZ30gZnJvbSAnLi9vYXV0aDItY29uZmlnJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFJlZGlyZWN0VG9PQXV0aDJMb2dpbkludGVyY2VwdG9yIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9yXG57XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgb0F1dGgyU2VydmljZTogT0F1dGgyU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgQEluamVjdChERFJfT0FVVEgyX0NPTkZJRykgcHJpdmF0ZSBvQXV0aDJDb25maWc6IE9BdXRoMkNvbmZpZ1xuICAgIClcbiAgICB7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQG92ZXJyaWRlXG4gICAgICovXG4gICAgcHVibGljIGludGVyY2VwdChyZXE6IEh0dHBSZXF1ZXN0PGFueT4sIG5leHQ6IEh0dHBIYW5kbGVyKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj5cbiAgICB7XG4gICAgICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXEpLnBpcGUoY2F0Y2hFcnJvcigoZXJyKSA9PiB7XG5cbiAgICAgICAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBIdHRwRXJyb3JSZXNwb25zZSkge1xuICAgICAgICAgICAgICAgIGlmIChlcnIuc3RhdHVzID09PSA0MDEpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF3aW5kb3cubG9jYXRpb24uaHJlZi5zdGFydHNXaXRoKHRoaXMub0F1dGgyQ29uZmlnLnJlZGlyZWN0VXJpKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vQXV0aDJTZXJ2aWNlLnNldFJldHVyblVybCh0aGlzLnJvdXRlci5yb3V0ZXJTdGF0ZS5zbmFwc2hvdC51cmwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vQXV0aDJTZXJ2aWNlLnJlZGlyZWN0VG9Mb2dpbigpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihlcnIpO1xuICAgICAgICB9KSk7XG4gICAgfVxufVxuIl19
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkaXJlY3QtdG8tb2F1dGgyLWxvZ2luLWludGVyY2VwdG9yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvb2F1dGgvcmVkaXJlY3QtdG8tb2F1dGgyLWxvZ2luLWludGVyY2VwdG9yLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGlCQUFpQixFQUF1RCxNQUFNLHNCQUFzQixDQUFDO0FBQzdHLE9BQU8sRUFBYSxVQUFVLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDNUMsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRzFDLE9BQU8sRUFBQyxpQkFBaUIsRUFBZSxNQUFNLGlCQUFpQixDQUFDOzs7OztBQUdoRSxNQUFNLE9BQU8sZ0NBQWdDO0lBRXpDLFlBQ1ksYUFBNEIsRUFDNUIsTUFBYyxFQUNhLFlBQTBCO1FBRnJELGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDYSxpQkFBWSxHQUFaLFlBQVksQ0FBYztJQUdqRSxDQUFDO0lBRUQ7O09BRUc7SUFDSSxTQUFTLENBQUMsR0FBcUIsRUFBRSxJQUFpQjtRQUVyRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBRTVDLElBQUksR0FBRyxZQUFZLGlCQUFpQixFQUFFO2dCQUNsQyxJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFO29CQUNwQixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLEVBQUU7d0JBQ2pFLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQzt3QkFDdEUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLEVBQUUsQ0FBQztxQkFDeEM7aUJBQ0o7YUFDSjtZQUVELE9BQU8sVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDUixDQUFDOzhHQTVCUSxnQ0FBZ0MscUVBSzdCLGlCQUFpQjtrSEFMcEIsZ0NBQWdDOzsyRkFBaEMsZ0NBQWdDO2tCQUQ1QyxVQUFVOzswQkFNRixNQUFNOzJCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SHR0cEVycm9yUmVzcG9uc2UsIEh0dHBFdmVudCwgSHR0cEhhbmRsZXIsIEh0dHBJbnRlcmNlcHRvciwgSHR0cFJlcXVlc3R9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgdGhyb3dFcnJvcn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge2NhdGNoRXJyb3J9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7Um91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtPQXV0aDJTZXJ2aWNlfSBmcm9tICcuL29hdXRoMi5zZXJ2aWNlJztcbmltcG9ydCB7RERSX09BVVRIMl9DT05GSUcsIE9BdXRoMkNvbmZpZ30gZnJvbSAnLi9vYXV0aDItY29uZmlnJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFJlZGlyZWN0VG9PQXV0aDJMb2dpbkludGVyY2VwdG9yIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9yXG57XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgb0F1dGgyU2VydmljZTogT0F1dGgyU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgQEluamVjdChERFJfT0FVVEgyX0NPTkZJRykgcHJpdmF0ZSBvQXV0aDJDb25maWc6IE9BdXRoMkNvbmZpZ1xuICAgIClcbiAgICB7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQG92ZXJyaWRlXG4gICAgICovXG4gICAgcHVibGljIGludGVyY2VwdChyZXE6IEh0dHBSZXF1ZXN0PGFueT4sIG5leHQ6IEh0dHBIYW5kbGVyKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj5cbiAgICB7XG4gICAgICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXEpLnBpcGUoY2F0Y2hFcnJvcigoZXJyKSA9PiB7XG5cbiAgICAgICAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBIdHRwRXJyb3JSZXNwb25zZSkge1xuICAgICAgICAgICAgICAgIGlmIChlcnIuc3RhdHVzID09PSA0MDEpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF3aW5kb3cubG9jYXRpb24uaHJlZi5zdGFydHNXaXRoKHRoaXMub0F1dGgyQ29uZmlnLnJlZGlyZWN0VXJpKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vQXV0aDJTZXJ2aWNlLnNldFJldHVyblVybCh0aGlzLnJvdXRlci5yb3V0ZXJTdGF0ZS5zbmFwc2hvdC51cmwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vQXV0aDJTZXJ2aWNlLnJlZGlyZWN0VG9Mb2dpbigpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihlcnIpO1xuICAgICAgICB9KSk7XG4gICAgfVxufVxuIl19
@@ -32,16 +32,16 @@ export class BottomHitDirective {
32
32
  this.onElementBottomHit.emit();
33
33
  }
34
34
  }
35
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: BottomHitDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
36
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.3", type: BottomHitDirective, selector: "[ddrBottomHit]", outputs: { onWindowBottomHit: "onWindowBottomHit", onElementBottomHit: "onElementBottomHit" }, host: { listeners: { "scroll": "scrolled($event)", "window:scroll": "windowScrolled($event)" } }, ngImport: i0 }); }
35
37
  }
36
- BottomHitDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: BottomHitDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
37
- BottomHitDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.3", type: BottomHitDirective, selector: "[ddrBottomHit]", outputs: { onWindowBottomHit: "onWindowBottomHit", onElementBottomHit: "onElementBottomHit" }, host: { listeners: { "scroll": "scrolled($event)", "window:scroll": "windowScrolled($event)" } }, ngImport: i0 });
38
38
  __decorate([
39
39
  Limit()
40
40
  ], BottomHitDirective.prototype, "scrolled", null);
41
41
  __decorate([
42
42
  Limit()
43
43
  ], BottomHitDirective.prototype, "windowScrolled", null);
44
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: BottomHitDirective, decorators: [{
44
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: BottomHitDirective, decorators: [{
45
45
  type: Directive,
46
46
  args: [{
47
47
  selector: '[ddrBottomHit]'
@@ -57,4 +57,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImpor
57
57
  type: HostListener,
58
58
  args: ['window:scroll', ['$event']]
59
59
  }] } });
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm90dG9tLWhpdC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2Nyb2xsL2JvdHRvbS1oaXQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzVFLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQzs7QUFLL0MsTUFBTSxPQUFPLGtCQUFrQjtJQVUzQjtRQVJPLFdBQU0sR0FBRyxJQUFJLENBQUM7UUFHZCxzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBR3RDLHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFJaEQsQ0FBQztJQUlNLFFBQVEsQ0FBQyxNQUFhO1FBRXpCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBSU0sY0FBYyxDQUFDLE1BQWE7UUFFL0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFUyxpQkFBaUIsQ0FBQyxNQUFhO1FBRXJDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQ3ZCLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLFFBQVEsQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUNqRSxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsZUFBZSxDQUFDLFlBQVksRUFDakUsUUFBUSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQ3BFLENBQUM7UUFDRixNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQztRQUM3RCxNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUMsV0FBVyxJQUFJLFFBQVEsQ0FBQyxlQUFlLENBQUMsU0FBUyxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsQ0FBQztRQUNoSCxNQUFNLGdCQUFnQixHQUFHLFVBQVUsR0FBRyxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUMsQ0FBQztRQUN4RSxJQUFJLGdCQUFnQixHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDaEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDO1NBQ2pDO0lBQ0wsQ0FBQztJQUVTLGtCQUFrQixDQUFDLE1BQWE7UUFFdEMsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQXFCLENBQUM7UUFDNUMsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDO1FBQzlELE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUM7UUFDekMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLGNBQWMsR0FBRyxZQUFZLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ3ZFLElBQUksZ0JBQWdCLEVBQUU7WUFDbEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksRUFBRSxDQUFDO1NBQ2xDO0lBQ0wsQ0FBQzs7K0dBcERRLGtCQUFrQjttR0FBbEIsa0JBQWtCO0FBZ0IzQjtJQURDLEtBQUssRUFBRTtrREFJUDtBQUlEO0lBREMsS0FBSyxFQUFFO3dEQUlQOzJGQTFCUSxrQkFBa0I7a0JBSDlCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGdCQUFnQjtpQkFDN0I7MEVBTVUsaUJBQWlCO3NCQUR2QixNQUFNO2dCQUlDLGtCQUFrQjtzQkFEekIsTUFBTTtnQkFTQSxRQUFRO3NCQUZkLFlBQVk7dUJBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVMzQixjQUFjO3NCQUZwQixZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TGltaXR9IGZyb20gJy4uL21ldGhvZGRlY29yYXRvci9saW1pdCc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2RkckJvdHRvbUhpdF0nXG59KVxuZXhwb3J0IGNsYXNzIEJvdHRvbUhpdERpcmVjdGl2ZVxue1xuICAgIHB1YmxpYyBvZmZzZXQgPSAxMDAwO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIG9uV2luZG93Qm90dG9tSGl0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHJpdmF0ZSBvbkVsZW1lbnRCb3R0b21IaXQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBjb25zdHJ1Y3RvcigpXG4gICAge1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ3Njcm9sbCcsIFsnJGV2ZW50J10pXG4gICAgQExpbWl0KClcbiAgICBwdWJsaWMgc2Nyb2xsZWQoJGV2ZW50OiBFdmVudCk6IHZvaWRcbiAgICB7XG4gICAgICAgIHRoaXMuZWxlbWVudFNjcm9sbEV2ZW50KCRldmVudCk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignd2luZG93OnNjcm9sbCcsIFsnJGV2ZW50J10pXG4gICAgQExpbWl0KClcbiAgICBwdWJsaWMgd2luZG93U2Nyb2xsZWQoJGV2ZW50OiBFdmVudCk6IHZvaWRcbiAgICB7XG4gICAgICAgIHRoaXMud2luZG93U2Nyb2xsRXZlbnQoJGV2ZW50KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgd2luZG93U2Nyb2xsRXZlbnQoJGV2ZW50OiBFdmVudCk6IHZvaWRcbiAgICB7XG4gICAgICAgIGNvbnN0IHBhZ2VIZWlnaHQgPSBNYXRoLm1heChcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuc2Nyb2xsSGVpZ2h0LCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsSGVpZ2h0LFxuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRIZWlnaHQsIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5vZmZzZXRIZWlnaHQsXG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmNsaWVudEhlaWdodCwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodFxuICAgICAgICApO1xuICAgICAgICBjb25zdCB2aWV3cG9ydEhlaWdodCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQ7XG4gICAgICAgIGNvbnN0IHNjcm9sbFBvc2l0aW9uID0gd2luZG93LnBhZ2VZT2Zmc2V0IHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3AgfHwgZG9jdW1lbnQuYm9keS5zY3JvbGxUb3AgfHwgMDtcbiAgICAgICAgY29uc3QgZGlzdGFuY2VUb0JvdHRvbSA9IHBhZ2VIZWlnaHQgLSAoc2Nyb2xsUG9zaXRpb24gKyB2aWV3cG9ydEhlaWdodCk7XG4gICAgICAgIGlmIChkaXN0YW5jZVRvQm90dG9tIDwgdGhpcy5vZmZzZXQpIHtcbiAgICAgICAgICAgIHRoaXMub25XaW5kb3dCb3R0b21IaXQuZW1pdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGVsZW1lbnRTY3JvbGxFdmVudCgkZXZlbnQ6IEV2ZW50KTogdm9pZFxuICAgIHtcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gJGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgY29uc3Qgc2Nyb2xsUG9zaXRpb24gPSB0YXJnZXQuc2Nyb2xsSGVpZ2h0IC0gdGFyZ2V0LnNjcm9sbFRvcDtcbiAgICAgICAgY29uc3Qgb2Zmc2V0SGVpZ2h0ID0gdGFyZ2V0Lm9mZnNldEhlaWdodDtcbiAgICAgICAgY29uc3QgaXNSZWFjaGluZ0JvdHRvbSA9IChzY3JvbGxQb3NpdGlvbiAtIG9mZnNldEhlaWdodCkgPCB0aGlzLm9mZnNldDtcbiAgICAgICAgaWYgKGlzUmVhY2hpbmdCb3R0b20pIHtcbiAgICAgICAgICAgIHRoaXMub25FbGVtZW50Qm90dG9tSGl0LmVtaXQoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm90dG9tLWhpdC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2Nyb2xsL2JvdHRvbS1oaXQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzVFLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQzs7QUFLL0MsTUFBTSxPQUFPLGtCQUFrQjtJQVUzQjtRQVJPLFdBQU0sR0FBRyxJQUFJLENBQUM7UUFHZCxzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBR3RDLHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFJaEQsQ0FBQztJQUlNLFFBQVEsQ0FBQyxNQUFhO1FBRXpCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBSU0sY0FBYyxDQUFDLE1BQWE7UUFFL0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFUyxpQkFBaUIsQ0FBQyxNQUFhO1FBRXJDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQ3ZCLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLFFBQVEsQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUNqRSxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsZUFBZSxDQUFDLFlBQVksRUFDakUsUUFBUSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQ3BFLENBQUM7UUFDRixNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQztRQUM3RCxNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUMsV0FBVyxJQUFJLFFBQVEsQ0FBQyxlQUFlLENBQUMsU0FBUyxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsQ0FBQztRQUNoSCxNQUFNLGdCQUFnQixHQUFHLFVBQVUsR0FBRyxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUMsQ0FBQztRQUN4RSxJQUFJLGdCQUFnQixHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDaEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDO1NBQ2pDO0lBQ0wsQ0FBQztJQUVTLGtCQUFrQixDQUFDLE1BQWE7UUFFdEMsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQXFCLENBQUM7UUFDNUMsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDO1FBQzlELE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUM7UUFDekMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLGNBQWMsR0FBRyxZQUFZLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ3ZFLElBQUksZ0JBQWdCLEVBQUU7WUFDbEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksRUFBRSxDQUFDO1NBQ2xDO0lBQ0wsQ0FBQzs4R0FwRFEsa0JBQWtCO2tHQUFsQixrQkFBa0I7O0FBZ0JwQjtJQUROLEtBQUssRUFBRTtrREFJUDtBQUlNO0lBRE4sS0FBSyxFQUFFO3dEQUlQOzJGQTFCUSxrQkFBa0I7a0JBSDlCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGdCQUFnQjtpQkFDN0I7MEVBTVUsaUJBQWlCO3NCQUR2QixNQUFNO2dCQUlDLGtCQUFrQjtzQkFEekIsTUFBTTtnQkFTQSxRQUFRO3NCQUZkLFlBQVk7dUJBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVMzQixjQUFjO3NCQUZwQixZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TGltaXR9IGZyb20gJy4uL21ldGhvZGRlY29yYXRvci9saW1pdCc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2RkckJvdHRvbUhpdF0nXG59KVxuZXhwb3J0IGNsYXNzIEJvdHRvbUhpdERpcmVjdGl2ZVxue1xuICAgIHB1YmxpYyBvZmZzZXQgPSAxMDAwO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIG9uV2luZG93Qm90dG9tSGl0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHJpdmF0ZSBvbkVsZW1lbnRCb3R0b21IaXQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBjb25zdHJ1Y3RvcigpXG4gICAge1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ3Njcm9sbCcsIFsnJGV2ZW50J10pXG4gICAgQExpbWl0KClcbiAgICBwdWJsaWMgc2Nyb2xsZWQoJGV2ZW50OiBFdmVudCk6IHZvaWRcbiAgICB7XG4gICAgICAgIHRoaXMuZWxlbWVudFNjcm9sbEV2ZW50KCRldmVudCk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignd2luZG93OnNjcm9sbCcsIFsnJGV2ZW50J10pXG4gICAgQExpbWl0KClcbiAgICBwdWJsaWMgd2luZG93U2Nyb2xsZWQoJGV2ZW50OiBFdmVudCk6IHZvaWRcbiAgICB7XG4gICAgICAgIHRoaXMud2luZG93U2Nyb2xsRXZlbnQoJGV2ZW50KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgd2luZG93U2Nyb2xsRXZlbnQoJGV2ZW50OiBFdmVudCk6IHZvaWRcbiAgICB7XG4gICAgICAgIGNvbnN0IHBhZ2VIZWlnaHQgPSBNYXRoLm1heChcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuc2Nyb2xsSGVpZ2h0LCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsSGVpZ2h0LFxuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRIZWlnaHQsIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5vZmZzZXRIZWlnaHQsXG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmNsaWVudEhlaWdodCwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodFxuICAgICAgICApO1xuICAgICAgICBjb25zdCB2aWV3cG9ydEhlaWdodCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQ7XG4gICAgICAgIGNvbnN0IHNjcm9sbFBvc2l0aW9uID0gd2luZG93LnBhZ2VZT2Zmc2V0IHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3AgfHwgZG9jdW1lbnQuYm9keS5zY3JvbGxUb3AgfHwgMDtcbiAgICAgICAgY29uc3QgZGlzdGFuY2VUb0JvdHRvbSA9IHBhZ2VIZWlnaHQgLSAoc2Nyb2xsUG9zaXRpb24gKyB2aWV3cG9ydEhlaWdodCk7XG4gICAgICAgIGlmIChkaXN0YW5jZVRvQm90dG9tIDwgdGhpcy5vZmZzZXQpIHtcbiAgICAgICAgICAgIHRoaXMub25XaW5kb3dCb3R0b21IaXQuZW1pdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGVsZW1lbnRTY3JvbGxFdmVudCgkZXZlbnQ6IEV2ZW50KTogdm9pZFxuICAgIHtcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gJGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgY29uc3Qgc2Nyb2xsUG9zaXRpb24gPSB0YXJnZXQuc2Nyb2xsSGVpZ2h0IC0gdGFyZ2V0LnNjcm9sbFRvcDtcbiAgICAgICAgY29uc3Qgb2Zmc2V0SGVpZ2h0ID0gdGFyZ2V0Lm9mZnNldEhlaWdodDtcbiAgICAgICAgY29uc3QgaXNSZWFjaGluZ0JvdHRvbSA9IChzY3JvbGxQb3NpdGlvbiAtIG9mZnNldEhlaWdodCkgPCB0aGlzLm9mZnNldDtcbiAgICAgICAgaWYgKGlzUmVhY2hpbmdCb3R0b20pIHtcbiAgICAgICAgICAgIHRoaXMub25FbGVtZW50Qm90dG9tSGl0LmVtaXQoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -26,13 +26,13 @@ export class ScrollService {
26
26
  }, 1);
27
27
  }
28
28
  }
29
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: ScrollService, deps: [{ token: i1.Router }, { token: i2.ViewportScroller }], target: i0.ɵɵFactoryTarget.Injectable }); }
30
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: ScrollService, providedIn: 'root' }); }
29
31
  }
30
- ScrollService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: ScrollService, deps: [{ token: i1.Router }, { token: i2.ViewportScroller }], target: i0.ɵɵFactoryTarget.Injectable });
31
- ScrollService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: ScrollService, providedIn: 'root' });
32
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: ScrollService, decorators: [{
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: ScrollService, decorators: [{
33
33
  type: Injectable,
34
34
  args: [{
35
35
  providedIn: 'root'
36
36
  }]
37
37
  }], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.ViewportScroller }]; } });
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2Nyb2xsL3Njcm9sbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxlQUFlLEVBQVMsTUFBTSxpQkFBaUIsQ0FBQztBQUV4RCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDOzs7O0FBS3pDLE1BQU0sT0FBTyxhQUFhO0lBSXRCLFlBQW9CLE1BQWMsRUFBVSxnQkFBa0M7UUFBMUQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFVLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFGdEUsc0JBQWlCLEdBQWtDLElBQUksR0FBRyxFQUE0QixDQUFDO1FBSTNGLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTTthQUNiLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNYLElBQUksQ0FBQyxZQUFZLGVBQWUsRUFBRTtnQkFDOUIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO2FBQzFGO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRU0sT0FBTztRQUVWLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO1FBQzVCLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNqQyxzREFBc0Q7WUFDdEQsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDWixJQUFJLGNBQWMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNyRCxJQUFJLElBQUksSUFBSSxjQUFjO29CQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUN2RixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDVDtJQUNMLENBQUM7OzBHQXhCUSxhQUFhOzhHQUFiLGFBQWEsY0FGVixNQUFNOzJGQUVULGFBQWE7a0JBSHpCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOYXZpZ2F0aW9uU3RhcnQsIFJvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7Vmlld3BvcnRTY3JvbGxlcn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgU2Nyb2xsU2VydmljZVxue1xuICAgIHByaXZhdGUgc2Nyb2xsUG9zaXRpb25NYXA6IE1hcDxzdHJpbmcsIFtudW1iZXIsIG51bWJlcl0+ID0gbmV3IE1hcDxzdHJpbmcsIFtudW1iZXIsIG51bWJlcl0+KCk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlcjogUm91dGVyLCBwcml2YXRlIHZpZXdwb3J0U2Nyb2xsZXI6IFZpZXdwb3J0U2Nyb2xsZXIpXG4gICAge1xuICAgICAgICB0aGlzLnJvdXRlci5ldmVudHNcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoZSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uU3RhcnQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zY3JvbGxQb3NpdGlvbk1hcC5zZXQodGhpcy5yb3V0ZXIudXJsLCB0aGlzLnZpZXdwb3J0U2Nyb2xsZXIuZ2V0U2Nyb2xsUG9zaXRpb24oKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlc3RvcmUoKTogdm9pZFxuICAgIHtcbiAgICAgICAgY29uc3QgdXJsID0gdGhpcy5yb3V0ZXIudXJsO1xuICAgICAgICBpZiAodGhpcy5zY3JvbGxQb3NpdGlvbk1hcC5oYXModXJsKSkge1xuICAgICAgICAgICAgLyogUmVzdG9yZSBhZnRlciB0aW1lb3V0IHNvIHJlbmRlcmluZyB3YXMgY29tcGxldGVkICovXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgc2Nyb2xsUG9zaXRpb24gPSB0aGlzLnNjcm9sbFBvc2l0aW9uTWFwLmdldCh1cmwpO1xuICAgICAgICAgICAgICAgIGlmIChudWxsICE9IHNjcm9sbFBvc2l0aW9uKSB0aGlzLnZpZXdwb3J0U2Nyb2xsZXIuc2Nyb2xsVG9Qb3NpdGlvbihzY3JvbGxQb3NpdGlvbik7XG4gICAgICAgICAgICB9LCAxKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2Nyb2xsL3Njcm9sbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxlQUFlLEVBQVMsTUFBTSxpQkFBaUIsQ0FBQztBQUV4RCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDOzs7O0FBS3pDLE1BQU0sT0FBTyxhQUFhO0lBSXRCLFlBQW9CLE1BQWMsRUFBVSxnQkFBa0M7UUFBMUQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFVLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFGdEUsc0JBQWlCLEdBQWtDLElBQUksR0FBRyxFQUE0QixDQUFDO1FBSTNGLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTTthQUNiLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNYLElBQUksQ0FBQyxZQUFZLGVBQWUsRUFBRTtnQkFDOUIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO2FBQzFGO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRU0sT0FBTztRQUVWLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO1FBQzVCLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNqQyxzREFBc0Q7WUFDdEQsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDWixJQUFJLGNBQWMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNyRCxJQUFJLElBQUksSUFBSSxjQUFjO29CQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUN2RixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDVDtJQUNMLENBQUM7OEdBeEJRLGFBQWE7a0hBQWIsYUFBYSxjQUZWLE1BQU07OzJGQUVULGFBQWE7a0JBSHpCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOYXZpZ2F0aW9uU3RhcnQsIFJvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7Vmlld3BvcnRTY3JvbGxlcn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgU2Nyb2xsU2VydmljZVxue1xuICAgIHByaXZhdGUgc2Nyb2xsUG9zaXRpb25NYXA6IE1hcDxzdHJpbmcsIFtudW1iZXIsIG51bWJlcl0+ID0gbmV3IE1hcDxzdHJpbmcsIFtudW1iZXIsIG51bWJlcl0+KCk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlcjogUm91dGVyLCBwcml2YXRlIHZpZXdwb3J0U2Nyb2xsZXI6IFZpZXdwb3J0U2Nyb2xsZXIpXG4gICAge1xuICAgICAgICB0aGlzLnJvdXRlci5ldmVudHNcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoZSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uU3RhcnQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zY3JvbGxQb3NpdGlvbk1hcC5zZXQodGhpcy5yb3V0ZXIudXJsLCB0aGlzLnZpZXdwb3J0U2Nyb2xsZXIuZ2V0U2Nyb2xsUG9zaXRpb24oKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlc3RvcmUoKTogdm9pZFxuICAgIHtcbiAgICAgICAgY29uc3QgdXJsID0gdGhpcy5yb3V0ZXIudXJsO1xuICAgICAgICBpZiAodGhpcy5zY3JvbGxQb3NpdGlvbk1hcC5oYXModXJsKSkge1xuICAgICAgICAgICAgLyogUmVzdG9yZSBhZnRlciB0aW1lb3V0IHNvIHJlbmRlcmluZyB3YXMgY29tcGxldGVkICovXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgc2Nyb2xsUG9zaXRpb24gPSB0aGlzLnNjcm9sbFBvc2l0aW9uTWFwLmdldCh1cmwpO1xuICAgICAgICAgICAgICAgIGlmIChudWxsICE9IHNjcm9sbFBvc2l0aW9uKSB0aGlzLnZpZXdwb3J0U2Nyb2xsZXIuc2Nyb2xsVG9Qb3NpdGlvbihzY3JvbGxQb3NpdGlvbik7XG4gICAgICAgICAgICB9LCAxKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,53 @@
1
+ import { DDR_STORAGE_PREFIX, StorageService } from './storage.service';
2
+ import { Inject, Injectable } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../logger/logger.service";
5
+ export class LocalStorageService extends StorageService {
6
+ constructor(storagePrefix, logger) {
7
+ super();
8
+ this.storagePrefix = storagePrefix;
9
+ this.logger = logger;
10
+ }
11
+ /**
12
+ * @override
13
+ */
14
+ retrieve(key, defaultValue = null) {
15
+ let fullKey = this.getFullKey(key);
16
+ let valueJson = localStorage.getItem(fullKey);
17
+ if (null == valueJson) {
18
+ return defaultValue;
19
+ }
20
+ try {
21
+ return JSON.parse(valueJson);
22
+ }
23
+ catch (e) {
24
+ this.logger.warn('Could not parse json value', valueJson, e);
25
+ localStorage.removeItem(fullKey);
26
+ return null;
27
+ }
28
+ }
29
+ /**
30
+ * @override
31
+ */
32
+ store(key, value) {
33
+ localStorage.setItem(this.getFullKey(key), JSON.stringify(value));
34
+ }
35
+ /**
36
+ * @override
37
+ */
38
+ remove(key) {
39
+ localStorage.removeItem(this.getFullKey(key));
40
+ }
41
+ getFullKey(key) {
42
+ return this.storagePrefix + '.' + key;
43
+ }
44
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: LocalStorageService, deps: [{ token: DDR_STORAGE_PREFIX }, { token: i1.Logger }], target: i0.ɵɵFactoryTarget.Injectable }); }
45
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: LocalStorageService }); }
46
+ }
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: LocalStorageService, decorators: [{
48
+ type: Injectable
49
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
50
+ type: Inject,
51
+ args: [DDR_STORAGE_PREFIX]
52
+ }] }, { type: i1.Logger }]; } });
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtc3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3N0b3JhZ2UvbG9jYWwtc3RvcmFnZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxrQkFBa0IsRUFBRSxjQUFjLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUNyRSxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7O0FBSWpELE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxjQUFjO0lBRW5ELFlBQzBDLGFBQXFCLEVBQ2pELE1BQWM7UUFHeEIsS0FBSyxFQUFFLENBQUM7UUFKOEIsa0JBQWEsR0FBYixhQUFhLENBQVE7UUFDakQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUk1QixDQUFDO0lBRUQ7O09BRUc7SUFDSSxRQUFRLENBQUksR0FBVyxFQUFFLGVBQXlCLElBQUk7UUFFekQsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuQyxJQUFJLFNBQVMsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzlDLElBQUksSUFBSSxJQUFJLFNBQVMsRUFBRTtZQUNuQixPQUFPLFlBQVksQ0FBQztTQUN2QjtRQUVELElBQUk7WUFDQSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDaEM7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNSLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLDRCQUE0QixFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUM3RCxZQUFZLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2pDLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUksR0FBVyxFQUFFLEtBQVE7UUFFakMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsR0FBVztRQUVyQixZQUFZLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRVMsVUFBVSxDQUFDLEdBQVc7UUFFNUIsT0FBTyxJQUFJLENBQUMsYUFBYSxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUM7SUFDMUMsQ0FBQzs4R0FqRFEsbUJBQW1CLGtCQUdoQixrQkFBa0I7a0hBSHJCLG1CQUFtQjs7MkZBQW5CLG1CQUFtQjtrQkFEL0IsVUFBVTs7MEJBSUYsTUFBTTsyQkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0REUl9TVE9SQUdFX1BSRUZJWCwgU3RvcmFnZVNlcnZpY2V9IGZyb20gJy4vc3RvcmFnZS5zZXJ2aWNlJztcbmltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TG9nZ2VyfSBmcm9tICcuLi9sb2dnZXIvbG9nZ2VyLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTG9jYWxTdG9yYWdlU2VydmljZSBleHRlbmRzIFN0b3JhZ2VTZXJ2aWNlXG57XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoRERSX1NUT1JBR0VfUFJFRklYKSBwcm90ZWN0ZWQgc3RvcmFnZVByZWZpeDogc3RyaW5nLFxuICAgICAgICBwcm90ZWN0ZWQgbG9nZ2VyOiBMb2dnZXJcbiAgICApXG4gICAge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBvdmVycmlkZVxuICAgICAqL1xuICAgIHB1YmxpYyByZXRyaWV2ZTxUPihrZXk6IHN0cmluZywgZGVmYXVsdFZhbHVlOiBUIHwgbnVsbCA9IG51bGwpOiBUIHwgbnVsbFxuICAgIHtcbiAgICAgICAgbGV0IGZ1bGxLZXkgPSB0aGlzLmdldEZ1bGxLZXkoa2V5KTtcbiAgICAgICAgbGV0IHZhbHVlSnNvbiA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKGZ1bGxLZXkpO1xuICAgICAgICBpZiAobnVsbCA9PSB2YWx1ZUpzb24pIHtcbiAgICAgICAgICAgIHJldHVybiBkZWZhdWx0VmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UodmFsdWVKc29uKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgdGhpcy5sb2dnZXIud2FybignQ291bGQgbm90IHBhcnNlIGpzb24gdmFsdWUnLCB2YWx1ZUpzb24sIGUpO1xuICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oZnVsbEtleSk7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBvdmVycmlkZVxuICAgICAqL1xuICAgIHB1YmxpYyBzdG9yZTxUPihrZXk6IHN0cmluZywgdmFsdWU6IFQpOiB2b2lkXG4gICAge1xuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmdldEZ1bGxLZXkoa2V5KSwgSlNPTi5zdHJpbmdpZnkodmFsdWUpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAb3ZlcnJpZGVcbiAgICAgKi9cbiAgICBwdWJsaWMgcmVtb3ZlKGtleTogc3RyaW5nKVxuICAgIHtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0odGhpcy5nZXRGdWxsS2V5KGtleSkpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRGdWxsS2V5KGtleTogc3RyaW5nKTogc3RyaW5nXG4gICAge1xuICAgICAgICByZXR1cm4gdGhpcy5zdG9yYWdlUHJlZml4ICsgJy4nICsga2V5O1xuICAgIH1cbn1cbiJdfQ==
@@ -9,11 +9,11 @@ export class VisibilityService {
9
9
  getVisibilityObservable() {
10
10
  return this.visibility$;
11
11
  }
12
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: VisibilityService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
13
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: VisibilityService, providedIn: 'root' }); }
12
14
  }
13
- VisibilityService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: VisibilityService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
14
- VisibilityService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: VisibilityService, providedIn: 'root' });
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: VisibilityService, decorators: [{
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: VisibilityService, decorators: [{
16
16
  type: Injectable,
17
17
  args: [{ providedIn: 'root' }]
18
18
  }], ctorParameters: function () { return []; } });
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzaWJpbGl0eS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Zpc2liaWxpdHkvdmlzaWJpbGl0eS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQWEsTUFBTSxNQUFNLENBQUM7QUFDbEQsT0FBTyxFQUFDLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDOztBQUcvRixNQUFNLE9BQU8saUJBQWlCO0lBSTFCO1FBRUksSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQ3BCLFNBQVMsQ0FBQyxRQUFRLEVBQUUsa0JBQWtCLENBQUMsRUFDdkMsU0FBUyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsRUFDMUIsU0FBUyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FDNUIsQ0FBQyxJQUFJLENBQ0YsWUFBWSxDQUFDLEVBQUUsQ0FBQyxFQUNoQixTQUFTLENBQUMsSUFBSSxDQUFDLEVBQ2YsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUM5QixvQkFBb0IsRUFBRSxFQUN0QixXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2pCLENBQUM7SUFDTixDQUFDO0lBRU0sdUJBQXVCO1FBRTFCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDOzs4R0F0QlEsaUJBQWlCO2tIQUFqQixpQkFBaUIsY0FETCxNQUFNOzJGQUNsQixpQkFBaUI7a0JBRDdCLFVBQVU7bUJBQUMsRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7ZnJvbUV2ZW50LCBtZXJnZSwgT2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2RlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgc2hhcmVSZXBsYXksIHN0YXJ0V2l0aH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogJ3Jvb3QnfSlcbmV4cG9ydCBjbGFzcyBWaXNpYmlsaXR5U2VydmljZVxue1xuICAgIHByaXZhdGUgdmlzaWJpbGl0eSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgICBjb25zdHJ1Y3RvcigpXG4gICAge1xuICAgICAgICB0aGlzLnZpc2liaWxpdHkkID0gbWVyZ2UoXG4gICAgICAgICAgICBmcm9tRXZlbnQoZG9jdW1lbnQsICd2aXNpYmlsaXR5Y2hhbmdlJyksXG4gICAgICAgICAgICBmcm9tRXZlbnQod2luZG93LCAnZm9jdXMnKSxcbiAgICAgICAgICAgIGZyb21FdmVudCh3aW5kb3csICdibHVyJylcbiAgICAgICAgKS5waXBlKFxuICAgICAgICAgICAgZGVib3VuY2VUaW1lKDUwKSxcbiAgICAgICAgICAgIHN0YXJ0V2l0aCh0cnVlKSxcbiAgICAgICAgICAgIG1hcCgoKSA9PiBkb2N1bWVudC5oYXNGb2N1cygpKSxcbiAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgICAgICBzaGFyZVJlcGxheSgxKSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0VmlzaWJpbGl0eU9ic2VydmFibGUoKTogT2JzZXJ2YWJsZTxib29sZWFuPlxuICAgIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmlzaWJpbGl0eSQ7XG4gICAgfVxufVxuIl19
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzaWJpbGl0eS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Zpc2liaWxpdHkvdmlzaWJpbGl0eS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQWEsTUFBTSxNQUFNLENBQUM7QUFDbEQsT0FBTyxFQUFDLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDOztBQUcvRixNQUFNLE9BQU8saUJBQWlCO0lBSTFCO1FBRUksSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQ3BCLFNBQVMsQ0FBQyxRQUFRLEVBQUUsa0JBQWtCLENBQUMsRUFDdkMsU0FBUyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsRUFDMUIsU0FBUyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FDNUIsQ0FBQyxJQUFJLENBQ0YsWUFBWSxDQUFDLEVBQUUsQ0FBQyxFQUNoQixTQUFTLENBQUMsSUFBSSxDQUFDLEVBQ2YsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUM5QixvQkFBb0IsRUFBRSxFQUN0QixXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2pCLENBQUM7SUFDTixDQUFDO0lBRU0sdUJBQXVCO1FBRTFCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDOzhHQXRCUSxpQkFBaUI7a0hBQWpCLGlCQUFpQixjQURMLE1BQU07OzJGQUNsQixpQkFBaUI7a0JBRDdCLFVBQVU7bUJBQUMsRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7ZnJvbUV2ZW50LCBtZXJnZSwgT2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2RlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgc2hhcmVSZXBsYXksIHN0YXJ0V2l0aH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogJ3Jvb3QnfSlcbmV4cG9ydCBjbGFzcyBWaXNpYmlsaXR5U2VydmljZVxue1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdmlzaWJpbGl0eSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgICBjb25zdHJ1Y3RvcigpXG4gICAge1xuICAgICAgICB0aGlzLnZpc2liaWxpdHkkID0gbWVyZ2UoXG4gICAgICAgICAgICBmcm9tRXZlbnQoZG9jdW1lbnQsICd2aXNpYmlsaXR5Y2hhbmdlJyksXG4gICAgICAgICAgICBmcm9tRXZlbnQod2luZG93LCAnZm9jdXMnKSxcbiAgICAgICAgICAgIGZyb21FdmVudCh3aW5kb3csICdibHVyJylcbiAgICAgICAgKS5waXBlKFxuICAgICAgICAgICAgZGVib3VuY2VUaW1lKDUwKSxcbiAgICAgICAgICAgIHN0YXJ0V2l0aCh0cnVlKSxcbiAgICAgICAgICAgIG1hcCgoKSA9PiBkb2N1bWVudC5oYXNGb2N1cygpKSxcbiAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgICAgICBzaGFyZVJlcGxheSgxKSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0VmlzaWJpbGl0eU9ic2VydmFibGUoKTogT2JzZXJ2YWJsZTxib29sZWFuPlxuICAgIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmlzaWJpbGl0eSQ7XG4gICAgfVxufVxuIl19