@igo2/core 1.13.0 → 1.13.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.
@@ -1,7 +1,8 @@
1
1
  import { Injectable, Inject, Injector } from '@angular/core';
2
- import { BehaviorSubject } from 'rxjs';
2
+ import { BehaviorSubject, forkJoin } from 'rxjs';
3
3
  import { ToastrService } from 'ngx-toastr';
4
4
  import { MessageType } from './message.enum';
5
+ import { debounceTime, first } from 'rxjs/operators';
5
6
  import * as i0 from "@angular/core";
6
7
  import * as i1 from "../../config/config.service";
7
8
  import * as i2 from "../../language/shared/language.service";
@@ -11,7 +12,39 @@ export class MessageService {
11
12
  this.configService = configService;
12
13
  this.languageService = languageService;
13
14
  this.messages$ = new BehaviorSubject([]);
15
+ this.activeMessageTranslations = [];
14
16
  this.options = this.configService.getConfig('message') || {};
17
+ this.languageService.language$.pipe(debounceTime(500)).subscribe(r => {
18
+ if (this.toastr.toasts.length === 0) {
19
+ this.activeMessageTranslations = [];
20
+ }
21
+ this.toastr.toasts.map(toast => {
22
+ const activeMessageTranslation = this.activeMessageTranslations.find(amt => amt.id === toast.toastId);
23
+ if (activeMessageTranslation) {
24
+ const translatedTextInterpolateParams = { ...activeMessageTranslation.textInterpolateParams };
25
+ const translatedTitleInterpolateParams = { ...activeMessageTranslation.titleInterpolateParams };
26
+ if (activeMessageTranslation.textInterpolateParams) {
27
+ Object.keys(activeMessageTranslation.textInterpolateParams).map(k => {
28
+ translatedTextInterpolateParams[k] =
29
+ this.languageService.translate.instant(activeMessageTranslation.textInterpolateParams[k]);
30
+ });
31
+ }
32
+ if (activeMessageTranslation.titleInterpolateParams) {
33
+ Object.keys(activeMessageTranslation.titleInterpolateParams).map(k => {
34
+ translatedTitleInterpolateParams[k] =
35
+ this.languageService.translate.instant(activeMessageTranslation.titleInterpolateParams[k]);
36
+ });
37
+ }
38
+ forkJoin([
39
+ this.languageService.translate.get(activeMessageTranslation.textKey, translatedTextInterpolateParams),
40
+ this.languageService.translate.get(activeMessageTranslation.titleKey, translatedTitleInterpolateParams)
41
+ ]).pipe(first()).subscribe((res) => {
42
+ toast.toastRef.componentInstance.message = res[0];
43
+ toast.toastRef.componentInstance.title = res[1];
44
+ });
45
+ }
46
+ });
47
+ });
15
48
  }
16
49
  get toastr() {
17
50
  return this.injector.get(ToastrService);
@@ -21,6 +54,8 @@ export class MessageService {
21
54
  return this.error(httpError.error.message, httpError.error.title);
22
55
  }
23
56
  message(message) {
57
+ const messageType = message.type;
58
+ this.toastr.toastrConfig.iconClasses[messageType] = `toast-${messageType}`;
24
59
  this.messages$.next(this.messages$.value.concat([message]));
25
60
  message.options = message.options || {};
26
61
  const currentDate = new Date();
@@ -33,50 +68,93 @@ export class MessageService {
33
68
  message.options.to = new Date(Date.parse(message.options.to.replace(/-/g, ' ')));
34
69
  }
35
70
  if (currentDate > message.options.from && currentDate < message.options.to) {
71
+ if (message.showIcon === false) {
72
+ this.toastr.toastrConfig.iconClasses[messageType] = `toast-${messageType} toast-no-icon`;
73
+ }
36
74
  message = this.handleTemplate(message);
37
75
  if (message.text) {
38
76
  let messageShown;
39
77
  switch (message.type) {
40
78
  case MessageType.SUCCESS:
41
- messageShown = this.success(message.text, message.title, message.options);
79
+ messageShown = this.success(message.text, message.title, message.options, message.textInterpolateParams, message.titleInterpolateParams);
42
80
  break;
43
81
  case MessageType.ERROR:
44
- messageShown = this.error(message.text, message.title, message.options);
82
+ messageShown = this.error(message.text, message.title, message.options, message.textInterpolateParams, message.titleInterpolateParams);
45
83
  break;
46
84
  case MessageType.INFO:
47
- messageShown = this.info(message.text, message.title, message.options);
85
+ messageShown = this.info(message.text, message.title, message.options, message.textInterpolateParams, message.titleInterpolateParams);
86
+ break;
87
+ case MessageType.SHOW:
88
+ messageShown = this.show(message.text, message.title, message.options, message.textInterpolateParams, message.titleInterpolateParams);
48
89
  break;
49
90
  case MessageType.ALERT:
50
91
  case MessageType.WARNING:
51
- messageShown = this.alert(message.text, message.title, message.options);
92
+ messageShown = this.alert(message.text, message.title, message.options, message.textInterpolateParams, message.titleInterpolateParams);
52
93
  break;
53
94
  default:
54
- messageShown = this.info(message.text, message.title, message.options);
95
+ messageShown = this.info(message.text, message.title, message.options, message.textInterpolateParams, message.titleInterpolateParams);
55
96
  break;
56
97
  }
57
98
  message.options.id = messageShown.toastId;
58
99
  }
59
100
  }
60
101
  }
61
- success(text, title = 'igo.core.message.success', options = {}) {
62
- const message = this.languageService.translate.instant(text);
63
- const translatedTitle = this.languageService.translate.instant(title);
64
- return this.toastr.success(message, translatedTitle, options);
102
+ success(text, title = 'igo.core.message.success', options = {}, textInterpolateParams, titleInterpolateParams) {
103
+ return this.handleNgxToastr('success', text, title, options, textInterpolateParams, titleInterpolateParams);
104
+ }
105
+ error(text, title = 'igo.core.message.error', options = {}, textInterpolateParams, titleInterpolateParams) {
106
+ return this.handleNgxToastr('error', text, title, options, textInterpolateParams, titleInterpolateParams);
65
107
  }
66
- error(text, title = 'igo.core.message.error', options = {}) {
67
- const message = this.languageService.translate.instant(text);
68
- const translatedTitle = this.languageService.translate.instant(title);
69
- return this.toastr.error(message, translatedTitle, options);
108
+ info(text, title = 'igo.core.message.info', options = {}, textInterpolateParams, titleInterpolateParams) {
109
+ return this.handleNgxToastr('info', text, title, options, textInterpolateParams, titleInterpolateParams);
70
110
  }
71
- info(text, title = 'igo.core.message.info', options = {}) {
72
- const message = this.languageService.translate.instant(text);
73
- const translatedTitle = this.languageService.translate.instant(title);
74
- return this.toastr.info(message, translatedTitle, options);
111
+ alert(text, title = 'igo.core.message.alert', options = {}, textInterpolateParams, titleInterpolateParams) {
112
+ return this.handleNgxToastr('alert', text, title, options, textInterpolateParams, titleInterpolateParams);
75
113
  }
76
- alert(text, title = 'igo.core.message.alert', options = {}) {
77
- const message = this.languageService.translate.instant(text);
78
- const translatedTitle = this.languageService.translate.instant(title);
79
- return this.toastr.warning(message, translatedTitle, options);
114
+ show(text, title = 'igo.core.message.info', options = {}, textInterpolateParams, titleInterpolateParams) {
115
+ return this.handleNgxToastr('show', text, title, options, textInterpolateParams, titleInterpolateParams);
116
+ }
117
+ handleNgxToastr(type, text, title, options = {}, textInterpolateParams, titleInterpolateParams) {
118
+ const translatedTextInterpolateParams = { ...textInterpolateParams };
119
+ const translatedTitlenterpolateParams = { ...titleInterpolateParams };
120
+ if (textInterpolateParams) {
121
+ Object.keys(textInterpolateParams).map(k => {
122
+ translatedTextInterpolateParams[k] =
123
+ this.languageService.translate.instant(textInterpolateParams[k]);
124
+ });
125
+ }
126
+ if (titleInterpolateParams) {
127
+ Object.keys(titleInterpolateParams).map(k => {
128
+ translatedTitlenterpolateParams[k] =
129
+ this.languageService.translate.instant(titleInterpolateParams[k]);
130
+ });
131
+ }
132
+ const message = this.languageService.translate.instant(text, translatedTextInterpolateParams);
133
+ const translatedTitle = this.languageService.translate.instant(title, translatedTitlenterpolateParams);
134
+ let activeToast;
135
+ switch (type) {
136
+ case 'success':
137
+ activeToast = this.toastr.success(message, translatedTitle, options);
138
+ break;
139
+ case 'error':
140
+ activeToast = this.toastr.error(message, translatedTitle, options);
141
+ break;
142
+ case 'show':
143
+ case 'info':
144
+ activeToast = this.toastr.info(message, translatedTitle, options);
145
+ break;
146
+ case 'alert':
147
+ activeToast = this.toastr.warning(message, translatedTitle, options);
148
+ break;
149
+ }
150
+ this.activeMessageTranslations.push({
151
+ id: activeToast.toastId,
152
+ titleKey: title,
153
+ textKey: text,
154
+ textInterpolateParams,
155
+ titleInterpolateParams
156
+ });
157
+ return activeToast;
80
158
  }
81
159
  remove(id) {
82
160
  this.toastr.remove(id);
@@ -112,4 +190,4 @@ MessageService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: MessageSe
112
190
  type: Inject,
113
191
  args: [Injector]
114
192
  }] }, { type: i1.ConfigService }, { type: i2.LanguageService }]; }, null); })();
