@igo2/core 1.9.3 → 1.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/__ivy_ngcc__/locale/en.core.json +6 -0
  2. package/__ivy_ngcc__/locale/en.geo.json +31 -9
  3. package/__ivy_ngcc__/locale/en.integration.json +6 -4
  4. package/__ivy_ngcc__/locale/en.json +41 -11
  5. package/__ivy_ngcc__/locale/fr.core.json +6 -0
  6. package/__ivy_ngcc__/locale/fr.geo.json +29 -7
  7. package/__ivy_ngcc__/locale/fr.integration.json +5 -3
  8. package/__ivy_ngcc__/locale/fr.json +38 -8
  9. package/bundles/igo2-core.umd.js +138 -141
  10. package/bundles/igo2-core.umd.js.map +1 -1
  11. package/esm2015/lib/config/version.js +3 -3
  12. package/esm2015/lib/message/index.js +1 -2
  13. package/esm2015/lib/message/message.module.js +38 -9
  14. package/esm2015/lib/message/shared/index.js +1 -1
  15. package/esm2015/lib/message/shared/message.enum.js +3 -2
  16. package/esm2015/lib/message/shared/message.interface.js +1 -1
  17. package/esm2015/lib/message/shared/message.service.js +55 -72
  18. package/esm2015/lib/network/network.service.js +11 -3
  19. package/esm2015/lib/route/route.service.js +19 -4
  20. package/fesm2015/igo2-core.js +125 -129
  21. package/fesm2015/igo2-core.js.map +1 -1
  22. package/lib/message/index.d.ts +0 -1
  23. package/lib/message/message.module.d.ts +3 -4
  24. package/lib/message/shared/index.d.ts +1 -1
  25. package/lib/message/shared/message.enum.d.ts +2 -1
  26. package/lib/message/shared/message.interface.d.ts +4 -4
  27. package/lib/message/shared/message.service.d.ts +14 -11
  28. package/lib/network/network.service.d.ts +1 -0
  29. package/lib/route/route.service.d.ts +4 -3
  30. package/locale/en.core.json +6 -0
  31. package/locale/en.geo.json +31 -9
  32. package/locale/en.integration.json +6 -4
  33. package/locale/en.json +41 -11
  34. package/locale/fr.core.json +6 -0
  35. package/locale/fr.geo.json +29 -7
  36. package/locale/fr.integration.json +5 -3
  37. package/locale/fr.json +38 -8
  38. package/package.json +4 -4
  39. package/style/core.theming.scss +3 -1
  40. package/style/index.theming.scss +228 -36
  41. package/esm2015/lib/message/message-center/index.js +0 -2
  42. package/esm2015/lib/message/message-center/message-center.component.js +0 -43
  43. package/lib/message/message-center/index.d.ts +0 -1
  44. package/lib/message/message-center/message-center.component.d.ts +0 -19
@@ -1,8 +1,9 @@
1
1
  export var MessageType;
2
2
  (function (MessageType) {
3
3
  MessageType["ERROR"] = "error";
4
- MessageType["ALERT"] = "alert";
4
+ MessageType["ALERT"] = "warning";
5
+ MessageType["WARNING"] = "warning";
5
6
  MessageType["INFO"] = "info";
6
7
  MessageType["SUCCESS"] = "success";
7
8
  })(MessageType || (MessageType = {}));
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS5lbnVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL21lc3NhZ2Uvc2hhcmVkL21lc3NhZ2UuZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxXQUtYO0FBTEQsV0FBWSxXQUFXO0lBQ3JCLDhCQUFlLENBQUE7SUFDZiw4QkFBZSxDQUFBO0lBQ2YsNEJBQWEsQ0FBQTtJQUNiLGtDQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFMVyxXQUFXLEtBQVgsV0FBVyxRQUt0QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIE1lc3NhZ2VUeXBlIHtcclxuICBFUlJPUiA9ICdlcnJvcicsXHJcbiAgQUxFUlQgPSAnYWxlcnQnLFxyXG4gIElORk8gPSAnaW5mbycsXHJcbiAgU1VDQ0VTUyA9ICdzdWNjZXNzJ1xyXG59XHJcbiJdfQ==
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS5lbnVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL21lc3NhZ2Uvc2hhcmVkL21lc3NhZ2UuZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxXQU1YO0FBTkQsV0FBWSxXQUFXO0lBQ3JCLDhCQUFlLENBQUE7SUFDZixnQ0FBaUIsQ0FBQTtJQUNqQixrQ0FBbUIsQ0FBQTtJQUNuQiw0QkFBYSxDQUFBO0lBQ2Isa0NBQW1CLENBQUE7QUFDckIsQ0FBQyxFQU5XLFdBQVcsS0FBWCxXQUFXLFFBTXRCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gTWVzc2FnZVR5cGUge1xyXG4gIEVSUk9SID0gJ2Vycm9yJyxcclxuICBBTEVSVCA9ICd3YXJuaW5nJywgLy8gdG9kbyBkZWxldGUgKHRyYW5zaXRpb24gdG8gbmd4LXRvYXN0cilcclxuICBXQVJOSU5HID0gJ3dhcm5pbmcnLFxyXG4gIElORk8gPSAnaW5mbycsXHJcbiAgU1VDQ0VTUyA9ICdzdWNjZXNzJ1xyXG59XHJcbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvbWVzc2FnZS9zaGFyZWQvbWVzc2FnZS5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1lc3NhZ2VUeXBlIH0gZnJvbSAnLi9tZXNzYWdlLmVudW0nO1xyXG5pbXBvcnQgeyBOb3RpZmljYXRpb24gfSBmcm9tICdAaWdvMi9hbmd1bGFyMi1ub3RpZmljYXRpb25zJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTWVzc2FnZSB7XHJcbiAgdGl0bGU/OiBzdHJpbmc7XHJcbiAgdGV4dD86IHN0cmluZztcclxuICBodG1sPzogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PjtcclxuICBpY29uPzogc3RyaW5nO1xyXG4gIHR5cGU/OiBNZXNzYWdlVHlwZTtcclxuICBvcHRpb25zPzogTWVzc2FnZU9wdGlvbnM7XHJcbiAgZm9ybWF0PzogJ3RleHQnIHwgJ2h0bWwnO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIE1lc3NhZ2VPcHRpb25zIGV4dGVuZHMgTm90aWZpY2F0aW9uIHtcclxuICB0ZW1wbGF0ZT86IHN0cmluZztcclxuICBmcm9tPzogRGF0ZSB8IHN0cmluZztcclxuICB0bz86IERhdGUgfCBzdHJpbmc7XHJcbiAgaWQ/OiBzdHJpbmc7XHJcbn1cclxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvbWVzc2FnZS9zaGFyZWQvbWVzc2FnZS5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1lc3NhZ2VUeXBlIH0gZnJvbSAnLi9tZXNzYWdlLmVudW0nO1xyXG5pbXBvcnQgeyBJbmRpdmlkdWFsQ29uZmlnIH0gZnJvbSAnbmd4LXRvYXN0cic7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIE1lc3NhZ2Uge1xyXG4gIHRpdGxlPzogc3RyaW5nO1xyXG4gIHRleHQ/OiBzdHJpbmc7XHJcbiAgaHRtbD86IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgdHlwZT86IE1lc3NhZ2VUeXBlO1xyXG4gIG9wdGlvbnM/OiBNZXNzYWdlT3B0aW9ucztcclxuICBmb3JtYXQ/OiAndGV4dCcgfCAnaHRtbCc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTWVzc2FnZU9wdGlvbnMgZXh0ZW5kcyBJbmRpdmlkdWFsQ29uZmlnIHtcclxuICB0ZW1wbGF0ZT86IHN0cmluZztcclxuICBmcm9tPzogRGF0ZSB8IHN0cmluZztcclxuICB0bz86IERhdGUgfCBzdHJpbmc7XHJcbiAgaWQ/OiBudW1iZXI7XHJcbiAgc2hvd09uRWFjaExheWVyVmlzaWJpbGl0eT86IGJvb2xlYW47XHJcbn1cclxuIl19
@@ -1,16 +1,21 @@
1
- import { Injectable } from '@angular/core';
1
+ import { Injectable, Inject, Injector } from '@angular/core';
2
2
  import { BehaviorSubject } from 'rxjs';
3
+ import { ToastrService } from 'ngx-toastr';
3
4
  import { MessageType } from './message.enum';
4
5
  import * as i0 from "@angular/core";
