@dontdrinkandroot/ngx-extensions 0.3.2 → 0.5.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 (61) hide show
  1. package/esm2022/src/cookie/cookie.service.mjs +135 -0
  2. package/esm2022/src/ddr-extensions.module.mjs +67 -0
  3. package/esm2022/src/http/redirect-to-login-interceptor.service.mjs +35 -0
  4. package/{esm2020 → esm2022}/src/http/with-credentials-interceptor.service.mjs +4 -4
  5. package/esm2022/src/image/lazy-image.directive.mjs +132 -0
  6. package/esm2022/src/jwt/jwt-interceptor.service.mjs +26 -0
  7. package/esm2022/src/jwt/jwt-refresh-token-interceptor.service.mjs +50 -0
  8. package/{esm2020 → esm2022}/src/jwt/jwt.service.mjs +5 -5
  9. package/esm2022/src/logger/console-logger.service.mjs +43 -0
  10. package/esm2022/src/methoddecorator/limit.mjs +16 -0
  11. package/esm2022/src/oauth/oauth2-access-token-interceptor.service.mjs +26 -0
  12. package/esm2022/src/oauth/oauth2-error.mjs +8 -0
  13. package/esm2022/src/oauth/oauth2-refresh-token-interceptor.service.mjs +24 -0
  14. package/{esm2020 → esm2022}/src/oauth/oauth2.module.mjs +5 -5
  15. package/esm2022/src/oauth/oauth2.service.mjs +125 -0
  16. package/esm2022/src/oauth/redirect-to-oauth2-login-interceptor.service.mjs +41 -0
  17. package/esm2022/src/scroll/bottom-hit.directive.mjs +60 -0
  18. package/esm2022/src/scroll/scroll.service.mjs +38 -0
  19. package/esm2022/src/storage/local-storage.service.mjs +53 -0
  20. package/esm2022/src/util/collection-utils.mjs +27 -0
  21. package/{esm2020 → esm2022}/src/util/number-utils.mjs +1 -1
  22. package/esm2022/src/util/string-utils.mjs +35 -0
  23. package/esm2022/src/util/type-utils.mjs +9 -0
  24. package/{esm2020 → esm2022}/src/visibility/visibility.service.mjs +5 -5
  25. package/{fesm2020 → fesm2022}/dontdrinkandroot-ngx-extensions.mjs +102 -100
  26. package/{fesm2020 → fesm2022}/dontdrinkandroot-ngx-extensions.mjs.map +1 -1
  27. package/package.json +9 -15
  28. package/src/image/lazy-image.directive.d.ts +1 -1
  29. package/esm2020/src/cookie/cookie.service.mjs +0 -135
  30. package/esm2020/src/ddr-extensions.module.mjs +0 -67
  31. package/esm2020/src/http/redirect-to-login-interceptor.service.mjs +0 -35
  32. package/esm2020/src/image/lazy-image.directive.mjs +0 -132
  33. package/esm2020/src/jwt/jwt-interceptor.service.mjs +0 -26
  34. package/esm2020/src/jwt/jwt-refresh-token-interceptor.service.mjs +0 -50
  35. package/esm2020/src/logger/console-logger.service.mjs +0 -43
  36. package/esm2020/src/methoddecorator/limit.mjs +0 -16
  37. package/esm2020/src/oauth/oauth2-access-token-interceptor.service.mjs +0 -26
  38. package/esm2020/src/oauth/oauth2-error.mjs +0 -8
  39. package/esm2020/src/oauth/oauth2-refresh-token-interceptor.service.mjs +0 -24
  40. package/esm2020/src/oauth/oauth2.service.mjs +0 -125
  41. package/esm2020/src/oauth/redirect-to-oauth2-login-interceptor.service.mjs +0 -41
  42. package/esm2020/src/scroll/bottom-hit.directive.mjs +0 -60
  43. package/esm2020/src/scroll/scroll.service.mjs +0 -38
  44. package/esm2020/src/storage/local-storage.service.mjs +0 -53
  45. package/esm2020/src/util/collection-utils.mjs +0 -27
  46. package/esm2020/src/util/string-utils.mjs +0 -35
  47. package/esm2020/src/util/type-utils.mjs +0 -9
  48. package/fesm2015/dontdrinkandroot-ngx-extensions.mjs +0 -1132
  49. package/fesm2015/dontdrinkandroot-ngx-extensions.mjs.map +0 -1
  50. /package/{esm2020 → esm2022}/dontdrinkandroot-ngx-extensions.mjs +0 -0
  51. /package/{esm2020 → esm2022}/public-api.mjs +0 -0
  52. /package/{esm2020 → esm2022}/src/http/url-info.mjs +0 -0
  53. /package/{esm2020 → esm2022}/src/jwt/jwt-token-response.mjs +0 -0
  54. /package/{esm2020 → esm2022}/src/logger/logger.service.mjs +0 -0
  55. /package/{esm2020 → esm2022}/src/methoddecorator/debounce.mjs +0 -0
  56. /package/{esm2020 → esm2022}/src/oauth/json-web-token.mjs +0 -0
  57. /package/{esm2020 → esm2022}/src/oauth/oauth2-config.mjs +0 -0
  58. /package/{esm2020 → esm2022}/src/oauth/token-response.mjs +0 -0
  59. /package/{esm2020 → esm2022}/src/storage/storage.service.mjs +0 -0
  60. /package/{esm2020 → esm2022}/src/typeguard/is-non-null.mjs +0 -0
  61. /package/{esm2020 → esm2022}/src/util/object-utils.mjs +0 -0
