ngx-cho-common 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/README.md +24 -0
  2. package/esm2022/lib/guards/feature-guard.service.mjs +32 -0
  3. package/esm2022/lib/guards/unsaved-changes.guard.mjs +13 -0
  4. package/esm2022/lib/logging/console-logger.sink.mjs +27 -0
  5. package/esm2022/lib/logging/logger-sink-configuration.interface.mjs +2 -0
  6. package/esm2022/lib/logging/logger-sink.interface.mjs +2 -0
  7. package/esm2022/lib/logging/logger.model.mjs +3 -0
  8. package/esm2022/lib/logging/logger.service.mjs +127 -0
  9. package/esm2022/lib/logging/models/client-log-entry.interface.mjs +2 -0
  10. package/esm2022/lib/logging/models/severity-level.enum.mjs +9 -0
  11. package/esm2022/lib/logging/server-logger.sink.mjs +51 -0
  12. package/esm2022/lib/models/deactivatable.interface.mjs +2 -0
  13. package/esm2022/lib/models/uuid.model.mjs +32 -0
  14. package/esm2022/lib/security/auth-callback/auth-callback.component.mjs +18 -0
  15. package/esm2022/lib/security/models/auth-user.model.mjs +84 -0
  16. package/esm2022/lib/security/models/authorization-context.model.mjs +6 -0
  17. package/esm2022/lib/security/models/security-policy.model.mjs +15 -0
  18. package/esm2022/lib/security/security-policies.mjs +3 -0
  19. package/esm2022/lib/security/services/auth-guard.service.mjs +32 -0
  20. package/esm2022/lib/security/services/auth.service.mjs +131 -0
  21. package/esm2022/lib/security/signin/signin.component.mjs +18 -0
  22. package/esm2022/lib/security/signout/signout.component.mjs +18 -0
  23. package/esm2022/lib/services/date.service.mjs +40 -0
  24. package/esm2022/lib/services/download.service.mjs +49 -0
  25. package/esm2022/lib/services/feature.service.mjs +66 -0
  26. package/esm2022/lib/services/interval.service.mjs +115 -0
  27. package/esm2022/lib/services/local-storage.service.mjs +29 -0
  28. package/esm2022/lib/services/modal.service.mjs +34 -0
  29. package/esm2022/lib/services/navigation.service.mjs +45 -0
  30. package/esm2022/lib/services/object.service.mjs +33 -0
  31. package/esm2022/lib/services/rest-client.service.mjs +136 -0
  32. package/esm2022/lib/services/route-param.service.mjs +53 -0
  33. package/esm2022/lib/services/session-storage.service.mjs +29 -0
  34. package/esm2022/lib/types/indexable.type.mjs +2 -0
  35. package/esm2022/lib/types/name-value-item.type.mjs +2 -0
  36. package/esm2022/ngx-cho-common.mjs +5 -0
  37. package/esm2022/public-api.mjs +32 -0
  38. package/fesm2022/ngx-cho-common.mjs +1196 -0
  39. package/fesm2022/ngx-cho-common.mjs.map +1 -0
  40. package/index.d.ts +5 -0
  41. package/lib/guards/feature-guard.service.d.ts +14 -0
  42. package/lib/guards/unsaved-changes.guard.d.ts +11 -0
  43. package/lib/logging/console-logger.sink.d.ts +10 -0
  44. package/lib/logging/logger-sink-configuration.interface.d.ts +14 -0
  45. package/lib/logging/logger-sink.interface.d.ts +7 -0
  46. package/lib/logging/logger.model.d.ts +10 -0
  47. package/lib/logging/logger.service.d.ts +29 -0
  48. package/lib/logging/models/client-log-entry.interface.d.ts +10 -0
  49. package/lib/logging/models/severity-level.enum.d.ts +7 -0
  50. package/lib/logging/server-logger.sink.d.ts +27 -0
  51. package/lib/models/deactivatable.interface.d.ts +4 -0
  52. package/lib/models/uuid.model.d.ts +4 -0
  53. package/lib/security/auth-callback/auth-callback.component.d.ts +10 -0
  54. package/lib/security/models/auth-user.model.d.ts +57 -0
  55. package/lib/security/models/authorization-context.model.d.ts +5 -0
  56. package/lib/security/models/security-policy.model.d.ts +9 -0
  57. package/lib/security/security-policies.d.ts +3 -0
  58. package/lib/security/services/auth-guard.service.d.ts +12 -0
  59. package/lib/security/services/auth.service.d.ts +60 -0
  60. package/lib/security/signin/signin.component.d.ts +10 -0
  61. package/lib/security/signout/signout.component.d.ts +10 -0
  62. package/lib/services/date.service.d.ts +11 -0
  63. package/lib/services/download.service.d.ts +13 -0
  64. package/lib/services/feature.service.d.ts +40 -0
  65. package/lib/services/interval.service.d.ts +37 -0
  66. package/lib/services/local-storage.service.d.ts +9 -0
  67. package/lib/services/modal.service.d.ts +12 -0
  68. package/lib/services/navigation.service.d.ts +14 -0
  69. package/lib/services/object.service.d.ts +14 -0
  70. package/lib/services/rest-client.service.d.ts +88 -0
  71. package/lib/services/route-param.service.d.ts +17 -0
  72. package/lib/services/session-storage.service.d.ts +9 -0
  73. package/lib/types/indexable.type.d.ts +6 -0
  74. package/lib/types/name-value-item.type.d.ts +5 -0
  75. package/package.json +30 -0
  76. package/public-api.d.ts +33 -0
