@vgroup/dialbox 0.0.72 → 0.0.73
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/esm2020/lib/dialbox.component.mjs +2 -2
- package/esm2020/lib/service/twilio.service.mjs +11 -3
- package/fesm2015/vgroup-dialbox.mjs +11 -3
- package/fesm2015/vgroup-dialbox.mjs.map +1 -1
- package/fesm2020/vgroup-dialbox.mjs +11 -3
- package/fesm2020/vgroup-dialbox.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -67,12 +67,13 @@ export class TwilioService {
|
|
|
67
67
|
this.device.register();
|
|
68
68
|
this.device.on('incoming', (call) => {
|
|
69
69
|
console.log('Incoming call received:', call);
|
|
70
|
+
// Store the call in the current call subject
|
|
70
71
|
this.currentCall.next(call);
|
|
71
72
|
this.callType.next('INCOMING');
|
|
72
73
|
this.currentCallState.next('incoming');
|
|
74
|
+
// Show notification
|
|
73
75
|
this.notificationService.showNotification(call);
|
|
74
|
-
//
|
|
75
|
-
// call.accept();
|
|
76
|
+
// Set up call event handlers
|
|
76
77
|
call.on('accept', () => {
|
|
77
78
|
const callSid = call.parameters['CallSid'];
|
|
78
79
|
console.log('Call accepted:', callSid);
|
|
@@ -83,6 +84,13 @@ export class TwilioService {
|
|
|
83
84
|
console.log('Call disconnected:', callSid);
|
|
84
85
|
this.currentCall.next(null);
|
|
85
86
|
this.currentCallState.next('disconnected');
|
|
87
|
+
this.callType.next('');
|
|
88
|
+
});
|
|
89
|
+
call.on('cancel', () => {
|
|
90
|
+
console.log('Call cancelled by caller');
|
|
91
|
+
this.currentCall.next(null);
|
|
92
|
+
this.currentCallState.next('disconnected');
|
|
93
|
+
this.callType.next('');
|
|
86
94
|
});
|
|
87
95
|
});
|
|
88
96
|
this.device.on('error', (error) => {
|
|
@@ -192,4 +200,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
192
200
|
providedIn: 'root'
|
|
193
201
|
}]
|
|
194
202
|
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.ExtensionService }, { type: i3.NotificationService }]; } });
|
|
195
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHdpbGlvLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kaWFsYm94L3NyYy9saWIvc2VydmljZS90d2lsaW8uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFRLE1BQU0sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDbkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFBOzs7OztBQWdCMUQsTUFBTSxPQUFPLGFBQWE7SUEyQnhCLFlBQ1UsSUFBZ0IsRUFDaEIsZ0JBQWtDLEVBQ2xDLG1CQUF3QztRQUZ4QyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQTVCbEQsMEJBQXFCLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDNUQsZ0JBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBYyxJQUFJLENBQUMsQ0FBQztRQUNyRCxxQkFBZ0IsR0FBRyxJQUFJLGVBQWUsQ0FBTSxNQUFNLENBQUMsQ0FBQyxDQUFDLGlDQUFpQztRQUl0RixhQUFRLEdBQUcsSUFBSSxlQUFlLENBQVMsS0FBSyxDQUFDLENBQUM7UUFDOUMseUJBQW9CLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUMsQ0FBQyxpQ0FBaUM7UUFDN0YsVUFBSyxHQUFPLFlBQVksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDOUMsc0JBQWlCLEdB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QUUsa0JBQWtCLEVBQUUsVUFBVSxFQUFFLFNBQVMsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDM0gsTUFBTSxFQUFFLElBQUksVUFBVSxFQUFFLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUM7U0FDakQsQ0FBQztRQUNGLE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQTtRQUN2RCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFLLFdBQVcsQ0FBQyxNQUFNLEdBQUcseUNBQXlDLEdBQUcsU0FBUyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3BILENBQUM7OzJHQTVNVSxhQUFhOytHQUFiLGFBQWEsY0FGWixNQUFNOzRGQUVQLGFBQWE7a0JBSHpCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEh0dHBIZWFkZXJzIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDYWxsLCBEZXZpY2UgfSBmcm9tICdAdHdpbGlvL3ZvaWNlLXNkayc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGVudmlyb25tZW50IH0gZnJvbSBcIi4uL2Vudmlyb25tZW50cy9lbnZpcm9ubWVudHNcIlxuaW1wb3J0IHsgRXh0ZW5zaW9uU2VydmljZSB9IGZyb20gJy4vZXh0ZW5zaW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4vTm90aWZpY2F0aW9uLnNlcnZpY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERpYWxQYXlsb2FkIHtcbiAgbnVtYmVyOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgaW1nOiBzdHJpbmc7XG4gIGNhbGxlcklkOnN0cmluZztcbiAgaXNEaWFsRnJvbUhpc3Rvcnk6Ym9vbGVhbjtcbiAgZnJvbTpzdHJpbmc7XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFR3aWxpb1NlcnZpY2Uge1xuICBcbiAgb3BlbkluUHJvZ3Jlc3NEaWFscGFkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIGN1cnJlbnRDYWxsID0gbmV3IEJlaGF2aW9yU3ViamVjdDxDYWxsIHwgbnVsbD4obnVsbCk7XG4gIGN1cnJlbnRDYWxsU3RhdGUgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4oJ25vbmUnKTsgLy9pbi1wcm9ncmVzcywgb3V0LXByb2dyZXNzLCBub25lXG4gIGRldmljZTphbnk7XG4gIGluY29taW5nQ2FsbFRva2VuPzpzdHJpbmc7XG4gIG91dGdvaW5nQ2FsbFRva2VuPzpzdHJpbmc7XG4gIGNhbGxUeXBlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCdOSUwnKTtcbiAgaXNJbmNvbWluZ0NhbGxQaWNrZWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTsgLy8gZm9yIGJvdGggaW5jb21pbmcgYW5kIG91dGdvaW5nXG4gIHRva2VuOmFueSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdleHRfdG9rZW4nKTtcbiAgaXNOZXdDb250YWN0QWRkZWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgdXBkYXRlUmVjZW50Q2FsbCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICBjYWxsaGFuZGxlRnJvbU5vdGlmaWNhdGlvbiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55Pih7fSk7XG5cbiAgZW5kQ2FsbCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICBkaWFsTnVtYmVyRnJvbU90aGVyTW9kdWxlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxEaWFsUGF5bG9hZD4oeyBudW1iZXI6ICcnLCBuYW1lOiAnJywgaW1nOiAnJywgY2FsbGVySWQ6ICcnLCBpc0RpYWxGcm9tSGlzdG9yeTogZmFsc2UsIGZyb206ICcnIH0pO1xuXG4gIHRvZ2dsZUNhbGxlcklkQWxlcnQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xuICBpc1RyaWFsT3ZlciA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICBpc1BheW1lbnREdWUgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgaXNBdmFpbGFibGVOdW1iZXIgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgY2FsbGVySWRMaXN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnlbXT4oW10pO1xuICB0cmlnZ2VyU01TUmVsb2FkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgcHJpdmF0ZSBpc0luaXRpYWxpemVkID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LCBcbiAgICBwcml2YXRlIGV4dGVuc2lvblNlcnZpY2U6IEV4dGVuc2lvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBub3RpZmljYXRpb25TZXJ2aWNlOiBOb3RpZmljYXRpb25TZXJ2aWNlXG4gICkge1xuICAgIC8vIEluaXRpYWxpemUgd2l0aCBjdXJyZW50IHRva2VuIGlmIGF2YWlsYWJsZVxuICAgIHRoaXMuaW5pdGlhbGl6ZVR3aWxpb0RldmljZSgpO1xuICAgIFxuICAgIC8vIExpc3RlbiBmb3IgdG9rZW4gY2hhbmdlc1xuICAgIHRoaXMuZXh0ZW5zaW9uU2VydmljZS50b2tlbkNoYW5nZSQuc3Vic2NyaWJlKHRva2VuID0+IHtcbiAgICAgIGlmICh0b2tlbiAmJiAoIXRoaXMudG9rZW4gfHwgdG9rZW4gIT09IHRoaXMudG9rZW4pKSB7XG4gICAgICAgIHRoaXMudG9rZW4gPSB0b2tlbjtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplVHdpbGlvRGV2aWNlKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAgcHVibGljIGluaXRpYWxpemVUd2lsaW9EZXZpY2UoKSB7XG4gICAgLy8gRG9uJ3QgaW5pdGlhbGl6ZSBpZiBhbHJlYWR5IGluaXRpYWxpemVkIHdpdGggdGhlIHNhbWUgdG9rZW5cbiAgICBpZiAodGhpcy5kZXZpY2UgJiYgdGhpcy50b2tlbiA9PT0gdGhpcy5leHRlbnNpb25TZXJ2aWNlLnRva2VuKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gQ2xlYW4gdXAgZXhpc3RpbmcgZGV2aWNlIGlmIGFueVxuICAgIGlmICh0aGlzLmRldmljZSkge1xuICAgICAgdGhpcy5kZXZpY2UuZGVzdHJveSgpO1xuICAgICAgdGhpcy5kZXZpY2UgPSBudWxsIGFzIGFueTtcbiAgICB9XG5cbiAgICB0aGlzLnRva2VuID0gdGhpcy5leHRlbnNpb25TZXJ2aWNlLnRva2VuO1xuICAgIFxuICAgIGlmICh0aGlzLnRva2VuKSB7XG4gICAgICB0aGlzLmV4dGVuc2lvblNlcnZpY2UuZ2V0SW5jb21pbmdDYWxsVG9rZW4oKS5zdWJzY3JpYmUoKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICBpZiAoIWRhdGEgfHwgIWRhdGEudG9rZW4pIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdObyB0b2tlbiByZWNlaXZlZCBmcm9tIGdldEluY29taW5nQ2FsbFRva2VuJyk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaW5jb21pbmdDYWxsVG9rZW4gPSBkYXRhLnRva2VuO1xuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnaW4tdG9rZW4nLCBkYXRhLnRva2VuKTtcbiAgICAgICAgdGhpcy5kZXZpY2UgPSBuZXcgRGV2aWNlKHRoaXMuaW5jb21pbmdDYWxsVG9rZW4hLCB7IFxuICAgICAgICAgIGFsbG93SW5jb21pbmdXaGlsZUJ1c3k6IHRydWUsXG4gICAgICAgICAgLy8gQWRkIGFueSBvdGhlciBuZWNlc3Nhcnkgb3B0aW9uc1xuICAgICAgICB9KTtcbiAgICAgICAgXG4gICAgICAgIHRoaXMuZGV2aWNlLnJlZ2lzdGVyKCk7XG5cbiAgICAgICAgdGhpcy5kZXZpY2Uub24oJ2luY29taW5nJywgKGNhbGw6IENhbGwpID0+IHtcbiAgICAgICAgICBjb25zb2xlLmxvZygnSW5jb21pbmcgY2FsbCByZWNlaXZlZDonLCBjYWxsKTtcbiAgICAgICAgICB0aGlzLmN1cnJlbnRDYWxsLm5leHQoY2FsbCk7XG4gICAgICAgICAgdGhpcy5jYWxsVHlwZS5uZXh0KCdJTkNPTUlORycpO1xuICAgICAgICAgIHRoaXMuY3VycmVudENhbGxTdGF0ZS5uZXh0KCdpbmNvbWluZycpO1xuICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5zaG93Tm90aWZpY2F0aW9uKGNhbGwpO1xuICAgICAgICAgIFxuICAgICAgICAgIC8vIEF1dG8tYW5zd2VyIGlmIG5lZWRlZCAob3B0aW9uYWwpXG4gICAgICAgICAgLy8gY2FsbC5hY2NlcHQoKTtcbiAgICAgICAgICBcbiAgICAgICAgICBjYWxsLm9uKCdhY2NlcHQnLCAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjYWxsU2lkID0gY2FsbC5wYXJhbWV0ZXJzWydDYWxsU2lkJ107XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnQ2FsbCBhY2NlcHRlZDonLCBjYWxsU2lkKTtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudENhbGxTdGF0ZS5uZXh0KCdpbi1wcm9ncmVzcycpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIFxuICAgICAgICAgIGNhbGwub24oJ2Rpc2Nvbm5lY3QnLCAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjYWxsU2lkID0gY2FsbC5wYXJhbWV0ZXJzWydDYWxsU2lkJ107XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnQ2FsbCBkaXNjb25uZWN0ZWQ6JywgY2FsbFNpZCk7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRDYWxsLm5leHQobnVsbCk7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRDYWxsU3RhdGUubmV4dCgnZGlzY29ubmVjdGVkJyk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuZGV2aWNlLm9uKCdlcnJvcicsIChlcnJvcjogYW55KSA9PiB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcignVHdpbGlvIERldmljZSBFcnJvcjonLCBlcnJvcik7XG4gICAgICAgICAgLy8gQWRkIGVycm9yIGhhbmRsaW5nIGFuZCByZWNvbm5lY3Rpb24gbG9naWNcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvLyBvbkluY29taW5nQ2FsbCgpe1xuICAvLyAgIHRoaXMuZGV2aWNlLm9uKCdpbmNvbWluZycsIChjYWxsOmFueSkgPT4ge1xuICAvLyAgICAgY29uc29sZS5sb2coY2FsbCk7XG4gICAgIFxuICAvLyAgICAgLy9jYWxsLmFjY2VwdCgpO1xuICAvLyAgIH0pO1xuICAvLyB9XG4gIHNhdmVDb250YWN0KHBheWxvYWQ6IGFueSk6IE9ic2VydmFibGU8W10+IHtcbiAgICBjb25zdCBodHRwT3B0aW9ucyA9IHsgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJywgJ0F1dGgtS2V5JzogXCJCZWFyZXIgXCIgKyBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnZXh0X3Rva2VuJyl9KSB9O1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxbXT4oZW52aXJvbm1lbnQuYXBpVXJsICsgJy91dGlsaXRpZXMvcGhvbmVib29rL2FkZC9jb250YWN0cy9tYW51YWxseScsIHBheWxvYWQsIGh0dHBPcHRpb25zKTtcbiAgfVxuICB1cGRhdGVDb250YWN0KHBheWxvYWQ6YW55KXtcbiAgICBjb25zdCBodHRwT3B0aW9ucyA9IHsgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJywgJ0F1dGgtS2V5JzogXCJCZWFyZXIgXCIgKyB0aGlzLnRva2VufSkgfTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8W10+KGVudmlyb25tZW50LmFwaVVybCArICcvdXRpbGl0aWVzL3Bob25lYm9vay91cGRhdGUvY29udGFjdCcsIHBheWxvYWQsIGh0dHBPcHRpb25zKTtcbiAgfVxuICBcbiAgZGVsZXRlQ29udGFjdChpZDpzdHJpbmcpe1xuICAgIGxldCBwYXlsb2FkID0ge1xuICAgICAgcGhvbmVib29raWQ6IGlkXG4gICAgfVxuICAgIGNvbnN0IGh0dHBPcHRpb25zID0geyBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLCAnQXV0aC1LZXknOiBcIkJlYXJlciBcIiArIGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdleHRfdG9rZW4nKSB9KSB9O1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxbXT4oZW52aXJvbm1lbnQuYXBpVXJsICsgJy91dGlsaXRpZXMvcGhvbmVib29rL2RlbGV0ZS9jb250YWN0LycraWQscGF5bG9hZCwgaHR0cE9wdGlvbnMpO1xuICB9XG4gIGdldENvbnRhY3RMaXN0KCl7XG4gICAgY29uc3QgaHR0cE9wdGlvbnMgPSB7IGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsICdBdXRoLUtleSc6IFwiQmVhcmVyIFwiICsgbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2V4dF90b2tlbicpIH0pIH07XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8W10+KGVudmlyb25tZW50LmFwaVVybCArICcvdXRpbGl0aWVzL3Bob25lYm9vay9yZWFkL2NvbnRhY3RzJywgaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgYWRkQ29udGFjdFRvRmF2b3VyaXRlKHBheWxvYWQ6IGFueSl7XG4gICAgY29uc3QgaHR0cE9wdGlvbnMgPSB7IGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsICdBdXRoLUtleSc6IFwiQmVhcmVyIFwiICsgbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2V4dF90b2tlbicpIH0pIH07XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFtdPihlbnZpcm9ubWVudC5hcGlVcmwgKyAnL3V0aWxpdGllcy9waG9uZWJvb2svdXBkYXRlL2Zhdm91cml0ZScsIHBheWxvYWQsIGh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIGdldEZhdm91cml0Q29udGFjdHMoKXtcbiAgICBjb25zdCBodHRwT3B0aW9ucyA9IHsgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJywgJ0F1dGgtS2V5JzogXCJCZWFyZXIgXCIgKyBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnZXh0X3Rva2VuJykgfSkgfTtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxbXT4oZW52aXJvbm1lbnQuYXBpVXJsICsgJy91dGlsaXRpZXMvcGhvbmVib29rL2Zhdm91cml0ZS9jb250YWN0cycsIGh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIGdldFJlY2VudENhbGxzKHBhZ2VJbmRleD86IHN0cmluZywgcGFnZVNpemU/OiBzdHJpbmcsKXtcbiAgICAvLyBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKTtcbiAgICAvLyBwYXJhbXMgPSBwYXJhbXMuc2V0KCdzaXplJywgcGFnZVNpemUpO1xuICAgIC8vIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ3BhZ2UnLCBwYWdlSW5kZXgpO1xuICAgIGNvbnN0IGhlYWRlcnMgPSAgeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLCAnQXV0aC1LZXknOiBcIkJlYXJlciBcIiArIGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdleHRfdG9rZW4nKSB9O1xuICAgIGNvbnN0IGh0dHBPcHRpb25zID17aGVhZGVyc31cbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxbXT4oZW52aXJvbm1lbnQuYXBpVXJsICsgJy91dGlsaXRpZXMvcGhvbmVib29rL3JlY2VudC9jYWxscycsIGh0dHBPcHRpb25zKTtcbiAgfVxuICBkZWxldGVSZWNlbnRDYWxsTG9nKGlkOnN0cmluZ3wgc3RyaW5nW10pe1xuICAgIGxldCBwYXlsb2FkID0ge1xuICAgICAgcmVjb3JkSWQ6IGlkXG4gICAgfVxuICAgIGNvbnN0IGh0dHBPcHRpb25zID0geyBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLCAnQXV0aC1LZXknOiBcIkJlYXJlciBcIiArIGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdleHRfdG9rZW4nKSB9KSB9O1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxbXT4oZW52aXJvbm1lbnQuYXBpVXJsICsgJy91dGlsaXRpZXMvcGhvbmVib29rL2RlbGV0ZS9jYWxscy8nK2lkLHBheWxvYWQsIGh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIHVwbG9hZFBob3RvKHBheWxvYWQ6IGFueSl7XG4gICAgbGV0IGh0dHBPcHRpb25zID0ge1xuICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHtcbiAgICAgICAgJ0F1dGgtS2V5JzogXCJCZWFyZXIgXCIgKyBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnZXh0X3Rva2VuJylcbiAgICAgIH0pXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8W10+KGVudmlyb25tZW50LmFwaVVybCArICcvdXRpbGl0aWVzL3Bob25lYm9vay91cGxvYWQvcGhvdG8nLHBheWxvYWQsIGh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIGRlbGV0ZVBob3RvKGlkOnN0cmluZyl7XG4gICAgbGV0IHBheWxvYWQgPSB7XG4gICAgICBwaG9uZWJvb2tpZDogaWRcbiAgICB9XG4gICAgbGV0IGh0dHBPcHRpb25zID0ge1xuICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHtcbiAgICAgICAgJ0F1dGgtS2V5JzogXCJCZWFyZXIgXCIgKyBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnZXh0X3Rva2VuJylcbiAgICAgIH0pXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8W10+KGVudmlyb25tZW50LmFwaVVybCArICcvdXRpbGl0aWVzL3Bob25lYm9vay9kZWxldGUvcGhvdG8vJytpZCxwYXlsb2FkLCBodHRwT3B0aW9ucyk7XG4gIH1cblxuICAvLyB0b2dnbGVDYWxsZXJJZEFsZXJ0Rm4odmFsOiBhbnkpIHtcbiAgLy8gICBsZXQgaHR0cE9wdGlvbnMgPSB7XG4gIC8vICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoe1xuICAvLyAgICAgICAnQXV0aC1LZXknOiBcIkJlYXJlciBcIiArIGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdleHRfdG9rZW4nKVxuICAvLyAgICAgfSlcbiAgLy8gICB9O1xuICAvLyAgIHJldHVybiB0aGlzLmh0dHAucHV0PFtdPihlbnZpcm9ubWVudC5hcGlVcmwgKyAnL3V0aWxpdGllcy9zb2Z0cGhvbmUvY2FsbGVyaWQvYWxlcnQvJyArIHZhbCwge30sIGh0dHBPcHRpb25zKTtcbiAgLy8gfVxuXG4gIHRvZ2dsZUNvdXRyeUNvZGVUb2FzdCh2YWw6YW55KXtcbiAgICBsZXQgaHR0cE9wdGlvbnMgPSB7XG4gICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoe1xuICAgICAgICAnQXV0aC1LZXknOiBcIkJlYXJlciBcIiArIGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdleHRfdG9rZW4nKVxuICAgICAgfSlcbiAgICB9O1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PFtdPihlbnZpcm9ubWVudC5hcGlVcmwgKyAnL3V0aWxpdGllcy9zb2Z0cGhvbmUvY291bnRyeWNvZGUvYWxlcnQvJyArIHZhbCwge30sIGh0dHBPcHRpb25zKTtcbiAgfVxuICBnZXRUb051bWJlcihkaWFsbGVkTm86IHN0cmluZywgaXNvQ29kZTogc3RyaW5nKSB7XG4gICAgY29uc3QgaHR0cE9wdGlvbnMgPSB7XG4gICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLCAnQXV0aC1LZXknOiBcIkJlYXJlciBcIiArIGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdleHRfdG9rZW4nKSB9KSxcbiAgICAgIHBhcmFtczogbmV3IEh0dHBQYXJhbXMoKS5zZXQoJ2lzb0NvZGUnLCBpc29Db2RlKVxuICAgIH07XG4gICAgY29uc3QgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKS5zZXQoJ2lzb0NvZGUnLCBpc29Db2RlKVxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFtdPihlbnZpcm9ubWVudC5hcGlVcmwgKyAnL3V0aWxpdGllcy9zb2Z0cGhvbmUvY2hlY2svY291bnRyeUNvZGUvJyArIGRpYWxsZWRObywgaHR0cE9wdGlvbnMpO1xuICB9IFxuXG59XG4iXX0=
|
|
203
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHdpbGlvLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kaWFsYm94L3NyYy9saWIvc2VydmljZS90d2lsaW8uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFRLE1BQU0sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDbkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFBOzs7OztBQWdCMUQsTUFBTSxPQUFPLGFBQWE7SUEyQnhCLFlBQ1UsSUFBZ0IsRUFDaEIsZ0JBQWtDLEVBQ2xDLG1CQUF3QztRQUZ4QyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQTVCbEQsMEJBQXFCLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDNUQsZ0JBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBYyxJQUFJLENBQUMsQ0FBQztRQUNyRCxxQkFBZ0IsR0FBRyxJQUFJLGVBQWUsQ0FBTSxNQUFNLENBQUMsQ0FBQyxDQUFDLGlDQUFpQztRQUl0RixhQUFRLEdBQUcsSUFBSSxlQUFlLENBQVMsS0FBSyxDQUFDLENBQUM7UUFDOUMseUJBQW9CLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUMsQ0FBQyxpQ0FBaUM7UUFDN0YsVUFBSyxHQUFPLFlBQVksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDOUMsc0JBQWlCLEdB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QUFJLFdBQVcsR0FBRztZQUNoQixPQUFPLEVBQUUsSUFBSSxXQUFXLENBQUM7Z0JBQ3ZCLFVBQVUsRUFBRSxTQUFTLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7YUFDMUQsQ0FBQztTQUNILENBQUM7UUFDRixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFLLFdBQVcsQ0FBQyxNQUFNLEdBQUcseUNBQXlDLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUNsSCxDQUFDO0lBQ0QsV0FBVyxDQUFDLFNBQWlCLEVBQUUsT0FBZTtRQUM1QyxNQUFNLFdBQVcsR0FBRztZQUNsQixPQUFPLEVBQUUsSUFBSSxXQUFXLENBQUMsRUFBRSxjQUFjLEVBQUUsa0JBQWtCLEVBQUUsVUFBVSxFQUFFLFNBQVMsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDM0gsTUFBTSxFQUFFLElBQUksVUFBVSxFQUFFLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUM7U0FDakQsQ0FBQztRQUNGLE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQTtRQUN2RCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFLLFdBQVcsQ0FBQyxNQUFNLEdBQUcseUNBQXlDLEdBQUcsU0FBUyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3BILENBQUM7OzJHQXROVSxhQUFhOytHQUFiLGFBQWEsY0FGWixNQUFNOzRGQUVQLGFBQWE7a0JBSHpCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEh0dHBIZWFkZXJzIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDYWxsLCBEZXZpY2UgfSBmcm9tICdAdHdpbGlvL3ZvaWNlLXNkayc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGVudmlyb25tZW50IH0gZnJvbSBcIi4uL2Vudmlyb25tZW50cy9lbnZpcm9ubWVudHNcIlxuaW1wb3J0IHsgRXh0ZW5zaW9uU2VydmljZSB9IGZyb20gJy4vZXh0ZW5zaW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4vTm90aWZpY2F0aW9uLnNlcnZpY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERpYWxQYXlsb2FkIHtcbiAgbnVtYmVyOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgaW1nOiBzdHJpbmc7XG4gIGNhbGxlcklkOnN0cmluZztcbiAgaXNEaWFsRnJvbUhpc3Rvcnk6Ym9vbGVhbjtcbiAgZnJvbTpzdHJpbmc7XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFR3aWxpb1NlcnZpY2Uge1xuICBcbiAgb3BlbkluUHJvZ3Jlc3NEaWFscGFkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIGN1cnJlbnRDYWxsID0gbmV3IEJlaGF2aW9yU3ViamVjdDxDYWxsIHwgbnVsbD4obnVsbCk7XG4gIGN1cnJlbnRDYWxsU3RhdGUgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4oJ25vbmUnKTsgLy9pbi1wcm9ncmVzcywgb3V0LXByb2dyZXNzLCBub25lXG4gIGRldmljZTphbnk7XG4gIGluY29taW5nQ2FsbFRva2VuPzpzdHJpbmc7XG4gIG91dGdvaW5nQ2FsbFRva2VuPzpzdHJpbmc7XG4gIGNhbGxUeXBlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCdOSUwnKTtcbiAgaXNJbmNvbWluZ0NhbGxQaWNrZWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTsgLy8gZm9yIGJvdGggaW5jb21pbmcgYW5kIG91dGdvaW5nXG4gIHRva2VuOmFueSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdleHRfdG9rZW4nKTtcbiAgaXNOZXdDb250YWN0QWRkZWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgdXBkYXRlUmVjZW50Q2FsbCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICBjYWxsaGFuZGxlRnJvbU5vdGlmaWNhdGlvbiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55Pih7fSk7XG5cbiAgZW5kQ2FsbCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICBkaWFsTnVtYmVyRnJvbU90aGVyTW9kdWxlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxEaWFsUGF5bG9hZD4oeyBudW1iZXI6ICcnLCBuYW1lOiAnJywgaW1nOiAnJywgY2FsbGVySWQ6ICcnLCBpc0RpYWxGcm9tSGlzdG9yeTogZmFsc2UsIGZyb206ICcnIH0pO1xuXG4gIHRvZ2dsZUNhbGxlcklkQWxlcnQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xuICBpc1RyaWFsT3ZlciA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICBpc1BheW1lbnREdWUgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgaXNBdmFpbGFibGVOdW1iZXIgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgY2FsbGVySWRMaXN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnlbXT4oW10pO1xuICB0cmlnZ2VyU01TUmVsb2FkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgcHJpdmF0ZSBpc0luaXRpYWxpemVkID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LCBcbiAgICBwcml2YXRlIGV4dGVuc2lvblNlcnZpY2U6IEV4dGVuc2lvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBub3RpZmljYXRpb25TZXJ2aWNlOiBOb3RpZmljYXRpb25TZXJ2aWNlXG4gICkge1xuICAgIC8vIEluaXRpYWxpemUgd2l0aCBjdXJyZW50IHRva2VuIGlmIGF2YWlsYWJsZVxuICAgIHRoaXMuaW5pdGlhbGl6ZVR3aWxpb0RldmljZSgpO1xuICAgIFxuICAgIC8vIExpc3RlbiBmb3IgdG9rZW4gY2hhbmdlc1xuICAgIHRoaXMuZXh0ZW5zaW9uU2VydmljZS50b2tlbkNoYW5nZSQuc3Vic2NyaWJlKHRva2VuID0+IHtcbiAgICAgIGlmICh0b2tlbiAmJiAoIXRoaXMudG9rZW4gfHwgdG9rZW4gIT09IHRoaXMudG9rZW4pKSB7XG4gICAgICAgIHRoaXMudG9rZW4gPSB0b2tlbjtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplVHdpbGlvRGV2aWNlKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAgcHVibGljIGluaXRpYWxpemVUd2lsaW9EZXZpY2UoKSB7XG4gICAgLy8gRG9uJ3QgaW5pdGlhbGl6ZSBpZiBhbHJlYWR5IGluaXRpYWxpemVkIHdpdGggdGhlIHNhbWUgdG9rZW5cbiAgICBpZiAodGhpcy5kZXZpY2UgJiYgdGhpcy50b2tlbiA9PT0gdGhpcy5leHRlbnNpb25TZXJ2aWNlLnRva2VuKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gQ2xlYW4gdXAgZXhpc3RpbmcgZGV2aWNlIGlmIGFueVxuICAgIGlmICh0aGlzLmRldmljZSkge1xuICAgICAgdGhpcy5kZXZpY2UuZGVzdHJveSgpO1xuICAgICAgdGhpcy5kZXZpY2UgPSBudWxsIGFzIGFueTtcbiAgICB9XG5cbiAgICB0aGlzLnRva2VuID0gdGhpcy5leHRlbnNpb25TZXJ2aWNlLnRva2VuO1xuICAgIFxuICAgIGlmICh0aGlzLnRva2VuKSB7XG4gICAgICB0aGlzLmV4dGVuc2lvblNlcnZpY2UuZ2V0SW5jb21pbmdDYWxsVG9rZW4oKS5zdWJzY3JpYmUoKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICBpZiAoIWRhdGEgfHwgIWRhdGEudG9rZW4pIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdObyB0b2tlbiByZWNlaXZlZCBmcm9tIGdldEluY29taW5nQ2FsbFRva2VuJyk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaW5jb21pbmdDYWxsVG9rZW4gPSBkYXRhLnRva2VuO1xuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnaW4tdG9rZW4nLCBkYXRhLnRva2VuKTtcbiAgICAgICAgdGhpcy5kZXZpY2UgPSBuZXcgRGV2aWNlKHRoaXMuaW5jb21pbmdDYWxsVG9rZW4hLCB7IFxuICAgICAgICAgIGFsbG93SW5jb21pbmdXaGlsZUJ1c3k6IHRydWUsXG4gICAgICAgICAgLy8gQWRkIGFueSBvdGhlciBuZWNlc3Nhcnkgb3B0aW9uc1xuICAgICAgICB9KTtcbiAgICAgICAgXG4gICAgICAgIHRoaXMuZGV2aWNlLnJlZ2lzdGVyKCk7XG5cbiAgICAgICAgdGhpcy5kZXZpY2Uub24oJ2luY29taW5nJywgKGNhbGw6IENhbGwpID0+IHtcbiAgICAgICAgICBjb25zb2xlLmxvZygnSW5jb21pbmcgY2FsbCByZWNlaXZlZDonLCBjYWxsKTtcbiAgICAgICAgICBcbiAgICAgICAgICAvLyBTdG9yZSB0aGUgY2FsbCBpbiB0aGUgY3VycmVudCBjYWxsIHN1YmplY3RcbiAgICAgICAgICB0aGlzLmN1cnJlbnRDYWxsLm5leHQoY2FsbCk7XG4gICAgICAgICAgdGhpcy5jYWxsVHlwZS5uZXh0KCdJTkNPTUlORycpO1xuICAgICAgICAgIHRoaXMuY3VycmVudENhbGxTdGF0ZS5uZXh0KCdpbmNvbWluZycpO1xuICAgICAgICAgIFxuICAgICAgICAgIC8vIFNob3cgbm90aWZpY2F0aW9uXG4gICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnNob3dOb3RpZmljYXRpb24oY2FsbCk7XG4gICAgICAgICAgXG4gICAgICAgICAgLy8gU2V0IHVwIGNhbGwgZXZlbnQgaGFuZGxlcnNcbiAgICAgICAgICBjYWxsLm9uKCdhY2NlcHQnLCAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjYWxsU2lkID0gY2FsbC5wYXJhbWV0ZXJzWydDYWxsU2lkJ107XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnQ2FsbCBhY2NlcHRlZDonLCBjYWxsU2lkKTtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudENhbGxTdGF0ZS5uZXh0KCdpbi1wcm9ncmVzcycpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIFxuICAgICAgICAgIGNhbGwub24oJ2Rpc2Nvbm5lY3QnLCAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjYWxsU2lkID0gY2FsbC5wYXJhbWV0ZXJzWydDYWxsU2lkJ107XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnQ2FsbCBkaXNjb25uZWN0ZWQ6JywgY2FsbFNpZCk7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRDYWxsLm5leHQobnVsbCk7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRDYWxsU3RhdGUubmV4dCgnZGlzY29ubmVjdGVkJyk7XG4gICAgICAgICAgICB0aGlzLmNhbGxUeXBlLm5leHQoJycpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIFxuICAgICAgICAgIGNhbGwub24oJ2NhbmNlbCcsICgpID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdDYWxsIGNhbmNlbGxlZCBieSBjYWxsZXInKTtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudENhbGwubmV4dChudWxsKTtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudENhbGxTdGF0ZS5uZXh0KCdkaXNjb25uZWN0ZWQnKTtcbiAgICAgICAgICAgIHRoaXMuY2FsbFR5cGUubmV4dCgnJyk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuZGV2aWNlLm9uKCdlcnJvcicsIChlcnJvcjogYW55KSA9PiB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcignVHdpbGlvIERldmljZSBFcnJvcjonLCBlcnJvcik7XG4gICAgICAgICAgLy8gQWRkIGVycm9yIGhhbmRsaW5nIGFuZCByZWNvbm5lY3Rpb24gbG9naWNcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvLyBvbkluY29taW5nQ2FsbCgpe1xuICAvLyAgIHRoaXMuZGV2aWNlLm9uKCdpbmNvbWluZycsIChjYWxsOmFueSkgPT4ge1xuICAvLyAgICAgY29uc29sZS5sb2coY2FsbCk7XG4gICAgIFxuICAvLyAgICAgLy9jYWxsLmFjY2VwdCgpO1xuICAvLyAgIH0pO1xuICAvLyB9XG4gIHNhdmVDb250YWN0KHBheWxvYWQ6IGFueSk6IE9ic2VydmFibGU8W10+IHtcbiAgICBjb25zdCBodHRwT3B0aW9ucyA9IHsgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJywgJ0F1dGgtS2V5JzogXCJCZWFyZXIgXCIgKyBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnZXh0X3Rva2VuJyl9KSB9O1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxbXT4oZW52aXJvbm1lbnQuYXBpVXJsICsgJy91dGlsaXRpZXMvcGhvbmVib29rL2FkZC9jb250YWN0cy9tYW51YWxseScsIHBheWxvYWQsIGh0dHBPcHRpb25zKTtcbiAgfVxuICB1cGRhdGVDb250YWN0KHBheWxvYWQ6YW55KXtcbiAgICBjb25zdCBodHRwT3B0aW9ucyA9IHsgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJywgJ0F1dGgtS2V5JzogXCJCZWFyZXIgXCIgKyB0aGlzLnRva2VufSkgfTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8W10+KGVudmlyb25tZW50LmFwaVVybCArICcvdXRpbGl0aWVzL3Bob25lYm9vay91cGRhdGUvY29udGFjdCcsIHBheWxvYWQsIGh0dHBPcHRpb25zKTtcbiAgfVxuICBcbiAgZGVsZXRlQ29udGFjdChpZDpzdHJpbmcpe1xuICAgIGxldCBwYXlsb2FkID0ge1xuICAgICAgcGhvbmVib29raWQ6IGlkXG4gICAgfVxuICAgIGNvbnN0IGh0dHBPcHRpb25zID0geyBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLCAnQXV0aC1LZXknOiBcIkJlYXJlciBcIiArIGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdleHRfdG9rZW4nKSB9KSB9O1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxbXT4oZW52aXJvbm1lbnQuYXBpVXJsICsgJy91dGlsaXRpZXMvcGhvbmVib29rL2RlbGV0ZS9jb250YWN0LycraWQscGF5bG9hZCwgaHR0cE9wdGlvbnMpO1xuICB9XG4gIGdldENvbnRhY3RMaXN0KCl7XG4gICAgY29uc3QgaHR0cE9wdGlvbnMgPSB7IGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsICdBdXRoLUtleSc6IFwiQmVhcmVyIFwiICsgbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2V4dF90b2tlbicpIH0pIH07XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8W10+KGVudmlyb25tZW50LmFwaVVybCArICcvdXRpbGl0aWVzL3Bob25lYm9vay9yZWFkL2NvbnRhY3RzJywgaHR0cE9wdGlvbnMpO1xuICB9XG5cbiAgYWRkQ29udGFjdFRvRmF2b3VyaXRlKHBheWxvYWQ6IGFueSl7XG4gICAgY29uc3QgaHR0cE9wdGlvbnMgPSB7IGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsICdBdXRoLUtleSc6IFwiQmVhcmVyIFwiICsgbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2V4dF90b2tlbicpIH0pIH07XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFtdPihlbnZpcm9ubWVudC5hcGlVcmwgKyAnL3V0aWxpdGllcy9waG9uZWJvb2svdXBkYXRlL2Zhdm91cml0ZScsIHBheWxvYWQsIGh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIGdldEZhdm91cml0Q29udGFjdHMoKXtcbiAgICBjb25zdCBodHRwT3B0aW9ucyA9IHsgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJywgJ0F1dGgtS2V5JzogXCJCZWFyZXIgXCIgKyBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnZXh0X3Rva2VuJykgfSkgfTtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxbXT4oZW52aXJvbm1lbnQuYXBpVXJsICsgJy91dGlsaXRpZXMvcGhvbmVib29rL2Zhdm91cml0ZS9jb250YWN0cycsIGh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIGdldFJlY2VudENhbGxzKHBhZ2VJbmRleD86IHN0cmluZywgcGFnZVNpemU/OiBzdHJpbmcsKXtcbiAgICAvLyBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKTtcbiAgICAvLyBwYXJhbXMgPSBwYXJhbXMuc2V0KCdzaXplJywgcGFnZVNpemUpO1xuICAgIC8vIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ3BhZ2UnLCBwYWdlSW5kZXgpO1xuICAgIGNvbnN0IGhlYWRlcnMgPSAgeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLCAnQXV0aC1LZXknOiBcIkJlYXJlciBcIiArIGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdleHRfdG9rZW4nKSB9O1xuICAgIGNvbnN0IGh0dHBPcHRpb25zID17aGVhZGVyc31cbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxbXT4oZW52aXJvbm1lbnQuYXBpVXJsICsgJy91dGlsaXRpZXMvcGhvbmVib29rL3JlY2VudC9jYWxscycsIGh0dHBPcHRpb25zKTtcbiAgfVxuICBkZWxldGVSZWNlbnRDYWxsTG9nKGlkOnN0cmluZ3wgc3RyaW5nW10pe1xuICAgIGxldCBwYXlsb2FkID0ge1xuICAgICAgcmVjb3JkSWQ6IGlkXG4gICAgfVxuICAgIGNvbnN0IGh0dHBPcHRpb25zID0geyBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLCAnQXV0aC1LZXknOiBcIkJlYXJlciBcIiArIGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdleHRfdG9rZW4nKSB9KSB9O1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxbXT4oZW52aXJvbm1lbnQuYXBpVXJsICsgJy91dGlsaXRpZXMvcGhvbmVib29rL2RlbGV0ZS9jYWxscy8nK2lkLHBheWxvYWQsIGh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIHVwbG9hZFBob3RvKHBheWxvYWQ6IGFueSl7XG4gICAgbGV0IGh0dHBPcHRpb25zID0ge1xuICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHtcbiAgICAgICAgJ0F1dGgtS2V5JzogXCJCZWFyZXIgXCIgKyBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnZXh0X3Rva2VuJylcbiAgICAgIH0pXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8W10+KGVudmlyb25tZW50LmFwaVVybCArICcvdXRpbGl0aWVzL3Bob25lYm9vay91cGxvYWQvcGhvdG8nLHBheWxvYWQsIGh0dHBPcHRpb25zKTtcbiAgfVxuXG4gIGRlbGV0ZVBob3RvKGlkOnN0cmluZyl7XG4gICAgbGV0IHBheWxvYWQgPSB7XG4gICAgICBwaG9uZWJvb2tpZDogaWRcbiAgICB9XG4gICAgbGV0IGh0dHBPcHRpb25zID0ge1xuICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHtcbiAgICAgICAgJ0F1dGgtS2V5JzogXCJCZWFyZXIgXCIgKyBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnZXh0X3Rva2VuJylcbiAgICAgIH0pXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8W10+KGVudmlyb25tZW50LmFwaVVybCArICcvdXRpbGl0aWVzL3Bob25lYm9vay9kZWxldGUvcGhvdG8vJytpZCxwYXlsb2FkLCBodHRwT3B0aW9ucyk7XG4gIH1cblxuICAvLyB0b2dnbGVDYWxsZXJJZEFsZXJ0Rm4odmFsOiBhbnkpIHtcbiAgLy8gICBsZXQgaHR0cE9wdGlvbnMgPSB7XG4gIC8vICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoe1xuICAvLyAgICAgICAnQXV0aC1LZXknOiBcIkJlYXJlciBcIiArIGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdleHRfdG9rZW4nKVxuICAvLyAgICAgfSlcbiAgLy8gICB9O1xuICAvLyAgIHJldHVybiB0aGlzLmh0dHAucHV0PFtdPihlbnZpcm9ubWVudC5hcGlVcmwgKyAnL3V0aWxpdGllcy9zb2Z0cGhvbmUvY2FsbGVyaWQvYWxlcnQvJyArIHZhbCwge30sIGh0dHBPcHRpb25zKTtcbiAgLy8gfVxuXG4gIHRvZ2dsZUNvdXRyeUNvZGVUb2FzdCh2YWw6YW55KXtcbiAgICBsZXQgaHR0cE9wdGlvbnMgPSB7XG4gICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoe1xuICAgICAgICAnQXV0aC1LZXknOiBcIkJlYXJlciBcIiArIGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdleHRfdG9rZW4nKVxuICAgICAgfSlcbiAgICB9O1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PFtdPihlbnZpcm9ubWVudC5hcGlVcmwgKyAnL3V0aWxpdGllcy9zb2Z0cGhvbmUvY291bnRyeWNvZGUvYWxlcnQvJyArIHZhbCwge30sIGh0dHBPcHRpb25zKTtcbiAgfVxuICBnZXRUb051bWJlcihkaWFsbGVkTm86IHN0cmluZywgaXNvQ29kZTogc3RyaW5nKSB7XG4gICAgY29uc3QgaHR0cE9wdGlvbnMgPSB7XG4gICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLCAnQXV0aC1LZXknOiBcIkJlYXJlciBcIiArIGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdleHRfdG9rZW4nKSB9KSxcbiAgICAgIHBhcmFtczogbmV3IEh0dHBQYXJhbXMoKS5zZXQoJ2lzb0NvZGUnLCBpc29Db2RlKVxuICAgIH07XG4gICAgY29uc3QgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKS5zZXQoJ2lzb0NvZGUnLCBpc29Db2RlKVxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFtdPihlbnZpcm9ubWVudC5hcGlVcmwgKyAnL3V0aWxpdGllcy9zb2Z0cGhvbmUvY2hlY2svY291bnRyeUNvZGUvJyArIGRpYWxsZWRObywgaHR0cE9wdGlvbnMpO1xuICB9IFxuXG59XG4iXX0=
|
|
@@ -1436,12 +1436,13 @@ class TwilioService {
|
|
|
1436
1436
|
this.device.register();
|
|
1437
1437
|
this.device.on('incoming', (call) => {
|
|
1438
1438
|
console.log('Incoming call received:', call);
|
|
1439
|
+
// Store the call in the current call subject
|
|
1439
1440
|
this.currentCall.next(call);
|
|
1440
1441
|
this.callType.next('INCOMING');
|
|
1441
1442
|
this.currentCallState.next('incoming');
|
|
1443
|
+
// Show notification
|
|
1442
1444
|
this.notificationService.showNotification(call);
|
|
1443
|
-
//
|
|
1444
|
-
// call.accept();
|
|
1445
|
+
// Set up call event handlers
|
|
1445
1446
|
call.on('accept', () => {
|
|
1446
1447
|
const callSid = call.parameters['CallSid'];
|
|
1447
1448
|
console.log('Call accepted:', callSid);
|
|
@@ -1452,6 +1453,13 @@ class TwilioService {
|
|
|
1452
1453
|
console.log('Call disconnected:', callSid);
|
|
1453
1454
|
this.currentCall.next(null);
|
|
1454
1455
|
this.currentCallState.next('disconnected');
|
|
1456
|
+
this.callType.next('');
|
|
1457
|
+
});
|
|
1458
|
+
call.on('cancel', () => {
|
|
1459
|
+
console.log('Call cancelled by caller');
|
|
1460
|
+
this.currentCall.next(null);
|
|
1461
|
+
this.currentCallState.next('disconnected');
|
|
1462
|
+
this.callType.next('');
|
|
1455
1463
|
});
|
|
1456
1464
|
});
|
|
1457
1465
|
this.device.on('error', (error) => {
|
|
@@ -2360,7 +2368,7 @@ class DialboxComponent {
|
|
|
2360
2368
|
}
|
|
2361
2369
|
else {
|
|
2362
2370
|
this.isCallInProgress = true;
|
|
2363
|
-
this.isDialpadHidden =
|
|
2371
|
+
this.isDialpadHidden = true;
|
|
2364
2372
|
this.callData.phone = incomingCallData.parameters['From'];
|
|
2365
2373
|
this.getUserInformation(incomingCallData);
|
|
2366
2374
|
this.callData.name = incomingCallData.customParameters.get('name');
|