@@ -1,125 +0,0 @@
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
- constructor(route, httpClient, loggerService, config) {
16
- this.route = route;
17
- this.httpClient = httpClient;
18
- this.loggerService = loggerService;
19
- this.config = config;
20
- this.accessTokenString = null;
21
- this.accessToken = null;
22
- this.REFRESH_MARGIN_SECONDS = 60 * 10;
23
- this.refreshTokenRequest$ = null;
24
- }
25
- redirectToLogin() {
26
- const challenge = this.createChallenge();
27
- localStorage.setItem(OAuth2Service.STORAGE_KEY_CHALLENGE, challenge);
28
- const params = new HttpParams()
29
- .set('client_id', this.config.clientId)
30
- .set('response_type', 'code')
31
- .set('redirect_uri', this.config.redirectUri)
32
- .set('code_challenge', challenge)
33
- .set('code_challenge_method', 'plain');
34
- window.location.href = this.config.authorizeUri + '?' + params.toString();
35
- }
36
- handleCode() {
37
- if (this.route.snapshot.queryParamMap.has('error')) {
38
- const error = this.route.snapshot.queryParamMap.get('error');
39
- return throwError(() => new OAuth2Error(error ?? 'Unknown error'));
40
- }
41
- if (!this.route.snapshot.queryParamMap.has('code')) {
42
- return throwError(() => new OAuth2Error(OAuth2Error.CODE_NOT_FOUND));
43
- }
44
- const code = TypeUtils.notNull(this.route.snapshot.queryParamMap.get('code'));
45
- const params = new HttpParams()
46
- .set('grant_type', 'authorization_code')
47
- .set('code', code)
48
- .set('redirect_uri', this.config.redirectUri)
49
- .set('code_verifier', TypeUtils.notNull(localStorage.getItem(OAuth2Service.STORAGE_KEY_CHALLENGE)))
50
- .set('client_id', this.config.clientId);
51
- return this.httpClient.post(this.config.tokenUri, params).pipe(map(tokenResponse => this.processTokenResponse(tokenResponse)));
52
- }
53
- createChallenge() {
54
- return StringUtils.createRandomString(64, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890-._~');
55
- }
56
- getRefreshToken() {
57
- return localStorage.getItem(OAuth2Service.STORAGE_KEY_REFRESH_TOKEN);
58
- }
59
- getAccessTokenString() {
60
- return this.accessTokenString;
61
- }
62
- isAccessTokenExpired() {
63
- return (null == this.accessToken
64
- || this.accessToken.exp * 1000 < Date.now());
65
- }
66
- isRefreshPossibleAndRequired(req = null) {
67
- return ((null == req || !req.url.endsWith(this.config.tokenUri))
68
- && null != this.getRefreshToken()
69
- && (null == this.accessToken
70
- || (this.accessToken.exp - this.REFRESH_MARGIN_SECONDS) * 1000 < Date.now()));
71
- }
72
- performRefresh() {
73
- if (null == this.refreshTokenRequest$) {
74
- this.loggerService.info('Performing token refesh');
75
- const params = new HttpParams()
76
- .set('grant_type', 'refresh_token')
77
- .set('refresh_token', TypeUtils.notNull(this.getRefreshToken()))
78
- .set('client_id', this.config.clientId);
79
- this.refreshTokenRequest$ = this.httpClient.post(this.config.tokenUri, params).pipe(map(tokenResponse => {
80
- const token = this.processTokenResponse(tokenResponse);
81
- this.refreshTokenRequest$ = null;
82
- return token;
83
- }), catchError(error => {
84
- this.accessTokenString = null;
85
- this.accessToken = null;
86
- localStorage.removeItem(OAuth2Service.STORAGE_KEY_REFRESH_TOKEN);
87
- this.refreshTokenRequest$ = null;
88
- return throwError(error);
89
- }), shareReplay(1));
90
- }
91
- return this.refreshTokenRequest$;
92
- }
93
- processTokenResponse(tokenResponse) {
94
- localStorage.removeItem(OAuth2Service.STORAGE_KEY_CHALLENGE);
95
- this.accessTokenString = tokenResponse.access_token;
96
- this.accessToken = JSON.parse(atob(tokenResponse.access_token.split('.')[1]));
97
- this.loggerService.info('Access Token Expiry', new Date(this.accessToken.exp * 1000));
98
- localStorage.setItem(OAuth2Service.STORAGE_KEY_REFRESH_TOKEN, tokenResponse.refresh_token);
99
- return this.accessToken;
100
- }
101
- clear() {
102
- this.accessToken = null;
103
- this.accessTokenString = null;
104
- localStorage.removeItem(OAuth2Service.STORAGE_KEY_REFRESH_TOKEN);
105
- localStorage.removeItem(OAuth2Service.STORAGE_KEY_RETURN_URL);
106
- }
107
- setReturnUrl(url) {
108
- localStorage.setItem(OAuth2Service.STORAGE_KEY_RETURN_URL, url);
109
- }
110
- getReturnUrl() {
111
- return localStorage.getItem(OAuth2Service.STORAGE_KEY_RETURN_URL);
112
- }
113
- }
114
- OAuth2Service.STORAGE_KEY_CHALLENGE = 'ddr_oauth2_challenge';
115
- OAuth2Service.STORAGE_KEY_REFRESH_TOKEN = 'ddr_oauth2_refresh_token';
116
- OAuth2Service.STORAGE_KEY_RETURN_URL = 'ddr_oauth2_return_url';
117
- OAuth2Service.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: OAuth2Service, deps: [{ token: i1.ActivatedRoute }, { token: i2.HttpClient }, { token: i3.Logger }, { token: DDR_OAUTH2_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable });
118
- OAuth2Service.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: OAuth2Service });
119
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2F1dGgyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvb2F1dGgvb2F1dGgyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFakQsT0FBTyxFQUFhLFVBQVUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUM1QyxPQUFPLEVBQWEsVUFBVSxFQUFjLE1BQU0sc0JBQXNCLENBQUM7QUFDekUsT0FBTyxFQUFDLFVBQVUsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFHNUQsT0FBTyxFQUFDLGlCQUFpQixFQUFlLE1BQU0saUJBQWlCLENBQUM7QUFDaEUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUM3QyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sc0JBQXNCLENBQUM7Ozs7OztBQUlqRCxNQUFNLE9BQU8sYUFBYTtJQWdCdEIsWUFDWSxLQUFxQixFQUNyQixVQUFzQixFQUN0QixhQUFxQixFQUNNLE1BQW9CO1FBSC9DLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsa0JBQWEsR0FBYixhQUFhLENBQVE7UUFDTSxXQUFNLEdBQU4sTUFBTSxDQUFjO1FBWm5ELHNCQUFpQixHQUFrQixJQUFJLENBQUM7UUFFeEMsZ0JBQVcsR0FBd0IsSUFBSSxDQUFDO1FBRS9CLDJCQUFzQixHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFFMUMseUJBQW9CLEdBQW9DLElBQUksQ0FBQztJQVNyRSxDQUFDO0lBRU0sZUFBZTtRQUVsQixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDekMsWUFBWSxDQUFDLE9BQU8s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QUFJLENBQUM7UUFDeEIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztRQUM5QixZQUFZLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBQ2pFLFlBQVksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVNLFlBQVksQ0FBQyxHQUFXO1FBRTNCLFlBQVksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLHNCQUFzQixFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFTSxZQUFZO1FBRWYsT0FBTyxZQUFZLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7O0FBMUpjLG1DQUFxQixHQUFHLHNCQUFzQixDQUFDO0FBRS9DLHVDQUF5QixHQUFHLDBCQUEwQixDQUFDO0FBRXhELG9DQUFzQixHQUFHLHVCQUF1QixDQUFDOzBHQU50RCxhQUFhLGdHQW9CVixpQkFBaUI7OEdBcEJwQixhQUFhOzJGQUFiLGFBQWE7a0JBRHpCLFVBQVU7OzBCQXFCRixNQUFNOzJCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGV9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge09ic2VydmFibGUsIHRocm93RXJyb3J9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtIdHRwQ2xpZW50LCBIdHRwUGFyYW1zLCBIdHRwUmVxdWVzdH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtjYXRjaEVycm9yLCBtYXAsIHNoYXJlUmVwbGF5fSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1Rva2VuUmVzcG9uc2V9IGZyb20gJy4vdG9rZW4tcmVzcG9uc2UnO1xuaW1wb3J0IHtKc29uV2ViVG9rZW59IGZyb20gJy4vanNvbi13ZWItdG9rZW4nO1xuaW1wb3J0IHtERFJfT0FVVEgyX0NPTkZJRywgT0F1dGgyQ29uZmlnfSBmcm9tICcuL29hdXRoMi1jb25maWcnO1xuaW1wb3J0IHtPQXV0aDJFcnJvcn0gZnJvbSAnLi9vYXV0aDItZXJyb3InO1xuaW1wb3J0IHtUeXBlVXRpbHN9IGZyb20gJy4uL3V0aWwvdHlwZS11dGlscyc7XG5pbXBvcnQge1N0cmluZ1V0aWxzfSBmcm9tICcuLi91dGlsL3N0cmluZy11dGlscyc7XG5pbXBvcnQge0xvZ2dlcn0gZnJvbSAnLi4vbG9nZ2VyL2xvZ2dlci5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE9BdXRoMlNlcnZpY2VcbntcbiAgICBwcml2YXRlIHN0YXRpYyBTVE9SQUdFX0tFWV9DSEFMTEVOR0UgPSAnZGRyX29hdXRoMl9jaGFsbGVuZ2UnO1xuXG4gICAgcHJpdmF0ZSBzdGF0aWMgU1RPUkFHRV9LRVlfUkVGUkVTSF9UT0tFTiA9ICdkZHJfb2F1dGgyX3JlZnJlc2hfdG9rZW4nO1xuXG4gICAgcHVibGljIHN0YXRpYyBTVE9SQUdFX0tFWV9SRVRVUk5fVVJMID0gJ2Rkcl9vYXV0aDJfcmV0dXJuX3VybCc7XG5cbiAgICBwcml2YXRlIGFjY2Vzc1Rva2VuU3RyaW5nOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAgIHByaXZhdGUgYWNjZXNzVG9rZW46IEpzb25XZWJUb2tlbiB8IG51bGwgPSBudWxsO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBSRUZSRVNIX01BUkdJTl9TRUNPTkRTID0gNjAgKiAxMDtcblxuICAgIHByaXZhdGUgcmVmcmVzaFRva2VuUmVxdWVzdCQ6IE9ic2VydmFibGU8SnNvbldlYlRva2VuPiB8IG51bGwgPSBudWxsO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgICAgICBwcml2YXRlIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsXG4gICAgICAgIHByaXZhdGUgbG9nZ2VyU2VydmljZTogTG9nZ2VyLFxuICAgICAgICBASW5qZWN0KEREUl9PQVVUSDJfQ09ORklHKSBwcml2YXRlIGNvbmZpZzogT0F1dGgyQ29uZmlnXG4gICAgKVxuICAgIHtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVkaXJlY3RUb0xvZ2luKClcbiAgICB7XG4gICAgICAgIGNvbnN0IGNoYWxsZW5nZSA9IHRoaXMuY3JlYXRlQ2hhbGxlbmdlKCk7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKE9BdXRoMlNlcnZpY2UuU1RPUkFHRV9LRVlfQ0hBTExFTkdFLCBjaGFsbGVuZ2UpO1xuXG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKClcbiAgICAgICAgICAgIC5zZXQoJ2NsaWVudF9pZCcsIHRoaXMuY29uZmlnLmNsaWVudElkKVxuICAgICAgICAgICAgLnNldCgncmVzcG9uc2VfdHlwZScsICdjb2RlJylcbiAgICAgICAgICAgIC5zZXQoJ3JlZGlyZWN0X3VyaScsIHRoaXMuY29uZmlnLnJlZGlyZWN0VXJpKVxuICAgICAgICAgICAgLnNldCgnY29kZV9jaGFsbGVuZ2UnLCBjaGFsbGVuZ2UpXG4gICAgICAgICAgICAuc2V0KCdjb2RlX2NoYWxsZW5nZV9tZXRob2QnLCAncGxhaW4nKTtcblxuICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHRoaXMuY29uZmlnLmF1dGhvcml6ZVVyaSArICc/JyArIHBhcmFtcy50b1N0cmluZygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBoYW5kbGVDb2RlKCk6IE9ic2VydmFibGU8SnNvbldlYlRva2VuPlxuICAgIHtcbiAgICAgICAgaWYgKHRoaXMucm91dGUuc25hcHNob3QucXVlcnlQYXJhbU1hcC5oYXMoJ2Vycm9yJykpIHtcbiAgICAgICAgICAgIGNvbnN0IGVycm9yID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtTWFwLmdldCgnZXJyb3InKTtcbiAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IG5ldyBPQXV0aDJFcnJvcihlcnJvciA/PyAnVW5rbm93biBlcnJvcicpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtTWFwLmhhcygnY29kZScpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgT0F1dGgyRXJyb3IoT0F1dGgyRXJyb3IuQ09ERV9OT1RfRk9VTkQpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNvZGUgPSBUeXBlVXRpbHMubm90TnVsbCh0aGlzLnJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1NYXAuZ2V0KCdjb2RlJykpO1xuICAgICAgICBjb25zdCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpXG4gICAgICAgICAgICAuc2V0KCdncmFudF90eXBlJywgJ2F1dGhvcml6YXRpb25fY29kZScpXG4gICAgICAgICAgICAuc2V0KCdjb2RlJywgY29kZSlcbiAgICAgICAgICAgIC5zZXQoJ3JlZGlyZWN0X3VyaScsIHRoaXMuY29uZmlnLnJlZGlyZWN0VXJpKVxuICAgICAgICAgICAgLnNldCgnY29kZV92ZXJpZmllcicsIFR5cGVVdGlscy5ub3ROdWxsKGxvY2FsU3RvcmFnZS5nZXRJdGVtKE9BdXRoMlNlcnZpY2UuU1RPUkFHRV9LRVlfQ0hBTExFTkdFKSkpXG4gICAgICAgICAgICAuc2V0KCdjbGllbnRfaWQnLCB0aGlzLmNvbmZpZy5jbGllbnRJZCk7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdDxUb2tlblJlc3BvbnNlPih0aGlzLmNvbmZpZy50b2tlblVyaSwgcGFyYW1zKS5waXBlKFxuICAgICAgICAgICAgbWFwKHRva2VuUmVzcG9uc2UgPT4gdGhpcy5wcm9jZXNzVG9rZW5SZXNwb25zZSh0b2tlblJlc3BvbnNlKSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUNoYWxsZW5nZSgpXG4gICAge1xuICAgICAgICByZXR1cm4gU3RyaW5nVXRpbHMuY3JlYXRlUmFuZG9tU3RyaW5nKDY0LCAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoxMjM0NTY3ODkwLS5fficpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0UmVmcmVzaFRva2VuKCk6IHN0cmluZyB8IG51bGxcbiAgICB7XG4gICAgICAgIHJldHVybiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShPQXV0aDJTZXJ2aWNlLlNUT1JBR0VfS0VZX1JFRlJFU0hfVE9LRU4pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRBY2Nlc3NUb2tlblN0cmluZygpOiBzdHJpbmcgfCBudWxsXG4gICAge1xuICAgICAgICByZXR1cm4gdGhpcy5hY2Nlc3NUb2tlblN0cmluZztcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNBY2Nlc3NUb2tlbkV4cGlyZWQoKTogYm9vbGVhblxuICAgIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIG51bGwgPT0gdGhpcy5hY2Nlc3NUb2tlblxuICAgICAgICAgICAgfHwgdGhpcy5hY2Nlc3NUb2tlbi5leHAgKiAxMDAwIDwgRGF0ZS5ub3coKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc1JlZnJlc2hQb3NzaWJsZUFuZFJlcXVpcmVkKHJlcTogSHR0cFJlcXVlc3Q8YW55PiB8IG51bGwgPSBudWxsKTogYm9vbGVhblxuICAgIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIChudWxsID09IHJlcSB8fCAhcmVxLnVybC5lbmRzV2l0aCh0aGlzLmNvbmZpZy50b2tlblVyaSkpXG4gICAgICAgICAgICAmJiBudWxsICE9IHRoaXMuZ2V0UmVmcmVzaFRva2VuKClcbiAgICAgICAgICAgICYmIChcbiAgICAgICAgICAgICAgICBudWxsID09IHRoaXMuYWNjZXNzVG9rZW5cbiAgICAgICAgICAgICAgICB8fCAodGhpcy5hY2Nlc3NUb2tlbi5leHAgLSB0aGlzLlJFRlJFU0hfTUFSR0lOX1NFQ09ORFMpICogMTAwMCA8IERhdGUubm93KClcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcGVyZm9ybVJlZnJlc2goKTogT2JzZXJ2YWJsZTxKc29uV2ViVG9rZW4+XG4gICAge1xuICAgICAgICBpZiAobnVsbCA9PSB0aGlzLnJlZnJlc2hUb2tlblJlcXVlc3QkKSB7XG5cbiAgICAgICAgICAgIHRoaXMubG9nZ2VyU2VydmljZS5pbmZvKCdQZXJmb3JtaW5nIHRva2VuIHJlZmVzaCcpO1xuXG4gICAgICAgICAgICBjb25zdCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpXG4gICAgICAgICAgICAgICAgLnNldCgnZ3JhbnRfdHlwZScsICdyZWZyZXNoX3Rva2VuJylcbiAgICAgICAgICAgICAgICAuc2V0KCdyZWZyZXNoX3Rva2VuJywgVHlwZVV0aWxzLm5vdE51bGwodGhpcy5nZXRSZWZyZXNoVG9rZW4oKSkpXG4gICAgICAgICAgICAgICAgLnNldCgnY2xpZW50X2lkJywgdGhpcy5jb25maWcuY2xpZW50SWQpO1xuXG4gICAgICAgICAgICB0aGlzLnJlZnJlc2hUb2tlblJlcXVlc3QkID0gdGhpcy5odHRwQ2xpZW50LnBvc3Q8VG9rZW5SZXNwb25zZT4odGhpcy5jb25maWcudG9rZW5VcmksIHBhcmFtcykucGlwZShcbiAgICAgICAgICAgICAgICBtYXAodG9rZW5SZXNwb25zZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5wcm9jZXNzVG9rZW5SZXNwb25zZSh0b2tlblJlc3BvbnNlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWZyZXNoVG9rZW5SZXF1ZXN0JCA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0b2tlbjtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKGVycm9yID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hY2Nlc3NUb2tlblN0cmluZyA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWNjZXNzVG9rZW4gPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShPQXV0aDJTZXJ2aWNlLlNUT1JBR0VfS0VZX1JFRlJFU0hfVE9LRU4pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlZnJlc2hUb2tlblJlcXVlc3QkID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyb3IpO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMucmVmcmVzaFRva2VuUmVxdWVzdCQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBwcm9jZXNzVG9rZW5SZXNwb25zZSh0b2tlblJlc3BvbnNlOiBUb2tlblJlc3BvbnNlKTogSnNvbldlYlRva2VuXG4gICAge1xuICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShPQXV0aDJTZXJ2aWNlLlNUT1JBR0VfS0VZX0NIQUxMRU5HRSk7XG4gICAgICAgIHRoaXMuYWNjZXNzVG9rZW5TdHJpbmcgPSB0b2tlblJlc3BvbnNlLmFjY2Vzc190b2tlbjtcbiAgICAgICAgdGhpcy5hY2Nlc3NUb2tlbiA9IEpTT04ucGFyc2UoYXRvYih0b2tlblJlc3BvbnNlLmFjY2Vzc190b2tlbi5zcGxpdCgnLicpWzFdKSk7XG4gICAgICAgIHRoaXMubG9nZ2VyU2VydmljZS5pbmZvKCdBY2Nlc3MgVG9rZW4gRXhwaXJ5JywgbmV3IERhdGUodGhpcy5hY2Nlc3NUb2tlbiEuZXhwICogMTAwMCkpO1xuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShPQXV0aDJTZXJ2aWNlLlNUT1JBR0VfS0VZX1JFRlJFU0hfVE9LRU4sIHRva2VuUmVzcG9uc2UucmVmcmVzaF90b2tlbik7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuYWNjZXNzVG9rZW4hO1xuICAgIH1cblxuICAgIHB1YmxpYyBjbGVhcigpXG4gICAge1xuICAgICAgICB0aGlzLmFjY2Vzc1Rva2VuID0gbnVsbDtcbiAgICAgICAgdGhpcy5hY2Nlc3NUb2tlblN0cmluZyA9IG51bGw7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKE9BdXRoMlNlcnZpY2UuU1RPUkFHRV9LRVlfUkVGUkVTSF9UT0tFTik7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKE9BdXRoMlNlcnZpY2UuU1RPUkFHRV9LRVlfUkVUVVJOX1VSTCk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldFJldHVyblVybCh1cmw6IHN0cmluZylcbiAgICB7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKE9BdXRoMlNlcnZpY2UuU1RPUkFHRV9LRVlfUkVUVVJOX1VSTCwgdXJsKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0UmV0dXJuVXJsKCk6IHN0cmluZyB8IG51bGxcbiAgICB7XG4gICAgICAgIHJldHVybiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShPQXV0aDJTZXJ2aWNlLlNUT1JBR0VfS0VZX1JFVFVSTl9VUkwpO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,41 +0,0 @@
1
- import { HttpErrorResponse } from '@angular/common/http';
2
- import { throwError } from 'rxjs';
3
- import { Inject, Injectable } from '@angular/core';
4
- import { catchError } from 'rxjs/operators';
5
- import { DDR_OAUTH2_CONFIG } from './oauth2-config';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "./oauth2.service";
8
- import * as i2 from "@angular/router";
9
- import * as i3 from "./oauth2-config";
10
- export class RedirectToOAuth2LoginInterceptor {
11
- constructor(oAuth2Service, router, oAuth2Config) {
12
- this.oAuth2Service = oAuth2Service;
13
- this.router = router;
14
- this.oAuth2Config = oAuth2Config;
15
- }
16
- /**
17
- * @override
18
- */
19
- intercept(req, next) {
20
- return next.handle(req).pipe(catchError((err) => {
21
- if (err instanceof HttpErrorResponse) {
22
- if (err.status === 401) {
23
- if (!window.location.href.startsWith(this.oAuth2Config.redirectUri)) {
24
- this.oAuth2Service.setReturnUrl(this.router.routerState.snapshot.url);
25
- this.oAuth2Service.redirectToLogin();
26
- }
27
- }
28
- }
29
- return throwError(err);
30
- }));
31
- }
32
- }
33
- RedirectToOAuth2LoginInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", 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.4", ngImport: i0, type: RedirectToOAuth2LoginInterceptor });
35
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: RedirectToOAuth2LoginInterceptor, decorators: [{
36
- type: Injectable
37
- }], ctorParameters: function () { return [{ type: i1.OAuth2Service }, { type: i2.Router }, { type: i3.OAuth2Config, decorators: [{
38
- type: Inject,
39
- args: [DDR_OAUTH2_CONFIG]
40
- }] }]; } });
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkaXJlY3QtdG8tb2F1dGgyLWxvZ2luLWludGVyY2VwdG9yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvb2F1dGgvcmVkaXJlY3QtdG8tb2F1dGgyLWxvZ2luLWludGVyY2VwdG9yLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGlCQUFpQixFQUF1RCxNQUFNLHNCQUFzQixDQUFDO0FBQzdHLE9BQU8sRUFBYSxVQUFVLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDNUMsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRzFDLE9BQU8sRUFBQyxpQkFBaUIsRUFBZSxNQUFNLGlCQUFpQixDQUFDOzs7OztBQUdoRSxNQUFNLE9BQU8sZ0NBQWdDO0lBRXpDLFlBQ1ksYUFBNEIsRUFDNUIsTUFBYyxFQUNhLFlBQTBCO1FBRnJELGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDYSxpQkFBWSxHQUFaLFlBQVksQ0FBYztJQUdqRSxDQUFDO0lBRUQ7O09BRUc7SUFDSSxTQUFTLENBQUMsR0FBcUIsRUFBRSxJQUFpQjtRQUVyRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBRTVDLElBQUksR0FBRyxZQUFZLGlCQUFpQixFQUFFO2dCQUNsQyxJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFO29CQUNwQixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLEVBQUU7d0JBQ2pFLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQzt3QkFDdEUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLEVBQUUsQ0FBQztxQkFDeEM7aUJBQ0o7YUFDSjtZQUVELE9BQU8sVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDUixDQUFDOzs2SEE1QlEsZ0NBQWdDLHFFQUs3QixpQkFBaUI7aUlBTHBCLGdDQUFnQzsyRkFBaEMsZ0NBQWdDO2tCQUQ1QyxVQUFVOzswQkFNRixNQUFNOzJCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SHR0cEVycm9yUmVzcG9uc2UsIEh0dHBFdmVudCwgSHR0cEhhbmRsZXIsIEh0dHBJbnRlcmNlcHRvciwgSHR0cFJlcXVlc3R9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgdGhyb3dFcnJvcn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge2NhdGNoRXJyb3J9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7Um91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtPQXV0aDJTZXJ2aWNlfSBmcm9tICcuL29hdXRoMi5zZXJ2aWNlJztcbmltcG9ydCB7RERSX09BVVRIMl9DT05GSUcsIE9BdXRoMkNvbmZpZ30gZnJvbSAnLi9vYXV0aDItY29uZmlnJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFJlZGlyZWN0VG9PQXV0aDJMb2dpbkludGVyY2VwdG9yIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9yXG57XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgb0F1dGgyU2VydmljZTogT0F1dGgyU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgQEluamVjdChERFJfT0FVVEgyX0NPTkZJRykgcHJpdmF0ZSBvQXV0aDJDb25maWc6IE9BdXRoMkNvbmZpZ1xuICAgIClcbiAgICB7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQG92ZXJyaWRlXG4gICAgICovXG4gICAgcHVibGljIGludGVyY2VwdChyZXE6IEh0dHBSZXF1ZXN0PGFueT4sIG5leHQ6IEh0dHBIYW5kbGVyKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj5cbiAgICB7XG4gICAgICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXEpLnBpcGUoY2F0Y2hFcnJvcigoZXJyKSA9PiB7XG5cbiAgICAgICAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBIdHRwRXJyb3JSZXNwb25zZSkge1xuICAgICAgICAgICAgICAgIGlmIChlcnIuc3RhdHVzID09PSA0MDEpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF3aW5kb3cubG9jYXRpb24uaHJlZi5zdGFydHNXaXRoKHRoaXMub0F1dGgyQ29uZmlnLnJlZGlyZWN0VXJpKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vQXV0aDJTZXJ2aWNlLnNldFJldHVyblVybCh0aGlzLnJvdXRlci5yb3V0ZXJTdGF0ZS5zbmFwc2hvdC51cmwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vQXV0aDJTZXJ2aWNlLnJlZGlyZWN0VG9Mb2dpbigpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihlcnIpO1xuICAgICAgICB9KSk7XG4gICAgfVxufVxuIl19
@@ -1,60 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import { Directive, EventEmitter, HostListener, Output } from '@angular/core';
3
- import { Limit } from '../methoddecorator/limit';
4
- import * as i0 from "@angular/core";
5
- export class BottomHitDirective {
6
- constructor() {
7
- this.offset = 1000;
8
- this.onWindowBottomHit = new EventEmitter();
9
- this.onElementBottomHit = new EventEmitter();
10
- }
11
- scrolled($event) {
12
- this.elementScrollEvent($event);
13
- }
14
- windowScrolled($event) {
15
- this.windowScrollEvent($event);
16
- }
17
- windowScrollEvent($event) {
18
- const pageHeight = Math.max(document.body.scrollHeight, document.documentElement.scrollHeight, document.body.offsetHeight, document.documentElement.offsetHeight, document.body.clientHeight, document.documentElement.clientHeight);
19
- const viewportHeight = document.documentElement.clientHeight;
20
- const scrollPosition = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;
21
- const distanceToBottom = pageHeight - (scrollPosition + viewportHeight);
22
- if (distanceToBottom < this.offset) {
23
- this.onWindowBottomHit.emit();
24
- }
25
- }
26
- elementScrollEvent($event) {
27
- const target = $event.target;
28
- const scrollPosition = target.scrollHeight - target.scrollTop;
29
- const offsetHeight = target.offsetHeight;
30
- const isReachingBottom = (scrollPosition - offsetHeight) < this.offset;
31
- if (isReachingBottom) {
32
- this.onElementBottomHit.emit();
33
- }
34
- }
35
- }
36
- BottomHitDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: BottomHitDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
37
- BottomHitDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.4", type: BottomHitDirective, selector: "[ddrBottomHit]", outputs: { onWindowBottomHit: "onWindowBottomHit", onElementBottomHit: "onElementBottomHit" }, host: { listeners: { "scroll": "scrolled($event)", "window:scroll": "windowScrolled($event)" } }, ngImport: i0 });
38
- __decorate([
39
- Limit()
40
- ], BottomHitDirective.prototype, "scrolled", null);
41
- __decorate([
42
- Limit()
43
- ], BottomHitDirective.prototype, "windowScrolled", null);
44
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: BottomHitDirective, decorators: [{
45
- type: Directive,
46
- args: [{
47
- selector: '[ddrBottomHit]'
48
- }]
49
- }], ctorParameters: function () { return []; }, propDecorators: { onWindowBottomHit: [{
50
- type: Output
51
- }], onElementBottomHit: [{
52
- type: Output
53
- }], scrolled: [{
54
- type: HostListener,
55
- args: ['scroll', ['$event']]
56
- }], windowScrolled: [{
57
- type: HostListener,
58
- args: ['window:scroll', ['$event']]
59
- }] } });
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm90dG9tLWhpdC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2Nyb2xsL2JvdHRvbS1oaXQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzVFLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQzs7QUFLL0MsTUFBTSxPQUFPLGtCQUFrQjtJQVUzQjtRQVJPLFdBQU0sR0FBRyxJQUFJLENBQUM7UUFHZCxzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBR3RDLHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFJaEQsQ0FBQztJQUlNLFFBQVEsQ0FBQyxNQUFhO1FBRXpCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBSU0sY0FBYyxDQUFDLE1BQWE7UUFFL0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFUyxpQkFBaUIsQ0FBQyxNQUFhO1FBRXJDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQ3ZCLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLFFBQVEsQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUNqRSxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsZUFBZSxDQUFDLFlBQVksRUFDakUsUUFBUSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQ3BFLENBQUM7UUFDRixNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQztRQUM3RCxNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUMsV0FBVyxJQUFJLFFBQVEsQ0FBQyxlQUFlLENBQUMsU0FBUyxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsQ0FBQztRQUNoSCxNQUFNLGdCQUFnQixHQUFHLFVBQVUsR0FBRyxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUMsQ0FBQztRQUN4RSxJQUFJLGdCQUFnQixHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDaEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDO1NBQ2pDO0lBQ0wsQ0FBQztJQUVTLGtCQUFrQixDQUFDLE1BQWE7UUFFdEMsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQXFCLENBQUM7UUFDNUMsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDO1FBQzlELE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUM7UUFDekMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLGNBQWMsR0FBRyxZQUFZLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ3ZFLElBQUksZ0JBQWdCLEVBQUU7WUFDbEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksRUFBRSxDQUFDO1NBQ2xDO0lBQ0wsQ0FBQzs7K0dBcERRLGtCQUFrQjttR0FBbEIsa0JBQWtCO0FBZ0IzQjtJQURDLEtBQUssRUFBRTtrREFJUDtBQUlEO0lBREMsS0FBSyxFQUFFO3dEQUlQOzJGQTFCUSxrQkFBa0I7a0JBSDlCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGdCQUFnQjtpQkFDN0I7MEVBTVUsaUJBQWlCO3NCQUR2QixNQUFNO2dCQUlDLGtCQUFrQjtzQkFEekIsTUFBTTtnQkFTQSxRQUFRO3NCQUZkLFlBQVk7dUJBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVMzQixjQUFjO3NCQUZwQixZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TGltaXR9IGZyb20gJy4uL21ldGhvZGRlY29yYXRvci9saW1pdCc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2RkckJvdHRvbUhpdF0nXG59KVxuZXhwb3J0IGNsYXNzIEJvdHRvbUhpdERpcmVjdGl2ZVxue1xuICAgIHB1YmxpYyBvZmZzZXQgPSAxMDAwO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIG9uV2luZG93Qm90dG9tSGl0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHJpdmF0ZSBvbkVsZW1lbnRCb3R0b21IaXQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBjb25zdHJ1Y3RvcigpXG4gICAge1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ3Njcm9sbCcsIFsnJGV2ZW50J10pXG4gICAgQExpbWl0KClcbiAgICBwdWJsaWMgc2Nyb2xsZWQoJGV2ZW50OiBFdmVudCk6IHZvaWRcbiAgICB7XG4gICAgICAgIHRoaXMuZWxlbWVudFNjcm9sbEV2ZW50KCRldmVudCk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignd2luZG93OnNjcm9sbCcsIFsnJGV2ZW50J10pXG4gICAgQExpbWl0KClcbiAgICBwdWJsaWMgd2luZG93U2Nyb2xsZWQoJGV2ZW50OiBFdmVudCk6IHZvaWRcbiAgICB7XG4gICAgICAgIHRoaXMud2luZG93U2Nyb2xsRXZlbnQoJGV2ZW50KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgd2luZG93U2Nyb2xsRXZlbnQoJGV2ZW50OiBFdmVudCk6IHZvaWRcbiAgICB7XG4gICAgICAgIGNvbnN0IHBhZ2VIZWlnaHQgPSBNYXRoLm1heChcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuc2Nyb2xsSGVpZ2h0LCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsSGVpZ2h0LFxuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRIZWlnaHQsIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5vZmZzZXRIZWlnaHQsXG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmNsaWVudEhlaWdodCwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodFxuICAgICAgICApO1xuICAgICAgICBjb25zdCB2aWV3cG9ydEhlaWdodCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQ7XG4gICAgICAgIGNvbnN0IHNjcm9sbFBvc2l0aW9uID0gd2luZG93LnBhZ2VZT2Zmc2V0IHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3AgfHwgZG9jdW1lbnQuYm9keS5zY3JvbGxUb3AgfHwgMDtcbiAgICAgICAgY29uc3QgZGlzdGFuY2VUb0JvdHRvbSA9IHBhZ2VIZWlnaHQgLSAoc2Nyb2xsUG9zaXRpb24gKyB2aWV3cG9ydEhlaWdodCk7XG4gICAgICAgIGlmIChkaXN0YW5jZVRvQm90dG9tIDwgdGhpcy5vZmZzZXQpIHtcbiAgICAgICAgICAgIHRoaXMub25XaW5kb3dCb3R0b21IaXQuZW1pdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGVsZW1lbnRTY3JvbGxFdmVudCgkZXZlbnQ6IEV2ZW50KTogdm9pZFxuICAgIHtcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gJGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgY29uc3Qgc2Nyb2xsUG9zaXRpb24gPSB0YXJnZXQuc2Nyb2xsSGVpZ2h0IC0gdGFyZ2V0LnNjcm9sbFRvcDtcbiAgICAgICAgY29uc3Qgb2Zmc2V0SGVpZ2h0ID0gdGFyZ2V0Lm9mZnNldEhlaWdodDtcbiAgICAgICAgY29uc3QgaXNSZWFjaGluZ0JvdHRvbSA9IChzY3JvbGxQb3NpdGlvbiAtIG9mZnNldEhlaWdodCkgPCB0aGlzLm9mZnNldDtcbiAgICAgICAgaWYgKGlzUmVhY2hpbmdCb3R0b20pIHtcbiAgICAgICAgICAgIHRoaXMub25FbGVtZW50Qm90dG9tSGl0LmVtaXQoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -1,38 +0,0 @@
1
- import { NavigationStart } from '@angular/router';
2
- import { Injectable } from '@angular/core';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/router";
5
- import * as i2 from "@angular/common";
6
- export class ScrollService {
7
- constructor(router, viewportScroller) {
8
- this.router = router;
9
- this.viewportScroller = viewportScroller;
10
- this.scrollPositionMap = new Map();
11
- this.router.events
12
- .subscribe(e => {
13
- if (e instanceof NavigationStart) {
14
- this.scrollPositionMap.set(this.router.url, this.viewportScroller.getScrollPosition());
15
- }
16
- });
17
- }
18
- restore() {
19
- const url = this.router.url;
20
- if (this.scrollPositionMap.has(url)) {
21
- /* Restore after timeout so rendering was completed */
22
- setTimeout(() => {
23
- let scrollPosition = this.scrollPositionMap.get(url);
24
- if (null != scrollPosition)
25
- this.viewportScroller.scrollToPosition(scrollPosition);
26
- }, 1);
27
- }
28
- }
29
- }
30
- ScrollService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", 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.4", ngImport: i0, type: ScrollService, providedIn: 'root' });
32
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: ScrollService, decorators: [{
33
- type: Injectable,
34
- args: [{
35
- providedIn: 'root'
36
- }]
37
- }], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.ViewportScroller }]; } });
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2Nyb2xsL3Njcm9sbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxlQUFlLEVBQVMsTUFBTSxpQkFBaUIsQ0FBQztBQUV4RCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDOzs7O0FBS3pDLE1BQU0sT0FBTyxhQUFhO0lBSXRCLFlBQW9CLE1BQWMsRUFBVSxnQkFBa0M7UUFBMUQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFVLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFGdEUsc0JBQWlCLEdBQWtDLElBQUksR0FBRyxFQUE0QixDQUFDO1FBSTNGLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTTthQUNiLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNYLElBQUksQ0FBQyxZQUFZLGVBQWUsRUFBRTtnQkFDOUIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO2FBQzFGO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRU0sT0FBTztRQUVWLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO1FBQzVCLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNqQyxzREFBc0Q7WUFDdEQsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDWixJQUFJLGNBQWMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNyRCxJQUFJLElBQUksSUFBSSxjQUFjO29CQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUN2RixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDVDtJQUNMLENBQUM7OzBHQXhCUSxhQUFhOzhHQUFiLGFBQWEsY0FGVixNQUFNOzJGQUVULGFBQWE7a0JBSHpCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOYXZpZ2F0aW9uU3RhcnQsIFJvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7Vmlld3BvcnRTY3JvbGxlcn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgU2Nyb2xsU2VydmljZVxue1xuICAgIHByaXZhdGUgc2Nyb2xsUG9zaXRpb25NYXA6IE1hcDxzdHJpbmcsIFtudW1iZXIsIG51bWJlcl0+ID0gbmV3IE1hcDxzdHJpbmcsIFtudW1iZXIsIG51bWJlcl0+KCk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlcjogUm91dGVyLCBwcml2YXRlIHZpZXdwb3J0U2Nyb2xsZXI6IFZpZXdwb3J0U2Nyb2xsZXIpXG4gICAge1xuICAgICAgICB0aGlzLnJvdXRlci5ldmVudHNcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoZSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uU3RhcnQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zY3JvbGxQb3NpdGlvbk1hcC5zZXQodGhpcy5yb3V0ZXIudXJsLCB0aGlzLnZpZXdwb3J0U2Nyb2xsZXIuZ2V0U2Nyb2xsUG9zaXRpb24oKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlc3RvcmUoKTogdm9pZFxuICAgIHtcbiAgICAgICAgY29uc3QgdXJsID0gdGhpcy5yb3V0ZXIudXJsO1xuICAgICAgICBpZiAodGhpcy5zY3JvbGxQb3NpdGlvbk1hcC5oYXModXJsKSkge1xuICAgICAgICAgICAgLyogUmVzdG9yZSBhZnRlciB0aW1lb3V0IHNvIHJlbmRlcmluZyB3YXMgY29tcGxldGVkICovXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgc2Nyb2xsUG9zaXRpb24gPSB0aGlzLnNjcm9sbFBvc2l0aW9uTWFwLmdldCh1cmwpO1xuICAgICAgICAgICAgICAgIGlmIChudWxsICE9IHNjcm9sbFBvc2l0aW9uKSB0aGlzLnZpZXdwb3J0U2Nyb2xsZXIuc2Nyb2xsVG9Qb3NpdGlvbihzY3JvbGxQb3NpdGlvbik7XG4gICAgICAgICAgICB9LCAxKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -1,53 +0,0 @@
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
- }
45
- LocalStorageService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: LocalStorageService, deps: [{ token: DDR_STORAGE_PREFIX }, { token: i1.Logger }], target: i0.ɵɵFactoryTarget.Injectable });
46
- LocalStorageService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: LocalStorageService });
47
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtc3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3N0b3JhZ2UvbG9jYWwtc3RvcmFnZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxrQkFBa0IsRUFBRSxjQUFjLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUNyRSxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7O0FBSWpELE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxjQUFjO0lBRW5ELFlBQzBDLGFBQXFCLEVBQ2pELE1BQWM7UUFHeEIsS0FBSyxFQUFFLENBQUM7UUFKOEIsa0JBQWEsR0FBYixhQUFhLENBQVE7UUFDakQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUk1QixDQUFDO0lBRUQ7O09BRUc7SUFDSSxRQUFRLENBQUksR0FBVyxFQUFFLGVBQXlCLElBQUk7UUFFekQsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuQyxJQUFJLFNBQVMsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzlDLElBQUksSUFBSSxJQUFJLFNBQVMsRUFBRTtZQUNuQixPQUFPLFlBQVksQ0FBQztTQUN2QjtRQUVELElBQUk7WUFDQSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDaEM7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNSLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLDRCQUE0QixFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUM3RCxZQUFZLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2pDLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUksR0FBVyxFQUFFLEtBQVE7UUFFakMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsR0FBVztRQUVyQixZQUFZLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRVMsVUFBVSxDQUFDLEdBQVc7UUFFNUIsT0FBTyxJQUFJLENBQUMsYUFBYSxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUM7SUFDMUMsQ0FBQzs7Z0hBakRRLG1CQUFtQixrQkFHaEIsa0JBQWtCO29IQUhyQixtQkFBbUI7MkZBQW5CLG1CQUFtQjtrQkFEL0IsVUFBVTs7MEJBSUYsTUFBTTsyQkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0REUl9TVE9SQUdFX1BSRUZJWCwgU3RvcmFnZVNlcnZpY2V9IGZyb20gJy4vc3RvcmFnZS5zZXJ2aWNlJztcbmltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TG9nZ2VyfSBmcm9tICcuLi9sb2dnZXIvbG9nZ2VyLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTG9jYWxTdG9yYWdlU2VydmljZSBleHRlbmRzIFN0b3JhZ2VTZXJ2aWNlXG57XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoRERSX1NUT1JBR0VfUFJFRklYKSBwcm90ZWN0ZWQgc3RvcmFnZVByZWZpeDogc3RyaW5nLFxuICAgICAgICBwcm90ZWN0ZWQgbG9nZ2VyOiBMb2dnZXJcbiAgICApXG4gICAge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBvdmVycmlkZVxuICAgICAqL1xuICAgIHB1YmxpYyByZXRyaWV2ZTxUPihrZXk6IHN0cmluZywgZGVmYXVsdFZhbHVlOiBUIHwgbnVsbCA9IG51bGwpOiBUIHwgbnVsbFxuICAgIHtcbiAgICAgICAgbGV0IGZ1bGxLZXkgPSB0aGlzLmdldEZ1bGxLZXkoa2V5KTtcbiAgICAgICAgbGV0IHZhbHVlSnNvbiA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKGZ1bGxLZXkpO1xuICAgICAgICBpZiAobnVsbCA9PSB2YWx1ZUpzb24pIHtcbiAgICAgICAgICAgIHJldHVybiBkZWZhdWx0VmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UodmFsdWVKc29uKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgdGhpcy5sb2dnZXIud2FybignQ291bGQgbm90IHBhcnNlIGpzb24gdmFsdWUnLCB2YWx1ZUpzb24sIGUpO1xuICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oZnVsbEtleSk7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBvdmVycmlkZVxuICAgICAqL1xuICAgIHB1YmxpYyBzdG9yZTxUPihrZXk6IHN0cmluZywgdmFsdWU6IFQpOiB2b2lkXG4gICAge1xuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmdldEZ1bGxLZXkoa2V5KSwgSlNPTi5zdHJpbmdpZnkodmFsdWUpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAb3ZlcnJpZGVcbiAgICAgKi9cbiAgICBwdWJsaWMgcmVtb3ZlKGtleTogc3RyaW5nKVxuICAgIHtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0odGhpcy5nZXRGdWxsS2V5KGtleSkpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRGdWxsS2V5KGtleTogc3RyaW5nKTogc3RyaW5nXG4gICAge1xuICAgICAgICByZXR1cm4gdGhpcy5zdG9yYWdlUHJlZml4ICsgJy4nICsga2V5O1xuICAgIH1cbn1cbiJdfQ==
@@ -1,27 +0,0 @@
1
- import { ObjectUtils } from './object-utils';
2
- export class CollectionUtils {
3
- /**
4
- * Maps an array into a Map by a specific property which should be unique.
5
- */
6
- static mapByProperty(entries, property) {
7
- const map = new Map();
8
- for (const entry of entries) {
9
- map.set(ObjectUtils.getProperty(entry, property), entry);
10
- }
11
- return map;
12
- }
13
- /**
14
- * Maps an array into a Map by a specified property and aggregates them into an array.
15
- */
16
- static mapArrayByProperty(entries, property) {
17
- const map = new Map();
18
- for (const entry of entries) {
19
- const value = ObjectUtils.getProperty(entry, property);
20
- const existingEntries = map.get(value) ?? [];
21
- existingEntries.push(entry);
22
- map.set(value, existingEntries);
23
- }
24
- return map;
25
- }
26
- }
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy91dGlsL2NvbGxlY3Rpb24tdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE1BQU0sT0FBTyxlQUFlO0lBRXhCOztPQUVHO0lBQ0ksTUFBTSxDQUFDLGFBQWEsQ0FBc0MsT0FBaUIsRUFBRSxRQUFXO1FBRTNGLE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7UUFDOUIsS0FBSyxNQUFNLEtBQUssSUFBSSxPQUFPLEVBQUU7WUFDekIsR0FBRyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztTQUM1RDtRQUVELE9BQU8sR0FBRyxDQUFDO0lBQ2YsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLGtCQUFrQixDQUFzQyxPQUFpQixFQUFFLFFBQVc7UUFFaEcsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLEVBQVksQ0FBQztRQUNoQyxLQUFLLE1BQU0sS0FBSyxJQUFJLE9BQU8sRUFBRTtZQUN6QixNQUFNLEtBQUssR0FBRyxXQUFXLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztZQUN2RCxNQUFNLGVBQWUsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQTtZQUM1QyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO1lBQzNCLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLGVBQWUsQ0FBQyxDQUFBO1NBQ2xDO1FBRUQsT0FBTyxHQUFHLENBQUM7SUFDZixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge09iamVjdFV0aWxzfSBmcm9tICcuL29iamVjdC11dGlscyc7XG5cbmV4cG9ydCBjbGFzcyBDb2xsZWN0aW9uVXRpbHNcbntcbiAgICAvKipcbiAgICAgKiBNYXBzIGFuIGFycmF5IGludG8gYSBNYXAgYnkgYSBzcGVjaWZpYyBwcm9wZXJ0eSB3aGljaCBzaG91bGQgYmUgdW5pcXVlLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgbWFwQnlQcm9wZXJ0eTxWIGV4dGVuZHMgb2JqZWN0LCBLIGV4dGVuZHMga2V5b2YgVj4oZW50cmllczogQXJyYXk8Vj4sIHByb3BlcnR5OiBLKTogTWFwPGFueSwgVj5cbiAgICB7XG4gICAgICAgIGNvbnN0IG1hcCA9IG5ldyBNYXA8YW55LCBWPigpO1xuICAgICAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIGVudHJpZXMpIHtcbiAgICAgICAgICAgIG1hcC5zZXQoT2JqZWN0VXRpbHMuZ2V0UHJvcGVydHkoZW50cnksIHByb3BlcnR5KSwgZW50cnkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG1hcDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNYXBzIGFuIGFycmF5IGludG8gYSBNYXAgYnkgYSBzcGVjaWZpZWQgcHJvcGVydHkgYW5kIGFnZ3JlZ2F0ZXMgdGhlbSBpbnRvIGFuIGFycmF5LlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgbWFwQXJyYXlCeVByb3BlcnR5PFYgZXh0ZW5kcyBvYmplY3QsIEsgZXh0ZW5kcyBrZXlvZiBWPihlbnRyaWVzOiBBcnJheTxWPiwgcHJvcGVydHk6IEspOiBNYXA8YW55LCBWW10+XG4gICAge1xuICAgICAgICBjb25zdCBtYXAgPSBuZXcgTWFwPGFueSwgVltdPigpO1xuICAgICAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIGVudHJpZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gT2JqZWN0VXRpbHMuZ2V0UHJvcGVydHkoZW50cnksIHByb3BlcnR5KTtcbiAgICAgICAgICAgIGNvbnN0IGV4aXN0aW5nRW50cmllcyA9IG1hcC5nZXQodmFsdWUpID8/IFtdXG4gICAgICAgICAgICBleGlzdGluZ0VudHJpZXMucHVzaChlbnRyeSlcbiAgICAgICAgICAgIG1hcC5zZXQodmFsdWUsIGV4aXN0aW5nRW50cmllcylcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBtYXA7XG4gICAgfVxufVxuIl19
@@ -1,35 +0,0 @@
1
- export class StringUtils {
2
- static capitalizeFirstLetter(text) {
3
- return text.charAt(0).toUpperCase() + text.slice(1);
4
- }
5
- static stripTrailingSlash(text) {
6
- const lastChar = text.charAt(text.length - 1);
7
- if ('/' === lastChar) {
8
- return text.slice(0, text.length - 1);
9
- }
10
- return text;
11
- }
12
- static updateUrlParameter(uri, key, value) {
13
- // remove the hash part before operating on the uri
14
- const i = uri.indexOf('#');
15
- const hash = i === -1 ? '' : uri.substr(i);
16
- uri = i === -1 ? uri : uri.substr(0, i);
17
- const re = new RegExp('([?&])' + key + '=.*?(&|$)', 'i');
18
- const separator = uri.indexOf('?') !== -1 ? '&' : '?';
19
- if (uri.match(re)) {
20
- uri = uri.replace(re, '$1' + key + '=' + value + '$2');
21
- }
22
- else {
23
- uri = uri + separator + key + '=' + value;
24
- }
25
- return uri + hash; // finally append the hash as well
26
- }
27
- static createRandomString(lengthOfCode, possible) {
28
- let text = '';
29
- for (let i = 0; i < lengthOfCode; i++) {
30
- text += possible.charAt(Math.floor(Math.random() * possible.length));
31
- }
32
- return text;
33
- }
34
- }
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3V0aWwvc3RyaW5nLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxXQUFXO0lBRWIsTUFBTSxDQUFDLHFCQUFxQixDQUFDLElBQVk7UUFFNUMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVNLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxJQUFZO1FBRXpDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUM5QyxJQUFJLEdBQUcsS0FBSyxRQUFRLEVBQUU7WUFDbEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQ3pDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxHQUFXLEVBQUUsR0FBVyxFQUFFLEtBQWE7UUFFcEUsbURBQW1EO1FBQ25ELE1BQU0sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDM0IsTUFBTSxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0MsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUV4QyxNQUFNLEVBQUUsR0FBRyxJQUFJLE1BQU0sQ0FBQyxRQUFRLEdBQUcsR0FBRyxHQUFHLFdBQVcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUN6RCxNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUN0RCxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDZixHQUFHLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDO1NBQzFEO2FBQU07WUFDSCxHQUFHLEdBQUcsR0FBRyxHQUFHLFNBQVMsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEtBQUssQ0FBQztTQUM3QztRQUNELE9BQU8sR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFFLGtDQUFrQztJQUMxRCxDQUFDO0lBRU0sTUFBTSxDQUFDLGtCQUFrQixDQUFDLFlBQW9CLEVBQUUsUUFBZ0I7UUFFbkUsSUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ2QsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFlBQVksRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNuQyxJQUFJLElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztTQUN4RTtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBTdHJpbmdVdGlsc1xue1xuICAgIHB1YmxpYyBzdGF0aWMgY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKHRleHQ6IHN0cmluZyk6IHN0cmluZ1xuICAgIHtcbiAgICAgICAgcmV0dXJuIHRleHQuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyB0ZXh0LnNsaWNlKDEpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgc3RyaXBUcmFpbGluZ1NsYXNoKHRleHQ6IHN0cmluZyk6IHN0cmluZ1xuICAgIHtcbiAgICAgICAgY29uc3QgbGFzdENoYXIgPSB0ZXh0LmNoYXJBdCh0ZXh0Lmxlbmd0aCAtIDEpO1xuICAgICAgICBpZiAoJy8nID09PSBsYXN0Q2hhcikge1xuICAgICAgICAgICAgcmV0dXJuIHRleHQuc2xpY2UoMCwgdGV4dC5sZW5ndGggLSAxKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0ZXh0O1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgdXBkYXRlVXJsUGFyYW1ldGVyKHVyaTogc3RyaW5nLCBrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHN0cmluZ1xuICAgIHtcbiAgICAgICAgLy8gcmVtb3ZlIHRoZSBoYXNoIHBhcnQgYmVmb3JlIG9wZXJhdGluZyBvbiB0aGUgdXJpXG4gICAgICAgIGNvbnN0IGkgPSB1cmkuaW5kZXhPZignIycpO1xuICAgICAgICBjb25zdCBoYXNoID0gaSA9PT0gLTEgPyAnJyA6IHVyaS5zdWJzdHIoaSk7XG4gICAgICAgIHVyaSA9IGkgPT09IC0xID8gdXJpIDogdXJpLnN1YnN0cigwLCBpKTtcblxuICAgICAgICBjb25zdCByZSA9IG5ldyBSZWdFeHAoJyhbPyZdKScgKyBrZXkgKyAnPS4qPygmfCQpJywgJ2knKTtcbiAgICAgICAgY29uc3Qgc2VwYXJhdG9yID0gdXJpLmluZGV4T2YoJz8nKSAhPT0gLTEgPyAnJicgOiAnPyc7XG4gICAgICAgIGlmICh1cmkubWF0Y2gocmUpKSB7XG4gICAgICAgICAgICB1cmkgPSB1cmkucmVwbGFjZShyZSwgJyQxJyArIGtleSArICc9JyArIHZhbHVlICsgJyQyJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB1cmkgPSB1cmkgKyBzZXBhcmF0b3IgKyBrZXkgKyAnPScgKyB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdXJpICsgaGFzaDsgIC8vIGZpbmFsbHkgYXBwZW5kIHRoZSBoYXNoIGFzIHdlbGxcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGNyZWF0ZVJhbmRvbVN0cmluZyhsZW5ndGhPZkNvZGU6IG51bWJlciwgcG9zc2libGU6IHN0cmluZyk6IHN0cmluZ1xuICAgIHtcbiAgICAgICAgbGV0IHRleHQgPSAnJztcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW5ndGhPZkNvZGU7IGkrKykge1xuICAgICAgICAgICAgdGV4dCArPSBwb3NzaWJsZS5jaGFyQXQoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogcG9zc2libGUubGVuZ3RoKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRleHQ7XG4gICAgfVxufVxuIl19
@@ -1,9 +0,0 @@
1
- export class TypeUtils {
2
- static notNull(value, message = 'Value must not be null') {
3
- if (null == value) {
4
- throw new Error(message);
5
- }
6
- return value;
7
- }
8
- }
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy91dGlsL3R5cGUtdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLFNBQVM7SUFFWCxNQUFNLENBQUMsT0FBTyxDQUFJLEtBQTJCLEVBQUUsVUFBa0Isd0JBQXdCO1FBRTVGLElBQUksSUFBSSxJQUFJLEtBQUssRUFBRTtZQUNmLE1BQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDNUI7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgVHlwZVV0aWxzXG57XG4gICAgcHVibGljIHN0YXRpYyBub3ROdWxsPFQ+KHZhbHVlOiBUIHwgbnVsbCB8IHVuZGVmaW5lZCwgbWVzc2FnZTogc3RyaW5nID0gJ1ZhbHVlIG11c3Qgbm90IGJlIG51bGwnKTogVFxuICAgIHtcbiAgICAgICAgaWYgKG51bGwgPT0gdmFsdWUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG59XG4iXX0=