5
- import * as i1 from "@igo2/angular2-notifications";
6
- import * as i2 from "../../config/config.service";
6
+ import * as i1 from "../../config/config.service";
7
+ import * as i2 from "../../language/shared/language.service";
7
8
  export class MessageService {
8
- constructor(notificationService, configService) {
9
- this.notificationService = notificationService;
9
+ constructor(injector, configService, languageService) {
10
+ this.injector = injector;
10
11
  this.configService = configService;
12
+ this.languageService = languageService;
11
13
  this.messages$ = new BehaviorSubject([]);
12
14
  this.options = this.configService.getConfig('message') || {};
13
15
  }
16
+ get toastr() {
17
+ return this.injector.get(ToastrService);
18
+ }
14
19
  showError(httpError) {
15
20
  httpError.error.caught = true;
16
21
  return this.error(httpError.error.message, httpError.error.title);
@@ -29,83 +34,60 @@ export class MessageService {
29
34
  }
30
35
  if (currentDate > message.options.from && currentDate < message.options.to) {
31
36
  message = this.handleTemplate(message);
32
- let notification;
33
37
  if (message.text) {
34
- notification = this.notificationService.create(message.title, message.text, message.type, message.options);
35
- }
36
- else if (message.html) {
37
- if (!message.icon) {
38
- message.options.theClass = message.options.theClass
39
- ? message.options.theClass + ' noIcon'
40
- : 'noIcon';
38
+ let messageShown;
39
+ switch (message.type) {
40
+ case MessageType.SUCCESS:
41
+ messageShown = this.success(message.text, message.title, message.options);
42
+ break;
43
+ case MessageType.ERROR:
44
+ messageShown = this.error(message.text, message.title, message.options);
45
+ break;
46
+ case MessageType.INFO:
47
+ messageShown = this.info(message.text, message.title, message.options);
48
+ break;
49
+ case MessageType.ALERT:
50
+ case MessageType.WARNING:
51
+ messageShown = this.alert(message.text, message.title, message.options);
52
+ break;
53
+ default:
54
+ messageShown = this.info(message.text, message.title, message.options);
55
+ break;
41
56
  }
42
- notification = this.notificationService.html(message.html, message.type, message.options);
43
- }
44
- else {
45
- return;
57
+ message.options.id = messageShown.toastId;
46
58
  }
47
- if (message.icon !== undefined) {
48
- this.addIcon(notification, message.icon);
49
- }
50
- message.options.id = notification.id;
51
- return notification;
52
59
  }
53
- return;
54
60
  }
55
- success(text, title, options = {}) {
56
- return this.message({
57
- text,
58
- title,
59
- icon: options.icon || 'check',
60
- options,
61
- type: MessageType.SUCCESS
62
- });
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);
63
65
  }
64
- error(text, title, options = {}) {
65
- return this.message({
66
- text,
67
- title,
68
- icon: options.icon || 'error_outline',
69
- options,
70
- type: MessageType.ERROR
71
- });
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);
72
70
  }
73
- info(text, title, options = {}) {
74
- return this.message({
75
- text,
76
- title,
77
- icon: options.icon || 'info_outline',
78
- options,
79
- type: MessageType.INFO
80
- });
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);
81
75
  }
82
- alert(text, title, options = {}) {
83
- return this.message({
84
- text,
85
- title,
86
- icon: options.icon || 'access_alarm',
87
- options,
88
- type: MessageType.ALERT
89
- });
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);
90
80
  }
91
81
  remove(id) {
92
- this.notificationService.remove(id);
82
+ this.toastr.remove(id);
93
83
  }
94
84
  removeAllAreNotError() {
95
85
  for (const mess of this.messages$.value) {
96
- if (mess.type !== 'error') {
86
+ if (mess.type !== MessageType.ERROR) {
97
87
  this.remove(mess.options.id);
98
88
  }
99
89
  }
100
90
  }
101
- addIcon(notification, icon) {
102
- // There is no way to add an icon to a notification when reating
103
- // it so we simply set it on the notification directly.
104
- // See https://github.com/flauc/angular2-notifications/issues/165
105
- notification.icon = `
106
- <mat-icon class="material-icons mat-icon mat-list-avatar" svgIcon="${icon}">
107
- </mat-icon>`;
108
- }
109
91
  handleTemplate(message) {
110
92
  if (!this.options.template || message.html) {
111
93
  return message;
@@ -113,20 +95,21 @@ export class MessageService {
113
95
  let html = this.options.template;
114
96
  html = html.replace('${text}', message.text);
115
97
  html = html.replace('${title}', message.title);
116
- html = html.replace('${icon}', message.icon);
117
- message.html = html;
118
- message.text = undefined;
98
+ message.html = undefined;
99
+ message.text = html;
119
100
  message.title = undefined;
120
- message.icon = undefined;
121
101
  return message;
122
102
  }
123
103
  }
124
- MessageService.ɵfac = function MessageService_Factory(t) { return new (t || MessageService)(i0.ɵɵinject(i1.NotificationsService), i0.ɵɵinject(i2.ConfigService)); };
104
+ MessageService.ɵfac = function MessageService_Factory(t) { return new (t || MessageService)(i0.ɵɵinject(Injector), i0.ɵɵinject(i1.ConfigService), i0.ɵɵinject(i2.LanguageService)); };
125
105
  MessageService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: MessageService, factory: MessageService.ɵfac, providedIn: 'root' });