115
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL21lc3NhZ2Uvc2hhcmVkL21lc3NhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFN0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUt2QyxPQUFPLEVBQWlDLGFBQWEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMxRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFPN0MsTUFBTSxPQUFPLGNBQWM7SUFJekIsWUFDNEIsUUFBa0IsRUFDcEMsYUFBNEIsRUFDNUIsZUFBZ0M7UUFGZCxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ3BDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQU5uQyxjQUFTLEdBQUcsSUFBSSxlQUFlLENBQVksRUFBRSxDQUFDLENBQUM7UUFRcEQsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDL0QsQ0FBQztJQUVELElBQVksTUFBTTtRQUNoQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxTQUFTLENBQUMsU0FBNEI7UUFDcEMsU0FBUyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQzlCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFRCxPQUFPLENBQUMsT0FBZ0I7UUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTVELE9BQU8sQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sSUFBSSxFQUFvQixDQUFDO1FBQzFELE1BQU0sV0FBVyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFFL0IsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM1RixPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3RGLElBQUksT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUU7WUFDNUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN0RjtRQUNELElBQUksT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxRQUFRLEVBQUU7WUFDMUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcs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QUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0MsSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUvQyxPQUFPLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQztRQUN6QixPQUFPLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNwQixPQUFPLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQztRQUMxQixPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDOzs0RUFsSFUsY0FBYyxjQUtmLFFBQVE7b0VBTFAsY0FBYyxXQUFkLGNBQWMsbUJBRmIsTUFBTTt1RkFFUCxjQUFjO2NBSDFCLFVBQVU7ZUFBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7c0JBTUksTUFBTTt1QkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0LCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQ29uZmlnU2VydmljZSB9IGZyb20gJy4uLy4uL2NvbmZpZy9jb25maWcuc2VydmljZSc7XG5cbmltcG9ydCB7IE1lc3NhZ2UsIE1lc3NhZ2VPcHRpb25zIH0gZnJvbSAnLi9tZXNzYWdlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBBY3RpdmVUb2FzdCwgSW5kaXZpZHVhbENvbmZpZywgVG9hc3RyU2VydmljZSB9IGZyb20gJ25neC10b2FzdHInO1xuaW1wb3J0IHsgTWVzc2FnZVR5cGUgfSBmcm9tICcuL21lc3NhZ2UuZW51bSc7XG5pbXBvcnQgeyBMYW5ndWFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9sYW5ndWFnZS9zaGFyZWQvbGFuZ3VhZ2Uuc2VydmljZSc7XG5cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgTWVzc2FnZVNlcnZpY2Uge1xuICBwdWJsaWMgbWVzc2FnZXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNZXNzYWdlW10+KFtdKTtcbiAgcHJpdmF0ZSBvcHRpb25zOiBNZXNzYWdlT3B0aW9ucztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KEluamVjdG9yKSBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIGNvbmZpZ1NlcnZpY2U6IENvbmZpZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBsYW5ndWFnZVNlcnZpY2U6IExhbmd1YWdlU2VydmljZVxuICApIHtcbiAgICB0aGlzLm9wdGlvbnMgPSB0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKCdtZXNzYWdlJykgfHwge307XG4gIH1cblxuICBwcml2YXRlIGdldCB0b2FzdHIoKTogVG9hc3RyU2VydmljZSB7XG4gICAgcmV0dXJuIHRoaXMuaW5qZWN0b3IuZ2V0KFRvYXN0clNlcnZpY2UpO1xuICB9XG5cbiAgc2hvd0Vycm9yKGh0dHBFcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpIHtcbiAgICBodHRwRXJyb3IuZXJyb3IuY2F1Z2h0ID0gdHJ1ZTtcbiAgICByZXR1cm4gdGhpcy5lcnJvcihodHRwRXJyb3IuZXJyb3IubWVzc2FnZSwgaHR0cEVycm9yLmVycm9yLnRpdGxlKTtcbiAgfVxuXG4gIG1lc3NhZ2UobWVzc2FnZTogTWVzc2FnZSkge1xuICAgIHRoaXMubWVzc2FnZXMkLm5leHQodGhpcy5tZXNzYWdlcyQudmFsdWUuY29uY2F0KFttZXNzYWdlXSkpO1xuXG4gICAgbWVzc2FnZS5vcHRpb25zID0gbWVzc2FnZS5vcHRpb25zIHx8IHt9IGFzIE1lc3NhZ2VPcHRpb25zO1xuICAgIGNvbnN0IGN1cnJlbnREYXRlID0gbmV3IERhdGUoKTtcblxuICAgIG1lc3NhZ2Uub3B0aW9ucy5mcm9tID0gbWVzc2FnZS5vcHRpb25zLmZyb20gPyBtZXNzYWdlLm9wdGlvbnMuZnJvbSA6IG5ldyBEYXRlKCcxIGphbiAxOTAwJyk7XG4gICAgbWVzc2FnZS5vcHRpb25zLnRvID0gbWVzc2FnZS5vcHRpb25zLnRvID8gbWVzc2FnZS5vcHRpb25zLnRvIDogbmV3IERhdGUoJzEgamFuIDMwMDAnKTtcbiAgICBpZiAodHlwZW9mIG1lc3NhZ2Uub3B0aW9ucy5mcm9tID09PSAnc3RyaW5nJykge1xuICAgICAgbWVzc2FnZS5vcHRpb25zLmZyb20gPSBuZXcgRGF0ZShEYXRlLnBhcnNlKG1lc3NhZ2Uub3B0aW9ucy5mcm9tLnJlcGxhY2UoLy0vZywgJyAnKSkpO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIG1lc3NhZ2Uub3B0aW9ucy50byA9PT0gJ3N0cmluZycpIHtcbiAgICAgIG1lc3NhZ2Uub3B0aW9ucy50byA9IG5ldyBEYXRlKERhdGUucGFyc2UobWVzc2FnZS5vcHRpb25zLnRvLnJlcGxhY2UoLy0vZywgJyAnKSkpO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICBjdXJyZW50RGF0ZSA+IG1lc3NhZ2Uub3B0aW9ucy5mcm9tICYmIGN1cnJlbnREYXRlIDwgbWVzc2FnZS5vcHRpb25zLnRvKSB7XG5cbiAgICAgIG1lc3NhZ2UgPSB0aGlzLmhhbmRsZVRlbXBsYXRlKG1lc3NhZ2UpO1xuXG4gICAgICBpZiAobWVzc2FnZS50ZXh0KSB7XG4gICAgICAgIGxldCBtZXNzYWdlU2hvd246IEFjdGl2ZVRvYXN0PGFueT47XG4gICAgICAgIHN3aXRjaCAobWVzc2FnZS50eXBlKSB7XG4gICAgICAgICAgY2FzZSBNZXNzYWdlVHlwZS5TVUNDRVNTOlxuICAgICAgICAgICAgbWVzc2FnZVNob3duID0gdGhpcy5zdWNjZXNzKG1lc3NhZ2UudGV4dCwgbWVzc2FnZS50aXRsZSwgbWVzc2FnZS5vcHRpb25zKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgTWVzc2FnZVR5cGUuRVJST1I6XG4gICAgICAgICAgICBtZXNzYWdlU2hvd24gPSB0aGlzLmVycm9yKG1lc3NhZ2UudGV4dCwgbWVzc2FnZS50aXRsZSwgbWVzc2FnZS5vcHRpb25zKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgTWVzc2FnZVR5cGUuSU5GTzpcbiAgICAgICAgICAgIG1lc3NhZ2VTaG93biA9IHRoaXMuaW5mbyhtZXNzYWdlLnRleHQsIG1lc3NhZ2UudGl0bGUsIG1lc3NhZ2Uub3B0aW9ucyk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIE1lc3NhZ2VUeXBlLkFMRVJUOlxuICAgICAgICAgIGNhc2UgTWVzc2FnZVR5cGUuV0FSTklORzpcbiAgICAgICAgICAgIG1lc3NhZ2VTaG93biA9IHRoaXMuYWxlcnQobWVzc2FnZS50ZXh0LCBtZXNzYWdlLnRpdGxlLCBtZXNzYWdlLm9wdGlvbnMpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIG1lc3NhZ2VTaG93biA9IHRoaXMuaW5mbyhtZXNzYWdlLnRleHQsIG1lc3NhZ2UudGl0bGUsIG1lc3NhZ2Uub3B0aW9ucyk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBtZXNzYWdlLm9wdGlvbnMuaWQgPSBtZXNzYWdlU2hvd24udG9hc3RJZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBzdWNjZXNzKHRleHQ6IHN0cmluZywgdGl0bGU6IHN0cmluZyA9ICdpZ28uY29yZS5tZXNzYWdlLnN1Y2Nlc3MnLCBvcHRpb25zOiBQYXJ0aWFsPEluZGl2aWR1YWxDb25maWc+ID0ge30pOiBBY3RpdmVUb2FzdDxhbnk+IHtcbiAgICBjb25zdCBtZXNzYWdlID0gdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQodGV4dCk7XG4gICAgY29uc3QgdHJhbnNsYXRlZFRpdGxlID0gdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQodGl0bGUpO1xuICAgIHJldHVybiB0aGlzLnRvYXN0ci5zdWNjZXNzKG1lc3NhZ2UsIHRyYW5zbGF0ZWRUaXRsZSwgb3B0aW9ucyk7XG4gIH1cblxuICBlcnJvcih0ZXh0OiBzdHJpbmcsIHRpdGxlOiBzdHJpbmcgPSAnaWdvLmNvcmUubWVzc2FnZS5lcnJvcicsIG9wdGlvbnM6IFBhcnRpYWw8SW5kaXZpZHVhbENvbmZpZz4gPSB7fSk6IEFjdGl2ZVRvYXN0PGFueT4ge1xuICAgIGNvbnN0IG1lc3NhZ2UgPSB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudCh0ZXh0KTtcbiAgICBjb25zdCB0cmFuc2xhdGVkVGl0bGUgPSB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudCh0aXRsZSk7XG4gICAgcmV0dXJuIHRoaXMudG9hc3RyLmVycm9yKG1lc3NhZ2UsIHRyYW5zbGF0ZWRUaXRsZSwgb3B0aW9ucyk7XG4gIH1cblxuICBpbmZvKHRleHQ6IHN0cmluZywgdGl0bGU6IHN0cmluZyA9ICdpZ28uY29yZS5tZXNzYWdlLmluZm8nLCBvcHRpb25zOiBQYXJ0aWFsPEluZGl2aWR1YWxDb25maWc+ID0ge30pOiBBY3RpdmVUb2FzdDxhbnk+IHtcbiAgICBjb25zdCBtZXNzYWdlID0gdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQodGV4dCk7XG4gICAgY29uc3QgdHJhbnNsYXRlZFRpdGxlID0gdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQodGl0bGUpO1xuICAgIHJldHVybiB0aGlzLnRvYXN0ci5pbmZvKG1lc3NhZ2UsIHRyYW5zbGF0ZWRUaXRsZSwgb3B0aW9ucyk7XG4gIH1cblxuICBhbGVydCh0ZXh0OiBzdHJpbmcsIHRpdGxlOiBzdHJpbmcgPSAnaWdvLmNvcmUubWVzc2FnZS5hbGVydCcsIG9wdGlvbnM6IFBhcnRpYWw8SW5kaXZpZHVhbENvbmZpZz4gPSB7fSk6IEFjdGl2ZVRvYXN0PGFueT4ge1xuICAgIGNvbnN0IG1lc3NhZ2UgPSB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudCh0ZXh0KTtcbiAgICBjb25zdCB0cmFuc2xhdGVkVGl0bGUgPSB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudCh0aXRsZSk7XG4gICAgcmV0dXJuIHRoaXMudG9hc3RyLndhcm5pbmcobWVzc2FnZSwgdHJhbnNsYXRlZFRpdGxlLCBvcHRpb25zKTtcbiAgfVxuXG4gIHJlbW92ZShpZD86IG51bWJlcikge1xuICAgIHRoaXMudG9hc3RyLnJlbW92ZShpZCk7XG4gIH1cblxuICByZW1vdmVBbGxBcmVOb3RFcnJvcigpIHtcbiAgICBmb3IgKGNvbnN0IG1lc3Mgb2YgdGhpcy5tZXNzYWdlcyQudmFsdWUpIHtcbiAgICAgIGlmIChtZXNzLnR5cGUgIT09IE1lc3NhZ2VUeXBlLkVSUk9SKSB7XG4gICAgICAgIHRoaXMucmVtb3ZlKG1lc3Mub3B0aW9ucy5pZCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVUZW1wbGF0ZShtZXNzYWdlOiBNZXNzYWdlKTogTWVzc2FnZSB7XG4gICAgaWYgKCF0aGlzLm9wdGlvbnMudGVtcGxhdGUgfHwgbWVzc2FnZS5odG1sKSB7XG4gICAgICByZXR1cm4gbWVzc2FnZTtcbiAgICB9XG5cbiAgICBsZXQgaHRtbCA9IHRoaXMub3B0aW9ucy50ZW1wbGF0ZTtcbiAgICBodG1sID0gaHRtbC5yZXBsYWNlKCcke3RleHR9JywgbWVzc2FnZS50ZXh0KTtcbiAgICBodG1sID0gaHRtbC5yZXBsYWNlKCcke3RpdGxlfScsIG1lc3NhZ2UudGl0bGUpO1xuXG4gICAgbWVzc2FnZS5odG1sID0gdW5kZWZpbmVkO1xuICAgIG1lc3NhZ2UudGV4dCA9IGh0bWw7XG4gICAgbWVzc2FnZS50aXRsZSA9IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gbWVzc2FnZTtcbiAgfVxufVxuIl19
193
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL21lc3NhZ2Uvc2hhcmVkL21lc3NhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFN0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFLakQsT0FBTyxFQUFpQyxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDMUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFZckQsTUFBTSxPQUFPLGNBQWM7SUFLekIsWUFDNEIsUUFBa0IsRUFDcEMsYUFBNEIsRUFDNUIsZUFBZ0M7UUFGZCxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ3BDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQVBuQyxjQUFTLEdBQUcsSUFBSSxlQUFlLENBQVksRUFBRSxDQUFDLENBQUM7UUFFOUMsOEJBQXlCLEdBQStCLEVBQUUsQ0FBQztRQU9qRSxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM3RCxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ25FLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtnQkFDbkMsSUFBSSxDQUFDLHlC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QUksQ0FBQyxDQUFDO1FBQzdDLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFL0MsT0FBTyxDQUFDLElBQUksR0FBRyxTQUFTLENBQUM7UUFDekIsT0FBTyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDcEIsT0FBTyxDQUFDLEtBQUssR0FBRyxTQUFTLENBQUM7UUFDMUIsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQzs7NEVBclFVLGNBQWMsY0FNZixRQUFRO29FQU5QLGNBQWMsV0FBZCxjQUFjLG1CQUZiLE1BQU07dUZBRVAsY0FBYztjQUgxQixVQUFVO2VBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7O3NCQU9JLE1BQU07dUJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBmb3JrSm9pbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29uZmlnL2NvbmZpZy5zZXJ2aWNlJztcblxuaW1wb3J0IHsgTWVzc2FnZSwgTWVzc2FnZU9wdGlvbnMgfSBmcm9tICcuL21lc3NhZ2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IEFjdGl2ZVRvYXN0LCBJbmRpdmlkdWFsQ29uZmlnLCBUb2FzdHJTZXJ2aWNlIH0gZnJvbSAnbmd4LXRvYXN0cic7XG5pbXBvcnQgeyBNZXNzYWdlVHlwZSB9IGZyb20gJy4vbWVzc2FnZS5lbnVtJztcbmltcG9ydCB7IExhbmd1YWdlU2VydmljZSB9IGZyb20gJy4uLy4uL2xhbmd1YWdlL3NoYXJlZC9sYW5ndWFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZmlyc3QgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmludGVyZmFjZSBBY3RpdmVNZXNzYWdlVHJhbnNsYXRpb24ge1xuICBpZDogbnVtYmVyO1xuICB0aXRsZUtleTogc3RyaW5nO1xuICB0ZXh0S2V5OiBzdHJpbmc7XG4gIHRleHRJbnRlcnBvbGF0ZVBhcmFtcz86IE9iamVjdFxuICB0aXRsZUludGVycG9sYXRlUGFyYW1zPzogT2JqZWN0XG59XG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBNZXNzYWdlU2VydmljZSB7XG4gIHB1YmxpYyBtZXNzYWdlcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1lc3NhZ2VbXT4oW10pO1xuICBwcml2YXRlIG9wdGlvbnM6IE1lc3NhZ2VPcHRpb25zO1xuICBwcml2YXRlIGFjdGl2ZU1lc3NhZ2VUcmFuc2xhdGlvbnM6IEFjdGl2ZU1lc3NhZ2VUcmFuc2xhdGlvbltdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChJbmplY3RvcikgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJpdmF0ZSBjb25maWdTZXJ2aWNlOiBDb25maWdTZXJ2aWNlLFxuICAgIHByaXZhdGUgbGFuZ3VhZ2VTZXJ2aWNlOiBMYW5ndWFnZVNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5vcHRpb25zID0gdGhpcy5jb25maWdTZXJ2aWNlLmdldENvbmZpZygnbWVzc2FnZScpIHx8IHt9O1xuICAgIHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLmxhbmd1YWdlJC5waXBlKGRlYm91bmNlVGltZSg1MDApKS5zdWJzY3JpYmUociA9PiB7XG4gICAgICBpZiAodGhpcy50b2FzdHIudG9hc3RzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICB0aGlzLmFjdGl2ZU1lc3NhZ2VUcmFuc2xhdGlvbnMgPSBbXTtcbiAgICAgIH1cbiAgICAgIHRoaXMudG9hc3RyLnRvYXN0cy5tYXAodG9hc3QgPT4ge1xuICAgICAgICBjb25zdCBhY3RpdmVNZXNzYWdlVHJhbnNsYXRpb24gPSB0aGlzLmFjdGl2ZU1lc3NhZ2VUcmFuc2xhdGlvbnMuZmluZChhbXQgPT4gYW10LmlkID09PSB0b2FzdC50b2FzdElkKTtcbiAgICAgICAgaWYgKGFjdGl2ZU1lc3NhZ2VUcmFuc2xhdGlvbikge1xuICAgICAgICAgIGNvbnN0IHRyYW5zbGF0ZWRUZXh0SW50ZXJwb2xhdGVQYXJhbXMgPSB7Li4uYWN0aXZlTWVzc2FnZVRyYW5zbGF0aW9uLnRleHRJbnRlcnBvbGF0ZVBhcmFtc307XG4gICAgICAgICAgY29uc3QgdHJhbnNsYXRlZFRpdGxlSW50ZXJwb2xhdGVQYXJhbXMgPSB7Li4uYWN0aXZlTWVzc2FnZVRyYW5zbGF0aW9uLnRpdGxlSW50ZXJwb2xhdGVQYXJhbXN9O1xuXG4gICAgICAgICAgaWYgKGFjdGl2ZU1lc3NhZ2VUcmFuc2xhdGlvbi50ZXh0SW50ZXJwb2xhdGVQYXJhbXMpIHtcbiAgICAgICAgICAgIE9iamVjdC5rZXlzKGFjdGl2ZU1lc3NhZ2VUcmFuc2xhdGlvbi50ZXh0SW50ZXJwb2xhdGVQYXJhbXMpLm1hcChrID0+IHtcbiAgICAgICAgICAgICAgdHJhbnNsYXRlZFRleHRJbnRlcnBvbGF0ZVBhcmFtc1trXSA9XG4gICAgICAgICAgICAgICAgdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoYWN0aXZlTWVzc2FnZVRyYW5zbGF0aW9uLnRleHRJbnRlcnBvbGF0ZVBhcmFtc1trXSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGFjdGl2ZU1lc3NhZ2VUcmFuc2xhdGlvbi50aXRsZUludGVycG9sYXRlUGFyYW1zKSB7XG4gICAgICAgICAgICBPYmplY3Qua2V5cyhhY3RpdmVNZXNzYWdlVHJhbnNsYXRpb24udGl0bGVJbnRlcnBvbGF0ZVBhcmFtcykubWFwKGsgPT4ge1xuICAgICAgICAgICAgICB0cmFuc2xhdGVkVGl0bGVJbnRlcnBvbGF0ZVBhcmFtc1trXSA9XG4gICAgICAgICAgICAgICAgdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoYWN0aXZlTWVzc2FnZVRyYW5zbGF0aW9uLnRpdGxlSW50ZXJwb2xhdGVQYXJhbXNba10pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuXG5cbiAgICAgICAgICBmb3JrSm9pbihbXG4gICAgICAgICAgdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmdldChhY3RpdmVNZXNzYWdlVHJhbnNsYXRpb24udGV4dEtleSwgdHJhbnNsYXRlZFRleHRJbnRlcnBvbGF0ZVBhcmFtcyksXG4gICAgICAgICAgdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmdldChhY3RpdmVNZXNzYWdlVHJhbnNsYXRpb24udGl0bGVLZXksIHRyYW5zbGF0ZWRUaXRsZUludGVycG9sYXRlUGFyYW1zKVxuICAgICAgICBdKS5waXBlKGZpcnN0KCkpLnN1YnNjcmliZSgocmVzOiBbc3RyaW5nLCBzdHJpbmddKSA9PiB7XG4gICAgICAgICAgdG9hc3QudG9hc3RSZWYuY29tcG9uZW50SW5zdGFuY2UubWVzc2FnZSA9IHJlc1swXTtcbiAgICAgICAgICB0b2FzdC50b2FzdFJlZi5jb21wb25lbnRJbnN0YW5jZS50aXRsZSA9IHJlc1sxXTtcbiAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgdG9hc3RyKCk6IFRvYXN0clNlcnZpY2Uge1xuICAgIHJldHVybiB0aGlzLmluamVjdG9yLmdldChUb2FzdHJTZXJ2aWNlKTtcbiAgfVxuXG4gIHNob3dFcnJvcihodHRwRXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSB7XG4gICAgaHR0cEVycm9yLmVycm9yLmNhdWdodCA9IHRydWU7XG4gICAgcmV0dXJuIHRoaXMuZXJyb3IoaHR0cEVycm9yLmVycm9yLm1lc3NhZ2UsIGh0dHBFcnJvci5lcnJvci50aXRsZSk7XG4gIH1cblxuICBtZXNzYWdlKG1lc3NhZ2U6IE1lc3NhZ2UpIHtcbiAgICBjb25zdCBtZXNzYWdlVHlwZSA9IG1lc3NhZ2UudHlwZTtcbiAgICB0aGlzLnRvYXN0ci50b2FzdHJDb25maWcuaWNvbkNsYXNzZXNbbWVzc2FnZVR5cGVdID0gYHRvYXN0LSR7bWVzc2FnZVR5cGV9YDtcblxuICAgIHRoaXMubWVzc2FnZXMkLm5leHQodGhpcy5tZXNzYWdlcyQudmFsdWUuY29uY2F0KFttZXNzYWdlXSkpO1xuXG4gICAgbWVzc2FnZS5vcHRpb25zID0gbWVzc2FnZS5vcHRpb25zIHx8IHt9IGFzIE1lc3NhZ2VPcHRpb25zO1xuICAgIGNvbnN0IGN1cnJlbnREYXRlID0gbmV3IERhdGUoKTtcblxuICAgIG1lc3NhZ2Uub3B0aW9ucy5mcm9tID0gbWVzc2FnZS5vcHRpb25zLmZyb20gPyBtZXNzYWdlLm9wdGlvbnMuZnJvbSA6IG5ldyBEYXRlKCcxIGphbiAxOTAwJyk7XG4gICAgbWVzc2FnZS5vcHRpb25zLnRvID0gbWVzc2FnZS5vcHRpb25zLnRvID8gbWVzc2FnZS5vcHRpb25zLnRvIDogbmV3IERhdGUoJzEgamFuIDMwMDAnKTtcbiAgICBpZiAodHlwZW9mIG1lc3NhZ2Uub3B0aW9ucy5mcm9tID09PSAnc3RyaW5nJykge1xuICAgICAgbWVzc2FnZS5vcHRpb25zLmZyb20gPSBuZXcgRGF0ZShEYXRlLnBhcnNlKG1lc3NhZ2Uub3B0aW9ucy5mcm9tLnJlcGxhY2UoLy0vZywgJyAnKSkpO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIG1lc3NhZ2Uub3B0aW9ucy50byA9PT0gJ3N0cmluZycpIHtcbiAgICAgIG1lc3NhZ2Uub3B0aW9ucy50byA9IG5ldyBEYXRlKERhdGUucGFyc2UobWVzc2FnZS5vcHRpb25zLnRvLnJlcGxhY2UoLy0vZywgJyAnKSkpO1xuICAgIH1cbiAgICBpZiAoY3VycmVudERhdGUgPiBtZXNzYWdlLm9wdGlvbnMuZnJvbSAmJiBjdXJyZW50RGF0ZSA8IG1lc3NhZ2Uub3B0aW9ucy50bykge1xuICAgICAgaWYgKG1lc3NhZ2Uuc2hvd0ljb24gPT09IGZhbHNlKSB7XG4gICAgICAgIHRoaXMudG9hc3RyLnRvYXN0ckNvbmZpZy5pY29uQ2xhc3Nlc1ttZXNzYWdlVHlwZV0gPSBgdG9hc3QtJHttZXNzYWdlVHlwZX0gdG9hc3Qtbm8taWNvbmA7XG4gICAgICB9XG4gICAgICBtZXNzYWdlID0gdGhpcy5oYW5kbGVUZW1wbGF0ZShtZXNzYWdlKTtcblxuICAgICAgaWYgKG1lc3NhZ2UudGV4dCkge1xuICAgICAgICBsZXQgbWVzc2FnZVNob3duOiBBY3RpdmVUb2FzdDxhbnk+O1xuICAgICAgICBzd2l0Y2ggKG1lc3NhZ2UudHlwZSkge1xuICAgICAgICAgIGNhc2UgTWVzc2FnZVR5cGUuU1VDQ0VTUzpcbiAgICAgICAgICAgIG1lc3NhZ2VTaG93biA9IHRoaXMuc3VjY2VzcyhcbiAgICAgICAgICAgICAgbWVzc2FnZS50ZXh0LFxuICAgICAgICAgICAgICBtZXNzYWdlLnRpdGxlLFxuICAgICAgICAgICAgICBtZXNzYWdlLm9wdGlvbnMsXG4gICAgICAgICAgICAgIG1lc3NhZ2UudGV4dEludGVycG9sYXRlUGFyYW1zLFxuICAgICAgICAgICAgICBtZXNzYWdlLnRpdGxlSW50ZXJwb2xhdGVQYXJhbXMpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBNZXNzYWdlVHlwZS5FUlJPUjpcbiAgICAgICAgICAgIG1lc3NhZ2VTaG93biA9IHRoaXMuZXJyb3IoXG4gICAgICAgICAgICAgIG1lc3NhZ2UudGV4dCxcbiAgICAgICAgICAgICAgbWVzc2FnZS50aXRsZSxcbiAgICAgICAgICAgICAgbWVzc2FnZS5vcHRpb25zLFxuICAgICAgICAgICAgICBtZXNzYWdlLnRleHRJbnRlcnBvbGF0ZVBhcmFtcyxcbiAgICAgICAgICAgICAgbWVzc2FnZS50aXRsZUludGVycG9sYXRlUGFyYW1zKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgTWVzc2FnZVR5cGUuSU5GTzpcbiAgICAgICAgICAgIG1lc3NhZ2VTaG93biA9IHRoaXMuaW5mbyhcbiAgICAgICAgICAgICAgbWVzc2FnZS50ZXh0LFxuICAgICAgICAgICAgICBtZXNzYWdlLnRpdGxlLFxuICAgICAgICAgICAgICBtZXNzYWdlLm9wdGlvbnMsXG4gICAgICAgICAgICAgIG1lc3NhZ2UudGV4dEludGVycG9sYXRlUGFyYW1zLFxuICAgICAgICAgICAgICBtZXNzYWdlLnRpdGxlSW50ZXJwb2xhdGVQYXJhbXMpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBNZXNzYWdlVHlwZS5TSE9XOlxuICAgICAgICAgICAgbWVzc2FnZVNob3duID0gdGhpcy5zaG93KFxuICAgICAgICAgICAgICBtZXNzYWdlLnRleHQsXG4gICAgICAgICAgICAgIG1lc3NhZ2UudGl0bGUsXG4gICAgICAgICAgICAgIG1lc3NhZ2Uub3B0aW9ucyxcbiAgICAgICAgICAgICAgbWVzc2FnZS50ZXh0SW50ZXJwb2xhdGVQYXJhbXMsXG4gICAgICAgICAgICAgIG1lc3NhZ2UudGl0bGVJbnRlcnBvbGF0ZVBhcmFtcyk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIE1lc3NhZ2VUeXBlLkFMRVJUOlxuICAgICAgICAgIGNhc2UgTWVzc2FnZVR5cGUuV0FSTklORzpcbiAgICAgICAgICAgIG1lc3NhZ2VTaG93biA9IHRoaXMuYWxlcnQoXG4gICAgICAgICAgICAgIG1lc3NhZ2UudGV4dCxcbiAgICAgICAgICAgICAgbWVzc2FnZS50aXRsZSxcbiAgICAgICAgICAgICAgbWVzc2FnZS5vcHRpb25zLFxuICAgICAgICAgICAgICBtZXNzYWdlLnRleHRJbnRlcnBvbGF0ZVBhcmFtcyxcbiAgICAgICAgICAgICAgbWVzc2FnZS50aXRsZUludGVycG9sYXRlUGFyYW1zKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBtZXNzYWdlU2hvd24gPSB0aGlzLmluZm8oXG4gICAgICAgICAgICAgIG1lc3NhZ2UudGV4dCxcbiAgICAgICAgICAgICAgbWVzc2FnZS50aXRsZSxcbiAgICAgICAgICAgICAgbWVzc2FnZS5vcHRpb25zLFxuICAgICAgICAgICAgICBtZXNzYWdlLnRleHRJbnRlcnBvbGF0ZVBhcmFtcyxcbiAgICAgICAgICAgICAgbWVzc2FnZS50aXRsZUludGVycG9sYXRlUGFyYW1zKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIG1lc3NhZ2Uub3B0aW9ucy5pZCA9IG1lc3NhZ2VTaG93bi50b2FzdElkO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHN1Y2Nlc3MoXG4gICAgdGV4dDogc3RyaW5nLFxuICAgIHRpdGxlOiBzdHJpbmcgPSAnaWdvLmNvcmUubWVzc2FnZS5zdWNjZXNzJyxcbiAgICBvcHRpb25zOiBQYXJ0aWFsPEluZGl2aWR1YWxDb25maWc+ID0ge30sXG4gICAgdGV4dEludGVycG9sYXRlUGFyYW1zPzogT2JqZWN0LFxuICAgIHRpdGxlSW50ZXJwb2xhdGVQYXJhbXM/OiBPYmplY3QpOiBBY3RpdmVUb2FzdDxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5oYW5kbGVOZ3hUb2FzdHIoJ3N1Y2Nlc3MnLCB0ZXh0LCB0aXRsZSwgb3B0aW9ucywgdGV4dEludGVycG9sYXRlUGFyYW1zLCB0aXRsZUludGVycG9sYXRlUGFyYW1zKTtcbiAgfVxuXG4gIGVycm9yKFxuICAgIHRleHQ6IHN0cmluZyxcbiAgICB0aXRsZTogc3RyaW5nID0gJ2lnby5jb3JlLm1lc3NhZ2UuZXJyb3InLFxuICAgIG9wdGlvbnM6IFBhcnRpYWw8SW5kaXZpZHVhbENvbmZpZz4gPSB7fSxcbiAgICB0ZXh0SW50ZXJwb2xhdGVQYXJhbXM/OiBPYmplY3QsXG4gICAgdGl0bGVJbnRlcnBvbGF0ZVBhcmFtcz86IE9iamVjdCk6IEFjdGl2ZVRvYXN0PGFueT4ge1xuICAgIHJldHVybiB0aGlzLmhhbmRsZU5neFRvYXN0cignZXJyb3InLCB0ZXh0LCB0aXRsZSwgb3B0aW9ucywgdGV4dEludGVycG9sYXRlUGFyYW1zLCB0aXRsZUludGVycG9sYXRlUGFyYW1zKTtcbiAgfVxuXG4gIGluZm8oXG4gICAgdGV4dDogc3RyaW5nLFxuICAgIHRpdGxlOiBzdHJpbmcgPSAnaWdvLmNvcmUubWVzc2FnZS5pbmZvJyxcbiAgICBvcHRpb25zOiBQYXJ0aWFsPEluZGl2aWR1YWxDb25maWc+ID0ge30sXG4gICAgdGV4dEludGVycG9sYXRlUGFyYW1zPzogT2JqZWN0LFxuICAgIHRpdGxlSW50ZXJwb2xhdGVQYXJhbXM/OiBPYmplY3QpOiBBY3RpdmVUb2FzdDxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5oYW5kbGVOZ3hUb2FzdHIoJ2luZm8nLCB0ZXh0LCB0aXRsZSwgb3B0aW9ucywgdGV4dEludGVycG9sYXRlUGFyYW1zLCB0aXRsZUludGVycG9sYXRlUGFyYW1zKTtcbiAgfVxuXG4gIGFsZXJ0KFxuICAgIHRleHQ6IHN0cmluZyxcbiAgICB0aXRsZTogc3RyaW5nID0gJ2lnby5jb3JlLm1lc3NhZ2UuYWxlcnQnLFxuICAgIG9wdGlvbnM6IFBhcnRpYWw8SW5kaXZpZHVhbENvbmZpZz4gPSB7fSxcbiAgICB0ZXh0SW50ZXJwb2xhdGVQYXJhbXM/OiBPYmplY3QsXG4gICAgdGl0bGVJbnRlcnBvbGF0ZVBhcmFtcz86IE9iamVjdCk6IEFjdGl2ZVRvYXN0PGFueT4ge1xuICAgIHJldHVybiB0aGlzLmhhbmRsZU5neFRvYXN0cignYWxlcnQnLCB0ZXh0LCB0aXRsZSwgb3B0aW9ucywgdGV4dEludGVycG9sYXRlUGFyYW1zLCB0aXRsZUludGVycG9sYXRlUGFyYW1zKTtcbiAgfVxuXG4gIHNob3coXG4gICAgdGV4dDogc3RyaW5nLFxuICAgIHRpdGxlOiBzdHJpbmcgPSAnaWdvLmNvcmUubWVzc2FnZS5pbmZvJyxcbiAgICBvcHRpb25zOiBQYXJ0aWFsPEluZGl2aWR1YWxDb25maWc+ID0ge30sXG4gICAgdGV4dEludGVycG9sYXRlUGFyYW1zPzogT2JqZWN0LFxuICAgIHRpdGxlSW50ZXJwb2xhdGVQYXJhbXM/OiBPYmplY3QpOiBBY3RpdmVUb2FzdDxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5oYW5kbGVOZ3hUb2FzdHIoJ3Nob3cnLCB0ZXh0LCB0aXRsZSwgb3B0aW9ucywgdGV4dEludGVycG9sYXRlUGFyYW1zLCB0aXRsZUludGVycG9sYXRlUGFyYW1zKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlTmd4VG9hc3RyKFxuICAgIHR5cGU6ICdhbGVydCcgfCAnaW5mbycgfCAnZXJyb3InIHwgJ3N1Y2Nlc3MnIHwgJ3Nob3cnLFxuICAgIHRleHQ6IHN0cmluZyxcbiAgICB0aXRsZTogc3RyaW5nLFxuICAgIG9wdGlvbnM6IFBhcnRpYWw8SW5kaXZpZHVhbENvbmZpZz4gPSB7fSxcbiAgICB0ZXh0SW50ZXJwb2xhdGVQYXJhbXM/OiBPYmplY3QsXG4gICAgdGl0bGVJbnRlcnBvbGF0ZVBhcmFtcz86IE9iamVjdCk6IEFjdGl2ZVRvYXN0PGFueT4ge1xuXG4gICAgY29uc3QgdHJhbnNsYXRlZFRleHRJbnRlcnBvbGF0ZVBhcmFtcyA9IHsuLi50ZXh0SW50ZXJwb2xhdGVQYXJhbXN9O1xuICAgIGNvbnN0IHRyYW5zbGF0ZWRUaXRsZW50ZXJwb2xhdGVQYXJhbXMgPSB7Li4udGl0bGVJbnRlcnBvbGF0ZVBhcmFtc307XG5cbiAgICBpZiAodGV4dEludGVycG9sYXRlUGFyYW1zKSB7XG4gICAgICBPYmplY3Qua2V5cyh0ZXh0SW50ZXJwb2xhdGVQYXJhbXMpLm1hcChrID0+IHtcbiAgICAgICAgdHJhbnNsYXRlZFRleHRJbnRlcnBvbGF0ZVBhcmFtc1trXSA9XG4gICAgICAgICAgdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQodGV4dEludGVycG9sYXRlUGFyYW1zW2tdKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAodGl0bGVJbnRlcnBvbGF0ZVBhcmFtcykge1xuICAgICAgT2JqZWN0LmtleXModGl0bGVJbnRlcnBvbGF0ZVBhcmFtcykubWFwKGsgPT4ge1xuICAgICAgICB0cmFuc2xhdGVkVGl0bGVudGVycG9sYXRlUGFyYW1zW2tdID1cbiAgICAgICAgICB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudCh0aXRsZUludGVycG9sYXRlUGFyYW1zW2tdKTtcbiAgICAgIH0pO1xuICAgIH1cblxuXG4gICAgY29uc3QgbWVzc2FnZSA9IHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KHRleHQsIHRyYW5zbGF0ZWRUZXh0SW50ZXJwb2xhdGVQYXJhbXMpO1xuICAgIGNvbnN0IHRyYW5zbGF0ZWRUaXRsZSA9IHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KHRpdGxlLCB0cmFuc2xhdGVkVGl0bGVudGVycG9sYXRlUGFyYW1zKTtcblxuICAgIGxldCBhY3RpdmVUb2FzdDtcbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgJ3N1Y2Nlc3MnOlxuICAgICAgICBhY3RpdmVUb2FzdCA9IHRoaXMudG9hc3RyLnN1Y2Nlc3MobWVzc2FnZSwgdHJhbnNsYXRlZFRpdGxlLCBvcHRpb25zKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdlcnJvcic6XG4gICAgICAgIGFjdGl2ZVRvYXN0ID0gdGhpcy50b2FzdHIuZXJyb3IobWVzc2FnZSwgdHJhbnNsYXRlZFRpdGxlLCBvcHRpb25zKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdzaG93JzpcbiAgICAgIGNhc2UgJ2luZm8nOlxuICAgICAgICBhY3RpdmVUb2FzdCA9IHRoaXMudG9hc3RyLmluZm8obWVzc2FnZSwgdHJhbnNsYXRlZFRpdGxlLCBvcHRpb25zKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdhbGVydCc6XG4gICAgICAgIGFjdGl2ZVRvYXN0ID0gdGhpcy50b2FzdHIud2FybmluZyhtZXNzYWdlLCB0cmFuc2xhdGVkVGl0bGUsIG9wdGlvbnMpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gICAgdGhpcy5hY3RpdmVNZXNzYWdlVHJhbnNsYXRpb25zLnB1c2goe1xuICAgICAgaWQ6IGFjdGl2ZVRvYXN0LnRvYXN0SWQsXG4gICAgICB0aXRsZUtleTogdGl0bGUsXG4gICAgICB0ZXh0S2V5OiB0ZXh0LFxuICAgICAgdGV4dEludGVycG9sYXRlUGFyYW1zLFxuICAgICAgdGl0bGVJbnRlcnBvbGF0ZVBhcmFtcyB9KTtcbiAgICByZXR1cm4gYWN0aXZlVG9hc3Q7XG5cbiAgfVxuXG4gIHJlbW92ZShpZD86IG51bWJlcikge1xuICAgIHRoaXMudG9hc3RyLnJlbW92ZShpZCk7XG4gIH1cblxuICByZW1vdmVBbGxBcmVOb3RFcnJvcigpIHtcbiAgICBmb3IgKGNvbnN0IG1lc3Mgb2YgdGhpcy5tZXNzYWdlcyQudmFsdWUpIHtcbiAgICAgIGlmIChtZXNzLnR5cGUgIT09IE1lc3NhZ2VUeXBlLkVSUk9SKSB7XG4gICAgICAgIHRoaXMucmVtb3ZlKG1lc3Mub3B0aW9ucy5pZCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVUZW1wbGF0ZShtZXNzYWdlOiBNZXNzYWdlKTogTWVzc2FnZSB7XG4gICAgaWYgKCF0aGlzLm9wdGlvbnMudGVtcGxhdGUgfHwgbWVzc2FnZS5odG1sKSB7XG4gICAgICByZXR1cm4gbWVzc2FnZTtcbiAgICB9XG5cbiAgICBsZXQgaHRtbCA9IHRoaXMub3B0aW9ucy50ZW1wbGF0ZTtcbiAgICBodG1sID0gaHRtbC5yZXBsYWNlKCcke3RleHR9JywgbWVzc2FnZS50ZXh0KTtcbiAgICBodG1sID0gaHRtbC5yZXBsYWNlKCcke3RpdGxlfScsIG1lc3NhZ2UudGl0bGUpO1xuXG4gICAgbWVzc2FnZS5odG1sID0gdW5kZWZpbmVkO1xuICAgIG1lc3NhZ2UudGV4dCA9IGh0bWw7XG4gICAgbWVzc2FnZS50aXRsZSA9IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gbWVzc2FnZTtcbiAgfVxufVxuIl19
@@ -8,7 +8,14 @@ export class ErrorInterceptor {
8
8
  constructor(injector) {
9
9
  this.injector = injector;
10
10
  }
11
- intercept(req, next) {
11
+ intercept(originalReq, next) {
12
+ const interceptError = originalReq.headers.get('interceptError');
13
+ const req = originalReq.clone({
14
+ headers: originalReq.headers.delete('interceptError')
15
+ });
16
+ if (interceptError === 'false') {
17
+ return next.handle(req);
18
+ }
12
19
  const errorContainer = { httpError: undefined };
13
20
  return next.handle(req).pipe(catchError(error => this.handleError(error, errorContainer)), finalize(() => {
14
21
  this.handleCaughtError(errorContainer);
@@ -56,4 +63,4 @@ ErrorInterceptor.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: ErrorIn
56
63
  providedIn: 'root'
57
64
  }]
58
65
  }], function () { return [{ type: i0.Injector }]; }, null); })();
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IuaW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvcmVxdWVzdC9lcnJvci5pbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFLTCxpQkFBaUIsRUFDbEIsTUFBTSxzQkFBc0IsQ0FBQztBQUU5QixPQUFPLEVBQWMsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOztBQUtuRSxNQUFNLE9BQU8sZ0JBQWdCO0lBQzNCLFlBQ1UsUUFBa0I7UUFBbEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtJQUN6QixDQUFDO0lBRUosU0FBUyxDQUNQLEdBQXFCLEVBQ3JCLElBQWlCO1FBRWpCLE1BQU0sY0FBYyxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxDQUFDO1FBQ2hELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQzFCLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLGNBQWMsQ0FBQyxDQUFDLEVBQzVELFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDWixJQUFJLENBQUMsaUJBQWlCLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDdkMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzNDLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRU8sV0FBVyxDQUNqQixTQUE0QixFQUM1QixjQUFnRDtRQUVoRCxJQUFJLFNBQVMsWUFBWSxpQkFBaUIsRUFBRTtZQUMxQyxNQUFNLFFBQVEsR0FBRyxTQUFTLENBQUMsS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3JFLFFBQVEsQ0FBQyxPQUFPLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksU0FBUyxDQUFDLFVBQVUsQ0FBQztZQUNuRSxRQUFRLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztZQUV4QixTQUFTLEdBQUcsSUFBSSxpQkFBaUIsQ0FBQztnQkFDaEMsS0FBSyxFQUFFLFFBQVE7Z0JBQ2YsT0FBTyxFQUFFLFNBQVMsQ0FBQyxPQUFPO2dCQUMxQixNQUFNLEVBQUUsU0FBUyxDQUFDLE1BQU07Z0JBQ3hCLFVBQVUsRUFBRSxTQUFTLENBQUMsVUFBVTtnQkFDaEMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxHQUFHO2FBQ25CLENBQUMsQ0FBQztTQUNKO1FBRUQsY0FBYyxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDckMsT0FBTyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVPLGlCQUFpQixDQUFDLGNBQWdEO1FBQ3hFLE1BQU0sU0FBUyxHQUFHLGNBQWMsQ0FBQyxTQUFTLENBQUM7UUFDM0MsSUFBSSxTQUFTLElBQUksU0FBUyxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUU7WUFDMUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQzlCLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ3hELGNBQWMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN2RTtJQUNILENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxjQUUzQjtRQUNDLE1BQU0sU0FBUyxHQUFHLGNBQWMsQ0FBQyxTQUFTLENBQUM7UUFDM0MsSUFBSSxTQUFTLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUN4QyxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUN6RCxTQUFTLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFDOUIsY0FBYyxDQUFDLEtBQUssQ0FBQyxrQ0FBa0MsRUFBRSxnQ0FBZ0MsQ0FBQyxDQUFDO1NBQzVGO0lBQ0gsQ0FBQzs7Z0ZBM0RVLGdCQUFnQjtzRUFBaEIsZ0JBQWdCLFdBQWhCLGdCQUFnQixtQkFGZixNQUFNO3VGQUVQLGdCQUFnQjtjQUg1QixVQUFVO2VBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgSHR0cEludGVyY2VwdG9yLFxuICBIdHRwSGFuZGxlcixcbiAgSHR0cFJlcXVlc3QsXG4gIEh0dHBFdmVudCxcbiAgSHR0cEVycm9yUmVzcG9uc2Vcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBmaW5hbGl6ZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICcuLi9tZXNzYWdlL3NoYXJlZC9tZXNzYWdlLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBFcnJvckludGVyY2VwdG9yIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9yIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3JcbiAgKSB7fVxuXG4gIGludGVyY2VwdChcbiAgICByZXE6IEh0dHBSZXF1ZXN0PGFueT4sXG4gICAgbmV4dDogSHR0cEhhbmRsZXJcbiAgKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj4ge1xuICAgIGNvbnN0IGVycm9yQ29udGFpbmVyID0geyBodHRwRXJyb3I6IHVuZGVmaW5lZCB9O1xuICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXEpLnBpcGUoXG4gICAgICBjYXRjaEVycm9yKGVycm9yID0+IHRoaXMuaGFuZGxlRXJyb3IoZXJyb3IsIGVycm9yQ29udGFpbmVyKSksXG4gICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuaGFuZGxlQ2F1Z2h0RXJyb3IoZXJyb3JDb250YWluZXIpO1xuICAgICAgICB0aGlzLmhhbmRsZVVuY2F1Z2h0RXJyb3IoZXJyb3JDb250YWluZXIpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVFcnJvcihcbiAgICBodHRwRXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlLFxuICAgIGVycm9yQ29udGFpbmVyOiB7IGh0dHBFcnJvcjogSHR0cEVycm9yUmVzcG9uc2UgfVxuICApIHtcbiAgICBpZiAoaHR0cEVycm9yIGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2UpIHtcbiAgICAgIGNvbnN0IGVycm9yT2JqID0gaHR0cEVycm9yLmVycm9yID09PSAnb2JqZWN0JyA/IGh0dHBFcnJvci5lcnJvciA6IHt9O1xuICAgICAgZXJyb3JPYmoubWVzc2FnZSA9IGh0dHBFcnJvci5lcnJvci5tZXNzYWdlIHx8IGh0dHBFcnJvci5zdGF0dXNUZXh0O1xuICAgICAgZXJyb3JPYmouY2F1Z2h0ID0gZmFsc2U7XG5cbiAgICAgIGh0dHBFcnJvciA9IG5ldyBIdHRwRXJyb3JSZXNwb25zZSh7XG4gICAgICAgIGVycm9yOiBlcnJvck9iaixcbiAgICAgICAgaGVhZGVyczogaHR0cEVycm9yLmhlYWRlcnMsXG4gICAgICAgIHN0YXR1czogaHR0cEVycm9yLnN0YXR1cyxcbiAgICAgICAgc3RhdHVzVGV4dDogaHR0cEVycm9yLnN0YXR1c1RleHQsXG4gICAgICAgIHVybDogaHR0cEVycm9yLnVybFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgZXJyb3JDb250YWluZXIuaHR0cEVycm9yID0gaHR0cEVycm9yO1xuICAgIHJldHVybiB0aHJvd0Vycm9yKGh0dHBFcnJvcik7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUNhdWdodEVycm9yKGVycm9yQ29udGFpbmVyOiB7IGh0dHBFcnJvcjogSHR0cEVycm9yUmVzcG9uc2UgfSkge1xuICAgIGNvbnN0IGh0dHBFcnJvciA9IGVycm9yQ29udGFpbmVyLmh0dHBFcnJvcjtcbiAgICBpZiAoaHR0cEVycm9yICYmIGh0dHBFcnJvci5lcnJvci50b0Rpc3BsYXkpIHtcbiAgICAgIGh0dHBFcnJvci5lcnJvci5jYXVnaHQgPSB0cnVlO1xuICAgICAgY29uc3QgbWVzc2FnZVNlcnZpY2UgPSB0aGlzLmluamVjdG9yLmdldChNZXNzYWdlU2VydmljZSk7XG4gICAgICAgbWVzc2FnZVNlcnZpY2UuZXJyb3IoaHR0cEVycm9yLmVycm9yLm1lc3NhZ2UsIGh0dHBFcnJvci5lcnJvci50aXRsZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVVbmNhdWdodEVycm9yKGVycm9yQ29udGFpbmVyOiB7XG4gICAgaHR0cEVycm9yOiBIdHRwRXJyb3JSZXNwb25zZTtcbiAgfSkge1xuICAgIGNvbnN0IGh0dHBFcnJvciA9IGVycm9yQ29udGFpbmVyLmh0dHBFcnJvcjtcbiAgICBpZiAoaHR0cEVycm9yICYmICFodHRwRXJyb3IuZXJyb3IuY2F1Z2h0KSB7XG4gICAgICBjb25zdCBtZXNzYWdlU2VydmljZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KE1lc3NhZ2VTZXJ2aWNlKTtcbiAgICAgIGh0dHBFcnJvci5lcnJvci5jYXVnaHQgPSB0cnVlO1xuICAgICAgbWVzc2FnZVNlcnZpY2UuZXJyb3IoJ2lnby5jb3JlLmVycm9ycy51bmNhdWdodC5tZXNzYWdlJywgJ2lnby5jb3JlLmVycm9ycy51bmNhdWdodC50aXRsZScpO1xuICAgIH1cbiAgfVxufVxuIl19
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IuaW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvcmVxdWVzdC9lcnJvci5pbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFLTCxpQkFBaUIsRUFDbEIsTUFBTSxzQkFBc0IsQ0FBQztBQUU5QixPQUFPLEVBQWMsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOztBQUtuRSxNQUFNLE9BQU8sZ0JBQWdCO0lBQzNCLFlBQ1UsUUFBa0I7UUFBbEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtJQUN6QixDQUFDO0lBRUosU0FBUyxDQUNQLFdBQTZCLEVBQzdCLElBQWlCO1FBRWpCLE1BQU0sY0FBYyxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDakUsTUFBTSxHQUFHLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQztZQUM1QixPQUFPLEVBQUUsV0FBVyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUM7U0FDdEQsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxjQUFjLEtBQUssT0FBTyxFQUFFO1lBQzlCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN6QjtRQUNELE1BQU0sY0FBYyxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxDQUFDO1FBQ2hELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQzFCLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLGNBQWMsQ0FBQyxDQUFDLEVBQzVELFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDWixJQUFJLENBQUMsaUJBQWlCLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDdkMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzNDLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRU8sV0FBVyxDQUNqQixTQUE0QixFQUM1QixjQUFnRDtRQUVoRCxJQUFJLFNBQVMsWUFBWSxpQkFBaUIsRUFBRTtZQUMxQyxNQUFNLFFBQVEsR0FBRyxTQUFTLENBQUMsS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3JFLFFBQVEsQ0FBQyxPQUFPLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksU0FBUyxDQUFDLFVBQVUsQ0FBQztZQUNuRSxRQUFRLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztZQUV4QixTQUFTLEdBQUcsSUFBSSxpQkFBaUIsQ0FBQztnQkFDaEMsS0FBSyxFQUFFLFFBQVE7Z0JBQ2YsT0FBTyxFQUFFLFNBQVMsQ0FBQyxPQUFPO2dCQUMxQixNQUFNLEVBQUUsU0FBUyxDQUFDLE1BQU07Z0JBQ3hCLFVBQVUsRUFBRSxTQUFTLENBQUMsVUFBVTtnQkFDaEMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxHQUFHO2FBQ25CLENBQUMsQ0FBQztTQUNKO1FBRUQsY0FBYyxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDckMsT0FBTyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVPLGlCQUFpQixDQUFDLGNBQWdEO1FBQ3hFLE1BQU0sU0FBUyxHQUFHLGNBQWMsQ0FBQyxTQUFTLENBQUM7UUFDM0MsSUFBSSxTQUFTLElBQUksU0FBUyxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUU7WUFDMUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQzlCLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ3hELGNBQWMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN2RTtJQUNILENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxjQUUzQjtRQUNDLE1BQU0sU0FBUyxHQUFHLGNBQWMsQ0FBQyxTQUFTLENBQUM7UUFDM0MsSUFBSSxTQUFTLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUN4QyxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUN6RCxTQUFTLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFDOUIsY0FBYyxDQUFDLEtBQUssQ0FBQyxrQ0FBa0MsRUFBRSxnQ0FBZ0MsQ0FBQyxDQUFDO1NBQzVGO0lBQ0gsQ0FBQzs7Z0ZBbEVVLGdCQUFnQjtzRUFBaEIsZ0JBQWdCLFdBQWhCLGdCQUFnQixtQkFGZixNQUFNO3VGQUVQLGdCQUFnQjtjQUg1QixVQUFVO2VBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgSHR0cEludGVyY2VwdG9yLFxuICBIdHRwSGFuZGxlcixcbiAgSHR0cFJlcXVlc3QsXG4gIEh0dHBFdmVudCxcbiAgSHR0cEVycm9yUmVzcG9uc2Vcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBmaW5hbGl6ZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICcuLi9tZXNzYWdlL3NoYXJlZC9tZXNzYWdlLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBFcnJvckludGVyY2VwdG9yIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9yIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3JcbiAgKSB7fVxuXG4gIGludGVyY2VwdChcbiAgICBvcmlnaW5hbFJlcTogSHR0cFJlcXVlc3Q8YW55PixcbiAgICBuZXh0OiBIdHRwSGFuZGxlclxuICApOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxhbnk+PiB7XG4gICAgY29uc3QgaW50ZXJjZXB0RXJyb3IgPSBvcmlnaW5hbFJlcS5oZWFkZXJzLmdldCgnaW50ZXJjZXB0RXJyb3InKTtcbiAgICBjb25zdCByZXEgPSBvcmlnaW5hbFJlcS5jbG9uZSh7XG4gICAgICBoZWFkZXJzOiBvcmlnaW5hbFJlcS5oZWFkZXJzLmRlbGV0ZSgnaW50ZXJjZXB0RXJyb3InKVxuICAgIH0pO1xuICAgIGlmIChpbnRlcmNlcHRFcnJvciA9PT0gJ2ZhbHNlJykge1xuICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcSk7XG4gICAgfVxuICAgIGNvbnN0IGVycm9yQ29udGFpbmVyID0geyBodHRwRXJyb3I6IHVuZGVmaW5lZCB9O1xuICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXEpLnBpcGUoXG4gICAgICBjYXRjaEVycm9yKGVycm9yID0+IHRoaXMuaGFuZGxlRXJyb3IoZXJyb3IsIGVycm9yQ29udGFpbmVyKSksXG4gICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuaGFuZGxlQ2F1Z2h0RXJyb3IoZXJyb3JDb250YWluZXIpO1xuICAgICAgICB0aGlzLmhhbmRsZVVuY2F1Z2h0RXJyb3IoZXJyb3JDb250YWluZXIpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVFcnJvcihcbiAgICBodHRwRXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlLFxuICAgIGVycm9yQ29udGFpbmVyOiB7IGh0dHBFcnJvcjogSHR0cEVycm9yUmVzcG9uc2UgfVxuICApIHtcbiAgICBpZiAoaHR0cEVycm9yIGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2UpIHtcbiAgICAgIGNvbnN0IGVycm9yT2JqID0gaHR0cEVycm9yLmVycm9yID09PSAnb2JqZWN0JyA/IGh0dHBFcnJvci5lcnJvciA6IHt9O1xuICAgICAgZXJyb3JPYmoubWVzc2FnZSA9IGh0dHBFcnJvci5lcnJvci5tZXNzYWdlIHx8IGh0dHBFcnJvci5zdGF0dXNUZXh0O1xuICAgICAgZXJyb3JPYmouY2F1Z2h0ID0gZmFsc2U7XG5cbiAgICAgIGh0dHBFcnJvciA9IG5ldyBIdHRwRXJyb3JSZXNwb25zZSh7XG4gICAgICAgIGVycm9yOiBlcnJvck9iaixcbiAgICAgICAgaGVhZGVyczogaHR0cEVycm9yLmhlYWRlcnMsXG4gICAgICAgIHN0YXR1czogaHR0cEVycm9yLnN0YXR1cyxcbiAgICAgICAgc3RhdHVzVGV4dDogaHR0cEVycm9yLnN0YXR1c1RleHQsXG4gICAgICAgIHVybDogaHR0cEVycm9yLnVybFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgZXJyb3JDb250YWluZXIuaHR0cEVycm9yID0gaHR0cEVycm9yO1xuICAgIHJldHVybiB0aHJvd0Vycm9yKGh0dHBFcnJvcik7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUNhdWdodEVycm9yKGVycm9yQ29udGFpbmVyOiB7IGh0dHBFcnJvcjogSHR0cEVycm9yUmVzcG9uc2UgfSkge1xuICAgIGNvbnN0IGh0dHBFcnJvciA9IGVycm9yQ29udGFpbmVyLmh0dHBFcnJvcjtcbiAgICBpZiAoaHR0cEVycm9yICYmIGh0dHBFcnJvci5lcnJvci50b0Rpc3BsYXkpIHtcbiAgICAgIGh0dHBFcnJvci5lcnJvci5jYXVnaHQgPSB0cnVlO1xuICAgICAgY29uc3QgbWVzc2FnZVNlcnZpY2UgPSB0aGlzLmluamVjdG9yLmdldChNZXNzYWdlU2VydmljZSk7XG4gICAgICAgbWVzc2FnZVNlcnZpY2UuZXJyb3IoaHR0cEVycm9yLmVycm9yLm1lc3NhZ2UsIGh0dHBFcnJvci5lcnJvci50aXRsZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVVbmNhdWdodEVycm9yKGVycm9yQ29udGFpbmVyOiB7XG4gICAgaHR0cEVycm9yOiBIdHRwRXJyb3JSZXNwb25zZTtcbiAgfSkge1xuICAgIGNvbnN0IGh0dHBFcnJvciA9IGVycm9yQ29udGFpbmVyLmh0dHBFcnJvcjtcbiAgICBpZiAoaHR0cEVycm9yICYmICFodHRwRXJyb3IuZXJyb3IuY2F1Z2h0KSB7XG4gICAgICBjb25zdCBtZXNzYWdlU2VydmljZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KE1lc3NhZ2VTZXJ2aWNlKTtcbiAgICAgIGh0dHBFcnJvci5lcnJvci5jYXVnaHQgPSB0cnVlO1xuICAgICAgbWVzc2FnZVNlcnZpY2UuZXJyb3IoJ2lnby5jb3JlLmVycm9ycy51bmNhdWdodC5tZXNzYWdlJywgJ2lnby5jb3JlLmVycm9ycy51bmNhdWdodC50aXRsZScpO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -2,8 +2,8 @@ import * as i0 from '@angular/core';
2
2
  import { Injectable, NgModule, InjectionToken, APP_INITIALIZER, Injector, Inject, Optional, SkipSelf, EventEmitter } from '@angular/core';
