@igo2/core 18.0.1-next.2 → 18.0.2
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.
- package/config/config.service.d.ts +1 -1
- package/esm2022/activity/activity.interceptor.mjs +32 -0
- package/esm2022/activity/activity.module.mjs +30 -0
- package/esm2022/activity/activity.service.mjs +31 -0
- package/esm2022/activity/igo2-core-activity.mjs +5 -0
- package/esm2022/activity/public_api.mjs +4 -0
- package/esm2022/analytics/analytics.interface.mjs +2 -0
- package/esm2022/analytics/analytics.service.mjs +88 -0
- package/esm2022/analytics/igo2-core-analytics.mjs +5 -0
- package/esm2022/analytics/public_api.mjs +3 -0
- package/esm2022/config/config-deprecated.mjs +27 -0
- package/esm2022/config/config.interface.mjs +2 -0
- package/esm2022/config/config.module.mjs +26 -0
- package/esm2022/config/config.provider.mjs +21 -0
- package/esm2022/config/config.service.mjs +98 -0
- package/esm2022/config/igo2-core-config.mjs +5 -0
- package/esm2022/config/public_api.mjs +6 -0
- package/esm2022/config/version.mjs +5 -0
- package/esm2022/environment/environment.interface.mjs +2 -0
- package/esm2022/environment/igo2-core-environment.mjs +5 -0
- package/esm2022/environment/public_api.mjs +2 -0
- package/esm2022/gesture/gesture.module.mjs +29 -0
- package/esm2022/gesture/gesture.provider.mjs +16 -0
- package/esm2022/gesture/igo2-core-gesture.mjs +5 -0
- package/esm2022/gesture/public_api.mjs +3 -0
- package/esm2022/igo2-core.mjs +5 -0
- package/esm2022/language/igo2-core-language.mjs +5 -0
- package/esm2022/language/language.module.mjs +15 -0
- package/esm2022/language/public_api.mjs +3 -0
- package/esm2022/language/shared/index.mjs +7 -0
- package/esm2022/language/shared/language-mock.provider.mjs +13 -0
- package/esm2022/language/shared/language.interface.mjs +3 -0
- package/esm2022/language/shared/language.loader.mjs +53 -0
- package/esm2022/language/shared/language.provider.mjs +85 -0
- package/esm2022/language/shared/language.service.mjs +47 -0
- package/esm2022/language/shared/missing-translation.guard.mjs +16 -0
- package/esm2022/lib/core.module.mjs +38 -0
- package/esm2022/media/igo2-core-media.mjs +5 -0
- package/esm2022/media/media.enum.mjs +12 -0
- package/esm2022/media/media.service.mjs +82 -0
- package/esm2022/media/public_api.mjs +3 -0
- package/esm2022/message/igo2-core-message.mjs +5 -0
- package/esm2022/message/message.module.mjs +26 -0
- package/esm2022/message/public_api.mjs +3 -0
- package/esm2022/message/shared/index.mjs +5 -0
- package/esm2022/message/shared/message.enum.mjs +11 -0
- package/esm2022/message/shared/message.interface.mjs +2 -0
- package/esm2022/message/shared/message.provider.mjs +22 -0
- package/esm2022/message/shared/message.service.mjs +225 -0
- package/esm2022/monitoring/__mocks__/index.mjs +2 -0
- package/esm2022/monitoring/__mocks__/monitoring-mock.mjs +7 -0
- package/esm2022/monitoring/igo2-core-monitoring.mjs +5 -0
- package/esm2022/monitoring/monitoring.provider.mjs +20 -0
- package/esm2022/monitoring/public_api.mjs +5 -0
- package/esm2022/monitoring/sentry/index.mjs +4 -0
- package/esm2022/monitoring/sentry/sentry.interface.mjs +2 -0
- package/esm2022/monitoring/sentry/sentry.mjs +23 -0
- package/esm2022/monitoring/sentry/sentry.provider.mjs +31 -0
- package/esm2022/monitoring/sentry/sentry.utils.mjs +13 -0
- package/esm2022/monitoring/shared/any-monitoring.interface.mjs +2 -0
- package/esm2022/monitoring/shared/index.mjs +3 -0
- package/esm2022/monitoring/shared/monitoring.interface.mjs +2 -0
- package/esm2022/network/igo2-core-network.mjs +5 -0
- package/esm2022/network/network.interfaces.mjs +2 -0
- package/esm2022/network/network.service.mjs +68 -0
- package/esm2022/network/public_api.mjs +3 -0
- package/esm2022/public_api.mjs +7 -0
- package/esm2022/regex/igo2-core-regex.mjs +5 -0
- package/esm2022/regex/public_api.mjs +3 -0
- package/esm2022/regex/regex.interface.mjs +2 -0
- package/esm2022/regex/regex.service.mjs +30 -0
- package/esm2022/request/error.interceptor.mjs +72 -0
- package/esm2022/request/error.module.mjs +39 -0
- package/esm2022/request/igo2-core-request.mjs +5 -0
- package/esm2022/request/logging.interceptor.mjs +29 -0
- package/esm2022/request/logging.module.mjs +30 -0
- package/esm2022/request/public_api.mjs +5 -0
- package/esm2022/route/igo2-core-route.mjs +5 -0
- package/esm2022/route/public_api.mjs +3 -0
- package/esm2022/route/route.interface.mjs +2 -0
- package/esm2022/route/route.service.mjs +75 -0
- package/esm2022/storage/igo2-core-storage.mjs +5 -0
- package/esm2022/storage/public_api.mjs +4 -0
- package/esm2022/storage/storage.interface.mjs +13 -0
- package/esm2022/storage/storage.mjs +76 -0
- package/esm2022/storage/storage.service.mjs +21 -0
- package/esm2022/user/igo2-core-user.mjs +5 -0
- package/esm2022/user/public_api.mjs +2 -0
- package/esm2022/user/user.interface.mjs +2 -0
- package/fesm2022/igo2-core-activity.mjs +10 -10
- package/fesm2022/igo2-core-activity.mjs.map +1 -1
- package/fesm2022/igo2-core-analytics.mjs +3 -3
- package/fesm2022/igo2-core-analytics.mjs.map +1 -1
- package/fesm2022/igo2-core-config.mjs +20 -16
- package/fesm2022/igo2-core-config.mjs.map +1 -1
- package/fesm2022/igo2-core-gesture.mjs +7 -7
- package/fesm2022/igo2-core-gesture.mjs.map +1 -1
- package/fesm2022/igo2-core-language.mjs +19 -15
- package/fesm2022/igo2-core-language.mjs.map +1 -1
- package/fesm2022/igo2-core-media.mjs +3 -3
- package/fesm2022/igo2-core-media.mjs.map +1 -1
- package/fesm2022/igo2-core-message.mjs +7 -7
- package/fesm2022/igo2-core-message.mjs.map +1 -1
- package/fesm2022/igo2-core-monitoring.mjs +7 -6
- package/fesm2022/igo2-core-monitoring.mjs.map +1 -1
- package/fesm2022/igo2-core-network.mjs +3 -3
- package/fesm2022/igo2-core-network.mjs.map +1 -1
- package/fesm2022/igo2-core-regex.mjs +3 -3
- package/fesm2022/igo2-core-regex.mjs.map +1 -1
- package/fesm2022/igo2-core-request.mjs +14 -14
- package/fesm2022/igo2-core-request.mjs.map +1 -1
- package/fesm2022/igo2-core-route.mjs +3 -3
- package/fesm2022/igo2-core-route.mjs.map +1 -1
- package/fesm2022/igo2-core-storage.mjs +3 -3
- package/fesm2022/igo2-core-storage.mjs.map +1 -1
- package/fesm2022/igo2-core.mjs +4 -4
- package/fesm2022/igo2-core.mjs.map +1 -1
- package/monitoring/monitoring.provider.d.ts +2 -2
- package/monitoring/sentry/sentry.provider.d.ts +2 -2
- package/package.json +39 -7
- package/src/style/style.scss +1 -1
- package/src/theming/prebuilt-themes/blue-theme.scss +1 -2
- package/src/theming/prebuilt-themes/bluedark-theme.scss +1 -2
- package/src/theming/prebuilt-themes/bluedq-theme.scss +1 -2
- package/src/theming/prebuilt-themes/bluegrey-theme.scss +1 -2
- package/src/theming/prebuilt-themes/dark-theme.scss +1 -2
- package/src/theming/prebuilt-themes/deeppurple-theme.scss +1 -2
- package/src/theming/prebuilt-themes/indigo-theme.scss +1 -2
- package/src/theming/prebuilt-themes/orange-theme.scss +1 -2
- package/src/theming/prebuilt-themes/teal-theme.scss +1 -2
- package/style/all-style.css +1 -4
- package/theming/prebuilt-themes/blue-theme.css +272 -286
- package/theming/prebuilt-themes/bluedark-theme.css +272 -286
- package/theming/prebuilt-themes/bluedq-theme.css +272 -286
- package/theming/prebuilt-themes/bluegrey-theme.css +272 -286
- package/theming/prebuilt-themes/dark-theme.css +272 -286
- package/theming/prebuilt-themes/deeppurple-theme.css +272 -286
- package/theming/prebuilt-themes/indigo-theme.css +272 -286
- package/theming/prebuilt-themes/orange-theme.css +272 -286
- package/theming/prebuilt-themes/teal-theme.css +272 -286
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
import { Inject, Injectable, Injector } from '@angular/core';
|
|
2
|
+
import { ConfigService } from '@igo2/core/config';
|
|
3
|
+
import { LanguageService } from '@igo2/core/language';
|
|
4
|
+
import { ToastrService } from 'ngx-toastr';
|
|
5
|
+
import { BehaviorSubject, forkJoin } from 'rxjs';
|
|
6
|
+
import { debounceTime, first } from 'rxjs/operators';
|
|
7
|
+
import { MessageType } from './message.enum';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "@igo2/core/config";
|
|
10
|
+
import * as i2 from "@igo2/core/language";
|
|
11
|
+
export class MessageService {
|
|
12
|
+
injector;
|
|
13
|
+
configService;
|
|
14
|
+
languageService;
|
|
15
|
+
messages$ = new BehaviorSubject([]);
|
|
16
|
+
options;
|
|
17
|
+
activeMessageTranslations = [];
|
|
18
|
+
constructor(injector, configService, languageService) {
|
|
19
|
+
this.injector = injector;
|
|
20
|
+
this.configService = configService;
|
|
21
|
+
this.languageService = languageService;
|
|
22
|
+
this.options = this.configService.getConfig('message');
|
|
23
|
+
this.languageService.language$.pipe(debounceTime(500)).subscribe(() => {
|
|
24
|
+
if (this.toastr.toasts.length === 0) {
|
|
25
|
+
this.activeMessageTranslations = [];
|
|
26
|
+
}
|
|
27
|
+
this.toastr.toasts.map((toast) => {
|
|
28
|
+
const activeMessageTranslation = this.activeMessageTranslations.find((amt) => amt.id === toast.toastId);
|
|
29
|
+
if (activeMessageTranslation) {
|
|
30
|
+
const translatedTextInterpolateParams = {
|
|
31
|
+
...activeMessageTranslation.textInterpolateParams
|
|
32
|
+
};
|
|
33
|
+
const translatedTitleInterpolateParams = {
|
|
34
|
+
...activeMessageTranslation.titleInterpolateParams
|
|
35
|
+
};
|
|
36
|
+
if (activeMessageTranslation.textInterpolateParams) {
|
|
37
|
+
Object.keys(activeMessageTranslation.textInterpolateParams).map((k) => {
|
|
38
|
+
if (k) {
|
|
39
|
+
translatedTextInterpolateParams[k] =
|
|
40
|
+
this.languageService.translate.instant(activeMessageTranslation.textInterpolateParams[k]);
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
if (activeMessageTranslation.titleInterpolateParams) {
|
|
45
|
+
Object.keys(activeMessageTranslation.titleInterpolateParams).map((k) => {
|
|
46
|
+
if (k) {
|
|
47
|
+
translatedTitleInterpolateParams[k] =
|
|
48
|
+
this.languageService.translate.instant(activeMessageTranslation.titleInterpolateParams[k]);
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
forkJoin([
|
|
53
|
+
this.languageService.translate.get(activeMessageTranslation.textKey, translatedTextInterpolateParams),
|
|
54
|
+
this.languageService.translate.get(activeMessageTranslation.titleKey, translatedTitleInterpolateParams)
|
|
55
|
+
])
|
|
56
|
+
.pipe(first())
|
|
57
|
+
.subscribe((res) => {
|
|
58
|
+
toast.toastRef.componentInstance.message = res[0];
|
|
59
|
+
toast.toastRef.componentInstance.title = res[1];
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
get toastr() {
|
|
66
|
+
return this.injector.get(ToastrService);
|
|
67
|
+
}
|
|
68
|
+
showError(httpError) {
|
|
69
|
+
httpError.error.caught = true;
|
|
70
|
+
return this.error(httpError.error.message, httpError.error.title);
|
|
71
|
+
}
|
|
72
|
+
message(message) {
|
|
73
|
+
const messageType = message.type;
|
|
74
|
+
this.toastr.toastrConfig.iconClasses[messageType] = `toast-${messageType}`;
|
|
75
|
+
this.messages$.next(this.messages$.value.concat([message]));
|
|
76
|
+
message.options = message.options || {};
|
|
77
|
+
const currentDate = new Date();
|
|
78
|
+
message.options.from = message.options.from
|
|
79
|
+
? message.options.from
|
|
80
|
+
: new Date('1 jan 1900');
|
|
81
|
+
message.options.to = message.options.to
|
|
82
|
+
? message.options.to
|
|
83
|
+
: new Date('1 jan 3000');
|
|
84
|
+
if (typeof message.options.from === 'string') {
|
|
85
|
+
message.options.from = new Date(Date.parse(message.options.from.replace(/-/g, ' ')));
|
|
86
|
+
}
|
|
87
|
+
if (typeof message.options.to === 'string') {
|
|
88
|
+
message.options.to = new Date(Date.parse(message.options.to.replace(/-/g, ' ')));
|
|
89
|
+
}
|
|
90
|
+
if (currentDate > message.options.from &&
|
|
91
|
+
currentDate < message.options.to) {
|
|
92
|
+
if (message.showIcon === false) {
|
|
93
|
+
this.toastr.toastrConfig.iconClasses[messageType] =
|
|
94
|
+
`toast-${messageType} toast-no-icon`;
|
|
95
|
+
}
|
|
96
|
+
message = this.handleTemplate(message);
|
|
97
|
+
if (message.text) {
|
|
98
|
+
let messageShown;
|
|
99
|
+
switch (message.type) {
|
|
100
|
+
case MessageType.SUCCESS:
|
|
101
|
+
messageShown = this.success(message.text, message.title, message.options, message.textInterpolateParams, message.titleInterpolateParams);
|
|
102
|
+
break;
|
|
103
|
+
case MessageType.ERROR:
|
|
104
|
+
messageShown = this.error(message.text, message.title, message.options, message.textInterpolateParams, message.titleInterpolateParams);
|
|
105
|
+
break;
|
|
106
|
+
case MessageType.INFO:
|
|
107
|
+
messageShown = this.info(message.text, message.title, message.options, message.textInterpolateParams, message.titleInterpolateParams);
|
|
108
|
+
break;
|
|
109
|
+
case MessageType.SHOW:
|
|
110
|
+
messageShown = this.show(message.text, message.title, message.options, message.textInterpolateParams, message.titleInterpolateParams);
|
|
111
|
+
break;
|
|
112
|
+
case MessageType.ALERT:
|
|
113
|
+
case MessageType.WARNING:
|
|
114
|
+
messageShown = this.alert(message.text, message.title, message.options, message.textInterpolateParams, message.titleInterpolateParams);
|
|
115
|
+
break;
|
|
116
|
+
default:
|
|
117
|
+
messageShown = this.info(message.text, message.title, message.options, message.textInterpolateParams, message.titleInterpolateParams);
|
|
118
|
+
break;
|
|
119
|
+
}
|
|
120
|
+
message.options.id = messageShown.toastId;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
success(text, title = 'igo.core.message.success', options = {}, textInterpolateParams, titleInterpolateParams) {
|
|
125
|
+
return this.handleNgxToastr('success', text, title, options, textInterpolateParams, titleInterpolateParams);
|
|
126
|
+
}
|
|
127
|
+
error(text, title = 'igo.core.message.error', options = {}, textInterpolateParams, titleInterpolateParams) {
|
|
128
|
+
return this.handleNgxToastr('error', text, title, options, textInterpolateParams, titleInterpolateParams);
|
|
129
|
+
}
|
|
130
|
+
info(text, title = 'igo.core.message.info', options = {}, textInterpolateParams, titleInterpolateParams) {
|
|
131
|
+
return this.handleNgxToastr('info', text, title, options, textInterpolateParams, titleInterpolateParams);
|
|
132
|
+
}
|
|
133
|
+
alert(text, title = 'igo.core.message.alert', options = {}, textInterpolateParams, titleInterpolateParams) {
|
|
134
|
+
return this.handleNgxToastr('alert', text, title, options, textInterpolateParams, titleInterpolateParams);
|
|
135
|
+
}
|
|
136
|
+
show(text, title = 'igo.core.message.info', options = {}, textInterpolateParams, titleInterpolateParams) {
|
|
137
|
+
return this.handleNgxToastr('show', text, title, options, textInterpolateParams, titleInterpolateParams);
|
|
138
|
+
}
|
|
139
|
+
handleNgxToastr(type, text, title, options = {}, textInterpolateParams, titleInterpolateParams) {
|
|
140
|
+
const translatedTextInterpolateParams = { ...textInterpolateParams };
|
|
141
|
+
const translatedTitlenterpolateParams = { ...titleInterpolateParams };
|
|
142
|
+
if (textInterpolateParams) {
|
|
143
|
+
Object.keys(textInterpolateParams).map((k) => {
|
|
144
|
+
const value = textInterpolateParams[k];
|
|
145
|
+
if (value) {
|
|
146
|
+
translatedTextInterpolateParams[k] =
|
|
147
|
+
typeof value === 'string'
|
|
148
|
+
? this.languageService.translate.instant(value)
|
|
149
|
+
: value;
|
|
150
|
+
}
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
if (titleInterpolateParams) {
|
|
154
|
+
Object.keys(titleInterpolateParams).map((k) => {
|
|
155
|
+
if (k) {
|
|
156
|
+
const value = titleInterpolateParams[k];
|
|
157
|
+
translatedTitlenterpolateParams[k] =
|
|
158
|
+
typeof value === 'string'
|
|
159
|
+
? this.languageService.translate.instant(value)
|
|
160
|
+
: value;
|
|
161
|
+
}
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
const message = this.languageService.translate.instant(text, translatedTextInterpolateParams);
|
|
165
|
+
const translatedTitle = this.languageService.translate.instant(title, translatedTitlenterpolateParams);
|
|
166
|
+
let activeToast;
|
|
167
|
+
switch (type) {
|
|
168
|
+
case 'success':
|
|
169
|
+
activeToast = this.toastr.success(message, translatedTitle, options);
|
|
170
|
+
break;
|
|
171
|
+
case 'error':
|
|
172
|
+
activeToast = this.toastr.error(message, translatedTitle, options);
|
|
173
|
+
break;
|
|
174
|
+
case 'show':
|
|
175
|
+
case 'info':
|
|
176
|
+
activeToast = this.toastr.info(message, translatedTitle, options);
|
|
177
|
+
break;
|
|
178
|
+
case 'alert':
|
|
179
|
+
activeToast = this.toastr.warning(message, translatedTitle, options);
|
|
180
|
+
break;
|
|
181
|
+
}
|
|
182
|
+
this.activeMessageTranslations.push({
|
|
183
|
+
id: activeToast.toastId,
|
|
184
|
+
titleKey: title,
|
|
185
|
+
textKey: text,
|
|
186
|
+
textInterpolateParams,
|
|
187
|
+
titleInterpolateParams
|
|
188
|
+
});
|
|
189
|
+
return activeToast;
|
|
190
|
+
}
|
|
191
|
+
remove(id) {
|
|
192
|
+
this.toastr.remove(id);
|
|
193
|
+
}
|
|
194
|
+
removeAllAreNotError() {
|
|
195
|
+
for (const mess of this.messages$.value) {
|
|
196
|
+
if (mess.type !== MessageType.ERROR) {
|
|
197
|
+
this.remove(mess.options.id);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
handleTemplate(message) {
|
|
202
|
+
if (!this.options?.template || message.html) {
|
|
203
|
+
return message;
|
|
204
|
+
}
|
|
205
|
+
let html = this.options?.template;
|
|
206
|
+
html = html.replace('${text}', message.text);
|
|
207
|
+
html = html.replace('${title}', message.title);
|
|
208
|
+
message.html = undefined;
|
|
209
|
+
message.text = html;
|
|
210
|
+
message.title = undefined;
|
|
211
|
+
return message;
|
|
212
|
+
}
|
|
213
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MessageService, deps: [{ token: Injector }, { token: i1.ConfigService }, { token: i2.LanguageService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
214
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MessageService, providedIn: 'root' });
|
|
215
|
+
}
|
|
216
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MessageService, decorators: [{
|
|
217
|
+
type: Injectable,
|
|
218
|
+
args: [{
|
|
219
|
+
providedIn: 'root'
|
|
220
|
+
}]
|
|
221
|
+
}], ctorParameters: () => [{ type: i0.Injector, decorators: [{
|
|
222
|
+
type: Inject,
|
|
223
|
+
args: [Injector]
|
|
224
|
+
}] }, { type: i1.ConfigService }, { type: i2.LanguageService }] });
|
|
225
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9tZXNzYWdlL3NyYy9zaGFyZWQvbWVzc2FnZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXRELE9BQU8sRUFBaUMsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBYTdDLE1BQU0sT0FBTyxjQUFjO0lBTUc7SUFDbEI7SUFDQTtJQVBILFNBQVMsR0FBRyxJQUFJLGVBQWUsQ0FBWSxFQUFFLENBQUMsQ0FBQztJQUM5QyxPQUFPLENBQWtCO0lBQ3pCLHlCQUF5QixHQUErQixFQUFFLENBQUM7SUFFbkUsWUFDNEIsUUFBa0IsRUFDcEMsYUFBNEIsRUFDNUIsZUFBZ0M7UUFGZCxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ3BDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUV4QyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFT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LGNBQWMsa0JBTWYsUUFBUTs0R0FOUCxjQUFjLGNBRmIsTUFBTTs7NEZBRVAsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQU9JLE1BQU07MkJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBDb25maWdTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZS9jb25maWcnO1xuaW1wb3J0IHsgTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZS9sYW5ndWFnZSc7XG5cbmltcG9ydCB7IEFjdGl2ZVRvYXN0LCBJbmRpdmlkdWFsQ29uZmlnLCBUb2FzdHJTZXJ2aWNlIH0gZnJvbSAnbmd4LXRvYXN0cic7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGZvcmtKb2luIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGZpcnN0IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBNZXNzYWdlVHlwZSB9IGZyb20gJy4vbWVzc2FnZS5lbnVtJztcbmltcG9ydCB7IE1lc3NhZ2UsIE1lc3NhZ2VPcHRpb25zIH0gZnJvbSAnLi9tZXNzYWdlLmludGVyZmFjZSc7XG5cbmludGVyZmFjZSBBY3RpdmVNZXNzYWdlVHJhbnNsYXRpb24ge1xuICBpZDogbnVtYmVyO1xuICB0aXRsZUtleTogc3RyaW5nO1xuICB0ZXh0S2V5OiBzdHJpbmc7XG4gIHRleHRJbnRlcnBvbGF0ZVBhcmFtcz86IG9iamVjdDtcbiAgdGl0bGVJbnRlcnBvbGF0ZVBhcmFtcz86IG9iamVjdDtcbn1cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIE1lc3NhZ2VTZXJ2aWNlIHtcbiAgcHVibGljIG1lc3NhZ2VzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWVzc2FnZVtdPihbXSk7XG4gIHByaXZhdGUgb3B0aW9ucz86IE1lc3NhZ2VPcHRpb25zO1xuICBwcml2YXRlIGFjdGl2ZU1lc3NhZ2VUcmFuc2xhdGlvbnM6IEFjdGl2ZU1lc3NhZ2VUcmFuc2xhdGlvbltdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChJbmplY3RvcikgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJpdmF0ZSBjb25maWdTZXJ2aWNlOiBDb25maWdTZXJ2aWNlLFxuICAgIHByaXZhdGUgbGFuZ3VhZ2VTZXJ2aWNlOiBMYW5ndWFnZVNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5vcHRpb25zID0gdGhpcy5jb25maWdTZXJ2aWNlLmdldENvbmZpZygnbWVzc2FnZScpO1xuICAgIHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLmxhbmd1YWdlJC5waXBlKGRlYm91bmNlVGltZSg1MDApKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMudG9hc3RyLnRvYXN0cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgdGhpcy5hY3RpdmVNZXNzYWdlVHJhbnNsYXRpb25zID0gW107XG4gICAgICB9XG4gICAgICB0aGlzLnRvYXN0ci50b2FzdHMubWFwKCh0b2FzdCkgPT4ge1xuICAgICAgICBjb25zdCBhY3RpdmVNZXNzYWdlVHJhbnNsYXRpb24gPSB0aGlzLmFjdGl2ZU1lc3NhZ2VUcmFuc2xhdGlvbnMuZmluZChcbiAgICAgICAgICAoYW10KSA9PiBhbXQuaWQgPT09IHRvYXN0LnRvYXN0SWRcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKGFjdGl2ZU1lc3NhZ2VUcmFuc2xhdGlvbikge1xuICAgICAgICAgIGNvbnN0IHRyYW5zbGF0ZWRUZXh0SW50ZXJwb2xhdGVQYXJhbXMgPSB7XG4gICAgICAgICAgICAuLi5hY3RpdmVNZXNzYWdlVHJhbnNsYXRpb24udGV4dEludGVycG9sYXRlUGFyYW1zXG4gICAgICAgICAgfTtcbiAgICAgICAgICBjb25zdCB0cmFuc2xhdGVkVGl0bGVJbnRlcnBvbGF0ZVBhcmFtcyA9IHtcbiAgICAgICAgICAgIC4uLmFjdGl2ZU1lc3NhZ2VUcmFuc2xhdGlvbi50aXRsZUludGVycG9sYXRlUGFyYW1zXG4gICAgICAgICAgfTtcblxuICAgICAgICAgIGlmIChhY3RpdmVNZXNzYWdlVHJhbnNsYXRpb24udGV4dEludGVycG9sYXRlUGFyYW1zKSB7XG4gICAgICAgICAgICBPYmplY3Qua2V5cyhhY3RpdmVNZXNzYWdlVHJhbnNsYXRpb24udGV4dEludGVycG9sYXRlUGFyYW1zKS5tYXAoXG4gICAgICAgICAgICAgIChrKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGspIHtcbiAgICAgICAgICAgICAgICAgIHRyYW5zbGF0ZWRUZXh0SW50ZXJwb2xhdGVQYXJhbXNba10gPVxuICAgICAgICAgICAgICAgICAgICB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICAgICAgICAgICAgICBhY3RpdmVNZXNzYWdlVHJhbnNsYXRpb24udGV4dEludGVycG9sYXRlUGFyYW1zW2tdXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoYWN0aXZlTWVzc2FnZVRyYW5zbGF0aW9uLnRpdGxlSW50ZXJwb2xhdGVQYXJhbXMpIHtcbiAgICAgICAgICAgIE9iamVjdC5rZXlzKGFjdGl2ZU1lc3NhZ2VUcmFuc2xhdGlvbi50aXRsZUludGVycG9sYXRlUGFyYW1zKS5tYXAoXG4gICAgICAgICAgICAgIChrKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGspIHtcbiAgICAgICAgICAgICAgICAgIHRyYW5zbGF0ZWRUaXRsZUludGVycG9sYXRlUGFyYW1zW2tdID1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgICAgICAgICAgICAgYWN0aXZlTWVzc2FnZVRyYW5zbGF0aW9uLnRpdGxlSW50ZXJwb2xhdGVQYXJhbXNba11cbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgZm9ya0pvaW4oW1xuICAgICAgICAgICAgdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmdldChcbiAgICAgICAgICAgICAgYWN0aXZlTWVzc2FnZVRyYW5zbGF0aW9uLnRleHRLZXksXG4gICAgICAgICAgICAgIHRyYW5zbGF0ZWRUZXh0SW50ZXJwb2xhdGVQYXJhbXNcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuZ2V0KFxuICAgICAgICAgICAgICBhY3RpdmVNZXNzYWdlVHJhbnNsYXRpb24udGl0bGVLZXksXG4gICAgICAgICAgICAgIHRyYW5zbGF0ZWRUaXRsZUludGVycG9sYXRlUGFyYW1zXG4gICAgICAgICAgICApXG4gICAgICAgICAgXSlcbiAgICAgICAgICAgIC5waXBlKGZpcnN0KCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChyZXM6IFtzdHJpbmcsIHN0cmluZ10pID0+IHtcbiAgICAgICAgICAgICAgdG9hc3QudG9hc3RSZWYuY29tcG9uZW50SW5zdGFuY2UubWVzc2FnZSA9IHJlc1swXTtcbiAgICAgICAgICAgICAgdG9hc3QudG9hc3RSZWYuY29tcG9uZW50SW5zdGFuY2UudGl0bGUgPSByZXNbMV07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldCB0b2FzdHIoKTogVG9hc3RyU2VydmljZSB7XG4gICAgcmV0dXJuIHRoaXMuaW5qZWN0b3IuZ2V0KFRvYXN0clNlcnZpY2UpO1xuICB9XG5cbiAgc2hvd0Vycm9yKGh0dHBFcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpIHtcbiAgICBodHRwRXJyb3IuZXJyb3IuY2F1Z2h0ID0gdHJ1ZTtcbiAgICByZXR1cm4gdGhpcy5lcnJvcihodHRwRXJyb3IuZXJyb3IubWVzc2FnZSwgaHR0cEVycm9yLmVycm9yLnRpdGxlKTtcbiAgfVxuXG4gIG1lc3NhZ2UobWVzc2FnZTogTWVzc2FnZSkge1xuICAgIGNvbnN0IG1lc3NhZ2VUeXBlID0gbWVzc2FnZS50eXBlO1xuICAgIHRoaXMudG9hc3RyLnRvYXN0ckNvbmZpZy5pY29uQ2xhc3Nlc1ttZXNzYWdlVHlwZV0gPSBgdG9hc3QtJHttZXNzYWdlVHlwZX1gO1xuXG4gICAgdGhpcy5tZXNzYWdlcyQubmV4dCh0aGlzLm1lc3NhZ2VzJC52YWx1ZS5jb25jYXQoW21lc3NhZ2VdKSk7XG5cbiAgICBtZXNzYWdlLm9wdGlvbnMgPSBtZXNzYWdlLm9wdGlvbnMgfHwgKHt9IGFzIE1lc3NhZ2VPcHRpb25zKTtcbiAgICBjb25zdCBjdXJyZW50RGF0ZSA9IG5ldyBEYXRlKCk7XG5cbiAgICBtZXNzYWdlLm9wdGlvbnMuZnJvbSA9IG1lc3NhZ2Uub3B0aW9ucy5mcm9tXG4gICAgICA/IG1lc3NhZ2Uub3B0aW9ucy5mcm9tXG4gICAgICA6IG5ldyBEYXRlKCcxIGphbiAxOTAwJyk7XG4gICAgbWVzc2FnZS5vcHRpb25zLnRvID0gbWVzc2FnZS5vcHRpb25zLnRvXG4gICAgICA/IG1lc3NhZ2Uub3B0aW9ucy50b1xuICAgICAgOiBuZXcgRGF0ZSgnMSBqYW4gMzAwMCcpO1xuICAgIGlmICh0eXBlb2YgbWVzc2FnZS5vcHRpb25zLmZyb20gPT09ICdzdHJpbmcnKSB7XG4gICAgICBtZXNzYWdlLm9wdGlvbnMuZnJvbSA9IG5ldyBEYXRlKFxuICAgICAgICBEYXRlLnBhcnNlKG1lc3NhZ2Uub3B0aW9ucy5mcm9tLnJlcGxhY2UoLy0vZywgJyAnKSlcbiAgICAgICk7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgbWVzc2FnZS5vcHRpb25zLnRvID09PSAnc3RyaW5nJykge1xuICAgICAgbWVzc2FnZS5vcHRpb25zLnRvID0gbmV3IERhdGUoXG4gICAgICAgIERhdGUucGFyc2UobWVzc2FnZS5vcHRpb25zLnRvLnJlcGxhY2UoLy0vZywgJyAnKSlcbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIGN1cnJlbnREYXRlID4gbWVzc2FnZS5vcHRpb25zLmZyb20gJiZcbiAgICAgIGN1cnJlbnREYXRlIDwgbWVzc2FnZS5vcHRpb25zLnRvXG4gICAgKSB7XG4gICAgICBpZiAobWVzc2FnZS5zaG93SWNvbiA9PT0gZmFsc2UpIHtcbiAgICAgICAgdGhpcy50b2FzdHIudG9hc3RyQ29uZmlnLmljb25DbGFzc2VzW21lc3NhZ2VUeXBlXSA9XG4gICAgICAgICAgYHRvYXN0LSR7bWVzc2FnZVR5cGV9IHRvYXN0LW5vLWljb25gO1xuICAgICAgfVxuICAgICAgbWVzc2FnZSA9IHRoaXMuaGFuZGxlVGVtcGxhdGUobWVzc2FnZSk7XG5cbiAgICAgIGlmIChtZXNzYWdlLnRleHQpIHtcbiAgICAgICAgbGV0IG1lc3NhZ2VTaG93bjogQWN0aXZlVG9hc3Q8YW55PjtcbiAgICAgICAgc3dpdGNoIChtZXNzYWdlLnR5cGUpIHtcbiAgICAgICAgICBjYXNlIE1lc3NhZ2VUeXBlLlNVQ0NFU1M6XG4gICAgICAgICAgICBtZXNzYWdlU2hvd24gPSB0aGlzLnN1Y2Nlc3MoXG4gICAgICAgICAgICAgIG1lc3NhZ2UudGV4dCxcbiAgICAgICAgICAgICAgbWVzc2FnZS50aXRsZSxcbiAgICAgICAgICAgICAgbWVzc2FnZS5vcHRpb25zLFxuICAgICAgICAgICAgICBtZXNzYWdlLnRleHRJbnRlcnBvbGF0ZVBhcmFtcyxcbiAgICAgICAgICAgICAgbWVzc2FnZS50aXRsZUludGVycG9sYXRlUGFyYW1zXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBNZXNzYWdlVHlwZS5FUlJPUjpcbiAgICAgICAgICAgIG1lc3NhZ2VTaG93biA9IHRoaXMuZXJyb3IoXG4gICAgICAgICAgICAgIG1lc3NhZ2UudGV4dCxcbiAgICAgICAgICAgICAgbWVzc2FnZS50aXRsZSxcbiAgICAgICAgICAgICAgbWVzc2FnZS5vcHRpb25zLFxuICAgICAgICAgICAgICBtZXNzYWdlLnRleHRJbnRlcnBvbGF0ZVBhcmFtcyxcbiAgICAgICAgICAgICAgbWVzc2FnZS50aXRsZUludGVycG9sYXRlUGFyYW1zXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBNZXNzYWdlVHlwZS5JTkZPOlxuICAgICAgICAgICAgbWVzc2FnZVNob3duID0gdGhpcy5pbmZvKFxuICAgICAgICAgICAgICBtZXNzYWdlLnRleHQsXG4gICAgICAgICAgICAgIG1lc3NhZ2UudGl0bGUsXG4gICAgICAgICAgICAgIG1lc3NhZ2Uub3B0aW9ucyxcbiAgICAgICAgICAgICAgbWVzc2FnZS50ZXh0SW50ZXJwb2xhdGVQYXJhbXMsXG4gICAgICAgICAgICAgIG1lc3NhZ2UudGl0bGVJbnRlcnBvbGF0ZVBhcmFtc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgTWVzc2FnZVR5cGUuU0hPVzpcbiAgICAgICAgICAgIG1lc3NhZ2VTaG93biA9IHRoaXMuc2hvdyhcbiAgICAgICAgICAgICAgbWVzc2FnZS50ZXh0LFxuICAgICAgICAgICAgICBtZXNzYWdlLnRpdGxlLFxuICAgICAgICAgICAgICBtZXNzYWdlLm9wdGlvbnMsXG4gICAgICAgICAgICAgIG1lc3NhZ2UudGV4dEludGVycG9sYXRlUGFyYW1zLFxuICAgICAgICAgICAgICBtZXNzYWdlLnRpdGxlSW50ZXJwb2xhdGVQYXJhbXNcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIE1lc3NhZ2VUeXBlLkFMRVJUOlxuICAgICAgICAgIGNhc2UgTWVzc2FnZVR5cGUuV0FSTklORzpcbiAgICAgICAgICAgIG1lc3NhZ2VTaG93biA9IHRoaXMuYWxlcnQoXG4gICAgICAgICAgICAgIG1lc3NhZ2UudGV4dCxcbiAgICAgICAgICAgICAgbWVzc2FnZS50aXRsZSxcbiAgICAgICAgICAgICAgbWVzc2FnZS5vcHRpb25zLFxuICAgICAgICAgICAgICBtZXNzYWdlLnRleHRJbnRlcnBvbGF0ZVBhcmFtcyxcbiAgICAgICAgICAgICAgbWVzc2FnZS50aXRsZUludGVycG9sYXRlUGFyYW1zXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIG1lc3NhZ2VTaG93biA9IHRoaXMuaW5mbyhcbiAgICAgICAgICAgICAgbWVzc2FnZS50ZXh0LFxuICAgICAgICAgICAgICBtZXNzYWdlLnRpdGxlLFxuICAgICAgICAgICAgICBtZXNzYWdlLm9wdGlvbnMsXG4gICAgICAgICAgICAgIG1lc3NhZ2UudGV4dEludGVycG9sYXRlUGFyYW1zLFxuICAgICAgICAgICAgICBtZXNzYWdlLnRpdGxlSW50ZXJwb2xhdGVQYXJhbXNcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBtZXNzYWdlLm9wdGlvbnMuaWQgPSBtZXNzYWdlU2hvd24udG9hc3RJZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBzdWNjZXNzKFxuICAgIHRleHQ6IHN0cmluZyxcbiAgICB0aXRsZSA9ICdpZ28uY29yZS5tZXNzYWdlLnN1Y2Nlc3MnLFxuICAgIG9wdGlvbnM6IFBhcnRpYWw8SW5kaXZpZHVhbENvbmZpZz4gPSB7fSxcbiAgICB0ZXh0SW50ZXJwb2xhdGVQYXJhbXM/OiBvYmplY3QsXG4gICAgdGl0bGVJbnRlcnBvbGF0ZVBhcmFtcz86IG9iamVjdFxuICApOiBBY3RpdmVUb2FzdDxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5oYW5kbGVOZ3hUb2FzdHIoXG4gICAgICAnc3VjY2VzcycsXG4gICAgICB0ZXh0LFxuICAgICAgdGl0bGUsXG4gICAgICBvcHRpb25zLFxuICAgICAgdGV4dEludGVycG9sYXRlUGFyYW1zLFxuICAgICAgdGl0bGVJbnRlcnBvbGF0ZVBhcmFtc1xuICAgICk7XG4gIH1cblxuICBlcnJvcihcbiAgICB0ZXh0OiBzdHJpbmcsXG4gICAgdGl0bGUgPSAnaWdvLmNvcmUubWVzc2FnZS5lcnJvcicsXG4gICAgb3B0aW9uczogUGFydGlhbDxJbmRpdmlkdWFsQ29uZmlnPiA9IHt9LFxuICAgIHRleHRJbnRlcnBvbGF0ZVBhcmFtcz86IG9iamVjdCxcbiAgICB0aXRsZUludGVycG9sYXRlUGFyYW1zPzogb2JqZWN0XG4gICk6IEFjdGl2ZVRvYXN0PGFueT4ge1xuICAgIHJldHVybiB0aGlzLmhhbmRsZU5neFRvYXN0cihcbiAgICAgICdlcnJvcicsXG4gICAgICB0ZXh0LFxuICAgICAgdGl0bGUsXG4gICAgICBvcHRpb25zLFxuICAgICAgdGV4dEludGVycG9sYXRlUGFyYW1zLFxuICAgICAgdGl0bGVJbnRlcnBvbGF0ZVBhcmFtc1xuICAgICk7XG4gIH1cblxuICBpbmZvKFxuICAgIHRleHQ6IHN0cmluZyxcbiAgICB0aXRsZSA9ICdpZ28uY29yZS5tZXNzYWdlLmluZm8nLFxuICAgIG9wdGlvbnM6IFBhcnRpYWw8SW5kaXZpZHVhbENvbmZpZz4gPSB7fSxcbiAgICB0ZXh0SW50ZXJwb2xhdGVQYXJhbXM/OiBvYmplY3QsXG4gICAgdGl0bGVJbnRlcnBvbGF0ZVBhcmFtcz86IG9iamVjdFxuICApOiBBY3RpdmVUb2FzdDxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5oYW5kbGVOZ3hUb2FzdHIoXG4gICAgICAnaW5mbycsXG4gICAgICB0ZXh0LFxuICAgICAgdGl0bGUsXG4gICAgICBvcHRpb25zLFxuICAgICAgdGV4dEludGVycG9sYXRlUGFyYW1zLFxuICAgICAgdGl0bGVJbnRlcnBvbGF0ZVBhcmFtc1xuICAgICk7XG4gIH1cblxuICBhbGVydChcbiAgICB0ZXh0OiBzdHJpbmcsXG4gICAgdGl0bGUgPSAnaWdvLmNvcmUubWVzc2FnZS5hbGVydCcsXG4gICAgb3B0aW9uczogUGFydGlhbDxJbmRpdmlkdWFsQ29uZmlnPiA9IHt9LFxuICAgIHRleHRJbnRlcnBvbGF0ZVBhcmFtcz86IG9iamVjdCxcbiAgICB0aXRsZUludGVycG9sYXRlUGFyYW1zPzogb2JqZWN0XG4gICk6IEFjdGl2ZVRvYXN0PGFueT4ge1xuICAgIHJldHVybiB0aGlzLmhhbmRsZU5neFRvYXN0cihcbiAgICAgICdhbGVydCcsXG4gICAgICB0ZXh0LFxuICAgICAgdGl0bGUsXG4gICAgICBvcHRpb25zLFxuICAgICAgdGV4dEludGVycG9sYXRlUGFyYW1zLFxuICAgICAgdGl0bGVJbnRlcnBvbGF0ZVBhcmFtc1xuICAgICk7XG4gIH1cblxuICBzaG93KFxuICAgIHRleHQ6IHN0cmluZyxcbiAgICB0aXRsZSA9ICdpZ28uY29yZS5tZXNzYWdlLmluZm8nLFxuICAgIG9wdGlvbnM6IFBhcnRpYWw8SW5kaXZpZHVhbENvbmZpZz4gPSB7fSxcbiAgICB0ZXh0SW50ZXJwb2xhdGVQYXJhbXM/OiBvYmplY3QsXG4gICAgdGl0bGVJbnRlcnBvbGF0ZVBhcmFtcz86IG9iamVjdFxuICApOiBBY3RpdmVUb2FzdDxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5oYW5kbGVOZ3hUb2FzdHIoXG4gICAgICAnc2hvdycsXG4gICAgICB0ZXh0LFxuICAgICAgdGl0bGUsXG4gICAgICBvcHRpb25zLFxuICAgICAgdGV4dEludGVycG9sYXRlUGFyYW1zLFxuICAgICAgdGl0bGVJbnRlcnBvbGF0ZVBhcmFtc1xuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZU5neFRvYXN0cihcbiAgICB0eXBlOiAnYWxlcnQnIHwgJ2luZm8nIHwgJ2Vycm9yJyB8ICdzdWNjZXNzJyB8ICdzaG93JyxcbiAgICB0ZXh0OiBzdHJpbmcsXG4gICAgdGl0bGU6IHN0cmluZyxcbiAgICBvcHRpb25zOiBQYXJ0aWFsPEluZGl2aWR1YWxDb25maWc+ID0ge30sXG4gICAgdGV4dEludGVycG9sYXRlUGFyYW1zPzogb2JqZWN0LFxuICAgIHRpdGxlSW50ZXJwb2xhdGVQYXJhbXM/OiBvYmplY3RcbiAgKTogQWN0aXZlVG9hc3Q8YW55PiB7XG4gICAgY29uc3QgdHJhbnNsYXRlZFRleHRJbnRlcnBvbGF0ZVBhcmFtcyA9IHsgLi4udGV4dEludGVycG9sYXRlUGFyYW1zIH07XG4gICAgY29uc3QgdHJhbnNsYXRlZFRpdGxlbnRlcnBvbGF0ZVBhcmFtcyA9IHsgLi4udGl0bGVJbnRlcnBvbGF0ZVBhcmFtcyB9O1xuXG4gICAgaWYgKHRleHRJbnRlcnBvbGF0ZVBhcmFtcykge1xuICAgICAgT2JqZWN0LmtleXModGV4dEludGVycG9sYXRlUGFyYW1zKS5tYXAoKGspID0+IHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0ZXh0SW50ZXJwb2xhdGVQYXJhbXNba107XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgIHRyYW5zbGF0ZWRUZXh0SW50ZXJwb2xhdGVQYXJhbXNba10gPVxuICAgICAgICAgICAgdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJ1xuICAgICAgICAgICAgICA/IHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KHZhbHVlKVxuICAgICAgICAgICAgICA6IHZhbHVlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKHRpdGxlSW50ZXJwb2xhdGVQYXJhbXMpIHtcbiAgICAgIE9iamVjdC5rZXlzKHRpdGxlSW50ZXJwb2xhdGVQYXJhbXMpLm1hcCgoaykgPT4ge1xuICAgICAgICBpZiAoaykge1xuICAgICAgICAgIGNvbnN0IHZhbHVlID0gdGl0bGVJbnRlcnBvbGF0ZVBhcmFtc1trXTtcbiAgICAgICAgICB0cmFuc2xhdGVkVGl0bGVudGVycG9sYXRlUGFyYW1zW2tdID1cbiAgICAgICAgICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZydcbiAgICAgICAgICAgICAgPyB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudCh2YWx1ZSlcbiAgICAgICAgICAgICAgOiB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29uc3QgbWVzc2FnZSA9IHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgdGV4dCxcbiAgICAgIHRyYW5zbGF0ZWRUZXh0SW50ZXJwb2xhdGVQYXJhbXNcbiAgICApO1xuICAgIGNvbnN0IHRyYW5zbGF0ZWRUaXRsZSA9IHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgdGl0bGUsXG4gICAgICB0cmFuc2xhdGVkVGl0bGVudGVycG9sYXRlUGFyYW1zXG4gICAgKTtcblxuICAgIGxldCBhY3RpdmVUb2FzdDtcbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgJ3N1Y2Nlc3MnOlxuICAgICAgICBhY3RpdmVUb2FzdCA9IHRoaXMudG9hc3RyLnN1Y2Nlc3MobWVzc2FnZSwgdHJhbnNsYXRlZFRpdGxlLCBvcHRpb25zKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdlcnJvcic6XG4gICAgICAgIGFjdGl2ZVRvYXN0ID0gdGhpcy50b2FzdHIuZXJyb3IobWVzc2FnZSwgdHJhbnNsYXRlZFRpdGxlLCBvcHRpb25zKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdzaG93JzpcbiAgICAgIGNhc2UgJ2luZm8nOlxuICAgICAgICBhY3RpdmVUb2FzdCA9IHRoaXMudG9hc3RyLmluZm8obWVzc2FnZSwgdHJhbnNsYXRlZFRpdGxlLCBvcHRpb25zKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdhbGVydCc6XG4gICAgICAgIGFjdGl2ZVRvYXN0ID0gdGhpcy50b2FzdHIud2FybmluZyhtZXNzYWdlLCB0cmFuc2xhdGVkVGl0bGUsIG9wdGlvbnMpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gICAgdGhpcy5hY3RpdmVNZXNzYWdlVHJhbnNsYXRpb25zLnB1c2goe1xuICAgICAgaWQ6IGFjdGl2ZVRvYXN0LnRvYXN0SWQsXG4gICAgICB0aXRsZUtleTogdGl0bGUsXG4gICAgICB0ZXh0S2V5OiB0ZXh0LFxuICAgICAgdGV4dEludGVycG9sYXRlUGFyYW1zLFxuICAgICAgdGl0bGVJbnRlcnBvbGF0ZVBhcmFtc1xuICAgIH0pO1xuICAgIHJldHVybiBhY3RpdmVUb2FzdDtcbiAgfVxuXG4gIHJlbW92ZShpZD86IG51bWJlcikge1xuICAgIHRoaXMudG9hc3RyLnJlbW92ZShpZCk7XG4gIH1cblxuICByZW1vdmVBbGxBcmVOb3RFcnJvcigpIHtcbiAgICBmb3IgKGNvbnN0IG1lc3Mgb2YgdGhpcy5tZXNzYWdlcyQudmFsdWUpIHtcbiAgICAgIGlmIChtZXNzLnR5cGUgIT09IE1lc3NhZ2VUeXBlLkVSUk9SKSB7XG4gICAgICAgIHRoaXMucmVtb3ZlKG1lc3Mub3B0aW9ucy5pZCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVUZW1wbGF0ZShtZXNzYWdlOiBNZXNzYWdlKTogTWVzc2FnZSB7XG4gICAgaWYgKCF0aGlzLm9wdGlvbnM/LnRlbXBsYXRlIHx8IG1lc3NhZ2UuaHRtbCkge1xuICAgICAgcmV0dXJuIG1lc3NhZ2U7XG4gICAgfVxuXG4gICAgbGV0IGh0bWwgPSB0aGlzLm9wdGlvbnM/LnRlbXBsYXRlO1xuICAgIGh0bWwgPSBodG1sLnJlcGxhY2UoJyR7dGV4dH0nLCBtZXNzYWdlLnRleHQpO1xuICAgIGh0bWwgPSBodG1sLnJlcGxhY2UoJyR7dGl0bGV9JywgbWVzc2FnZS50aXRsZSk7XG5cbiAgICBtZXNzYWdlLmh0bWwgPSB1bmRlZmluZWQ7XG4gICAgbWVzc2FnZS50ZXh0ID0gaHRtbDtcbiAgICBtZXNzYWdlLnRpdGxlID0gdW5kZWZpbmVkO1xuICAgIHJldHVybiBtZXNzYWdlO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './monitoring-mock';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL21vbml0b3Jpbmcvc3JjL19fbW9ja3NfXy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9tb25pdG9yaW5nLW1vY2snO1xuIl19
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export const MOCK_SENTRY_OPTIONS = {
|
|
2
|
+
provider: 'sentry',
|
|
3
|
+
dsn: 'https://examplePublicKey@o0.ingest.sentry.io/0',
|
|
4
|
+
identifyUser: true
|
|
5
|
+
};
|
|
6
|
+
export const MOCK_MONITORING_OPTIONS = MOCK_SENTRY_OPTIONS;
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uaXRvcmluZy1tb2NrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9tb25pdG9yaW5nL3NyYy9fX21vY2tzX18vbW9uaXRvcmluZy1tb2NrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUE0QjtJQUMxRCxRQUFRLEVBQUUsUUFBUTtJQUNsQixHQUFHLEVBQUUsZ0RBQWdEO0lBQ3JELFlBQVksRUFBRSxJQUFJO0NBQ25CLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FDbEMsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZW50cnlNb25pdG9yaW5nT3B0aW9ucyB9IGZyb20gJy4uL3NlbnRyeSc7XG5pbXBvcnQgeyBBbnlNb25pdG9yaW5nT3B0aW9ucyB9IGZyb20gJy4uL3NoYXJlZCc7XG5cbmV4cG9ydCBjb25zdCBNT0NLX1NFTlRSWV9PUFRJT05TOiBTZW50cnlNb25pdG9yaW5nT3B0aW9ucyA9IHtcbiAgcHJvdmlkZXI6ICdzZW50cnknLFxuICBkc246ICdodHRwczovL2V4YW1wbGVQdWJsaWNLZXlAbzAuaW5nZXN0LnNlbnRyeS5pby8wJyxcbiAgaWRlbnRpZnlVc2VyOiB0cnVlXG59O1xuXG5leHBvcnQgY29uc3QgTU9DS19NT05JVE9SSU5HX09QVElPTlM6IEFueU1vbml0b3JpbmdPcHRpb25zID1cbiAgTU9DS19TRU5UUllfT1BUSU9OUztcbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public_api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWdvMi1jb3JlLW1vbml0b3JpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL21vbml0b3Jpbmcvc3JjL2lnbzItY29yZS1tb25pdG9yaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljX2FwaSc7XG4iXX0=
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
|
+
import { provideSentryMonitoring } from './sentry/sentry.provider';
|
|
3
|
+
export const MONITORING_OPTIONS = new InjectionToken('monitoring.options');
|
|
4
|
+
export function provideMonitoring(options) {
|
|
5
|
+
if (!options) {
|
|
6
|
+
return [];
|
|
7
|
+
}
|
|
8
|
+
const providers = [
|
|
9
|
+
{ provide: MONITORING_OPTIONS, useValue: options }
|
|
10
|
+
];
|
|
11
|
+
switch (options.provider) {
|
|
12
|
+
case 'sentry':
|
|
13
|
+
providers.push(...provideSentryMonitoring(options));
|
|
14
|
+
break;
|
|
15
|
+
default:
|
|
16
|
+
break;
|
|
17
|
+
}
|
|
18
|
+
return providers;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uaXRvcmluZy5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvbW9uaXRvcmluZy9zcmMvbW9uaXRvcmluZy5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBRXpELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBR25FLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLElBQUksY0FBYyxDQUNsRCxvQkFBb0IsQ0FDckIsQ0FBQztBQUVGLE1BQU0sVUFBVSxpQkFBaUIsQ0FDL0IsT0FBb0M7SUFFcEMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2IsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsTUFBTSxTQUFTLEdBQWU7UUFDNUIsRUFBRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRTtLQUNuRCxDQUFDO0lBRUYsUUFBUSxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDekIsS0FBSyxRQUFRO1lBQ1gsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDcEQsTUFBTTtRQUNSO1lBQ0UsTUFBTTtJQUNWLENBQUM7SUFFRCxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIFByb3ZpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IHByb3ZpZGVTZW50cnlNb25pdG9yaW5nIH0gZnJvbSAnLi9zZW50cnkvc2VudHJ5LnByb3ZpZGVyJztcbmltcG9ydCB7IEFueU1vbml0b3JpbmdPcHRpb25zLCBNb25pdG9yaW5nT3B0aW9ucyB9IGZyb20gJy4vc2hhcmVkJztcblxuZXhwb3J0IGNvbnN0IE1PTklUT1JJTkdfT1BUSU9OUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxNb25pdG9yaW5nT3B0aW9ucyB8IG51bGw+KFxuICAnbW9uaXRvcmluZy5vcHRpb25zJ1xuKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVNb25pdG9yaW5nKFxuICBvcHRpb25zOiBBbnlNb25pdG9yaW5nT3B0aW9ucyB8IG51bGxcbik6IFByb3ZpZGVyW10ge1xuICBpZiAoIW9wdGlvbnMpIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICBjb25zdCBwcm92aWRlcnM6IFByb3ZpZGVyW10gPSBbXG4gICAgeyBwcm92aWRlOiBNT05JVE9SSU5HX09QVElPTlMsIHVzZVZhbHVlOiBvcHRpb25zIH1cbiAgXTtcblxuICBzd2l0Y2ggKG9wdGlvbnMucHJvdmlkZXIpIHtcbiAgICBjYXNlICdzZW50cnknOlxuICAgICAgcHJvdmlkZXJzLnB1c2goLi4ucHJvdmlkZVNlbnRyeU1vbml0b3Jpbmcob3B0aW9ucykpO1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIGJyZWFrO1xuICB9XG5cbiAgcmV0dXJuIHByb3ZpZGVycztcbn1cbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export * from './sentry';
|
|
2
|
+
export * from './shared';
|
|
3
|
+
export * from './monitoring.provider';
|
|
4
|
+
export * from './__mocks__';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvbW9uaXRvcmluZy9zcmMvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zZW50cnknO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQnO1xuZXhwb3J0ICogZnJvbSAnLi9tb25pdG9yaW5nLnByb3ZpZGVyJztcbmV4cG9ydCAqIGZyb20gJy4vX19tb2Nrc19fJztcbiJdfQ==
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export * from './sentry.interface';
|
|
2
|
+
export * from './sentry.provider';
|
|
3
|
+
export * from './sentry.utils';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL21vbml0b3Jpbmcvc3JjL3NlbnRyeS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc2VudHJ5LmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlbnRyeS5wcm92aWRlcic7XG5leHBvcnQgKiBmcm9tICcuL3NlbnRyeS51dGlscyc7XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VudHJ5LmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvbW9uaXRvcmluZy9zcmMvc2VudHJ5L3NlbnRyeS5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJyb3dzZXJPcHRpb25zLCBFcnJvckhhbmRsZXJPcHRpb25zIH0gZnJvbSAnQHNlbnRyeS9hbmd1bGFyJztcblxuaW1wb3J0IHsgTW9uaXRvcmluZ09wdGlvbnMgfSBmcm9tICcuLi9zaGFyZWQvbW9uaXRvcmluZy5pbnRlcmZhY2UnO1xuXG5leHBvcnQgdHlwZSBTZW50cnlNb25pdG9yaW5nT3B0aW9ucyA9IEJyb3dzZXJPcHRpb25zICZcbiAgTW9uaXRvcmluZ09wdGlvbnMgJiB7XG4gICAgcHJvdmlkZXI6ICdzZW50cnknO1xuICAgIGVycm9ySGFuZGxlck9wdGlvbnM/OiBFcnJvckhhbmRsZXJPcHRpb25zO1xuICB9O1xuIl19
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { browserTracingIntegration, createErrorHandler, getClient, init, replayIntegration } from '@sentry/angular';
|
|
2
|
+
import { isReplayEnabled, isTracingEnabled } from './sentry.utils';
|
|
3
|
+
export const createSentryErrorHandler = (options) => {
|
|
4
|
+
return createErrorHandler({
|
|
5
|
+
logErrors: options.logErrors,
|
|
6
|
+
...(options.errorHandlerOptions ?? {})
|
|
7
|
+
});
|
|
8
|
+
};
|
|
9
|
+
export const initSentry = (options, force) => {
|
|
10
|
+
const client = getClient();
|
|
11
|
+
if (!force && client) {
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
const baseConfig = {
|
|
15
|
+
...options,
|
|
16
|
+
integrations: [
|
|
17
|
+
isTracingEnabled(options) && browserTracingIntegration(),
|
|
18
|
+
isReplayEnabled(options) && replayIntegration()
|
|
19
|
+
].filter(Boolean)
|
|
20
|
+
};
|
|
21
|
+
init(baseConfig);
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VudHJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9tb25pdG9yaW5nL3NyYy9zZW50cnkvc2VudHJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCx5QkFBeUIsRUFDekIsa0JBQWtCLEVBQ2xCLFNBQVMsRUFDVCxJQUFJLEVBQ0osaUJBQWlCLEVBQ2xCLE1BQU0saUJBQWlCLENBQUM7QUFHekIsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRW5FLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLENBQ3RDLE9BQWdDLEVBQ1osRUFBRTtJQUN0QixPQUFPLGtCQUFrQixDQUFDO1FBQ3hCLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUztRQUM1QixHQUFHLENBQUMsT0FBTyxDQUFDLG1CQUFtQixJQUFJLEVBQUUsQ0FBQztLQUN2QyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsQ0FDeEIsT0FBZ0MsRUFDaEMsS0FBZSxFQUNULEVBQUU7SUFDUixNQUFNLE1BQU0sR0FBRyxTQUFTLEVBQUUsQ0FBQztJQUMzQixJQUFJLENBQUMsS0FBSyxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBQ3JCLE9BQU87SUFDVCxDQUFDO0lBRUQsTUFBTSxVQUFVLEdBQW1CO1FBQ2pDLEdBQUcsT0FBTztRQUNWLFlBQVksRUFBRTtZQUNaLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxJQUFJLHlCQUF5QixFQUFFO1lBQ3hELGVBQWUsQ0FBQyxPQUFPLENBQUMsSUFBSSxpQkFBaUIsRUFBRTtTQUNoRCxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7S0FDbEIsQ0FBQztJQUVGLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUNuQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCcm93c2VyT3B0aW9ucyxcbiAgU2VudHJ5RXJyb3JIYW5kbGVyLFxuICBicm93c2VyVHJhY2luZ0ludGVncmF0aW9uLFxuICBjcmVhdGVFcnJvckhhbmRsZXIsXG4gIGdldENsaWVudCxcbiAgaW5pdCxcbiAgcmVwbGF5SW50ZWdyYXRpb25cbn0gZnJvbSAnQHNlbnRyeS9hbmd1bGFyJztcblxuaW1wb3J0IHsgU2VudHJ5TW9uaXRvcmluZ09wdGlvbnMgfSBmcm9tICcuL3NlbnRyeS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgaXNSZXBsYXlFbmFibGVkLCBpc1RyYWNpbmdFbmFibGVkIH0gZnJvbSAnLi9zZW50cnkudXRpbHMnO1xuXG5leHBvcnQgY29uc3QgY3JlYXRlU2VudHJ5RXJyb3JIYW5kbGVyID0gKFxuICBvcHRpb25zOiBTZW50cnlNb25pdG9yaW5nT3B0aW9uc1xuKTogU2VudHJ5RXJyb3JIYW5kbGVyID0+IHtcbiAgcmV0dXJuIGNyZWF0ZUVycm9ySGFuZGxlcih7XG4gICAgbG9nRXJyb3JzOiBvcHRpb25zLmxvZ0Vycm9ycyxcbiAgICAuLi4ob3B0aW9ucy5lcnJvckhhbmRsZXJPcHRpb25zID8/IHt9KVxuICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBpbml0U2VudHJ5ID0gKFxuICBvcHRpb25zOiBTZW50cnlNb25pdG9yaW5nT3B0aW9ucyxcbiAgZm9yY2U/OiBib29sZWFuXG4pOiB2b2lkID0+IHtcbiAgY29uc3QgY2xpZW50ID0gZ2V0Q2xpZW50KCk7XG4gIGlmICghZm9yY2UgJiYgY2xpZW50KSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgYmFzZUNvbmZpZzogQnJvd3Nlck9wdGlvbnMgPSB7XG4gICAgLi4ub3B0aW9ucyxcbiAgICBpbnRlZ3JhdGlvbnM6IFtcbiAgICAgIGlzVHJhY2luZ0VuYWJsZWQob3B0aW9ucykgJiYgYnJvd3NlclRyYWNpbmdJbnRlZ3JhdGlvbigpLFxuICAgICAgaXNSZXBsYXlFbmFibGVkKG9wdGlvbnMpICYmIHJlcGxheUludGVncmF0aW9uKClcbiAgICBdLmZpbHRlcihCb29sZWFuKVxuICB9O1xuXG4gIGluaXQoYmFzZUNvbmZpZyk7XG59O1xuIl19
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { APP_INITIALIZER, ErrorHandler } from '@angular/core';
|
|
2
|
+
import { Router } from '@angular/router';
|
|
3
|
+
import { TraceService } from '@sentry/angular';
|
|
4
|
+
import { createSentryErrorHandler, initSentry } from './sentry';
|
|
5
|
+
import { isTracingEnabled } from './sentry.utils';
|
|
6
|
+
export const provideSentryMonitoring = (options) => {
|
|
7
|
+
const isEnabled = options.enabled !== undefined ? options.enabled : true;
|
|
8
|
+
if (!isEnabled) {
|
|
9
|
+
return [];
|
|
10
|
+
}
|
|
11
|
+
initSentry(options);
|
|
12
|
+
const tracingEnabled = isTracingEnabled(options);
|
|
13
|
+
return [
|
|
14
|
+
{
|
|
15
|
+
provide: ErrorHandler,
|
|
16
|
+
useFactory: () => createSentryErrorHandler(options)
|
|
17
|
+
},
|
|
18
|
+
tracingEnabled && {
|
|
19
|
+
provide: TraceService,
|
|
20
|
+
deps: [Router]
|
|
21
|
+
},
|
|
22
|
+
// Force instantiate TraceService to avoid require it in any constructor.
|
|
23
|
+
tracingEnabled && {
|
|
24
|
+
provide: APP_INITIALIZER,
|
|
25
|
+
useFactory: () => () => void 1,
|
|
26
|
+
deps: [TraceService],
|
|
27
|
+
multi: true
|
|
28
|
+
}
|
|
29
|
+
].filter(Boolean);
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VudHJ5LnByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9tb25pdG9yaW5nL3NyYy9zZW50cnkvc2VudHJ5LnByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxlQUFlLEVBRWYsWUFBWSxFQUViLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLFVBQVUsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVoRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxDQUNyQyxPQUFnQyxFQUNXLEVBQUU7SUFDN0MsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLE9BQU8sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUN6RSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDZixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFcEIsTUFBTSxjQUFjLEdBQUcsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFakQsT0FBTztRQUNMO1lBQ0UsT0FBTyxFQUFFLFlBQVk7WUFDckIsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUFDLHdCQUF3QixDQUFDLE9BQU8sQ0FBQztTQUNwRDtRQUNELGNBQWMsSUFBSTtZQUNoQixPQUFPLEVBQUUsWUFBWTtZQUNyQixJQUFJLEVBQUUsQ0FBQyxNQUFNLENBQUM7U0FDZjtRQUNELHlFQUF5RTtRQUN6RSxjQUFjLElBQUk7WUFDaEIsT0FBTyxFQUFFLGVBQWU7WUFDeEIsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUM5QixJQUFJLEVBQUUsQ0FBQyxZQUFZLENBQUM7WUFDcEIsS0FBSyxFQUFFLElBQUk7U0FDWjtLQUNGLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ3BCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFQUF9JTklUSUFMSVpFUixcbiAgQ29uc3RydWN0b3JQcm92aWRlcixcbiAgRXJyb3JIYW5kbGVyLFxuICBGYWN0b3J5UHJvdmlkZXJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBUcmFjZVNlcnZpY2UgfSBmcm9tICdAc2VudHJ5L2FuZ3VsYXInO1xuXG5pbXBvcnQgeyBjcmVhdGVTZW50cnlFcnJvckhhbmRsZXIsIGluaXRTZW50cnkgfSBmcm9tICcuL3NlbnRyeSc7XG5pbXBvcnQgeyBTZW50cnlNb25pdG9yaW5nT3B0aW9ucyB9IGZyb20gJy4vc2VudHJ5LmludGVyZmFjZSc7XG5pbXBvcnQgeyBpc1RyYWNpbmdFbmFibGVkIH0gZnJvbSAnLi9zZW50cnkudXRpbHMnO1xuXG5leHBvcnQgY29uc3QgcHJvdmlkZVNlbnRyeU1vbml0b3JpbmcgPSAoXG4gIG9wdGlvbnM6IFNlbnRyeU1vbml0b3JpbmdPcHRpb25zXG4pOiAoRmFjdG9yeVByb3ZpZGVyIHwgQ29uc3RydWN0b3JQcm92aWRlcilbXSA9PiB7XG4gIGNvbnN0IGlzRW5hYmxlZCA9IG9wdGlvbnMuZW5hYmxlZCAhPT0gdW5kZWZpbmVkID8gb3B0aW9ucy5lbmFibGVkIDogdHJ1ZTtcbiAgaWYgKCFpc0VuYWJsZWQpIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICBpbml0U2VudHJ5KG9wdGlvbnMpO1xuXG4gIGNvbnN0IHRyYWNpbmdFbmFibGVkID0gaXNUcmFjaW5nRW5hYmxlZChvcHRpb25zKTtcblxuICByZXR1cm4gW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEVycm9ySGFuZGxlcixcbiAgICAgIHVzZUZhY3Rvcnk6ICgpID0+IGNyZWF0ZVNlbnRyeUVycm9ySGFuZGxlcihvcHRpb25zKVxuICAgIH0sXG4gICAgdHJhY2luZ0VuYWJsZWQgJiYge1xuICAgICAgcHJvdmlkZTogVHJhY2VTZXJ2aWNlLFxuICAgICAgZGVwczogW1JvdXRlcl1cbiAgICB9LFxuICAgIC8vIEZvcmNlIGluc3RhbnRpYXRlIFRyYWNlU2VydmljZSB0byBhdm9pZCByZXF1aXJlIGl0IGluIGFueSBjb25zdHJ1Y3Rvci5cbiAgICB0cmFjaW5nRW5hYmxlZCAmJiB7XG4gICAgICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXG4gICAgICB1c2VGYWN0b3J5OiAoKSA9PiAoKSA9PiB2b2lkIDEsXG4gICAgICBkZXBzOiBbVHJhY2VTZXJ2aWNlXSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdLmZpbHRlcihCb29sZWFuKTtcbn07XG4iXX0=
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { setUser } from '@sentry/angular';
|
|
2
|
+
export const isTracingEnabled = (options) => !!options.tracesSampleRate || !!options.tracesSampler;
|
|
3
|
+
export const isReplayEnabled = (options) => !!options.replaysSessionSampleRate || !!options.replaysOnErrorSampleRate;
|
|
4
|
+
export const identifySentryUser = (user) => {
|
|
5
|
+
setUser(user
|
|
6
|
+
? {
|
|
7
|
+
id: user.id,
|
|
8
|
+
username: `${user.firstName} ${user.lastName}`,
|
|
9
|
+
email: user.email
|
|
10
|
+
}
|
|
11
|
+
: null);
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VudHJ5LnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9tb25pdG9yaW5nL3NyYy9zZW50cnkvc2VudHJ5LnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUkxQyxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLE9BQWdDLEVBQVcsRUFBRSxDQUM1RSxDQUFDLENBQUMsT0FBTyxDQUFDLGdCQUFnQixJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDO0FBRXhELE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUFDLE9BQWdDLEVBQVcsRUFBRSxDQUMzRSxDQUFDLENBQUMsT0FBTyxDQUFDLHdCQUF3QixJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsd0JBQXdCLENBQUM7QUFFM0UsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxJQUFxQixFQUFRLEVBQUU7SUFDaEUsT0FBTyxDQUNMLElBQUk7UUFDRixDQUFDLENBQUM7WUFDRSxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDWCxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDOUMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1NBQ2xCO1FBQ0gsQ0FBQyxDQUFDLElBQUksQ0FDVCxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZVVzZXIgfSBmcm9tICdAaWdvMi9jb3JlL3VzZXInO1xuXG5pbXBvcnQgeyBzZXRVc2VyIH0gZnJvbSAnQHNlbnRyeS9hbmd1bGFyJztcblxuaW1wb3J0IHsgU2VudHJ5TW9uaXRvcmluZ09wdGlvbnMgfSBmcm9tICcuL3NlbnRyeS5pbnRlcmZhY2UnO1xuXG5leHBvcnQgY29uc3QgaXNUcmFjaW5nRW5hYmxlZCA9IChvcHRpb25zOiBTZW50cnlNb25pdG9yaW5nT3B0aW9ucyk6IGJvb2xlYW4gPT5cbiAgISFvcHRpb25zLnRyYWNlc1NhbXBsZVJhdGUgfHwgISFvcHRpb25zLnRyYWNlc1NhbXBsZXI7XG5cbmV4cG9ydCBjb25zdCBpc1JlcGxheUVuYWJsZWQgPSAob3B0aW9uczogU2VudHJ5TW9uaXRvcmluZ09wdGlvbnMpOiBib29sZWFuID0+XG4gICEhb3B0aW9ucy5yZXBsYXlzU2Vzc2lvblNhbXBsZVJhdGUgfHwgISFvcHRpb25zLnJlcGxheXNPbkVycm9yU2FtcGxlUmF0ZTtcblxuZXhwb3J0IGNvbnN0IGlkZW50aWZ5U2VudHJ5VXNlciA9ICh1c2VyOiBCYXNlVXNlciB8IG51bGwpOiB2b2lkID0+IHtcbiAgc2V0VXNlcihcbiAgICB1c2VyXG4gICAgICA/IHtcbiAgICAgICAgICBpZDogdXNlci5pZCxcbiAgICAgICAgICB1c2VybmFtZTogYCR7dXNlci5maXJzdE5hbWV9ICR7dXNlci5sYXN0TmFtZX1gLFxuICAgICAgICAgIGVtYWlsOiB1c2VyLmVtYWlsXG4gICAgICAgIH1cbiAgICAgIDogbnVsbFxuICApO1xufTtcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW55LW1vbml0b3JpbmcuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9tb25pdG9yaW5nL3NyYy9zaGFyZWQvYW55LW1vbml0b3JpbmcuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZW50cnlNb25pdG9yaW5nT3B0aW9ucyB9IGZyb20gJy4uL3NlbnRyeS9zZW50cnkuaW50ZXJmYWNlJztcblxuZXhwb3J0IHR5cGUgQW55TW9uaXRvcmluZ09wdGlvbnMgPSBTZW50cnlNb25pdG9yaW5nT3B0aW9ucztcbiJdfQ==
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './any-monitoring.interface';
|
|
2
|
+
export * from './monitoring.interface';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL21vbml0b3Jpbmcvc3JjL3NoYXJlZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsd0JBQXdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FueS1tb25pdG9yaW5nLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL21vbml0b3JpbmcuaW50ZXJmYWNlJztcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uaXRvcmluZy5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL21vbml0b3Jpbmcvc3JjL3NoYXJlZC9tb25pdG9yaW5nLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgTW9uaXRvcmluZ1Byb3ZpZGVyID0gJ3NlbnRyeSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTW9uaXRvcmluZ09wdGlvbnMge1xuICBwcm92aWRlcjogTW9uaXRvcmluZ1Byb3ZpZGVyO1xuICAvKiogQWRkIHRoZSB1c2VyIGluZm8oaWQsIG5hbWUsIGVtYWlsKSB0byB0aGUgZXZlbnQgcmVxdWVzdCAqL1xuICBpZGVudGlmeVVzZXI/OiBib29sZWFuO1xuICBsb2dFcnJvcnM/OiBib29sZWFuO1xufVxuIl19
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public_api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWdvMi1jb3JlLW5ldHdvcmsuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL25ldHdvcmsvc3JjL2lnbzItY29yZS1uZXR3b3JrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljX2FwaSc7XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29yay5pbnRlcmZhY2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9uZXR3b3JrL3NyYy9uZXR3b3JrLmludGVyZmFjZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgQ29ubmVjdGlvblN0YXRlIHtcbiAgY29ubmVjdGlvbjogYm9vbGVhbjtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { EventEmitter, Injectable, Injector } from '@angular/core';
|
|
2
|
+
import { MessageService } from '@igo2/core/message';
|
|
3
|
+
import { fromEvent } from 'rxjs';
|
|
4
|
+
import { debounceTime, startWith } from 'rxjs/operators';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@igo2/core/message";
|
|
7
|
+
export class NetworkService {
|
|
8
|
+
messageService;
|
|
9
|
+
injector;
|
|
10
|
+
stateChangeEventEmitter = new EventEmitter();
|
|
11
|
+
onlineSubscription;
|
|
12
|
+
offlineSubscription;
|
|
13
|
+
previousMessageId;
|
|
14
|
+
state = {
|
|
15
|
+
connection: window.navigator.onLine
|
|
16
|
+
};
|
|
17
|
+
constructor(messageService, injector) {
|
|
18
|
+
this.messageService = messageService;
|
|
19
|
+
this.injector = injector;
|
|
20
|
+
this.checkNetworkState();
|
|
21
|
+
}
|
|
22
|
+
checkNetworkState() {
|
|
23
|
+
this.onlineSubscription = fromEvent(window, 'online').subscribe(() => {
|
|
24
|
+
if (this.previousMessageId) {
|
|
25
|
+
this.messageService.remove(this.previousMessageId);
|
|
26
|
+
}
|
|
27
|
+
const messageObj = this.messageService.info('igo.core.network.online.message', 'igo.core.network.online.title');
|
|
28
|
+
this.previousMessageId = messageObj.toastId;
|
|
29
|
+
this.state.connection = true;
|
|
30
|
+
this.emitEvent();
|
|
31
|
+
});
|
|
32
|
+
this.offlineSubscription = fromEvent(window, 'offline').subscribe(() => {
|
|
33
|
+
if (this.previousMessageId) {
|
|
34
|
+
this.messageService.remove(this.previousMessageId);
|
|
35
|
+
}
|
|
36
|
+
const messageObj = this.messageService.info('igo.core.network.offline.message', 'igo.core.network.offline.title');
|
|
37
|
+
this.previousMessageId = messageObj.toastId;
|
|
38
|
+
this.state.connection = false;
|
|
39
|
+
this.emitEvent();
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
emitEvent() {
|
|
43
|
+
this.stateChangeEventEmitter.emit(this.state);
|
|
44
|
+
}
|
|
45
|
+
ngOnDestroy() {
|
|
46
|
+
try {
|
|
47
|
+
this.offlineSubscription.unsubscribe();
|
|
48
|
+
this.onlineSubscription.unsubscribe();
|
|
49
|
+
}
|
|
50
|
+
catch {
|
|
51
|
+
// empty
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
currentState(reportState = true) {
|
|
55
|
+
return reportState
|
|
56
|
+
? this.stateChangeEventEmitter.pipe(debounceTime(300), startWith(this.state))
|
|
57
|
+
: this.stateChangeEventEmitter.pipe(debounceTime(300));
|
|
58
|
+
}
|
|
59
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NetworkService, deps: [{ token: i1.MessageService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
60
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NetworkService, providedIn: 'root' });
|
|
61
|
+
}
|
|
62
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NetworkService, decorators: [{
|
|
63
|
+
type: Injectable,
|
|
64
|
+
args: [{
|
|
65
|
+
providedIn: 'root'
|
|
66
|
+
}]
|
|
67
|
+
}], ctorParameters: () => [{ type: i1.MessageService }, { type: i0.Injector }] });
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29yay5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9uZXR3b3JrL3NyYy9uZXR3b3JrLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRTlFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVwRCxPQUFPLEVBQTRCLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzRCxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFPekQsTUFBTSxPQUFPLGNBQWM7SUFXZjtJQUNBO0lBWEYsdUJBQXVCLEdBQUcsSUFBSSxZQUFZLEVBQW1CLENBQUM7SUFDOUQsa0JBQWtCLENBQWU7SUFDakMsbUJBQW1CLENBQWU7SUFDbEMsaUJBQWlCLENBQUM7SUFFbEIsS0FBSyxHQUFvQjtRQUMvQixVQUFVLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNO0tBQ3BDLENBQUM7SUFFRixZQUNVLGNBQThCLEVBQzlCLFFBQWtCO1FBRGxCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBRTFCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFTyxpQkFBaUI7UUFDdkIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNuRSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO2dCQUMzQixJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUNyRCxDQUFDO1lBQ0QsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQ3pDLGlDQUFpQyxFQUNqQywrQkFBK0IsQ0FDaEMsQ0FBQztZQUNGLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDO1lBQzVDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztZQUM3QixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDbkIsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3JFLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBQ3JELENBQUM7WUFDRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FDekMsa0NBQWtDLEVBQ2xDLGdDQUFnQyxDQUNqQyxDQUFDO1lBQ0YsSUFBSSxDQUFDLGlCQUFpQixHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUM7WUFDNUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1lBQzlCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNuQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxTQUFTO1FBQ2YsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUM7WUFDSCxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDdkMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3hDLENBQUM7UUFBQyxNQUFNLENBQUM7WUFDUCxRQUFRO1FBQ1YsQ0FBQztJQUNILENBQUM7SUFFRCxZQUFZLENBQUMsV0FBVyxHQUFHLElBQUk7UUFDN0IsT0FBTyxXQUFXO1lBQ2hCLENBQUMsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUMvQixZQUFZLENBQUMsR0FBRyxDQUFDLEVBQ2pCLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQ3RCO1lBQ0gsQ0FBQyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDM0QsQ0FBQzt3R0FqRVUsY0FBYzs0R0FBZCxjQUFjLGNBRmIsTUFBTTs7NEZBRVAsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIsIEluamVjdGFibGUsIEluamVjdG9yLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlL21lc3NhZ2UnO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24sIGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBzdGFydFdpdGggfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IENvbm5lY3Rpb25TdGF0ZSB9IGZyb20gJy4vbmV0d29yay5pbnRlcmZhY2VzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgTmV0d29ya1NlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHN0YXRlQ2hhbmdlRXZlbnRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcjxDb25uZWN0aW9uU3RhdGU+KCk7XG4gIHByaXZhdGUgb25saW5lU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgb2ZmbGluZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIHByZXZpb3VzTWVzc2FnZUlkO1xuXG4gIHByaXZhdGUgc3RhdGU6IENvbm5lY3Rpb25TdGF0ZSA9IHtcbiAgICBjb25uZWN0aW9uOiB3aW5kb3cubmF2aWdhdG9yLm9uTGluZVxuICB9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yXG4gICkge1xuICAgIHRoaXMuY2hlY2tOZXR3b3JrU3RhdGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tOZXR3b3JrU3RhdGUoKSB7XG4gICAgdGhpcy5vbmxpbmVTdWJzY3JpcHRpb24gPSBmcm9tRXZlbnQod2luZG93LCAnb25saW5lJykuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIGlmICh0aGlzLnByZXZpb3VzTWVzc2FnZUlkKSB7XG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UucmVtb3ZlKHRoaXMucHJldmlvdXNNZXNzYWdlSWQpO1xuICAgICAgfVxuICAgICAgY29uc3QgbWVzc2FnZU9iaiA9IHRoaXMubWVzc2FnZVNlcnZpY2UuaW5mbyhcbiAgICAgICAgJ2lnby5jb3JlLm5ldHdvcmsub25saW5lLm1lc3NhZ2UnLFxuICAgICAgICAnaWdvLmNvcmUubmV0d29yay5vbmxpbmUudGl0bGUnXG4gICAgICApO1xuICAgICAgdGhpcy5wcmV2aW91c01lc3NhZ2VJZCA9IG1lc3NhZ2VPYmoudG9hc3RJZDtcbiAgICAgIHRoaXMuc3RhdGUuY29ubmVjdGlvbiA9IHRydWU7XG4gICAgICB0aGlzLmVtaXRFdmVudCgpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5vZmZsaW5lU3Vic2NyaXB0aW9uID0gZnJvbUV2ZW50KHdpbmRvdywgJ29mZmxpbmUnKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMucHJldmlvdXNNZXNzYWdlSWQpIHtcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5yZW1vdmUodGhpcy5wcmV2aW91c01lc3NhZ2VJZCk7XG4gICAgICB9XG4gICAgICBjb25zdCBtZXNzYWdlT2JqID0gdGhpcy5tZXNzYWdlU2VydmljZS5pbmZvKFxuICAgICAgICAnaWdvLmNvcmUubmV0d29yay5vZmZsaW5lLm1lc3NhZ2UnLFxuICAgICAgICAnaWdvLmNvcmUubmV0d29yay5vZmZsaW5lLnRpdGxlJ1xuICAgICAgKTtcbiAgICAgIHRoaXMucHJldmlvdXNNZXNzYWdlSWQgPSBtZXNzYWdlT2JqLnRvYXN0SWQ7XG4gICAgICB0aGlzLnN0YXRlLmNvbm5lY3Rpb24gPSBmYWxzZTtcbiAgICAgIHRoaXMuZW1pdEV2ZW50KCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRFdmVudCgpIHtcbiAgICB0aGlzLnN0YXRlQ2hhbmdlRXZlbnRFbWl0dGVyLmVtaXQodGhpcy5zdGF0ZSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0cnkge1xuICAgICAgdGhpcy5vZmZsaW5lU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICB0aGlzLm9ubGluZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gZW1wdHlcbiAgICB9XG4gIH1cblxuICBjdXJyZW50U3RhdGUocmVwb3J0U3RhdGUgPSB0cnVlKTogT2JzZXJ2YWJsZTxDb25uZWN0aW9uU3RhdGU+IHtcbiAgICByZXR1cm4gcmVwb3J0U3RhdGVcbiAgICAgID8gdGhpcy5zdGF0ZUNoYW5nZUV2ZW50RW1pdHRlci5waXBlKFxuICAgICAgICAgIGRlYm91bmNlVGltZSgzMDApLFxuICAgICAgICAgIHN0YXJ0V2l0aCh0aGlzLnN0YXRlKVxuICAgICAgICApXG4gICAgICA6IHRoaXMuc3RhdGVDaGFuZ2VFdmVudEVtaXR0ZXIucGlwZShkZWJvdW5jZVRpbWUoMzAwKSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './network.service';
|
|
2
|
+
export * from './network.interfaces';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvbmV0d29yay9zcmMvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsc0JBQXNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL25ldHdvcmsuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL25ldHdvcmsuaW50ZXJmYWNlcyc7XG4iXX0=
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Public API Surface of core
|
|
3
|
+
*/
|
|
4
|
+
export * from './lib/core.module';
|
|
5
|
+
/** @deprecated */
|
|
6
|
+
// export * from '@igo2/core/language';
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLG1CQUFtQixDQUFDO0FBRWxDLGtCQUFrQjtBQUNsQix1Q0FBdUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIGNvcmVcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb3JlLm1vZHVsZSc7XG5cbi8qKiBAZGVwcmVjYXRlZCAqL1xuLy8gZXhwb3J0ICogZnJvbSAnQGlnbzIvY29yZS9sYW5ndWFnZSc7XG4iXX0=
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public_api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWdvMi1jb3JlLXJlZ2V4LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9yZWdleC9zcmMvaWdvMi1jb3JlLXJlZ2V4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljX2FwaSc7XG4iXX0=
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './regex.service';
|
|
2
|
+
export * from './regex.interface';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvcmVnZXgvc3JjL3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9yZWdleC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vcmVnZXguaW50ZXJmYWNlJztcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnZXguaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9yZWdleC9zcmMvcmVnZXguaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBSZWdleE9wdGlvbnMgPSBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuIl19
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { ConfigService } from '@igo2/core/config';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@igo2/core/config";
|
|
5
|
+
export class RegexService {
|
|
6
|
+
config;
|
|
7
|
+
options;
|
|
8
|
+
constructor(config) {
|
|
9
|
+
this.config = config;
|
|
10
|
+
this.options = this.config.getConfig('regex');
|
|
11
|
+
}
|
|
12
|
+
getAll() {
|
|
13
|
+
return this.options;
|
|
14
|
+
}
|
|
15
|
+
get(key) {
|
|
16
|
+
if (this.options) {
|
|
17
|
+
return this.options[key];
|
|
18
|
+
}
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RegexService, deps: [{ token: i1.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
22
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RegexService, providedIn: 'root' });
|
|
23
|
+
}
|
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RegexService, decorators: [{
|
|
25
|
+
type: Injectable,
|
|
26
|
+
args: [{
|
|
27
|
+
providedIn: 'root'
|
|
28
|
+
}]
|
|
29
|
+
}], ctorParameters: () => [{ type: i1.ConfigService }] });
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnZXguc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvcmVnZXgvc3JjL3JlZ2V4LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7OztBQU9sRCxNQUFNLE9BQU8sWUFBWTtJQUdIO0lBRlYsT0FBTyxDQUFlO0lBRWhDLFlBQW9CLE1BQXFCO1FBQXJCLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDdkMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsTUFBTTtRQUNKLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQsR0FBRyxDQUFDLEdBQUc7UUFDTCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNqQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDM0IsQ0FBQztRQUNELE9BQU87SUFDVCxDQUFDO3dHQWhCVSxZQUFZOzRHQUFaLFlBQVksY0FGWCxNQUFNOzs0RkFFUCxZQUFZO2tCQUh4QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQ29uZmlnU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUvY29uZmlnJztcblxuaW1wb3J0IHsgUmVnZXhPcHRpb25zIH0gZnJvbSAnLi9yZWdleC5pbnRlcmZhY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBSZWdleFNlcnZpY2Uge1xuICBwcm90ZWN0ZWQgb3B0aW9uczogUmVnZXhPcHRpb25zO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29uZmlnOiBDb25maWdTZXJ2aWNlKSB7XG4gICAgdGhpcy5vcHRpb25zID0gdGhpcy5jb25maWcuZ2V0Q29uZmlnKCdyZWdleCcpO1xuICB9XG5cbiAgZ2V0QWxsKCkge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnM7XG4gIH1cblxuICBnZXQoa2V5KSB7XG4gICAgaWYgKHRoaXMub3B0aW9ucykge1xuICAgICAgcmV0dXJuIHRoaXMub3B0aW9uc1trZXldO1xuICAgIH1cbiAgICByZXR1cm47XG4gIH1cbn1cbiJdfQ==
|