126
106
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MessageService, [{
127
107
  type: Injectable,
128
108
  args: [{
129
109
  providedIn: 'root'
130
110
  }]
131
- }], function () { return [{ type: i1.NotificationsService }, { type: i2.ConfigService }]; }, null); })();
132
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL21lc3NhZ2Uvc2hhcmVkL21lc3NhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFVdkMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBSzdDLE1BQU0sT0FBTyxjQUFjO0lBSXpCLFlBQ1UsbUJBQXlDLEVBQ3pDLGFBQTRCO1FBRDVCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBc0I7UUFDekMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFML0IsY0FBUyxHQUFHLElBQUksZUFBZSxDQUFZLEVBQUUsQ0FBQyxDQUFDO1FBT3BELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQy9ELENBQUM7SUFFRCxTQUFTLENBQUMsU0FBNEI7UUFDcEMsU0FBUyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQzlCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFRCxPQUFPLENBQUMsT0FBZ0I7UUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTVELE9BQU8sQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sSUFBSSxFQUFvQixDQUFD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LE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQzthQUM5QjtTQUNGO0lBQ0gsQ0FBQztJQUVPLE9BQU8sQ0FBQyxZQUEwQixFQUFFLElBQVk7UUFDdEQsZ0VBQWdFO1FBQ2hFLHVEQUF1RDtRQUN2RCxpRUFBaUU7UUFDakUsWUFBWSxDQUFDLElBQUksR0FBRzsyRUFDbUQsSUFBSTtrQkFDN0QsQ0FBQztJQUNqQixDQUFDO0lBRU8sY0FBYyxDQUFDLE9BQWdCO1FBQ3JDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsSUFBSSxPQUFPLENBQUMsSUFBSSxFQUFFO1lBQzFDLE9BQU8sT0FBTyxDQUFDO1NBQ2hCO1FBRUQsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7UUFDakMsSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QyxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9DLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFN0MsT0FBTyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDcEIsT0FBTyxDQUFDLElBQUksR0FBRyxTQUFTLENBQUM7UUFDekIsT0FBTyxDQUFDLEtBQUssR0FBRyxTQUFTLENBQUM7UUFDMUIsT0FBTyxDQUFDLElBQUksR0FBRyxTQUFTLENBQUM7UUFDekIsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQzs7NEVBaEpVLGNBQWM7b0VBQWQsY0FBYyxXQUFkLGNBQWMsbUJBRmIsTUFBTTt1RkFFUCxjQUFjO2NBSDFCLFVBQVU7ZUFBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge1xyXG4gIE5vdGlmaWNhdGlvbixcclxuICBOb3RpZmljYXRpb25zU2VydmljZSxcclxuICBOb3RpZmljYXRpb25UeXBlXHJcbn0gZnJvbSAnQGlnbzIvYW5ndWxhcjItbm90aWZpY2F0aW9ucyc7XHJcblxyXG5pbXBvcnQgeyBDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29uZmlnL2NvbmZpZy5zZXJ2aWNlJztcclxuXHJcbmltcG9ydCB7IE1lc3NhZ2UsIE1lc3NhZ2VPcHRpb25zIH0gZnJvbSAnLi9tZXNzYWdlLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IE1lc3NhZ2VUeXBlIH0gZnJvbSAnLi9tZXNzYWdlLmVudW0nO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTWVzc2FnZVNlcnZpY2Uge1xyXG4gIHB1YmxpYyBtZXNzYWdlcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1lc3NhZ2VbXT4oW10pO1xyXG4gIHByaXZhdGUgb3B0aW9uczogTWVzc2FnZU9wdGlvbnM7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBub3RpZmljYXRpb25TZXJ2aWNlOiBOb3RpZmljYXRpb25zU2VydmljZSxcclxuICAgIHByaXZhdGUgY29uZmlnU2VydmljZTogQ29uZmlnU2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy5vcHRpb25zID0gdGhpcy5jb25maWdTZXJ2aWNlLmdldENvbmZpZygnbWVzc2FnZScpIHx8IHt9O1xyXG4gIH1cclxuXHJcbiAgc2hvd0Vycm9yKGh0dHBFcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpIHtcclxuICAgIGh0dHBFcnJvci5lcnJvci5jYXVnaHQgPSB0cnVlO1xyXG4gICAgcmV0dXJuIHRoaXMuZXJyb3IoaHR0cEVycm9yLmVycm9yLm1lc3NhZ2UsIGh0dHBFcnJvci5lcnJvci50aXRsZSk7XHJcbiAgfVxyXG5cclxuICBtZXNzYWdlKG1lc3NhZ2U6IE1lc3NhZ2UpIHtcclxuICAgIHRoaXMubWVzc2FnZXMkLm5leHQodGhpcy5tZXNzYWdlcyQudmFsdWUuY29uY2F0KFttZXNzYWdlXSkpO1xyXG5cclxuICAgIG1lc3NhZ2Uub3B0aW9ucyA9IG1lc3NhZ2Uub3B0aW9ucyB8fCB7fSBhcyBNZXNzYWdlT3B0aW9ucztcclxuICAgIGNvbnN0IGN1cnJlbnREYXRlID0gbmV3IERhdGUoKTtcclxuXHJcbiAgICBtZXNzYWdlLm9wdGlvbnMuZnJvbSA9IG1lc3NhZ2Uub3B0aW9ucy5mcm9tID8gbWVzc2FnZS5vcHRpb25zLmZyb20gOiBuZXcgRGF0ZSgnMSBqYW4gMTkwMCcpO1xyXG4gICAgbWVzc2FnZS5vcHRpb25zLnRvID0gbWVzc2FnZS5vcHRpb25zLnRvID8gbWVzc2FnZS5vcHRpb25zLnRvIDogbmV3IERhdGUoJzEgamFuIDMwMDAnKTtcclxuICAgIGlmICh0eXBlb2YgbWVzc2FnZS5vcHRpb25zLmZyb20gPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgIG1lc3NhZ2Uub3B0aW9ucy5mcm9tID0gbmV3IERhdGUoRGF0ZS5wYXJzZShtZXNzYWdlLm9wdGlvbnMuZnJvbS5yZXBsYWNlKC8tL2csICcgJykpKTtcclxuICAgIH1cclxuICAgIGlmICh0eXBlb2YgbWVzc2FnZS5vcHRpb25zLnRvID09PSAnc3RyaW5nJykge1xyXG4gICAgICBtZXNzYWdlLm9wdGlvbnMudG8gPSBuZXcgRGF0ZShEYXRlLnBhcnNlKG1lc3NhZ2Uub3B0aW9ucy50by5yZXBsYWNlKC8tL2csICcgJykpKTtcclxuICAgIH1cclxuICAgIGlmIChcclxuICAgICAgY3VycmVudERhdGUgPiBtZXNzYWdlLm9wdGlvbnMuZnJvbSAmJiBjdXJyZW50RGF0ZSA8IG1lc3NhZ2Uub3B0aW9ucy50bykge1xyXG5cclxuICAgICAgbWVzc2FnZSA9IHRoaXMuaGFuZGxlVGVtcGxhdGUobWVzc2FnZSk7XHJcblxyXG4gICAgICBsZXQgbm90aWZpY2F0aW9uOiBOb3RpZmljYXRpb247XHJcbiAgICAgIGlmIChtZXNzYWdlLnRleHQpIHtcclxuICAgICAgICBub3RpZmljYXRpb24gPSB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UuY3JlYXRlKFxyXG4gICAgICAgICAgbWVzc2FnZS50aXRsZSxcclxuICAgICAgICAgIG1lc3NhZ2UudGV4dCxcclxuICAgICAgICAgIChtZXNzYWdlLnR5cGUgYXMgYW55KSBhcyBOb3RpZmljYXRpb25UeXBlLFxyXG4gICAgICAgICAgbWVzc2FnZS5vcHRpb25zXHJcbiAgICAgICAgKTtcclxuICAgICAgfSBlbHNlIGlmIChtZXNzYWdlLmh0bWwpIHtcclxuICAgICAgICBpZiAoIW1lc3NhZ2UuaWNvbikge1xyXG4gICAgICAgICAgbWVzc2FnZS5vcHRpb25zLnRoZUNsYXNzID0gbWVzc2FnZS5vcHRpb25zLnRoZUNsYXNzXHJcbiAgICAgICAgICAgID8gbWVzc2FnZS5vcHRpb25zLnRoZUNsYXNzICsgJyBub0ljb24nXHJcbiAgICAgICAgICAgIDogJ25vSWNvbic7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBub3RpZmljYXRpb24gPSB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UuaHRtbChcclxuICAgICAgICAgIG1lc3NhZ2UuaHRtbCxcclxuICAgICAgICAgIChtZXNzYWdlLnR5cGUgYXMgYW55KSBhcyBOb3RpZmljYXRpb25UeXBlLFxyXG4gICAgICAgICAgbWVzc2FnZS5vcHRpb25zXHJcbiAgICAgICAgKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChtZXNzYWdlLmljb24gIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHRoaXMuYWRkSWNvbihub3RpZmljYXRpb24sIG1lc3NhZ2UuaWNvbik7XHJcbiAgICAgIH1cclxuICAgICAgbWVzc2FnZS5vcHRpb25zLmlkID0gbm90aWZpY2F0aW9uLmlkO1xyXG4gICAgICByZXR1cm4gbm90aWZpY2F0aW9uO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuXHJcbiAgc3VjY2Vzcyh0ZXh0OiBzdHJpbmcsIHRpdGxlPzogc3RyaW5nLCBvcHRpb25zOiBhbnkgPSB7fSkge1xyXG4gICAgcmV0dXJuIHRoaXMubWVzc2FnZSh7XHJcbiAgICAgIHRleHQsXHJcbiAgICAgIHRpdGxlLFxyXG4gICAgICBpY29uOiBvcHRpb25zLmljb24gfHwgJ2NoZWNrJyxcclxuICAgICAgb3B0aW9ucyxcclxuICAgICAgdHlwZTogTWVzc2FnZVR5cGUuU1VDQ0VTU1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBlcnJvcih0ZXh0OiBzdHJpbmcsIHRpdGxlPzogc3RyaW5nLCBvcHRpb25zOiBhbnkgPSB7fSkge1xyXG4gICAgcmV0dXJuIHRoaXMubWVzc2FnZSh7XHJcbiAgICAgIHRleHQsXHJcbiAgICAgIHRpdGxlLFxyXG4gICAgICBpY29uOiBvcHRpb25zLmljb24gfHwgJ2Vycm9yX291dGxpbmUnLFxyXG4gICAgICBvcHRpb25zLFxyXG4gICAgICB0eXBlOiBNZXNzYWdlVHlwZS5FUlJPUlxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBpbmZvKHRleHQ6IHN0cmluZywgdGl0bGU/OiBzdHJpbmcsIG9wdGlvbnM6IGFueSA9IHt9KSB7XHJcbiAgICByZXR1cm4gdGhpcy5tZXNzYWdlKHtcclxuICAgICAgdGV4dCxcclxuICAgICAgdGl0bGUsXHJcbiAgICAgIGljb246IG9wdGlvbnMuaWNvbiB8fCAnaW5mb19vdXRsaW5lJyxcclxuICAgICAgb3B0aW9ucyxcclxuICAgICAgdHlwZTogTWVzc2FnZVR5cGUuSU5GT1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBhbGVydCh0ZXh0OiBzdHJpbmcsIHRpdGxlPzogc3RyaW5nLCBvcHRpb25zOiBhbnkgPSB7fSkge1xyXG4gICAgcmV0dXJuIHRoaXMubWVzc2FnZSh7XHJcbiAgICAgIHRleHQsXHJcbiAgICAgIHRpdGxlLFxyXG4gICAgICBpY29uOiBvcHRpb25zLmljb24gfHwgJ2FjY2Vzc19hbGFybScsXHJcbiAgICAgIG9wdGlvbnMsXHJcbiAgICAgIHR5cGU6IE1lc3NhZ2VUeXBlLkFMRVJUXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHJlbW92ZShpZD86IHN0cmluZykge1xyXG4gICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnJlbW92ZShpZCk7XHJcbiAgfVxyXG5cclxuICByZW1vdmVBbGxBcmVOb3RFcnJvcigpIHtcclxuICAgIGZvciAoY29uc3QgbWVzcyBvZiB0aGlzLm1lc3NhZ2VzJC52YWx1ZSkge1xyXG4gICAgICBpZiAobWVzcy50eXBlICE9PSAnZXJyb3InKSB7XHJcbiAgICAgICAgdGhpcy5yZW1vdmUobWVzcy5vcHRpb25zLmlkKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhZGRJY29uKG5vdGlmaWNhdGlvbjogTm90aWZpY2F0aW9uLCBpY29uOiBzdHJpbmcpIHtcclxuICAgIC8vIFRoZXJlIGlzIG5vIHdheSB0byBhZGQgYW4gaWNvbiB0byBhIG5vdGlmaWNhdGlvbiB3aGVuIHJlYXRpbmdcclxuICAgIC8vIGl0IHNvIHdlIHNpbXBseSBzZXQgaXQgb24gdGhlIG5vdGlmaWNhdGlvbiBkaXJlY3RseS5cclxuICAgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vZmxhdWMvYW5ndWxhcjItbm90aWZpY2F0aW9ucy9pc3N1ZXMvMTY1XHJcbiAgICBub3RpZmljYXRpb24uaWNvbiA9IGBcclxuICAgICAgPG1hdC1pY29uIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMgbWF0LWljb24gbWF0LWxpc3QtYXZhdGFyXCIgc3ZnSWNvbj1cIiR7aWNvbn1cIj5cclxuICAgICAgPC9tYXQtaWNvbj5gO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYW5kbGVUZW1wbGF0ZShtZXNzYWdlOiBNZXNzYWdlKTogTWVzc2FnZSB7XHJcbiAgICBpZiAoIXRoaXMub3B0aW9ucy50ZW1wbGF0ZSB8fCBtZXNzYWdlLmh0bWwpIHtcclxuICAgICAgcmV0dXJuIG1lc3NhZ2U7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGh0bWwgPSB0aGlzLm9wdGlvbnMudGVtcGxhdGU7XHJcbiAgICBodG1sID0gaHRtbC5yZXBsYWNlKCcke3RleHR9JywgbWVzc2FnZS50ZXh0KTtcclxuICAgIGh0bWwgPSBodG1sLnJlcGxhY2UoJyR7dGl0bGV9JywgbWVzc2FnZS50aXRsZSk7XHJcbiAgICBodG1sID0gaHRtbC5yZXBsYWNlKCcke2ljb259JywgbWVzc2FnZS5pY29uKTtcclxuXHJcbiAgICBtZXNzYWdlLmh0bWwgPSBodG1sO1xyXG4gICAgbWVzc2FnZS50ZXh0ID0gdW5kZWZpbmVkO1xyXG4gICAgbWVzc2FnZS50aXRsZSA9IHVuZGVmaW5lZDtcclxuICAgIG1lc3NhZ2UuaWNvbiA9IHVuZGVmaW5lZDtcclxuICAgIHJldHVybiBtZXNzYWdlO1xyXG4gIH1cclxufVxyXG4iXX0=
111
+ }], function () { return [{ type: i0.Injector, decorators: [{
112
+ type: Inject,
113
+ args: [Injector]
114
+ }] }, { type: i1.ConfigService }, { type: i2.LanguageService }]; }, null); })();
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL21lc3NhZ2Uvc2hhcmVkL21lc3NhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFN0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUt2QyxPQUFPLEVBQWlDLGFBQWEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMxRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFPN0MsTUFBTSxPQUFPLGNBQWM7SUFJekIsWUFDNEIsUUFBa0IsRUFDcEMsYUFBNEIsRUFDNUIsZUFBZ0M7UUFGZCxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ3BDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQU5uQyxjQUFTLEdBQUcsSUFBSSxlQUFlLENBQVksRUFBRSxDQUFDLENBQUM7UUFRcEQsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDL0QsQ0FBQztJQUVELElBQVksTUFBTTtRQUNoQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxTQUFTLENBQUMsU0FBNEI7UUFDcEMsU0FBUyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQzlCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFRCxPQUFPLENBQUMsT0FBZ0I7UUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTVELE9BQU8sQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sSUFBSSxFQUFvQixDQUFDO1FBQzFELE1BQU0sV0FBVyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFFL0IsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM1RixPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3RGLElBQUksT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUU7WUFDNUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN0RjtRQUNELElBQUksT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxRQUFRLEVBQUU7WUFDMUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcs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QUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0MsSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUvQyxPQUFPLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQztRQUN6QixPQUFPLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNwQixPQUFPLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQztRQUMxQixPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDOzs0RUFsSFUsY0FBYyxjQUtmLFFBQVE7b0VBTFAsY0FBYyxXQUFkLGNBQWMsbUJBRmIsTUFBTTt1RkFFUCxjQUFjO2NBSDFCLFVBQVU7ZUFBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7c0JBTUksTUFBTTt1QkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0LCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29uZmlnL2NvbmZpZy5zZXJ2aWNlJztcclxuXHJcbmltcG9ydCB7IE1lc3NhZ2UsIE1lc3NhZ2VPcHRpb25zIH0gZnJvbSAnLi9tZXNzYWdlLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IEFjdGl2ZVRvYXN0LCBJbmRpdmlkdWFsQ29uZmlnLCBUb2FzdHJTZXJ2aWNlIH0gZnJvbSAnbmd4LXRvYXN0cic7XHJcbmltcG9ydCB7IE1lc3NhZ2VUeXBlIH0gZnJvbSAnLi9tZXNzYWdlLmVudW0nO1xyXG5pbXBvcnQgeyBMYW5ndWFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9sYW5ndWFnZS9zaGFyZWQvbGFuZ3VhZ2Uuc2VydmljZSc7XHJcblxyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTWVzc2FnZVNlcnZpY2Uge1xyXG4gIHB1YmxpYyBtZXNzYWdlcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1lc3NhZ2VbXT4oW10pO1xyXG4gIHByaXZhdGUgb3B0aW9uczogTWVzc2FnZU9wdGlvbnM7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEluamVjdChJbmplY3RvcikgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICBwcml2YXRlIGNvbmZpZ1NlcnZpY2U6IENvbmZpZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGxhbmd1YWdlU2VydmljZTogTGFuZ3VhZ2VTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICB0aGlzLm9wdGlvbnMgPSB0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKCdtZXNzYWdlJykgfHwge307XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldCB0b2FzdHIoKTogVG9hc3RyU2VydmljZSB7XHJcbiAgICByZXR1cm4gdGhpcy5pbmplY3Rvci5nZXQoVG9hc3RyU2VydmljZSk7XHJcbiAgfVxyXG5cclxuICBzaG93RXJyb3IoaHR0cEVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkge1xyXG4gICAgaHR0cEVycm9yLmVycm9yLmNhdWdodCA9IHRydWU7XHJcbiAgICByZXR1cm4gdGhpcy5lcnJvcihodHRwRXJyb3IuZXJyb3IubWVzc2FnZSwgaHR0cEVycm9yLmVycm9yLnRpdGxlKTtcclxuICB9XHJcblxyXG4gIG1lc3NhZ2UobWVzc2FnZTogTWVzc2FnZSkge1xyXG4gICAgdGhpcy5tZXNzYWdlcyQubmV4dCh0aGlzLm1lc3NhZ2VzJC52YWx1ZS5jb25jYXQoW21lc3NhZ2VdKSk7XHJcblxyXG4gICAgbWVzc2FnZS5vcHRpb25zID0gbWVzc2FnZS5vcHRpb25zIHx8IHt9IGFzIE1lc3NhZ2VPcHRpb25zO1xyXG4gICAgY29uc3QgY3VycmVudERhdGUgPSBuZXcgRGF0ZSgpO1xyXG5cclxuICAgIG1lc3NhZ2Uub3B0aW9ucy5mcm9tID0gbWVzc2FnZS5vcHRpb25zLmZyb20gPyBtZXNzYWdlLm9wdGlvbnMuZnJvbSA6IG5ldyBEYXRlKCcxIGphbiAxOTAwJyk7XHJcbiAgICBtZXNzYWdlLm9wdGlvbnMudG8gPSBtZXNzYWdlLm9wdGlvbnMudG8gPyBtZXNzYWdlLm9wdGlvbnMudG8gOiBuZXcgRGF0ZSgnMSBqYW4gMzAwMCcpO1xyXG4gICAgaWYgKHR5cGVvZiBtZXNzYWdlLm9wdGlvbnMuZnJvbSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgbWVzc2FnZS5vcHRpb25zLmZyb20gPSBuZXcgRGF0ZShEYXRlLnBhcnNlKG1lc3NhZ2Uub3B0aW9ucy5mcm9tLnJlcGxhY2UoLy0vZywgJyAnKSkpO1xyXG4gICAgfVxyXG4gICAgaWYgKHR5cGVvZiBtZXNzYWdlLm9wdGlvbnMudG8gPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgIG1lc3NhZ2Uub3B0aW9ucy50byA9IG5ldyBEYXRlKERhdGUucGFyc2UobWVzc2FnZS5vcHRpb25zLnRvLnJlcGxhY2UoLy0vZywgJyAnKSkpO1xyXG4gICAgfVxyXG4gICAgaWYgKFxyXG4gICAgICBjdXJyZW50RGF0ZSA+IG1lc3NhZ2Uub3B0aW9ucy5mcm9tICYmIGN1cnJlbnREYXRlIDwgbWVzc2FnZS5vcHRpb25zLnRvKSB7XHJcblxyXG4gICAgICBtZXNzYWdlID0gdGhpcy5oYW5kbGVUZW1wbGF0ZShtZXNzYWdlKTtcclxuXHJcbiAgICAgIGlmIChtZXNzYWdlLnRleHQpIHtcclxuICAgICAgICBsZXQgbWVzc2FnZVNob3duOiBBY3RpdmVUb2FzdDxhbnk+O1xyXG4gICAgICAgIHN3aXRjaCAobWVzc2FnZS50eXBlKSB7XHJcbiAgICAgICAgICBjYXNlIE1lc3NhZ2VUeXBlLlNVQ0NFU1M6XHJcbiAgICAgICAgICAgIG1lc3NhZ2VTaG93biA9IHRoaXMuc3VjY2VzcyhtZXNzYWdlLnRleHQsIG1lc3NhZ2UudGl0bGUsIG1lc3NhZ2Uub3B0aW9ucyk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSBNZXNzYWdlVHlwZS5FUlJPUjpcclxuICAgICAgICAgICAgbWVzc2FnZVNob3duID0gdGhpcy5lcnJvcihtZXNzYWdlLnRleHQsIG1lc3NhZ2UudGl0bGUsIG1lc3NhZ2Uub3B0aW9ucyk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSBNZXNzYWdlVHlwZS5JTkZPOlxyXG4gICAgICAgICAgICBtZXNzYWdlU2hvd24gPSB0aGlzLmluZm8obWVzc2FnZS50ZXh0LCBtZXNzYWdlLnRpdGxlLCBtZXNzYWdlLm9wdGlvbnMpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIGNhc2UgTWVzc2FnZVR5cGUuQUxFUlQ6XHJcbiAgICAgICAgICBjYXNlIE1lc3NhZ2VUeXBlLldBUk5JTkc6XHJcbiAgICAgICAgICAgIG1lc3NhZ2VTaG93biA9IHRoaXMuYWxlcnQobWVzc2FnZS50ZXh0LCBtZXNzYWdlLnRpdGxlLCBtZXNzYWdlLm9wdGlvbnMpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIG1lc3NhZ2VTaG93biA9IHRoaXMuaW5mbyhtZXNzYWdlLnRleHQsIG1lc3NhZ2UudGl0bGUsIG1lc3NhZ2Uub3B0aW9ucyk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgICBtZXNzYWdlLm9wdGlvbnMuaWQgPSBtZXNzYWdlU2hvd24udG9hc3RJZDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3VjY2Vzcyh0ZXh0OiBzdHJpbmcsIHRpdGxlOiBzdHJpbmcgPSAnaWdvLmNvcmUubWVzc2FnZS5zdWNjZXNzJywgb3B0aW9uczogUGFydGlhbDxJbmRpdmlkdWFsQ29uZmlnPiA9IHt9KTogQWN0aXZlVG9hc3Q8YW55PiB7XHJcbiAgICBjb25zdCBtZXNzYWdlID0gdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQodGV4dCk7XHJcbiAgICBjb25zdCB0cmFuc2xhdGVkVGl0bGUgPSB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudCh0aXRsZSk7XHJcbiAgICByZXR1cm4gdGhpcy50b2FzdHIuc3VjY2VzcyhtZXNzYWdlLCB0cmFuc2xhdGVkVGl0bGUsIG9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgZXJyb3IodGV4dDogc3RyaW5nLCB0aXRsZTogc3RyaW5nID0gJ2lnby5jb3JlLm1lc3NhZ2UuZXJyb3InLCBvcHRpb25zOiBQYXJ0aWFsPEluZGl2aWR1YWxDb25maWc+ID0ge30pOiBBY3RpdmVUb2FzdDxhbnk+IHtcclxuICAgIGNvbnN0IG1lc3NhZ2UgPSB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudCh0ZXh0KTtcclxuICAgIGNvbnN0IHRyYW5zbGF0ZWRUaXRsZSA9IHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KHRpdGxlKTtcclxuICAgIHJldHVybiB0aGlzLnRvYXN0ci5lcnJvcihtZXNzYWdlLCB0cmFuc2xhdGVkVGl0bGUsIG9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgaW5mbyh0ZXh0OiBzdHJpbmcsIHRpdGxlOiBzdHJpbmcgPSAnaWdvLmNvcmUubWVzc2FnZS5pbmZvJywgb3B0aW9uczogUGFydGlhbDxJbmRpdmlkdWFsQ29uZmlnPiA9IHt9KTogQWN0aXZlVG9hc3Q8YW55PiB7XHJcbiAgICBjb25zdCBtZXNzYWdlID0gdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQodGV4dCk7XHJcbiAgICBjb25zdCB0cmFuc2xhdGVkVGl0bGUgPSB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudCh0aXRsZSk7XHJcbiAgICByZXR1cm4gdGhpcy50b2FzdHIuaW5mbyhtZXNzYWdlLCB0cmFuc2xhdGVkVGl0bGUsIG9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgYWxlcnQodGV4dDogc3RyaW5nLCB0aXRsZTogc3RyaW5nID0gJ2lnby5jb3JlLm1lc3NhZ2UuYWxlcnQnLCBvcHRpb25zOiBQYXJ0aWFsPEluZGl2aWR1YWxDb25maWc+ID0ge30pOiBBY3RpdmVUb2FzdDxhbnk+IHtcclxuICAgIGNvbnN0IG1lc3NhZ2UgPSB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudCh0ZXh0KTtcclxuICAgIGNvbnN0IHRyYW5zbGF0ZWRUaXRsZSA9IHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KHRpdGxlKTtcclxuICAgIHJldHVybiB0aGlzLnRvYXN0ci53YXJuaW5nKG1lc3NhZ2UsIHRyYW5zbGF0ZWRUaXRsZSwgb3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICByZW1vdmUoaWQ/OiBudW1iZXIpIHtcclxuICAgIHRoaXMudG9hc3RyLnJlbW92ZShpZCk7XHJcbiAgfVxyXG5cclxuICByZW1vdmVBbGxBcmVOb3RFcnJvcigpIHtcclxuICAgIGZvciAoY29uc3QgbWVzcyBvZiB0aGlzLm1lc3NhZ2VzJC52YWx1ZSkge1xyXG4gICAgICBpZiAobWVzcy50eXBlICE9PSBNZXNzYWdlVHlwZS5FUlJPUikge1xyXG4gICAgICAgIHRoaXMucmVtb3ZlKG1lc3Mub3B0aW9ucy5pZCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFuZGxlVGVtcGxhdGUobWVzc2FnZTogTWVzc2FnZSk6IE1lc3NhZ2Uge1xyXG4gICAgaWYgKCF0aGlzLm9wdGlvbnMudGVtcGxhdGUgfHwgbWVzc2FnZS5odG1sKSB7XHJcbiAgICAgIHJldHVybiBtZXNzYWdlO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBodG1sID0gdGhpcy5vcHRpb25zLnRlbXBsYXRlO1xyXG4gICAgaHRtbCA9IGh0bWwucmVwbGFjZSgnJHt0ZXh0fScsIG1lc3NhZ2UudGV4dCk7XHJcbiAgICBodG1sID0gaHRtbC5yZXBsYWNlKCcke3RpdGxlfScsIG1lc3NhZ2UudGl0bGUpO1xyXG5cclxuICAgIG1lc3NhZ2UuaHRtbCA9IHVuZGVmaW5lZDtcclxuICAgIG1lc3NhZ2UudGV4dCA9IGh0bWw7XHJcbiAgICBtZXNzYWdlLnRpdGxlID0gdW5kZWZpbmVkO1xyXG4gICAgcmV0dXJuIG1lc3NhZ2U7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -16,18 +16,26 @@ export class NetworkService {
16
16
  }