3
3
  import { CommonModule } from '@angular/common';
4
4
  import { HTTP_INTERCEPTORS, HttpClient, HttpErrorResponse, HttpClientModule, HttpResponse } from '@angular/common/http';
5
- import { finalize, catchError, map, tap, debounceTime, startWith } from 'rxjs/operators';
6
- import { BehaviorSubject, throwError, combineLatest, Observable, fromEvent } from 'rxjs';
5
+ import { finalize, catchError, map, debounceTime, first, tap, startWith } from 'rxjs/operators';
6
+ import { BehaviorSubject, throwError, combineLatest, forkJoin, Observable, fromEvent } from 'rxjs';
7
7
  import { uuid, ObjectUtils } from '@igo2/utils';
8
8
  import * as i1 from '@ngx-translate/core';
9
9
  import { TranslateLoader, TranslateModule, MissingTranslationHandler } from '@ngx-translate/core';
@@ -106,8 +106,8 @@ IgoActivityModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
106
106
  })();
107
107
 
108
108
  const version = {
109
- lib: '1.13.0',
110
- releaseDate: 1665780785791
109
+ lib: '1.13.1',
110
+ releaseDate: 1667833050348
111
111
  };
112
112
 
113
113
  class ConfigService {
@@ -351,20 +351,24 @@ var MessageType;
351
351
  MessageType["WARNING"] = "warning";
352
352
  MessageType["INFO"] = "info";
353
353
  MessageType["SUCCESS"] = "success";
354
+ MessageType["SHOW"] = "show";
354
355
  })(MessageType || (MessageType = {}));
