@eui/core 17.3.1 → 18.0.0-next.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/docs/dependencies.html +35 -65
  2. package/docs/index.html +3 -3
  3. package/docs/js/menu-wc.js +0 -15
  4. package/docs/js/menu-wc_es5.js +1 -1
  5. package/docs/js/search/search_index.js +2 -2
  6. package/docs/miscellaneous/variables.html +0 -110
  7. package/esm2022/lib/eui-core.module.mjs +5 -5
  8. package/esm2022/lib/helpers/dom-helpers.mjs +1 -1
  9. package/esm2022/lib/helpers/event-helpers.mjs +1 -1
  10. package/esm2022/lib/helpers/form-helpers.mjs +1 -1
  11. package/esm2022/lib/helpers/format-helpers.mjs +1 -1
  12. package/esm2022/lib/interceptors/add-lang-param.interceptor.mjs +4 -4
  13. package/esm2022/lib/interceptors/cache-prevention.interceptor.mjs +4 -4
  14. package/esm2022/lib/interceptors/cors-security.interceptor.mjs +4 -4
  15. package/esm2022/lib/interceptors/csrf-prevention.interceptor.mjs +4 -4
  16. package/esm2022/lib/interceptors/eu-login-session-timeout-handling.interceptor.mjs +4 -4
  17. package/esm2022/lib/interceptors/index.mjs +1 -2
  18. package/esm2022/lib/interceptors/ux-request-error-model.interceptor.mjs +4 -4
  19. package/esm2022/lib/services/app/eui-init-app.mjs +1 -1
  20. package/esm2022/lib/services/app/eui-pre-init-app.mjs +1 -1
  21. package/esm2022/lib/services/config/tokens.mjs +1 -1
  22. package/esm2022/lib/services/dynamic-component/dynamic-component.service.mjs +4 -4
  23. package/esm2022/lib/services/dynamic-menu/dynamic-menu.service.mjs +4 -4
  24. package/esm2022/lib/services/errors/eui.error.mjs +1 -1
  25. package/esm2022/lib/services/errors/global-error-handler.mjs +4 -4
  26. package/esm2022/lib/services/errors/http-error-handler.interceptor.mjs +4 -4
  27. package/esm2022/lib/services/eui-app-shell.service.mjs +4 -4
  28. package/esm2022/lib/services/eui-timezone.service.mjs +4 -4
  29. package/esm2022/lib/services/growl/eui-growl.service.mjs +4 -4
  30. package/esm2022/lib/services/i18n/i18n.loader.mjs +4 -4
  31. package/esm2022/lib/services/i18n/i18n.service.mjs +4 -4
  32. package/esm2022/lib/services/loader/eui-loader.service.mjs +4 -4
  33. package/esm2022/lib/services/locale/locale.service.mjs +4 -4
  34. package/esm2022/lib/services/locale/locale.service.mock.mjs +4 -4
  35. package/esm2022/lib/services/log/log.module.mjs +5 -5
  36. package/esm2022/lib/services/log/log.service.mjs +4 -4
  37. package/esm2022/lib/services/permission/permission.service.mjs +4 -4
  38. package/esm2022/lib/services/queue/api-queue.service.mjs +4 -4
  39. package/esm2022/lib/services/storage/local-forage.service.mjs +4 -4
  40. package/esm2022/lib/services/storage/local-storage.service.mjs +4 -4
  41. package/esm2022/lib/services/storage/session-storage.service.mjs +4 -4
  42. package/esm2022/lib/services/store/index.mjs +2 -2
  43. package/esm2022/lib/services/store/reducers/app.reducers.mjs +1 -1
  44. package/esm2022/lib/services/store/reducers/i18n.reducers.mjs +1 -1
  45. package/esm2022/lib/services/store/reducers/locale.reducers.mjs +1 -1
  46. package/esm2022/lib/services/store/reducers/meta.reducers.mjs +1 -1
  47. package/esm2022/lib/services/store/reducers/notifications.reducers.mjs +1 -1
  48. package/esm2022/lib/services/store/reducers/user.reducers.mjs +1 -1
  49. package/esm2022/lib/services/store/store.service.mjs +4 -4
  50. package/esm2022/lib/services/store/store.service.mock.mjs +4 -4
  51. package/esm2022/lib/services/user/user.service.mjs +4 -4
  52. package/esm2022/lib/services/user/user.service.mock.mjs +4 -4
  53. package/fesm2022/eui-core.mjs +5204 -5278
  54. package/fesm2022/eui-core.mjs.map +7 -1
  55. package/lib/helpers/dom-helpers.d.ts.map +1 -1
  56. package/lib/helpers/utils.d.ts +1 -1
  57. package/lib/helpers/utils.d.ts.map +1 -1
  58. package/lib/interceptors/index.d.ts +0 -1
  59. package/lib/interceptors/index.d.ts.map +1 -1
  60. package/lib/services/store/index.d.ts +0 -1
  61. package/lib/services/store/index.d.ts.map +1 -1
  62. package/lib/services/store/reducers/meta.reducers.d.ts.map +1 -1
  63. package/package.json +12 -13
  64. package/docs/classes/OpenIdConnectServiceMock.html +0 -281
  65. package/docs/injectables/CoreAppEffects.html +0 -448
  66. package/docs/injectables/OpenIdConnectService.html +0 -283
  67. package/docs/interceptors/OpenIdConnectInterceptor.html +0 -403
  68. package/docs/interfaces/OpenIdConnectUserDetails.html +0 -497
  69. package/esm2022/lib/interceptors/openid/index.mjs +0 -4
  70. package/esm2022/lib/interceptors/openid/openid-connect.interceptor.mjs +0 -183
  71. package/esm2022/lib/interceptors/openid/openid-connect.service.mjs +0 -58
  72. package/esm2022/lib/interceptors/openid/openid-connect.service.mock.mjs +0 -8
  73. package/esm2022/lib/services/store/effects/app.effects.mjs +0 -55
  74. package/esm2022/lib/services/store/effects/index.mjs +0 -4
  75. package/lib/interceptors/openid/index.d.ts +0 -4
  76. package/lib/interceptors/openid/index.d.ts.map +0 -1
  77. package/lib/interceptors/openid/openid-connect.interceptor.d.ts +0 -15
  78. package/lib/interceptors/openid/openid-connect.interceptor.d.ts.map +0 -1
  79. package/lib/interceptors/openid/openid-connect.service.d.ts +0 -18
  80. package/lib/interceptors/openid/openid-connect.service.d.ts.map +0 -1
  81. package/lib/interceptors/openid/openid-connect.service.mock.d.ts +0 -6
  82. package/lib/interceptors/openid/openid-connect.service.mock.d.ts.map +0 -1
  83. package/lib/services/store/effects/app.effects.d.ts +0 -20
  84. package/lib/services/store/effects/app.effects.d.ts.map +0 -1
  85. package/lib/services/store/effects/index.d.ts +0 -4
  86. package/lib/services/store/effects/index.d.ts.map +0 -1
