@arthakosh/chat-widget 0.2.60 → 0.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/chat-launcher/chat-launcher.component.mjs +5 -4
- package/esm2022/lib/chat-widget-notification/chat-widget-notification.component.mjs +8 -27
- package/esm2022/lib/chat-widget.module.mjs +4 -23
- package/esm2022/lib/chat-widget.service.mjs +9 -7
- package/esm2022/lib/chat-window/chat-window.component.mjs +24 -4
- package/esm2022/lib/core/services/chat.service.mjs +1 -5
- package/esm2022/lib/core/services/socket.service.mjs +5 -2
- package/fesm2022/arthakosh-chat-widget.mjs +44 -109
- package/fesm2022/arthakosh-chat-widget.mjs.map +1 -1
- package/lib/chat-widget-notification/chat-widget-notification.component.d.ts +4 -9
- package/lib/chat-widget.module.d.ts +0 -2
- package/lib/chat-widget.service.d.ts +4 -2
- package/lib/core/services/chat.service.d.ts +0 -1
- package/lib/core/services/socket.service.d.ts +2 -0
- package/package.json +1 -1
- package/esm2022/lib/core/services/chat_widget_bootstrap.service.mjs +0 -37
- package/esm2022/lib/core/services/notification.service.mjs +0 -21
- package/lib/core/services/chat_widget_bootstrap.service.d.ts +0 -13
- package/lib/core/services/notification.service.d.ts +0 -11
|
@@ -51,6 +51,7 @@ export class ChatLauncherComponent {
|
|
|
51
51
|
}, { allowSignalWrites: true });
|
|
52
52
|
}
|
|
53
53
|
ngOnInit() {
|
|
54
|
+
console.log('ChatLauncher initialized');
|
|
54
55
|
}
|
|
55
56
|
openNewRoom(roomId, roomHeader, metadata, userId, username, chatUsers) {
|
|
56
57
|
this.isVisible.set(true);
|
|
@@ -68,21 +69,21 @@ export class ChatLauncherComponent {
|
|
|
68
69
|
}
|
|
69
70
|
const newIndex = windows.length;
|
|
70
71
|
this.openWindows.update(ws => [...ws, { roomId, header, metadata }]);
|
|
72
|
+
// ✅ force real change: -1 → 0
|
|
71
73
|
setTimeout(() => {
|
|
72
74
|
this.activeIndex.set(newIndex);
|
|
73
75
|
}, 500);
|
|
74
76
|
}
|
|
75
77
|
closeWindow(roomId) {
|
|
76
78
|
this.openWindows.update(ws => ws.filter(w => w.roomId !== roomId));
|
|
77
|
-
const windows = this.openWindows();
|
|
78
|
-
const newIndex = windows.length;
|
|
79
|
-
this.activeIndex.set(newIndex);
|
|
80
79
|
}
|
|
81
80
|
setActive(i) {
|
|
82
81
|
this.activeIndex.set(i);
|
|
83
82
|
}
|
|
84
83
|
closeAll() {
|
|
85
84
|
this.openWindows.set([]);
|
|
85
|
+
// this.lastOpenedRoom.set(null);
|
|
86
|
+
// this.activeIndex.set(0);
|
|
86
87
|
this.isVisible.set(false);
|
|
87
88
|
}
|
|
88
89
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChatLauncherComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
@@ -92,4 +93,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
92
93
|
type: Component,
|
|
93
94
|
args: [{ selector: 'app-chat-launcher', standalone: true, imports: [CommonModule, ChatWindowComponent, DropdownModule, ButtonModule, ToastModule, FormsModule, TabViewModule, TooltipModule], providers: [MessageService], encapsulation: ViewEncapsulation.Emulated, template: "@if (isVisible()) {\r\n <div class=\"chat-float-wrapper\">\r\n <button (click)=\"closeAll()\" icon=\"pi pi-times\" pButton pTooltip=\"Close\"\r\n style=\"font-size: 0.5rem\" class=\"closeButton\"></button>\r\n <p-tabView (activeIndexChange)=\"setActive($event)\" [activeIndex]=\"activeIndex()\" [scrollable]=\"true\"\r\n class=\"chat-tabview\">\r\n <p-tabPanel *ngFor=\"let w of openWindows(); let i = index\" [header]=\"w.header\">\r\n <ng-template pTemplate=\"content\">\r\n <app-chat-window (onArchive)=\"closeWindow($event)\"\r\n [chatRoomId]=\"w.roomId\" [header]=\"w.header\"\r\n [metadata]=\"w.metadata\" mode=\"floating\" theme=\"light\">\r\n </app-chat-window>\r\n </ng-template>\r\n </p-tabPanel>\r\n </p-tabView>\r\n </div>\r\n}\r\n", styles: ["@charset \"UTF-8\";.chat-float-wrapper{position:fixed!important;bottom:16px!important;right:16px!important;z-index:99999;pointer-events:auto}:host{position:fixed;right:16px;bottom:16px;z-index:2147483647;font-family:Arial,sans-serif}:host,:host *{box-sizing:border-box}:host{isolation:isolate}.chat-tabview{width:100%;height:100%}:host ::ng-deep .p-tabview{height:100%;display:flex;flex-direction:column}:host ::ng-deep .p-tabview-nav{flex-shrink:0}:host ::ng-deep .p-tabview-panels{flex:1;overflow:hidden}:host ::ng-deep .p-tabview-panel{height:100%}:host ::ng-deep app-chat-window{display:block;height:100%}.chat-tabview ::ng-deep .p-tabview-nav{background:transparent;border:none;display:flex;gap:8px;padding:6px 4px}.chat-tabview ::ng-deep .p-tabview-nav li{border:none}.chat-tabview ::ng-deep .p-tabview-nav li .p-tabview-nav-link{border:none;border-radius:18px;padding:6px 14px;font-size:13px;font-weight:500;color:#555;box-shadow:0 1px 4px #00000014;transition:all .2s ease;background:#d3d3d3}.chat-tabview ::ng-deep .p-tabview-nav li .p-tabview-nav-link:hover{color:#1a73e8}.chat-tabview ::ng-deep .p-tabview-nav li.p-highlight .p-tabview-nav-link{background:#1a73e8;color:#fff;box-shadow:0 4px 10px #1a73e859;border-bottom:outset;border-color:#1a73e8}.chat-tabview ::ng-deep .p-tabview-ink-bar{display:none}.chat-tabview ::ng-deep .p-tabview-panels{padding:0;border:none;background:transparent}.closeButton{position:absolute;right:0;top:25px;border-radius:50%;border:solid 2px}\n"] }]
|
|
94
95
|
}], ctorParameters: () => [] });
|
|
95
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC1sYXVuY2hlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jaGF0LXdpZGdldC9zcmMvbGliL2NoYXQtbGF1bmNoZXIvY2hhdC1sYXVuY2hlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jaGF0LXdpZGdldC9zcmMvbGliL2NoYXQtbGF1bmNoZXIvY2hhdC1sYXVuY2hlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDekUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQzFELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sYUFBYSxDQUFDO0FBQzNDLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQzlELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7OztBQWlCOUMsTUFBTSxPQUFPLHFCQUFxQjtJQWlCOUI7UUFmQSxXQUFNLEdBQUcsS0FBSyxDQUFT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QUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlCLENBQUM7K0dBdkZRLHFCQUFxQjttR0FBckIscUJBQXFCLHkwQkFIbkIsQ0FBQyxjQUFjLENBQUMsMEJDekIvQix1OEJBaUJBLHlnRERLYyxZQUFZLDRKQUFFLG1CQUFtQiw2TEFBRSxjQUFjLHFJQUFFLFlBQVksNE9BQUUsV0FBVyw4QkFBRSxXQUFXLDhCQUFFLGFBQWEsMmtCQUFFLGFBQWE7OzRGQU14SCxxQkFBcUI7a0JBVGpDLFNBQVM7K0JBQ0ksbUJBQW1CLGNBQ2pCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLGFBQWEsQ0FBQyxhQUd2SCxDQUFDLGNBQWMsQ0FBQyxpQkFDWixpQkFBaUIsQ0FBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIGVmZmVjdCwgaW5qZWN0LCBpbnB1dCwgc2lnbmFsLCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQge0NoYXRXaW5kb3dDb21wb25lbnR9IGZyb20gJy4uL2NoYXQtd2luZG93L2NoYXQtd2luZG93LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7Q2hhdFNlcnZpY2V9IGZyb20gJy4uL2NvcmUvc2VydmljZXMvY2hhdC5zZXJ2aWNlJztcclxuaW1wb3J0IHtEcm9wZG93bk1vZHVsZX0gZnJvbSAncHJpbWVuZy9kcm9wZG93bic7XHJcbmltcG9ydCB7QnV0dG9uTW9kdWxlfSBmcm9tICdwcmltZW5nL2J1dHRvbic7XHJcbmltcG9ydCB7VG9hc3RNb2R1bGV9IGZyb20gJ3ByaW1lbmcvdG9hc3QnO1xyXG5pbXBvcnQge01lc3NhZ2VTZXJ2aWNlfSBmcm9tICdwcmltZW5nL2FwaSc7XHJcbmltcG9ydCB7Rm9ybXNNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHtUYWJWaWV3TW9kdWxlfSBmcm9tICdwcmltZW5nL3RhYnZpZXcnO1xyXG5pbXBvcnQge1NvY2tldFNlcnZpY2V9IGZyb20gJy4uL2NvcmUvc2VydmljZXMvc29ja2V0LnNlcnZpY2UnO1xyXG5pbXBvcnQge1Rvb2x0aXBNb2R1bGV9IGZyb20gXCJwcmltZW5nL3Rvb2x0aXBcIjtcclxuXHJcbmludGVyZmFjZSBPcGVuQ2hhdFdpbmRvdyB7XHJcbiAgICByb29tSWQ6IHN0cmluZztcclxuICAgIGhlYWRlcjogc3RyaW5nO1xyXG4gICAgbWV0YWRhdGE6IHN0cmluZztcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2FwcC1jaGF0LWxhdW5jaGVyJyxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBDaGF0V2luZG93Q29tcG9uZW50LCBEcm9wZG93bk1vZHVsZSwgQnV0dG9uTW9kdWxlLCBUb2FzdE1vZHVsZSwgRm9ybXNNb2R1bGUsIFRhYlZpZXdNb2R1bGUsIFRvb2x0aXBNb2R1bGVdLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NoYXQtbGF1bmNoZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vY2hhdC1sYXVuY2hlci5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgcHJvdmlkZXJzOiBbTWVzc2FnZVNlcnZpY2VdLFxyXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uRW11bGF0ZWQsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDaGF0TGF1bmNoZXJDb21wb25lbnQge1xyXG5cclxuICAgIHJvb21JZCA9IGlucHV0PHN0cmluZz4oJycpO1xyXG4gICAgcm9vbUhlYWRlciA9IGlucHV0PHN0cmluZz4oJycpO1xyXG4gICAgbWV0YWRhdGEgPSBpbnB1dDxzdHJpbmc+KCcnKTtcclxuICAgIHVzZXIgPSBpbnB1dDxhbnk+KG51bGwpO1xyXG4gICAgdXNlckxpc3QgPSBpbnB1dDxhbnlbXT4oW10pO1xyXG4gICAgY2hhdFVzZXJzID0gaW5wdXQ8YW55W10+KFtdKTtcclxuXHJcbiAgICBjaGF0U2VydmljZSA9IGluamVjdChDaGF0U2VydmljZSk7XHJcbiAgICBzb2NrZXRTZXJ2aWNlID0gaW5qZWN0KFNvY2tldFNlcnZpY2UpO1xyXG4gICAgbWVzc2FnZVNlcnZpY2UgPSBpbmplY3QoTWVzc2FnZVNlcnZpY2UpO1xyXG4gICAgb3BlbldpbmRvd3MgPSBzaWduYWw8T3BlbkNoYXRXaW5kb3dbXT4oW10pO1xyXG4gICAgbGFzdE9wZW5lZFJvb20gPSBzaWduYWw8c3RyaW5nIHwgbnVsbD4obnVsbCk7XHJcbiAgICBhY3RpdmVJbmRleCA9IHNpZ25hbCgwKTtcclxuICAgIGlzVmlzaWJsZSA9IHNpZ25hbCh0cnVlKTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICBlZmZlY3QoXHJcbiAgICAgICAgICAgICgpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHJvb21JZCA9IHRoaXMucm9vbUlkKCk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBoZWFkZXIgPSB0aGlzLnJvb21IZWFkZXIoKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG1ldGFkYXRhID0gdGhpcy5tZXRhZGF0YSgpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgdXNlciA9IHRoaXMudXNlcigpO1xyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuY2hhdFNlcnZpY2UuY3VycmVudFVzZXIuc2V0KHtcclxuICAgICAgICAgICAgICAgICAgICByb29tSWQ6IHRoaXMucm9vbUlkKCksXHJcbiAgICAgICAgICAgICAgICAgICAgdXNlcklkOiB1c2VyPy51c2VySWQsXHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogdXNlcj8ubmFtZVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5jaGF0U2VydmljZS51c2VyTGlzdC5zZXQodGhpcy51c2VyTGlzdCgpKTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoIXJvb21JZCB8fCAhdXNlcj8udXNlcklkKSByZXR1cm47XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5sYXN0T3BlbmVkUm9vbSgpID09PSByb29tSWQpIHJldHVybjtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLmxhc3RPcGVuZWRSb29tLnNldChyb29tSWQpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vcGVuTmV3Um9vbShyb29tSWQsIGhlYWRlciwgbWV0YWRhdGEsIHVzZXIudXNlcklkLCB1c2VyLm5hbWUsIHRoaXMuY2hhdFVzZXJzKCkpO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7YWxsb3dTaWduYWxXcml0ZXM6IHRydWV9XHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgIH1cclxuXHJcbiAgICBvcGVuTmV3Um9vbShyb29tSWQ6IHN0cmluZywgcm9vbUhlYWRlcjogc3RyaW5nLCBtZXRhZGF0YTogc3RyaW5nLCB1c2VySWQ6IHN0cmluZywgdXNlcm5hbWU6IHN0cmluZywgY2hhdFVzZXJzOiBhbnkpIHtcclxuICAgICAgICB0aGlzLmlzVmlzaWJsZS5zZXQodHJ1ZSk7XHJcbiAgICAgICAgdGhpcy5jaGF0U2VydmljZS5jcmVhdGVSb29tKHJvb21JZCwgcm9vbUhlYWRlciwgbWV0YWRhdGEsIHVzZXJJZCwgdXNlcm5hbWUsIGNoYXRVc2Vycykuc3Vic2NyaWJlKHJvb20gPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmFkZFdpbmRvdyhyb29tLnJvb21LZXksIHJvb20ubmFtZSwgcm9vbS5tZXRhZGF0YSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgYWRkV2luZG93KHJvb21JZDogc3RyaW5nLCBoZWFkZXI6IHN0cmluZywgbWV0YWRhdGE6IHN0cmluZykge1xyXG4gICAgICAgIGNvbnN0IHdpbmRvd3MgPSB0aGlzLm9wZW5XaW5kb3dzKCk7XHJcbiAgICAgICAgY29uc3QgZXhpc3RpbmdJbmRleCA9IHdpbmRvd3MuZmluZEluZGV4KHcgPT4gdy5yb29tSWQgPT09IHJvb21JZCk7XHJcblxyXG4gICAgICAgIC8vIGFscmVhZHkgb3BlbiDihpIgZm9jdXNcclxuICAgICAgICBpZiAoZXhpc3RpbmdJbmRleCAhPT0gLTEpIHtcclxuICAgICAgICAgICAgdGhpcy5hY3RpdmVJbmRleC5zZXQoZXhpc3RpbmdJbmRleCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IG5ld0luZGV4ID0gd2luZG93cy5sZW5ndGg7XHJcblxyXG4gICAgICAgIHRoaXMub3BlbldpbmRvd3MudXBkYXRlKHdzID0+IFsuLi53cywge3Jvb21JZCwgaGVhZGVyLCBtZXRhZGF0YX1dKTtcclxuXHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlSW5kZXguc2V0KG5ld0luZGV4KTtcclxuICAgICAgICB9LCA1MDApO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBjbG9zZVdpbmRvdyhyb29tSWQ6IGFueSkge1xyXG4gICAgICAgIHRoaXMub3BlbldpbmRvd3MudXBkYXRlKHdzID0+IHdzLmZpbHRlcih3ID0+IHcucm9vbUlkICE9PSByb29tSWQpKTtcclxuICAgICAgICBjb25zdCB3aW5kb3dzID0gdGhpcy5vcGVuV2luZG93cygpO1xyXG4gICAgICAgIGNvbnN0IG5ld0luZGV4ID0gd2luZG93cy5sZW5ndGg7XHJcbiAgICAgICAgdGhpcy5hY3RpdmVJbmRleC5zZXQobmV3SW5kZXgpO1xyXG4gICAgfVxyXG5cclxuICAgIHNldEFjdGl2ZShpOiBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLmFjdGl2ZUluZGV4LnNldChpKTtcclxuICAgIH1cclxuXHJcbiAgICBjbG9zZUFsbCgpIHtcclxuICAgICAgICB0aGlzLm9wZW5XaW5kb3dzLnNldChbXSk7XHJcbiAgICAgICAgdGhpcy5pc1Zpc2libGUuc2V0KGZhbHNlKTtcclxuICAgIH1cclxuXHJcbn1cclxuIiwiQGlmIChpc1Zpc2libGUoKSkge1xyXG4gICAgPGRpdiBjbGFzcz1cImNoYXQtZmxvYXQtd3JhcHBlclwiPlxyXG4gICAgICAgIDxidXR0b24gKGNsaWNrKT1cImNsb3NlQWxsKClcIiBpY29uPVwicGkgcGktdGltZXNcIiBwQnV0dG9uIHBUb29sdGlwPVwiQ2xvc2VcIlxyXG4gICAgICAgICAgICAgICAgc3R5bGU9XCJmb250LXNpemU6IDAuNXJlbVwiIGNsYXNzPVwiY2xvc2VCdXR0b25cIj48L2J1dHRvbj5cclxuICAgICAgICA8cC10YWJWaWV3IChhY3RpdmVJbmRleENoYW5nZSk9XCJzZXRBY3RpdmUoJGV2ZW50KVwiIFthY3RpdmVJbmRleF09XCJhY3RpdmVJbmRleCgpXCIgW3Njcm9sbGFibGVdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNoYXQtdGFidmlld1wiPlxyXG4gICAgICAgICAgICA8cC10YWJQYW5lbCAqbmdGb3I9XCJsZXQgdyBvZiBvcGVuV2luZG93cygpOyBsZXQgaSA9IGluZGV4XCIgW2hlYWRlcl09XCJ3LmhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImNvbnRlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YXBwLWNoYXQtd2luZG93IChvbkFyY2hpdmUpPVwiY2xvc2VXaW5kb3coJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2hhdFJvb21JZF09XCJ3LnJvb21JZFwiIFtoZWFkZXJdPVwidy5oZWFkZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21ldGFkYXRhXT1cIncubWV0YWRhdGFcIiBtb2RlPVwiZmxvYXRpbmdcIiB0aGVtZT1cImxpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9hcHAtY2hhdC13aW5kb3c+XHJcbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8L3AtdGFiUGFuZWw+XHJcbiAgICAgICAgPC9wLXRhYlZpZXc+XHJcbiAgICA8L2Rpdj5cclxufVxyXG4iXX0=
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC1sYXVuY2hlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jaGF0LXdpZGdldC9zcmMvbGliL2NoYXQtbGF1bmNoZXIvY2hhdC1sYXVuY2hlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jaGF0LXdpZGdldC9zcmMvbGliL2NoYXQtbGF1bmNoZXIvY2hhdC1sYXVuY2hlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDekUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQzFELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sYUFBYSxDQUFDO0FBQzNDLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQzlELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7OztBQWlCOUMsTUFBTSxPQUFPLHFCQUFxQjtJQWlCOUI7UUFmQSxXQUFNLEdBQUcsS0FBSyxDQUFT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QUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QixDQUFDOytHQXhGUSxxQkFBcUI7bUdBQXJCLHFCQUFxQix5MEJBSG5CLENBQUMsY0FBYyxDQUFDLDBCQ3pCL0IsdThCQWlCQSx5Z0RES2MsWUFBWSw0SkFBRSxtQkFBbUIsNkxBQUUsY0FBYyxxSUFBRSxZQUFZLDRPQUFFLFdBQVcsOEJBQUUsV0FBVyw4QkFBRSxhQUFhLDJrQkFBRSxhQUFhOzs0RkFNeEgscUJBQXFCO2tCQVRqQyxTQUFTOytCQUNJLG1CQUFtQixjQUNqQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxhQUFhLENBQUMsYUFHdkgsQ0FBQyxjQUFjLENBQUMsaUJBQ1osaUJBQWlCLENBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBlZmZlY3QsIGluamVjdCwgaW5wdXQsIHNpZ25hbCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtDaGF0V2luZG93Q29tcG9uZW50fSBmcm9tICcuLi9jaGF0LXdpbmRvdy9jaGF0LXdpbmRvdy5jb21wb25lbnQnO1xyXG5pbXBvcnQge0NoYXRTZXJ2aWNlfSBmcm9tICcuLi9jb3JlL3NlcnZpY2VzL2NoYXQuc2VydmljZSc7XHJcbmltcG9ydCB7RHJvcGRvd25Nb2R1bGV9IGZyb20gJ3ByaW1lbmcvZHJvcGRvd24nO1xyXG5pbXBvcnQge0J1dHRvbk1vZHVsZX0gZnJvbSAncHJpbWVuZy9idXR0b24nO1xyXG5pbXBvcnQge1RvYXN0TW9kdWxlfSBmcm9tICdwcmltZW5nL3RvYXN0JztcclxuaW1wb3J0IHtNZXNzYWdlU2VydmljZX0gZnJvbSAncHJpbWVuZy9hcGknO1xyXG5pbXBvcnQge0Zvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7VGFiVmlld01vZHVsZX0gZnJvbSAncHJpbWVuZy90YWJ2aWV3JztcclxuaW1wb3J0IHtTb2NrZXRTZXJ2aWNlfSBmcm9tICcuLi9jb3JlL3NlcnZpY2VzL3NvY2tldC5zZXJ2aWNlJztcclxuaW1wb3J0IHtUb29sdGlwTW9kdWxlfSBmcm9tIFwicHJpbWVuZy90b29sdGlwXCI7XHJcblxyXG5pbnRlcmZhY2UgT3BlbkNoYXRXaW5kb3cge1xyXG4gICAgcm9vbUlkOiBzdHJpbmc7XHJcbiAgICBoZWFkZXI6IHN0cmluZztcclxuICAgIG1ldGFkYXRhOiBzdHJpbmc7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdhcHAtY2hhdC1sYXVuY2hlcicsXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQ2hhdFdpbmRvd0NvbXBvbmVudCwgRHJvcGRvd25Nb2R1bGUsIEJ1dHRvbk1vZHVsZSwgVG9hc3RNb2R1bGUsIEZvcm1zTW9kdWxlLCBUYWJWaWV3TW9kdWxlLCBUb29sdGlwTW9kdWxlXSxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9jaGF0LWxhdW5jaGVyLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2NoYXQtbGF1bmNoZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIHByb3ZpZGVyczogW01lc3NhZ2VTZXJ2aWNlXSxcclxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLkVtdWxhdGVkLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2hhdExhdW5jaGVyQ29tcG9uZW50IHtcclxuXHJcbiAgICByb29tSWQgPSBpbnB1dDxzdHJpbmc+KCcnKTtcclxuICAgIHJvb21IZWFkZXIgPSBpbnB1dDxzdHJpbmc+KCcnKTtcclxuICAgIG1ldGFkYXRhID0gaW5wdXQ8c3RyaW5nPignJyk7XHJcbiAgICB1c2VyID0gaW5wdXQ8YW55PihudWxsKTtcclxuICAgIHVzZXJMaXN0ID0gaW5wdXQ8YW55W10+KFtdKTtcclxuICAgIGNoYXRVc2VycyA9IGlucHV0PGFueVtdPihbXSk7XHJcblxyXG4gICAgY2hhdFNlcnZpY2UgPSBpbmplY3QoQ2hhdFNlcnZpY2UpO1xyXG4gICAgc29ja2V0U2VydmljZSA9IGluamVjdChTb2NrZXRTZXJ2aWNlKTtcclxuICAgIG1lc3NhZ2VTZXJ2aWNlID0gaW5qZWN0KE1lc3NhZ2VTZXJ2aWNlKTtcclxuICAgIG9wZW5XaW5kb3dzID0gc2lnbmFsPE9wZW5DaGF0V2luZG93W10+KFtdKTtcclxuICAgIGxhc3RPcGVuZWRSb29tID0gc2lnbmFsPHN0cmluZyB8IG51bGw+KG51bGwpO1xyXG4gICAgYWN0aXZlSW5kZXggPSBzaWduYWwoMCk7XHJcbiAgICBpc1Zpc2libGUgPSBzaWduYWwodHJ1ZSk7XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgZWZmZWN0KFxyXG4gICAgICAgICAgICAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCByb29tSWQgPSB0aGlzLnJvb21JZCgpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgaGVhZGVyID0gdGhpcy5yb29tSGVhZGVyKCk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBtZXRhZGF0YSA9IHRoaXMubWV0YWRhdGEoKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHVzZXIgPSB0aGlzLnVzZXIoKTtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLmNoYXRTZXJ2aWNlLmN1cnJlbnRVc2VyLnNldCh7XHJcbiAgICAgICAgICAgICAgICAgICAgcm9vbUlkOiB0aGlzLnJvb21JZCgpLFxyXG4gICAgICAgICAgICAgICAgICAgIHVzZXJJZDogdXNlcj8udXNlcklkLFxyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IHVzZXI/Lm5hbWVcclxuICAgICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuY2hhdFNlcnZpY2UudXNlckxpc3Quc2V0KHRoaXMudXNlckxpc3QoKSk7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKCFyb29tSWQgfHwgIXVzZXI/LnVzZXJJZCkgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubGFzdE9wZW5lZFJvb20oKSA9PT0gcm9vbUlkKSByZXR1cm47XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5sYXN0T3BlbmVkUm9vbS5zZXQocm9vbUlkKTtcclxuICAgICAgICAgICAgICAgIHRoaXMub3Blbk5ld1Jvb20ocm9vbUlkLCBoZWFkZXIsIG1ldGFkYXRhLCB1c2VyLnVzZXJJZCwgdXNlci5uYW1lLCB0aGlzLmNoYXRVc2VycygpKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge2FsbG93U2lnbmFsV3JpdGVzOiB0cnVlfVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ0NoYXRMYXVuY2hlciBpbml0aWFsaXplZCcpO1xyXG4gICAgfVxyXG5cclxuICAgIG9wZW5OZXdSb29tKHJvb21JZDogc3RyaW5nLCByb29tSGVhZGVyOiBzdHJpbmcsIG1ldGFkYXRhOiBzdHJpbmcsIHVzZXJJZDogc3RyaW5nLCB1c2VybmFtZTogc3RyaW5nLCBjaGF0VXNlcnM6IGFueSkge1xyXG4gICAgICAgIHRoaXMuaXNWaXNpYmxlLnNldCh0cnVlKTtcclxuICAgICAgICB0aGlzLmNoYXRTZXJ2aWNlLmNyZWF0ZVJvb20ocm9vbUlkLCByb29tSGVhZGVyLCBtZXRhZGF0YSwgdXNlcklkLCB1c2VybmFtZSwgY2hhdFVzZXJzKS5zdWJzY3JpYmUocm9vbSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuYWRkV2luZG93KHJvb20ucm9vbUtleSwgcm9vbS5uYW1lLCByb29tLm1ldGFkYXRhKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBhZGRXaW5kb3cocm9vbUlkOiBzdHJpbmcsIGhlYWRlcjogc3RyaW5nLCBtZXRhZGF0YTogc3RyaW5nKSB7XHJcbiAgICAgICAgY29uc3Qgd2luZG93cyA9IHRoaXMub3BlbldpbmRvd3MoKTtcclxuICAgICAgICBjb25zdCBleGlzdGluZ0luZGV4ID0gd2luZG93cy5maW5kSW5kZXgodyA9PiB3LnJvb21JZCA9PT0gcm9vbUlkKTtcclxuXHJcbiAgICAgICAgLy8gYWxyZWFkeSBvcGVuIOKGkiBmb2N1c1xyXG4gICAgICAgIGlmIChleGlzdGluZ0luZGV4ICE9PSAtMSkge1xyXG4gICAgICAgICAgICB0aGlzLmFjdGl2ZUluZGV4LnNldChleGlzdGluZ0luZGV4KTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgbmV3SW5kZXggPSB3aW5kb3dzLmxlbmd0aDtcclxuXHJcbiAgICAgICAgdGhpcy5vcGVuV2luZG93cy51cGRhdGUod3MgPT4gWy4uLndzLCB7cm9vbUlkLCBoZWFkZXIsIG1ldGFkYXRhfV0pO1xyXG5cclxuICAgICAgICAvLyDinIUgZm9yY2UgcmVhbCBjaGFuZ2U6IC0xIOKGkiAwXHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlSW5kZXguc2V0KG5ld0luZGV4KTtcclxuICAgICAgICB9LCA1MDApO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBjbG9zZVdpbmRvdyhyb29tSWQ6IGFueSkge1xyXG4gICAgICAgIHRoaXMub3BlbldpbmRvd3MudXBkYXRlKHdzID0+IHdzLmZpbHRlcih3ID0+IHcucm9vbUlkICE9PSByb29tSWQpKTtcclxuICAgIH1cclxuXHJcbiAgICBzZXRBY3RpdmUoaTogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5hY3RpdmVJbmRleC5zZXQoaSk7XHJcbiAgICB9XHJcblxyXG4gICAgY2xvc2VBbGwoKSB7XHJcbiAgICAgICAgdGhpcy5vcGVuV2luZG93cy5zZXQoW10pO1xyXG4gICAgICAgIC8vIHRoaXMubGFzdE9wZW5lZFJvb20uc2V0KG51bGwpO1xyXG4gICAgICAgIC8vIHRoaXMuYWN0aXZlSW5kZXguc2V0KDApO1xyXG4gICAgICAgIHRoaXMuaXNWaXNpYmxlLnNldChmYWxzZSk7XHJcbiAgICB9XHJcblxyXG59XHJcbiIsIkBpZiAoaXNWaXNpYmxlKCkpIHtcclxuICAgIDxkaXYgY2xhc3M9XCJjaGF0LWZsb2F0LXdyYXBwZXJcIj5cclxuICAgICAgICA8YnV0dG9uIChjbGljayk9XCJjbG9zZUFsbCgpXCIgaWNvbj1cInBpIHBpLXRpbWVzXCIgcEJ1dHRvbiBwVG9vbHRpcD1cIkNsb3NlXCJcclxuICAgICAgICAgICAgICAgIHN0eWxlPVwiZm9udC1zaXplOiAwLjVyZW1cIiBjbGFzcz1cImNsb3NlQnV0dG9uXCI+PC9idXR0b24+XHJcbiAgICAgICAgPHAtdGFiVmlldyAoYWN0aXZlSW5kZXhDaGFuZ2UpPVwic2V0QWN0aXZlKCRldmVudClcIiBbYWN0aXZlSW5kZXhdPVwiYWN0aXZlSW5kZXgoKVwiIFtzY3JvbGxhYmxlXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjaGF0LXRhYnZpZXdcIj5cclxuICAgICAgICAgICAgPHAtdGFiUGFuZWwgKm5nRm9yPVwibGV0IHcgb2Ygb3BlbldpbmRvd3MoKTsgbGV0IGkgPSBpbmRleFwiIFtoZWFkZXJdPVwidy5oZWFkZXJcIj5cclxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJjb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGFwcC1jaGF0LXdpbmRvdyAob25BcmNoaXZlKT1cImNsb3NlV2luZG93KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NoYXRSb29tSWRdPVwidy5yb29tSWRcIiBbaGVhZGVyXT1cIncuaGVhZGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttZXRhZGF0YV09XCJ3Lm1ldGFkYXRhXCIgbW9kZT1cImZsb2F0aW5nXCIgdGhlbWU9XCJsaWdodFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvYXBwLWNoYXQtd2luZG93PlxyXG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPC9wLXRhYlBhbmVsPlxyXG4gICAgICAgIDwvcC10YWJWaWV3PlxyXG4gICAgPC9kaXY+XHJcbn1cclxuIl19
|
|
@@ -1,51 +1,32 @@
|
|
|
1
|
-
import { Component,
|
|
1
|
+
import { Component, computed, inject } from '@angular/core';
|
|
2
2
|
import { ChatService } from "../core/services/chat.service";
|
|
3
3
|
import { CommonModule } from "@angular/common";
|
|
4
4
|
import { FormsModule } from "@angular/forms";
|
|
5
|
-
import { NotificationService } from "../core/services/notification.service";
|
|
6
|
-
import { SocketService } from "../core/services/socket.service";
|
|
7
5
|
import * as i0 from "@angular/core";
|
|
8
6
|
export class ChatWidgetNotificationComponent {
|
|
9
7
|
constructor() {
|
|
10
8
|
this.open = false;
|
|
11
9
|
this.chatService = inject(ChatService);
|
|
12
|
-
this.
|
|
13
|
-
this.
|
|
14
|
-
this.
|
|
15
|
-
this.totalCount = 0;
|
|
16
|
-
this.user = input(null);
|
|
17
|
-
}
|
|
18
|
-
ngOnInit() {
|
|
19
|
-
if (!this.user) {
|
|
20
|
-
console.error('user is required');
|
|
21
|
-
return;
|
|
22
|
-
}
|
|
23
|
-
this.notificationService.notifications$()
|
|
24
|
-
.subscribe((notifications) => {
|
|
25
|
-
this.notifications = notifications;
|
|
26
|
-
this.totalCount =
|
|
27
|
-
this.notificationService.getTotalCount(notifications);
|
|
28
|
-
});
|
|
10
|
+
this.notifications = this.chatService.notifications;
|
|
11
|
+
this.hasNew = this.chatService.hasNewNotification;
|
|
12
|
+
this.totalCount = computed(() => this.notifications().reduce((a, b) => a + b.unreadCount, 0));
|
|
29
13
|
}
|
|
30
14
|
toggle() {
|
|
31
15
|
this.open = !this.open;
|
|
32
16
|
}
|
|
33
17
|
openRoom(n) {
|
|
18
|
+
// this.chatLauncher.openRoom(n.roomId);
|
|
34
19
|
this.chatService.clearRoom(n.roomId);
|
|
35
20
|
this.open = false;
|
|
36
|
-
// this.http.post(
|
|
37
|
-
// `/api/chat/notifications/${notification.id}/read`,
|
|
38
|
-
// { userId: this.currentUserId }
|
|
39
|
-
// ).subscribe();
|
|
40
21
|
}
|
|
41
22
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChatWidgetNotificationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
42
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: ChatWidgetNotificationComponent, isStandalone: true, selector: "chat-widget-notification",
|
|
23
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: ChatWidgetNotificationComponent, isStandalone: true, selector: "chat-widget-notification", ngImport: i0, template: "<div (click)=\"toggle()\" class=\"notif-icon\">\r\n <i class=\"pi pi-bell\" [class.pulse]=\"hasNew()\"></i>\r\n\r\n @if (totalCount() > 0) {\r\n <span class=\"dot\"></span>\r\n <span class=\"badge\">{{ totalCount() }}</span>\r\n }\r\n</div>\r\n\r\n@if (open) {\r\n <div class=\"notif-panel\">\r\n<!-- <div class=\"notif-header\">Notifications</div>-->\r\n\r\n <div class=\"notif-list\">\r\n @for (n of notifications(); track n.roomId) {\r\n <div class=\"notif-item\" (click)=\"openRoom(n)\">\r\n <div class=\"notif-left\">\r\n <i class=\"pi pi-comments\"></i>\r\n </div>\r\n\r\n <div class=\"notif-body\">\r\n <div class=\"notif-title\">{{ n.roomName }}</div>\r\n <div class=\"notif-text\">\r\n {{ n.lastMessage || 'You were added to this room' }}\r\n </div>\r\n </div>\r\n\r\n <span class=\"count\">{{ n.unreadCount }}</span>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n}\r\n", styles: [".notif-icon{position:relative;cursor:pointer;display:flex;align-items:center;justify-content:center}.notif-icon i{font-size:1.4rem;color:#444}.pulse{animation:pulse 1.2s ease-out}@keyframes pulse{0%{transform:scale(1)}40%{transform:scale(1.2)}to{transform:scale(1)}}.dot{position:absolute;top:2px;right:4px;width:8px;height:8px;background:#e53935;border-radius:50%}.badge{position:absolute;top:-6px;right:-10px;background:#e53935;color:#fff;font-size:.65rem;min-width:18px;height:18px;padding:0 5px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-weight:600}.notif-panel{position:absolute;top:42px;right:0;width:320px;background:#fff;border-radius:8px;box-shadow:0 12px 28px #00000026;z-index:9999;overflow:hidden;animation:fadeIn .15s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.notif-header{padding:12px 16px;font-weight:600;font-size:.9rem;border-bottom:1px solid #eee}.notif-list{max-height:360px;overflow-y:auto}.notif-item{display:flex;align-items:center;padding:12px 14px;cursor:pointer;transition:background .15s ease}.notif-item:hover{background:#f5f7fa}.notif-left{width:36px;height:36px;border-radius:50%;background:#e3f2fd;color:#1976d2;display:flex;align-items:center;justify-content:center;margin-right:12px}.notif-body{flex:1;min-width:0}.notif-title{font-size:.85rem;font-weight:600;color:#222;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.notif-text{font-size:.75rem;color:#666;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.count{background:#1976d2;color:#fff;font-size:.65rem;min-width:20px;height:20px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-weight:600}.notif-item{background:#f0f6ff}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }] }); }
|
|
43
24
|
}
|
|
44
25
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChatWidgetNotificationComponent, decorators: [{
|
|
45
26
|
type: Component,
|
|
46
27
|
args: [{ selector: 'chat-widget-notification', standalone: true, imports: [
|
|
47
28
|
CommonModule,
|
|
48
29
|
FormsModule
|
|
49
|
-
], template: "<div (click)=\"toggle()\" class=\"notif-icon\">\r\n <i class=\"pi pi-bell\" [class.pulse]=\"
|
|
30
|
+
], template: "<div (click)=\"toggle()\" class=\"notif-icon\">\r\n <i class=\"pi pi-bell\" [class.pulse]=\"hasNew()\"></i>\r\n\r\n @if (totalCount() > 0) {\r\n <span class=\"dot\"></span>\r\n <span class=\"badge\">{{ totalCount() }}</span>\r\n }\r\n</div>\r\n\r\n@if (open) {\r\n <div class=\"notif-panel\">\r\n<!-- <div class=\"notif-header\">Notifications</div>-->\r\n\r\n <div class=\"notif-list\">\r\n @for (n of notifications(); track n.roomId) {\r\n <div class=\"notif-item\" (click)=\"openRoom(n)\">\r\n <div class=\"notif-left\">\r\n <i class=\"pi pi-comments\"></i>\r\n </div>\r\n\r\n <div class=\"notif-body\">\r\n <div class=\"notif-title\">{{ n.roomName }}</div>\r\n <div class=\"notif-text\">\r\n {{ n.lastMessage || 'You were added to this room' }}\r\n </div>\r\n </div>\r\n\r\n <span class=\"count\">{{ n.unreadCount }}</span>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n}\r\n", styles: [".notif-icon{position:relative;cursor:pointer;display:flex;align-items:center;justify-content:center}.notif-icon i{font-size:1.4rem;color:#444}.pulse{animation:pulse 1.2s ease-out}@keyframes pulse{0%{transform:scale(1)}40%{transform:scale(1.2)}to{transform:scale(1)}}.dot{position:absolute;top:2px;right:4px;width:8px;height:8px;background:#e53935;border-radius:50%}.badge{position:absolute;top:-6px;right:-10px;background:#e53935;color:#fff;font-size:.65rem;min-width:18px;height:18px;padding:0 5px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-weight:600}.notif-panel{position:absolute;top:42px;right:0;width:320px;background:#fff;border-radius:8px;box-shadow:0 12px 28px #00000026;z-index:9999;overflow:hidden;animation:fadeIn .15s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.notif-header{padding:12px 16px;font-weight:600;font-size:.9rem;border-bottom:1px solid #eee}.notif-list{max-height:360px;overflow-y:auto}.notif-item{display:flex;align-items:center;padding:12px 14px;cursor:pointer;transition:background .15s ease}.notif-item:hover{background:#f5f7fa}.notif-left{width:36px;height:36px;border-radius:50%;background:#e3f2fd;color:#1976d2;display:flex;align-items:center;justify-content:center;margin-right:12px}.notif-body{flex:1;min-width:0}.notif-title{font-size:.85rem;font-weight:600;color:#222;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.notif-text{font-size:.75rem;color:#666;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.count{background:#1976d2;color:#fff;font-size:.65rem;min-width:20px;height:20px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-weight:600}.notif-item{background:#f0f6ff}\n"] }]
|
|
50
31
|
}], ctorParameters: () => [] });
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC13aWRnZXQtbm90aWZpY2F0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NoYXQtd2lkZ2V0L3NyYy9saWIvY2hhdC13aWRnZXQtbm90aWZpY2F0aW9uL2NoYXQtd2lkZ2V0LW5vdGlmaWNhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jaGF0LXdpZGdldC9zcmMvbGliL2NoYXQtd2lkZ2V0LW5vdGlmaWNhdGlvbi9jaGF0LXdpZGdldC1ub3RpZmljYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUMxRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDOztBQWEzQyxNQUFNLE9BQU8sK0JBQStCO0lBV3hDO1FBVkEsU0FBSSxHQUFHLEtBQUssQ0FBQztRQUViLGdCQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2xDLGtCQUFhLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUM7UUFDL0MsV0FBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLENBQUM7UUFFN0MsZUFBVSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FDdkIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQU0sRUFBRSxDQUF3QixFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FDMUYsQ0FBQztJQUlDLENBQUM7SUFFSixNQUFNO1FBQ0YsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDM0IsQ0FBQztJQUVELFFBQVEsQ0FBQyxDQUFtQjtRQUN4Qix3Q0FBd0M7UUFDeEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO0lBQ3RCLENBQUM7K0dBdkJRLCtCQUErQjttR0FBL0IsK0JBQStCLG9GQ2hCNUMsd3FDQWlDQSw0eEREdkJNLFlBQVksOEJBQ1osV0FBVzs7NEZBS0osK0JBQStCO2tCQVYzQyxTQUFTOytCQUNFLDBCQUEwQixjQUN4QixJQUFJLFdBQ1A7d0JBQ0wsWUFBWTt3QkFDWixXQUFXO3FCQUNkIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIGNvbXB1dGVkLCBpbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0NoYXRTZXJ2aWNlfSBmcm9tIFwiLi4vY29yZS9zZXJ2aWNlcy9jaGF0LnNlcnZpY2VcIjtcclxuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHtGb3Jtc01vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7Q2hhdE5vdGlmaWNhdGlvbn0gZnJvbSBcIi4uL2NvcmUvbW9kZWxzL25vdGlmaWNhdGlvbi5tb2RlbFwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjaGF0LXdpZGdldC1ub3RpZmljYXRpb24nLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgICBDb21tb25Nb2R1bGUsXHJcbiAgICAgIEZvcm1zTW9kdWxlXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vY2hhdC13aWRnZXQtbm90aWZpY2F0aW9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vY2hhdC13aWRnZXQtbm90aWZpY2F0aW9uLmNvbXBvbmVudC5jc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDaGF0V2lkZ2V0Tm90aWZpY2F0aW9uQ29tcG9uZW50IHtcclxuICAgIG9wZW4gPSBmYWxzZTtcclxuXHJcbiAgICBjaGF0U2VydmljZSA9IGluamVjdChDaGF0U2VydmljZSk7XHJcbiAgICBub3RpZmljYXRpb25zID0gdGhpcy5jaGF0U2VydmljZS5ub3RpZmljYXRpb25zO1xyXG4gICAgaGFzTmV3ID0gdGhpcy5jaGF0U2VydmljZS5oYXNOZXdOb3RpZmljYXRpb247XHJcblxyXG4gICAgdG90YWxDb3VudCA9IGNvbXB1dGVkKCgpID0+XHJcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb25zKCkucmVkdWNlKChhOiBhbnksIGI6IHsgdW5yZWFkQ291bnQ6IGFueTsgfSkgPT4gYSArIGIudW5yZWFkQ291bnQsIDApXHJcbiAgICApO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG5cclxuICAgICkge31cclxuXHJcbiAgICB0b2dnbGUoKSB7XHJcbiAgICAgICAgdGhpcy5vcGVuID0gIXRoaXMub3BlbjtcclxuICAgIH1cclxuXHJcbiAgICBvcGVuUm9vbShuOiBDaGF0Tm90aWZpY2F0aW9uKSB7XHJcbiAgICAgICAgLy8gdGhpcy5jaGF0TGF1bmNoZXIub3BlblJvb20obi5yb29tSWQpO1xyXG4gICAgICAgIHRoaXMuY2hhdFNlcnZpY2UuY2xlYXJSb29tKG4ucm9vbUlkKTtcclxuICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcclxuICAgIH1cclxufVxyXG4iLCI8ZGl2IChjbGljayk9XCJ0b2dnbGUoKVwiIGNsYXNzPVwibm90aWYtaWNvblwiPlxyXG4gICAgPGkgY2xhc3M9XCJwaSBwaS1iZWxsXCIgW2NsYXNzLnB1bHNlXT1cImhhc05ldygpXCI+PC9pPlxyXG5cclxuICAgIEBpZiAodG90YWxDb3VudCgpID4gMCkge1xyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZG90XCI+PC9zcGFuPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2VcIj57eyB0b3RhbENvdW50KCkgfX08L3NwYW4+XHJcbiAgICB9XHJcbjwvZGl2PlxyXG5cclxuQGlmIChvcGVuKSB7XHJcbiAgICA8ZGl2IGNsYXNzPVwibm90aWYtcGFuZWxcIj5cclxuPCEtLSAgICAgICAgPGRpdiBjbGFzcz1cIm5vdGlmLWhlYWRlclwiPk5vdGlmaWNhdGlvbnM8L2Rpdj4tLT5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm5vdGlmLWxpc3RcIj5cclxuICAgICAgICAgICAgQGZvciAobiBvZiBub3RpZmljYXRpb25zKCk7IHRyYWNrIG4ucm9vbUlkKSB7XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibm90aWYtaXRlbVwiIChjbGljayk9XCJvcGVuUm9vbShuKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJub3RpZi1sZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwicGkgcGktY29tbWVudHNcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJub3RpZi1ib2R5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJub3RpZi10aXRsZVwiPnt7IG4ucm9vbU5hbWUgfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5vdGlmLXRleHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IG4ubGFzdE1lc3NhZ2UgfHwgJ1lvdSB3ZXJlIGFkZGVkIHRvIHRoaXMgcm9vbScgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY291bnRcIj57eyBuLnVucmVhZENvdW50IH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG59XHJcbiJdfQ==
|
|
@@ -1,15 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
3
|
import { ChatLauncherComponent } from './chat-launcher/chat-launcher.component';
|
|
4
4
|
import { ChatWindowComponent } from './chat-window/chat-window.component';
|
|
5
5
|
import { AllChatsComponent } from './all-chats/all-chats.component';
|
|
6
6
|
import { CHAT_CONFIG } from './core/config/chat.tokens';
|
|
7
7
|
import { ChatWidgetNotificationComponent } from "./chat-widget-notification/chat-widget-notification.component";
|
|
8
|
-
import { ChatWidgetBootstrapService } from "./core/services/chat_widget_bootstrap.service";
|
|
9
8
|
import * as i0 from "@angular/core";
|
|
10
|
-
export function chatWidgetInitializer(bootstrap) {
|
|
11
|
-
return () => { };
|
|
12
|
-
}
|
|
13
9
|
export class ChatWidgetModule {
|
|
14
10
|
static forRoot(config) {
|
|
15
11
|
return {
|
|
@@ -28,14 +24,7 @@ export class ChatWidgetModule {
|
|
|
28
24
|
ChatWindowComponent,
|
|
29
25
|
AllChatsComponent,
|
|
30
26
|
ChatWidgetNotificationComponent], exports: [ChatLauncherComponent] }); }
|
|
31
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChatWidgetModule,
|
|
32
|
-
{
|
|
33
|
-
provide: APP_INITIALIZER,
|
|
34
|
-
useFactory: chatWidgetInitializer,
|
|
35
|
-
deps: [ChatWidgetBootstrapService],
|
|
36
|
-
multi: true
|
|
37
|
-
}
|
|
38
|
-
], imports: [CommonModule,
|
|
27
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChatWidgetModule, imports: [CommonModule,
|
|
39
28
|
ChatLauncherComponent,
|
|
40
29
|
ChatWindowComponent,
|
|
41
30
|
AllChatsComponent,
|
|
@@ -52,15 +41,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
52
41
|
AllChatsComponent,
|
|
53
42
|
ChatWidgetNotificationComponent
|
|
54
43
|
],
|
|
55
|
-
exports: [ChatLauncherComponent]
|
|
56
|
-
providers: [
|
|
57
|
-
{
|
|
58
|
-
provide: APP_INITIALIZER,
|
|
59
|
-
useFactory: chatWidgetInitializer,
|
|
60
|
-
deps: [ChatWidgetBootstrapService],
|
|
61
|
-
multi: true
|
|
62
|
-
}
|
|
63
|
-
]
|
|
44
|
+
exports: [ChatLauncherComponent]
|
|
64
45
|
}]
|
|
65
46
|
}] });
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC13aWRnZXQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY2hhdC13aWRnZXQvc3JjL2xpYi9jaGF0LXdpZGdldC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFzQixRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBQzlFLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ3hFLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQ2xFLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUV0RCxPQUFPLEVBQUMsK0JBQStCLEVBQUMsTUFBTSwrREFBK0QsQ0FBQzs7QUFhOUcsTUFBTSxPQUFPLGdCQUFnQjtJQUN6QixNQUFNLENBQUMsT0FBTyxDQUFDLE1BQWtCO1FBQzdCLE9BQU87WUFDSCxRQUFRLEVBQUUsZ0JBQWdCO1lBQzFCLFNBQVMsRUFBRTtnQkFDUDtvQkFDSSxPQUFPLEVBQUUsV0FBVztvQkFDcEIsUUFBUSxFQUFFLE1BQU07aUJBQ25CO2FBQ0o7U0FDSixDQUFDO0lBQ04sQ0FBQzsrR0FYUSxnQkFBZ0I7Z0hBQWhCLGdCQUFnQixZQVJyQixZQUFZO1lBQ1oscUJBQXFCO1lBQ3JCLG1CQUFtQjtZQUNuQixpQkFBaUI7WUFDakIsK0JBQStCLGFBRXpCLHFCQUFxQjtnSEFFdEIsZ0JBQWdCLFlBUnJCLFlBQVk7WUFDWixxQkFBcUI7WUFDckIsbUJBQW1CO1lBQ25CLGlCQUFpQjtZQUNqQiwrQkFBK0I7OzRGQUkxQixnQkFBZ0I7a0JBWDVCLFFBQVE7bUJBQUM7b0JBQ04sWUFBWSxFQUFFLEVBQUU7b0JBQ2hCLE9BQU8sRUFBRTt3QkFDTCxZQUFZO3dCQUNaLHFCQUFxQjt3QkFDckIsbUJBQW1CO3dCQUNuQixpQkFBaUI7d0JBQ2pCLCtCQUErQjtxQkFDbEM7b0JBQ0QsT0FBTyxFQUFFLENBQUMscUJBQXFCLENBQUM7aUJBQ25DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQge0NoYXRMYXVuY2hlckNvbXBvbmVudH0gZnJvbSAnLi9jaGF0LWxhdW5jaGVyL2NoYXQtbGF1bmNoZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHtDaGF0V2luZG93Q29tcG9uZW50fSBmcm9tICcuL2NoYXQtd2luZG93L2NoYXQtd2luZG93LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7QWxsQ2hhdHNDb21wb25lbnR9IGZyb20gJy4vYWxsLWNoYXRzL2FsbC1jaGF0cy5jb21wb25lbnQnO1xyXG5pbXBvcnQge0NIQVRfQ09ORklHfSBmcm9tICcuL2NvcmUvY29uZmlnL2NoYXQudG9rZW5zJztcclxuaW1wb3J0IHR5cGUge0NoYXRDb25maWd9IGZyb20gJy4vY29yZS9jb25maWcvY2hhdC1jb25maWcnO1xyXG5pbXBvcnQge0NoYXRXaWRnZXROb3RpZmljYXRpb25Db21wb25lbnR9IGZyb20gXCIuL2NoYXQtd2lkZ2V0LW5vdGlmaWNhdGlvbi9jaGF0LXdpZGdldC1ub3RpZmljYXRpb24uY29tcG9uZW50XCI7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gICAgZGVjbGFyYXRpb25zOiBbXSxcclxuICAgIGltcG9ydHM6IFtcclxuICAgICAgICBDb21tb25Nb2R1bGUsXHJcbiAgICAgICAgQ2hhdExhdW5jaGVyQ29tcG9uZW50LFxyXG4gICAgICAgIENoYXRXaW5kb3dDb21wb25lbnQsXHJcbiAgICAgICAgQWxsQ2hhdHNDb21wb25lbnQsXHJcbiAgICAgICAgQ2hhdFdpZGdldE5vdGlmaWNhdGlvbkNvbXBvbmVudFxyXG4gICAgXSxcclxuICAgIGV4cG9ydHM6IFtDaGF0TGF1bmNoZXJDb21wb25lbnRdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDaGF0V2lkZ2V0TW9kdWxlIHtcclxuICAgIHN0YXRpYyBmb3JSb290KGNvbmZpZzogQ2hhdENvbmZpZyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8Q2hhdFdpZGdldE1vZHVsZT4ge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIG5nTW9kdWxlOiBDaGF0V2lkZ2V0TW9kdWxlLFxyXG4gICAgICAgICAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBDSEFUX0NPTkZJRyxcclxuICAgICAgICAgICAgICAgICAgICB1c2VWYWx1ZTogY29uZmlnXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIF1cclxuICAgICAgICB9O1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import { Injectable } from "@angular/core";
|
|
1
|
+
import { inject, Injectable } from "@angular/core";
|
|
2
|
+
import { ChatService } from "./core/services/chat.service";
|
|
3
|
+
import { SocketService } from "./core/services/socket.service";
|
|
2
4
|
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "./core/services/chat.service";
|
|
4
5
|
export class ChatWidgetService {
|
|
5
|
-
constructor(
|
|
6
|
-
this.chatService =
|
|
6
|
+
constructor() {
|
|
7
|
+
this.chatService = inject(ChatService);
|
|
8
|
+
this.socketService = inject(SocketService);
|
|
7
9
|
}
|
|
8
10
|
initUser(user) {
|
|
9
11
|
this.chatService.currentUser.set({
|
|
@@ -12,11 +14,11 @@ export class ChatWidgetService {
|
|
|
12
14
|
name: user.name
|
|
13
15
|
});
|
|
14
16
|
}
|
|
15
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChatWidgetService, deps: [
|
|
17
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChatWidgetService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
16
18
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChatWidgetService, providedIn: 'root' }); }
|
|
17
19
|
}
|
|
18
20
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChatWidgetService, decorators: [{
|
|
19
21
|
type: Injectable,
|
|
20
22
|
args: [{ providedIn: 'root' }]
|
|
21
|
-
}], ctorParameters: () => [
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
}], ctorParameters: () => [] });
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC13aWRnZXQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NoYXQtd2lkZ2V0L3NyYy9saWIvY2hhdC13aWRnZXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDekQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGdDQUFnQyxDQUFDOztBQUc3RCxNQUFNLE9BQU8saUJBQWlCO0lBSTFCO1FBRkEsZ0JBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbEMsa0JBQWEsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVoQixRQUFRLENBQUMsSUFBa0M7UUFDdkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDO1lBQzdCLE1BQU0sRUFBRSxJQUFJO1lBQ1osTUFBTSxFQUFFLElBQUksQ0FBQyxFQUFFO1lBQ2YsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1NBQ2xCLENBQUMsQ0FBQztJQUNQLENBQUM7K0dBWlEsaUJBQWlCO21IQUFqQixpQkFBaUIsY0FESixNQUFNOzs0RkFDbkIsaUJBQWlCO2tCQUQ3QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7aW5qZWN0LCBJbmplY3RhYmxlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0NoYXRTZXJ2aWNlfSBmcm9tIFwiLi9jb3JlL3NlcnZpY2VzL2NoYXQuc2VydmljZVwiO1xyXG5pbXBvcnQge1NvY2tldFNlcnZpY2V9IGZyb20gXCIuL2NvcmUvc2VydmljZXMvc29ja2V0LnNlcnZpY2VcIjtcclxuXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXHJcbmV4cG9ydCBjbGFzcyBDaGF0V2lkZ2V0U2VydmljZSB7XHJcblxyXG4gICAgY2hhdFNlcnZpY2UgPSBpbmplY3QoQ2hhdFNlcnZpY2UpO1xyXG4gICAgc29ja2V0U2VydmljZSA9IGluamVjdChTb2NrZXRTZXJ2aWNlKTtcclxuICAgIGNvbnN0cnVjdG9yKCkge31cclxuXHJcbiAgICBpbml0VXNlcih1c2VyOiB7IGlkOiBzdHJpbmc7IG5hbWU6IHN0cmluZyB9KSB7XHJcbiAgICAgICAgdGhpcy5jaGF0U2VydmljZS5jdXJyZW50VXNlci5zZXQoe1xyXG4gICAgICAgICAgICByb29tSWQ6IG51bGwsXHJcbiAgICAgICAgICAgIHVzZXJJZDogdXNlci5pZCxcclxuICAgICAgICAgICAgbmFtZTogdXNlci5uYW1lXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -46,9 +46,7 @@ export class ChatWindowComponent {
|
|
|
46
46
|
this.hoveredReactionUsers = [];
|
|
47
47
|
}
|
|
48
48
|
ngOnInit() {
|
|
49
|
-
|
|
50
|
-
this.socket.joinRoom(this.chatRoomId);
|
|
51
|
-
}
|
|
49
|
+
this.socket.joinRoom(this.chatRoomId);
|
|
52
50
|
this.loadUsers();
|
|
53
51
|
this.loadMessages();
|
|
54
52
|
this.listenSocket();
|
|
@@ -73,10 +71,24 @@ export class ChatWindowComponent {
|
|
|
73
71
|
if (msg.chatRoomId === this.chatRoomId) {
|
|
74
72
|
this.messages.update(list => [...list, msg]);
|
|
75
73
|
}
|
|
74
|
+
// if (msg.senderId !== this.chatService.currentUser().userId) {
|
|
75
|
+
// this.messageService.add({
|
|
76
|
+
// severity: 'info',
|
|
77
|
+
// summary: this.header,
|
|
78
|
+
// detail: msg.content ?? 'New message',
|
|
79
|
+
// life: 2500
|
|
80
|
+
// });
|
|
81
|
+
// }
|
|
76
82
|
});
|
|
77
83
|
this.socket.on('roomUserAdded').subscribe((msg) => {
|
|
78
84
|
if (msg.chatRoomId === this.chatRoomId) {
|
|
79
85
|
this.loadUsers();
|
|
86
|
+
// this.messageService.add({
|
|
87
|
+
// severity: 'info',
|
|
88
|
+
// summary: 'User Added',
|
|
89
|
+
// detail: msg.user?.userName,
|
|
90
|
+
// life: 2500
|
|
91
|
+
// });
|
|
80
92
|
}
|
|
81
93
|
});
|
|
82
94
|
this.socket.on('addedToRoom').subscribe((msg) => {
|
|
@@ -86,6 +98,14 @@ export class ChatWindowComponent {
|
|
|
86
98
|
}
|
|
87
99
|
});
|
|
88
100
|
this.socket.on('userAlreadyInRoom').subscribe((msg) => {
|
|
101
|
+
// if (msg.chatRoomId === this.chatRoomId) {
|
|
102
|
+
// this.messageService.add({
|
|
103
|
+
// severity: 'info',
|
|
104
|
+
// summary: 'User Already Added',
|
|
105
|
+
// detail: msg.user?.userName,
|
|
106
|
+
// life: 2500
|
|
107
|
+
// });
|
|
108
|
+
// }
|
|
89
109
|
});
|
|
90
110
|
}
|
|
91
111
|
send() {
|
|
@@ -187,4 +207,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
187
207
|
type: ViewChild,
|
|
188
208
|
args: ['reactionOverlay']
|
|
189
209
|
}] } });
|
|
190
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC13aW5kb3cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2hhdC13aWRnZXQvc3JjL2xpYi9jaGF0LXdpbmRvdy9jaGF0LXdpbmRvdy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jaGF0LXdpZGdldC9zcmMvbGliL2NoYXQtd2luZG93L2NoYXQtd2luZG93LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBRVQsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsS0FBSyxFQUVMLE1BQU0sRUFDTixNQUFNLEVBQ04sU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQzFELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFDM0MsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1QyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ2hELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFFeEMsT0FBTyxF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QUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0ksU0FBUztzQkFBbEIsTUFBTTtnQkFpQnlCLGlCQUFpQjtzQkFBaEQsU0FBUzt1QkFBQyxtQkFBbUI7Z0JBQ0EsZUFBZTtzQkFBNUMsU0FBUzt1QkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgRWxlbWVudFJlZixcclxuICAgIEV2ZW50RW1pdHRlcixcclxuICAgIGluamVjdCxcclxuICAgIElucHV0LFxyXG4gICAgaW5wdXQsXHJcbiAgICBPbkluaXQsXHJcbiAgICBPdXRwdXQsXHJcbiAgICBzaWduYWwsXHJcbiAgICBWaWV3Q2hpbGRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7Rm9ybXNNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHtDaGF0U2VydmljZX0gZnJvbSAnLi4vY29yZS9zZXJ2aWNlcy9jaGF0LnNlcnZpY2UnO1xyXG5pbXBvcnQge1NvY2tldFNlcnZpY2V9IGZyb20gJy4uL2NvcmUvc2VydmljZXMvc29ja2V0LnNlcnZpY2UnO1xyXG5pbXBvcnQge1RvYXN0TW9kdWxlfSBmcm9tICdwcmltZW5nL3RvYXN0JztcclxuaW1wb3J0IHtNZXNzYWdlU2VydmljZX0gZnJvbSAncHJpbWVuZy9hcGknO1xyXG5pbXBvcnQge0J1dHRvbk1vZHVsZX0gZnJvbSAncHJpbWVuZy9idXR0b24nO1xyXG5pbXBvcnQge0F2YXRhck1vZHVsZX0gZnJvbSAncHJpbWVuZy9hdmF0YXInO1xyXG5pbXBvcnQge1Rvb2x0aXBNb2R1bGV9IGZyb20gJ3ByaW1lbmcvdG9vbHRpcCc7XHJcbmltcG9ydCB7SW5wdXRUZXh0YXJlYU1vZHVsZX0gZnJvbSAncHJpbWVuZy9pbnB1dHRleHRhcmVhJztcclxuaW1wb3J0IHtEcm9wZG93bk1vZHVsZX0gZnJvbSAncHJpbWVuZy9kcm9wZG93bic7XHJcbmltcG9ydCB7Q2hpcE1vZHVsZX0gZnJvbSAncHJpbWVuZy9jaGlwJztcclxuaW1wb3J0IHtDaGF0TWVzc2FnZX0gZnJvbSAnLi4vY29yZS9tb2RlbHMvY2hhdC5tb2RlbHMnO1xyXG5pbXBvcnQge092ZXJsYXlQYW5lbCwgT3ZlcmxheVBhbmVsTW9kdWxlfSBmcm9tICdwcmltZW5nL292ZXJsYXlwYW5lbCc7XHJcbmltcG9ydCB7Q2hhdE5vdGlmaWNhdGlvbn0gZnJvbSBcIi4uL2NvcmUvbW9kZWxzL25vdGlmaWNhdGlvbi5tb2RlbFwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2FwcC1jaGF0LXdpbmRvdycsXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgaW1wb3J0czogW1xyXG4gICAgICAgIENvbW1vbk1vZHVsZSxcclxuICAgICAgICBGb3Jtc01vZHVsZSxcclxuICAgICAgICBUb2FzdE1vZHVsZSxcclxuICAgICAgICBCdXR0b25Nb2R1bGUsXHJcbiAgICAgICAgQXZhdGFyTW9kdWxlLFxyXG4gICAgICAgIFRvb2x0aXBNb2R1bGUsXHJcbiAgICAgICAgSW5wdXRUZXh0YXJlYU1vZHVsZSxcclxuICAgICAgICBDaGlwTW9kdWxlLFxyXG4gICAgICAgIERyb3Bkb3duTW9kdWxlLFxyXG4gICAgICAgIE92ZXJsYXlQYW5lbE1vZHVsZVxyXG4gICAgXSxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9jaGF0LXdpbmRvdy5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9jaGF0LXdpbmRvdy5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgcHJvdmlkZXJzOiBbTWVzc2FnZVNlcnZpY2VdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDaGF0V2luZG93Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIEBJbnB1dCgpIGNoYXRSb29tSWQhOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBoZWFkZXIgPSAnQ2hhdCc7XHJcbiAgICBASW5wdXQoKSBtZXRhZGF0YSA9ICcnO1xyXG4gICAgQElucHV0KCkgY2hhdFVzZXJzID0gW107XHJcbiAgICBASW5wdXQoKSBzaG93QWN0aW9ucyA9IHRydWU7XHJcbiAgICBASW5wdXQoKSBtb2RlOiAnZmxvYXRpbmcnIHwgJ2Z1bGxzY3JlZW4nID0gJ2Zsb2F0aW5nJztcclxuICAgIEBJbnB1dCgpIHRoZW1lOiAnbGlnaHQnIHwgJ2RhcmsnID0gJ2xpZ2h0JztcclxuICAgIEBPdXRwdXQoKSBvbkFyY2hpdmUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gICAgcmVmcmVzaFJvb20gPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcbiAgICAvLyBASW5wdXQoKSBjdXJyZW50VXNlcjogYW55O1xyXG5cclxuICAgIGNoYXRTZXJ2aWNlID0gaW5qZWN0KENoYXRTZXJ2aWNlKTtcclxuICAgIHNvY2tldCA9IGluamVjdChTb2NrZXRTZXJ2aWNlKTtcclxuICAgIG1lc3NhZ2VTZXJ2aWNlID0gaW5qZWN0KE1lc3NhZ2VTZXJ2aWNlKTtcclxuXHJcbiAgICB1c2VycyA9IHNpZ25hbDxhbnlbXT4oW10pO1xyXG4gICAgbWVzc2FnZXMgPSBzaWduYWw8Q2hhdE1lc3NhZ2VbXT4oW10pO1xyXG4gICAgbmV3TWVzc2FnZSA9ICcnO1xyXG4gICAgbWluaW1pemVkID0gZmFsc2U7XHJcbiAgICBsb2FkaW5nID0gZmFsc2U7XHJcbiAgICByZXBseVRvOiBDaGF0TWVzc2FnZSB8IG51bGwgPSBudWxsO1xyXG4gICAgc2VsZWN0ZWRVc2VyOiBhbnk7XHJcblxyXG4gICAgQFZpZXdDaGlsZCgnbWVzc2FnZXNDb250YWluZXInKSBtZXNzYWdlc0NvbnRhaW5lciE6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xyXG4gICAgQFZpZXdDaGlsZCgncmVhY3Rpb25PdmVybGF5JykgcmVhY3Rpb25PdmVybGF5ITogT3ZlcmxheVBhbmVsO1xyXG5cclxuICAgIHByaXZhdGUgb2JzZXJ2ZXIhOiBNdXRhdGlvbk9ic2VydmVyO1xyXG5cclxuICAgIHNob3dVc2VycyA9IGZhbHNlO1xyXG4gICAgc3VnZ2VzdGlvbiA9ICcnO1xyXG4gICAgaG92ZXJlZFJlYWN0aW9uVXNlcnM6IHN0cmluZ1tdID0gW107XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuY2hhdFJvb21JZCkge1xyXG4gICAgICAgICAgICB0aGlzLnNvY2tldC5qb2luUm9vbSh0aGlzLmNoYXRSb29tSWQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmxvYWRVc2VycygpO1xyXG4gICAgICAgIHRoaXMubG9hZE1lc3NhZ2VzKCk7XHJcbiAgICAgICAgdGhpcy5saXN0ZW5Tb2NrZXQoKTtcclxuICAgIH1cclxuXHJcbiAgICBsb2FkVXNlcnMoKSB7XHJcbiAgICAgICAgdGhpcy5jaGF0U2VydmljZS5nZXRSb29tVXNlcnModGhpcy5jaGF0Um9vbUlkKS5zdWJzY3JpYmUodXNlcnMgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnVzZXJzLnNldCh1c2Vycyk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgbG9hZE1lc3NhZ2VzKCkge1xyXG4gICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5jaGF0U2VydmljZS5nZXRNZXNzYWdlcyh0aGlzLmNoYXRSb29tSWQpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgIG5leHQ6IG1zZ3MgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tZXNzYWdlcy5zZXQobXNncyk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZXJyb3I6ICgpID0+ICh0aGlzLmxvYWRpbmcgPSBmYWxzZSlcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBsaXN0ZW5Tb2NrZXQoKSB7XHJcbiAgICAgICAgdGhpcy5zb2NrZXQub248Q2hhdE1lc3NhZ2U+KCduZXdNZXNzYWdlJykuc3Vic2NyaWJlKG1zZyA9PiB7XHJcbiAgICAgICAgICAgIGlmIChtc2cuY2hhdFJvb21JZCA9PT0gdGhpcy5jaGF0Um9vbUlkKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm1lc3NhZ2VzLnVwZGF0ZShsaXN0ID0+IFsuLi5saXN0LCBtc2ddKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLnNvY2tldC5vbigncm9vbVVzZXJBZGRlZCcpLnN1YnNjcmliZSgobXNnOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgaWYgKG1zZy5jaGF0Um9vbUlkID09PSB0aGlzLmNoYXRSb29tSWQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubG9hZFVzZXJzKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5zb2NrZXQub24oJ2FkZGVkVG9Sb29tJykuc3Vic2NyaWJlKChtc2c6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAobXNnLmNoYXRSb29tSWQgPT09IHRoaXMuY2hhdFJvb21JZCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkVXNlcnMoKTtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdhZGRlZFRvUm9vbScsIG1zZyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5zb2NrZXQub24oJ3VzZXJBbHJlYWR5SW5Sb29tJykuc3Vic2NyaWJlKChtc2c6IGFueSkgPT4ge1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHNlbmQoKSB7XHJcbiAgICAgICAgY29uc3QgY29udGVudCA9IHRoaXMubmV3TWVzc2FnZS50cmltKCk7XHJcbiAgICAgICAgaWYgKCFjb250ZW50KSByZXR1cm47XHJcblxyXG4gICAgICAgIHRoaXMuY2hhdFNlcnZpY2Uuc2VuZE1lc3NhZ2UodGhpcy5jaGF0Um9vbUlkLCB7XHJcbiAgICAgICAgICAgIHNlbmRlcklkOiB0aGlzLmNoYXRTZXJ2aWNlLmN1cnJlbnRVc2VyKCkudXNlcklkLFxyXG4gICAgICAgICAgICBzZW5kZXJOYW1lOiB0aGlzLmNoYXRTZXJ2aWNlLmN1cnJlbnRVc2VyKCkubmFtZSxcclxuICAgICAgICAgICAgY29udGVudCxcclxuICAgICAgICAgICAgcmVwbHlUb01lc3NhZ2VJZDogdGhpcy5yZXBseVRvPy5yZXBseVRvTWVzc2FnZUlkID8/IG51bGwsXHJcbiAgICAgICAgICAgIGNyZWF0ZWRCeTogdGhpcy5jaGF0U2VydmljZS5jdXJyZW50VXNlcigpLnVzZXJJZFxyXG4gICAgICAgIH0pLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMubmV3TWVzc2FnZSA9ICcnO1xyXG4gICAgICAgICAgICB0aGlzLnJlcGx5VG8gPSBudWxsO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGFkZFVzZXJUb1Jvb20oKSB7XHJcbiAgICAgICAgdGhpcy5jaGF0U2VydmljZS5hZGRVc2VyVG9Sb29tKFxyXG4gICAgICAgICAgICB0aGlzLmNoYXRSb29tSWQsXHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRVc2VyPy51c2VyX2lkLFxyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkVXNlcj8uZnVsbF9uYW1lLFxyXG4gICAgICAgICAgICB0aGlzLmNoYXRTZXJ2aWNlLmN1cnJlbnRVc2VyKCkudXNlcklkKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHRvZ2dsZU1pbmltaXplKCkge1xyXG4gICAgICAgIHRoaXMubWluaW1pemVkID0gIXRoaXMubWluaW1pemVkO1xyXG4gICAgfVxyXG5cclxuICAgIGFyY2hpdmVDaGF0KCkge1xyXG4gICAgICAgIHRoaXMuY2hhdFNlcnZpY2UuYXJjaGl2ZVJvb20odGhpcy5jaGF0Um9vbUlkKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICBuZXh0OiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9uQXJjaGl2ZS5lbWl0KHRoaXMuY2hhdFJvb21JZCk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGVycm9yOiBlcnIgPT4gY29uc29sZS5lcnJvcihlcnIpXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0UmVwbHkobXNnOiBDaGF0TWVzc2FnZSkge1xyXG4gICAgICAgIHRoaXMucmVwbHlUbyA9IG1zZztcclxuICAgIH1cclxuXHJcbiAgICBjbGVhclJlcGx5KCkge1xyXG4gICAgICAgIHRoaXMucmVwbHlUbyA9IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgdHJhY2tCeUlkKGluZGV4OiBudW1iZXIsIG1zZzogQ2hhdE1lc3NhZ2UpIHtcclxuICAgICAgICByZXR1cm4gbXNnLmlkO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCkge1xyXG4gICAgICAgIC8vIHRoaXMuc29ja2V0Lm9mZk5ld01lc3NhZ2UoKTtcclxuICAgICAgICAvLyB0aGlzLnNvY2tldC5vZmZNZXNzYWdlU2VlbigpO1xyXG4gICAgICAgIHRoaXMub2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICAgICAgY29uc3QgZWwgPSB0aGlzLm1lc3NhZ2VzQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQ7XHJcblxyXG4gICAgICAgIHRoaXMub2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigoKSA9PiB7XHJcbiAgICAgICAgICAgIC8vIPCflKUgU2Nyb2xsIEFGVEVSIERPTSBhY3R1YWxseSBjaGFuZ2VzXHJcbiAgICAgICAgICAgIGVsLnNjcm9sbFRvcCA9IGVsLnNjcm9sbEhlaWdodDtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5vYnNlcnZlci5vYnNlcnZlKGVsLCB7XHJcbiAgICAgICAgICAgIGNoaWxkTGlzdDogdHJ1ZSxcclxuICAgICAgICAgICAgc3VidHJlZTogdHJ1ZSxcclxuICAgICAgICAgICAgY2hhcmFjdGVyRGF0YTogdHJ1ZVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHRvZ2dsZVVzZXJzKCkge1xyXG4gICAgICAgIHRoaXMuc2hvd1VzZXJzID0gIXRoaXMuc2hvd1VzZXJzO1xyXG4gICAgfVxyXG59XHJcbiIsIjxwLXRvYXN0PjwvcC10b2FzdD5cclxuXHJcbjxkaXYgW2NsYXNzLmRhcmtdPVwidGhlbWUgPT09ICdkYXJrJ1wiIFtjbGFzcy5mbG9hdGluZ109XCJtb2RlID09PSAnZmxvYXRpbmcnXCIgW2NsYXNzLmZ1bGxzY3JlZW5dPVwibW9kZSA9PT0gJ2Z1bGxzY3JlZW4nXCJcclxuICAgICBbY2xhc3MubWluaW1pemVkXT1cIm1pbmltaXplZFwiIGNsYXNzPVwiY2hhdC13aW5kb3dcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjaGF0LWhlYWRlclwiPlxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGVcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPnt7IGhlYWRlciB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwidXNlcnMoKS5sZW5ndGhcIj4oe3sgdXNlcnMoKS5sZW5ndGggfX0ge3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgdXNlcnMoKS5sZW5ndGggPT0gMSA/ICdwYXJ0aWNpcGFudCcgOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BhcnRpY2lwYW50cydcclxuICAgICAgICAgICAgICAgICAgICB9fSk8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+e3sgbWV0YWRhdGEgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItYWN0aW9uc1wiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJ0b2dnbGVVc2VycygpXCIgaWNvbj1cInBpIHBpLXVzZXJzXCIgcEJ1dHRvbiBwVG9vbHRpcD1cIlRvb2dsZSBVc2Vyc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJmb250LXNpemU6IDAuNXJlbVwiPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICBAaWYgKHNob3dBY3Rpb25zKSB7XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJ0b2dnbGVNaW5pbWl6ZSgpXCIgW2ljb25dPVwibWluaW1pemVkID8gJ3BpIHBpLXBsdXMnIDogJ3BpIHBpLW1pbnVzJ1wiIHBCdXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgcFRvb2x0aXA9XCJIaWRlL1Nob3dcIiBzdHlsZT1cImZvbnQtc2l6ZTogMC41cmVtXCI+PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJhcmNoaXZlQ2hhdCgpXCIgaWNvbj1cInBpIHBpLXRyYXNoXCIgcEJ1dHRvbiBwVG9vbHRpcD1cIkFyY2hpdmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cImZvbnQtc2l6ZTogMC41cmVtXCI+PC9idXR0b24+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgKm5nSWY9XCIhbWluaW1pemVkXCIgY2xhc3M9XCJjaGF0LWJvZHlcIj5cclxuICAgICAgICA8ZGl2IFtjbGFzcy51c2Vycy1oaWRkZW5dPVwiIXNob3dVc2Vyc1wiIGNsYXNzPVwiY2hhdC1sYXlvdXRcIj5cclxuICAgICAgICAgICAgPGRpdiBbY2xhc3MuZmxvYXRpbmddPVwibW9kZSA9PT0gJ2Zsb2F0aW5nJ1wiIFtjbGFzcy5mdWxsc2NyZWVuXT1cIm1vZGUgPT09ICdmdWxsc2NyZWVuJ1wiIGNsYXNzPVwiY2hhdC1tYWluXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICNtZXNzYWdlc0NvbnRhaW5lciBbY2xhc3MubG9hZGluZ109XCJsb2FkaW5nXCIgY2xhc3M9XCJtZXNzYWdlc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IG1zZyBvZiBtZXNzYWdlcygpOyB0cmFja0J5OiB0cmFja0J5SWRcIiBbbmdDbGFzc109XCJ7IG91dGdvaW5nOiBtc2cuc2VuZGVySWQgPT09IGNoYXRTZXJ2aWNlLmN1cnJlbnRVc2VyKCkudXNlcklkLCBpbmNvbWluZzogbXNnLnNlbmRlcklkICE9PSBjaGF0U2VydmljZS5jdXJyZW50VXNlcigpLnVzZXJJZCB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWVzc2FnZS1yb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1lc3NhZ2UtYnViYmxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWVzc2FnZS1tZXRhXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNlbmRlclwiPlxyXG4gICAgICAgICAgICAgICAgICA8IS0tICpuZ0lmPVwibXNnLnNlbmRlcklkICE9PSBjaGF0U2VydmljZS5jdXJyZW50VXNlcigpLnVzZXJJZFwiIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IG1zZy5zZW5kZXJOYW1lIH19XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8c3BhbiBjbGFzcz1cInRpbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IG1zZy5jcmVhdGVkQXQgfCBkYXRlOiAnc2hvcnRUaW1lJyB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIE1FU1NBR0UgVEVYVCAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZXNzYWdlLWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBtc2cuY29udGVudCB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtYXJlYVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJyZXBseVRvXCIgY2xhc3M9XCJyZXBseS1iYW5uZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+UmVwbHlpbmcgdG86IHt7IHJlcGx5VG8uY29udGVudCB8IHNsaWNlOiAwOjUwIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJjbGVhclJlcGx5KClcIiBjbGFzcz1cInAtYnV0dG9uLXRleHQgcC1idXR0b24tc21cIiBpY29uPVwicGkgcGktdGltZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBCdXR0b24+PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDx0ZXh0YXJlYSAoa2V5dXAuZW50ZXIpPVwic2VuZCgpXCIgWyhuZ01vZGVsKV09XCJuZXdNZXNzYWdlXCIgYXV0b1Jlc2l6ZT1cInRydWVcIiBwSW5wdXRUZXh0YXJlYVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlR5cGUgYSBtZXNzYWdlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cz1cIjJcIj5cclxuICAgICAgICAgIDwvdGV4dGFyZWE+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1hY3Rpb25zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cInNlbmQoKVwiIGljb249XCJwaSBwaS1zZW5kXCIgbGFiZWw9XCJTZW5kXCIgcEJ1dHRvbj48L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoYXQtc2lkZWJhclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tdGl0bGVcIj5Vc2VyczwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVzZXItbGlzdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHUgb2YgdXNlcnMoKVwiIGNsYXNzPVwidXNlci1yb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHAtYXZhdGFyIFtsYWJlbF09XCJ1LnVzZXJuYW1lWzBdXCI+PC9wLWF2YXRhcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgdS51c2VybmFtZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgQGlmIChzaG93QWN0aW9ucykge1xyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLWxpc3QtYWRkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwLWRyb3Bkb3duIFsobmdNb2RlbCldPVwic2VsZWN0ZWRVc2VyXCIgW29wdGlvbnNdPVwiY2hhdFNlcnZpY2UudXNlckxpc3QoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbkxhYmVsPVwiZnVsbF9uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWxlY3QgVXNlclwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cIm1hcmdpbi10b3A6IDJlbTtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImFkZFVzZXJUb1Jvb20oKVwiIGljb249XCJwaSBwaS1wbHVzXCIgbGFiZWw9XCJBZGRcIiBwQnV0dG9uPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
|
|
210
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC13aW5kb3cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2hhdC13aWRnZXQvc3JjL2xpYi9jaGF0LXdpbmRvdy9jaGF0LXdpbmRvdy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jaGF0LXdpZGdldC9zcmMvbGliL2NoYXQtd2luZG93L2NoYXQtd2luZG93LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBRVQsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsS0FBSyxFQUVMLE1BQU0sRUFDTixNQUFNLEVBQ04sU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQzFELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFDM0MsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1QyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ2hELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFFeEMsT0FBTyxF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bUI7a0JBbkIvQixTQUFTOytCQUNJLGlCQUFpQixjQUNmLElBQUksV0FDUDt3QkFDTCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsV0FBVzt3QkFDWCxZQUFZO3dCQUNaLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixtQkFBbUI7d0JBQ25CLFVBQVU7d0JBQ1YsY0FBYzt3QkFDZCxrQkFBa0I7cUJBQ3JCLGFBR1UsQ0FBQyxjQUFjLENBQUM7d0RBR2xCLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0ksU0FBUztzQkFBbEIsTUFBTTtnQkFpQnlCLGlCQUFpQjtzQkFBaEQsU0FBUzt1QkFBQyxtQkFBbUI7Z0JBQ0EsZUFBZTtzQkFBNUMsU0FBUzt1QkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgRWxlbWVudFJlZixcclxuICAgIEV2ZW50RW1pdHRlcixcclxuICAgIGluamVjdCxcclxuICAgIElucHV0LFxyXG4gICAgaW5wdXQsXHJcbiAgICBPbkluaXQsXHJcbiAgICBPdXRwdXQsXHJcbiAgICBzaWduYWwsXHJcbiAgICBWaWV3Q2hpbGRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7Rm9ybXNNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHtDaGF0U2VydmljZX0gZnJvbSAnLi4vY29yZS9zZXJ2aWNlcy9jaGF0LnNlcnZpY2UnO1xyXG5pbXBvcnQge1NvY2tldFNlcnZpY2V9IGZyb20gJy4uL2NvcmUvc2VydmljZXMvc29ja2V0LnNlcnZpY2UnO1xyXG5pbXBvcnQge1RvYXN0TW9kdWxlfSBmcm9tICdwcmltZW5nL3RvYXN0JztcclxuaW1wb3J0IHtNZXNzYWdlU2VydmljZX0gZnJvbSAncHJpbWVuZy9hcGknO1xyXG5pbXBvcnQge0J1dHRvbk1vZHVsZX0gZnJvbSAncHJpbWVuZy9idXR0b24nO1xyXG5pbXBvcnQge0F2YXRhck1vZHVsZX0gZnJvbSAncHJpbWVuZy9hdmF0YXInO1xyXG5pbXBvcnQge1Rvb2x0aXBNb2R1bGV9IGZyb20gJ3ByaW1lbmcvdG9vbHRpcCc7XHJcbmltcG9ydCB7SW5wdXRUZXh0YXJlYU1vZHVsZX0gZnJvbSAncHJpbWVuZy9pbnB1dHRleHRhcmVhJztcclxuaW1wb3J0IHtEcm9wZG93bk1vZHVsZX0gZnJvbSAncHJpbWVuZy9kcm9wZG93bic7XHJcbmltcG9ydCB7Q2hpcE1vZHVsZX0gZnJvbSAncHJpbWVuZy9jaGlwJztcclxuaW1wb3J0IHtDaGF0TWVzc2FnZX0gZnJvbSAnLi4vY29yZS9tb2RlbHMvY2hhdC5tb2RlbHMnO1xyXG5pbXBvcnQge092ZXJsYXlQYW5lbCwgT3ZlcmxheVBhbmVsTW9kdWxlfSBmcm9tICdwcmltZW5nL292ZXJsYXlwYW5lbCc7XHJcbmltcG9ydCB7Q2hhdE5vdGlmaWNhdGlvbn0gZnJvbSBcIi4uL2NvcmUvbW9kZWxzL25vdGlmaWNhdGlvbi5tb2RlbFwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2FwcC1jaGF0LXdpbmRvdycsXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgaW1wb3J0czogW1xyXG4gICAgICAgIENvbW1vbk1vZHVsZSxcclxuICAgICAgICBGb3Jtc01vZHVsZSxcclxuICAgICAgICBUb2FzdE1vZHVsZSxcclxuICAgICAgICBCdXR0b25Nb2R1bGUsXHJcbiAgICAgICAgQXZhdGFyTW9kdWxlLFxyXG4gICAgICAgIFRvb2x0aXBNb2R1bGUsXHJcbiAgICAgICAgSW5wdXRUZXh0YXJlYU1vZHVsZSxcclxuICAgICAgICBDaGlwTW9kdWxlLFxyXG4gICAgICAgIERyb3Bkb3duTW9kdWxlLFxyXG4gICAgICAgIE92ZXJsYXlQYW5lbE1vZHVsZVxyXG4gICAgXSxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9jaGF0LXdpbmRvdy5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9jaGF0LXdpbmRvdy5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgcHJvdmlkZXJzOiBbTWVzc2FnZVNlcnZpY2VdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDaGF0V2luZG93Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIEBJbnB1dCgpIGNoYXRSb29tSWQhOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBoZWFkZXIgPSAnQ2hhdCc7XHJcbiAgICBASW5wdXQoKSBtZXRhZGF0YSA9ICcnO1xyXG4gICAgQElucHV0KCkgY2hhdFVzZXJzID0gW107XHJcbiAgICBASW5wdXQoKSBzaG93QWN0aW9ucyA9IHRydWU7XHJcbiAgICBASW5wdXQoKSBtb2RlOiAnZmxvYXRpbmcnIHwgJ2Z1bGxzY3JlZW4nID0gJ2Zsb2F0aW5nJztcclxuICAgIEBJbnB1dCgpIHRoZW1lOiAnbGlnaHQnIHwgJ2RhcmsnID0gJ2xpZ2h0JztcclxuICAgIEBPdXRwdXQoKSBvbkFyY2hpdmUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gICAgcmVmcmVzaFJvb20gPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcbiAgICAvLyBASW5wdXQoKSBjdXJyZW50VXNlcjogYW55O1xyXG5cclxuICAgIGNoYXRTZXJ2aWNlID0gaW5qZWN0KENoYXRTZXJ2aWNlKTtcclxuICAgIHNvY2tldCA9IGluamVjdChTb2NrZXRTZXJ2aWNlKTtcclxuICAgIG1lc3NhZ2VTZXJ2aWNlID0gaW5qZWN0KE1lc3NhZ2VTZXJ2aWNlKTtcclxuXHJcbiAgICB1c2VycyA9IHNpZ25hbDxhbnlbXT4oW10pO1xyXG4gICAgbWVzc2FnZXMgPSBzaWduYWw8Q2hhdE1lc3NhZ2VbXT4oW10pO1xyXG4gICAgbmV3TWVzc2FnZSA9ICcnO1xyXG4gICAgbWluaW1pemVkID0gZmFsc2U7XHJcbiAgICBsb2FkaW5nID0gZmFsc2U7XHJcbiAgICByZXBseVRvOiBDaGF0TWVzc2FnZSB8IG51bGwgPSBudWxsO1xyXG4gICAgc2VsZWN0ZWRVc2VyOiBhbnk7XHJcblxyXG4gICAgQFZpZXdDaGlsZCgnbWVzc2FnZXNDb250YWluZXInKSBtZXNzYWdlc0NvbnRhaW5lciE6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xyXG4gICAgQFZpZXdDaGlsZCgncmVhY3Rpb25PdmVybGF5JykgcmVhY3Rpb25PdmVybGF5ITogT3ZlcmxheVBhbmVsO1xyXG5cclxuICAgIHByaXZhdGUgb2JzZXJ2ZXIhOiBNdXRhdGlvbk9ic2VydmVyO1xyXG5cclxuICAgIHNob3dVc2VycyA9IGZhbHNlO1xyXG4gICAgc3VnZ2VzdGlvbiA9ICcnO1xyXG4gICAgaG92ZXJlZFJlYWN0aW9uVXNlcnM6IHN0cmluZ1tdID0gW107XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgdGhpcy5zb2NrZXQuam9pblJvb20odGhpcy5jaGF0Um9vbUlkKTtcclxuICAgICAgICB0aGlzLmxvYWRVc2VycygpO1xyXG4gICAgICAgIHRoaXMubG9hZE1lc3NhZ2VzKCk7XHJcbiAgICAgICAgdGhpcy5saXN0ZW5Tb2NrZXQoKTtcclxuICAgIH1cclxuXHJcbiAgICBsb2FkVXNlcnMoKSB7XHJcbiAgICAgICAgdGhpcy5jaGF0U2VydmljZS5nZXRSb29tVXNlcnModGhpcy5jaGF0Um9vbUlkKS5zdWJzY3JpYmUodXNlcnMgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnVzZXJzLnNldCh1c2Vycyk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgbG9hZE1lc3NhZ2VzKCkge1xyXG4gICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5jaGF0U2VydmljZS5nZXRNZXNzYWdlcyh0aGlzLmNoYXRSb29tSWQpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgIG5leHQ6IG1zZ3MgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tZXNzYWdlcy5zZXQobXNncyk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZXJyb3I6ICgpID0+ICh0aGlzLmxvYWRpbmcgPSBmYWxzZSlcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBsaXN0ZW5Tb2NrZXQoKSB7XHJcbiAgICAgICAgdGhpcy5zb2NrZXQub248Q2hhdE1lc3NhZ2U+KCduZXdNZXNzYWdlJykuc3Vic2NyaWJlKG1zZyA9PiB7XHJcbiAgICAgICAgICAgIGlmIChtc2cuY2hhdFJvb21JZCA9PT0gdGhpcy5jaGF0Um9vbUlkKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm1lc3NhZ2VzLnVwZGF0ZShsaXN0ID0+IFsuLi5saXN0LCBtc2ddKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy8gaWYgKG1zZy5zZW5kZXJJZCAhPT0gdGhpcy5jaGF0U2VydmljZS5jdXJyZW50VXNlcigpLnVzZXJJZCkge1xyXG4gICAgICAgICAgICAvLyAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHtcclxuICAgICAgICAgICAgLy8gICAgIHNldmVyaXR5OiAnaW5mbycsXHJcbiAgICAgICAgICAgIC8vICAgICBzdW1tYXJ5OiB0aGlzLmhlYWRlcixcclxuICAgICAgICAgICAgLy8gICAgIGRldGFpbDogbXNnLmNvbnRlbnQgPz8gJ05ldyBtZXNzYWdlJyxcclxuICAgICAgICAgICAgLy8gICAgIGxpZmU6IDI1MDBcclxuICAgICAgICAgICAgLy8gICB9KTtcclxuICAgICAgICAgICAgLy8gfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLnNvY2tldC5vbigncm9vbVVzZXJBZGRlZCcpLnN1YnNjcmliZSgobXNnOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgaWYgKG1zZy5jaGF0Um9vbUlkID09PSB0aGlzLmNoYXRSb29tSWQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubG9hZFVzZXJzKCk7XHJcbiAgICAgICAgICAgICAgICAvLyB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7XHJcbiAgICAgICAgICAgICAgICAvLyAgIHNldmVyaXR5OiAnaW5mbycsXHJcbiAgICAgICAgICAgICAgICAvLyAgIHN1bW1hcnk6ICdVc2VyIEFkZGVkJyxcclxuICAgICAgICAgICAgICAgIC8vICAgZGV0YWlsOiBtc2cudXNlcj8udXNlck5hbWUsXHJcbiAgICAgICAgICAgICAgICAvLyAgIGxpZmU6IDI1MDBcclxuICAgICAgICAgICAgICAgIC8vIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuc29ja2V0Lm9uKCdhZGRlZFRvUm9vbScpLnN1YnNjcmliZSgobXNnOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgaWYgKG1zZy5jaGF0Um9vbUlkID09PSB0aGlzLmNoYXRSb29tSWQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubG9hZFVzZXJzKCk7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnYWRkZWRUb1Jvb20nLCBtc2cpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuc29ja2V0Lm9uKCd1c2VyQWxyZWFkeUluUm9vbScpLnN1YnNjcmliZSgobXNnOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgLy8gaWYgKG1zZy5jaGF0Um9vbUlkID09PSB0aGlzLmNoYXRSb29tSWQpIHtcclxuICAgICAgICAgICAgLy8gICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7XHJcbiAgICAgICAgICAgIC8vICAgICBzZXZlcml0eTogJ2luZm8nLFxyXG4gICAgICAgICAgICAvLyAgICAgc3VtbWFyeTogJ1VzZXIgQWxyZWFkeSBBZGRlZCcsXHJcbiAgICAgICAgICAgIC8vICAgICBkZXRhaWw6IG1zZy51c2VyPy51c2VyTmFtZSxcclxuICAgICAgICAgICAgLy8gICAgIGxpZmU6IDI1MDBcclxuICAgICAgICAgICAgLy8gICB9KTtcclxuICAgICAgICAgICAgLy8gfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHNlbmQoKSB7XHJcbiAgICAgICAgY29uc3QgY29udGVudCA9IHRoaXMubmV3TWVzc2FnZS50cmltKCk7XHJcbiAgICAgICAgaWYgKCFjb250ZW50KSByZXR1cm47XHJcblxyXG4gICAgICAgIHRoaXMuY2hhdFNlcnZpY2Uuc2VuZE1lc3NhZ2UodGhpcy5jaGF0Um9vbUlkLCB7XHJcbiAgICAgICAgICAgIHNlbmRlcklkOiB0aGlzLmNoYXRTZXJ2aWNlLmN1cnJlbnRVc2VyKCkudXNlcklkLFxyXG4gICAgICAgICAgICBzZW5kZXJOYW1lOiB0aGlzLmNoYXRTZXJ2aWNlLmN1cnJlbnRVc2VyKCkubmFtZSxcclxuICAgICAgICAgICAgY29udGVudCxcclxuICAgICAgICAgICAgcmVwbHlUb01lc3NhZ2VJZDogdGhpcy5yZXBseVRvPy5yZXBseVRvTWVzc2FnZUlkID8/IG51bGwsXHJcbiAgICAgICAgICAgIGNyZWF0ZWRCeTogdGhpcy5jaGF0U2VydmljZS5jdXJyZW50VXNlcigpLnVzZXJJZFxyXG4gICAgICAgIH0pLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMubmV3TWVzc2FnZSA9ICcnO1xyXG4gICAgICAgICAgICB0aGlzLnJlcGx5VG8gPSBudWxsO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGFkZFVzZXJUb1Jvb20oKSB7XHJcbiAgICAgICAgdGhpcy5jaGF0U2VydmljZS5hZGRVc2VyVG9Sb29tKFxyXG4gICAgICAgICAgICB0aGlzLmNoYXRSb29tSWQsXHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRVc2VyPy51c2VyX2lkLFxyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkVXNlcj8uZnVsbF9uYW1lLFxyXG4gICAgICAgICAgICB0aGlzLmNoYXRTZXJ2aWNlLmN1cnJlbnRVc2VyKCkudXNlcklkKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHRvZ2dsZU1pbmltaXplKCkge1xyXG4gICAgICAgIHRoaXMubWluaW1pemVkID0gIXRoaXMubWluaW1pemVkO1xyXG4gICAgfVxyXG5cclxuICAgIGFyY2hpdmVDaGF0KCkge1xyXG4gICAgICAgIHRoaXMuY2hhdFNlcnZpY2UuYXJjaGl2ZVJvb20odGhpcy5jaGF0Um9vbUlkKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICBuZXh0OiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9uQXJjaGl2ZS5lbWl0KHRoaXMuY2hhdFJvb21JZCk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGVycm9yOiBlcnIgPT4gY29uc29sZS5lcnJvcihlcnIpXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0UmVwbHkobXNnOiBDaGF0TWVzc2FnZSkge1xyXG4gICAgICAgIHRoaXMucmVwbHlUbyA9IG1zZztcclxuICAgIH1cclxuXHJcbiAgICBjbGVhclJlcGx5KCkge1xyXG4gICAgICAgIHRoaXMucmVwbHlUbyA9IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgdHJhY2tCeUlkKGluZGV4OiBudW1iZXIsIG1zZzogQ2hhdE1lc3NhZ2UpIHtcclxuICAgICAgICByZXR1cm4gbXNnLmlkO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCkge1xyXG4gICAgICAgIC8vIHRoaXMuc29ja2V0Lm9mZk5ld01lc3NhZ2UoKTtcclxuICAgICAgICAvLyB0aGlzLnNvY2tldC5vZmZNZXNzYWdlU2VlbigpO1xyXG4gICAgICAgIHRoaXMub2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICAgICAgY29uc3QgZWwgPSB0aGlzLm1lc3NhZ2VzQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQ7XHJcblxyXG4gICAgICAgIHRoaXMub2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigoKSA9PiB7XHJcbiAgICAgICAgICAgIC8vIPCflKUgU2Nyb2xsIEFGVEVSIERPTSBhY3R1YWxseSBjaGFuZ2VzXHJcbiAgICAgICAgICAgIGVsLnNjcm9sbFRvcCA9IGVsLnNjcm9sbEhlaWdodDtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5vYnNlcnZlci5vYnNlcnZlKGVsLCB7XHJcbiAgICAgICAgICAgIGNoaWxkTGlzdDogdHJ1ZSxcclxuICAgICAgICAgICAgc3VidHJlZTogdHJ1ZSxcclxuICAgICAgICAgICAgY2hhcmFjdGVyRGF0YTogdHJ1ZVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHRvZ2dsZVVzZXJzKCkge1xyXG4gICAgICAgIHRoaXMuc2hvd1VzZXJzID0gIXRoaXMuc2hvd1VzZXJzO1xyXG4gICAgfVxyXG59XHJcbiIsIjxwLXRvYXN0PjwvcC10b2FzdD5cclxuXHJcbjxkaXYgW2NsYXNzLmRhcmtdPVwidGhlbWUgPT09ICdkYXJrJ1wiIFtjbGFzcy5mbG9hdGluZ109XCJtb2RlID09PSAnZmxvYXRpbmcnXCIgW2NsYXNzLmZ1bGxzY3JlZW5dPVwibW9kZSA9PT0gJ2Z1bGxzY3JlZW4nXCJcclxuICAgICBbY2xhc3MubWluaW1pemVkXT1cIm1pbmltaXplZFwiIGNsYXNzPVwiY2hhdC13aW5kb3dcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjaGF0LWhlYWRlclwiPlxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGVcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPnt7IGhlYWRlciB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwidXNlcnMoKS5sZW5ndGhcIj4oe3sgdXNlcnMoKS5sZW5ndGggfX0ge3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgdXNlcnMoKS5sZW5ndGggPT0gMSA/ICdwYXJ0aWNpcGFudCcgOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BhcnRpY2lwYW50cydcclxuICAgICAgICAgICAgICAgICAgICB9fSk8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+e3sgbWV0YWRhdGEgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItYWN0aW9uc1wiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJ0b2dnbGVVc2VycygpXCIgaWNvbj1cInBpIHBpLXVzZXJzXCIgcEJ1dHRvbiBwVG9vbHRpcD1cIlRvb2dsZSBVc2Vyc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJmb250LXNpemU6IDAuNXJlbVwiPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICBAaWYgKHNob3dBY3Rpb25zKSB7XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJ0b2dnbGVNaW5pbWl6ZSgpXCIgW2ljb25dPVwibWluaW1pemVkID8gJ3BpIHBpLXBsdXMnIDogJ3BpIHBpLW1pbnVzJ1wiIHBCdXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgcFRvb2x0aXA9XCJIaWRlL1Nob3dcIiBzdHlsZT1cImZvbnQtc2l6ZTogMC41cmVtXCI+PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJhcmNoaXZlQ2hhdCgpXCIgaWNvbj1cInBpIHBpLXRyYXNoXCIgcEJ1dHRvbiBwVG9vbHRpcD1cIkFyY2hpdmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cImZvbnQtc2l6ZTogMC41cmVtXCI+PC9idXR0b24+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgKm5nSWY9XCIhbWluaW1pemVkXCIgY2xhc3M9XCJjaGF0LWJvZHlcIj5cclxuICAgICAgICA8ZGl2IFtjbGFzcy51c2Vycy1oaWRkZW5dPVwiIXNob3dVc2Vyc1wiIGNsYXNzPVwiY2hhdC1sYXlvdXRcIj5cclxuICAgICAgICAgICAgPGRpdiBbY2xhc3MuZmxvYXRpbmddPVwibW9kZSA9PT0gJ2Zsb2F0aW5nJ1wiIFtjbGFzcy5mdWxsc2NyZWVuXT1cIm1vZGUgPT09ICdmdWxsc2NyZWVuJ1wiIGNsYXNzPVwiY2hhdC1tYWluXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICNtZXNzYWdlc0NvbnRhaW5lciBbY2xhc3MubG9hZGluZ109XCJsb2FkaW5nXCIgY2xhc3M9XCJtZXNzYWdlc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IG1zZyBvZiBtZXNzYWdlcygpOyB0cmFja0J5OiB0cmFja0J5SWRcIiBbbmdDbGFzc109XCJ7IG91dGdvaW5nOiBtc2cuc2VuZGVySWQgPT09IGNoYXRTZXJ2aWNlLmN1cnJlbnRVc2VyKCkudXNlcklkLCBpbmNvbWluZzogbXNnLnNlbmRlcklkICE9PSBjaGF0U2VydmljZS5jdXJyZW50VXNlcigpLnVzZXJJZCB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWVzc2FnZS1yb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1lc3NhZ2UtYnViYmxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWVzc2FnZS1tZXRhXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNlbmRlclwiPlxyXG4gICAgICAgICAgICAgICAgICA8IS0tICpuZ0lmPVwibXNnLnNlbmRlcklkICE9PSBjaGF0U2VydmljZS5jdXJyZW50VXNlcigpLnVzZXJJZFwiIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IG1zZy5zZW5kZXJOYW1lIH19XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8c3BhbiBjbGFzcz1cInRpbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IG1zZy5jcmVhdGVkQXQgfCBkYXRlOiAnc2hvcnRUaW1lJyB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIE1FU1NBR0UgVEVYVCAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZXNzYWdlLWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBtc2cuY29udGVudCB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtYXJlYVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJyZXBseVRvXCIgY2xhc3M9XCJyZXBseS1iYW5uZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+UmVwbHlpbmcgdG86IHt7IHJlcGx5VG8uY29udGVudCB8IHNsaWNlOiAwOjUwIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJjbGVhclJlcGx5KClcIiBjbGFzcz1cInAtYnV0dG9uLXRleHQgcC1idXR0b24tc21cIiBpY29uPVwicGkgcGktdGltZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBCdXR0b24+PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDx0ZXh0YXJlYSAoa2V5dXAuZW50ZXIpPVwic2VuZCgpXCIgWyhuZ01vZGVsKV09XCJuZXdNZXNzYWdlXCIgYXV0b1Jlc2l6ZT1cInRydWVcIiBwSW5wdXRUZXh0YXJlYVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlR5cGUgYSBtZXNzYWdlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cz1cIjJcIj5cclxuICAgICAgICAgIDwvdGV4dGFyZWE+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1hY3Rpb25zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cInNlbmQoKVwiIGljb249XCJwaSBwaS1zZW5kXCIgbGFiZWw9XCJTZW5kXCIgcEJ1dHRvbj48L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoYXQtc2lkZWJhclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tdGl0bGVcIj5Vc2VyczwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVzZXItbGlzdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHUgb2YgdXNlcnMoKVwiIGNsYXNzPVwidXNlci1yb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHAtYXZhdGFyIFtsYWJlbF09XCJ1LnVzZXJuYW1lWzBdXCI+PC9wLWF2YXRhcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgdS51c2VybmFtZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgQGlmIChzaG93QWN0aW9ucykge1xyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLWxpc3QtYWRkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwLWRyb3Bkb3duIFsobmdNb2RlbCldPVwic2VsZWN0ZWRVc2VyXCIgW29wdGlvbnNdPVwiY2hhdFNlcnZpY2UudXNlckxpc3QoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbkxhYmVsPVwiZnVsbF9uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWxlY3QgVXNlclwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cIm1hcmdpbi10b3A6IDJlbTtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImFkZFVzZXJUb1Jvb20oKVwiIGljb249XCJwaSBwaS1wbHVzXCIgbGFiZWw9XCJBZGRcIiBwQnV0dG9uPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
|
|
@@ -146,10 +146,6 @@ export class ChatService {
|
|
|
146
146
|
this.hasNewNotification.set(false);
|
|
147
147
|
}, 1200);
|
|
148
148
|
}
|
|
149
|
-
handleIncomingMessage(msg) {
|
|
150
|
-
this.notifications.update(n => [...n, msg]);
|
|
151
|
-
this.hasNewNotification.set(true);
|
|
152
|
-
}
|
|
153
149
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChatService, deps: [{ token: i1.HttpClient }, { token: CHAT_CONFIG }, { token: i2.SocketService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
154
150
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChatService, providedIn: 'root' }); }
|
|
155
151
|
}
|
|
@@ -160,4 +156,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
160
156
|
type: Inject,
|
|
161
157
|
args: [CHAT_CONFIG]
|
|
162
158
|
}] }, { type: i2.SocketService }] });
|
|
163
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2hhdC13aWRnZXQvc3JjL2xpYi9jb3JlL3NlcnZpY2VzL2NoYXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFekQsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBR25DLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQzs7OztBQU1sRCxNQUFNLE9BQU8sV0FBVztJQVNwQixZQUFvQixJQUFnQixFQUNILE1BQWtCLEVBQ3ZDLE1BQXFCO1FBRmIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNILFdBQU0sR0FBTixNQUFNLENBQVk7UUFDdkMsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQVZqQywwREFBMEQ7UUFFMUQsZ0JBQVcsR0FBRyxNQUFNLENBQWEsSUFBSSxDQUFDLENBQUM7UUFDdkMsYUFBUSxHQUFHLE1BQU0sQ0FBUSxFQUFFLENBQUMsQ0FBQztRQUM3QixrQkFBYSxHQUFHLE1BQU0sQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUNuQyxrQkFBYSxHQUFHLE1BQU0sQ0FBcUIsRUFBRSxDQUFDLENBQUM7UUFDL0MsdUJBQWtCLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBSy9CLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxrREFBa0Q7SUFDbEQsVUFBVSxDQUFDLE1BQWMsRUFBRSxJQUFZLEVBQUUsUUFBZ0IsRUFBRSxTQUFpQixFQUFFLFFBQWdCLEVBQUUsU0FBYztRQUMxRyxPQUFPLElBQUksQ0FBQyxJQUFJ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LENBQUM7UUFDTixDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsU0FBUyxDQUFDLE1BQWM7UUFDcEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FDN0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssTUFBTSxDQUFDLENBQ3hDLENBQUM7SUFDTixDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxhQUFhO1FBQ1QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsQyw2QkFBNkI7UUFDN0IsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNaLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUVELHFCQUFxQixDQUFDLEdBQVE7UUFDMUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0QyxDQUFDOytHQTFMUSxXQUFXLDRDQVVSLFdBQVc7bUhBVmQsV0FBVyxjQURDLE1BQU07OzRGQUNsQixXQUFXO2tCQUR2QixVQUFVO21CQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQzs7MEJBV3ZCLE1BQU07MkJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlLCBzaWduYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0h0dHBDbGllbnR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtDaGF0TWVzc2FnZX0gZnJvbSAnLi4vbW9kZWxzL2NoYXQubW9kZWxzJztcclxuaW1wb3J0IHtDSEFUX0NPTkZJR30gZnJvbSBcIi4uL2NvbmZpZy9jaGF0LnRva2Vuc1wiO1xyXG5pbXBvcnQge0NoYXRDb25maWd9IGZyb20gXCIuLi9jb25maWcvY2hhdC1jb25maWdcIjtcclxuaW1wb3J0IHtDaGF0Tm90aWZpY2F0aW9ufSBmcm9tIFwiLi4vbW9kZWxzL25vdGlmaWNhdGlvbi5tb2RlbFwiO1xyXG5pbXBvcnQge1NvY2tldFNlcnZpY2V9IGZyb20gXCIuL3NvY2tldC5zZXJ2aWNlXCI7XHJcblxyXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogJ3Jvb3QnfSlcclxuZXhwb3J0IGNsYXNzIENoYXRTZXJ2aWNlIHtcclxuICAgIC8vIHByaXZhdGUgYmFzZVVybCA9IGBodHRwczovL2NvcmV1YXRhcnRoa29zaC5zYXJqYWsuY29tYDtcclxuXHJcbiAgICBjdXJyZW50VXNlciA9IHNpZ25hbDxhbnkgfCBudWxsPihudWxsKTtcclxuICAgIHVzZXJMaXN0ID0gc2lnbmFsPGFueVtdPihbXSk7XHJcbiAgICBhcmNoaXZlUm9vbUlkID0gc2lnbmFsPHN0cmluZz4oJycpO1xyXG4gICAgbm90aWZpY2F0aW9ucyA9IHNpZ25hbDxDaGF0Tm90aWZpY2F0aW9uW10+KFtdKTtcclxuICAgIGhhc05ld05vdGlmaWNhdGlvbiA9IHNpZ25hbChmYWxzZSk7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgICAgIEBJbmplY3QoQ0hBVF9DT05GSUcpIHByaXZhdGUgY29uZmlnOiBDaGF0Q29uZmlnLFxyXG4gICAgICAgIHByaXZhdGUgc29ja2V0OiBTb2NrZXRTZXJ2aWNlKSB7XHJcbiAgICAgICAgdGhpcy5saXN0ZW5Gb3JOb3RpZmljYXRpb25zKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGJhc2VVcmwoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlnLmFwaUJhc2VVcmw7XHJcbiAgICB9XHJcblxyXG4gICAgLyogLS0tLS0tLS0tLS0tLS0tLSBDSEFUIFJPT01TIC0tLS0tLS0tLS0tLS0tLS0gKi9cclxuICAgIGNyZWF0ZVJvb20ocm9vbUlkOiBzdHJpbmcsIG5hbWU6IHN0cmluZywgbWV0YWRhdGE6IHN0cmluZywgY3JlYXRlZEJ5OiBzdHJpbmcsIHVzZXJuYW1lOiBzdHJpbmcsIGNoYXRVc2VyczogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5iYXNlVXJsfS9hcGkvY2hhdC9jaGF0cm9vbXMvY3JlYXRlLyR7cm9vbUlkfS9gLCB7XHJcbiAgICAgICAgICAgIG5hbWUsXHJcbiAgICAgICAgICAgIG1ldGFkYXRhLFxyXG4gICAgICAgICAgICBjcmVhdGVkQnksXHJcbiAgICAgICAgICAgIHVzZXJuYW1lLFxyXG4gICAgICAgICAgICBjaGF0VXNlcnNcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRSb29tVXNlcnMocm9vbUlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueVtdPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55W10+KGAke3RoaXMuYmFzZVVybH0vYXBpL2NoYXQvY2hhdHJvb21zL2dldF91c2VyLyR7cm9vbUlkfS91c2Vycy9gKS5waXBlKFxyXG4gICAgICAgICAgICBtYXAobGlzdCA9PlxyXG4gICAgICAgICAgICAgICAgbGlzdC5tYXAodSA9PiAoe1xyXG4gICAgICAgICAgICAgICAgICAgIGlkOiB1LlVzZXJJZCxcclxuICAgICAgICAgICAgICAgICAgICB1c2VybmFtZTogdS5Vc2VyTmFtZVxyXG4gICAgICAgICAgICAgICAgfSkpXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGFkZFVzZXJUb1Jvb20ocm9vbUlkOiBzdHJpbmcsIHVzZXJJZDogc3RyaW5nLCB1c2VyTmFtZTogc3RyaW5nLCBjcmVhdGVkQnk6IHN0cmluZykge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmJhc2VVcmx9L2FwaS9jaGF0L2NoYXRyb29tcy9hZGRfdXNlci8ke3Jvb21JZH0vdXNlcnMvYWRkL2AsIHtcclxuICAgICAgICAgICAgdXNlcklkLFxyXG4gICAgICAgICAgICB1c2VyTmFtZSxcclxuICAgICAgICAgICAgY3JlYXRlZEJ5XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyogLS0tLS0tLS0tLS0tLS0tLSBNRVNTQUdFUyAtLS0tLS0tLS0tLS0tLS0tICovXHJcbiAgICBnZXRNZXNzYWdlcyhyb29tSWQ6IHN0cmluZywgc2luY2U/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPENoYXRNZXNzYWdlW10+IHtcclxuICAgICAgICBjb25zdCBwYXJhbXM6IGFueSA9IHt9O1xyXG4gICAgICAgIGlmIChzaW5jZSkgcGFyYW1zLnNpbmNlID0gc2luY2U7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueVtdPihgJHt0aGlzLmJhc2VVcmx9L2FwaS9jaGF0L21lc3NhZ2VzL3Jvb21zL2FsbF9tZXNzYWdlcy8ke3Jvb21JZH0vYCwge3BhcmFtc30pLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcChsaXN0ID0+XHJcbiAgICAgICAgICAgICAgICBsaXN0Lm1hcChtID0+ICh7XHJcbiAgICAgICAgICAgICAgICAgICAgaWQ6IG0uaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgY2hhdFJvb21JZDogbS5jaGF0Um9vbUlkLFxyXG4gICAgICAgICAgICAgICAgICAgIHNlbmRlcklkOiBtLnNlbmRlcklkLFxyXG4gICAgICAgICAgICAgICAgICAgIHNlbmRlck5hbWU6IG0uc2VuZGVyTmFtZSxcclxuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBtLmNvbnRlbnQsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVwbHlUb01lc3NhZ2VJZDogbS5yZXBseVRvTWVzc2FnZUlkLFxyXG4gICAgICAgICAgICAgICAgICAgIGNyZWF0ZWRBdDogbS5jcmVhdGVkQXQsXHJcbiAgICAgICAgICAgICAgICAgICAgaGFzQXR0YWNobWVudDogbS5oYXNBdHRhY2htZW50ID8/IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgfSkpXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHNlbmRNZXNzYWdlKFxyXG4gICAgICAgIHJvb21JZDogc3RyaW5nLFxyXG4gICAgICAgIHBheWxvYWQ6IHtcclxuICAgICAgICAgICAgc2VuZGVySWQ6IHN0cmluZztcclxuICAgICAgICAgICAgc2VuZGVyTmFtZTogc3RyaW5nLFxyXG4gICAgICAgICAgICBjb250ZW50OiBzdHJpbmc7XHJcbiAgICAgICAgICAgIHJlcGx5VG9NZXNzYWdlSWQ/OiBzdHJpbmcgfCBudWxsLFxyXG4gICAgICAgICAgICBjcmVhdGVkQnk6IHN0cmluZ1xyXG4gICAgICAgIH1cclxuICAgICk6IE9ic2VydmFibGU8Q2hhdE1lc3NhZ2U+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLmJhc2VVcmx9L2FwaS9jaGF0L21lc3NhZ2VzL3Jvb21zL3NlbmQvJHtyb29tSWR9L2AsIHBheWxvYWQpLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcChtID0+ICh7XHJcbiAgICAgICAgICAgICAgICBpZDogbS5pZCxcclxuICAgICAgICAgICAgICAgIGNoYXRSb29tSWQ6IG0uY2hhdFJvb21JZCxcclxuICAgICAgICAgICAgICAgIHNlbmRlcklkOiBtLnNlbmRlcklkLFxyXG4gICAgICAgICAgICAgICAgc2VuZGVyTmFtZTogbS5zZW5kZXJOYW1lLFxyXG4gICAgICAgICAgICAgICAgY29udGVudDogbS5jb250ZW50LFxyXG4gICAgICAgICAgICAgICAgcmVwbHlUb01lc3NhZ2VJZDogbS5yZXBseVRvTWVzc2FnZUlkLFxyXG4gICAgICAgICAgICAgICAgY3JlYXRlZEF0OiBtLmNyZWF0ZWRBdCxcclxuICAgICAgICAgICAgICAgIGhhc0F0dGFjaG1lbnQ6IG0uaGFzQXR0YWNobWVudCA/PyBmYWxzZSxcclxuICAgICAgICAgICAgfSkpXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRSb29tcyhsb2dnZWRJblVzZXJJZDogc3RyaW5nLCBjaGF0Um9vbUlkPzogc3RyaW5nKSB7XHJcbiAgICAgICAgbGV0IHVybCA9IGAke3RoaXMuYmFzZVVybH0vYXBpL2NoYXQvY2hhdHJvb21zLyR7bG9nZ2VkSW5Vc2VySWR9YDtcclxuICAgICAgICBpZiAoY2hhdFJvb21JZCkge1xyXG4gICAgICAgICAgICB1cmwgKz0gYC8ke2NoYXRSb29tSWR9YDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55W10+KGAke3VybH0vYCk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGFyY2hpdmVSb29tKHJvb21JZDogc3RyaW5nKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8YW55W10+KGAke3RoaXMuYmFzZVVybH0vYXBpL2NoYXQvY2hhdHJvb21zL2FyY2hpdmUvJHtyb29tSWR9L2ApO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgbGlzdGVuRm9yTm90aWZpY2F0aW9ucygpIHtcclxuICAgICAgICBjb25zb2xlLmxvZygnTGlzdGVuaW5nIGZvciBub3RpZmljYXRpb25zJyk7XHJcbiAgICAgICAgLy8g8J+UlCBBRERFRCBUTyBST09NIOKAlCBvbmx5IGFkZGVkIHVzZXJcclxuICAgICAgICB0aGlzLnNvY2tldC5vbignYWRkZWRUb1Jvb20nKS5zdWJzY3JpYmUoKG1zZzogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdhZGRlZFRvUm9vbScsIG1zZyk7XHJcbiAgICAgICAgICAgIGlmIChtc2cuYWRkZWRVc2VySWQgIT09IHRoaXMuY3VycmVudFVzZXIoKS51c2VySWQpIHJldHVybjtcclxuXHJcbiAgICAgICAgICAgIHRoaXMudXBzZXJ0Tm90aWZpY2F0aW9uKHtcclxuICAgICAgICAgICAgICAgIHJvb21JZDogbXNnLmNoYXRSb29tSWQsXHJcbiAgICAgICAgICAgICAgICByb29tTmFtZTogbXNnLnJvb21OYW1lLFxyXG4gICAgICAgICAgICAgICAgdHlwZTogJ2FkZGVkJ1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgLy8g8J+UlCBORVcgTUVTU0FHRSDigJQgZXZlcnlvbmUgRVhDRVBUIHNlbmRlclxyXG4gICAgICAgIHRoaXMuc29ja2V0Lm9uKCduZXdNZXNzYWdlJykuc3Vic2NyaWJlKChtc2c6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnbmV3TWVzc2FnZScsIG1zZyk7XHJcbiAgICAgICAgICAgIGlmIChtc2cuc2VuZGVySWQgPT09IHRoaXMuY3VycmVudFVzZXIoKS51c2VySWQpIHJldHVybjtcclxuXHJcbiAgICAgICAgICAgIHRoaXMudXBzZXJ0Tm90aWZpY2F0aW9uKHtcclxuICAgICAgICAgICAgICAgIHJvb21JZDogbXNnLmNoYXRSb29tSWQsXHJcbiAgICAgICAgICAgICAgICB0eXBlOiAnbWVzc2FnZScsXHJcbiAgICAgICAgICAgICAgICBsYXN0TWVzc2FnZTogbXNnLmNvbnRlbnRcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSB1cHNlcnROb3RpZmljYXRpb24oZGF0YTogUGFydGlhbDxDaGF0Tm90aWZpY2F0aW9uPikge1xyXG4gICAgICAgIHRoaXMubm90aWZpY2F0aW9ucy51cGRhdGUobGlzdCA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gbGlzdC5maW5kSW5kZXgobiA9PiBuLnJvb21JZCA9PT0gZGF0YS5yb29tSWQpO1xyXG5cclxuICAgICAgICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgbiA9IGxpc3RbaW5kZXhdO1xyXG4gICAgICAgICAgICAgICAgbGlzdFtpbmRleF0gPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLi4ubixcclxuICAgICAgICAgICAgICAgICAgICB1bnJlYWRDb3VudDogbi51bnJlYWRDb3VudCArIDEsXHJcbiAgICAgICAgICAgICAgICAgICAgbGFzdE1lc3NhZ2U6IGRhdGEubGFzdE1lc3NhZ2UgPz8gbi5sYXN0TWVzc2FnZSxcclxuICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6IERhdGUubm93KClcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gWy4uLmxpc3RdO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gW1xyXG4gICAgICAgICAgICAgICAgLi4ubGlzdCxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICByb29tSWQ6IGRhdGEucm9vbUlkISxcclxuICAgICAgICAgICAgICAgICAgICByb29tTmFtZTogZGF0YS5yb29tTmFtZSxcclxuICAgICAgICAgICAgICAgICAgICB0eXBlOiBkYXRhLnR5cGUhLFxyXG4gICAgICAgICAgICAgICAgICAgIHVucmVhZENvdW50OiAxLFxyXG4gICAgICAgICAgICAgICAgICAgIGxhc3RNZXNzYWdlOiBkYXRhLmxhc3RNZXNzYWdlLFxyXG4gICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcDogRGF0ZS5ub3coKVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBdO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLm5vdGlmeUFycml2YWwoKTtcclxuICAgIH1cclxuXHJcbiAgICBjbGVhclJvb20ocm9vbUlkOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbnMudXBkYXRlKGxpc3QgPT5cclxuICAgICAgICAgICAgbGlzdC5maWx0ZXIobiA9PiBuLnJvb21JZCAhPT0gcm9vbUlkKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgY2xlYXJBbGwoKSB7XHJcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb25zLnNldChbXSk7XHJcbiAgICB9XHJcblxyXG4gICAgbm90aWZ5QXJyaXZhbCgpIHtcclxuICAgICAgICB0aGlzLmhhc05ld05vdGlmaWNhdGlvbi5zZXQodHJ1ZSk7XHJcbiAgICAgICAgLy8gYXV0by1yZXNldCBhZnRlciBhbmltYXRpb25cclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5oYXNOZXdOb3RpZmljYXRpb24uc2V0KGZhbHNlKTtcclxuICAgICAgICB9LCAxMjAwKTtcclxuICAgIH1cclxuXHJcbiAgICBoYW5kbGVJbmNvbWluZ01lc3NhZ2UobXNnOiBhbnkpIHtcclxuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbnMudXBkYXRlKG4gPT4gWy4uLm4sIG1zZ10pO1xyXG4gICAgICAgIHRoaXMuaGFzTmV3Tm90aWZpY2F0aW9uLnNldCh0cnVlKTtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
159
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2hhdC13aWRnZXQvc3JjL2xpYi9jb3JlL3NlcnZpY2VzL2NoYXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFekQsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBR25DLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQzs7OztBQU1sRCxNQUFNLE9BQU8sV0FBVztJQVNwQixZQUFvQixJQUFnQixFQUNILE1BQWtCLEVBQ3ZDLE1BQXFCO1FBRmIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNILFdBQU0sR0FBTixNQUFNLENBQVk7UUFDdkMsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQVZqQywwREFBMEQ7UUFFMUQsZ0JBQVcsR0FBRyxNQUFNLENBQWEsSUFBSSxDQUFDLENBQUM7UUFDdkMsYUFBUSxHQUFHLE1BQU0sQ0FBUSxFQUFFLENBQUMsQ0FBQztRQUM3QixrQkFBYSxHQUFHLE1BQU0sQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUNuQyxrQkFBYSxHQUFHLE1BQU0sQ0FBcUIsRUFBRSxDQUFDLENBQUM7UUFDL0MsdUJBQWtCLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBSy9CLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxrREFBa0Q7SUFDbEQsVUFBVSxDQUFDLE1BQWMsRUFBRSxJQUFZLEVBQUUsUUFBZ0IsRUFBRSxTQUFpQixFQUFFLFFBQWdCLEVBQUUsU0FBYztRQUMxRyxPQUFPLElBQUksQ0FBQyxJQUFJ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LENBQUM7UUFDTixDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsU0FBUyxDQUFDLE1BQWM7UUFDcEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FDN0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssTUFBTSxDQUFDLENBQ3hDLENBQUM7SUFDTixDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxhQUFhO1FBQ1QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsQyw2QkFBNkI7UUFDN0IsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNaLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2IsQ0FBQzsrR0FyTFEsV0FBVyw0Q0FVUixXQUFXO21IQVZkLFdBQVcsY0FEQyxNQUFNOzs0RkFDbEIsV0FBVztrQkFEdkIsVUFBVTttQkFBQyxFQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUM7OzBCQVd2QixNQUFNOzJCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZSwgc2lnbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtIdHRwQ2xpZW50fSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7Q2hhdE1lc3NhZ2V9IGZyb20gJy4uL21vZGVscy9jaGF0Lm1vZGVscyc7XHJcbmltcG9ydCB7Q0hBVF9DT05GSUd9IGZyb20gXCIuLi9jb25maWcvY2hhdC50b2tlbnNcIjtcclxuaW1wb3J0IHtDaGF0Q29uZmlnfSBmcm9tIFwiLi4vY29uZmlnL2NoYXQtY29uZmlnXCI7XHJcbmltcG9ydCB7Q2hhdE5vdGlmaWNhdGlvbn0gZnJvbSBcIi4uL21vZGVscy9ub3RpZmljYXRpb24ubW9kZWxcIjtcclxuaW1wb3J0IHtTb2NrZXRTZXJ2aWNlfSBmcm9tIFwiLi9zb2NrZXQuc2VydmljZVwiO1xyXG5cclxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXHJcbmV4cG9ydCBjbGFzcyBDaGF0U2VydmljZSB7XHJcbiAgICAvLyBwcml2YXRlIGJhc2VVcmwgPSBgaHR0cHM6Ly9jb3JldWF0YXJ0aGtvc2guc2FyamFrLmNvbWA7XHJcblxyXG4gICAgY3VycmVudFVzZXIgPSBzaWduYWw8YW55IHwgbnVsbD4obnVsbCk7XHJcbiAgICB1c2VyTGlzdCA9IHNpZ25hbDxhbnlbXT4oW10pO1xyXG4gICAgYXJjaGl2ZVJvb21JZCA9IHNpZ25hbDxzdHJpbmc+KCcnKTtcclxuICAgIG5vdGlmaWNhdGlvbnMgPSBzaWduYWw8Q2hhdE5vdGlmaWNhdGlvbltdPihbXSk7XHJcbiAgICBoYXNOZXdOb3RpZmljYXRpb24gPSBzaWduYWwoZmFsc2UpO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgICAgICBASW5qZWN0KENIQVRfQ09ORklHKSBwcml2YXRlIGNvbmZpZzogQ2hhdENvbmZpZyxcclxuICAgICAgICBwcml2YXRlIHNvY2tldDogU29ja2V0U2VydmljZSkge1xyXG4gICAgICAgIHRoaXMubGlzdGVuRm9yTm90aWZpY2F0aW9ucygpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBiYXNlVXJsKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNvbmZpZy5hcGlCYXNlVXJsO1xyXG4gICAgfVxyXG5cclxuICAgIC8qIC0tLS0tLS0tLS0tLS0tLS0gQ0hBVCBST09NUyAtLS0tLS0tLS0tLS0tLS0tICovXHJcbiAgICBjcmVhdGVSb29tKHJvb21JZDogc3RyaW5nLCBuYW1lOiBzdHJpbmcsIG1ldGFkYXRhOiBzdHJpbmcsIGNyZWF0ZWRCeTogc3RyaW5nLCB1c2VybmFtZTogc3RyaW5nLCBjaGF0VXNlcnM6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuYmFzZVVybH0vYXBpL2NoYXQvY2hhdHJvb21zL2NyZWF0ZS8ke3Jvb21JZH0vYCwge1xyXG4gICAgICAgICAgICBuYW1lLFxyXG4gICAgICAgICAgICBtZXRhZGF0YSxcclxuICAgICAgICAgICAgY3JlYXRlZEJ5LFxyXG4gICAgICAgICAgICB1c2VybmFtZSxcclxuICAgICAgICAgICAgY2hhdFVzZXJzXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0Um9vbVVzZXJzKHJvb21JZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnlbXT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueVtdPihgJHt0aGlzLmJhc2VVcmx9L2FwaS9jaGF0L2NoYXRyb29tcy9nZXRfdXNlci8ke3Jvb21JZH0vdXNlcnMvYCkucGlwZShcclxuICAgICAgICAgICAgbWFwKGxpc3QgPT5cclxuICAgICAgICAgICAgICAgIGxpc3QubWFwKHUgPT4gKHtcclxuICAgICAgICAgICAgICAgICAgICBpZDogdS5Vc2VySWQsXHJcbiAgICAgICAgICAgICAgICAgICAgdXNlcm5hbWU6IHUuVXNlck5hbWVcclxuICAgICAgICAgICAgICAgIH0pKVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBhZGRVc2VyVG9Sb29tKHJvb21JZDogc3RyaW5nLCB1c2VySWQ6IHN0cmluZywgdXNlck5hbWU6IHN0cmluZywgY3JlYXRlZEJ5OiBzdHJpbmcpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5iYXNlVXJsfS9hcGkvY2hhdC9jaGF0cm9vbXMvYWRkX3VzZXIvJHtyb29tSWR9L3VzZXJzL2FkZC9gLCB7XHJcbiAgICAgICAgICAgIHVzZXJJZCxcclxuICAgICAgICAgICAgdXNlck5hbWUsXHJcbiAgICAgICAgICAgIGNyZWF0ZWRCeVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qIC0tLS0tLS0tLS0tLS0tLS0gTUVTU0FHRVMgLS0tLS0tLS0tLS0tLS0tLSAqL1xyXG4gICAgZ2V0TWVzc2FnZXMocm9vbUlkOiBzdHJpbmcsIHNpbmNlPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxDaGF0TWVzc2FnZVtdPiB7XHJcbiAgICAgICAgY29uc3QgcGFyYW1zOiBhbnkgPSB7fTtcclxuICAgICAgICBpZiAoc2luY2UpIHBhcmFtcy5zaW5jZSA9IHNpbmNlO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnlbXT4oYCR7dGhpcy5iYXNlVXJsfS9hcGkvY2hhdC9tZXNzYWdlcy9yb29tcy9hbGxfbWVzc2FnZXMvJHtyb29tSWR9L2AsIHtwYXJhbXN9KS5waXBlKFxyXG4gICAgICAgICAgICBtYXAobGlzdCA9PlxyXG4gICAgICAgICAgICAgICAgbGlzdC5tYXAobSA9PiAoe1xyXG4gICAgICAgICAgICAgICAgICAgIGlkOiBtLmlkLFxyXG4gICAgICAgICAgICAgICAgICAgIGNoYXRSb29tSWQ6IG0uY2hhdFJvb21JZCxcclxuICAgICAgICAgICAgICAgICAgICBzZW5kZXJJZDogbS5zZW5kZXJJZCxcclxuICAgICAgICAgICAgICAgICAgICBzZW5kZXJOYW1lOiBtLnNlbmRlck5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogbS5jb250ZW50LFxyXG4gICAgICAgICAgICAgICAgICAgIHJlcGx5VG9NZXNzYWdlSWQ6IG0ucmVwbHlUb01lc3NhZ2VJZCxcclxuICAgICAgICAgICAgICAgICAgICBjcmVhdGVkQXQ6IG0uY3JlYXRlZEF0LFxyXG4gICAgICAgICAgICAgICAgICAgIGhhc0F0dGFjaG1lbnQ6IG0uaGFzQXR0YWNobWVudCA/PyBmYWxzZSxcclxuICAgICAgICAgICAgICAgIH0pKVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBzZW5kTWVzc2FnZShcclxuICAgICAgICByb29tSWQ6IHN0cmluZyxcclxuICAgICAgICBwYXlsb2FkOiB7XHJcbiAgICAgICAgICAgIHNlbmRlcklkOiBzdHJpbmc7XHJcbiAgICAgICAgICAgIHNlbmRlck5hbWU6IHN0cmluZyxcclxuICAgICAgICAgICAgY29udGVudDogc3RyaW5nO1xyXG4gICAgICAgICAgICByZXBseVRvTWVzc2FnZUlkPzogc3RyaW5nIHwgbnVsbCxcclxuICAgICAgICAgICAgY3JlYXRlZEJ5OiBzdHJpbmdcclxuICAgICAgICB9XHJcbiAgICApOiBPYnNlcnZhYmxlPENoYXRNZXNzYWdlPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy5iYXNlVXJsfS9hcGkvY2hhdC9tZXNzYWdlcy9yb29tcy9zZW5kLyR7cm9vbUlkfS9gLCBwYXlsb2FkKS5waXBlKFxyXG4gICAgICAgICAgICBtYXAobSA9PiAoe1xyXG4gICAgICAgICAgICAgICAgaWQ6IG0uaWQsXHJcbiAgICAgICAgICAgICAgICBjaGF0Um9vbUlkOiBtLmNoYXRSb29tSWQsXHJcbiAgICAgICAgICAgICAgICBzZW5kZXJJZDogbS5zZW5kZXJJZCxcclxuICAgICAgICAgICAgICAgIHNlbmRlck5hbWU6IG0uc2VuZGVyTmFtZSxcclxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IG0uY29udGVudCxcclxuICAgICAgICAgICAgICAgIHJlcGx5VG9NZXNzYWdlSWQ6IG0ucmVwbHlUb01lc3NhZ2VJZCxcclxuICAgICAgICAgICAgICAgIGNyZWF0ZWRBdDogbS5jcmVhdGVkQXQsXHJcbiAgICAgICAgICAgICAgICBoYXNBdHRhY2htZW50OiBtLmhhc0F0dGFjaG1lbnQgPz8gZmFsc2UsXHJcbiAgICAgICAgICAgIH0pKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0Um9vbXMobG9nZ2VkSW5Vc2VySWQ6IHN0cmluZywgY2hhdFJvb21JZD86IHN0cmluZykge1xyXG4gICAgICAgIGxldCB1cmwgPSBgJHt0aGlzLmJhc2VVcmx9L2FwaS9jaGF0L2NoYXRyb29tcy8ke2xvZ2dlZEluVXNlcklkfWA7XHJcbiAgICAgICAgaWYgKGNoYXRSb29tSWQpIHtcclxuICAgICAgICAgICAgdXJsICs9IGAvJHtjaGF0Um9vbUlkfWA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueVtdPihgJHt1cmx9L2ApO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBhcmNoaXZlUm9vbShyb29tSWQ6IHN0cmluZykge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPGFueVtdPihgJHt0aGlzLmJhc2VVcmx9L2FwaS9jaGF0L2NoYXRyb29tcy9hcmNoaXZlLyR7cm9vbUlkfS9gKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGxpc3RlbkZvck5vdGlmaWNhdGlvbnMoKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ0xpc3RlbmluZyBmb3Igbm90aWZpY2F0aW9ucycpO1xyXG4gICAgICAgIC8vIPCflJQgQURERUQgVE8gUk9PTSDigJQgb25seSBhZGRlZCB1c2VyXHJcbiAgICAgICAgdGhpcy5zb2NrZXQub24oJ2FkZGVkVG9Sb29tJykuc3Vic2NyaWJlKChtc2c6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnYWRkZWRUb1Jvb20nLCBtc2cpO1xyXG4gICAgICAgICAgICBpZiAobXNnLmFkZGVkVXNlcklkICE9PSB0aGlzLmN1cnJlbnRVc2VyKCkudXNlcklkKSByZXR1cm47XHJcblxyXG4gICAgICAgICAgICB0aGlzLnVwc2VydE5vdGlmaWNhdGlvbih7XHJcbiAgICAgICAgICAgICAgICByb29tSWQ6IG1zZy5jaGF0Um9vbUlkLFxyXG4gICAgICAgICAgICAgICAgcm9vbU5hbWU6IG1zZy5yb29tTmFtZSxcclxuICAgICAgICAgICAgICAgIHR5cGU6ICdhZGRlZCdcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIC8vIPCflJQgTkVXIE1FU1NBR0Ug4oCUIGV2ZXJ5b25lIEVYQ0VQVCBzZW5kZXJcclxuICAgICAgICB0aGlzLnNvY2tldC5vbignbmV3TWVzc2FnZScpLnN1YnNjcmliZSgobXNnOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coJ25ld01lc3NhZ2UnLCBtc2cpO1xyXG4gICAgICAgICAgICBpZiAobXNnLnNlbmRlcklkID09PSB0aGlzLmN1cnJlbnRVc2VyKCkudXNlcklkKSByZXR1cm47XHJcblxyXG4gICAgICAgICAgICB0aGlzLnVwc2VydE5vdGlmaWNhdGlvbih7XHJcbiAgICAgICAgICAgICAgICByb29tSWQ6IG1zZy5jaGF0Um9vbUlkLFxyXG4gICAgICAgICAgICAgICAgdHlwZTogJ21lc3NhZ2UnLFxyXG4gICAgICAgICAgICAgICAgbGFzdE1lc3NhZ2U6IG1zZy5jb250ZW50XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgdXBzZXJ0Tm90aWZpY2F0aW9uKGRhdGE6IFBhcnRpYWw8Q2hhdE5vdGlmaWNhdGlvbj4pIHtcclxuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbnMudXBkYXRlKGxpc3QgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBpbmRleCA9IGxpc3QuZmluZEluZGV4KG4gPT4gbi5yb29tSWQgPT09IGRhdGEucm9vbUlkKTtcclxuXHJcbiAgICAgICAgICAgIGlmIChpbmRleCAhPT0gLTEpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG4gPSBsaXN0W2luZGV4XTtcclxuICAgICAgICAgICAgICAgIGxpc3RbaW5kZXhdID0ge1xyXG4gICAgICAgICAgICAgICAgICAgIC4uLm4sXHJcbiAgICAgICAgICAgICAgICAgICAgdW5yZWFkQ291bnQ6IG4udW5yZWFkQ291bnQgKyAxLFxyXG4gICAgICAgICAgICAgICAgICAgIGxhc3RNZXNzYWdlOiBkYXRhLmxhc3RNZXNzYWdlID8/IG4ubGFzdE1lc3NhZ2UsXHJcbiAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wOiBEYXRlLm5vdygpXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIFsuLi5saXN0XTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgcmV0dXJuIFtcclxuICAgICAgICAgICAgICAgIC4uLmxpc3QsXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgcm9vbUlkOiBkYXRhLnJvb21JZCEsXHJcbiAgICAgICAgICAgICAgICAgICAgcm9vbU5hbWU6IGRhdGEucm9vbU5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogZGF0YS50eXBlISxcclxuICAgICAgICAgICAgICAgICAgICB1bnJlYWRDb3VudDogMSxcclxuICAgICAgICAgICAgICAgICAgICBsYXN0TWVzc2FnZTogZGF0YS5sYXN0TWVzc2FnZSxcclxuICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6IERhdGUubm93KClcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgXTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5ub3RpZnlBcnJpdmFsKCk7XHJcbiAgICB9XHJcblxyXG4gICAgY2xlYXJSb29tKHJvb21JZDogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb25zLnVwZGF0ZShsaXN0ID0+XHJcbiAgICAgICAgICAgIGxpc3QuZmlsdGVyKG4gPT4gbi5yb29tSWQgIT09IHJvb21JZClcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGNsZWFyQWxsKCkge1xyXG4gICAgICAgIHRoaXMubm90aWZpY2F0aW9ucy5zZXQoW10pO1xyXG4gICAgfVxyXG5cclxuICAgIG5vdGlmeUFycml2YWwoKSB7XHJcbiAgICAgICAgdGhpcy5oYXNOZXdOb3RpZmljYXRpb24uc2V0KHRydWUpO1xyXG4gICAgICAgIC8vIGF1dG8tcmVzZXQgYWZ0ZXIgYW5pbWF0aW9uXHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuaGFzTmV3Tm90aWZpY2F0aW9uLnNldChmYWxzZSk7XHJcbiAgICAgICAgfSwgMTIwMCk7XHJcbiAgICB9XHJcbn1cclxuIl19
|