355
356
 
356
357
  class LanguageService {
357
358
  constructor(translate) {
358
359
  this.translate = translate;
359
360
  this.language = this.translate.getBrowserLang();
361
+ this.language$ = new BehaviorSubject(undefined);
360
362
  const lang = this.getLanguage();
361
363
  this.translate.setDefaultLang(lang);
364
+ this.language$.next(lang);
362
365
  }
363
366
  getLanguage() {
364
367
  return this.language.match(/en|fr/) ? this.language : 'en';
365
368
  }
366
369
  setLanguage(language) {
367
370
  this.language = language.match(/en|fr/) ? language : 'en';
371
+ this.language$.next(this.language);
368
372
  this.translate.use(this.language);
369
373
  this.translate.reloadLang(this.language);
370
374
  }
@@ -386,7 +390,39 @@ class MessageService {
386
390
  this.configService = configService;
387
391
  this.languageService = languageService;
388
392
  this.messages$ = new BehaviorSubject([]);
393
+ this.activeMessageTranslations = [];
389
394
  this.options = this.configService.getConfig('message') || {};
395
+ this.languageService.language$.pipe(debounceTime(500)).subscribe(r => {
396
+ if (this.toastr.toasts.length === 0) {
397
+ this.activeMessageTranslations = [];
398
+ }
399
+ this.toastr.toasts.map(toast => {
400
+ const activeMessageTranslation = this.activeMessageTranslations.find(amt => amt.id === toast.toastId);
401
+ if (activeMessageTranslation) {
402
+ const translatedTextInterpolateParams = Object.assign({}, activeMessageTranslation.textInterpolateParams);
403
+ const translatedTitleInterpolateParams = Object.assign({}, activeMessageTranslation.titleInterpolateParams);
404
+ if (activeMessageTranslation.textInterpolateParams) {
405
+ Object.keys(activeMessageTranslation.textInterpolateParams).map(k => {
406
+ translatedTextInterpolateParams[k] =
407
+ this.languageService.translate.instant(activeMessageTranslation.textInterpolateParams[k]);
408
+ });
409
+ }
410
+ if (activeMessageTranslation.titleInterpolateParams) {
411
+ Object.keys(activeMessageTranslation.titleInterpolateParams).map(k => {
412
+ translatedTitleInterpolateParams[k] =
413
+ this.languageService.translate.instant(activeMessageTranslation.titleInterpolateParams[k]);
414
+ });
415
+ }
416
+ forkJoin([
417
+ this.languageService.translate.get(activeMessageTranslation.textKey, translatedTextInterpolateParams),
418
+ this.languageService.translate.get(activeMessageTranslation.titleKey, translatedTitleInterpolateParams)
419
+ ]).pipe(first()).subscribe((res) => {
420
+ toast.toastRef.componentInstance.message = res[0];
421
+ toast.toastRef.componentInstance.title = res[1];
422
+ });
423
+ }
424
+ });
425
+ });
390
426
  }
391
427
  get toastr() {
392
428
  return this.injector.get(ToastrService);
@@ -396,6 +432,8 @@ class MessageService {
396
432
  return this.error(httpError.error.message, httpError.error.title);
397
433
  }
398
434
  message(message) {
435
+ const messageType = message.type;
436
+ this.toastr.toastrConfig.iconClasses[messageType] = `toast-${messageType}`;
399
437
  this.messages$.next(this.messages$.value.concat([message]));
400
438
  message.options = message.options || {};
401
439
  const currentDate = new Date();
@@ -408,50 +446,93 @@ class MessageService {
408
446
  message.options.to = new Date(Date.parse(message.options.to.replace(/-/g, ' ')));
409
447
  }
410
448
  if (currentDate > message.options.from && currentDate < message.options.to) {
449
+ if (message.showIcon === false) {
450
+ this.toastr.toastrConfig.iconClasses[messageType] = `toast-${messageType} toast-no-icon`;
451
+ }
411
452
  message = this.handleTemplate(message);
412
453
  if (message.text) {
413
454
  let messageShown;
414
455
  switch (message.type) {
415
456
  case MessageType.SUCCESS:
416
- messageShown = this.success(message.text, message.title, message.options);
457
+ messageShown = this.success(message.text, message.title, message.options, message.textInterpolateParams, message.titleInterpolateParams);
417
458
  break;
418
459
  case MessageType.ERROR:
419
- messageShown = this.error(message.text, message.title, message.options);
460
+ messageShown = this.error(message.text, message.title, message.options, message.textInterpolateParams, message.titleInterpolateParams);
420
461
  break;
421
462
  case MessageType.INFO:
422
- messageShown = this.info(message.text, message.title, message.options);
463
+ messageShown = this.info(message.text, message.title, message.options, message.textInterpolateParams, message.titleInterpolateParams);
464
+ break;
465
+ case MessageType.SHOW:
466
+ messageShown = this.show(message.text, message.title, message.options, message.textInterpolateParams, message.titleInterpolateParams);
423
467
  break;
424
468
  case MessageType.ALERT:
425
469
  case MessageType.WARNING:
426
- messageShown = this.alert(message.text, message.title, message.options);
470
+ messageShown = this.alert(message.text, message.title, message.options, message.textInterpolateParams, message.titleInterpolateParams);
427
471
  break;
428
472
  default:
429
- messageShown = this.info(message.text, message.title, message.options);
473
+ messageShown = this.info(message.text, message.title, message.options, message.textInterpolateParams, message.titleInterpolateParams);
430
474
  break;
431
475
  }
432
476
  message.options.id = messageShown.toastId;
433
477
  }
434
478
  }
435
479
  }
436
- success(text, title = 'igo.core.message.success', options = {}) {
437
- const message = this.languageService.translate.instant(text);
438
- const translatedTitle = this.languageService.translate.instant(title);
439
- return this.toastr.success(message, translatedTitle, options);
480
+ success(text, title = 'igo.core.message.success', options = {}, textInterpolateParams, titleInterpolateParams) {
481
+ return this.handleNgxToastr('success', text, title, options, textInterpolateParams, titleInterpolateParams);
482
+ }
483
+ error(text, title = 'igo.core.message.error', options = {}, textInterpolateParams, titleInterpolateParams) {
484
+ return this.handleNgxToastr('error', text, title, options, textInterpolateParams, titleInterpolateParams);
440
485
  }
441
- error(text, title = 'igo.core.message.error', options = {}) {
442
- const message = this.languageService.translate.instant(text);
443
- const translatedTitle = this.languageService.translate.instant(title);
444
- return this.toastr.error(message, translatedTitle, options);
486
+ info(text, title = 'igo.core.message.info', options = {}, textInterpolateParams, titleInterpolateParams) {
487
+ return this.handleNgxToastr('info', text, title, options, textInterpolateParams, titleInterpolateParams);
445
488
  }
446
- info(text, title = 'igo.core.message.info', options = {}) {
447
- const message = this.languageService.translate.instant(text);
448
- const translatedTitle = this.languageService.translate.instant(title);
449
- return this.toastr.info(message, translatedTitle, options);
489
+ alert(text, title = 'igo.core.message.alert', options = {}, textInterpolateParams, titleInterpolateParams) {
490
+ return this.handleNgxToastr('alert', text, title, options, textInterpolateParams, titleInterpolateParams);
450
491
  }
451
- alert(text, title = 'igo.core.message.alert', options = {}) {
452
- const message = this.languageService.translate.instant(text);
453
- const translatedTitle = this.languageService.translate.instant(title);
454
- return this.toastr.warning(message, translatedTitle, options);
492
+ show(text, title = 'igo.core.message.info', options = {}, textInterpolateParams, titleInterpolateParams) {
493
+ return this.handleNgxToastr('show', text, title, options, textInterpolateParams, titleInterpolateParams);
494
+ }
495
+ handleNgxToastr(type, text, title, options = {}, textInterpolateParams, titleInterpolateParams) {
496
+ const translatedTextInterpolateParams = Object.assign({}, textInterpolateParams);
497
+ const translatedTitlenterpolateParams = Object.assign({}, titleInterpolateParams);
498
+ if (textInterpolateParams) {
499
+ Object.keys(textInterpolateParams).map(k => {
500
+ translatedTextInterpolateParams[k] =
501
+ this.languageService.translate.instant(textInterpolateParams[k]);
502
+ });
503
+ }
504
+ if (titleInterpolateParams) {
505
+ Object.keys(titleInterpolateParams).map(k => {
506
+ translatedTitlenterpolateParams[k] =
507
+ this.languageService.translate.instant(titleInterpolateParams[k]);
508
+ });
509
+ }
510
+ const message = this.languageService.translate.instant(text, translatedTextInterpolateParams);
511
+ const translatedTitle = this.languageService.translate.instant(title, translatedTitlenterpolateParams);
512
+ let activeToast;
513
+ switch (type) {
514
+ case 'success':
515
+ activeToast = this.toastr.success(message, translatedTitle, options);
516
+ break;
517
+ case 'error':
518
+ activeToast = this.toastr.error(message, translatedTitle, options);
519
+ break;
520
+ case 'show':
521
+ case 'info':
522
+ activeToast = this.toastr.info(message, translatedTitle, options);
523
+ break;
524
+ case 'alert':
525
+ activeToast = this.toastr.warning(message, translatedTitle, options);
526
+ break;
527
+ }
528
+ this.activeMessageTranslations.push({
529
+ id: activeToast.toastId,
530
+ titleKey: title,
531
+ textKey: text,
532
+ textInterpolateParams,
533
+ titleInterpolateParams
534
+ });
535
+ return activeToast;
455
536
  }
456
537
  remove(id) {
457
538
  this.toastr.remove(id);
@@ -496,7 +577,14 @@ class ErrorInterceptor {
496
577
  constructor(injector) {
497
578
  this.injector = injector;
498
579
  }
499
- intercept(req, next) {
580
+ intercept(originalReq, next) {
581
+ const interceptError = originalReq.headers.get('interceptError');
582
+ const req = originalReq.clone({
583
+ headers: originalReq.headers.delete('interceptError')
584
+ });
585
+ if (interceptError === 'false') {
586
+ return next.handle(req);
587
+ }
500
588
  const errorContainer = { httpError: undefined };
501
589
  return next.handle(req).pipe(catchError(error => this.handleError(error, errorContainer)), finalize(() => {
502
590
  this.handleCaughtError(errorContainer);