@abp/ng.core 9.0.2 → 9.1.0-rc.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 (187) hide show
  1. package/fesm2022/abp-ng.core-testing.mjs +14 -14
  2. package/fesm2022/abp-ng.core.mjs +267 -283
  3. package/fesm2022/abp-ng.core.mjs.map +1 -1
  4. package/lib/providers/cookie-language.provider.d.ts +2 -3
  5. package/lib/utils/initial-utils.d.ts +2 -3
  6. package/package.json +2 -8
  7. package/esm2022/abp-ng.core.mjs +0 -5
  8. package/esm2022/lib/abstracts/abstract-guard.mjs +0 -2
  9. package/esm2022/lib/abstracts/auth-error-filter.mjs +0 -25
  10. package/esm2022/lib/abstracts/auth-response.model.mjs +0 -2
  11. package/esm2022/lib/abstracts/auth.guard.mjs +0 -24
  12. package/esm2022/lib/abstracts/auth.service.mjs +0 -67
  13. package/esm2022/lib/abstracts/index.mjs +0 -7
  14. package/esm2022/lib/abstracts/ng-model.component.mjs +0 -58
  15. package/esm2022/lib/clients/http.client.mjs +0 -28
  16. package/esm2022/lib/clients/index.mjs +0 -2
  17. package/esm2022/lib/components/dynamic-layout.component.mjs +0 -115
  18. package/esm2022/lib/components/index.mjs +0 -4
  19. package/esm2022/lib/components/replaceable-route-container.component.mjs +0 -42
  20. package/esm2022/lib/components/router-outlet.component.mjs +0 -15
  21. package/esm2022/lib/constants/default-layouts.mjs +0 -6
  22. package/esm2022/lib/constants/different-locales.mjs +0 -337
  23. package/esm2022/lib/constants/index.mjs +0 -3
  24. package/esm2022/lib/core.module.mjs +0 -203
  25. package/esm2022/lib/directives/autofocus.directive.mjs +0 -30
  26. package/esm2022/lib/directives/caps-lock.directive.mjs +0 -41
  27. package/esm2022/lib/directives/debounce.directive.mjs +0 -36
  28. package/esm2022/lib/directives/for.directive.mjs +0 -160
  29. package/esm2022/lib/directives/form-submit.directive.mjs +0 -77
  30. package/esm2022/lib/directives/index.mjs +0 -11
  31. package/esm2022/lib/directives/init.directive.mjs +0 -24
  32. package/esm2022/lib/directives/permission.directive.mjs +0 -75
  33. package/esm2022/lib/directives/replaceable-template.directive.mjs +0 -133
  34. package/esm2022/lib/directives/show-password.directive.mjs +0 -25
  35. package/esm2022/lib/directives/stop-propagation.directive.mjs +0 -32
  36. package/esm2022/lib/enums/common.mjs +0 -2
  37. package/esm2022/lib/enums/index.mjs +0 -2
  38. package/esm2022/lib/guards/index.mjs +0 -2
  39. package/esm2022/lib/guards/permission.guard.mjs +0 -62
  40. package/esm2022/lib/handlers/index.mjs +0 -2
  41. package/esm2022/lib/handlers/routes.handler.mjs +0 -51
  42. package/esm2022/lib/interceptors/api.interceptor.mjs +0 -27
  43. package/esm2022/lib/interceptors/index.mjs +0 -2
  44. package/esm2022/lib/localization.module.mjs +0 -16
  45. package/esm2022/lib/models/auth-events.mjs +0 -29
  46. package/esm2022/lib/models/auth.mjs +0 -2
  47. package/esm2022/lib/models/common.mjs +0 -2
  48. package/esm2022/lib/models/dtos.mjs +0 -137
  49. package/esm2022/lib/models/environment.mjs +0 -2
  50. package/esm2022/lib/models/index.mjs +0 -12
  51. package/esm2022/lib/models/localization.mjs +0 -2
  52. package/esm2022/lib/models/replaceable-components.mjs +0 -2
  53. package/esm2022/lib/models/rest.mjs +0 -2
  54. package/esm2022/lib/models/session.mjs +0 -2
  55. package/esm2022/lib/models/sort.mjs +0 -2
  56. package/esm2022/lib/models/utility.mjs +0 -2
  57. package/esm2022/lib/pipes/index.mjs +0 -8
  58. package/esm2022/lib/pipes/localization.pipe.mjs +0 -33
  59. package/esm2022/lib/pipes/safe-html.pipe.mjs +0 -23
  60. package/esm2022/lib/pipes/short-date-time.pipe.mjs +0 -34
  61. package/esm2022/lib/pipes/short-date.pipe.mjs +0 -34
  62. package/esm2022/lib/pipes/short-time.pipe.mjs +0 -34
  63. package/esm2022/lib/pipes/sort.pipe.mjs +0 -49
  64. package/esm2022/lib/pipes/to-injector.pipe.mjs +0 -29
  65. package/esm2022/lib/providers/cookie-language.provider.mjs +0 -22
  66. package/esm2022/lib/providers/core-module-config.provider.mjs +0 -135
  67. package/esm2022/lib/providers/include-localization-resources.provider.mjs +0 -6
  68. package/esm2022/lib/providers/index.mjs +0 -5
  69. package/esm2022/lib/providers/locale.provider.mjs +0 -26
  70. package/esm2022/lib/proxy/pages/abp/multi-tenancy/abp-tenant.service.mjs +0 -27
  71. package/esm2022/lib/proxy/pages/abp/multi-tenancy/index.mjs +0 -2
  72. package/esm2022/lib/proxy/volo/abp/asp-net-core/mvc/api-exploring/abp-api-definition.service.mjs +0 -24
  73. package/esm2022/lib/proxy/volo/abp/asp-net-core/mvc/api-exploring/index.mjs +0 -2
  74. package/esm2022/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-configuration.service.mjs +0 -24
  75. package/esm2022/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-localization.service.mjs +0 -24
  76. package/esm2022/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/index.mjs +0 -6
  77. package/esm2022/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/models.mjs +0 -2
  78. package/esm2022/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/object-extending/index.mjs +0 -2
  79. package/esm2022/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/object-extending/models.mjs +0 -2
  80. package/esm2022/lib/proxy/volo/abp/asp-net-core/mvc/multi-tenancy/index.mjs +0 -2
  81. package/esm2022/lib/proxy/volo/abp/asp-net-core/mvc/multi-tenancy/models.mjs +0 -2
  82. package/esm2022/lib/proxy/volo/abp/http/modeling/index.mjs +0 -2
  83. package/esm2022/lib/proxy/volo/abp/http/modeling/models.mjs +0 -2
  84. package/esm2022/lib/proxy/volo/abp/localization/index.mjs +0 -2
  85. package/esm2022/lib/proxy/volo/abp/localization/models.mjs +0 -2
  86. package/esm2022/lib/proxy/volo/abp/models.mjs +0 -2
  87. package/esm2022/lib/services/config-state.service.mjs +0 -189
  88. package/esm2022/lib/services/content-projection.service.mjs +0 -17
  89. package/esm2022/lib/services/dom-insertion.service.mjs +0 -34
  90. package/esm2022/lib/services/environment.service.mjs +0 -54
  91. package/esm2022/lib/services/http-error-reporter.service.mjs +0 -29
  92. package/esm2022/lib/services/http-wait.service.mjs +0 -75
  93. package/esm2022/lib/services/index.mjs +0 -26
  94. package/esm2022/lib/services/internet-connection-service.mjs +0 -32
  95. package/esm2022/lib/services/lazy-load.service.mjs +0 -40
  96. package/esm2022/lib/services/list.service.mjs +0 -125
  97. package/esm2022/lib/services/local-storage-listener.service.mjs +0 -22
  98. package/esm2022/lib/services/local-storage.service.mjs +0 -32
  99. package/esm2022/lib/services/localization.service.mjs +0 -218
  100. package/esm2022/lib/services/multi-tenancy.service.mjs +0 -48
  101. package/esm2022/lib/services/permission.service.mjs +0 -63
  102. package/esm2022/lib/services/replaceable-components.service.mjs +0 -49
  103. package/esm2022/lib/services/resource-wait.service.mjs +0 -39
  104. package/esm2022/lib/services/rest.service.mjs +0 -78
  105. package/esm2022/lib/services/router-events.service.mjs +0 -51
  106. package/esm2022/lib/services/router-wait.service.mjs +0 -51
  107. package/esm2022/lib/services/routes.service.mjs +0 -200
  108. package/esm2022/lib/services/session-state.service.mjs +0 -84
  109. package/esm2022/lib/services/subscription.service.mjs +0 -43
  110. package/esm2022/lib/services/title-strategy.service.mjs +0 -46
  111. package/esm2022/lib/services/track-by.service.mjs +0 -21
  112. package/esm2022/lib/services/window.service.mjs +0 -41
  113. package/esm2022/lib/strategies/container.strategy.mjs +0 -38
  114. package/esm2022/lib/strategies/content-security.strategy.mjs +0 -30
  115. package/esm2022/lib/strategies/content.strategy.mjs +0 -52
  116. package/esm2022/lib/strategies/context.strategy.mjs +0 -37
  117. package/esm2022/lib/strategies/cross-origin.strategy.mjs +0 -28
  118. package/esm2022/lib/strategies/dom.strategy.mjs +0 -27
  119. package/esm2022/lib/strategies/index.mjs +0 -9
  120. package/esm2022/lib/strategies/loading.strategy.mjs +0 -58
  121. package/esm2022/lib/strategies/projection.strategy.mjs +0 -80
  122. package/esm2022/lib/tokens/app-config.token.mjs +0 -3
  123. package/esm2022/lib/tokens/check-authentication-state.mjs +0 -3
  124. package/esm2022/lib/tokens/compare-func.token.mjs +0 -31
  125. package/esm2022/lib/tokens/cookie-language-key.token.mjs +0 -5
  126. package/esm2022/lib/tokens/dynamic-layout.token.mjs +0 -3
  127. package/esm2022/lib/tokens/http-context.token.mjs +0 -3
  128. package/esm2022/lib/tokens/include-localization-resources.token.mjs +0 -3
  129. package/esm2022/lib/tokens/index.mjs +0 -20
  130. package/esm2022/lib/tokens/list.token.mjs +0 -3
  131. package/esm2022/lib/tokens/localization.token.mjs +0 -10
  132. package/esm2022/lib/tokens/lodaer-delay.token.mjs +0 -3
  133. package/esm2022/lib/tokens/manage-profile.token.mjs +0 -3
  134. package/esm2022/lib/tokens/options.token.mjs +0 -8
  135. package/esm2022/lib/tokens/others-group.token.mjs +0 -3
  136. package/esm2022/lib/tokens/pipe-to-login.token.mjs +0 -3
  137. package/esm2022/lib/tokens/queue.token.mjs +0 -3
  138. package/esm2022/lib/tokens/set-token-response-to-storage.token.mjs +0 -6
  139. package/esm2022/lib/tokens/tenant-key.token.mjs +0 -3
  140. package/esm2022/lib/tokens/tenant-not-found-by-name.mjs +0 -3
  141. package/esm2022/lib/tokens/title-strategy-disable-project-name.token.mjs +0 -3
  142. package/esm2022/lib/utils/array-utils.mjs +0 -7
  143. package/esm2022/lib/utils/common-utils.mjs +0 -35
  144. package/esm2022/lib/utils/date-extensions.mjs +0 -6
  145. package/esm2022/lib/utils/date-utils.mjs +0 -13
  146. package/esm2022/lib/utils/environment-utils.mjs +0 -36
  147. package/esm2022/lib/utils/factory-utils.mjs +0 -24
  148. package/esm2022/lib/utils/file-utils.mjs +0 -15
  149. package/esm2022/lib/utils/form-utils.mjs +0 -12
  150. package/esm2022/lib/utils/generator-utils.mjs +0 -43
  151. package/esm2022/lib/utils/http-utils.mjs +0 -19
  152. package/esm2022/lib/utils/index.mjs +0 -21
  153. package/esm2022/lib/utils/initial-utils.mjs +0 -60
  154. package/esm2022/lib/utils/internal-store-utils.mjs +0 -37
  155. package/esm2022/lib/utils/lazy-load-utils.mjs +0 -40
  156. package/esm2022/lib/utils/localization-utils.mjs +0 -49
  157. package/esm2022/lib/utils/multi-tenancy-utils.mjs +0 -93
  158. package/esm2022/lib/utils/number-utils.mjs +0 -4
  159. package/esm2022/lib/utils/object-utils.mjs +0 -37
  160. package/esm2022/lib/utils/queue.mjs +0 -41
  161. package/esm2022/lib/utils/route-utils.mjs +0 -26
  162. package/esm2022/lib/utils/string-utils.mjs +0 -30
  163. package/esm2022/lib/utils/tree-utils.mjs +0 -70
  164. package/esm2022/lib/validators/age.validator.mjs +0 -14
  165. package/esm2022/lib/validators/credit-card.validator.mjs +0 -21
  166. package/esm2022/lib/validators/index.mjs +0 -29
  167. package/esm2022/lib/validators/range.validator.mjs +0 -15
  168. package/esm2022/lib/validators/required.validator.mjs +0 -15
  169. package/esm2022/lib/validators/string-length.validator.mjs +0 -15
  170. package/esm2022/lib/validators/unique-character.validator.mjs +0 -13
  171. package/esm2022/lib/validators/url.validator.mjs +0 -17
  172. package/esm2022/lib/validators/username.validator.mjs +0 -14
  173. package/esm2022/locale/abp-ng.core-locale.mjs +0 -5
  174. package/esm2022/locale/public-api.mjs +0 -2
  175. package/esm2022/locale/utils/register-locale.mjs +0 -101
  176. package/esm2022/public-api.mjs +0 -28
  177. package/esm2022/testing/abp-ng.core-testing.mjs +0 -5
  178. package/esm2022/testing/lib/core-testing.module.mjs +0 -76
  179. package/esm2022/testing/lib/pipes/index.mjs +0 -2
  180. package/esm2022/testing/lib/pipes/localization.pipe.mjs +0 -20
  181. package/esm2022/testing/lib/services/index.mjs +0 -3
  182. package/esm2022/testing/lib/services/mock-permission.service.mjs +0 -35
  183. package/esm2022/testing/lib/services/mock-rest.service.mjs +0 -31
  184. package/esm2022/testing/lib/utils/clear-page.util.mjs +0 -10
  185. package/esm2022/testing/lib/utils/index.mjs +0 -3
  186. package/esm2022/testing/lib/utils/wait.util.mjs +0 -5
  187. package/esm2022/testing/public-api.mjs +0 -5