@@ -1,183 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { HttpErrorResponse, HttpEventType, HttpHeaders, } from '@angular/common/http';
3
- import { of, Subject, throwError } from 'rxjs';
4
- import { catchError, finalize } from 'rxjs/operators';
5
- import * as i0 from "@angular/core";
6
- export class OpenIdConnectInterceptor {
7
- constructor() {
8
- // By default, the original request should at least be retries once in case the cached API Gateway token expires:
9
- this.defaultMaximumRequestRetries = 1;
10
- // check if the OpenIdConnect is defined
11
- if (typeof OpenIdConnect === 'undefined') {
12
- console.error('Please include the script openid-login.js in your index.html file.', 'For more details, please consult the documentation regarding the Http Interceptors and OpenID Connect configuration.');
13
- }
14
- }
15
- intercept(
16
- // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html
17
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
18
- request, next, retryCount = 0,
19
- // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html
20
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
21
- retryCallback) {
22
- if (typeof OpenIdConnect !== 'undefined') {
23
- let authorizedRequest = retryCallback;
24
- if (!authorizedRequest) {
25
- // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html
26
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
27
- authorizedRequest = new Subject();
28
- }
29
- let subscription = null;
30
- OpenIdConnect.getAuthorizationHeaders(request.urlWithParams,
31
- // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html
32
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
33
- (headers) => {
34
- let newRequest = request;
35
- if (headers) {
36
- let newHeaders = request.headers;
37
- if (newHeaders) {
38
- for (const headerName in headers) {
39
- // eslint-disable-next-line no-prototype-builtins
40
- if (headers.hasOwnProperty(headerName)) {
41
- newHeaders = newHeaders.set(headerName, headers[headerName]);
42
- }
43
- }
44
- }
45
- else {
46
- newHeaders = new HttpHeaders(headers);
47
- }
48
- newRequest = request.clone({
49
- withCredentials: false,
50
- headers: newHeaders,
51
- });
52
- }
53
- // Don't mix the next line with the line below it.
54
- // We would get a "Cannot access 'subscription' before initialization" error.
55
- subscription = next
56
- .handle(newRequest)
57
- .pipe(catchError((response) => this.handleErrorResponse(response, request, next, retryCount, authorizedRequest, subscription)))
58
- // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html
59
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
60
- .subscribe((httpEvent) => {
61
- if (httpEvent) {
62
- authorizedRequest.next(httpEvent);
63
- if (httpEvent.type === HttpEventType.Response) {
64
- if (subscription) {
65
- subscription.unsubscribe();
66
- }
67
- authorizedRequest.complete();
68
- }
69
- }
70
- });
71
- }, (errorResponse) => {
72
- // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html
73
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
74
- const errorProperties = {
75
- error: errorResponse,
76
- };
77
- if (errorResponse) {
78
- errorProperties.status = errorResponse.status;
79
- errorProperties.statusText = errorResponse.statusText;
80
- }
81
- return this.handleErrorResponse(new HttpErrorResponse(errorProperties), request, next, retryCount, authorizedRequest, null);
82
- });
83
- // EUI-3992 will cancel the xhr request when observable is unsubscribed from or terminated
84
- return authorizedRequest.pipe(finalize(() => {
85
- if (subscription) {
86
- subscription.unsubscribe();
87
- }
88
- }));
89
- }
90
- else {
91
- return next.handle(request);
92
- }
93
- }
94
- handleErrorResponse(response,
95
- // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html
96
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
97
- originalRequest, next, retryCount = 0,
98
- // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html
99
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
100
- retryCallback, subscription) {
101
- if (response) {
102
- if (response.error && response.error.error === 'invalid_request') {
103
- // The ID token is invalid or incorrect; retrieve another one:
104
- OpenIdConnect.renewIdToken();
105
- }
106
- else if (this.apiGatewayTokenExpired(response)) {
107
- OpenIdConnect.clearCachedApiGatewayAccessToken();
108
- return this.retryRequest(originalRequest, response, next, retryCount, retryCallback, subscription);
109
- }
110
- else if (response.status === 401 || response.status === 403) {
111
- // The EU Login access token is invalid. (403)
112
- // The target service is unable to read the access token, for example because the EU Login session ended. (401)
113
- // Retry in case the access token became invalid too quickly:
114
- return this.retryRequest(originalRequest, response, next, retryCount, retryCallback, subscription);
115
- }
116
- else if (response.status === 0) {
117
- // One of the access token requests or the original request was not sent.
118
- // Most likely one of the CORS pre-flight requests failed, or the browser is offline.
119
- console.warn('The OpenID Connect call may have issues:\n' +
120
- '* the CORS pre-flight requests for the OpenID Connect access tokens or for the REST call could be failing\n' +
121
- '* the browser could be currently offline.');
122
- }
123
- }
124
- if (subscription) {
125
- subscription.unsubscribe();
126
- }
127
- if (retryCallback) {
128
- retryCallback.error(response);
129
- retryCallback.complete();
130
- }
131
- return throwError(response);
132
- }
133
- retryRequest(
134
- // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html
135
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
136
- originalRequest, response, next, retryCount = 0,
137
- // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html
138
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
139
- retryCallback, subscription) {
140
- if (retryCount < this.maximumRequestRetries()) {
141
- this.intercept(originalRequest, next, retryCount + 1, retryCallback);
142
- }
143
- else {
144
- console.error('The OpenID Connect call may have issues:\n' +
145
- '* the client ID could be invalid\n' +
146
- '* the API Gateway access token could be invalid\n' +
147
- '* the EU Login access token for the target service could be invalid.');
148
- if (subscription) {
149
- subscription.unsubscribe();
150
- }
151
- if (retryCallback) {
152
- retryCallback.error(response);
153
- retryCallback.complete();
154
- }
155
- }
156
- // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html
157
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
158
- return of(null);
159
- }
160
- apiGatewayTokenExpired(response) {
161
- if (response && response.status === 401) {
162
- const message = '' + response.error;
163
- return message.indexOf('<ams:code>900901</ams:code>') >= 0;
164
- }
165
- else {
166
- return false;
167
- }
168
- }
169
- maximumRequestRetries() {
170
- if (OpenIdConnect.config && OpenIdConnect.config.maximumRequestRetries >= 0) {
171
- return OpenIdConnect.config.maximumRequestRetries;
172
- }
173
- else {
174
- return this.defaultMaximumRequestRetries;
175
- }
176
- }
177
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: OpenIdConnectInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
178
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: OpenIdConnectInterceptor }); }
179
- }
180
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: OpenIdConnectInterceptor, decorators: [{
181
- type: Injectable
182
- }], ctorParameters: () => [] });
183
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbmlkLWNvbm5lY3QuaW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2ludGVyY2VwdG9ycy9vcGVuaWQvb3BlbmlkLWNvbm5lY3QuaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQ0gsaUJBQWlCLEVBRWpCLGFBQWEsRUFFYixXQUFXLEdBSWQsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQWMsRUFBRSxFQUFFLE9BQU8sRUFBZ0IsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBU3RELE1BQU0sT0FBTyx3QkFBd0I7SUFJakM7UUFIQSxpSEFBaUg7UUFDakgsaUNBQTRCLEdBQUcsQ0FBQyxDQUFDO1FBRzdCLHdDQUF3QztRQUN4QyxJQUFJLE9BQU8sYUFBYSxLQUFLLFdBQVcsRUFBRTtZQUN0QyxPQUFPLENBQUMsS0FBSyxDQUNULG9FQUFvRSxFQUNwRSxzSEFBc0gsQ0FDekgsQ0FBQztTQUNMO0lBQ0wsQ0FBQztJQUVELFNBQVM7SUFDTCxtSEFBbUg7SUFDbkgsOERBQThEO0lBQzlELE9BQXlCLEVBQ3pCLElBQWlCLEVBQ2pCLFVBQVUsR0FBRyxDQUFDO0lBQ2QsbUhBQW1IO0lBQ25ILDhEQUE4RDtJQUM5RCxhQUF1QztRQUl2QyxJQUFJLE9BQU8sYUFBYSxLQUFLLFdBQVcsRUFBRTtZQUN0QyxJQUFJLGlCQUFpQixHQUFHLGFBQWEsQ0FBQztZQUN0QyxJQUFJLENBQUMsaUJBQWlCLEVBQUU7Z0JBQ3BCLG1IQUFtSDtnQkFDbkgsOERBQThEO2dCQUM5RCxpQkFBaUIsR0FBRyxJQUFJLE9BQU8sRUFBa0IsQ0FBQzthQUNyRDtZQUVELElBQUksWUFBWSxHQUFHLElB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QUMzQixJQUFJLGFBQWEsQ0FBQyxNQUFNLElBQUksYUFBYSxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsSUFBSSxDQUFDLEVBQUU7WUFDekUsT0FBTyxhQUFhLENBQUMsTUFBTSxDQUFDLHFCQUFxQixDQUFDO1NBQ3JEO2FBQU07WUFDSCxPQUFPLElBQUksQ0FBQyw0QkFBNEIsQ0FBQztTQUM1QztJQUNMLENBQUM7aUlBek5RLHdCQUF3QjtxSUFBeEIsd0JBQXdCOzsyRkFBeEIsd0JBQXdCO2tCQURwQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBIdHRwRXJyb3JSZXNwb25zZSxcbiAgICBIdHRwRXZlbnQsXG4gICAgSHR0cEV2ZW50VHlwZSxcbiAgICBIdHRwSGFuZGxlcixcbiAgICBIdHRwSGVhZGVycyxcbiAgICBIdHRwSW50ZXJjZXB0b3IsXG4gICAgSHR0cFJlcXVlc3QsXG4gICAgSHR0cFJlc3BvbnNlLFxufSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiwgU3ViamVjdCwgU3Vic2NyaXB0aW9uLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBmaW5hbGl6ZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuLy8gVGhpcyB2YXJpYWJsZSBpcyBkZWNsYXJlZCBpbiB0aGUgamF2YXNjcmlwdCBmaWxlIG9wZW5pZC1sb2dpbi5qc1xuLy8gYW5kIHdpbGwgYmUgaW1wb3J0ZWQgaW4gdGhlIGVVSSBhcHBsaWNhdGlvbnMnIGluZGV4Lmh0bWwgZmlsZSwgd2hlbiBuZWNlc3NhcnkuXG4vLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuZGVjbGFyZSBsZXQgT3BlbklkQ29ubmVjdDogYW55O1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgT3BlbklkQ29ubmVjdEludGVyY2VwdG9yIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9yIHtcbiAgICAvLyBCeSBkZWZhdWx0LCB0aGUgb3JpZ2luYWwgcmVxdWVzdCBzaG91bGQgYXQgbGVhc3QgYmUgcmV0cmllcyBvbmNlIGluIGNhc2UgdGhlIGNhY2hlZCBBUEkgR2F0ZXdheSB0b2tlbiBleHBpcmVzOlxuICAgIGRlZmF1bHRNYXhpbXVtUmVxdWVzdFJldHJpZXMgPSAxO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIC8vIGNoZWNrIGlmIHRoZSBPcGVuSWRDb25uZWN0IGlzIGRlZmluZWRcbiAgICAgICAgaWYgKHR5cGVvZiBPcGVuSWRDb25uZWN0ID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICAnUGxlYXNlIGluY2x1ZGUgdGhlIHNjcmlwdCBvcGVuaWQtbG9naW4uanMgaW4geW91ciBpbmRleC5odG1sIGZpbGUuJyxcbiAgICAgICAgICAgICAgICAnRm9yIG1vcmUgZGV0YWlscywgcGxlYXNlIGNvbnN1bHQgdGhlIGRvY3VtZW50YXRpb24gcmVnYXJkaW5nIHRoZSBIdHRwIEludGVyY2VwdG9ycyBhbmQgT3BlbklEIENvbm5lY3QgY29uZmlndXJhdGlvbi4nLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGludGVyY2VwdChcbiAgICAgICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICByZXF1ZXN0OiBIdHRwUmVxdWVzdDxhbnk+LFxuICAgICAgICBuZXh0OiBIdHRwSGFuZGxlcixcbiAgICAgICAgcmV0cnlDb3VudCA9IDAsXG4gICAgICAgIC8vIFRPRE86IGZpbmQgdGhlIGNvcnJlY3QgdHlwZSBvciB0dXJuIGludG8gYSBnZW5lcmljLCBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay8yL2dlbmVyaWNzLmh0bWxcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgICAgcmV0cnlDYWxsYmFjaz86IFN1YmplY3Q8SHR0cEV2ZW50PGFueT4+LFxuICAgICAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj4ge1xuICAgICAgICBpZiAodHlwZW9mIE9wZW5JZENvbm5lY3QgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICBsZXQgYXV0aG9yaXplZFJlcXVlc3QgPSByZXRyeUNhbGxiYWNrO1xuICAgICAgICAgICAgaWYgKCFhdXRob3JpemVkUmVxdWVzdCkge1xuICAgICAgICAgICAgICAgIC8vIFRPRE86IGZpbmQgdGhlIGNvcnJlY3QgdHlwZSBvciB0dXJuIGludG8gYSBnZW5lcmljLCBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay8yL2dlbmVyaWNzLmh0bWxcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICAgICAgICAgIGF1dGhvcml6ZWRSZXF1ZXN0ID0gbmV3IFN1YmplY3Q8SHR0cEV2ZW50PGFueT4+KCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGxldCBzdWJzY3JpcHRpb24gPSBudWxsO1xuICAgICAgICAgICAgT3BlbklkQ29ubmVjdC5nZXRBdXRob3JpemF0aW9uSGVhZGVycyhcbiAgICAgICAgICAgICAgICByZXF1ZXN0LnVybFdpdGhQYXJhbXMsXG4gICAgICAgICAgICAgICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgICAgICAgICAgKGhlYWRlcnM6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBsZXQgbmV3UmVxdWVzdCA9IHJlcXVlc3Q7XG4gICAgICAgICAgICAgICAgICAgIGlmIChoZWFkZXJzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3SGVhZGVycyA9IHJlcXVlc3QuaGVhZGVycztcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuZXdIZWFkZXJzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBoZWFkZXJOYW1lIGluIGhlYWRlcnMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXByb3RvdHlwZS1idWlsdGluc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaGVhZGVycy5oYXNPd25Qcm9wZXJ0eShoZWFkZXJOYW1lKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3SGVhZGVycyA9IG5ld0hlYWRlcnMuc2V0KGhlYWRlck5hbWUsIGhlYWRlcnNbaGVhZGVyTmFtZV0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdIZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKGhlYWRlcnMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgbmV3UmVxdWVzdCA9IHJlcXVlc3QuY2xvbmUoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogbmV3SGVhZGVycyxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gRG9uJ3QgbWl4IHRoZSBuZXh0IGxpbmUgd2l0aCB0aGUgbGluZSBiZWxvdyBpdC5cbiAgICAgICAgICAgICAgICAgICAgLy8gV2Ugd291bGQgZ2V0IGEgXCJDYW5ub3QgYWNjZXNzICdzdWJzY3JpcHRpb24nIGJlZm9yZSBpbml0aWFsaXphdGlvblwiIGVycm9yLlxuICAgICAgICAgICAgICAgICAgICBzdWJzY3JpcHRpb24gPSBuZXh0XG4gICAgICAgICAgICAgICAgICAgICAgICAuaGFuZGxlKG5ld1JlcXVlc3QpXG4gICAgICAgICAgICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChyZXNwb25zZTogSHR0cEVycm9yUmVzcG9uc2UpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlRXJyb3JSZXNwb25zZShyZXNwb25zZSwgcmVxdWVzdCwgbmV4dCwgcmV0cnlDb3VudCwgYXV0aG9yaXplZFJlcXVlc3QsIHN1YnNjcmlwdGlvbiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRPRE86IGZpbmQgdGhlIGNvcnJlY3QgdHlwZSBvciB0dXJuIGludG8gYSBnZW5lcmljLCBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay8yL2dlbmVyaWNzLmh0bWxcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgICAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChodHRwRXZlbnQ6IEh0dHBSZXNwb25zZTxhbnk+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGh0dHBFdmVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRob3JpemVkUmVxdWVzdC5uZXh0KGh0dHBFdmVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChodHRwRXZlbnQudHlwZSA9PT0gSHR0cEV2ZW50VHlwZS5SZXNwb25zZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aG9yaXplZFJlcXVlc3QuY29tcGxldGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgKGVycm9yUmVzcG9uc2U6IFhNTEh0dHBSZXF1ZXN0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFRPRE86IGZpbmQgdGhlIGNvcnJlY3QgdHlwZSBvciB0dXJuIGludG8gYSBnZW5lcmljLCBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay8yL2dlbmVyaWNzLmh0bWxcbiAgICAgICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZXJyb3JQcm9wZXJ0aWVzOiBhbnkgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvcjogZXJyb3JSZXNwb25zZSxcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9yUmVzcG9uc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yUHJvcGVydGllcy5zdGF0dXMgPSBlcnJvclJlc3BvbnNlLnN0YXR1cztcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yUHJvcGVydGllcy5zdGF0dXNUZXh0ID0gZXJyb3JSZXNwb25zZS5zdGF0dXNUZXh0O1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlRXJyb3JSZXNwb25zZShcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBIdHRwRXJyb3JSZXNwb25zZShlcnJvclByb3BlcnRpZXMpLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5leHQsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXRyeUNvdW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgYXV0aG9yaXplZFJlcXVlc3QsXG4gICAgICAgICAgICAgICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAvLyBFVUktMzk5MiB3aWxsIGNhbmNlbCB0aGUgeGhyIHJlcXVlc3Qgd2hlbiBvYnNlcnZhYmxlIGlzIHVuc3Vic2NyaWJlZCBmcm9tIG9yIHRlcm1pbmF0ZWRcbiAgICAgICAgICAgIHJldHVybiBhdXRob3JpemVkUmVxdWVzdC5waXBlKFxuICAgICAgICAgICAgICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxdWVzdCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgaGFuZGxlRXJyb3JSZXNwb25zZShcbiAgICAgICAgcmVzcG9uc2U6IEh0dHBFcnJvclJlc3BvbnNlLFxuICAgICAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgIG9yaWdpbmFsUmVxdWVzdDogSHR0cFJlcXVlc3Q8YW55PixcbiAgICAgICAgbmV4dDogSHR0cEhhbmRsZXIsXG4gICAgICAgIHJldHJ5Q291bnQgPSAwLFxuICAgICAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgIHJldHJ5Q2FsbGJhY2s6IFN1YmplY3Q8SHR0cEV2ZW50PGFueT4+LFxuICAgICAgICBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbixcbiAgICAgICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICk6IE9ic2VydmFibGU8SHR0cEV2ZW50PGFueT4+IHtcbiAgICAgICAgaWYgKHJlc3BvbnNlKSB7XG4gICAgICAgICAgICBpZiAocmVzcG9uc2UuZXJyb3IgJiYgcmVzcG9uc2UuZXJyb3IuZXJyb3IgPT09ICdpbnZhbGlkX3JlcXVlc3QnKSB7XG4gICAgICAgICAgICAgICAgLy8gVGhlIElEIHRva2VuIGlzIGludmFsaWQgb3IgaW5jb3JyZWN0OyByZXRyaWV2ZSBhbm90aGVyIG9uZTpcbiAgICAgICAgICAgICAgICBPcGVuSWRDb25uZWN0LnJlbmV3SWRUb2tlbigpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmFwaUdhdGV3YXlUb2tlbkV4cGlyZWQocmVzcG9uc2UpKSB7XG4gICAgICAgICAgICAgICAgT3BlbklkQ29ubmVjdC5jbGVhckNhY2hlZEFwaUdhdGV3YXlBY2Nlc3NUb2tlbigpO1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnJldHJ5UmVxdWVzdChvcmlnaW5hbFJlcXVlc3QsIHJlc3BvbnNlLCBuZXh0LCByZXRyeUNvdW50LCByZXRyeUNhbGxiYWNrLCBzdWJzY3JpcHRpb24pO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChyZXNwb25zZS5zdGF0dXMgPT09IDQwMSB8fCByZXNwb25zZS5zdGF0dXMgPT09IDQwMykge1xuICAgICAgICAgICAgICAgIC8vIFRoZSBFVSBMb2dpbiBhY2Nlc3MgdG9rZW4gaXMgaW52YWxpZC4gKDQwMylcbiAgICAgICAgICAgICAgICAvLyBUaGUgdGFyZ2V0IHNlcnZpY2UgaXMgdW5hYmxlIHRvIHJlYWQgdGhlIGFjY2VzcyB0b2tlbiwgZm9yIGV4YW1wbGUgYmVjYXVzZSB0aGUgRVUgTG9naW4gc2Vzc2lvbiBlbmRlZC4gKDQwMSlcbiAgICAgICAgICAgICAgICAvLyBSZXRyeSBpbiBjYXNlIHRoZSBhY2Nlc3MgdG9rZW4gYmVjYW1lIGludmFsaWQgdG9vIHF1aWNrbHk6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucmV0cnlSZXF1ZXN0KG9yaWdpbmFsUmVxdWVzdCwgcmVzcG9uc2UsIG5leHQsIHJldHJ5Q291bnQsIHJldHJ5Q2FsbGJhY2ssIHN1YnNjcmlwdGlvbik7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PT0gMCkge1xuICAgICAgICAgICAgICAgIC8vIE9uZSBvZiB0aGUgYWNjZXNzIHRva2VuIHJlcXVlc3RzIG9yIHRoZSBvcmlnaW5hbCByZXF1ZXN0IHdhcyBub3Qgc2VudC5cbiAgICAgICAgICAgICAgICAvLyBNb3N0IGxpa2VseSBvbmUgb2YgdGhlIENPUlMgcHJlLWZsaWdodCByZXF1ZXN0cyBmYWlsZWQsIG9yIHRoZSBicm93c2VyIGlzIG9mZmxpbmUuXG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgICAgICAgICAnVGhlIE9wZW5JRCBDb25uZWN0IGNhbGwgbWF5IGhhdmUgaXNzdWVzOlxcbicgK1xuICAgICAgICAgICAgICAgICAgICAnKiB0aGUgQ09SUyBwcmUtZmxpZ2h0IHJlcXVlc3RzIGZvciB0aGUgT3BlbklEIENvbm5lY3QgYWNjZXNzIHRva2VucyBvciBmb3IgdGhlIFJFU1QgY2FsbCBjb3VsZCBiZSBmYWlsaW5nXFxuJyArXG4gICAgICAgICAgICAgICAgICAgICcqIHRoZSBicm93c2VyIGNvdWxkIGJlIGN1cnJlbnRseSBvZmZsaW5lLicsXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyZXRyeUNhbGxiYWNrKSB7XG4gICAgICAgICAgICByZXRyeUNhbGxiYWNrLmVycm9yKHJlc3BvbnNlKTtcbiAgICAgICAgICAgIHJldHJ5Q2FsbGJhY2suY29tcGxldGUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKHJlc3BvbnNlKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgcmV0cnlSZXF1ZXN0KFxuICAgICAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgIG9yaWdpbmFsUmVxdWVzdDogSHR0cFJlcXVlc3Q8YW55PixcbiAgICAgICAgcmVzcG9uc2U6IEh0dHBFcnJvclJlc3BvbnNlLFxuICAgICAgICBuZXh0OiBIdHRwSGFuZGxlcixcbiAgICAgICAgcmV0cnlDb3VudCA9IDAsXG4gICAgICAgIC8vIFRPRE86IGZpbmQgdGhlIGNvcnJlY3QgdHlwZSBvciB0dXJuIGludG8gYSBnZW5lcmljLCBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay8yL2dlbmVyaWNzLmh0bWxcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgICAgcmV0cnlDYWxsYmFjazogU3ViamVjdDxIdHRwRXZlbnQ8YW55Pj4sXG4gICAgICAgIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uLFxuICAgICAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj4ge1xuICAgICAgICBpZiAocmV0cnlDb3VudCA8IHRoaXMubWF4aW11bVJlcXVlc3RSZXRyaWVzKCkpIHtcbiAgICAgICAgICAgIHRoaXMuaW50ZXJjZXB0KG9yaWdpbmFsUmVxdWVzdCwgbmV4dCwgcmV0cnlDb3VudCArIDEsIHJldHJ5Q2FsbGJhY2spO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICAnVGhlIE9wZW5JRCBDb25uZWN0IGNhbGwgbWF5IGhhdmUgaXNzdWVzOlxcbicgK1xuICAgICAgICAgICAgICAgICcqIHRoZSBjbGllbnQgSUQgY291bGQgYmUgaW52YWxpZFxcbicgK1xuICAgICAgICAgICAgICAgICcqIHRoZSBBUEkgR2F0ZXdheSBhY2Nlc3MgdG9rZW4gY291bGQgYmUgaW52YWxpZFxcbicgK1xuICAgICAgICAgICAgICAgICcqIHRoZSBFVSBMb2dpbiBhY2Nlc3MgdG9rZW4gZm9yIHRoZSB0YXJnZXQgc2VydmljZSBjb3VsZCBiZSBpbnZhbGlkLicsXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgaWYgKHN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgICAgIHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHJldHJ5Q2FsbGJhY2spIHtcbiAgICAgICAgICAgICAgICByZXRyeUNhbGxiYWNrLmVycm9yKHJlc3BvbnNlKTtcbiAgICAgICAgICAgICAgICByZXRyeUNhbGxiYWNrLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgIHJldHVybiBvZjxIdHRwRXZlbnQ8YW55Pj4obnVsbCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGFwaUdhdGV3YXlUb2tlbkV4cGlyZWQocmVzcG9uc2U6IEh0dHBFcnJvclJlc3BvbnNlKTogYm9vbGVhbiB7XG4gICAgICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS5zdGF0dXMgPT09IDQwMSkge1xuICAgICAgICAgICAgY29uc3QgbWVzc2FnZSA9ICcnICsgcmVzcG9uc2UuZXJyb3I7XG4gICAgICAgICAgICByZXR1cm4gbWVzc2FnZS5pbmRleE9mKCc8YW1zOmNvZGU+OTAwOTAxPC9hbXM6Y29kZT4nKSA+PSAwO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG1heGltdW1SZXF1ZXN0UmV0cmllcygpOiBudW1iZXIge1xuICAgICAgICBpZiAoT3BlbklkQ29ubmVjdC5jb25maWcgJiYgT3BlbklkQ29ubmVjdC5jb25maWcubWF4aW11bVJlcXVlc3RSZXRyaWVzID49IDApIHtcbiAgICAgICAgICAgIHJldHVybiBPcGVuSWRDb25uZWN0LmNvbmZpZy5tYXhpbXVtUmVxdWVzdFJldHJpZXM7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5kZWZhdWx0TWF4aW11bVJlcXVlc3RSZXRyaWVzO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -1,58 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { Observable } from 'rxjs';
3
- import * as i0 from "@angular/core";
4
- export class OpenIdConnectService {
5
- constructor() {
6
- this.userDetails = new Observable((observer) => {
7
- if (typeof ApiGateway !== 'undefined') {
8
- // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html
9
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
10
- ApiGateway.getUser((user) => {
11
- if (user) {
12
- observer.next({
13
- domain: null,
14
- domainUsername: user.username,
15
- firstName: user.given_name,
16
- lastName: user.family_name,
17
- email: user.email,
18
- departmentNumber: user['https://ecas.ec.europa.eu/claims/department_number'],
19
- });
20
- }
21
- else {
22
- observer.next(null);
23
- }
24
- observer.complete();
25
- });
26
- }
27
- else if (typeof OpenIdConnect !== 'undefined') {
28
- OpenIdConnect.getIdToken(() => {
29
- const detailsString = sessionStorage.getItem(OpenIdConnect.SESSION_STORAGE_KEY_USER_DETAILS);
30
- if (detailsString) {
31
- observer.next(JSON.parse(detailsString));
32
- observer.complete();
33
- }
34
- else {
35
- observer.next(null);
36
- observer.complete();
37
- }
38
- });
39
- }
40
- else {
41
- observer.next(null);
42
- observer.complete();
43
- }
44
- });
45
- }
46
- getUserDetails() {
47
- return this.userDetails;
48
- }
49
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: OpenIdConnectService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
50
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: OpenIdConnectService, providedIn: 'root' }); }
51
- }
52
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: OpenIdConnectService, decorators: [{
53
- type: Injectable,
54
- args: [{
55
- providedIn: 'root',
56
- }]
57
- }], ctorParameters: () => [] });
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbmlkLWNvbm5lY3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvaW50ZXJjZXB0b3JzL29wZW5pZC9vcGVuaWQtY29ubmVjdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUF1QmxDLE1BQU0sT0FBTyxvQkFBb0I7SUFHN0I7UUFDSSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksVUFBVSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDM0MsSUFBSSxPQUFPLFVBQVUsS0FBSyxXQUFXLEVBQUU7Z0JBQ25DLG1IQUFtSDtnQkFDbkgsOERBQThEO2dCQUM5RCxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7b0JBQzdCLElBQUksSUFBSSxFQUFFO3dCQUNOLFFBQVEsQ0FBQyxJQUFJLENBQUM7NEJBQ1YsTUFBTSxFQUFFLElBQUk7NEJBQ1osY0FBYyxFQUFFLElBQUksQ0FBQyxRQUFROzRCQUM3QixTQUFTLEVBQUUsSUFBSSxDQUFDLFVBQVU7NEJBQzFCLFFBQVEsRUFBRSxJQUFJLENBQUMsV0FBVzs0QkFDMUIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLOzRCQUNqQixnQkFBZ0IsRUFBRSxJQUFJLENBQUMsb0RBQW9ELENBQUM7eUJBQy9FLENBQUMsQ0FBQztxQkFDTjt5QkFBTTt3QkFDSCxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO3FCQUN2QjtvQkFDRCxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ3hCLENBQUMsQ0FBQyxDQUFDO2FBQ047aUJBQU0sSUFBSSxPQUFPLGFBQWEsS0FBSyxXQUFXLEVBQUU7Z0JBQzdDLGFBQWEsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFO29CQUMxQixNQUFNLGFBQWEsR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO29CQUM3RixJQUFJLGFBQWEsRUFBRTt3QkFDZixRQUFRLENBQUMsSUFBSSxDQUEyQixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7d0JBQ25FLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztxQkFDdkI7eUJBQU07d0JBQ0gsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQzt3QkFDcEIsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO3FCQUN2QjtnQkFDTCxDQUFDLENBQUMsQ0FBQzthQUNOO2lCQUFNO2dCQUNILFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3BCLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQzthQUN2QjtRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELGNBQWM7UUFDVixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDNUIsQ0FBQztpSUEzQ1Esb0JBQW9CO3FJQUFwQixvQkFBb0IsY0FGakIsTUFBTTs7MkZBRVQsb0JBQW9CO2tCQUhoQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuLy8gVGhpcyB2YXJpYWJsZSBpcyBkZWNsYXJlZCBpbiB0aGUgamF2YXNjcmlwdCBmaWxlIG9wZW5pZC1sb2dpbi5qc1xuLy8gYW5kIGluamVjdGVkIGluIHRoZSBlVUkgYXBwbGljYXRpb25zJyBpbmRleC5odG1sIGZpbGUsIGlmIG5lY2Vzc2FyeVxuLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbmRlY2xhcmUgbGV0IE9wZW5JZENvbm5lY3Q6IGFueTtcbi8vIFRPRE86IGZpbmQgdGhlIGNvcnJlY3QgdHlwZSBvciB0dXJuIGludG8gYSBnZW5lcmljLCBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay8yL2dlbmVyaWNzLmh0bWxcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG5kZWNsYXJlIGxldCBBcGlHYXRld2F5OiBhbnk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3BlbklkQ29ubmVjdFVzZXJEZXRhaWxzIHtcbiAgICBkb21haW4/OiBzdHJpbmc7XG4gICAgZG9tYWluVXNlcm5hbWU/OiBzdHJpbmc7XG4gICAgZmlyc3ROYW1lPzogc3RyaW5nO1xuICAgIGxhc3ROYW1lPzogc3RyaW5nO1xuICAgIGVtYWlsPzogc3RyaW5nO1xuICAgIGRlcGFydG1lbnROdW1iZXI/OiBzdHJpbmc7XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIE9wZW5JZENvbm5lY3RTZXJ2aWNlIHtcbiAgICBwcml2YXRlIHVzZXJEZXRhaWxzOiBPYnNlcnZhYmxlPE9wZW5JZENvbm5lY3RVc2VyRGV0YWlscz47XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy51c2VyRGV0YWlscyA9IG5ldyBPYnNlcnZhYmxlKChvYnNlcnZlcikgPT4ge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBBcGlHYXRld2F5ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgIC8vIFRPRE86IGZpbmQgdGhlIGNvcnJlY3QgdHlwZSBvciB0dXJuIGludG8gYSBnZW5lcmljLCBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay8yL2dlbmVyaWNzLmh0bWxcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICAgICAgICAgIEFwaUdhdGV3YXkuZ2V0VXNlcigodXNlcjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh1c2VyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb21haW46IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9tYWluVXNlcm5hbWU6IHVzZXIudXNlcm5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyc3ROYW1lOiB1c2VyLmdpdmVuX25hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdE5hbWU6IHVzZXIuZmFtaWx5X25hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW1haWw6IHVzZXIuZW1haWwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVwYXJ0bWVudE51bWJlcjogdXNlclsnaHR0cHM6Ly9lY2FzLmVjLmV1cm9wYS5ldS9jbGFpbXMvZGVwYXJ0bWVudF9udW1iZXInXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIubmV4dChudWxsKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgT3BlbklkQ29ubmVjdCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICBPcGVuSWRDb25uZWN0LmdldElkVG9rZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkZXRhaWxzU3RyaW5nID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShPcGVuSWRDb25uZWN0LlNFU1NJT05fU1RPUkFHRV9LRVlfVVNFUl9ERVRBSUxTKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRldGFpbHNTdHJpbmcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9ic2VydmVyLm5leHQoPE9wZW5JZENvbm5lY3RVc2VyRGV0YWlscz5KU09OLnBhcnNlKGRldGFpbHNTdHJpbmcpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KG51bGwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KG51bGwpO1xuICAgICAgICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGdldFVzZXJEZXRhaWxzKCk6IE9ic2VydmFibGU8T3BlbklkQ29ubmVjdFVzZXJEZXRhaWxzPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnVzZXJEZXRhaWxzO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,8 +0,0 @@
1
- import { of } from 'rxjs';
2
- import { OpenIdConnectService } from './openid-connect.service';
3
- export class OpenIdConnectServiceMock extends OpenIdConnectService {
4
- getUserDetails() {
5
- return of(null);
6
- }
7
- }
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbmlkLWNvbm5lY3Quc2VydmljZS5tb2NrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9pbnRlcmNlcHRvcnMvb3BlbmlkL29wZW5pZC1jb25uZWN0LnNlcnZpY2UubW9jay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxvQkFBb0IsRUFBNEIsTUFBTSwwQkFBMEIsQ0FBQztBQUUxRixNQUFNLE9BQU8sd0JBQXlCLFNBQVEsb0JBQW9CO0lBQzlELGNBQWM7UUFDVixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgT3BlbklkQ29ubmVjdFNlcnZpY2UsIE9wZW5JZENvbm5lY3RVc2VyRGV0YWlscyB9IGZyb20gJy4vb3BlbmlkLWNvbm5lY3Quc2VydmljZSc7XG5cbmV4cG9ydCBjbGFzcyBPcGVuSWRDb25uZWN0U2VydmljZU1vY2sgZXh0ZW5kcyBPcGVuSWRDb25uZWN0U2VydmljZSB7XG4gICAgZ2V0VXNlckRldGFpbHMoKTogT2JzZXJ2YWJsZTxPcGVuSWRDb25uZWN0VXNlckRldGFpbHM+IHtcbiAgICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,55 +0,0 @@
1
- import { Injectable, Inject } from '@angular/core';
2
- import { ofType, createEffect } from '@ngrx/effects';
3
- import { fromEvent, merge } from 'rxjs';
4
- import { map, mapTo, mergeMap, tap } from 'rxjs/operators';
5
- import { CoreAppActionTypes, UpdateCurrentModuleAction, UpdateAppConnectionAction } from '../actions/app.actions';
6
- import { SHOW_CONNECTION_STATUS_TOKEN } from '../../config/tokens';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "@ngrx/effects";
9
- import * as i2 from "@ngx-translate/core";
10
- import * as i3 from "../../growl/eui-growl.service";
11
- export class CoreAppEffects {
12
- constructor(actions,
13
- // TODO: remove on eUI 14
14
- showConnectionStatus, translateService, asService) {
15
- this.actions = actions;
16
- this.showConnectionStatus = showConnectionStatus;
17
- this.translateService = translateService;
18
- this.asService = asService;
19
- this.getAppConnectionInformation = createEffect(() => merge(fromEvent(window, 'online').pipe(mapTo(true)), fromEvent(window, 'offline').pipe(mapTo(false))).pipe(map((connected) => new UpdateAppConnectionAction(connected))));
20
- this.activatedRoute = createEffect(() => this.actions.pipe(ofType(CoreAppActionTypes.ACTIVATED_ROUTE), map((action) => action.payload), mergeMap((route) => {
21
- // extract the module name, if defined
22
- const module = route.snapshot.data['module'] || 'undefined';
23
- return [new UpdateCurrentModuleAction(module)];
24
- })));
25
- this.updateAppConnection = createEffect(() => this.actions.pipe(ofType(CoreAppActionTypes.UPDATE_APP_CONNECTION), map((action) => action.payload), tap((connected) => {
26
- // TODO: for eUI 14, drop boolean support and refactor
27
- // check if feature is enabled
28
- const isFeatureEnabled = typeof this.showConnectionStatus !== 'boolean' ? this.showConnectionStatus?.enabled : this.showConnectionStatus;
29
- // extract lifespan if any
30
- const lifespan = typeof this.showConnectionStatus !== 'boolean' ? this.showConnectionStatus?.messageBox?.lifespan || 0 : 0;
31
- // if the user needs to be informed about the connection status
32
- if (isFeatureEnabled) {
33
- if (connected) {
34
- this.translateService.get('eui.CONNECTED').subscribe((translation) => {
35
- this.asService.growl({ severity: 'success', summary: 'MESSAGE', detail: translation, life: lifespan }, lifespan < 1, false);
36
- });
37
- }
38
- else {
39
- this.translateService.get('eui.NOTCONNECTED').subscribe((translation) => {
40
- this.asService.growl({ severity: 'danger', summary: 'ERROR', detail: translation, life: lifespan }, lifespan < 1, false);
41
- });
42
- }
43
- }
44
- })), { dispatch: false });
45
- }
46
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: CoreAppEffects, deps: [{ token: i1.Actions }, { token: SHOW_CONNECTION_STATUS_TOKEN }, { token: i2.TranslateService }, { token: i3.EuiGrowlService }], target: i0.ɵɵFactoryTarget.Injectable }); }
47
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: CoreAppEffects }); }
48
- }
49
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: CoreAppEffects, decorators: [{
50
- type: Injectable
51
- }], ctorParameters: () => [{ type: i1.Actions }, { type: undefined, decorators: [{
52
- type: Inject,
53
- args: [SHOW_CONNECTION_STATUS_TOKEN]
54
- }] }, { type: i2.TranslateService }, { type: i3.EuiGrowlService }] });
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmVmZmVjdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL3N0b3JlL2VmZmVjdHMvYXBwLmVmZmVjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHbkQsT0FBTyxFQUFXLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFjLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEQsT0FBTyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNELE9BQU8sRUFBRSxrQkFBa0IsRUFBd0IseUJBQXlCLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUd4SSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7QUFJbkUsTUFBTSxPQUFPLGNBQWM7SUEwRHZCLFlBQ2MsT0FBZ0I7SUFDMUIseUJBQXlCO0lBQ3VCLG9CQUFnRCxFQUN0RixnQkFBa0MsRUFDbEMsU0FBMEI7UUFKMUIsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUVzQix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQTRCO1FBQ3RGLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsY0FBUyxHQUFULFNBQVMsQ0FBaUI7UUE5RHhDLGdDQUEyQixHQUF1QixZQUFZLENBQUMsR0FBRyxFQUFFLENBQ2hFLEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFD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WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IEFjdGlvbiB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IEFjdGlvbnMsIG9mVHlwZSwgY3JlYXRlRWZmZWN0IH0gZnJvbSAnQG5ncngvZWZmZWN0cyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBmcm9tRXZlbnQsIG1lcmdlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIG1hcFRvLCBtZXJnZU1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBDb3JlQXBwQWN0aW9uVHlwZXMsIEFjdGl2YXRlZFJvdXRlQWN0aW9uLCBVcGRhdGVDdXJyZW50TW9kdWxlQWN0aW9uLCBVcGRhdGVBcHBDb25uZWN0aW9uQWN0aW9uIH0gZnJvbSAnLi4vYWN0aW9ucy9hcHAuYWN0aW9ucyc7XG5cbmltcG9ydCB7IEV1aUdyb3dsU2VydmljZSB9IGZyb20gJy4uLy4uL2dyb3dsL2V1aS1ncm93bC5zZXJ2aWNlJztcbmltcG9ydCB7IFNIT1dfQ09OTkVDVElPTl9TVEFUVVNfVE9LRU4gfSBmcm9tICcuLi8uLi9jb25maWcvdG9rZW5zJztcbmltcG9ydCB7IENvbm5lY3Rpb25TdGF0dXMgfSBmcm9tICdAZXVpL2Jhc2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ29yZUFwcEVmZmVjdHMge1xuICAgIGdldEFwcENvbm5lY3Rpb25JbmZvcm1hdGlvbjogT2JzZXJ2YWJsZTxBY3Rpb24+ID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgICAgIG1lcmdlKGZyb21FdmVudCh3aW5kb3csICdvbmxpbmUnKS5waXBlKG1hcFRvKHRydWUpKSwgZnJvbUV2ZW50KHdpbmRvdywgJ29mZmxpbmUnKS5waXBlKG1hcFRvKGZhbHNlKSkpLnBpcGUoXG4gICAgICAgICAgICBtYXAoKGNvbm5lY3RlZCkgPT4gbmV3IFVwZGF0ZUFwcENvbm5lY3Rpb25BY3Rpb24oY29ubmVjdGVkKSksXG4gICAgICAgICksXG4gICAgKTtcblxuICAgIGFjdGl2YXRlZFJvdXRlOiBPYnNlcnZhYmxlPEFjdGlvbj4gPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICAgICAgdGhpcy5hY3Rpb25zLnBpcGUoXG4gICAgICAgICAgICBvZlR5cGUoQ29yZUFwcEFjdGlvblR5cGVzLkFDVElWQVRFRF9ST1VURSksXG4gICAgICAgICAgICBtYXAoKGFjdGlvbjogQWN0aXZhdGVkUm91dGVBY3Rpb24pID0+IGFjdGlvbi5wYXlsb2FkKSxcbiAgICAgICAgICAgIG1lcmdlTWFwKChyb3V0ZSkgPT4ge1xuICAgICAgICAgICAgICAgIC8vIGV4dHJhY3QgdGhlIG1vZHVsZSBuYW1lLCBpZiBkZWZpbmVkXG4gICAgICAgICAgICAgICAgY29uc3QgbW9kdWxlID0gcm91dGUuc25hcHNob3QuZGF0YVsnbW9kdWxlJ10gfHwgJ3VuZGVmaW5lZCc7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFtuZXcgVXBkYXRlQ3VycmVudE1vZHVsZUFjdGlvbihtb2R1bGUpXTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICApLFxuICAgICk7XG5cbiAgICB1cGRhdGVBcHBDb25uZWN0aW9uID0gY3JlYXRlRWZmZWN0KFxuICAgICAgICAoKSA9PlxuICAgICAgICAgICAgdGhpcy5hY3Rpb25zLnBpcGUoXG4gICAgICAgICAgICAgICAgb2ZUeXBlKENvcmVBcHBBY3Rpb25UeXBlcy5VUERBVEVfQVBQX0NPTk5FQ1RJT04pLFxuICAgICAgICAgICAgICAgIG1hcCgoYWN0aW9uOiBVcGRhdGVBcHBDb25uZWN0aW9uQWN0aW9uKSA9PiBhY3Rpb24ucGF5bG9hZCksXG4gICAgICAgICAgICAgICAgdGFwKChjb25uZWN0ZWQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgLy8gVE9ETzogZm9yIGVVSSAxNCwgZHJvcCBib29sZWFuIHN1cHBvcnQgYW5kIHJlZmFjdG9yXG4gICAgICAgICAgICAgICAgICAgIC8vIGNoZWNrIGlmIGZlYXR1cmUgaXMgZW5hYmxlZFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBpc0ZlYXR1cmVFbmFibGVkID1cbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVvZiB0aGlzLnNob3dDb25uZWN0aW9uU3RhdHVzICE9PSAnYm9vbGVhbicgPyB0aGlzLnNob3dDb25uZWN0aW9uU3RhdHVzPy5lbmFibGVkIDogdGhpcy5zaG93Q29ubmVjdGlvblN0YXR1cztcbiAgICAgICAgICAgICAgICAgICAgLy8gZXh0cmFjdCBsaWZlc3BhbiBpZiBhbnlcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbGlmZXNwYW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZW9mIHRoaXMuc2hvd0Nvbm5lY3Rpb25TdGF0dXMgIT09ICdib29sZWFuJyA/IHRoaXMuc2hvd0Nvbm5lY3Rpb25TdGF0dXM/Lm1lc3NhZ2VCb3g/LmxpZmVzcGFuIHx8IDAgOiAwO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIGlmIHRoZSB1c2VyIG5lZWRzIHRvIGJlIGluZm9ybWVkIGFib3V0IHRoZSBjb25uZWN0aW9uIHN0YXR1c1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNGZWF0dXJlRW5hYmxlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbm5lY3RlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5nZXQoJ2V1aS5DT05ORUNURUQnKS5zdWJzY3JpYmUoKHRyYW5zbGF0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYXNTZXJ2aWNlLmdyb3dsKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBzZXZlcml0eTogJ3N1Y2Nlc3MnLCBzdW1tYXJ5OiAnTUVTU0FHRScsIGRldGFpbDogdHJhbnNsYXRpb24sIGxpZmU6IGxpZmVzcGFuIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWZlc3BhbiA8IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmdldCgnZXVpLk5PVENPTk5FQ1RFRCcpLnN1YnNjcmliZSgodHJhbnNsYXRpb24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hc1NlcnZpY2UuZ3Jvd2woXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHNldmVyaXR5OiAnZGFuZ2VyJywgc3VtbWFyeTogJ0VSUk9SJywgZGV0YWlsOiB0cmFuc2xhdGlvbiwgbGlmZTogbGlmZXNwYW4gfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpZmVzcGFuIDwgMSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApLFxuICAgICAgICB7IGRpc3BhdGNoOiBmYWxzZSB9LFxuICAgICk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJvdGVjdGVkIGFjdGlvbnM6IEFjdGlvbnMsXG4gICAgICAgIC8vIFRPRE86IHJlbW92ZSBvbiBlVUkgMTRcbiAgICAgICAgQEluamVjdChTSE9XX0NPTk5FQ1RJT05fU1RBVFVTX1RPS0VOKSBwcm90ZWN0ZWQgc2hvd0Nvbm5lY3Rpb25TdGF0dXM6IGJvb2xlYW4gfCBDb25uZWN0aW9uU3RhdHVzLFxuICAgICAgICBwcm90ZWN0ZWQgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgcHJvdGVjdGVkIGFzU2VydmljZTogRXVpR3Jvd2xTZXJ2aWNlLFxuICAgICkge31cbn1cbiJdfQ==
@@ -1,4 +0,0 @@
1
- export * from './app.effects';
2
- import { CoreAppEffects } from './app.effects';
3
- export const CoreModuleEffects = [CoreAppEffects];
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL3N0b3JlL2VmZmVjdHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxlQUFlLENBQUM7QUFFOUIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvQyxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hcHAuZWZmZWN0cyc7XG5cbmltcG9ydCB7IENvcmVBcHBFZmZlY3RzIH0gZnJvbSAnLi9hcHAuZWZmZWN0cyc7XG5cbmV4cG9ydCBjb25zdCBDb3JlTW9kdWxlRWZmZWN0cyA9IFtDb3JlQXBwRWZmZWN0c107XG4iXX0=
@@ -1,4 +0,0 @@
1
- export * from './openid-connect.interceptor';
2
- export * from './openid-connect.service';
3
- export * from './openid-connect.service.mock';
4
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/interceptors/openid/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC"}
@@ -1,15 +0,0 @@
1
- import { HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';
2
- import { Observable, Subject, Subscription } from 'rxjs';
3
- import * as i0 from "@angular/core";
4
- export declare class OpenIdConnectInterceptor implements HttpInterceptor {
5
- defaultMaximumRequestRetries: number;
6
- constructor();
7
- intercept(request: HttpRequest<any>, next: HttpHandler, retryCount?: number, retryCallback?: Subject<HttpEvent<any>>): Observable<HttpEvent<any>>;
8
- protected handleErrorResponse(response: HttpErrorResponse, originalRequest: HttpRequest<any>, next: HttpHandler, retryCount: number, retryCallback: Subject<HttpEvent<any>>, subscription: Subscription): Observable<HttpEvent<any>>;
9
- protected retryRequest(originalRequest: HttpRequest<any>, response: HttpErrorResponse, next: HttpHandler, retryCount: number, retryCallback: Subject<HttpEvent<any>>, subscription: Subscription): Observable<HttpEvent<any>>;
10
- protected apiGatewayTokenExpired(response: HttpErrorResponse): boolean;
11
- protected maximumRequestRetries(): number;
12
- static ɵfac: i0.ɵɵFactoryDeclaration<OpenIdConnectInterceptor, never>;
13
- static ɵprov: i0.ɵɵInjectableDeclaration<OpenIdConnectInterceptor>;
14
- }
15
- //# sourceMappingURL=openid-connect.interceptor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"openid-connect.interceptor.d.ts","sourceRoot":"","sources":["../../../../src/lib/interceptors/openid/openid-connect.interceptor.ts"],"names":[],"mappings":"AACA,OAAO,EACH,iBAAiB,EACjB,SAAS,EAET,WAAW,EAEX,eAAe,EACf,WAAW,EAEd,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAM,OAAO,EAAE,YAAY,EAAc,MAAM,MAAM,CAAC;;AASzE,qBACa,wBAAyB,YAAW,eAAe;IAE5D,4BAA4B,SAAK;;IAYjC,SAAS,CAGL,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC,EACzB,IAAI,EAAE,WAAW,EACjB,UAAU,SAAI,EAGd,aAAa,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAGxC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IA4F7B,SAAS,CAAC,mBAAmB,CACzB,QAAQ,EAAE,iBAAiB,EAG3B,eAAe,EAAE,WAAW,CAAC,GAAG,CAAC,EACjC,IAAI,EAAE,WAAW,EACjB,UAAU,QAAI,EAGd,aAAa,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EACtC,YAAY,EAAE,YAAY,GAG3B,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAmC7B,SAAS,CAAC,YAAY,CAGlB,eAAe,EAAE,WAAW,CAAC,GAAG,CAAC,EACjC,QAAQ,EAAE,iBAAiB,EAC3B,IAAI,EAAE,WAAW,EACjB,UAAU,QAAI,EAGd,aAAa,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EACtC,YAAY,EAAE,YAAY,GAG3B,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAwB7B,SAAS,CAAC,sBAAsB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,OAAO;IAStE,SAAS,CAAC,qBAAqB,IAAI,MAAM;yCAnNhC,wBAAwB;6CAAxB,wBAAwB;CA0NpC"}
@@ -1,18 +0,0 @@
1
- import { Observable } from 'rxjs';
2
- import * as i0 from "@angular/core";
3
- export interface OpenIdConnectUserDetails {
4
- domain?: string;
5
- domainUsername?: string;
6
- firstName?: string;
7
- lastName?: string;
8
- email?: string;
9
- departmentNumber?: string;
10
- }
11
- export declare class OpenIdConnectService {
12
- private userDetails;
13
- constructor();
14
- getUserDetails(): Observable<OpenIdConnectUserDetails>;
15
- static ɵfac: i0.ɵɵFactoryDeclaration<OpenIdConnectService, never>;
16
- static ɵprov: i0.ɵɵInjectableDeclaration<OpenIdConnectService>;
17
- }
18
- //# sourceMappingURL=openid-connect.service.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"openid-connect.service.d.ts","sourceRoot":"","sources":["../../../../src/lib/interceptors/openid/openid-connect.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;;AAWlC,MAAM,WAAW,wBAAwB;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,qBAGa,oBAAoB;IAC7B,OAAO,CAAC,WAAW,CAAuC;;IAwC1D,cAAc,IAAI,UAAU,CAAC,wBAAwB,CAAC;yCAzC7C,oBAAoB;6CAApB,oBAAoB;CA4ChC"}
@@ -1,6 +0,0 @@
1
- import { Observable } from 'rxjs';
2
- import { OpenIdConnectService, OpenIdConnectUserDetails } from './openid-connect.service';
3
- export declare class OpenIdConnectServiceMock extends OpenIdConnectService {
4
- getUserDetails(): Observable<OpenIdConnectUserDetails>;
5
- }
6
- //# sourceMappingURL=openid-connect.service.mock.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"openid-connect.service.mock.d.ts","sourceRoot":"","sources":["../../../../src/lib/interceptors/openid/openid-connect.service.mock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAM,MAAM,MAAM,CAAC;AACtC,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAE1F,qBAAa,wBAAyB,SAAQ,oBAAoB;IAC9D,cAAc,IAAI,UAAU,CAAC,wBAAwB,CAAC;CAGzD"}
@@ -1,20 +0,0 @@
1
- import { TranslateService } from '@ngx-translate/core';
2
- import { Action } from '@ngrx/store';
3
- import { Actions } from '@ngrx/effects';
4
- import { Observable } from 'rxjs';
5
- import { EuiGrowlService } from '../../growl/eui-growl.service';
6
- import { ConnectionStatus } from '@eui/base';
7
- import * as i0 from "@angular/core";
8
- export declare class CoreAppEffects {
9
- protected actions: Actions;
10
- protected showConnectionStatus: boolean | ConnectionStatus;
11
- protected translateService: TranslateService;
12
- protected asService: EuiGrowlService;
13
- getAppConnectionInformation: Observable<Action>;
14
- activatedRoute: Observable<Action>;
15
- updateAppConnection: Observable<boolean> & import("@ngrx/effects").CreateEffectMetadata;
16
- constructor(actions: Actions, showConnectionStatus: boolean | ConnectionStatus, translateService: TranslateService, asService: EuiGrowlService);
17
- static ɵfac: i0.ɵɵFactoryDeclaration<CoreAppEffects, never>;
18
- static ɵprov: i0.ɵɵInjectableDeclaration<CoreAppEffects>;
19
- }
20
- //# sourceMappingURL=app.effects.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"app.effects.d.ts","sourceRoot":"","sources":["../../../../../src/lib/services/store/effects/app.effects.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,OAAO,EAAwB,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAoB,MAAM,MAAM,CAAC;AAKpD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;;AAE7C,qBACa,cAAc;IA2DnB,SAAS,CAAC,OAAO,EAAE,OAAO;IAEY,SAAS,CAAC,oBAAoB,EAAE,OAAO,GAAG,gBAAgB;IAChG,SAAS,CAAC,gBAAgB,EAAE,gBAAgB;IAC5C,SAAS,CAAC,SAAS,EAAE,eAAe;IA9DxC,2BAA2B,EAAE,UAAU,CAAC,MAAM,CAAC,CAI7C;IAEF,cAAc,EAAE,UAAU,CAAC,MAAM,CAAC,CAUhC;IAEF,mBAAmB,qEAqCjB;gBAGY,OAAO,EAAE,OAAO,EAEsB,oBAAoB,EAAE,OAAO,GAAG,gBAAgB,EACtF,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,eAAe;yCA/D/B,cAAc;6CAAd,cAAc;CAiE1B"}
@@ -1,4 +0,0 @@
1
- export * from './app.effects';
2
- import { CoreAppEffects } from './app.effects';
3
- export declare const CoreModuleEffects: (typeof CoreAppEffects)[];
4
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lib/services/store/effects/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAE9B,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,eAAO,MAAM,iBAAiB,2BAAmB,CAAC"}