@@ -0,0 +1,33 @@
1
+ import { HttpParams } from '@angular/common/http';
2
+ import { Injectable } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ export class ObjectService {
5
+ toValueObject(obj) {
6
+ const result = Object.getOwnPropertyNames(obj).reduce((p, key) => {
7
+ if (obj[key]) {
8
+ p[key] = obj[key];
9
+ }
10
+ return p;
11
+ }, new Object());
12
+ return result;
13
+ }
14
+ /**
15
+ * Convert Object to HttpParams
16
+ * @param {object} obj
17
+ * @returns {HttpParams}
18
+ * see: https://stackoverflow.com/questions/45210406/angular-4-3-httpclient-set-params
19
+ */
20
+ toHttpParams(obj) {
21
+ const temp = Object.getOwnPropertyNames(obj).reduce((p, key) => (obj[key] == null || obj[key].length === 0 ? p : p.set(key, obj[key])), new HttpParams());
22
+ return temp;
23
+ }
24
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ObjectService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
25
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ObjectService, providedIn: 'root' }); }
26
+ }
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ObjectService, decorators: [{
28
+ type: Injectable,
29
+ args: [{
30
+ providedIn: 'root',
31
+ }]
32
+ }] });
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY2hvLWNvbW1vbi9zcmMvbGliL3NlcnZpY2VzL29iamVjdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8sYUFBYTtJQUNmLGFBQWEsQ0FBQyxHQUFXO1FBQzVCLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUU7WUFDN0QsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDWCxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3RCLENBQUM7WUFDRCxPQUFPLENBQUMsQ0FBQztRQUNiLENBQUMsRUFBRSxJQUFJLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFFakIsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksWUFBWSxDQUFDLEdBQVc7UUFDM0IsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FDL0MsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFDbEYsSUFBSSxVQUFVLEVBQUUsQ0FDbkIsQ0FBQztRQUVGLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7K0dBekJRLGFBQWE7bUhBQWIsYUFBYSxjQUZWLE1BQU07OzRGQUVULGFBQWE7a0JBSHpCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgT2JqZWN0U2VydmljZSB7XG4gICAgcHVibGljIHRvVmFsdWVPYmplY3Qob2JqOiBvYmplY3QpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhvYmopLnJlZHVjZSgocCwga2V5KSA9PiB7XG4gICAgICAgICAgICBpZiAob2JqW2tleV0pIHtcbiAgICAgICAgICAgICAgICBwW2tleV0gPSBvYmpba2V5XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBwO1xuICAgICAgICB9LCBuZXcgT2JqZWN0KCkpO1xuXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29udmVydCBPYmplY3QgdG8gSHR0cFBhcmFtc1xuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBvYmpcbiAgICAgKiBAcmV0dXJucyB7SHR0cFBhcmFtc31cbiAgICAgKiBzZWU6IGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzQ1MjEwNDA2L2FuZ3VsYXItNC0zLWh0dHBjbGllbnQtc2V0LXBhcmFtc1xuICAgICAqL1xuICAgIHB1YmxpYyB0b0h0dHBQYXJhbXMob2JqOiBvYmplY3QpOiBIdHRwUGFyYW1zIHtcbiAgICAgICAgY29uc3QgdGVtcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG9iaikucmVkdWNlKFxuICAgICAgICAgICAgKHAsIGtleSkgPT4gKG9ialtrZXldID09IG51bGwgfHwgb2JqW2tleV0ubGVuZ3RoID09PSAwID8gcCA6IHAuc2V0KGtleSwgb2JqW2tleV0pKSxcbiAgICAgICAgICAgIG5ldyBIdHRwUGFyYW1zKClcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gdGVtcDtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,136 @@
1
+ /* eslint-disable @typescript-eslint/ban-types */
2
+ import { HttpHeaders, HttpParams } from '@angular/common/http';
3
+ import { Injectable } from '@angular/core';
4
+ import { lastValueFrom, retry, take } from 'rxjs';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/common/http";
7
+ export class RestClient {
8
+ constructor(httpClient) {
9
+ this.httpClient = httpClient;
10
+ this.defaultRetry = { count: 0, delay: 1000 };
11
+ }
12
+ /**
13
+ * Sends a delete request to the specified REST service
14
+ *
15
+ * @param url The service endpoint
16
+ * @param options Additional options
17
+ */
18
+ delete(url, options) {
19
+ return lastValueFrom(this.request('DELETE', url, options));
20
+ }
21
+ /**
22
+ * Retrieves data from the specified REST service
23
+ *
24
+ * @param url The service endpoint
25
+ * @param options Additional options
26
+ */
27
+ get(url, options) {
28
+ return lastValueFrom(this.request('GET', url, options));
29
+ }
30
+ /**
31
+ * Sends a patch request to the specified REST service
32
+ *
33
+ * @param url The service endpoint
34
+ * @param options Additional options
35
+ */
36
+ patch(url, options) {
37
+ return lastValueFrom(this.request('PATCH', url, options));
38
+ }
39
+ /**
40
+ * Sends a post request to the specified REST service
41
+ *
42
+ * @param url The service endpoint
43
+ * @param options Additional options
44
+ */
45
+ post(url, options) {
46
+ return lastValueFrom(this.request('POST', url, options));
47
+ }
48
+ /**
49
+ * Sends a put request to the specified REST service
50
+ *
51
+ * @param url The service endpoint
52
+ * @param options Additional options
53
+ */
54
+ put(url, options) {
55
+ return lastValueFrom(this.request('PUT', url, options));
56
+ }
57
+ request(method, url, options) {
58
+ return this.httpClient
59
+ .request(method, url, {
60
+ body: options?.body ? JSON.stringify(options.body) : undefined,
61
+ headers: this.createRequestHeaders(options),
62
+ params: this.createRequestParams(options?.queryParameters),
63
+ })
64
+ .pipe(take(1), retry(options?.retry || this.defaultRetry));
65
+ }
66
+ /**
67
+ *
68
+ * @param url
69
+ * @param options
70
+ * @returns
71
+ */
72
+ getResponse(method, url, options) {
73
+ return this.httpClient
74
+ .request(method, url, {
75
+ observe: 'response',
76
+ body: options?.body ? JSON.stringify(options.body) : undefined,
77
+ headers: this.createRequestHeaders(options),
78
+ params: this.createRequestParams(options?.queryParameters),
79
+ })
80
+ .pipe(take(1), retry(options?.retry || this.defaultRetry));
81
+ }
82
+ /**
83
+ * Creates request headers based on the provided options.
84
+ *
85
+ * @param options
86
+ * @returns
87
+ */
88
+ createRequestHeaders(options) {
89
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
90
+ const headers = Object.assign({
91
+ Accept: 'application/json',
92
+ 'Content-Type': 'application/json',
93
+ }, options?.headers);
94
+ if (options?.apiVersion) {
95
+ const versionString = `; version=${options.apiVersion}`;
96
+ headers.Accept += versionString;
97
+ headers['Content-Type'] += versionString;
98
+ }
99
+ if (options?.showSpinner === false) {
100
+ headers['x-spinner'] = 'false';
101
+ }
102
+ if (options?.cacheLifetimeSeconds) {
103
+ headers['x-cache-ttl'] = options?.cacheLifetimeSeconds;
104
+ }
105
+ return new HttpHeaders(headers);
106
+ }
107
+ /**
108
+ * Converts one or more objects to an HttpParams object.
109
+ *
110
+ * @param sources The objects to convert
111
+ * @returns
112
+ */
113
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
114
+ createRequestParams(...sources) {
115
+ let params = new HttpParams();
116
+ for (const source of sources) {
117
+ if (source == null) {
118
+ continue;
119
+ }
120
+ for (const key of Object.keys(source)) {
121
+ const value = source[key];
122
+ if (value != null) {
123
+ params = params.set(key, value.toString());
124
+ }
125
+ }
126
+ }
127
+ return params;
128
+ }
129
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RestClient, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
130
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RestClient, providedIn: 'any' }); }
131
+ }
132
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RestClient, decorators: [{
133
+ type: Injectable,
134
+ args: [{ providedIn: 'any' }]
135
+ }], ctorParameters: () => [{ type: i1.HttpClient }] });
136
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdC1jbGllbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jaG8tY29tbW9uL3NyYy9saWIvc2VydmljZXMvcmVzdC1jbGllbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpREFBaUQ7QUFDakQsT0FBTyxFQUFjLFdBQVcsRUFBRSxVQUFVLEVBQWdCLE1BQU0sc0JBQXNCLENBQUM7QUFDekYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsYUFBYSxFQUFjLEtBQUssRUFBZSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7OztBQWdCM0UsTUFBTSxPQUFPLFVBQVU7SUFHbkIsWUFBNkIsVUFBc0I7UUFBdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUZsQyxpQkFBWSxHQUFHLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFFSixDQUFDO0lBRXZEOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLEdBQVcsRUFBRSxPQUFpQztRQUN4RCxPQUFPLGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxHQUFHLENBQUksR0FBVyxFQUFFLE9BQThCO1FBQ3JELE9BQU8sYUFBYSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLEtBQUssQ0FBSSxHQUFXLEVBQUUsT0FBMkI7UUFDcEQsT0FBTyxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDOUQsQ0FB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O0lBQ0gsOERBQThEO0lBQ3RELG1CQUFtQixDQUFDLEdBQUcsT0FBYztRQUN6QyxJQUFJLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBRTlCLEtBQUssTUFBTSxNQUFNLElBQUksT0FBTyxFQUFFLENBQUM7WUFDM0IsSUFBSSxNQUFNLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ2pCLFNBQVM7WUFDYixDQUFDO1lBRUQsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7Z0JBQ3BDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFFMUIsSUFBSSxLQUFLLElBQUksSUFBSSxFQUFFLENBQUM7b0JBQ2hCLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztnQkFDL0MsQ0FBQztZQUNMLENBQUM7UUFDTCxDQUFDO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQzsrR0F4S1EsVUFBVTttSEFBVixVQUFVLGNBREcsS0FBSzs7NEZBQ2xCLFVBQVU7a0JBRHRCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10eXBlcyAqL1xuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMsIEh0dHBQYXJhbXMsIEh0dHBSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGxhc3RWYWx1ZUZyb20sIE9ic2VydmFibGUsIHJldHJ5LCBSZXRyeUNvbmZpZywgdGFrZSB9IGZyb20gJ3J4anMnO1xuXG50eXBlIFJlcXVlc3RQYXJhbWV0ZXJzID0ge1xuICAgIGJvZHk/OiB1bmtub3duO1xuICAgIHF1ZXJ5UGFyYW1ldGVycz86IHt9O1xuICAgIGFwaVZlcnNpb24/OiB7fTtcbiAgICBoZWFkZXJzPzoge307XG4gICAgY2FjaGVMaWZldGltZVNlY29uZHM/OiBudW1iZXI7XG4gICAgcmV0cnk/OiBSZXRyeUNvbmZpZztcbiAgICBzaG93U3Bpbm5lcj86IHt9O1xufTtcblxudHlwZSBEZWxldGVSZXF1ZXN0UGFyYW1ldGVycyA9IE9taXQ8UmVxdWVzdFBhcmFtZXRlcnMsICdib2R5JyB8ICdjYWNoZUxpZmV0aW1lU2Vjb25kcyc+O1xudHlwZSBHZXRSZXF1ZXN0UGFyYW1ldGVycyA9IE9taXQ8UmVxdWVzdFBhcmFtZXRlcnMsICdib2R5Jz47XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ2FueScgfSlcbmV4cG9ydCBjbGFzcyBSZXN0Q2xpZW50IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlZmF1bHRSZXRyeSA9IHsgY291bnQ6IDAsIGRlbGF5OiAxMDAwIH07XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGh0dHBDbGllbnQ6IEh0dHBDbGllbnQpIHt9XG5cbiAgICAvKipcbiAgICAgKiBTZW5kcyBhIGRlbGV0ZSByZXF1ZXN0IHRvIHRoZSBzcGVjaWZpZWQgUkVTVCBzZXJ2aWNlXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdXJsIFRoZSBzZXJ2aWNlIGVuZHBvaW50XG4gICAgICogQHBhcmFtIG9wdGlvbnMgQWRkaXRpb25hbCBvcHRpb25zXG4gICAgICovXG4gICAgcHVibGljIGRlbGV0ZSh1cmw6IHN0cmluZywgb3B0aW9ucz86IERlbGV0ZVJlcXVlc3RQYXJhbWV0ZXJzKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiBsYXN0VmFsdWVGcm9tKHRoaXMucmVxdWVzdCgnREVMRVRFJywgdXJsLCBvcHRpb25zKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0cmlldmVzIGRhdGEgZnJvbSB0aGUgc3BlY2lmaWVkIFJFU1Qgc2VydmljZVxuICAgICAqXG4gICAgICogQHBhcmFtIHVybCBUaGUgc2VydmljZSBlbmRwb2ludFxuICAgICAqIEBwYXJhbSBvcHRpb25zIEFkZGl0aW9uYWwgb3B0aW9uc1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXQ8VD4odXJsOiBzdHJpbmcsIG9wdGlvbnM/OiBHZXRSZXF1ZXN0UGFyYW1ldGVycyk6IFByb21pc2U8VD4ge1xuICAgICAgICByZXR1cm4gbGFzdFZhbHVlRnJvbSh0aGlzLnJlcXVlc3QoJ0dFVCcsIHVybCwgb3B0aW9ucykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNlbmRzIGEgcGF0Y2ggcmVxdWVzdCB0byB0aGUgc3BlY2lmaWVkIFJFU1Qgc2VydmljZVxuICAgICAqXG4gICAgICogQHBhcmFtIHVybCBUaGUgc2VydmljZSBlbmRwb2ludFxuICAgICAqIEBwYXJhbSBvcHRpb25zIEFkZGl0aW9uYWwgb3B0aW9uc1xuICAgICAqL1xuICAgIHB1YmxpYyBwYXRjaDxUPih1cmw6IHN0cmluZywgb3B0aW9ucz86IFJlcXVlc3RQYXJhbWV0ZXJzKTogUHJvbWlzZTxUPiB7XG4gICAgICAgIHJldHVybiBsYXN0VmFsdWVGcm9tKHRoaXMucmVxdWVzdCgnUEFUQ0gnLCB1cmwsIG9wdGlvbnMpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZW5kcyBhIHBvc3QgcmVxdWVzdCB0byB0aGUgc3BlY2lmaWVkIFJFU1Qgc2VydmljZVxuICAgICAqXG4gICAgICogQHBhcmFtIHVybCBUaGUgc2VydmljZSBlbmRwb2ludFxuICAgICAqIEBwYXJhbSBvcHRpb25zIEFkZGl0aW9uYWwgb3B0aW9uc1xuICAgICAqL1xuICAgIHB1YmxpYyBwb3N0PFQ+KHVybDogc3RyaW5nLCBvcHRpb25zPzogUmVxdWVzdFBhcmFtZXRlcnMpOiBQcm9taXNlPFQ+IHtcbiAgICAgICAgcmV0dXJuIGxhc3RWYWx1ZUZyb20odGhpcy5yZXF1ZXN0KCdQT1NUJywgdXJsLCBvcHRpb25zKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2VuZHMgYSBwdXQgcmVxdWVzdCB0byB0aGUgc3BlY2lmaWVkIFJFU1Qgc2VydmljZVxuICAgICAqXG4gICAgICogQHBhcmFtIHVybCBUaGUgc2VydmljZSBlbmRwb2ludFxuICAgICAqIEBwYXJhbSBvcHRpb25zIEFkZGl0aW9uYWwgb3B0aW9uc1xuICAgICAqL1xuICAgIHB1YmxpYyBwdXQ8VD4odXJsOiBzdHJpbmcsIG9wdGlvbnM/OiBSZXF1ZXN0UGFyYW1ldGVycyk6IFByb21pc2U8VD4ge1xuICAgICAgICByZXR1cm4gbGFzdFZhbHVlRnJvbSh0aGlzLnJlcXVlc3QoJ1BVVCcsIHVybCwgb3B0aW9ucykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNlbmRzIGEgcmVxdWVzdCB0byB0aGUgc3BlY2lmaWVkIFJFU1Qgc2VydmljZVxuICAgICAqXG4gICAgICogQHBhcmFtIG1ldGhvZCBERUxFVEUsIEdFVCwgUE9TVCwgUFVULCBvciBQQVRDSFxuICAgICAqIEBwYXJhbSB1cmwgVGhlIHNlcnZpY2UgZW5kcG9pbnRcbiAgICAgKiBAcGFyYW0gb3B0aW9ucyBBZGRpdGlvbmFsIG9wdGlvbnNcbiAgICAgKi9cbiAgICBwdWJsaWMgcmVxdWVzdDxUPihcbiAgICAgICAgbWV0aG9kOiAnREVMRVRFJyxcbiAgICAgICAgdXJsOiBzdHJpbmcsXG4gICAgICAgIG9wdGlvbnM/OiBEZWxldGVSZXF1ZXN0UGFyYW1ldGVyc1xuICAgICk6IE9ic2VydmFibGU8VD47XG4gICAgcHVibGljIHJlcXVlc3Q8VD4obWV0aG9kOiAnR0VUJywgdXJsOiBzdHJpbmcsIG9wdGlvbnM/OiBHZXRSZXF1ZXN0UGFyYW1ldGVycyk6IE9ic2VydmFibGU8VD47XG4gICAgcHVibGljIHJlcXVlc3Q8VD4oXG4gICAgICAgIG1ldGhvZDogJ1BPU1QnIHwgJ1BVVCcgfCAnUEFUQ0gnLFxuICAgICAgICB1cmw6IHN0cmluZyxcbiAgICAgICAgb3B0aW9ucz86IFJlcXVlc3RQYXJhbWV0ZXJzXG4gICAgKTogT2JzZXJ2YWJsZTxUPjtcblxuICAgIHB1YmxpYyByZXF1ZXN0PFQ+KFxuICAgICAgICBtZXRob2Q6ICdERUxFVEUnIHwgJ0dFVCcgfCAnUEFUQ0gnIHwgJ1BPU1QnIHwgJ1BVVCcsXG4gICAgICAgIHVybDogc3RyaW5nLFxuICAgICAgICBvcHRpb25zPzogUmVxdWVzdFBhcmFtZXRlcnNcbiAgICApOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFxuICAgICAgICAgICAgLnJlcXVlc3Q8VD4obWV0aG9kLCB1cmwsIHtcbiAgICAgICAgICAgICAgICBib2R5OiBvcHRpb25zPy5ib2R5ID8gSlNPTi5zdHJpbmdpZnkob3B0aW9ucy5ib2R5KSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB0aGlzLmNyZWF0ZVJlcXVlc3RIZWFkZXJzKG9wdGlvbnMpLFxuICAgICAgICAgICAgICAgIHBhcmFtczogdGhpcy5jcmVhdGVSZXF1ZXN0UGFyYW1zKG9wdGlvbnM/LnF1ZXJ5UGFyYW1ldGVycyksXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLnBpcGUodGFrZSgxKSwgcmV0cnkob3B0aW9ucz8ucmV0cnkgfHwgdGhpcy5kZWZhdWx0UmV0cnkpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEBwYXJhbSB1cmxcbiAgICAgKiBAcGFyYW0gb3B0aW9uc1xuICAgICAqIEByZXR1cm5zXG4gICAgICovXG4gICAgcHVibGljIGdldFJlc3BvbnNlPFQ+KFxuICAgICAgICBtZXRob2Q6ICdHRVQnIHwgJ1BBVENIJyB8ICdQT1NUJyB8ICdQVVQnLFxuICAgICAgICB1cmw6IHN0cmluZyxcbiAgICAgICAgb3B0aW9ucz86IFJlcXVlc3RQYXJhbWV0ZXJzXG4gICAgKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8VD4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFxuICAgICAgICAgICAgLnJlcXVlc3Q8VD4obWV0aG9kLCB1cmwsIHtcbiAgICAgICAgICAgICAgICBvYnNlcnZlOiAncmVzcG9uc2UnLFxuICAgICAgICAgICAgICAgIGJvZHk6IG9wdGlvbnM/LmJvZHkgPyBKU09OLnN0cmluZ2lmeShvcHRpb25zLmJvZHkpIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHRoaXMuY3JlYXRlUmVxdWVzdEhlYWRlcnMob3B0aW9ucyksXG4gICAgICAgICAgICAgICAgcGFyYW1zOiB0aGlzLmNyZWF0ZVJlcXVlc3RQYXJhbXMob3B0aW9ucz8ucXVlcnlQYXJhbWV0ZXJzKSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAucGlwZSh0YWtlKDEpLCByZXRyeShvcHRpb25zPy5yZXRyeSB8fCB0aGlzLmRlZmF1bHRSZXRyeSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgcmVxdWVzdCBoZWFkZXJzIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBvcHRpb25zLlxuICAgICAqXG4gICAgICogQHBhcmFtIG9wdGlvbnNcbiAgICAgKiBAcmV0dXJuc1xuICAgICAqL1xuICAgIHByaXZhdGUgY3JlYXRlUmVxdWVzdEhlYWRlcnMob3B0aW9ucz86IFJlcXVlc3RQYXJhbWV0ZXJzKTogSHR0cEhlYWRlcnMge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICBjb25zdCBoZWFkZXJzOiBhbnkgPSBPYmplY3QuYXNzaWduKFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIEFjY2VwdDogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgb3B0aW9ucz8uaGVhZGVyc1xuICAgICAgICApO1xuXG4gICAgICAgIGlmIChvcHRpb25zPy5hcGlWZXJzaW9uKSB7XG4gICAgICAgICAgICBjb25zdCB2ZXJzaW9uU3RyaW5nID0gYDsgdmVyc2lvbj0ke29wdGlvbnMuYXBpVmVyc2lvbn1gO1xuXG4gICAgICAgICAgICBoZWFkZXJzLkFjY2VwdCArPSB2ZXJzaW9uU3RyaW5nO1xuICAgICAgICAgICAgaGVhZGVyc1snQ29udGVudC1UeXBlJ10gKz0gdmVyc2lvblN0cmluZztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChvcHRpb25zPy5zaG93U3Bpbm5lciA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIGhlYWRlcnNbJ3gtc3Bpbm5lciddID0gJ2ZhbHNlJztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChvcHRpb25zPy5jYWNoZUxpZmV0aW1lU2Vjb25kcykge1xuICAgICAgICAgICAgaGVhZGVyc1sneC1jYWNoZS10dGwnXSA9IG9wdGlvbnM/LmNhY2hlTGlmZXRpbWVTZWNvbmRzO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5ldyBIdHRwSGVhZGVycyhoZWFkZXJzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0cyBvbmUgb3IgbW9yZSBvYmplY3RzIHRvIGFuIEh0dHBQYXJhbXMgb2JqZWN0LlxuICAgICAqXG4gICAgICogQHBhcmFtIHNvdXJjZXMgVGhlIG9iamVjdHMgdG8gY29udmVydFxuICAgICAqIEByZXR1cm5zXG4gICAgICovXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBwcml2YXRlIGNyZWF0ZVJlcXVlc3RQYXJhbXMoLi4uc291cmNlczogYW55W10pOiBIdHRwUGFyYW1zIHtcbiAgICAgICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XG5cbiAgICAgICAgZm9yIChjb25zdCBzb3VyY2Ugb2Ygc291cmNlcykge1xuICAgICAgICAgICAgaWYgKHNvdXJjZSA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHNvdXJjZSkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHNvdXJjZVtrZXldO1xuXG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldChrZXksIHZhbHVlLnRvU3RyaW5nKCkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBwYXJhbXM7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,53 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/router";
4
+ export class RouteParamService {
5
+ constructor(route) {
6
+ this.route = route;
7
+ }
8
+ getParameterBoolean(params, paramKey) {
9
+ const value = this.getParameterValue(params, paramKey);
10
+ if (value) {
11
+ return !!value;
12
+ }
13
+ return null;
14
+ }
15
+ getParameterNumber(params, paramKey) {
16
+ const value = this.getParameterValue(params, paramKey);
17
+ if (value) {
18
+ return parseInt(value);
19
+ }
20
+ return null;
21
+ }
22
+ getParameterValue(params, paramKey) {
23
+ const value = params[paramKey];
24
+ return value || null;
25
+ }
26
+ getQueryParameterBoolean(paramKey) {
27
+ return this.getParameterBoolean(this.route.snapshot.queryParams, paramKey);
28
+ }
29
+ getQueryParameterNumber(paramKey) {
30
+ return this.getParameterNumber(this.route.snapshot.queryParams, paramKey);
31
+ }
32
+ getQueryParameterValue(paramKey) {
33
+ return this.getParameterValue(this.route.snapshot.queryParams, paramKey);
34
+ }
35
+ getRouteParameterBoolean(route, paramKey) {
36
+ return this.getParameterBoolean(route.snapshot.params, paramKey);
37
+ }
38
+ getRouteParameterNumber(route, paramKey) {
39
+ return this.getParameterNumber(route.snapshot.params, paramKey);
40
+ }
41
+ getRouteParameterValue(route, paramKey) {
42
+ return this.getParameterValue(route.snapshot.params, paramKey);
43
+ }
44
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RouteParamService, deps: [{ token: i1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Injectable }); }
45
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RouteParamService, providedIn: 'root' }); }
46
+ }
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RouteParamService, decorators: [{
48
+ type: Injectable,
49
+ args: [{
50
+ providedIn: 'root',
51
+ }]
52
+ }], ctorParameters: () => [{ type: i1.ActivatedRoute }] });
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUtcGFyYW0uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jaG8tY29tbW9uL3NyYy9saWIvc2VydmljZXMvcm91dGUtcGFyYW0uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFNM0MsTUFBTSxPQUFPLGlCQUFpQjtJQUMxQixZQUE2QixLQUFxQjtRQUFyQixVQUFLLEdBQUwsS0FBSyxDQUFnQjtJQUFHLENBQUM7SUFFL0MsbUJBQW1CLENBQUMsTUFBYyxFQUFFLFFBQWdCO1FBQ3ZELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFFdkQsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNSLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUNuQixDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLGtCQUFrQixDQUFDLE1BQWMsRUFBRSxRQUFnQjtRQUN0RCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBRXZELElBQUksS0FBSyxFQUFFLENBQUM7WUFDUixPQUFPLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQixDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLGlCQUFpQixDQUFDLE1BQWMsRUFBRSxRQUFnQjtRQUNyRCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDL0IsT0FBTyxLQUFLLElBQUksSUFBSSxDQUFDO0lBQ3pCLENBQUM7SUFFTSx3QkFBd0IsQ0FBQyxRQUFnQjtRQUM1QyxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDL0UsQ0FBQztJQUVNLHVCQUF1QixDQUFDLFFBQWdCO1FBQzNDLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRU0sc0JBQXNCLENBQUMsUUFBZ0I7UUFDMUMsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFTSx3QkFBd0IsQ0FBQyxLQUFxQixFQUFFLFFBQWdCO1FBQ25FLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFTSx1QkFBdUIsQ0FBQyxLQUFxQixFQUFFLFFBQWdCO1FBQ2xFLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFTSxzQkFBc0IsQ0FBQyxLQUFxQixFQUFFLFFBQWdCO1FBQ2pFLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ25FLENBQUM7K0dBbERRLGlCQUFpQjttSEFBakIsaUJBQWlCLGNBRmQsTUFBTTs7NEZBRVQsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBSb3V0ZVBhcmFtU2VydmljZSB7XG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSByb3V0ZTogQWN0aXZhdGVkUm91dGUpIHt9XG5cbiAgICBwdWJsaWMgZ2V0UGFyYW1ldGVyQm9vbGVhbihwYXJhbXM6IFBhcmFtcywgcGFyYW1LZXk6IHN0cmluZyk6IGJvb2xlYW4gfCBudWxsIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldFBhcmFtZXRlclZhbHVlKHBhcmFtcywgcGFyYW1LZXkpO1xuXG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuICEhdmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0UGFyYW1ldGVyTnVtYmVyKHBhcmFtczogUGFyYW1zLCBwYXJhbUtleTogc3RyaW5nKTogbnVtYmVyIHwgbnVsbCB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5nZXRQYXJhbWV0ZXJWYWx1ZShwYXJhbXMsIHBhcmFtS2V5KTtcblxuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybiBwYXJzZUludCh2YWx1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0UGFyYW1ldGVyVmFsdWUocGFyYW1zOiBQYXJhbXMsIHBhcmFtS2V5OiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBwYXJhbXNbcGFyYW1LZXldO1xuICAgICAgICByZXR1cm4gdmFsdWUgfHwgbnVsbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0UXVlcnlQYXJhbWV0ZXJCb29sZWFuKHBhcmFtS2V5OiBzdHJpbmcpOiBib29sZWFuIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFBhcmFtZXRlckJvb2xlYW4odGhpcy5yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcywgcGFyYW1LZXkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRRdWVyeVBhcmFtZXRlck51bWJlcihwYXJhbUtleTogc3RyaW5nKTogbnVtYmVyIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFBhcmFtZXRlck51bWJlcih0aGlzLnJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zLCBwYXJhbUtleSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFF1ZXJ5UGFyYW1ldGVyVmFsdWUocGFyYW1LZXk6IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRQYXJhbWV0ZXJWYWx1ZSh0aGlzLnJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zLCBwYXJhbUtleSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFJvdXRlUGFyYW1ldGVyQm9vbGVhbihyb3V0ZTogQWN0aXZhdGVkUm91dGUsIHBhcmFtS2V5OiBzdHJpbmcpOiBib29sZWFuIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFBhcmFtZXRlckJvb2xlYW4ocm91dGUuc25hcHNob3QucGFyYW1zLCBwYXJhbUtleSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFJvdXRlUGFyYW1ldGVyTnVtYmVyKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSwgcGFyYW1LZXk6IHN0cmluZyk6IG51bWJlciB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRQYXJhbWV0ZXJOdW1iZXIocm91dGUuc25hcHNob3QucGFyYW1zLCBwYXJhbUtleSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFJvdXRlUGFyYW1ldGVyVmFsdWUocm91dGU6IEFjdGl2YXRlZFJvdXRlLCBwYXJhbUtleTogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFBhcmFtZXRlclZhbHVlKHJvdXRlLnNuYXBzaG90LnBhcmFtcywgcGFyYW1LZXkpO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,29 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class SessionStorageService {
4
+ checkIfKeyExists(key) {
5
+ return globalThis.sessionStorage.getItem(key) !== null;
6
+ }
7
+ getItem(key) {
8
+ const valueString = globalThis.sessionStorage.getItem(key);
9
+ if (valueString === null) {
10
+ return undefined;
11
+ }
12
+ const value = JSON.parse(valueString);
13
+ return value;
14
+ }
15
+ setItem(key, value) {
16
+ const valueString = JSON.stringify(value);
17
+ globalThis.sessionStorage.setItem(key, valueString);
18
+ }
19
+ removeItem(key) {
20
+ globalThis.sessionStorage.removeItem(key);
21
+ }
22
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SessionStorageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
23
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SessionStorageService, providedIn: 'root' }); }
24
+ }
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SessionStorageService, decorators: [{
26
+ type: Injectable,
27
+ args: [{ providedIn: 'root' }]
28
+ }] });
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi1zdG9yYWdlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY2hvLWNvbW1vbi9zcmMvbGliL3NlcnZpY2VzL3Nlc3Npb24tc3RvcmFnZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRzNDLE1BQU0sT0FBTyxxQkFBcUI7SUFDOUIsZ0JBQWdCLENBQUMsR0FBVztRQUN4QixPQUFPLFVBQVUsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksQ0FBQztJQUMzRCxDQUFDO0lBRUQsT0FBTyxDQUFJLEdBQVc7UUFDbEIsTUFBTSxXQUFXLEdBQUcsVUFBVSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFM0QsSUFBSSxXQUFXLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDdkIsT0FBTyxTQUFTLENBQUM7UUFDckIsQ0FBQztRQUVELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDdEMsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUVELE9BQU8sQ0FBSSxHQUFXLEVBQUUsS0FBUTtRQUM1QixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsVUFBVSxDQUFDLEdBQVc7UUFDbEIsVUFBVSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDOUMsQ0FBQzsrR0F2QlEscUJBQXFCO21IQUFyQixxQkFBcUIsY0FEUixNQUFNOzs0RkFDbkIscUJBQXFCO2tCQURqQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBTZXNzaW9uU3RvcmFnZVNlcnZpY2Uge1xuICAgIGNoZWNrSWZLZXlFeGlzdHMoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGdsb2JhbFRoaXMuc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShrZXkpICE9PSBudWxsO1xuICAgIH1cblxuICAgIGdldEl0ZW08VD4oa2V5OiBzdHJpbmcpOiBUIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgY29uc3QgdmFsdWVTdHJpbmcgPSBnbG9iYWxUaGlzLnNlc3Npb25TdG9yYWdlLmdldEl0ZW0oa2V5KTtcblxuICAgICAgICBpZiAodmFsdWVTdHJpbmcgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB2YWx1ZSA9IEpTT04ucGFyc2UodmFsdWVTdHJpbmcpO1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgc2V0SXRlbTxUPihrZXk6IHN0cmluZywgdmFsdWU6IFQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdmFsdWVTdHJpbmcgPSBKU09OLnN0cmluZ2lmeSh2YWx1ZSk7XG4gICAgICAgIGdsb2JhbFRoaXMuc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShrZXksIHZhbHVlU3RyaW5nKTtcbiAgICB9XG5cbiAgICByZW1vdmVJdGVtKGtleTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGdsb2JhbFRoaXMuc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbShrZXkpO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXhhYmxlLnR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY2hvLWNvbW1vbi9zcmMvbGliL3R5cGVzL2luZGV4YWJsZS50eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFR5cGVzIHRoYXQgcHJvdmlkZSBpbmRleGVyc1xuICovXG5leHBvcnQgdHlwZSBJbmRleGFibGUgPSB7IFtrZXk6IHN0cmluZ106IHVua25vd24gfTtcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFtZS12YWx1ZS1pdGVtLnR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY2hvLWNvbW1vbi9zcmMvbGliL3R5cGVzL25hbWUtdmFsdWUtaXRlbS50eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBOYW1lVmFsdWVJdGVtPFQ+ID0ge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB2YWx1ZTogVDtcbn07XG5cbmV4cG9ydCB0eXBlIE51bWJlck5hbWVWYWx1ZUl0ZW0gPSBOYW1lVmFsdWVJdGVtPG51bWJlcj47XG4iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWNoby1jb21tb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY2hvLWNvbW1vbi9zcmMvbmd4LWNoby1jb21tb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
@@ -0,0 +1,32 @@
1
+ /*
2
+ * Public API Surface of ngx-cho-common
3
+ */
4
+ export { AuthCallbackComponent } from './lib/security/auth-callback/auth-callback.component';
5
+ export { AuthGuardService } from './lib/security/services/auth-guard.service';
6
+ export { AuthService } from './lib/security/services/auth.service';
7
+ export { AuthUser } from './lib/security/models/auth-user.model';
8
+ export { AuthorizationContext } from './lib/security/models/authorization-context.model';
9
+ export { SECURITY_POLICIES } from './lib/security/security-policies';
10
+ export { SecurityPolicy } from './lib/security/models/security-policy.model';
11
+ export { SigninComponent } from './lib/security/signin/signin.component';
12
+ export { SignoutComponent } from './lib/security/signout/signout.component';
13
+ export { SeverityLevel } from './lib/logging/models/severity-level.enum';
14
+ export { ConsoleLoggerSink } from './lib/logging/console-logger.sink';
15
+ export { Logger } from './lib/logging/logger.model';
16
+ export { LoggerService } from './lib/logging/logger.service';
17
+ export { ServerLoggerSink } from './lib/logging/server-logger.sink';
18
+ export { DateService } from './lib/services/date.service';
19
+ export { DownloadService } from './lib/services/download.service';
20
+ export { FeatureGuardService } from './lib/guards/feature-guard.service';
21
+ export { FeatureService } from './lib/services/feature.service';
22
+ export { IntervalService, IntervalTimer } from './lib/services/interval.service';
23
+ export { LocalStorageService } from './lib/services/local-storage.service';
24
+ export { ModalService } from './lib/services/modal.service';
25
+ export { NavigationService } from './lib/services/navigation.service';
26
+ export { ObjectService } from './lib/services/object.service';
27
+ export { RestClient } from './lib/services/rest-client.service';
28
+ export { RouteParamService } from './lib/services/route-param.service';
29
+ export { SessionStorageService } from './lib/services/session-storage.service';
30
+ export { UnsavedChangesGuard } from './lib/guards/unsaved-changes.guard';
31
+ export { Uuid } from './lib/models/uuid.model';
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25neC1jaG8tY29tbW9uL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDN0YsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDOUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNqRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUN6RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBRzVFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUd0RSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRXBFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDekUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDakYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDM0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzVELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDaEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDdkUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFL0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFHekUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHlCQUF5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBuZ3gtY2hvLWNvbW1vblxuICovXG5cbmV4cG9ydCB7IEF1dGhDYWxsYmFja0NvbXBvbmVudCB9IGZyb20gJy4vbGliL3NlY3VyaXR5L2F1dGgtY2FsbGJhY2svYXV0aC1jYWxsYmFjay5jb21wb25lbnQnO1xuZXhwb3J0IHsgQXV0aEd1YXJkU2VydmljZSB9IGZyb20gJy4vbGliL3NlY3VyaXR5L3NlcnZpY2VzL2F1dGgtZ3VhcmQuc2VydmljZSc7XG5leHBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4vbGliL3NlY3VyaXR5L3NlcnZpY2VzL2F1dGguc2VydmljZSc7XG5leHBvcnQgeyBBdXRoVXNlciB9IGZyb20gJy4vbGliL3NlY3VyaXR5L21vZGVscy9hdXRoLXVzZXIubW9kZWwnO1xuZXhwb3J0IHsgQXV0aG9yaXphdGlvbkNvbnRleHQgfSBmcm9tICcuL2xpYi9zZWN1cml0eS9tb2RlbHMvYXV0aG9yaXphdGlvbi1jb250ZXh0Lm1vZGVsJztcbmV4cG9ydCB7IFNFQ1VSSVRZX1BPTElDSUVTIH0gZnJvbSAnLi9saWIvc2VjdXJpdHkvc2VjdXJpdHktcG9saWNpZXMnO1xuZXhwb3J0IHsgU2VjdXJpdHlQb2xpY3kgfSBmcm9tICcuL2xpYi9zZWN1cml0eS9tb2RlbHMvc2VjdXJpdHktcG9saWN5Lm1vZGVsJztcbmV4cG9ydCB7IFNpZ25pbkNvbXBvbmVudCB9IGZyb20gJy4vbGliL3NlY3VyaXR5L3NpZ25pbi9zaWduaW4uY29tcG9uZW50JztcbmV4cG9ydCB7IFNpZ25vdXRDb21wb25lbnQgfSBmcm9tICcuL2xpYi9zZWN1cml0eS9zaWdub3V0L3NpZ25vdXQuY29tcG9uZW50JztcblxuZXhwb3J0IHsgSUNsaWVudExvZ0VudHJ5IH0gZnJvbSAnLi9saWIvbG9nZ2luZy9tb2RlbHMvY2xpZW50LWxvZy1lbnRyeS5pbnRlcmZhY2UnO1xuZXhwb3J0IHsgU2V2ZXJpdHlMZXZlbCB9IGZyb20gJy4vbGliL2xvZ2dpbmcvbW9kZWxzL3NldmVyaXR5LWxldmVsLmVudW0nO1xuZXhwb3J0IHsgQ29uc29sZUxvZ2dlclNpbmsgfSBmcm9tICcuL2xpYi9sb2dnaW5nL2NvbnNvbGUtbG9nZ2VyLnNpbmsnO1xuZXhwb3J0IHsgSUxvZ2dlclNpbmtDb25maWd1cmF0aW9uIH0gZnJvbSAnLi9saWIvbG9nZ2luZy9sb2dnZXItc2luay1jb25maWd1cmF0aW9uLmludGVyZmFjZSc7XG5leHBvcnQgeyBJTG9nZ2VyU2luayB9IGZyb20gJy4vbGliL2xvZ2dpbmcvbG9nZ2VyLXNpbmsuaW50ZXJmYWNlJztcbmV4cG9ydCB7IExvZ2dlciB9IGZyb20gJy4vbGliL2xvZ2dpbmcvbG9nZ2VyLm1vZGVsJztcbmV4cG9ydCB7IExvZ2dlclNlcnZpY2UgfSBmcm9tICcuL2xpYi9sb2dnaW5nL2xvZ2dlci5zZXJ2aWNlJztcbmV4cG9ydCB7IFNlcnZlckxvZ2dlclNpbmsgfSBmcm9tICcuL2xpYi9sb2dnaW5nL3NlcnZlci1sb2dnZXIuc2luayc7XG5cbmV4cG9ydCB7IERhdGVTZXJ2aWNlIH0gZnJvbSAnLi9saWIvc2VydmljZXMvZGF0ZS5zZXJ2aWNlJztcbmV4cG9ydCB7IERvd25sb2FkU2VydmljZSB9IGZyb20gJy4vbGliL3NlcnZpY2VzL2Rvd25sb2FkLnNlcnZpY2UnO1xuZXhwb3J0IHsgRmVhdHVyZUd1YXJkU2VydmljZSB9IGZyb20gJy4vbGliL2d1YXJkcy9mZWF0dXJlLWd1YXJkLnNlcnZpY2UnO1xuZXhwb3J0IHsgRmVhdHVyZVNlcnZpY2UgfSBmcm9tICcuL2xpYi9zZXJ2aWNlcy9mZWF0dXJlLnNlcnZpY2UnO1xuZXhwb3J0IHsgSW50ZXJ2YWxTZXJ2aWNlLCBJbnRlcnZhbFRpbWVyIH0gZnJvbSAnLi9saWIvc2VydmljZXMvaW50ZXJ2YWwuc2VydmljZSc7XG5leHBvcnQgeyBMb2NhbFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi9saWIvc2VydmljZXMvbG9jYWwtc3RvcmFnZS5zZXJ2aWNlJztcbmV4cG9ydCB7IE1vZGFsU2VydmljZSB9IGZyb20gJy4vbGliL3NlcnZpY2VzL21vZGFsLnNlcnZpY2UnO1xuZXhwb3J0IHsgTmF2aWdhdGlvblNlcnZpY2UgfSBmcm9tICcuL2xpYi9zZXJ2aWNlcy9uYXZpZ2F0aW9uLnNlcnZpY2UnO1xuZXhwb3J0IHsgT2JqZWN0U2VydmljZSB9IGZyb20gJy4vbGliL3NlcnZpY2VzL29iamVjdC5zZXJ2aWNlJztcbmV4cG9ydCB7IFJlc3RDbGllbnQgfSBmcm9tICcuL2xpYi9zZXJ2aWNlcy9yZXN0LWNsaWVudC5zZXJ2aWNlJztcbmV4cG9ydCB7IFJvdXRlUGFyYW1TZXJ2aWNlIH0gZnJvbSAnLi9saWIvc2VydmljZXMvcm91dGUtcGFyYW0uc2VydmljZSc7XG5leHBvcnQgeyBTZXNzaW9uU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuL2xpYi9zZXJ2aWNlcy9zZXNzaW9uLXN0b3JhZ2Uuc2VydmljZSc7XG5cbmV4cG9ydCB7IFVuc2F2ZWRDaGFuZ2VzR3VhcmQgfSBmcm9tICcuL2xpYi9ndWFyZHMvdW5zYXZlZC1jaGFuZ2VzLmd1YXJkJztcblxuZXhwb3J0IHsgSURlYWN0aXZhdGFibGUgfSBmcm9tICcuL2xpYi9tb2RlbHMvZGVhY3RpdmF0YWJsZS5pbnRlcmZhY2UnO1xuZXhwb3J0IHsgVXVpZCB9IGZyb20gJy4vbGliL21vZGVscy91dWlkLm1vZGVsJztcblxuZXhwb3J0IHsgTmFtZVZhbHVlSXRlbSB9IGZyb20gJy4vbGliL3R5cGVzL25hbWUtdmFsdWUtaXRlbS50eXBlJztcbiJdfQ==