@@ -1,189 +0,0 @@
1
- import { Inject, Injectable, Optional } from '@angular/core';
2
- import { Subject } from 'rxjs';
3
- import { map, switchMap, take, tap } from 'rxjs/operators';
4
- import { AbpApplicationConfigurationService } from '../proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-configuration.service';
5
- import { AbpApplicationLocalizationService } from '../proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-localization.service';
6
- import { INCUDE_LOCALIZATION_RESOURCES_TOKEN } from '../tokens/include-localization-resources.token';
7
- import { InternalStore } from '../utils/internal-store-utils';
8
- import * as i0 from "@angular/core";
9
- import * as i1 from "../proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-configuration.service";
10
- import * as i2 from "../proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-localization.service";
11
- export class ConfigStateService {
12
- setState(config) {
13
- this.store.set(config);
14
- }
15
- get createOnUpdateStream() {
16
- return this.store.sliceUpdate;
17
- }
18
- constructor(abpConfigService, abpApplicationLocalizationService, includeLocalizationResources) {
19
- this.abpConfigService = abpConfigService;
20
- this.abpApplicationLocalizationService = abpApplicationLocalizationService;
21
- this.includeLocalizationResources = includeLocalizationResources;
22
- this.updateSubject = new Subject();
23
- this.store = new InternalStore({});
24
- this.initUpdateStream();
25
- }
26
- initUpdateStream() {
27
- this.updateSubject
28
- .pipe(switchMap(() => this.abpConfigService.get({
29
- includeLocalizationResources: !!this.includeLocalizationResources,
30
- })))
31
- .pipe(switchMap(appState => this.getLocalizationAndCombineWithAppState(appState)))
32
- .subscribe(res => this.store.set(res));
33
- }
34
- getLocalizationAndCombineWithAppState(appState) {
35
- if (!appState.localization.currentCulture.cultureName) {
36
- throw new Error('culture name should defined');
37
- }
38
- const cultureName = this.uiCultureFromAuthCodeFlow ?? appState.localization.currentCulture.cultureName;
39
- return this.getlocalizationResource(cultureName).pipe(map(result => ({ ...appState, localization: { ...appState.localization, ...result } })), tap(() => (this.uiCultureFromAuthCodeFlow = undefined)));
40
- }
41
- getlocalizationResource(cultureName) {
42
- return this.abpApplicationLocalizationService.get({
43
- cultureName: cultureName,
44
- onlyDynamics: false,
45
- });
46
- }
47
- refreshAppState() {
48
- this.updateSubject.next();
49
- return this.createOnUpdateStream(state => state).pipe(take(1));
50
- }
51
- refreshLocalization(lang) {
52
- if (this.includeLocalizationResources) {
53
- return this.refreshAppState().pipe(map(() => null));
54
- }
55
- return this.getlocalizationResource(lang)
56
- .pipe(tap(result => this.store.patch({ localization: { ...this.store.state.localization, ...result } })))
57
- .pipe(map(() => null));
58
- }
59
- getOne$(key) {
60
- return this.store.sliceState(state => state[key]);
61
- }
62
- getOne(key) {
63
- return this.store.state[key];
64
- }
65
- getAll$() {
66
- return this.store.sliceState(state => state);
67
- }
68
- getAll() {
69
- return this.store.state;
70
- }
71
- getDeep$(keys) {
72
- keys = splitKeys(keys);
73
- return this.store
74
- .sliceState(state => state)
75
- .pipe(map(state => {
76
- return keys.reduce((acc, val) => {
77
- if (acc) {
78
- return acc[val];
79
- }
80
- return undefined;
81
- }, state);
82
- }));
83
- }
84
- getDeep(keys) {
85
- keys = splitKeys(keys);
86
- return keys.reduce((acc, val) => {
87
- if (acc) {
88
- return acc[val];
89
- }
90
- return undefined;
91
- }, this.store.state);
92
- }
93
- getFeature(key) {
94
- return this.store.state.features?.values?.[key];
95
- }
96
- getFeature$(key) {
97
- return this.store.sliceState(state => state.features?.values?.[key]);
98
- }
99
- getFeatures(keys) {
100
- const { features } = this.store.state;
101
- if (!features)
102
- return;
103
- return keys.reduce((acc, key) => ({ ...acc, [key]: features.values[key] }), {});
104
- }
105
- getFeatures$(keys) {
106
- return this.store.sliceState(({ features }) => {
107
- if (!features?.values)
108
- return;
109
- return keys.reduce((acc, key) => ({ ...acc, [key]: features.values[key] }), {});
110
- });
111
- }
112
- isFeatureEnabled(key, features) {
113
- return features.values[key] === 'true';
114
- }
115
- getFeatureIsEnabled(key) {
116
- return this.isFeatureEnabled(key, this.store.state.features);
117
- }
118
- getFeatureIsEnabled$(key) {
119
- return this.store.sliceState(state => this.isFeatureEnabled(key, state.features));
120
- }
121
- getSetting(key) {
122
- return this.store.state.setting?.values?.[key];
123
- }
124
- getSetting$(key) {
125
- return this.store.sliceState(state => state.setting?.values?.[key]);
126
- }
127
- getSettings(keyword) {
128
- const settings = this.store.state.setting?.values || {};
129
- if (!keyword)
130
- return settings;
131
- const keysFound = Object.keys(settings).filter(key => key.indexOf(keyword) > -1);
132
- return keysFound.reduce((acc, key) => {
133
- acc[key] = settings[key];
134
- return acc;
135
- }, {});
136
- }
137
- getSettings$(keyword) {
138
- return this.store
139
- .sliceState(state => state.setting?.values)
140
- .pipe(map((settings = {}) => {
141
- if (!keyword)
142
- return settings;
143
- const keysFound = Object.keys(settings).filter(key => key.indexOf(keyword) > -1);
144
- return keysFound.reduce((acc, key) => {
145
- acc[key] = settings[key];
146
- return acc;
147
- }, {});
148
- }));
149
- }
150
- getGlobalFeatures() {
151
- return this.store.state.globalFeatures;
152
- }
153
- getGlobalFeatures$() {
154
- return this.store.sliceState(state => state.globalFeatures);
155
- }
156
- isGlobalFeatureEnabled(key, globalFeatures) {
157
- const features = globalFeatures.enabledFeatures || [];
158
- return features.some(f => key === f);
159
- }
160
- getGlobalFeatureIsEnabled(key) {
161
- return this.isGlobalFeatureEnabled(key, this.store.state.globalFeatures);
162
- }
163
- getGlobalFeatureIsEnabled$(key) {
164
- return this.store.sliceState(state => this.isGlobalFeatureEnabled(key, state.globalFeatures));
165
- }
166
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: ConfigStateService, deps: [{ token: i1.AbpApplicationConfigurationService }, { token: i2.AbpApplicationLocalizationService }, { token: INCUDE_LOCALIZATION_RESOURCES_TOKEN, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
167
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: ConfigStateService, providedIn: 'root' }); }
168
- }
169
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: ConfigStateService, decorators: [{
170
- type: Injectable,
171
- args: [{
172
- providedIn: 'root',
173
- }]
174
- }], ctorParameters: () => [{ type: i1.AbpApplicationConfigurationService }, { type: i2.AbpApplicationLocalizationService }, { type: undefined, decorators: [{
175
- type: Optional
176
- }, {
177
- type: Inject,
178
- args: [INCUDE_LOCALIZATION_RESOURCES_TOKEN]
179
- }] }] });
180
- function splitKeys(keys) {
181
- if (typeof keys === 'string') {
182
- keys = keys.split('.');
183
- }
184
- if (!Array.isArray(keys)) {
185
- throw new Error('The argument must be a dot string or an string array.');
186
- }
187
- return keys;
188
- }
189
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLXN0YXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvc2VydmljZXMvY29uZmlnLXN0YXRlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNELE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLHFHQUFxRyxDQUFDO0FBQ3pKLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLG9HQUFvRyxDQUFDO0FBTXZKLE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7OztBQUs5RCxNQUFNLE9BQU8sa0JBQWtCO0lBTTdCLFFBQVEsQ0FBQyxNQUFtQztRQUMxQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxvQkFBb0I7UUFDdEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQztJQUNoQyxDQUFDO0lBQ0QsWUFDVSxnQkFBb0QsRUFDcEQsaUNBQW9FLEVBRzNELDRCQUE0QztRQUpyRCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQW9DO1FBQ3BELHNDQUFpQyxHQUFqQyxpQ0FBaUMsQ0FBbUM7UUFHM0QsaUNBQTRCLEdBQTVCLDRCQUE0QixDQUFnQjtRQWpCdkQsa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQzNCLFVBQUssR0FBRyxJQUFJ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LE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAsIHN3aXRjaE1hcCwgdGFrZSwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBBYnBBcHBsaWNhdGlvbkNvbmZpZ3VyYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vcHJveHkvdm9sby9hYnAvYXNwLW5ldC1jb3JlL212Yy9hcHBsaWNhdGlvbi1jb25maWd1cmF0aW9ucy9hYnAtYXBwbGljYXRpb24tY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQWJwQXBwbGljYXRpb25Mb2NhbGl6YXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vcHJveHkvdm9sby9hYnAvYXNwLW5ldC1jb3JlL212Yy9hcHBsaWNhdGlvbi1jb25maWd1cmF0aW9ucy9hYnAtYXBwbGljYXRpb24tbG9jYWxpemF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge1xyXG4gIEFwcGxpY2F0aW9uQ29uZmlndXJhdGlvbkR0byxcclxuICBBcHBsaWNhdGlvbkZlYXR1cmVDb25maWd1cmF0aW9uRHRvLFxyXG4gIEFwcGxpY2F0aW9uR2xvYmFsRmVhdHVyZUNvbmZpZ3VyYXRpb25EdG8sXHJcbn0gZnJvbSAnLi4vcHJveHkvdm9sby9hYnAvYXNwLW5ldC1jb3JlL212Yy9hcHBsaWNhdGlvbi1jb25maWd1cmF0aW9ucy9tb2RlbHMnO1xyXG5pbXBvcnQgeyBJTkNVREVfTE9DQUxJWkFUSU9OX1JFU09VUkNFU19UT0tFTiB9IGZyb20gJy4uL3Rva2Vucy9pbmNsdWRlLWxvY2FsaXphdGlvbi1yZXNvdXJjZXMudG9rZW4nO1xyXG5pbXBvcnQgeyBJbnRlcm5hbFN0b3JlIH0gZnJvbSAnLi4vdXRpbHMvaW50ZXJuYWwtc3RvcmUtdXRpbHMnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIENvbmZpZ1N0YXRlU2VydmljZSB7XHJcbiAgcHJpdmF0ZSB1cGRhdGVTdWJqZWN0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IHN0b3JlID0gbmV3IEludGVybmFsU3RvcmUoe30gYXMgQXBwbGljYXRpb25Db25maWd1cmF0aW9uRHRvKTtcclxuXHJcbiAgcHVibGljIHVpQ3VsdHVyZUZyb21BdXRoQ29kZUZsb3c6IHN0cmluZztcclxuXHJcbiAgc2V0U3RhdGUoY29uZmlnOiBBcHBsaWNhdGlvbkNvbmZpZ3VyYXRpb25EdG8pIHtcclxuICAgIHRoaXMuc3RvcmUuc2V0KGNvbmZpZyk7XHJcbiAgfVxyXG5cclxuICBnZXQgY3JlYXRlT25VcGRhdGVTdHJlYW0oKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zbGljZVVwZGF0ZTtcclxuICB9XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGFicENvbmZpZ1NlcnZpY2U6IEFicEFwcGxpY2F0aW9uQ29uZmlndXJhdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGFicEFwcGxpY2F0aW9uTG9jYWxpemF0aW9uU2VydmljZTogQWJwQXBwbGljYXRpb25Mb2NhbGl6YXRpb25TZXJ2aWNlLFxyXG4gICAgQE9wdGlvbmFsKClcclxuICAgIEBJbmplY3QoSU5DVURFX0xPQ0FMSVpBVElPTl9SRVNPVVJDRVNfVE9LRU4pXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGluY2x1ZGVMb2NhbGl6YXRpb25SZXNvdXJjZXM6IGJvb2xlYW4gfCBudWxsLFxyXG4gICkge1xyXG4gICAgdGhpcy5pbml0VXBkYXRlU3RyZWFtKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGluaXRVcGRhdGVTdHJlYW0oKSB7XHJcbiAgICB0aGlzLnVwZGF0ZVN1YmplY3RcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+XHJcbiAgICAgICAgICB0aGlzLmFicENvbmZpZ1NlcnZpY2UuZ2V0KHtcclxuICAgICAgICAgICAgaW5jbHVkZUxvY2FsaXphdGlvblJlc291cmNlczogISF0aGlzLmluY2x1ZGVMb2NhbGl6YXRpb25SZXNvdXJjZXMsXHJcbiAgICAgICAgICB9KSxcclxuICAgICAgICApLFxyXG4gICAgICApXHJcbiAgICAgIC5waXBlKHN3aXRjaE1hcChhcHBTdGF0ZSA9PiB0aGlzLmdldExvY2FsaXphdGlvbkFuZENvbWJpbmVXaXRoQXBwU3RhdGUoYXBwU3RhdGUpKSlcclxuICAgICAgLnN1YnNjcmliZShyZXMgPT4gdGhpcy5zdG9yZS5zZXQocmVzKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldExvY2FsaXphdGlvbkFuZENvbWJpbmVXaXRoQXBwU3RhdGUoXHJcbiAgICBhcHBTdGF0ZTogQXBwbGljYXRpb25Db25maWd1cmF0aW9uRHRvLFxyXG4gICk6IE9ic2VydmFibGU8QXBwbGljYXRpb25Db25maWd1cmF0aW9uRHRvPiB7XHJcbiAgICBpZiAoIWFwcFN0YXRlLmxvY2FsaXphdGlvbi5jdXJyZW50Q3VsdHVyZS5jdWx0dXJlTmFtZSkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2N1bHR1cmUgbmFtZSBzaG91bGQgZGVmaW5lZCcpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGN1bHR1cmVOYW1lID1cclxuICAgICAgdGhpcy51aUN1bHR1cmVGcm9tQXV0aENvZGVGbG93ID8/IGFwcFN0YXRlLmxvY2FsaXphdGlvbi5jdXJyZW50Q3VsdHVyZS5jdWx0dXJlTmFtZTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5nZXRsb2NhbGl6YXRpb25SZXNvdXJjZShjdWx0dXJlTmFtZSkucGlwZShcclxuICAgICAgbWFwKHJlc3VsdCA9PiAoeyAuLi5hcHBTdGF0ZSwgbG9jYWxpemF0aW9uOiB7IC4uLmFwcFN0YXRlLmxvY2FsaXphdGlvbiwgLi4ucmVzdWx0IH0gfSkpLFxyXG4gICAgICB0YXAoKCkgPT4gKHRoaXMudWlDdWx0dXJlRnJvbUF1dGhDb2RlRmxvdyA9IHVuZGVmaW5lZCkpLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0bG9jYWxpemF0aW9uUmVzb3VyY2UoY3VsdHVyZU5hbWU6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuYWJwQXBwbGljYXRpb25Mb2NhbGl6YXRpb25TZXJ2aWNlLmdldCh7XHJcbiAgICAgIGN1bHR1cmVOYW1lOiBjdWx0dXJlTmFtZSxcclxuICAgICAgb25seUR5bmFtaWNzOiBmYWxzZSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcmVmcmVzaEFwcFN0YXRlKCkge1xyXG4gICAgdGhpcy51cGRhdGVTdWJqZWN0Lm5leHQoKTtcclxuICAgIHJldHVybiB0aGlzLmNyZWF0ZU9uVXBkYXRlU3RyZWFtKHN0YXRlID0+IHN0YXRlKS5waXBlKHRha2UoMSkpO1xyXG4gIH1cclxuXHJcbiAgcmVmcmVzaExvY2FsaXphdGlvbihsYW5nOiBzdHJpbmcpOiBPYnNlcnZhYmxlPG51bGw+IHtcclxuICAgIGlmICh0aGlzLmluY2x1ZGVMb2NhbGl6YXRpb25SZXNvdXJjZXMpIHtcclxuICAgICAgcmV0dXJuIHRoaXMucmVmcmVzaEFwcFN0YXRlKCkucGlwZShtYXAoKCkgPT4gbnVsbCkpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLmdldGxvY2FsaXphdGlvblJlc291cmNlKGxhbmcpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHRhcChyZXN1bHQgPT5cclxuICAgICAgICAgIHRoaXMuc3RvcmUucGF0Y2goeyBsb2NhbGl6YXRpb246IHsgLi4udGhpcy5zdG9yZS5zdGF0ZS5sb2NhbGl6YXRpb24sIC4uLnJlc3VsdCB9IH0pLFxyXG4gICAgICAgICksXHJcbiAgICAgIClcclxuICAgICAgLnBpcGUobWFwKCgpID0+IG51bGwpKTtcclxuICB9XHJcblxyXG4gIGdldE9uZSQ8SyBleHRlbmRzIGtleW9mIEFwcGxpY2F0aW9uQ29uZmlndXJhdGlvbkR0bz4oa2V5OiBLKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zbGljZVN0YXRlKHN0YXRlID0+IHN0YXRlW2tleV0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0T25lPEsgZXh0ZW5kcyBrZXlvZiBBcHBsaWNhdGlvbkNvbmZpZ3VyYXRpb25EdG8+KGtleTogSykge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc3RhdGVba2V5XTtcclxuICB9XHJcblxyXG4gIGdldEFsbCQoKTogT2JzZXJ2YWJsZTxBcHBsaWNhdGlvbkNvbmZpZ3VyYXRpb25EdG8+IHtcclxuICAgIHJldHVybiB0aGlzLnN0b3JlLnNsaWNlU3RhdGUoc3RhdGUgPT4gc3RhdGUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0QWxsKCk6IEFwcGxpY2F0aW9uQ29uZmlndXJhdGlvbkR0byB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zdGF0ZTtcclxuICB9XHJcblxyXG4gIGdldERlZXAkKGtleXM6IHN0cmluZ1tdIHwgc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGtleXMgPSBzcGxpdEtleXMoa2V5cyk7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuc3RvcmVcclxuICAgICAgLnNsaWNlU3RhdGUoc3RhdGUgPT4gc3RhdGUpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcChzdGF0ZSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gKGtleXMgYXMgc3RyaW5nW10pLnJlZHVjZSgoYWNjOiBhbnksIHZhbCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoYWNjKSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIGFjY1t2YWxdO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAgICAgfSwgc3RhdGUpO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0RGVlcChrZXlzOiBzdHJpbmdbXSB8IHN0cmluZyk6IGFueSB7XHJcbiAgICBrZXlzID0gc3BsaXRLZXlzKGtleXMpO1xyXG5cclxuICAgIHJldHVybiAoa2V5cyBhcyBzdHJpbmdbXSkucmVkdWNlKChhY2M6IGFueSwgdmFsKSA9PiB7XHJcbiAgICAgIGlmIChhY2MpIHtcclxuICAgICAgICByZXR1cm4gYWNjW3ZhbF07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICB9LCB0aGlzLnN0b3JlLnN0YXRlKTtcclxuICB9XHJcblxyXG4gIGdldEZlYXR1cmUoa2V5OiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLnN0b3JlLnN0YXRlLmZlYXR1cmVzPy52YWx1ZXM/LltrZXldO1xyXG4gIH1cclxuXHJcbiAgZ2V0RmVhdHVyZSQoa2V5OiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLnN0b3JlLnNsaWNlU3RhdGUoc3RhdGUgPT4gc3RhdGUuZmVhdHVyZXM/LnZhbHVlcz8uW2tleV0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0RmVhdHVyZXMoa2V5czogc3RyaW5nW10pIHtcclxuICAgIGNvbnN0IHsgZmVhdHVyZXMgfSA9IHRoaXMuc3RvcmUuc3RhdGU7XHJcbiAgICBpZiAoIWZlYXR1cmVzKSByZXR1cm47XHJcblxyXG4gICAgcmV0dXJuIGtleXMucmVkdWNlKChhY2MsIGtleSkgPT4gKHsgLi4uYWNjLCBba2V5XTogZmVhdHVyZXMudmFsdWVzW2tleV0gfSksIHt9KTtcclxuICB9XHJcblxyXG4gIGdldEZlYXR1cmVzJChrZXlzOiBzdHJpbmdbXSk6IE9ic2VydmFibGU8eyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSB8IHVuZGVmaW5lZD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc2xpY2VTdGF0ZSgoeyBmZWF0dXJlcyB9KSA9PiB7XHJcbiAgICAgIGlmICghZmVhdHVyZXM/LnZhbHVlcykgcmV0dXJuO1xyXG5cclxuICAgICAgcmV0dXJuIGtleXMucmVkdWNlKChhY2MsIGtleSkgPT4gKHsgLi4uYWNjLCBba2V5XTogZmVhdHVyZXMudmFsdWVzW2tleV0gfSksIHt9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc0ZlYXR1cmVFbmFibGVkKGtleTogc3RyaW5nLCBmZWF0dXJlczogQXBwbGljYXRpb25GZWF0dXJlQ29uZmlndXJhdGlvbkR0bykge1xyXG4gICAgcmV0dXJuIGZlYXR1cmVzLnZhbHVlc1trZXldID09PSAndHJ1ZSc7XHJcbiAgfVxyXG5cclxuICBnZXRGZWF0dXJlSXNFbmFibGVkKGtleTogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5pc0ZlYXR1cmVFbmFibGVkKGtleSwgdGhpcy5zdG9yZS5zdGF0ZS5mZWF0dXJlcyk7XHJcbiAgfVxyXG5cclxuICBnZXRGZWF0dXJlSXNFbmFibGVkJChrZXk6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc2xpY2VTdGF0ZShzdGF0ZSA9PiB0aGlzLmlzRmVhdHVyZUVuYWJsZWQoa2V5LCBzdGF0ZS5mZWF0dXJlcykpO1xyXG4gIH1cclxuXHJcbiAgZ2V0U2V0dGluZyhrZXk6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc3RhdGUuc2V0dGluZz8udmFsdWVzPy5ba2V5XTtcclxuICB9XHJcblxyXG4gIGdldFNldHRpbmckKGtleTogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zbGljZVN0YXRlKHN0YXRlID0+IHN0YXRlLnNldHRpbmc/LnZhbHVlcz8uW2tleV0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0U2V0dGluZ3Moa2V5d29yZD86IHN0cmluZykge1xyXG4gICAgY29uc3Qgc2V0dGluZ3MgPSB0aGlzLnN0b3JlLnN0YXRlLnNldHRpbmc/LnZhbHVlcyB8fCB7fTtcclxuXHJcbiAgICBpZiAoIWtleXdvcmQpIHJldHVybiBzZXR0aW5ncztcclxuXHJcbiAgICBjb25zdCBrZXlzRm91bmQgPSBPYmplY3Qua2V5cyhzZXR0aW5ncykuZmlsdGVyKGtleSA9PiBrZXkuaW5kZXhPZihrZXl3b3JkKSA+IC0xKTtcclxuXHJcbiAgICByZXR1cm4ga2V5c0ZvdW5kLnJlZHVjZShcclxuICAgICAgKGFjYywga2V5KSA9PiB7XHJcbiAgICAgICAgYWNjW2tleV0gPSBzZXR0aW5nc1trZXldO1xyXG4gICAgICAgIHJldHVybiBhY2M7XHJcbiAgICAgIH0sXHJcbiAgICAgIHt9IGFzIFJlY29yZDxzdHJpbmcsIHN0cmluZz4sXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0U2V0dGluZ3MkKGtleXdvcmQ/OiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLnN0b3JlXHJcbiAgICAgIC5zbGljZVN0YXRlKHN0YXRlID0+IHN0YXRlLnNldHRpbmc/LnZhbHVlcylcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChzZXR0aW5ncyA9IHt9KSA9PiB7XHJcbiAgICAgICAgICBpZiAoIWtleXdvcmQpIHJldHVybiBzZXR0aW5ncztcclxuXHJcbiAgICAgICAgICBjb25zdCBrZXlzRm91bmQgPSBPYmplY3Qua2V5cyhzZXR0aW5ncykuZmlsdGVyKGtleSA9PiBrZXkuaW5kZXhPZihrZXl3b3JkKSA+IC0xKTtcclxuXHJcbiAgICAgICAgICByZXR1cm4ga2V5c0ZvdW5kLnJlZHVjZShcclxuICAgICAgICAgICAgKGFjYywga2V5KSA9PiB7XHJcbiAgICAgICAgICAgICAgYWNjW2tleV0gPSBzZXR0aW5nc1trZXldO1xyXG4gICAgICAgICAgICAgIHJldHVybiBhY2M7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHt9IGFzIFJlY29yZDxzdHJpbmcsIHN0cmluZz4sXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0R2xvYmFsRmVhdHVyZXMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zdGF0ZS5nbG9iYWxGZWF0dXJlcztcclxuICB9XHJcblxyXG4gIGdldEdsb2JhbEZlYXR1cmVzJCgpIHtcclxuICAgIHJldHVybiB0aGlzLnN0b3JlLnNsaWNlU3RhdGUoc3RhdGUgPT4gc3RhdGUuZ2xvYmFsRmVhdHVyZXMpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc0dsb2JhbEZlYXR1cmVFbmFibGVkKFxyXG4gICAga2V5OiBzdHJpbmcsXHJcbiAgICBnbG9iYWxGZWF0dXJlczogQXBwbGljYXRpb25HbG9iYWxGZWF0dXJlQ29uZmlndXJhdGlvbkR0byxcclxuICApIHtcclxuICAgIGNvbnN0IGZlYXR1cmVzID0gZ2xvYmFsRmVhdHVyZXMuZW5hYmxlZEZlYXR1cmVzIHx8IFtdO1xyXG4gICAgcmV0dXJuIGZlYXR1cmVzLnNvbWUoZiA9PiBrZXkgPT09IGYpO1xyXG4gIH1cclxuXHJcbiAgZ2V0R2xvYmFsRmVhdHVyZUlzRW5hYmxlZChrZXk6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuaXNHbG9iYWxGZWF0dXJlRW5hYmxlZChrZXksIHRoaXMuc3RvcmUuc3RhdGUuZ2xvYmFsRmVhdHVyZXMpO1xyXG4gIH1cclxuXHJcbiAgZ2V0R2xvYmFsRmVhdHVyZUlzRW5hYmxlZCQoa2V5OiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLnN0b3JlLnNsaWNlU3RhdGUoc3RhdGUgPT4gdGhpcy5pc0dsb2JhbEZlYXR1cmVFbmFibGVkKGtleSwgc3RhdGUuZ2xvYmFsRmVhdHVyZXMpKTtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHNwbGl0S2V5cyhrZXlzOiBzdHJpbmdbXSB8IHN0cmluZyk6IHN0cmluZ1tdIHtcclxuICBpZiAodHlwZW9mIGtleXMgPT09ICdzdHJpbmcnKSB7XHJcbiAgICBrZXlzID0ga2V5cy5zcGxpdCgnLicpO1xyXG4gIH1cclxuXHJcbiAgaWYgKCFBcnJheS5pc0FycmF5KGtleXMpKSB7XHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBhcmd1bWVudCBtdXN0IGJlIGEgZG90IHN0cmluZyBvciBhbiBzdHJpbmcgYXJyYXkuJyk7XHJcbiAgfVxyXG5cclxuICByZXR1cm4ga2V5cztcclxufVxyXG4iXX0=
@@ -1,17 +0,0 @@
1
- import { Injectable, Injector } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class ContentProjectionService {
4
- constructor(injector) {
5
- this.injector = injector;
6
- }
7
- projectContent(projectionStrategy, injector = this.injector) {
8
- return projectionStrategy.injectContent(injector);
9
- }
10
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: ContentProjectionService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
11
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: ContentProjectionService, providedIn: 'root' }); }
12
- }
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: ContentProjectionService, decorators: [{
14
- type: Injectable,
15
- args: [{ providedIn: 'root' }]
16
- }], ctorParameters: () => [{ type: i0.Injector }] });
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1wcm9qZWN0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvc2VydmljZXMvY29udGVudC1wcm9qZWN0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQXFCLE1BQU0sZUFBZSxDQUFDOztBQUl4RSxNQUFNLE9BQU8sd0JBQXdCO0lBQ25DLFlBQW9CLFFBQWtCO1FBQWxCLGFBQVEsR0FBUixRQUFRLENBQVU7SUFBRyxDQUFDO0lBRTFDLGNBQWMsQ0FDWixrQkFBeUMsRUFDekMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRO1FBRXhCLE9BQU8sa0JBQWtCLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3BELENBQUM7OEdBUlUsd0JBQXdCO2tIQUF4Qix3QkFBd0IsY0FEWCxNQUFNOzsyRkFDbkIsd0JBQXdCO2tCQURwQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yLCBUZW1wbGF0ZVJlZiwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBQcm9qZWN0aW9uU3RyYXRlZ3kgfSBmcm9tICcuLi9zdHJhdGVnaWVzL3Byb2plY3Rpb24uc3RyYXRlZ3knO1xyXG5cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuZXhwb3J0IGNsYXNzIENvbnRlbnRQcm9qZWN0aW9uU2VydmljZSB7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IpIHt9XHJcblxyXG4gIHByb2plY3RDb250ZW50PFQgZXh0ZW5kcyBUeXBlPGFueT4gfCBUZW1wbGF0ZVJlZjxhbnk+PihcclxuICAgIHByb2plY3Rpb25TdHJhdGVneTogUHJvamVjdGlvblN0cmF0ZWd5PFQ+LFxyXG4gICAgaW5qZWN0b3IgPSB0aGlzLmluamVjdG9yLFxyXG4gICkge1xyXG4gICAgcmV0dXJuIHByb2plY3Rpb25TdHJhdGVneS5pbmplY3RDb250ZW50KGluamVjdG9yKTtcclxuICB9XHJcbn1cclxuIl19
@@ -1,34 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { generateHash } from '../utils';
3
- import * as i0 from "@angular/core";
4
- export class DomInsertionService {
5
- constructor() {
6
- this.inserted = new Set();
7
- }
8
- insertContent(contentStrategy) {
9
- const hash = generateHash(contentStrategy.content);
10
- if (this.inserted.has(hash))
11
- return;
12
- const element = contentStrategy.insertElement();
13
- this.inserted.add(hash);
14
- return element;
15
- }
16
- removeContent(element) {
17
- if (element.textContent) {
18
- const hash = generateHash(element.textContent);
19
- this.inserted.delete(hash);
20
- element.parentNode?.removeChild(element);
21
- }
22
- }
23
- has(content) {
24
- const hash = generateHash(content);
25
- return this.inserted.has(hash);
26
- }
27
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: DomInsertionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
28
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: DomInsertionService, providedIn: 'root' }); }
29
- }
30
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: DomInsertionService, decorators: [{
31
- type: Injectable,
32
- args: [{ providedIn: 'root' }]
33
- }] });
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tLWluc2VydGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3NlcnZpY2VzL2RvbS1pbnNlcnRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBR3hDLE1BQU0sT0FBTyxtQkFBbUI7SUFEaEM7UUFFbUIsYUFBUSxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7S0E0Qi9DO0lBMUJDLGFBQWEsQ0FDWCxlQUFtQztRQUVuQyxNQUFNLElBQUksR0FBRyxZQUFZLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRW5ELElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO1lBQUUsT0FBTztRQUVwQyxNQUFNLE9BQU8sR0FBRyxlQUFlLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDaEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFeEIsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELGFBQWEsQ0FBQyxPQUE2QztRQUN6RCxJQUFJLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN4QixNQUFNLElBQUksR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQy9DLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzNCLE9BQU8sQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNDLENBQUM7SUFDSCxDQUFDO0lBRUQsR0FBRyxDQUFDLE9BQWU7UUFDakIsTUFBTSxJQUFJLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRW5DLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakMsQ0FBQzs4R0E1QlUsbUJBQW1CO2tIQUFuQixtQkFBbUIsY0FETixNQUFNOzsyRkFDbkIsbUJBQW1CO2tCQUQvQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udGVudFN0cmF0ZWd5IH0gZnJvbSAnLi4vc3RyYXRlZ2llcy9jb250ZW50LnN0cmF0ZWd5JztcclxuaW1wb3J0IHsgZ2VuZXJhdGVIYXNoIH0gZnJvbSAnLi4vdXRpbHMnO1xyXG5cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuZXhwb3J0IGNsYXNzIERvbUluc2VydGlvblNlcnZpY2Uge1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgaW5zZXJ0ZWQgPSBuZXcgU2V0PG51bWJlcj4oKTtcclxuXHJcbiAgaW5zZXJ0Q29udGVudDxUIGV4dGVuZHMgSFRNTFNjcmlwdEVsZW1lbnQgfCBIVE1MU3R5bGVFbGVtZW50PihcclxuICAgIGNvbnRlbnRTdHJhdGVneTogQ29udGVudFN0cmF0ZWd5PFQ+LFxyXG4gICk6IFQgfCB1bmRlZmluZWQge1xyXG4gICAgY29uc3QgaGFzaCA9IGdlbmVyYXRlSGFzaChjb250ZW50U3RyYXRlZ3kuY29udGVudCk7XHJcblxyXG4gICAgaWYgKHRoaXMuaW5zZXJ0ZWQuaGFzKGhhc2gpKSByZXR1cm47XHJcblxyXG4gICAgY29uc3QgZWxlbWVudCA9IGNvbnRlbnRTdHJhdGVneS5pbnNlcnRFbGVtZW50KCk7XHJcbiAgICB0aGlzLmluc2VydGVkLmFkZChoYXNoKTtcclxuXHJcbiAgICByZXR1cm4gZWxlbWVudDtcclxuICB9XHJcblxyXG4gIHJlbW92ZUNvbnRlbnQoZWxlbWVudDogSFRNTFNjcmlwdEVsZW1lbnQgfCBIVE1MU3R5bGVFbGVtZW50KSB7XHJcbiAgICBpZiAoZWxlbWVudC50ZXh0Q29udGVudCkge1xyXG4gICAgICBjb25zdCBoYXNoID0gZ2VuZXJhdGVIYXNoKGVsZW1lbnQudGV4dENvbnRlbnQpO1xyXG4gICAgICB0aGlzLmluc2VydGVkLmRlbGV0ZShoYXNoKTtcclxuICAgICAgZWxlbWVudC5wYXJlbnROb2RlPy5yZW1vdmVDaGlsZChlbGVtZW50KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhhcyhjb250ZW50OiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGhhc2ggPSBnZW5lcmF0ZUhhc2goY29udGVudCk7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaW5zZXJ0ZWQuaGFzKGhhc2gpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,54 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { map } from 'rxjs/operators';
3
- import { InternalStore } from '../utils/internal-store-utils';
4
- import * as i0 from "@angular/core";
5
- const mapToApiUrl = (key) => (apis) => ((key && apis[key]) || apis.default).url || apis.default.url;
6
- const mapToIssuer = (issuer) => {
7
- if (!issuer) {
8
- return issuer;
9
- }
10
- return issuer.endsWith('/') ? issuer : issuer + '/';
11
- };
12
- export class EnvironmentService {
13
- constructor() {
14
- this.store = new InternalStore({});
15
- }
16
- get createOnUpdateStream() {
17
- return this.store.sliceUpdate;
18
- }
19
- getEnvironment$() {
20
- return this.store.sliceState(state => state);
21
- }
22
- getEnvironment() {
23
- return this.store.state;
24
- }
25
- getApiUrl(key) {
26
- return mapToApiUrl(key)(this.store.state?.apis);
27
- }
28
- getApiUrl$(key) {
29
- return this.store.sliceState(state => state.apis).pipe(map(mapToApiUrl(key)));
30
- }
31
- setState(environment) {
32
- this.store.set(environment);
33
- }
34
- getIssuer() {
35
- const issuer = this.store.state?.oAuthConfig?.issuer;
36
- return mapToIssuer(issuer);
37
- }
38
- getIssuer$() {
39
- return this.store.sliceState(state => state?.oAuthConfig?.issuer).pipe(map(mapToIssuer));
40
- }
41
- getImpersonation() {
42
- return this.store.state?.oAuthConfig?.impersonation || {};
43
- }
44
- getImpersonation$() {
45
- return this.store.sliceState(state => state?.oAuthConfig?.impersonation || {});
46
- }
47
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: EnvironmentService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
48
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: EnvironmentService, providedIn: 'root' }); }
49
- }
50
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: EnvironmentService, decorators: [{
51
- type: Injectable,
52
- args: [{ providedIn: 'root' }]
53
- }] });
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi9zZXJ2aWNlcy9lbnZpcm9ubWVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUFFOUQsTUFBTSxXQUFXLEdBQUcsQ0FBQyxHQUF1QixFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQVUsRUFBRSxFQUFFLENBQzlELENBQUMsQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztBQUUvRCxNQUFNLFdBQVcsR0FBRyxDQUFDLE1BQTBCLEVBQUUsRUFBRTtJQUNqRCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUM7QUFDdEQsQ0FBQyxDQUFDO0FBR0YsTUFBTSxPQUFPLGtCQUFrQjtJQUQvQjtRQUVtQixVQUFLLEdBQUcsSUFBSSxhQUFhLENBQUMsRUFBaUIsQ0FBQyxDQUFDO0tBMkMvRDtJQXpDQyxJQUFJLG9CQUFvQjtRQUN0QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxjQUFjO1FBQ1osT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztJQUMxQixDQUFDO0lBRUQsU0FBUyxDQUFDLEdBQXVCO1FBQy9CLE9BQU8sV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxVQUFVLENBQUMsR0FBVztRQUNwQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBRUQsUUFBUSxDQUFDLFdBQXdCO1FBQy9CLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxTQUFTO1FBQ1AsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sQ0FBQztRQUVyRCxPQUFPLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUMzRixDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxXQUFXLEVBQUUsYUFBYSxJQUFJLEVBQUUsQ0FBQztJQUM1RCxDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxXQUFXLEVBQUUsYUFBYSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7OEdBM0NVLGtCQUFrQjtrSEFBbEIsa0JBQWtCLGNBREwsTUFBTTs7MkZBQ25CLGtCQUFrQjtrQkFEOUIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBBcGlzLCBFbnZpcm9ubWVudCB9IGZyb20gJy4uL21vZGVscy9lbnZpcm9ubWVudCc7XHJcbmltcG9ydCB7IEludGVybmFsU3RvcmUgfSBmcm9tICcuLi91dGlscy9pbnRlcm5hbC1zdG9yZS11dGlscyc7XHJcblxyXG5jb25zdCBtYXBUb0FwaVVybCA9IChrZXk6IHN0cmluZyB8IHVuZGVmaW5lZCkgPT4gKGFwaXM6IEFwaXMpID0+XHJcbiAgKChrZXkgJiYgYXBpc1trZXldKSB8fCBhcGlzLmRlZmF1bHQpLnVybCB8fCBhcGlzLmRlZmF1bHQudXJsO1xyXG5cclxuY29uc3QgbWFwVG9Jc3N1ZXIgPSAoaXNzdWVyOiBzdHJpbmcgfCB1bmRlZmluZWQpID0+IHtcclxuICBpZiAoIWlzc3Vlcikge1xyXG4gICAgcmV0dXJuIGlzc3VlcjtcclxuICB9XHJcbiAgcmV0dXJuIGlzc3Vlci5lbmRzV2l0aCgnLycpID8gaXNzdWVyIDogaXNzdWVyICsgJy8nO1xyXG59O1xyXG5cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuZXhwb3J0IGNsYXNzIEVudmlyb25tZW50U2VydmljZSB7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBzdG9yZSA9IG5ldyBJbnRlcm5hbFN0b3JlKHt9IGFzIEVudmlyb25tZW50KTtcclxuXHJcbiAgZ2V0IGNyZWF0ZU9uVXBkYXRlU3RyZWFtKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc2xpY2VVcGRhdGU7XHJcbiAgfVxyXG5cclxuICBnZXRFbnZpcm9ubWVudCQoKTogT2JzZXJ2YWJsZTxFbnZpcm9ubWVudD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc2xpY2VTdGF0ZShzdGF0ZSA9PiBzdGF0ZSk7XHJcbiAgfVxyXG5cclxuICBnZXRFbnZpcm9ubWVudCgpOiBFbnZpcm9ubWVudCB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zdGF0ZTtcclxuICB9XHJcblxyXG4gIGdldEFwaVVybChrZXk6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xyXG4gICAgcmV0dXJuIG1hcFRvQXBpVXJsKGtleSkodGhpcy5zdG9yZS5zdGF0ZT8uYXBpcyk7XHJcbiAgfVxyXG5cclxuICBnZXRBcGlVcmwkKGtleTogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zbGljZVN0YXRlKHN0YXRlID0+IHN0YXRlLmFwaXMpLnBpcGUobWFwKG1hcFRvQXBpVXJsKGtleSkpKTtcclxuICB9XHJcblxyXG4gIHNldFN0YXRlKGVudmlyb25tZW50OiBFbnZpcm9ubWVudCkge1xyXG4gICAgdGhpcy5zdG9yZS5zZXQoZW52aXJvbm1lbnQpO1xyXG4gIH1cclxuXHJcbiAgZ2V0SXNzdWVyKCkge1xyXG4gICAgY29uc3QgaXNzdWVyID0gdGhpcy5zdG9yZS5zdGF0ZT8ub0F1dGhDb25maWc/Lmlzc3VlcjtcclxuXHJcbiAgICByZXR1cm4gbWFwVG9Jc3N1ZXIoaXNzdWVyKTtcclxuICB9XHJcblxyXG4gIGdldElzc3VlciQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zbGljZVN0YXRlKHN0YXRlID0+IHN0YXRlPy5vQXV0aENvbmZpZz8uaXNzdWVyKS5waXBlKG1hcChtYXBUb0lzc3VlcikpO1xyXG4gIH1cclxuXHJcbiAgZ2V0SW1wZXJzb25hdGlvbigpIHtcclxuICAgIHJldHVybiB0aGlzLnN0b3JlLnN0YXRlPy5vQXV0aENvbmZpZz8uaW1wZXJzb25hdGlvbiB8fCB7fTtcclxuICB9XHJcblxyXG4gIGdldEltcGVyc29uYXRpb24kKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc2xpY2VTdGF0ZShzdGF0ZSA9PiBzdGF0ZT8ub0F1dGhDb25maWc/LmltcGVyc29uYXRpb24gfHwge30pO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,29 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { BehaviorSubject, Subject } from 'rxjs';
3
- import * as i0 from "@angular/core";
4
- export class HttpErrorReporterService {
5
- constructor() {
6
- this._reporter$ = new Subject();
7
- this._errors$ = new BehaviorSubject([]);
8
- }
9
- get reporter$() {
10
- return this._reporter$.asObservable();
11
- }
12
- get errors$() {
13
- return this._errors$.asObservable();
14
- }
15
- get errors() {
16
- return this._errors$.value;
17
- }
18
- reportError(error) {
19
- this._reporter$.next(error);
20
- this._errors$.next([...this.errors, error]);
21
- }
22
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: HttpErrorReporterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
23
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: HttpErrorReporterService, providedIn: 'root' }); }
24
- }
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: HttpErrorReporterService, decorators: [{
26
- type: Injectable,
27
- args: [{ providedIn: 'root' }]
28
- }] });
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1lcnJvci1yZXBvcnRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3NlcnZpY2VzL2h0dHAtZXJyb3ItcmVwb3J0ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUdoRCxNQUFNLE9BQU8sd0JBQXdCO0lBRHJDO1FBRVUsZUFBVSxHQUFHLElBQUksT0FBTyxFQUFxQixDQUFDO1FBQzlDLGFBQVEsR0FBRyxJQUFJLGVBQWUsQ0FBc0IsRUFBRSxDQUFDLENBQUM7S0FrQmpFO0lBaEJDLElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFRCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO0lBQzdCLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBd0I7UUFDbEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUM5QyxDQUFDOzhHQW5CVSx3QkFBd0I7a0hBQXhCLHdCQUF3QixjQURYLE1BQU07OzJGQUNuQix3QkFBd0I7a0JBRHBDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgSHR0cEVycm9yUmVwb3J0ZXJTZXJ2aWNlIHtcclxuICBwcml2YXRlIF9yZXBvcnRlciQgPSBuZXcgU3ViamVjdDxIdHRwRXJyb3JSZXNwb25zZT4oKTtcclxuICBwcml2YXRlIF9lcnJvcnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxIdHRwRXJyb3JSZXNwb25zZVtdPihbXSk7XHJcblxyXG4gIGdldCByZXBvcnRlciQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fcmVwb3J0ZXIkLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGVycm9ycyQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZXJyb3JzJC5hc09ic2VydmFibGUoKTtcclxuICB9XHJcblxyXG4gIGdldCBlcnJvcnMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZXJyb3JzJC52YWx1ZTtcclxuICB9XHJcblxyXG4gIHJlcG9ydEVycm9yKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkge1xyXG4gICAgdGhpcy5fcmVwb3J0ZXIkLm5leHQoZXJyb3IpO1xyXG4gICAgdGhpcy5fZXJyb3JzJC5uZXh0KFsuLi50aGlzLmVycm9ycywgZXJyb3JdKTtcclxuICB9XHJcbn1cclxuIl19
@@ -1,75 +0,0 @@
1
- import { Injectable, Injector } from '@angular/core';
2
- import { InternalStore } from '../utils/internal-store-utils';
3
- import { getPathName } from '../utils/http-utils';
4
- import { map, mapTo, switchMap, takeUntil, tap } from 'rxjs/operators';
5
- import { of, Subject, timer } from 'rxjs';
6
- import { LOADER_DELAY } from '../tokens/lodaer-delay.token';
7
- import * as i0 from "@angular/core";
8
- export class HttpWaitService {
9
- constructor(injector) {
10
- this.store = new InternalStore({
11
- requests: [],
12
- filteredRequests: [],
13
- });
14
- this.destroy$ = new Subject();
15
- this.delay = injector.get(LOADER_DELAY, 500);
16
- }
17
- getLoading() {
18
- return !!this.applyFilter(this.store.state.requests).length;
19
- }
20
- getLoading$() {
21
- return this.store
22
- .sliceState(({ requests }) => requests)
23
- .pipe(map(requests => !!this.applyFilter(requests).length), switchMap(condition => condition
24
- ? this.delay === 0
25
- ? of(true)
26
- : timer(this.delay).pipe(mapTo(true), takeUntil(this.destroy$))
27
- : of(false)), tap(() => this.destroy$.next()));
28
- }
29
- updateLoading$() {
30
- return this.store.sliceUpdate(({ requests }) => !!this.applyFilter(requests).length);
31
- }
32
- clearLoading() {
33
- this.store.patch({ requests: [] });
34
- }
35
- addRequest(request) {
36
- this.store.patch({ requests: [...this.store.state.requests, request] });
37
- }
38
- deleteRequest(request) {
39
- const requests = this.store.state.requests.filter(r => r !== request);
40
- this.store.patch({ requests });
41
- }
42
- addFilter(request) {
43
- const requests = Array.isArray(request) ? request : [request];
44
- const filteredRequests = [
45
- ...this.store.state.filteredRequests.filter(f => !requests.some(r => this.isSameRequest(f, r))),
46
- ...requests,
47
- ];
48
- this.store.patch({ filteredRequests });
49
- }
50
- removeFilter(request) {
51
- const requests = Array.isArray(request) ? request : [request];
52
- const filteredRequests = this.store.state.filteredRequests.filter(f => !requests.some(r => this.isSameRequest(f, r)));
53
- this.store.patch({ filteredRequests });
54
- }
55
- applyFilter(requests) {
56
- if (!requests) {
57
- return [];
58
- }
59
- const { filteredRequests } = this.store.state;
60
- return requests.filter(({ method, url }) => !filteredRequests.find(filteredRequest => this.isSameRequest(filteredRequest, { method, endpoint: getPathName(url) })));
61
- }
62
- isSameRequest(filteredRequest, request) {
63
- const { method, endpoint } = filteredRequest;
64
- return endpoint === request.endpoint && method === request.method;
65
- }
66
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: HttpWaitService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
67
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: HttpWaitService, providedIn: 'root' }); }
68
- }
69
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: HttpWaitService, decorators: [{
70
- type: Injectable,
71
- args: [{
72
- providedIn: 'root',
73
- }]
74
- }], ctorParameters: () => [{ type: i0.Injector }] });
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC13YWl0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvc2VydmljZXMvaHR0cC13YWl0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzlELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBYTVELE1BQU0sT0FBTyxlQUFlO0lBUzFCLFlBQVksUUFBa0I7UUFScEIsVUFBSyxHQUFHLElBQUksYUFBYSxDQUFnQjtZQUNqRCxRQUFRLEVBQUUsRUFBRTtZQUNaLGdCQUFnQixFQUFFLEVBQUU7U0FDckIsQ0FBQyxDQUFDO1FBR0ssYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFHckMsSUFBSSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxHQUFHLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQzlELENBQUM7SUFFRCxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUMsS0FBSzthQUNkLFVBQVUsQ0FB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Q0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQ25ELENBQUM7UUFDRixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRU8sV0FBVyxDQUFDLFFBQXdDO1FBQzFELElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNkLE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztRQUNELE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQzlDLE9BQU8sUUFBUSxDQUFDLE1BQU0sQ0FDcEIsQ0FBQyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQ2xCLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQ3ZDLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxFQUFFLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxXQUFXLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUM1RSxDQUNKLENBQUM7SUFDSixDQUFDO0lBRU8sYUFBYSxDQUFDLGVBQWdDLEVBQUUsT0FBd0I7UUFDOUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxlQUFlLENBQUM7UUFDN0MsT0FBTyxRQUFRLEtBQUssT0FBTyxDQUFDLFFBQVEsSUFBSSxNQUFNLEtBQUssT0FBTyxDQUFDLE1BQU0sQ0FBQztJQUNwRSxDQUFDOzhHQXJGVSxlQUFlO2tIQUFmLGVBQWUsY0FGZCxNQUFNOzsyRkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBSZXF1ZXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbnRlcm5hbFN0b3JlIH0gZnJvbSAnLi4vdXRpbHMvaW50ZXJuYWwtc3RvcmUtdXRpbHMnO1xyXG5pbXBvcnQgeyBnZXRQYXRoTmFtZSB9IGZyb20gJy4uL3V0aWxzL2h0dHAtdXRpbHMnO1xyXG5pbXBvcnQgeyBtYXAsIG1hcFRvLCBzd2l0Y2hNYXAsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBvZiwgU3ViamVjdCwgdGltZXIgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgTE9BREVSX0RFTEFZIH0gZnJvbSAnLi4vdG9rZW5zL2xvZGFlci1kZWxheS50b2tlbic7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEh0dHBXYWl0U3RhdGUge1xyXG4gIHJlcXVlc3RzOiBIdHRwUmVxdWVzdDxhbnk+W107XHJcbiAgZmlsdGVyZWRSZXF1ZXN0czogQXJyYXk8SHR0cFJlcXVlc3RJbmZvPjtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEh0dHBSZXF1ZXN0SW5mbyB7XHJcbiAgbWV0aG9kOiBzdHJpbmc7XHJcbiAgZW5kcG9pbnQ6IHN0cmluZztcclxufVxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSHR0cFdhaXRTZXJ2aWNlIHtcclxuICBwcm90ZWN0ZWQgc3RvcmUgPSBuZXcgSW50ZXJuYWxTdG9yZTxIdHRwV2FpdFN0YXRlPih7XHJcbiAgICByZXF1ZXN0czogW10sXHJcbiAgICBmaWx0ZXJlZFJlcXVlc3RzOiBbXSxcclxuICB9KTtcclxuXHJcbiAgcHJpdmF0ZSBkZWxheTogbnVtYmVyO1xyXG4gIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihpbmplY3RvcjogSW5qZWN0b3IpIHtcclxuICAgIHRoaXMuZGVsYXkgPSBpbmplY3Rvci5nZXQoTE9BREVSX0RFTEFZLCA1MDApO1xyXG4gIH1cclxuXHJcbiAgZ2V0TG9hZGluZygpIHtcclxuICAgIHJldHVybiAhIXRoaXMuYXBwbHlGaWx0ZXIodGhpcy5zdG9yZS5zdGF0ZS5yZXF1ZXN0cykubGVuZ3RoO1xyXG4gIH1cclxuXHJcbiAgZ2V0TG9hZGluZyQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yZVxyXG4gICAgICAuc2xpY2VTdGF0ZSgoeyByZXF1ZXN0cyB9KSA9PiByZXF1ZXN0cylcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKHJlcXVlc3RzID0+ICEhdGhpcy5hcHBseUZpbHRlcihyZXF1ZXN0cykubGVuZ3RoKSxcclxuICAgICAgICBzd2l0Y2hNYXAoY29uZGl0aW9uID0+XHJcbiAgICAgICAgICBjb25kaXRpb25cclxuICAgICAgICAgICAgPyB0aGlzLmRlbGF5ID09PSAwXHJcbiAgICAgICAgICAgICAgPyBvZih0cnVlKVxyXG4gICAgICAgICAgICAgIDogdGltZXIodGhpcy5kZWxheSkucGlwZShtYXBUbyh0cnVlKSwgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAgICAgICA6IG9mKGZhbHNlKSxcclxuICAgICAgICApLFxyXG4gICAgICAgIHRhcCgoKSA9PiB0aGlzLmRlc3Ryb3kkLm5leHQoKSksXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVMb2FkaW5nJCgpIHtcclxuICAgIHJldHVybiB0aGlzLnN0b3JlLnNsaWNlVXBkYXRlKCh7IHJlcXVlc3RzIH0pID0+ICEhdGhpcy5hcHBseUZpbHRlcihyZXF1ZXN0cykubGVuZ3RoKTtcclxuICB9XHJcblxyXG4gIGNsZWFyTG9hZGluZygpIHtcclxuICAgIHRoaXMuc3RvcmUucGF0Y2goeyByZXF1ZXN0czogW10gfSk7XHJcbiAgfVxyXG5cclxuICBhZGRSZXF1ZXN0KHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PGFueT4pIHtcclxuICAgIHRoaXMuc3RvcmUucGF0Y2goeyByZXF1ZXN0czogWy4uLnRoaXMuc3RvcmUuc3RhdGUucmVxdWVzdHMsIHJlcXVlc3RdIH0pO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlUmVxdWVzdChyZXF1ZXN0OiBIdHRwUmVxdWVzdDxhbnk+KSB7XHJcbiAgICBjb25zdCByZXF1ZXN0cyA9IHRoaXMuc3RvcmUuc3RhdGUucmVxdWVzdHMuZmlsdGVyKHIgPT4gciAhPT0gcmVxdWVzdCk7XHJcbiAgICB0aGlzLnN0b3JlLnBhdGNoKHsgcmVxdWVzdHMgfSk7XHJcbiAgfVxyXG5cclxuICBhZGRGaWx0ZXIocmVxdWVzdDogSHR0cFJlcXVlc3RJbmZvIHwgSHR0cFJlcXVlc3RJbmZvW10pIHtcclxuICAgIGNvbnN0IHJlcXVlc3RzID0gQXJyYXkuaXNBcnJheShyZXF1ZXN0KSA/IHJlcXVlc3QgOiBbcmVxdWVzdF07XHJcbiAgICBjb25zdCBmaWx0ZXJlZFJlcXVlc3RzID0gW1xyXG4gICAgICAuLi50aGlzLnN0b3JlLnN0YXRlLmZpbHRlcmVkUmVxdWVzdHMuZmlsdGVyKFxyXG4gICAgICAgIGYgPT4gIXJlcXVlc3RzLnNvbWUociA9PiB0aGlzLmlzU2FtZVJlcXVlc3QoZiwgcikpLFxyXG4gICAgICApLFxyXG4gICAgICAuLi5yZXF1ZXN0cyxcclxuICAgIF07XHJcbiAgICB0aGlzLnN0b3JlLnBhdGNoKHsgZmlsdGVyZWRSZXF1ZXN0cyB9KTtcclxuICB9XHJcblxyXG4gIHJlbW92ZUZpbHRlcihyZXF1ZXN0OiBIdHRwUmVxdWVzdEluZm8gfCBIdHRwUmVxdWVzdEluZm9bXSkge1xyXG4gICAgY29uc3QgcmVxdWVzdHMgPSBBcnJheS5pc0FycmF5KHJlcXVlc3QpID8gcmVxdWVzdCA6IFtyZXF1ZXN0XTtcclxuICAgIGNvbnN0IGZpbHRlcmVkUmVxdWVzdHMgPSB0aGlzLnN0b3JlLnN0YXRlLmZpbHRlcmVkUmVxdWVzdHMuZmlsdGVyKFxyXG4gICAgICBmID0+ICFyZXF1ZXN0cy5zb21lKHIgPT4gdGhpcy5pc1NhbWVSZXF1ZXN0KGYsIHIpKSxcclxuICAgICk7XHJcbiAgICB0aGlzLnN0b3JlLnBhdGNoKHsgZmlsdGVyZWRSZXF1ZXN0cyB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXBwbHlGaWx0ZXIocmVxdWVzdHM6IEh0dHBSZXF1ZXN0PGFueT5bXSB8IHVuZGVmaW5lZCkge1xyXG4gICAgaWYgKCFyZXF1ZXN0cykge1xyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcbiAgICBjb25zdCB7IGZpbHRlcmVkUmVxdWVzdHMgfSA9IHRoaXMuc3RvcmUuc3RhdGU7XHJcbiAgICByZXR1cm4gcmVxdWVzdHMuZmlsdGVyKFxyXG4gICAgICAoeyBtZXRob2QsIHVybCB9KSA9PlxyXG4gICAgICAgICFmaWx0ZXJlZFJlcXVlc3RzLmZpbmQoZmlsdGVyZWRSZXF1ZXN0ID0+XHJcbiAgICAgICAgICB0aGlzLmlzU2FtZVJlcXVlc3QoZmlsdGVyZWRSZXF1ZXN0LCB7IG1ldGhvZCwgZW5kcG9pbnQ6IGdldFBhdGhOYW1lKHVybCkgfSksXHJcbiAgICAgICAgKSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzU2FtZVJlcXVlc3QoZmlsdGVyZWRSZXF1ZXN0OiBIdHRwUmVxdWVzdEluZm8sIHJlcXVlc3Q6IEh0dHBSZXF1ZXN0SW5mbykge1xyXG4gICAgY29uc3QgeyBtZXRob2QsIGVuZHBvaW50IH0gPSBmaWx0ZXJlZFJlcXVlc3Q7XHJcbiAgICByZXR1cm4gZW5kcG9pbnQgPT09IHJlcXVlc3QuZW5kcG9pbnQgJiYgbWV0aG9kID09PSByZXF1ZXN0Lm1ldGhvZDtcclxuICB9XHJcbn1cclxuIl19
@@ -1,26 +0,0 @@
1
- export * from './config-state.service';
2
- export * from './content-projection.service';
3
- export * from './dom-insertion.service';
4
- export * from './environment.service';
5
- export * from './http-error-reporter.service';
6
- export * from './http-wait.service';
7
- export * from './lazy-load.service';
8
- export * from './list.service';
9
- export * from './localization.service';
10
- export * from './multi-tenancy.service';
11
- export * from './permission.service';
12
- export * from './replaceable-components.service';
13
- export * from './resource-wait.service';
14
- export * from './rest.service';
15
- export * from './router-events.service';
16
- export * from './router-wait.service';
17
- export * from './routes.service';
18
- export * from './session-state.service';
19
- export * from './subscription.service';
20
- export * from './track-by.service';
21
- export * from './local-storage.service';
22
- export * from './window.service';
23
- export * from './internet-connection-service';
24
- export * from './local-storage-listener.service';
25
- export * from './title-strategy.service';
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvc2VydmljZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYywwQkFBMEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY29uZmlnLXN0YXRlLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NvbnRlbnQtcHJvamVjdGlvbi5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9kb20taW5zZXJ0aW9uLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2Vudmlyb25tZW50LnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2h0dHAtZXJyb3ItcmVwb3J0ZXIuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vaHR0cC13YWl0LnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xhenktbG9hZC5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saXN0LnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xvY2FsaXphdGlvbi5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9tdWx0aS10ZW5hbmN5LnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3Blcm1pc3Npb24uc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcmVwbGFjZWFibGUtY29tcG9uZW50cy5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9yZXNvdXJjZS13YWl0LnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3Jlc3Quc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcm91dGVyLWV2ZW50cy5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9yb3V0ZXItd2FpdC5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9yb3V0ZXMuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc2Vzc2lvbi1zdGF0ZS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9zdWJzY3JpcHRpb24uc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vdHJhY2stYnkuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbG9jYWwtc3RvcmFnZS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi93aW5kb3cuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJuZXQtY29ubmVjdGlvbi1zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9sb2NhbC1zdG9yYWdlLWxpc3RlbmVyLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3RpdGxlLXN0cmF0ZWd5LnNlcnZpY2UnO1xyXG4iXX0=
@@ -1,32 +0,0 @@
1
- import { DOCUMENT } from '@angular/common';
2
- import { Injectable, computed, inject, signal } from '@angular/core';
3
- import { BehaviorSubject } from 'rxjs';
4
- import * as i0 from "@angular/core";
5
- export class InternetConnectionService {
6
- constructor() {
7
- this.document = inject(DOCUMENT);
8
- this.window = this.document.defaultView;
9
- this.navigator = this.window.navigator;
10
- this.status$ = new BehaviorSubject(this.navigator.onLine);
11
- this.status = signal(this.navigator.onLine);
12
- this.networkStatus = computed(() => this.status());
13
- this.window.addEventListener('offline', () => this.setStatus(false));
14
- this.window.addEventListener('online', () => this.setStatus(true));
15
- }
16
- setStatus(val) {
17
- this.status.set(val);
18
- this.status$.next(val);
19
- }
20
- get networkStatus$() {
21
- return this.status$.asObservable();
22
- }
23
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: InternetConnectionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
24
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: InternetConnectionService, providedIn: 'root' }); }
25
- }
26
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: InternetConnectionService, decorators: [{
27
- type: Injectable,
28
- args: [{
29
- providedIn: 'root',
30
- }]
31
- }], ctorParameters: () => [] });
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuZXQtY29ubmVjdGlvbi1zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3NlcnZpY2VzL2ludGVybmV0LWNvbm5lY3Rpb24tc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUt2QyxNQUFNLE9BQU8seUJBQXlCO0lBV3BDO1FBVlMsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM1QixXQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUM7UUFDbkMsY0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDO1FBRW5DLFlBQU8sR0FBRyxJQUFJLGVBQWUsQ0FBVSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTlELFdBQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUUvQyxrQkFBYSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUc1QyxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDckUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFRCxTQUFTLENBQUMsR0FBWTtRQUNwQixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNyQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNyQyxDQUFDOzhHQXZCVSx5QkFBeUI7a0hBQXpCLHlCQUF5QixjQUZ4QixNQUFNOzsyRkFFUCx5QkFBeUI7a0JBSHJDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBjb21wdXRlZCwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW50ZXJuZXRDb25uZWN0aW9uU2VydmljZSB7XHJcbiAgcmVhZG9ubHkgZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xyXG4gIHJlYWRvbmx5IHdpbmRvdyA9IHRoaXMuZG9jdW1lbnQuZGVmYXVsdFZpZXc7XHJcbiAgcmVhZG9ubHkgbmF2aWdhdG9yID0gdGhpcy53aW5kb3cubmF2aWdhdG9yO1xyXG5cclxuICBwcml2YXRlIHN0YXR1cyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRoaXMubmF2aWdhdG9yLm9uTGluZSk7XHJcblxyXG4gIHByaXZhdGUgc3RhdHVzID0gc2lnbmFsKHRoaXMubmF2aWdhdG9yLm9uTGluZSk7XHJcblxyXG4gIG5ldHdvcmtTdGF0dXMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnN0YXR1cygpKTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLndpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdvZmZsaW5lJywgKCkgPT4gdGhpcy5zZXRTdGF0dXMoZmFsc2UpKTtcclxuICAgIHRoaXMud2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ29ubGluZScsICgpID0+IHRoaXMuc2V0U3RhdHVzKHRydWUpKTtcclxuICB9XHJcblxyXG4gIHNldFN0YXR1cyh2YWw6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuc3RhdHVzLnNldCh2YWwpO1xyXG4gICAgdGhpcy5zdGF0dXMkLm5leHQodmFsKTtcclxuICB9XHJcblxyXG4gIGdldCBuZXR3b3JrU3RhdHVzJCgpIHtcclxuICAgIHJldHVybiB0aGlzLnN0YXR1cyQuYXNPYnNlcnZhYmxlKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,40 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { concat, of, pipe, throwError } from 'rxjs';
3
- import { delay, retryWhen, shareReplay, take, tap } from 'rxjs/operators';
4
- import { ResourceWaitService } from './resource-wait.service';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "./resource-wait.service";
7
- export class LazyLoadService {
8
- constructor(resourceWaitService) {
9
- this.resourceWaitService = resourceWaitService;
10
- this.loaded = new Map();
11
- }
12
- load(strategy, retryTimes, retryDelay) {
13
- if (this.loaded.has(strategy.path))
14
- return of(new CustomEvent('load'));
15
- this.resourceWaitService.addResource(strategy.path);
16
- const delayOperator = retryDelay ? pipe(delay(retryDelay)) : pipe();
17
- const takeOp = retryTimes ? pipe(take(retryTimes)) : pipe();
18
- return strategy.createStream().pipe(retryWhen(error$ => concat(error$.pipe(delayOperator, takeOp), throwError(() => new CustomEvent('error')))), tap(() => {
19
- this.loaded.set(strategy.path, strategy.element);
20
- this.resourceWaitService.deleteResource(strategy.path);
21
- }), delay(100), shareReplay({ bufferSize: 1, refCount: true }));
22
- }
23
- remove(path) {
24
- const element = this.loaded.get(path);
25
- if (!element)
26
- return false;
27
- element.parentNode?.removeChild(element);
28
- this.loaded.delete(path);
29
- return true;
30
- }
31
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: LazyLoadService, deps: [{ token: i1.ResourceWaitService }], target: i0.ɵɵFactoryTarget.Injectable }); }
32
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: LazyLoadService, providedIn: 'root' }); }
33
- }
34
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: LazyLoadService, decorators: [{
35
- type: Injectable,
36
- args: [{
37
- providedIn: 'root',
38
- }]
39
- }], ctorParameters: () => [{ type: i1.ResourceWaitService }] });
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1sb2FkLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvc2VydmljZXMvbGF6eS1sb2FkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFjLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFMUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7OztBQUs5RCxNQUFNLE9BQU8sZUFBZTtJQUcxQixZQUFvQixtQkFBd0M7UUFBeEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUZuRCxXQUFNLEdBQUcsSUFBSSxHQUFHLEVBQXNELENBQUM7SUFFakIsQ0FBQztJQUVoRSxJQUFJLENBQUMsUUFBeUIsRUFBRSxVQUFtQixFQUFFLFVBQW1CO1FBQ3RFLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztZQUFFLE9BQU8sRUFBRSxDQUFDLElBQUksV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDdkUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEQsTUFBTSxhQUFhLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3BFLE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM1RCxPQUFPLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQ2pDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUNqQixNQUFNLENBQ0osTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLEVBQ2xDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUMzQyxDQUNGLEVBQ0QsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNQLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2pELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pELENBQUMsQ0FBQyxFQUNGLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFDVixXQUFXLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUMvQyxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxJQUFZO1FBQ2pCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXRDLElBQUksQ0FBQyxPQUFPO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFFM0IsT0FBTyxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOzhHQWxDVSxlQUFlO2tIQUFmLGVBQWUsY0FGZCxNQUFNOzsyRkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgY29uY2F0LCBPYnNlcnZhYmxlLCBvZiwgcGlwZSwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWxheSwgcmV0cnlXaGVuLCBzaGFyZVJlcGxheSwgdGFrZSwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBMb2FkaW5nU3RyYXRlZ3kgfSBmcm9tICcuLi9zdHJhdGVnaWVzJztcclxuaW1wb3J0IHsgUmVzb3VyY2VXYWl0U2VydmljZSB9IGZyb20gJy4vcmVzb3VyY2Utd2FpdC5zZXJ2aWNlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMYXp5TG9hZFNlcnZpY2Uge1xyXG4gIHJlYWRvbmx5IGxvYWRlZCA9IG5ldyBNYXA8c3RyaW5nLCBIVE1MU2NyaXB0RWxlbWVudCB8IEhUTUxMaW5rRWxlbWVudCB8IG51bGw+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVzb3VyY2VXYWl0U2VydmljZTogUmVzb3VyY2VXYWl0U2VydmljZSkge31cclxuXHJcbiAgbG9hZChzdHJhdGVneTogTG9hZGluZ1N0cmF0ZWd5LCByZXRyeVRpbWVzPzogbnVtYmVyLCByZXRyeURlbGF5PzogbnVtYmVyKTogT2JzZXJ2YWJsZTxFdmVudD4ge1xyXG4gICAgaWYgKHRoaXMubG9hZGVkLmhhcyhzdHJhdGVneS5wYXRoKSkgcmV0dXJuIG9mKG5ldyBDdXN0b21FdmVudCgnbG9hZCcpKTtcclxuICAgIHRoaXMucmVzb3VyY2VXYWl0U2VydmljZS5hZGRSZXNvdXJjZShzdHJhdGVneS5wYXRoKTtcclxuICAgIGNvbnN0IGRlbGF5T3BlcmF0b3IgPSByZXRyeURlbGF5ID8gcGlwZShkZWxheShyZXRyeURlbGF5KSkgOiBwaXBlKCk7XHJcbiAgICBjb25zdCB0YWtlT3AgPSByZXRyeVRpbWVzID8gcGlwZSh0YWtlKHJldHJ5VGltZXMpKSA6IHBpcGUoKTtcclxuICAgIHJldHVybiBzdHJhdGVneS5jcmVhdGVTdHJlYW0oKS5waXBlKFxyXG4gICAgICByZXRyeVdoZW4oZXJyb3IkID0+XHJcbiAgICAgICAgY29uY2F0KFxyXG4gICAgICAgICAgZXJyb3IkLnBpcGUoZGVsYXlPcGVyYXRvciwgdGFrZU9wKSxcclxuICAgICAgICAgIHRocm93RXJyb3IoKCkgPT4gbmV3IEN1c3RvbUV2ZW50KCdlcnJvcicpKSxcclxuICAgICAgICApLFxyXG4gICAgICApLFxyXG4gICAgICB0YXAoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMubG9hZGVkLnNldChzdHJhdGVneS5wYXRoLCBzdHJhdGVneS5lbGVtZW50KTtcclxuICAgICAgICB0aGlzLnJlc291cmNlV2FpdFNlcnZpY2UuZGVsZXRlUmVzb3VyY2Uoc3RyYXRlZ3kucGF0aCk7XHJcbiAgICAgIH0pLFxyXG4gICAgICBkZWxheSgxMDApLFxyXG4gICAgICBzaGFyZVJlcGxheSh7IGJ1ZmZlclNpemU6IDEsIHJlZkNvdW50OiB0cnVlIH0pLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHJlbW92ZShwYXRoOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmxvYWRlZC5nZXQocGF0aCk7XHJcblxyXG4gICAgaWYgKCFlbGVtZW50KSByZXR1cm4gZmFsc2U7XHJcblxyXG4gICAgZWxlbWVudC5wYXJlbnROb2RlPy5yZW1vdmVDaGlsZChlbGVtZW50KTtcclxuICAgIHRoaXMubG9hZGVkLmRlbGV0ZShwYXRoKTtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxufVxyXG4iXX0=