17
17
  checkNetworkState() {
18
18
  this.onlineSubscription = fromEvent(window, 'online').subscribe(() => {
19
+ if (this.previousMessageId) {
20
+ this.messageService.remove(this.previousMessageId);
21
+ }
19
22
  const translate = this.injector.get(LanguageService).translate;
20
23
  const message = translate.instant('igo.core.network.online.message');
21
24
  const title = translate.instant('igo.core.network.online.title');
22
- this.messageService.info(message, title);
25
+ const messageObj = this.messageService.info(message, title);
26
+ this.previousMessageId = messageObj.toastId;
23
27
  this.state.connection = true;
24
28
  this.emitEvent();
25
29
  });
26
30
  this.offlineSubscription = fromEvent(window, 'offline').subscribe(() => {
31
+ if (this.previousMessageId) {
32
+ this.messageService.remove(this.previousMessageId);
33
+ }
27
34
  const translate = this.injector.get(LanguageService).translate;
28
35
  const message = translate.instant('igo.core.network.offline.message');
29
36
  const title = translate.instant('igo.core.network.offline.title');
30
- this.messageService.info(message, title);
37
+ const messageObj = this.messageService.info(message, title);
38
+ this.previousMessageId = messageObj.toastId;
31
39
  this.state.connection = false;
32
40
  this.emitEvent();
33
41
  });
@@ -56,4 +64,4 @@ NetworkService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: NetworkSe
56
64
  providedIn: 'root'
57
65
  }]
58
66
  }], function () { return [{ type: i1.MessageService }, { type: i0.Injector }]; }, null); })();
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29yay5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL25ldHdvcmsvbmV0d29yay5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUF1QixNQUFNLGVBQWUsQ0FBQztBQUM5RSxPQUFPLEVBQTRCLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzRCxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7O0FBTXRFLE1BQU0sT0FBTyxjQUFjO0lBU3pCLFlBQ1UsY0FBOEIsRUFDOUIsUUFBa0I7UUFEbEIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFWcEIsNEJBQXVCLEdBQUcsSUFBSSxZQUFZLEVBQW1CLENBQUM7UUFJOUQsVUFBSyxHQUFvQjtZQUMvQixVQUFVLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNO1NBQ3BDLENBQUM7UUFNRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRU8saUJBQWlCO1FBQ3ZCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDbkUsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQy9ELE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsaUNBQWlDLENBQUMsQ0FBQztZQUNyRSxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLCtCQUErQixDQUFDLENBQUM7WUFDakUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3pDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztZQUM3QixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDbkIsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3JFLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUMvRCxNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLGtDQUFrQyxDQUFDLENBQUM7WUFDdEUsTUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1lBQ2xFLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztZQUN6QyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7WUFDOUIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ25CLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLFNBQVM7UUFDZixJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUk7WUFDRixJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDdkMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3ZDO1FBQUMsT0FBTyxDQUFDLEVBQUUsR0FBRTtJQUNoQixDQUFDO0lBRUQsWUFBWSxDQUFDLFdBQVcsR0FBRyxJQUFJO1FBQzdCLE9BQU8sV0FBVztZQUNoQixDQUFDLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FDL0IsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUNqQixTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUN0QjtZQUNILENBQUMsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzNELENBQUM7OzRFQXREVSxjQUFjO29FQUFkLGNBQWMsV0FBZCxjQUFjLG1CQUZiLE1BQU07dUZBRVAsY0FBYztjQUgxQixVQUFVO2VBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBFdmVudEVtaXR0ZXIsIE9uRGVzdHJveSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uLCBmcm9tRXZlbnQgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBzdGFydFdpdGggfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gJy4uL21lc3NhZ2Uvc2hhcmVkL21lc3NhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IExhbmd1YWdlU2VydmljZSB9IGZyb20gJy4uL2xhbmd1YWdlL3NoYXJlZC9sYW5ndWFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29ubmVjdGlvblN0YXRlIH0gZnJvbSAnLi9uZXR3b3JrLmludGVyZmFjZXMnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTmV0d29ya1NlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gIHByaXZhdGUgc3RhdGVDaGFuZ2VFdmVudEVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPENvbm5lY3Rpb25TdGF0ZT4oKTtcclxuICBwcml2YXRlIG9ubGluZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG4gIHByaXZhdGUgb2ZmbGluZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG5cclxuICBwcml2YXRlIHN0YXRlOiBDb25uZWN0aW9uU3RhdGUgPSB7XHJcbiAgICBjb25uZWN0aW9uOiB3aW5kb3cubmF2aWdhdG9yLm9uTGluZVxyXG4gIH07XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvclxyXG4gICkge1xyXG4gICAgICB0aGlzLmNoZWNrTmV0d29ya1N0YXRlKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNoZWNrTmV0d29ya1N0YXRlKCkge1xyXG4gICAgdGhpcy5vbmxpbmVTdWJzY3JpcHRpb24gPSBmcm9tRXZlbnQod2luZG93LCAnb25saW5lJykuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgY29uc3QgdHJhbnNsYXRlID0gdGhpcy5pbmplY3Rvci5nZXQoTGFuZ3VhZ2VTZXJ2aWNlKS50cmFuc2xhdGU7XHJcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSB0cmFuc2xhdGUuaW5zdGFudCgnaWdvLmNvcmUubmV0d29yay5vbmxpbmUubWVzc2FnZScpO1xyXG4gICAgICBjb25zdCB0aXRsZSA9IHRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uY29yZS5uZXR3b3JrLm9ubGluZS50aXRsZScpO1xyXG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmluZm8obWVzc2FnZSwgdGl0bGUpO1xyXG4gICAgICB0aGlzLnN0YXRlLmNvbm5lY3Rpb24gPSB0cnVlO1xyXG4gICAgICB0aGlzLmVtaXRFdmVudCgpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5vZmZsaW5lU3Vic2NyaXB0aW9uID0gZnJvbUV2ZW50KHdpbmRvdywgJ29mZmxpbmUnKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICBjb25zdCB0cmFuc2xhdGUgPSB0aGlzLmluamVjdG9yLmdldChMYW5ndWFnZVNlcnZpY2UpLnRyYW5zbGF0ZTtcclxuICAgICAgY29uc3QgbWVzc2FnZSA9IHRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uY29yZS5uZXR3b3JrLm9mZmxpbmUubWVzc2FnZScpO1xyXG4gICAgICBjb25zdCB0aXRsZSA9IHRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uY29yZS5uZXR3b3JrLm9mZmxpbmUudGl0bGUnKTtcclxuICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5pbmZvKG1lc3NhZ2UsIHRpdGxlKTtcclxuICAgICAgdGhpcy5zdGF0ZS5jb25uZWN0aW9uID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuZW1pdEV2ZW50KCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZW1pdEV2ZW50KCkge1xyXG4gICAgdGhpcy5zdGF0ZUNoYW5nZUV2ZW50RW1pdHRlci5lbWl0KHRoaXMuc3RhdGUpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0cnkge1xyXG4gICAgICB0aGlzLm9mZmxpbmVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgICAgdGhpcy5vbmxpbmVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIH0gY2F0Y2ggKGUpIHt9XHJcbiAgfVxyXG5cclxuICBjdXJyZW50U3RhdGUocmVwb3J0U3RhdGUgPSB0cnVlKTogT2JzZXJ2YWJsZTxDb25uZWN0aW9uU3RhdGU+IHtcclxuICAgIHJldHVybiByZXBvcnRTdGF0ZVxyXG4gICAgICA/IHRoaXMuc3RhdGVDaGFuZ2VFdmVudEVtaXR0ZXIucGlwZShcclxuICAgICAgICAgIGRlYm91bmNlVGltZSgzMDApLFxyXG4gICAgICAgICAgc3RhcnRXaXRoKHRoaXMuc3RhdGUpXHJcbiAgICAgICAgKVxyXG4gICAgICA6IHRoaXMuc3RhdGVDaGFuZ2VFdmVudEVtaXR0ZXIucGlwZShkZWJvdW5jZVRpbWUoMzAwKSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29yay5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL25ldHdvcmsvbmV0d29yay5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUF1QixNQUFNLGVBQWUsQ0FBQztBQUM5RSxPQUFPLEVBQTRCLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzRCxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7O0FBTXRFLE1BQU0sT0FBTyxjQUFjO0lBVXpCLFlBQ1UsY0FBOEIsRUFDOUIsUUFBa0I7UUFEbEIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFYcEIsNEJBQXVCLEdBQUcsSUFBSSxZQUFZLEVBQW1CLENBQUM7UUFLOUQsVUFBSyxHQUFvQjtZQUMvQixVQUFVLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNO1NBQ3BDLENBQUM7UUFNRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRU8saUJBQWlCO1FBQ3ZCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDbkUsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7Z0JBQzFCLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO2FBQ3BEO1lBQ0QsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQy9ELE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsaUNBQWlDLENBQUMsQ0FBQztZQUNyRSxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLCtCQUErQixDQUFDLENBQUM7WUFDakUsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQzVELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDO1lBQzVDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztZQUM3QixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDbkIsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3JFLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO2dCQUMxQixJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQzthQUNwRDtZQUNELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUMvRCxNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLGtDQUFrQyxDQUFDLENBQUM7WUFDdEUsTUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1lBQ2xFLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztZQUM1RCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQztZQUM1QyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7WUFDOUIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ25CLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLFNBQVM7UUFDZixJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUk7WUFDRixJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDdkMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3ZDO1FBQUMsT0FBTyxDQUFDLEVBQUUsR0FBRTtJQUNoQixDQUFDO0lBRUQsWUFBWSxDQUFDLFdBQVcsR0FBRyxJQUFJO1FBQzdCLE9BQU8sV0FBVztZQUNoQixDQUFDLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FDL0IsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUNqQixTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUN0QjtZQUNILENBQUMsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzNELENBQUM7OzRFQS9EVSxjQUFjO29FQUFkLGNBQWMsV0FBZCxjQUFjLG1CQUZiLE1BQU07dUZBRVAsY0FBYztjQUgxQixVQUFVO2VBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBFdmVudEVtaXR0ZXIsIE9uRGVzdHJveSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uLCBmcm9tRXZlbnQgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBzdGFydFdpdGggfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gJy4uL21lc3NhZ2Uvc2hhcmVkL21lc3NhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IExhbmd1YWdlU2VydmljZSB9IGZyb20gJy4uL2xhbmd1YWdlL3NoYXJlZC9sYW5ndWFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29ubmVjdGlvblN0YXRlIH0gZnJvbSAnLi9uZXR3b3JrLmludGVyZmFjZXMnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTmV0d29ya1NlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gIHByaXZhdGUgc3RhdGVDaGFuZ2VFdmVudEVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPENvbm5lY3Rpb25TdGF0ZT4oKTtcclxuICBwcml2YXRlIG9ubGluZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG4gIHByaXZhdGUgb2ZmbGluZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG4gIHByaXZhdGUgcHJldmlvdXNNZXNzYWdlSWQ7XHJcblxyXG4gIHByaXZhdGUgc3RhdGU6IENvbm5lY3Rpb25TdGF0ZSA9IHtcclxuICAgIGNvbm5lY3Rpb246IHdpbmRvdy5uYXZpZ2F0b3Iub25MaW5lXHJcbiAgfTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcclxuICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yXHJcbiAgKSB7XHJcbiAgICAgIHRoaXMuY2hlY2tOZXR3b3JrU3RhdGUoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2hlY2tOZXR3b3JrU3RhdGUoKSB7XHJcbiAgICB0aGlzLm9ubGluZVN1YnNjcmlwdGlvbiA9IGZyb21FdmVudCh3aW5kb3csICdvbmxpbmUnKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5wcmV2aW91c01lc3NhZ2VJZCkge1xyXG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UucmVtb3ZlKHRoaXMucHJldmlvdXNNZXNzYWdlSWQpO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IHRyYW5zbGF0ZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KExhbmd1YWdlU2VydmljZSkudHJhbnNsYXRlO1xyXG4gICAgICBjb25zdCBtZXNzYWdlID0gdHJhbnNsYXRlLmluc3RhbnQoJ2lnby5jb3JlLm5ldHdvcmsub25saW5lLm1lc3NhZ2UnKTtcclxuICAgICAgY29uc3QgdGl0bGUgPSB0cmFuc2xhdGUuaW5zdGFudCgnaWdvLmNvcmUubmV0d29yay5vbmxpbmUudGl0bGUnKTtcclxuICAgICAgY29uc3QgbWVzc2FnZU9iaiA9IHRoaXMubWVzc2FnZVNlcnZpY2UuaW5mbyhtZXNzYWdlLCB0aXRsZSk7XHJcbiAgICAgIHRoaXMucHJldmlvdXNNZXNzYWdlSWQgPSBtZXNzYWdlT2JqLnRvYXN0SWQ7XHJcbiAgICAgIHRoaXMuc3RhdGUuY29ubmVjdGlvbiA9IHRydWU7XHJcbiAgICAgIHRoaXMuZW1pdEV2ZW50KCk7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLm9mZmxpbmVTdWJzY3JpcHRpb24gPSBmcm9tRXZlbnQod2luZG93LCAnb2ZmbGluZScpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLnByZXZpb3VzTWVzc2FnZUlkKSB7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5yZW1vdmUodGhpcy5wcmV2aW91c01lc3NhZ2VJZCk7XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgdHJhbnNsYXRlID0gdGhpcy5pbmplY3Rvci5nZXQoTGFuZ3VhZ2VTZXJ2aWNlKS50cmFuc2xhdGU7XHJcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSB0cmFuc2xhdGUuaW5zdGFudCgnaWdvLmNvcmUubmV0d29yay5vZmZsaW5lLm1lc3NhZ2UnKTtcclxuICAgICAgY29uc3QgdGl0bGUgPSB0cmFuc2xhdGUuaW5zdGFudCgnaWdvLmNvcmUubmV0d29yay5vZmZsaW5lLnRpdGxlJyk7XHJcbiAgICAgIGNvbnN0IG1lc3NhZ2VPYmogPSB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmluZm8obWVzc2FnZSwgdGl0bGUpO1xyXG4gICAgICB0aGlzLnByZXZpb3VzTWVzc2FnZUlkID0gbWVzc2FnZU9iai50b2FzdElkO1xyXG4gICAgICB0aGlzLnN0YXRlLmNvbm5lY3Rpb24gPSBmYWxzZTtcclxuICAgICAgdGhpcy5lbWl0RXZlbnQoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBlbWl0RXZlbnQoKSB7XHJcbiAgICB0aGlzLnN0YXRlQ2hhbmdlRXZlbnRFbWl0dGVyLmVtaXQodGhpcy5zdGF0ZSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIHRoaXMub2ZmbGluZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgICB0aGlzLm9ubGluZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgfSBjYXRjaCAoZSkge31cclxuICB9XHJcblxyXG4gIGN1cnJlbnRTdGF0ZShyZXBvcnRTdGF0ZSA9IHRydWUpOiBPYnNlcnZhYmxlPENvbm5lY3Rpb25TdGF0ZT4ge1xyXG4gICAgcmV0dXJuIHJlcG9ydFN0YXRlXHJcbiAgICAgID8gdGhpcy5zdGF0ZUNoYW5nZUV2ZW50RW1pdHRlci5waXBlKFxyXG4gICAgICAgICAgZGVib3VuY2VUaW1lKDMwMCksXHJcbiAgICAgICAgICBzdGFydFdpdGgodGhpcy5zdGF0ZSlcclxuICAgICAgICApXHJcbiAgICAgIDogdGhpcy5zdGF0ZUNoYW5nZUV2ZW50RW1pdHRlci5waXBlKGRlYm91bmNlVGltZSgzMDApKTtcclxuICB9XHJcbn1cclxuIl19
@@ -9,7 +9,8 @@ export function provideRouteServiceOptions(options) {
9
9
  };
10
10
  }
11
11
  export class RouteService {
12
- constructor(route, options) {
12
+ constructor(router, route, options) {
13
+ this.router = router;
13
14
  this.route = route;
14
15
  const defaultOptions = {
15
16
  centerKey: 'center',
@@ -37,20 +38,34 @@ export class RouteService {
37
38
  this.options = Object.assign({}, defaultOptions, options);
38
39
  }
39
40
  get queryParams() {
41
+ let url = decodeURIComponent(location.search);
42
+ if (url.includes('¢er=')) {
43
+ url = url.replace('¢er', '&center');
44
+ const queryParams = url
45
+ .slice(1)
46
+ .split('&')
47
+ .map(p => p.split('='))
48
+ .reduce((obj, pair) => {
49
+ const [key, value] = pair.map(decodeURIComponent);
50
+ obj[key] = value;
51
+ return obj;
52
+ }, {});
53
+ this.router.navigate([], { queryParams });
54
+ }
40
55
  return this.route.queryParams;
41
56
  }
42
57
  }
43
- RouteService.ɵfac = function RouteService_Factory(t) { return new (t || RouteService)(i0.ɵɵinject(i1.ActivatedRoute), i0.ɵɵinject(ROUTE_SERVICE_OPTIONS, 8)); };
58
+ RouteService.ɵfac = function RouteService_Factory(t) { return new (t || RouteService)(i0.ɵɵinject(i1.Router), i0.ɵɵinject(i1.ActivatedRoute), i0.ɵɵinject(ROUTE_SERVICE_OPTIONS, 8)); };
44
59
  RouteService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: RouteService, factory: RouteService.ɵfac, providedIn: 'root' });
45
60
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(RouteService, [{
46
61
  type: Injectable,
47
62
  args: [{
48
63
  providedIn: 'root'
49
64
  }]
50
- }], function () { return [{ type: i1.ActivatedRoute }, { type: undefined, decorators: [{
65
+ }], function () { return [{ type: i1.Router }, { type: i1.ActivatedRoute }, { type: undefined, decorators: [{
51
66
  type: Inject,
52
67
  args: [ROUTE_SERVICE_OPTIONS]
53
68
  }, {
54
69
  type: Optional
55
70
  }] }]; }, null); })();
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi9yb3V0ZS9yb3V0ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQU03RSxNQUFNLENBQUMsSUFBSSxxQkFBcUIsR0FBRyxJQUFJLGNBQWMsQ0FDbkQscUJBQXFCLENBQ3RCLENBQUM7QUFFRixNQUFNLFVBQVUsMEJBQTBCLENBQUMsT0FBNEI7SUFDckUsT0FBTztRQUNMLE9BQU8sRUFBRSxxQkFBcUI7UUFDOUIsUUFBUSxFQUFFLE9BQU87S0FDbEIsQ0FBQztBQUNKLENBQUM7QUFLRCxNQUFNLE9BQU8sWUFBWTtJQUd2QixZQUNTLEtBQXFCLEVBRzVCLE9BQTRCO1FBSHJCLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBSzVCLE1BQU0sY0FBYyxHQUFHO1lBQ3JCLFNBQVMsRUFBRSxRQUFRO1lBQ25CLE9BQU8sRUFBRSxNQUFNO1lBQ2YsYUFBYSxFQUFFLFlBQVk7WUFDM0IsVUFBVSxFQUFFLFNBQVM7WUFDckIsU0FBUyxFQUFFLFFBQVE7WUFDbkIsa0JBQWtCLEVBQUUsZUFBZTtZQUNuQyxtQkFBbUIsRUFBRSxpQkFBaUI7WUFDdEMsa0JBQWtCLEVBQUUsU0FBUztZQUM3QixvQkFBb0IsRUFBRSxnQkFBZ0I7WUFDdEMsT0FBTyxFQUFFLE1BQU07WUFDZixTQUFTLEVBQUUsUUFBUTtZQUNuQixZQUFZLEVBQUcsV0FBVztZQUMxQixVQUFVLEVBQUUsU0FBUztZQUNyQixhQUFhLEVBQUcsWUFBWTtZQUM1QixZQUFZLEVBQUUsV0FBVztZQUN6QixlQUFlLEVBQUcsY0FBYztZQUNoQyxhQUFhLEVBQUUsWUFBWTtZQUMzQixnQkFBZ0IsRUFBRyxlQUFlO1lBQ2xDLGFBQWEsRUFBRSxZQUFZO1lBQzNCLGdCQUFnQixFQUFHLGVBQWU7WUFDbEMsU0FBUyxFQUFFLFFBQVE7U0FDcEIsQ0FBQztRQUNGLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsY0FBYyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDO0lBQ2hDLENBQUM7O3dFQXJDVSxZQUFZLDhDQUtiLHFCQUFxQjtrRUFMcEIsWUFBWSxXQUFaLFlBQVksbUJBRlgsTUFBTTt1RkFFUCxZQUFZO2NBSHhCLFVBQVU7ZUFBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7c0JBTUksTUFBTTt1QkFBQyxxQkFBcUI7O3NCQUM1QixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0LCBJbmplY3Rpb25Ub2tlbiwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IFJvdXRlU2VydmljZU9wdGlvbnMgfSBmcm9tICcuL3JvdXRlLmludGVyZmFjZSc7XHJcblxyXG5leHBvcnQgbGV0IFJPVVRFX1NFUlZJQ0VfT1BUSU9OUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxSb3V0ZVNlcnZpY2VPcHRpb25zPihcclxuICAncm91dGVTZXJ2aWNlT3B0aW9ucydcclxuKTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlUm91dGVTZXJ2aWNlT3B0aW9ucyhvcHRpb25zOiBSb3V0ZVNlcnZpY2VPcHRpb25zKSB7XHJcbiAgcmV0dXJuIHtcclxuICAgIHByb3ZpZGU6IFJPVVRFX1NFUlZJQ0VfT1BUSU9OUyxcclxuICAgIHVzZVZhbHVlOiBvcHRpb25zXHJcbiAgfTtcclxufVxyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgUm91dGVTZXJ2aWNlIHtcclxuICBwdWJsaWMgb3B0aW9uczogUm91dGVTZXJ2aWNlT3B0aW9ucztcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgQEluamVjdChST1VURV9TRVJWSUNFX09QVElPTlMpXHJcbiAgICBAT3B0aW9uYWwoKVxyXG4gICAgb3B0aW9uczogUm91dGVTZXJ2aWNlT3B0aW9uc1xyXG4gICkge1xyXG4gICAgY29uc3QgZGVmYXVsdE9wdGlvbnMgPSB7XHJcbiAgICAgIGNlbnRlcktleTogJ2NlbnRlcicsXHJcbiAgICAgIHpvb21LZXk6ICd6b29tJyxcclxuICAgICAgcHJvamVjdGlvbktleTogJ3Byb2plY3Rpb24nLFxyXG4gICAgICBjb250ZXh0S2V5OiAnY29udGV4dCcsXHJcbiAgICAgIHNlYXJjaEtleTogJ3NlYXJjaCcsXHJcbiAgICAgIHZpc2libGVPbkxheWVyc0tleTogJ3Zpc2libGVsYXllcnMnLFxyXG4gICAgICB2aXNpYmxlT2ZmTGF5ZXJzS2V5OiAnaW52aXNpYmxlbGF5ZXJzJyxcclxuICAgICAgZGlyZWN0aW9uc0Nvb3JkS2V5OiAncm91dGluZycsXHJcbiAgICAgIGRpcmVjdGlvbnNPcHRpb25zS2V5OiAncm91dGluZ09wdGlvbnMnLFxyXG4gICAgICB0b29sS2V5OiAndG9vbCcsXHJcbiAgICAgIHdtc1VybEtleTogJ3dtc1VybCcsXHJcbiAgICAgIHdtc0xheWVyc0tleTogICd3bXNMYXllcnMnLFxyXG4gICAgICB3bXRzVXJsS2V5OiAnd210c1VybCcsXHJcbiAgICAgIHdtdHNMYXllcnNLZXk6ICAnd210c0xheWVycycsXHJcbiAgICAgIGFyY2dpc1VybEtleTogJ2FyY2dpc1VybCcsXHJcbiAgICAgIGFyY2dpc0xheWVyc0tleTogICdhcmNnaXNMYXllcnMnLFxyXG4gICAgICBpYXJjZ2lzVXJsS2V5OiAnaWFyY2dpc1VybCcsXHJcbiAgICAgIGlhcmNnaXNMYXllcnNLZXk6ICAnaWFyY2dpc0xheWVycycsXHJcbiAgICAgIHRhcmNnaXNVcmxLZXk6ICd0YXJjZ2lzVXJsJyxcclxuICAgICAgdGFyY2dpc0xheWVyc0tleTogICd0YXJjZ2lzTGF5ZXJzJyxcclxuICAgICAgdmVjdG9yS2V5OiAndmVjdG9yJ1xyXG4gICAgfTtcclxuICAgIHRoaXMub3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRPcHRpb25zLCBvcHRpb25zKTtcclxuICB9XHJcblxyXG4gIGdldCBxdWVyeVBhcmFtcygpOiBPYnNlcnZhYmxlPFBhcmFtcz4ge1xyXG4gICAgcmV0dXJuIHRoaXMucm91dGUucXVlcnlQYXJhbXM7XHJcbiAgfVxyXG59XHJcbiJdfQ==
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi9yb3V0ZS9yb3V0ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQU03RSxNQUFNLENBQUMsSUFBSSxxQkFBcUIsR0FBRyxJQUFJLGNBQWMsQ0FDbkQscUJBQXFCLENBQ3RCLENBQUM7QUFFRixNQUFNLFVBQVUsMEJBQTBCLENBQUMsT0FBNEI7SUFDckUsT0FBTztRQUNMLE9BQU8sRUFBRSxxQkFBcUI7UUFDOUIsUUFBUSxFQUFFLE9BQU87S0FDbEIsQ0FBQztBQUNKLENBQUM7QUFLRCxNQUFNLE9BQU8sWUFBWTtJQUd2QixZQUNVLE1BQWMsRUFDZixLQUFxQixFQUc1QixPQUE0QjtRQUpwQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2YsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFLNUIsTUFBTSxjQUFjLEdBQUc7WUFDckIsU0FBUyxFQUFFLFFBQVE7WUFDbkIsT0FBTyxFQUFFLE1BQU07WUFDZixhQUFhLEVBQUUsWUFBWTtZQUMzQixVQUFVLEVBQUUsU0FBUztZQUNyQixTQUFTLEVBQUUsUUFBUTtZQUNuQixrQkFBa0IsRUFBRSxlQUFlO1lBQ25DLG1CQUFtQixFQUFFLGlCQUFpQjtZQUN0QyxrQkFBa0IsRUFBRSxTQUFTO1lBQzdCLG9CQUFvQixFQUFFLGdCQUFnQjtZQUN0QyxPQUFPLEVBQUUsTUFBTTtZQUNmLFNBQVMsRUFBRSxRQUFRO1lBQ25CLFlBQVksRUFBRyxXQUFXO1lBQzFCLFVBQVUsRUFBRSxTQUFTO1lBQ3JCLGFBQWEsRUFBRyxZQUFZO1lBQzVCLFlBQVksRUFBRSxXQUFXO1lBQ3pCLGVBQWUsRUFBRyxjQUFjO1lBQ2hDLGFBQWEsRUFBRSxZQUFZO1lBQzNCLGdCQUFnQixFQUFHLGVBQWU7WUFDbEMsYUFBYSxFQUFFLFlBQVk7WUFDM0IsZ0JBQWdCLEVBQUcsZUFBZTtZQUNsQyxTQUFTLEVBQUUsUUFBUTtTQUNwQixDQUFDO1FBQ0YsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxjQUFjLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLElBQUksR0FBRyxHQUFHLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM5QyxJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDeEIsR0FBRyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQ3BDLE1BQU0sV0FBVyxHQUFRLEdBQUc7aUJBQzNCLEtBQUssQ0FBQyxDQUFDLENBQUM7aUJBQ1IsS0FBSyxDQUFDLEdBQUcsQ0FBQztpQkFDVixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUN0QixNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUU7Z0JBQ3BCLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO2dCQUNsRCxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO2dCQUNqQixPQUFPLEdBQUcsQ0FBQztZQUNiLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNQLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7U0FDM0M7UUFDRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDO0lBQ2hDLENBQUM7O3dFQXBEVSxZQUFZLHNFQU1iLHFCQUFxQjtrRUFOcEIsWUFBWSxXQUFaLFlBQVksbUJBRlgsTUFBTTt1RkFFUCxZQUFZO2NBSHhCLFVBQVU7ZUFBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7c0JBT0ksTUFBTTt1QkFBQyxxQkFBcUI7O3NCQUM1QixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0LCBJbmplY3Rpb25Ub2tlbiwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFBhcmFtcywgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgUm91dGVTZXJ2aWNlT3B0aW9ucyB9IGZyb20gJy4vcm91dGUuaW50ZXJmYWNlJztcclxuXHJcbmV4cG9ydCBsZXQgUk9VVEVfU0VSVklDRV9PUFRJT05TID0gbmV3IEluamVjdGlvblRva2VuPFJvdXRlU2VydmljZU9wdGlvbnM+KFxyXG4gICdyb3V0ZVNlcnZpY2VPcHRpb25zJ1xyXG4pO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVSb3V0ZVNlcnZpY2VPcHRpb25zKG9wdGlvbnM6IFJvdXRlU2VydmljZU9wdGlvbnMpIHtcclxuICByZXR1cm4ge1xyXG4gICAgcHJvdmlkZTogUk9VVEVfU0VSVklDRV9PUFRJT05TLFxyXG4gICAgdXNlVmFsdWU6IG9wdGlvbnNcclxuICB9O1xyXG59XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSb3V0ZVNlcnZpY2Uge1xyXG4gIHB1YmxpYyBvcHRpb25zOiBSb3V0ZVNlcnZpY2VPcHRpb25zO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwdWJsaWMgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgQEluamVjdChST1VURV9TRVJWSUNFX09QVElPTlMpXHJcbiAgICBAT3B0aW9uYWwoKVxyXG4gICAgb3B0aW9uczogUm91dGVTZXJ2aWNlT3B0aW9uc1xyXG4gICkge1xyXG4gICAgY29uc3QgZGVmYXVsdE9wdGlvbnMgPSB7XHJcbiAgICAgIGNlbnRlcktleTogJ2NlbnRlcicsXHJcbiAgICAgIHpvb21LZXk6ICd6b29tJyxcclxuICAgICAgcHJvamVjdGlvbktleTogJ3Byb2plY3Rpb24nLFxyXG4gICAgICBjb250ZXh0S2V5OiAnY29udGV4dCcsXHJcbiAgICAgIHNlYXJjaEtleTogJ3NlYXJjaCcsXHJcbiAgICAgIHZpc2libGVPbkxheWVyc0tleTogJ3Zpc2libGVsYXllcnMnLFxyXG4gICAgICB2aXNpYmxlT2ZmTGF5ZXJzS2V5OiAnaW52aXNpYmxlbGF5ZXJzJyxcclxuICAgICAgZGlyZWN0aW9uc0Nvb3JkS2V5OiAncm91dGluZycsXHJcbiAgICAgIGRpcmVjdGlvbnNPcHRpb25zS2V5OiAncm91dGluZ09wdGlvbnMnLFxyXG4gICAgICB0b29sS2V5OiAndG9vbCcsXHJcbiAgICAgIHdtc1VybEtleTogJ3dtc1VybCcsXHJcbiAgICAgIHdtc0xheWVyc0tleTogICd3bXNMYXllcnMnLFxyXG4gICAgICB3bXRzVXJsS2V5OiAnd210c1VybCcsXHJcbiAgICAgIHdtdHNMYXllcnNLZXk6ICAnd210c0xheWVycycsXHJcbiAgICAgIGFyY2dpc1VybEtleTogJ2FyY2dpc1VybCcsXHJcbiAgICAgIGFyY2dpc0xheWVyc0tleTogICdhcmNnaXNMYXllcnMnLFxyXG4gICAgICBpYXJjZ2lzVXJsS2V5OiAnaWFyY2dpc1VybCcsXHJcbiAgICAgIGlhcmNnaXNMYXllcnNLZXk6ICAnaWFyY2dpc0xheWVycycsXHJcbiAgICAgIHRhcmNnaXNVcmxLZXk6ICd0YXJjZ2lzVXJsJyxcclxuICAgICAgdGFyY2dpc0xheWVyc0tleTogICd0YXJjZ2lzTGF5ZXJzJyxcclxuICAgICAgdmVjdG9yS2V5OiAndmVjdG9yJ1xyXG4gICAgfTtcclxuICAgIHRoaXMub3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRPcHRpb25zLCBvcHRpb25zKTtcclxuICB9XHJcblxyXG4gIGdldCBxdWVyeVBhcmFtcygpOiBPYnNlcnZhYmxlPFBhcmFtcz4ge1xyXG4gICAgbGV0IHVybCA9IGRlY29kZVVSSUNvbXBvbmVudChsb2NhdGlvbi5zZWFyY2gpO1xyXG4gICAgaWYgKHVybC5pbmNsdWRlcygnwqJlcj0nKSkge1xyXG4gICAgICB1cmwgPSB1cmwucmVwbGFjZSgnwqJlcicsICcmY2VudGVyJyk7XHJcbiAgICAgIGNvbnN0IHF1ZXJ5UGFyYW1zOiBhbnkgPSB1cmxcclxuICAgICAgLnNsaWNlKDEpXHJcbiAgICAgIC5zcGxpdCgnJicpXHJcbiAgICAgIC5tYXAocCA9PiBwLnNwbGl0KCc9JykpXHJcbiAgICAgIC5yZWR1Y2UoKG9iaiwgcGFpcikgPT4ge1xyXG4gICAgICAgIGNvbnN0IFtrZXksIHZhbHVlXSA9IHBhaXIubWFwKGRlY29kZVVSSUNvbXBvbmVudCk7XHJcbiAgICAgICAgb2JqW2tleV0gPSB2YWx1ZTtcclxuICAgICAgICByZXR1cm4gb2JqO1xyXG4gICAgICB9LCB7fSk7XHJcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtdLCB7IHF1ZXJ5UGFyYW1zIH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMucm91dGUucXVlcnlQYXJhbXM7XHJcbiAgfVxyXG59XHJcbiJdfQ==