@smarterplan/ngx-smarterplan-locations 0.2.15 → 0.2.17
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/components/zones/add-audio-zone/add-audio-zone.component.mjs +19 -7
- package/fesm2015/smarterplan-ngx-smarterplan-locations.mjs +18 -6
- package/fesm2015/smarterplan-ngx-smarterplan-locations.mjs.map +1 -1
- package/fesm2020/smarterplan-ngx-smarterplan-locations.mjs +18 -6
- package/fesm2020/smarterplan-ngx-smarterplan-locations.mjs.map +1 -1
- package/lib/components/zones/add-audio-zone/add-audio-zone.component.d.ts +3 -0
- package/package.json +1 -1
|
@@ -75,7 +75,7 @@ export class AddAudioZoneComponent {
|
|
|
75
75
|
}
|
|
76
76
|
else {
|
|
77
77
|
const zoneInput = {
|
|
78
|
-
name: this.chosenAudio.title
|
|
78
|
+
name: `${this.parentZone.name} - ${this.chosenAudio.title}`,
|
|
79
79
|
surface: 0,
|
|
80
80
|
spaceID: this.spaceID,
|
|
81
81
|
layerID: this.audioLayer.id,
|
|
@@ -89,6 +89,7 @@ export class AddAudioZoneComponent {
|
|
|
89
89
|
await this.zoneService
|
|
90
90
|
.create(zoneInput)
|
|
91
91
|
.then(async (zoneCreated) => {
|
|
92
|
+
this.currentAudioZone = zoneCreated;
|
|
92
93
|
await this.removeTakenSweepsFromOtherZones();
|
|
93
94
|
this.updatedZone.emit(zoneCreated.id);
|
|
94
95
|
});
|
|
@@ -167,6 +168,9 @@ export class AddAudioZoneComponent {
|
|
|
167
168
|
if (this.currentAudioZone) {
|
|
168
169
|
this.chosenScansOnPlan = this.currentAudioZone.sweepIDs;
|
|
169
170
|
}
|
|
171
|
+
else {
|
|
172
|
+
this.chosenScansOnPlan = [];
|
|
173
|
+
}
|
|
170
174
|
}
|
|
171
175
|
/**
|
|
172
176
|
* Removes newly selected sweeps for current zone (they are in chosenScansOnPlan) from other audio zones.
|
|
@@ -182,18 +186,26 @@ export class AddAudioZoneComponent {
|
|
|
182
186
|
}
|
|
183
187
|
}));
|
|
184
188
|
}
|
|
189
|
+
/**
|
|
190
|
+
* Delete audio as Comment, all its audio Zones and file from S3 (using lambda function)
|
|
191
|
+
*/
|
|
185
192
|
async onDeleteAudio() {
|
|
186
193
|
const message = this.translate.instant("confirm.deleteAudio");
|
|
187
194
|
if (window.confirm(message)) {
|
|
188
195
|
await this.commentService.deleteComment(this.chosenAudio.id);
|
|
189
196
|
const index = this.audiosForSpace.indexOf(this.chosenAudio);
|
|
190
197
|
this.audiosForSpace.splice(index, 1);
|
|
198
|
+
// delete all zones with this comment audio
|
|
199
|
+
const audioZonesToDelete = this.zones.filter((z) => z.audioID === this.chosenAudio.id);
|
|
200
|
+
await Promise.all(audioZonesToDelete.map(async (zone) => {
|
|
201
|
+
await this.zoneService.deleteZone(zone.id);
|
|
202
|
+
const indexZone = this.audioZones.indexOf(this.currentAudioZone);
|
|
203
|
+
if (indexZone !== -1) {
|
|
204
|
+
this.audioZones.slice(indexZone, 1);
|
|
205
|
+
}
|
|
206
|
+
}));
|
|
207
|
+
this.currentAudioZone = null;
|
|
191
208
|
this.chosenAudio = null;
|
|
192
|
-
if (this.currentAudioZone) {
|
|
193
|
-
await this.zoneService.deleteZone(this.currentAudioZone.id);
|
|
194
|
-
this.audioZones.slice(this.audioZones.indexOf(this.currentAudioZone), 1);
|
|
195
|
-
this.currentAudioZone = null;
|
|
196
|
-
}
|
|
197
209
|
}
|
|
198
210
|
}
|
|
199
211
|
}
|
|
@@ -215,4 +227,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
|
|
|
215
227
|
}], currentAudioZone: [{
|
|
216
228
|
type: Input
|
|
217
229
|
}] } });
|
|
218
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWF1ZGlvLXpvbmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNtYXJ0ZXJwbGFuLWxvY2F0aW9ucy9zcmMvbGliL2NvbXBvbmVudHMvem9uZXMvYWRkLWF1ZGlvLXpvbmUvYWRkLWF1ZGlvLXpvbmUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNtYXJ0ZXJwbGFuLWxvY2F0aW9ucy9zcmMvbGliL2NvbXBvbmVudHMvem9uZXMvYWRkLWF1ZGlvLXpvbmUvYWRkLWF1ZGlvLXpvbmUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQTBCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXBFLE9BQU8sRUFBOEUsV0FBVyxFQUFrRCxNQUFNLG1DQUFtQyxDQUFDOzs7Ozs7OztBQVE1TCxNQUFNLE9BQU8scUJBQXFCO0lBOEM5QixZQUNZLEVBQWUsRUFDZixXQUF3QixFQUN4QixZQUEwQixFQUMxQixXQUE0QixFQUM1QixpQkFBb0MsRUFDcEMsY0FBOEIsRUFDOUIsU0FBMkI7UUFOM0IsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNmLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGdCQUFXLEdBQVgsV0FBVyxDQUFpQjtRQUM1QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQWpEN0IsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBUWhELGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBRXBCLGFB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QUFDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUN6RSxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO2FBQ2hDO1NBQ0o7SUFDTCxDQUFDOztrSEFwUFEscUJBQXFCO3NHQUFyQixxQkFBcUIsK09DWGxDLGd3SUF5RUE7MkZEOURhLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDSSxvQkFBb0I7aVJBTXJCLE9BQU87c0JBQWYsS0FBSztnQkFFSSxXQUFXO3NCQUFwQixNQUFNO2dCQUVFLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUcsS0FBSztzQkFBYixLQUFLO2dCQUVHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBd0JHLGdCQUFnQjtzQkFBeEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwLCBGb3JtQnVpbGRlciwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBab25lU2VydmljZSwgTGF5ZXJTZXJ2aWNlLCBCYXNlVXNlclNlcnZpY2UsIE5hdmlnYXRpb25TZXJ2aWNlLCBMYXllciwgWm9uZSwgQ29tbWVudFR5cGUsIENvbW1lbnRTZXJ2aWNlLCBDb21tZW50LCBmaWx0ZXJVbmlxdWVBcnJheUJ5SUQgfSBmcm9tICdAc21hcnRlcnBsYW4vbmd4LXNtYXJ0ZXJwbGFuLWNvcmUnO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdsaWItYWRkLWF1ZGlvLXpvbmUnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2FkZC1hdWRpby16b25lLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2FkZC1hdWRpby16b25lLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBZGRBdWRpb1pvbmVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICAgIEBJbnB1dCgpIHNwYWNlSUQ6IHN0cmluZztcclxuXHJcbiAgICBAT3V0cHV0KCkgdXBkYXRlZFpvbmUgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgICBASW5wdXQoKSBkZWZhdWx0Wm9uZTogWm9uZTtcclxuXHJcbiAgICBASW5wdXQoKSB6b25lczogWm9uZVtdO1xyXG5cclxuICAgIEBJbnB1dCgpIHBhcmVudFpvbmU6IFpvbmU7XHJcblxyXG4gICAgaXNTdWJtaXR0ZWQgPSBmYWxzZTtcclxuXHJcbiAgICBmcm9tUGxhbjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIGNob3NlblNjYW5zT25QbGFuOiBzdHJpbmdbXSA9IFtdO1xyXG5cclxuICAgIGN1cnJlbnRPcmdJZDogc3RyaW5nO1xyXG5cclxuICAgIGF1ZGlvTGF5ZXI6IExheWVyO1xyXG5cclxuICAgIGNvbW1lbnRGb3JtOiBGb3JtR3JvdXA7XHJcblxyXG4gICAgZmlsZVRvVXBsb2FkOiBGaWxlO1xyXG5cclxuICAgIGF1ZGlvc0ZvclNwYWNlOiBDb21tZW50W107XHJcblxyXG4gICAgaXNBZGRpbmdBdWRpbyA9IGZhbHNlO1xyXG5cclxuICAgIGNob3NlbkF1ZGlvOiBDb21tZW50O1xyXG5cclxuICAgIGF1ZGlvWm9uZXM6IFpvbmVbXTtcclxuXHJcbiAgICBASW5wdXQoKSBjdXJyZW50QXVkaW9ab25lOiBab25lO1xyXG5cclxuICAgIHNjYW5zTW9kaWZpZWQgPSBmYWxzZTtcclxuXHJcbiAgICBvY2N1cGllZFN3ZWVwczogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgICB1bmF2YWlsYWJsZVN3ZWVwczogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgICB3b3JraW5nID0gZmFsc2U7XHJcblxyXG4gICAgYXVkaW9VcGxvYWRlZCA9IGZhbHNlO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxyXG4gICAgICAgIHByaXZhdGUgem9uZVNlcnZpY2U6IFpvbmVTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgbGF5ZXJTZXJ2aWNlOiBMYXllclNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSB1c2VyU2VydmljZTogQmFzZVVzZXJTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgbmF2aWdhdGlvblNlcnZpY2U6IE5hdmlnYXRpb25TZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgY29tbWVudFNlcnZpY2U6IENvbW1lbnRTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgKSB7IH1cclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5jdXJyZW50QXVkaW9ab25lKSB7XHJcbiAgICAgICAgICAgIC8vIHdlIGFyZSBlZGl0aW5nIHpvbmVcclxuICAgICAgICAgICAgdGhpcy5jaG9zZW5BdWRpbyA9IHRoaXMuY3VycmVudEF1ZGlvWm9uZS5hdWRpbztcclxuICAgICAgICAgICAgdGhpcy5jaG9zZW5TY2Fuc09uUGxhbiA9IHRoaXMuY3VycmVudEF1ZGlvWm9uZS5zd2VlcElEcztcclxuICAgICAgICAgICAgdGhpcy5wYXJlbnRab25lID0gdGhpcy5jdXJyZW50QXVkaW9ab25lLnBhcmVudDtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5zZXR1cCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIHNldHVwKCkge1xyXG4gICAgICAgIGNvbnN0IG1pc3Npb24gPSB0aGlzLnVzZXJTZXJ2aWNlLmN1cnJlbnRNaXNzaW9uKHRoaXMuc3BhY2VJRCk7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50T3JnSWQgPSBtaXNzaW9uLm9yZ2FuaXNhdGlvbklEO1xyXG4gICAgICAgIGxldCBsYXllcnMgPSBhd2FpdCB0aGlzLmxheWVyU2VydmljZS5nZXRMYXllckZvck9yZ2FuaXNhdGlvbihcclxuICAgICAgICAgICAgdGhpcy5jdXJyZW50T3JnSWQsXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLmF1ZGlvTGF5ZXIgPSBsYXllcnMuZmluZCgobGF5ZXIpID0+IGxheWVyLm5hbWUgPT09IFwiQVVESU9cIik7XHJcbiAgICAgICAgaWYgKCF0aGlzLmF1ZGlvTGF5ZXIpIHtcclxuICAgICAgICAgICAgLy8gZmlyc3QgdGltZSBjcmVhdGluZyBBdWRpbyBab25lIFxyXG4gICAgICAgICAgICB0aGlzLmF1ZGlvTGF5ZXIgPSBhd2FpdCB0aGlzLmxheWVyU2VydmljZS5jcmVhdGVMYXllckZvck9yZ2FuaXNhdGlvbihcIkFVRElPXCIsIHRoaXMuY3VycmVudE9yZ0lkKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCF0aGlzLnBhcmVudFpvbmUpIHtcclxuICAgICAgICAgICAgdGhpcy5wYXJlbnRab25lID0gdGhpcy5kZWZhdWx0Wm9uZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5hdWRpb1pvbmVzID0gdGhpcy56b25lcy5maWx0ZXIoKHpvbmUpID0+IHpvbmUuYXVkaW9JRCAmJiB6b25lLnBhcmVudElEID09PSB0aGlzLnBhcmVudFpvbmUuaWQpO1xyXG4gICAgICAgIHRoaXMub2NjdXBpZWRTd2VlcHMgPSB0aGlzLmF1ZGlvWm9uZXMuZmxhdE1hcCgoem9uZSkgPT4gem9uZS5zd2VlcElEcyk7XHJcbiAgICAgICAgLy8gdW5hdmFpbGFibGUgc3dlZXBzOiBzd2VlcHMgdGhhdCBkbyBub3QgYmVsb25nIHRvIHBhcmVudCB6b25lXHJcbiAgICAgICAgdGhpcy51bmF2YWlsYWJsZVN3ZWVwcyA9IHRoaXMuZGVmYXVsdFpvbmUuc3dlZXBJRHMuZmlsdGVyKChzd2VlcCkgPT4gIXRoaXMucGFyZW50Wm9uZS5zd2VlcElEcy5pbmNsdWRlcyhzd2VlcCkpO1xyXG4gICAgICAgIGF3YWl0IHRoaXMuZ2V0QXVkaW9zKCk7XHJcbiAgICAgICAgdGhpcy5jb21tZW50Rm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICAgICAgICB0aXRsZTogW251bGwsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICAgICAgICBzcGFjZUlEOiB0aGlzLnNwYWNlSUQsXHJcbiAgICAgICAgICAgIHR5cGU6IENvbW1lbnRUeXBlLkFVRElPLFxyXG4gICAgICAgICAgICBvd25lcklEOiBtaXNzaW9uLmlkLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIG9uU3VibWl0KCkge1xyXG4gICAgICAgIHRoaXMuaXNTdWJtaXR0ZWQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMud29ya2luZyA9IHRydWU7XHJcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudEF1ZGlvWm9uZSkge1xyXG4gICAgICAgICAgICBhd2FpdCB0aGlzLnpvbmVTZXJ2aWNlLnVwZGF0ZVpvbmUoe1xyXG4gICAgICAgICAgICAgICAgaWQ6IHRoaXMuY3VycmVudEF1ZGlvWm9uZS5pZCxcclxuICAgICAgICAgICAgICAgIHN3ZWVwSURzOiB0aGlzLmNob3NlblNjYW5zT25QbGFuLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgYXdhaXQgdGhpcy5yZW1vdmVUYWtlblN3ZWVwc0Zyb21PdGhlclpvbmVzKCk7XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlZFpvbmUuZW1pdCh0aGlzLmN1cnJlbnRBdWRpb1pvbmUuaWQpO1xyXG4gICAgICAgICAgICB0aGlzLndvcmtpbmcgPSBmYWxzZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjb25zdCB6b25lSW5wdXQgPSB7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiB0aGlzLmNob3NlbkF1ZGlvLnRpdGxlLFxyXG4gICAgICAgICAgICAgICAgc3VyZmFjZTogMCxcclxuICAgICAgICAgICAgICAgIHNwYWNlSUQ6IHRoaXMuc3BhY2VJRCxcclxuICAgICAgICAgICAgICAgIGxheWVySUQ6IHRoaXMuYXVkaW9MYXllci5pZCxcclxuICAgICAgICAgICAgICAgIHBhcmVudElEOiB0aGlzLnBhcmVudFpvbmUuaWQsXHJcbiAgICAgICAgICAgICAgICBpc011c2V1bVZpc2l0Wm9uZTogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICBpc011bHRpcGxlRmxvb3Jab25lOiB0aGlzLnBhcmVudFpvbmUuaXNNdWx0aXBsZUZsb29yWm9uZSxcclxuICAgICAgICAgICAgICAgIGF1ZGlvSUQ6IHRoaXMuY2hvc2VuQXVkaW8uaWQsXHJcbiAgICAgICAgICAgIH0gYXMgWm9uZTtcclxuXHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLnNldFN3ZWVwc0FuZE5vZGVGb3Jab25lSW5wdXQoem9uZUlucHV0KTtcclxuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuem9uZVNlcnZpY2VcclxuICAgICAgICAgICAgICAgICAgICAuY3JlYXRlKHpvbmVJbnB1dClcclxuICAgICAgICAgICAgICAgICAgICAudGhlbihhc3luYyAoem9uZUNyZWF0ZWQpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5yZW1vdmVUYWtlblN3ZWVwc0Zyb21PdGhlclpvbmVzKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlZFpvbmUuZW1pdCh6b25lQ3JlYXRlZC5pZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndvcmtpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy53b3JraW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgc2V0U3dlZXBzQW5kTm9kZUZvclpvbmVJbnB1dCh6b25lSW5wdXQ6IFpvbmUpIHtcclxuICAgICAgICBpZiAodGhpcy5jaG9zZW5TY2Fuc09uUGxhbi5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIHpvbmVJbnB1dC5zd2VlcElEcyA9IHRoaXMuY2hvc2VuU2NhbnNPblBsYW47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh6b25lSW5wdXQuc3dlZXBJRHMgJiYgem9uZUlucHV0LnN3ZWVwSURzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgY29uc3QgbmF2Rm9yU3dlZXAgPVxyXG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5uYXZpZ2F0aW9uU2VydmljZS5nZXROYXZpZ2F0aW9uc0Zvck1hdHRlcnBvcnRJREZvclNwYWNlKFxyXG4gICAgICAgICAgICAgICAgICAgIHpvbmVJbnB1dC5zd2VlcElEc1swXSxcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNwYWNlSUQsXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB6b25lSW5wdXQubm9kZUlEcyA9IFtuYXZGb3JTd2VlcFswXS5ub2RlSURdO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBvbkNhbmNlbCgpIHtcclxuICAgICAgICBpZiAodGhpcy5zY2Fuc01vZGlmaWVkKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwiY29uZmlybS5jYW5jZWxFZGl0Wm9uZVwiKTtcclxuICAgICAgICAgICAgaWYgKCF3aW5kb3cuY29uZmlybShtZXNzYWdlKSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuY29tbWVudEZvcm0gPSBudWxsO1xyXG4gICAgICAgIHRoaXMuY2hvc2VuU2NhbnNPblBsYW4gPSBbXTtcclxuICAgICAgICB0aGlzLnVwZGF0ZWRab25lLmVtaXQoZmFsc2UpO1xyXG4gICAgfVxyXG5cclxuICAgIHRvZ2dsZVBsYW4oKSB7XHJcbiAgICAgICAgdGhpcy5mcm9tUGxhbiA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgb25TZWxlY3RlZFN3ZWVwc0Zyb21QbGFuKHN3ZWVwczogc3RyaW5nW10pIHtcclxuICAgICAgICBpZiAoc3dlZXBzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2hvc2VuU2NhbnNPblBsYW4gPSBzd2VlcHM7XHJcbiAgICAgICAgICAgIHRoaXMuc2NhbnNNb2RpZmllZCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZnJvbVBsYW4gPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBoYW5kbGVGaWxlSW5wdXQoZXZlbnQ6IEV2ZW50KSB7XHJcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcbiAgICAgICAgdGhpcy5maWxlVG9VcGxvYWQgPSAodGFyZ2V0LmZpbGVzIGFzIEZpbGVMaXN0KVswXTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBvblVwbG9hZEF1ZGlvKCkge1xyXG4gICAgICAgIHRoaXMud29ya2luZyA9IHRydWU7XHJcbiAgICAgICAgY29uc3QgY29tbWVudElucHV0ID0gdGhpcy5jb21tZW50Rm9ybS52YWx1ZTtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBjb25zdCBuZXdBdWRpbyA9IGF3YWl0IHRoaXMuY29tbWVudFNlcnZpY2UuY3JlYXRlQ29tbWVudFdpdGhGaWxlKFxyXG4gICAgICAgICAgICAgICAgY29tbWVudElucHV0LFxyXG4gICAgICAgICAgICAgICAgdGhpcy5maWxlVG9VcGxvYWQsXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIHRoaXMuYXVkaW9zRm9yU3BhY2UucHVzaChuZXdBdWRpbyk7XHJcbiAgICAgICAgICAgIHRoaXMuaXNBZGRpbmdBdWRpbyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLndvcmtpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5hdWRpb1VwbG9hZGVkID0gdHJ1ZTtcclxuICAgICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgIHRoaXMud29ya2luZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLmF1ZGlvVXBsb2FkZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBnZXRBdWRpb3MoKSB7XHJcbiAgICAgICAgY29uc3QgYXR0YWNobWVudHMgPSBhd2FpdCB0aGlzLmNvbW1lbnRTZXJ2aWNlLmdldENvbW1lbnRzQnlTcGFjZUlEKHRoaXMuc3BhY2VJRCk7XHJcbiAgICAgICAgaWYgKGF0dGFjaG1lbnRzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYXVkaW9zRm9yU3BhY2UgPSBhdHRhY2htZW50cy5maWx0ZXIoKGF0dGFjaG1lbnQpID0+IGF0dGFjaG1lbnQudHlwZSA9PT0gQ29tbWVudFR5cGUuQVVESU8pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBvbkNhbmNlbEF1ZGlvVXBsb2FkKCkge1xyXG4gICAgICAgIHRoaXMuY29tbWVudEZvcm0gPSBudWxsO1xyXG4gICAgICAgIHRoaXMuaXNBZGRpbmdBdWRpbyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZmlsZVRvVXBsb2FkID0gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBvbkNob29zZUF1ZGlvKGF1ZGlvOiBDb21tZW50KSB7XHJcbiAgICAgICAgdGhpcy5jaG9zZW5BdWRpbyA9IGF1ZGlvO1xyXG4gICAgICAgIHRoaXMuY3VycmVudEF1ZGlvWm9uZSA9IHRoaXMuYXVkaW9ab25lcy5maW5kKCh6b25lKSA9PiB6b25lLmF1ZGlvSUQgPT09IHRoaXMuY2hvc2VuQXVkaW8uaWQpO1xyXG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRBdWRpb1pvbmUpIHtcclxuICAgICAgICAgICAgdGhpcy5jaG9zZW5TY2Fuc09uUGxhbiA9IHRoaXMuY3VycmVudEF1ZGlvWm9uZS5zd2VlcElEcztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZW1vdmVzIG5ld2x5IHNlbGVjdGVkIHN3ZWVwcyBmb3IgY3VycmVudCB6b25lICh0aGV5IGFyZSBpbiBjaG9zZW5TY2Fuc09uUGxhbikgZnJvbSBvdGhlciBhdWRpbyB6b25lcy4gXHJcbiAgICAgKiBSdWxlOiBvbmUgc3dlZXAgPSBvbmUgYXVkaW8uXHJcbiAgICAgKi9cclxuICAgIGFzeW5jIHJlbW92ZVRha2VuU3dlZXBzRnJvbU90aGVyWm9uZXMoKSB7XHJcbiAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwodGhpcy5hdWRpb1pvbmVzLm1hcChhc3luYyAoem9uZSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoem9uZS5pZCAhPT0gdGhpcy5jdXJyZW50QXVkaW9ab25lLmlkKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdTd2VlcHMgPSB6b25lLnN3ZWVwSURzLmZpbHRlcigoc3dlZXBJRCkgPT4gIXRoaXMuY2hvc2VuU2NhbnNPblBsYW4uaW5jbHVkZXMoc3dlZXBJRCkpO1xyXG4gICAgICAgICAgICAgICAgaWYgKG5ld1N3ZWVwcy5sZW5ndGggIT09IHpvbmUuc3dlZXBJRHMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy56b25lU2VydmljZS51cGRhdGVab25lKHsgaWQ6IHpvbmUuaWQsIHN3ZWVwSURzOiBuZXdTd2VlcHMgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KSk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgb25EZWxldGVBdWRpbygpIHtcclxuICAgICAgICBjb25zdCBtZXNzYWdlID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudChcImNvbmZpcm0uZGVsZXRlQXVkaW9cIik7XHJcbiAgICAgICAgaWYgKHdpbmRvdy5jb25maXJtKG1lc3NhZ2UpKSB7XHJcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuY29tbWVudFNlcnZpY2UuZGVsZXRlQ29tbWVudCh0aGlzLmNob3NlbkF1ZGlvLmlkKTtcclxuICAgICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmF1ZGlvc0ZvclNwYWNlLmluZGV4T2YodGhpcy5jaG9zZW5BdWRpbyk7XHJcbiAgICAgICAgICAgIHRoaXMuYXVkaW9zRm9yU3BhY2Uuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICAgICAgdGhpcy5jaG9zZW5BdWRpbyA9IG51bGw7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmN1cnJlbnRBdWRpb1pvbmUpIHtcclxuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuem9uZVNlcnZpY2UuZGVsZXRlWm9uZSh0aGlzLmN1cnJlbnRBdWRpb1pvbmUuaWQpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5hdWRpb1pvbmVzLnNsaWNlKHRoaXMuYXVkaW9ab25lcy5pbmRleE9mKHRoaXMuY3VycmVudEF1ZGlvWm9uZSksIDEpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50QXVkaW9ab25lID0gbnVsbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cIm1haW4tY29udGFpbmVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTYgY29sLW1kLTYgY29sLXNtLTdcIiAqbmdJZj1cImlzQWRkaW5nQXVkaW9cIj5cclxuICAgICAgICA8Zm9ybSAobmdTdWJtaXQpPVwib25VcGxvYWRBdWRpbygpXCIgW2Zvcm1Hcm91cF09XCJjb21tZW50Rm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTMgcm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY29sLXNtLTIgY29sLWZvcm0tbGFiZWxcIj57eydOYW1lJyB8IHRyYW5zbGF0ZX19ICo8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tMTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiByZXF1aXJlZCBmb3JtQ29udHJvbE5hbWU9XCJ0aXRsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJmaWxlXCIgY2xhc3M9XCJidG4gYnRuLWxhYmVsLWZpbGUgcm91bmRlZC1waWxsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiZmlsZVwiIGlkPVwiZmlsZVwiIChjaGFuZ2UpPVwiaGFuZGxlRmlsZUlucHV0KCRldmVudClcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eydDaG9vc2UgRmlsZScgfCB0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPHAgKm5nSWY9XCJmaWxlVG9VcGxvYWRcIj57eyBmaWxlVG9VcGxvYWQubmFtZX19PC9wPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXJcIiAqbmdJZj1cIndvcmtpbmdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGliLWxvYWRlcj48L2xpYi1sb2FkZXI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSByb3VuZGVkLXBpbGwgbWUtMlwiIFtkaXNhYmxlZF09XCJmcm9tUGxhbiB8fCB3b3JraW5nXCI+e3snVXBsb2FkJyB8IHRyYW5zbGF0ZX19PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9uQ2FuY2VsQXVkaW9VcGxvYWQoKVwiIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXByaW1hcnkgcm91bmRlZC1waWxsIG1lLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3snQ2FuY2VsJyB8IHRyYW5zbGF0ZX19PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Zvcm0+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxuZ2ItYWxlcnQgdHlwZT1cInN1Y2Nlc3NcIiBbZGlzbWlzc2libGVdPVwidHJ1ZVwiICpuZ0lmPVwiIXdvcmtpbmcgJiYgYXVkaW9VcGxvYWRlZFwiIChjbG9zZWQpPVwiYXVkaW9VcGxvYWRlZD1mYWxzZVwiPlxyXG4gICAgICAgIHt7ICdhZGQtYXVkaW8uc3VjY2VzcycgfCB0cmFuc2xhdGUgfX0gIVxyXG4gICAgPC9uZ2ItYWxlcnQ+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLTdcIiAqbmdJZj1cIiFpc0FkZGluZ0F1ZGlvICYmIGF1ZGlvc0ZvclNwYWNlXCI+XHJcbiAgICAgICBcclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW5zdHJ1Y3Rpb24tcm93XCIgPlxyXG4gICAgICAgICAgICA8cD4xLjwvcD5cclxuICAgICAgICAgICAgPGRpdiBuZ2JEcm9wZG93biBjbGFzcz1cImQtaW5saW5lLWJsb2NrXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tbGFiZWwtZmlsZSByb3VuZGVkLXBpbGxcIiBpZD1cImRyb3Bkb3duQmFzaWMxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5nYkRyb3Bkb3duVG9nZ2xlPnt7Y2hvc2VuQXVkaW8gP1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNob3NlbkF1ZGlvLnRpdGxlIDogKCdjaG9vc2UtYXVkaW8nIHwgdHJhbnNsYXRlKSB9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IG5nYkRyb3Bkb3duTWVudSBhcmlhLWxhYmVsbGVkYnk9XCJkcm9wZG93bkJhc2ljMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbmdiRHJvcGRvd25JdGVtICpuZ0Zvcj1cImxldCBhdWRpbyBvZiBhdWRpb3NGb3JTcGFjZVwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkNob29zZUF1ZGlvKGF1ZGlvKVwiPnt7IGF1ZGlvLnRpdGxlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxwPnt7J29yJyB8IHRyYW5zbGF0ZX19PC9wPlxyXG4gICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJpc0FkZGluZ0F1ZGlvPXRydWVcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSByb3VuZGVkLXBpbGwgbWUtMlwiPiB7eydhZGQtYXVkaW8uYWRkJyB8IHRyYW5zbGF0ZX19PC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImluc3RydWN0aW9uLXJvd1wiPlxyXG4gICAgICAgICAgICA8cD4yLjwvcD5cclxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLW91dGxpbmUtcHJpbWFyeSByb3VuZGVkLXBpbGwgbWUtMlwiIChjbGljayk9XCJ0b2dnbGVQbGFuKClcIiBbZGlzYWJsZWRdPVwiIWNob3NlbkF1ZGlvXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3snQ2hvb3NlIHNjYW4gcG9pbnRzIG9uIHBsYW4nIHwgdHJhbnNsYXRlfX08L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXByaW1hcnkgcm91bmRlZC1waWxsIG1lLTJcIiAoY2xpY2spPVwib25EZWxldGVBdWRpbygpXCIgW2Rpc2FibGVkXT1cIiFjaG9zZW5BdWRpb1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eydEZWxldGUgYXVkaW8nIHwgdHJhbnNsYXRlfX08L2J1dHRvbj5cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImluc3RydWN0aW9uLXJvd1wiICpuZ0lmPVwiY2hvc2VuQXVkaW9cIj5cclxuICAgICAgICAgICAgPHA+e3sgY2hvc2VuU2NhbnNPblBsYW4ubGVuZ3RoIH19IHt7J3NjYW5zLWNob3Nlbi1hdWRpbycgfCB0cmFuc2xhdGV9fTwvcD5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm10LTNcIj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSByb3VuZGVkLXBpbGwgbWUtMlwiIFtkaXNhYmxlZF09XCJmcm9tUGxhbiB8fCAhdGhpcy5jaG9zZW5BdWRpb1wiIChjbGljayk9XCJvblN1Ym1pdCgpXCI+e3snU2F2ZScgfCB0cmFuc2xhdGV9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJvbkNhbmNlbCgpXCIgY2xhc3M9XCJidG4gYnRuLW91dGxpbmUtcHJpbWFyeSByb3VuZGVkLXBpbGwgbWUtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7J0NhbmNlbCcgfCB0cmFuc2xhdGV9fTwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZWRpdC1wbGFuXCIgKm5nSWY9XCJmcm9tUGxhblwiPlxyXG4gICAgICAgIDxsaWItc3dlZXAtcGxhbi1zZWxlY3Rpb24gc3R5bGU9XCJ3aWR0aDogMTAwJTtcIiBbbmF2SURzWm9uZUVkaXRdPVwiY2hvc2VuU2NhbnNPblBsYW5cIiBbc3BhY2VJRF09XCJzcGFjZUlEXCIgXHJcbiAgICAgICAgW29jY3VwaWVkU3dlZXBzXT1cIm9jY3VwaWVkU3dlZXBzXCIgW3VuYXZhaWxhYmxlU3dlZXBzXT1cInVuYXZhaWxhYmxlU3dlZXBzXCJcclxuICAgICAgICAoc3dlZXBzU2VsZWN0ZWQpPVwib25TZWxlY3RlZFN3ZWVwc0Zyb21QbGFuKCRldmVudClcIj48L2xpYi1zd2VlcC1wbGFuLXNlbGVjdGlvbj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|
|
230
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWF1ZGlvLXpvbmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNtYXJ0ZXJwbGFuLWxvY2F0aW9ucy9zcmMvbGliL2NvbXBvbmVudHMvem9uZXMvYWRkLWF1ZGlvLXpvbmUvYWRkLWF1ZGlvLXpvbmUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNtYXJ0ZXJwbGFuLWxvY2F0aW9ucy9zcmMvbGliL2NvbXBvbmVudHMvem9uZXMvYWRkLWF1ZGlvLXpvbmUvYWRkLWF1ZGlvLXpvbmUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQTBCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXBFLE9BQU8sRUFBOEUsV0FBVyxFQUFrRCxNQUFNLG1DQUFtQyxDQUFDOzs7Ozs7OztBQVE1TCxNQUFNLE9BQU8scUJBQXFCO0lBOEM5QixZQUNZLEVBQWUsRUFDZixXQUF3QixFQUN4QixZQUEwQixFQUMxQixXQUE0QixFQUM1QixpQkFBb0MsRUFDcEMsY0FBOEIsRUFDOUIsU0FBMkI7UUFOM0IsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNmLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGdCQUFXLEdBQVgsV0FBVyxDQUFpQjtRQUM1QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQWpEN0IsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBUWhELGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBRXBCLGFB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QUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZGLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFO2dCQUNwRCxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDM0MsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7Z0JBQ2pFLElBQUksU0FBUyxLQUFLLENBQUMsQ0FBQyxFQUFFO29CQUNsQixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUM7aUJBQ3ZDO1lBQ0wsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNKLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7WUFDN0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7U0FDM0I7SUFDTCxDQUFDOztrSEEvUFEscUJBQXFCO3NHQUFyQixxQkFBcUIsK09DWGxDLGd3SUF5RUE7MkZEOURhLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDSSxvQkFBb0I7aVJBTXJCLE9BQU87c0JBQWYsS0FBSztnQkFFSSxXQUFXO3NCQUFwQixNQUFNO2dCQUVFLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUcsS0FBSztzQkFBYixLQUFLO2dCQUVHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBd0JHLGdCQUFnQjtzQkFBeEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwLCBGb3JtQnVpbGRlciwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBab25lU2VydmljZSwgTGF5ZXJTZXJ2aWNlLCBCYXNlVXNlclNlcnZpY2UsIE5hdmlnYXRpb25TZXJ2aWNlLCBMYXllciwgWm9uZSwgQ29tbWVudFR5cGUsIENvbW1lbnRTZXJ2aWNlLCBDb21tZW50LCBmaWx0ZXJVbmlxdWVBcnJheUJ5SUQgfSBmcm9tICdAc21hcnRlcnBsYW4vbmd4LXNtYXJ0ZXJwbGFuLWNvcmUnO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdsaWItYWRkLWF1ZGlvLXpvbmUnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2FkZC1hdWRpby16b25lLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2FkZC1hdWRpby16b25lLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBZGRBdWRpb1pvbmVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICAgIEBJbnB1dCgpIHNwYWNlSUQ6IHN0cmluZztcclxuXHJcbiAgICBAT3V0cHV0KCkgdXBkYXRlZFpvbmUgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgICBASW5wdXQoKSBkZWZhdWx0Wm9uZTogWm9uZTtcclxuXHJcbiAgICBASW5wdXQoKSB6b25lczogWm9uZVtdO1xyXG5cclxuICAgIEBJbnB1dCgpIHBhcmVudFpvbmU6IFpvbmU7XHJcblxyXG4gICAgaXNTdWJtaXR0ZWQgPSBmYWxzZTtcclxuXHJcbiAgICBmcm9tUGxhbjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIGNob3NlblNjYW5zT25QbGFuOiBzdHJpbmdbXSA9IFtdO1xyXG5cclxuICAgIGN1cnJlbnRPcmdJZDogc3RyaW5nO1xyXG5cclxuICAgIGF1ZGlvTGF5ZXI6IExheWVyO1xyXG5cclxuICAgIGNvbW1lbnRGb3JtOiBGb3JtR3JvdXA7XHJcblxyXG4gICAgZmlsZVRvVXBsb2FkOiBGaWxlO1xyXG5cclxuICAgIGF1ZGlvc0ZvclNwYWNlOiBDb21tZW50W107XHJcblxyXG4gICAgaXNBZGRpbmdBdWRpbyA9IGZhbHNlO1xyXG5cclxuICAgIGNob3NlbkF1ZGlvOiBDb21tZW50O1xyXG5cclxuICAgIGF1ZGlvWm9uZXM6IFpvbmVbXTtcclxuXHJcbiAgICBASW5wdXQoKSBjdXJyZW50QXVkaW9ab25lOiBab25lO1xyXG5cclxuICAgIHNjYW5zTW9kaWZpZWQgPSBmYWxzZTtcclxuXHJcbiAgICBvY2N1cGllZFN3ZWVwczogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgICB1bmF2YWlsYWJsZVN3ZWVwczogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgICB3b3JraW5nID0gZmFsc2U7XHJcblxyXG4gICAgYXVkaW9VcGxvYWRlZCA9IGZhbHNlO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxyXG4gICAgICAgIHByaXZhdGUgem9uZVNlcnZpY2U6IFpvbmVTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgbGF5ZXJTZXJ2aWNlOiBMYXllclNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSB1c2VyU2VydmljZTogQmFzZVVzZXJTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgbmF2aWdhdGlvblNlcnZpY2U6IE5hdmlnYXRpb25TZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgY29tbWVudFNlcnZpY2U6IENvbW1lbnRTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgKSB7IH1cclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5jdXJyZW50QXVkaW9ab25lKSB7XHJcbiAgICAgICAgICAgIC8vIHdlIGFyZSBlZGl0aW5nIHpvbmVcclxuICAgICAgICAgICAgdGhpcy5jaG9zZW5BdWRpbyA9IHRoaXMuY3VycmVudEF1ZGlvWm9uZS5hdWRpbztcclxuICAgICAgICAgICAgdGhpcy5jaG9zZW5TY2Fuc09uUGxhbiA9IHRoaXMuY3VycmVudEF1ZGlvWm9uZS5zd2VlcElEcztcclxuICAgICAgICAgICAgdGhpcy5wYXJlbnRab25lID0gdGhpcy5jdXJyZW50QXVkaW9ab25lLnBhcmVudDtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5zZXR1cCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIHNldHVwKCkge1xyXG4gICAgICAgIGNvbnN0IG1pc3Npb24gPSB0aGlzLnVzZXJTZXJ2aWNlLmN1cnJlbnRNaXNzaW9uKHRoaXMuc3BhY2VJRCk7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50T3JnSWQgPSBtaXNzaW9uLm9yZ2FuaXNhdGlvbklEO1xyXG4gICAgICAgIGxldCBsYXllcnMgPSBhd2FpdCB0aGlzLmxheWVyU2VydmljZS5nZXRMYXllckZvck9yZ2FuaXNhdGlvbihcclxuICAgICAgICAgICAgdGhpcy5jdXJyZW50T3JnSWQsXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLmF1ZGlvTGF5ZXIgPSBsYXllcnMuZmluZCgobGF5ZXIpID0+IGxheWVyLm5hbWUgPT09IFwiQVVESU9cIik7XHJcbiAgICAgICAgaWYgKCF0aGlzLmF1ZGlvTGF5ZXIpIHtcclxuICAgICAgICAgICAgLy8gZmlyc3QgdGltZSBjcmVhdGluZyBBdWRpbyBab25lIFxyXG4gICAgICAgICAgICB0aGlzLmF1ZGlvTGF5ZXIgPSBhd2FpdCB0aGlzLmxheWVyU2VydmljZS5jcmVhdGVMYXllckZvck9yZ2FuaXNhdGlvbihcIkFVRElPXCIsIHRoaXMuY3VycmVudE9yZ0lkKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCF0aGlzLnBhcmVudFpvbmUpIHtcclxuICAgICAgICAgICAgdGhpcy5wYXJlbnRab25lID0gdGhpcy5kZWZhdWx0Wm9uZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5hdWRpb1pvbmVzID0gdGhpcy56b25lcy5maWx0ZXIoKHpvbmUpID0+IHpvbmUuYXVkaW9JRCAmJiB6b25lLnBhcmVudElEID09PSB0aGlzLnBhcmVudFpvbmUuaWQpO1xyXG4gICAgICAgIHRoaXMub2NjdXBpZWRTd2VlcHMgPSB0aGlzLmF1ZGlvWm9uZXMuZmxhdE1hcCgoem9uZSkgPT4gem9uZS5zd2VlcElEcyk7XHJcbiAgICAgICAgLy8gdW5hdmFpbGFibGUgc3dlZXBzOiBzd2VlcHMgdGhhdCBkbyBub3QgYmVsb25nIHRvIHBhcmVudCB6b25lXHJcbiAgICAgICAgdGhpcy51bmF2YWlsYWJsZVN3ZWVwcyA9IHRoaXMuZGVmYXVsdFpvbmUuc3dlZXBJRHMuZmlsdGVyKChzd2VlcCkgPT4gIXRoaXMucGFyZW50Wm9uZS5zd2VlcElEcy5pbmNsdWRlcyhzd2VlcCkpO1xyXG4gICAgICAgIGF3YWl0IHRoaXMuZ2V0QXVkaW9zKCk7XHJcbiAgICAgICAgdGhpcy5jb21tZW50Rm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICAgICAgICB0aXRsZTogW251bGwsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICAgICAgICBzcGFjZUlEOiB0aGlzLnNwYWNlSUQsXHJcbiAgICAgICAgICAgIHR5cGU6IENvbW1lbnRUeXBlLkFVRElPLFxyXG4gICAgICAgICAgICBvd25lcklEOiBtaXNzaW9uLmlkLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIG9uU3VibWl0KCkge1xyXG4gICAgICAgIHRoaXMuaXNTdWJtaXR0ZWQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMud29ya2luZyA9IHRydWU7XHJcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudEF1ZGlvWm9uZSkge1xyXG4gICAgICAgICAgICBhd2FpdCB0aGlzLnpvbmVTZXJ2aWNlLnVwZGF0ZVpvbmUoe1xyXG4gICAgICAgICAgICAgICAgaWQ6IHRoaXMuY3VycmVudEF1ZGlvWm9uZS5pZCxcclxuICAgICAgICAgICAgICAgIHN3ZWVwSURzOiB0aGlzLmNob3NlblNjYW5zT25QbGFuLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgYXdhaXQgdGhpcy5yZW1vdmVUYWtlblN3ZWVwc0Zyb21PdGhlclpvbmVzKCk7XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlZFpvbmUuZW1pdCh0aGlzLmN1cnJlbnRBdWRpb1pvbmUuaWQpO1xyXG4gICAgICAgICAgICB0aGlzLndvcmtpbmcgPSBmYWxzZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjb25zdCB6b25lSW5wdXQgPSB7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiBgJHt0aGlzLnBhcmVudFpvbmUubmFtZX0gLSAke3RoaXMuY2hvc2VuQXVkaW8udGl0bGV9YCxcclxuICAgICAgICAgICAgICAgIHN1cmZhY2U6IDAsXHJcbiAgICAgICAgICAgICAgICBzcGFjZUlEOiB0aGlzLnNwYWNlSUQsXHJcbiAgICAgICAgICAgICAgICBsYXllcklEOiB0aGlzLmF1ZGlvTGF5ZXIuaWQsXHJcbiAgICAgICAgICAgICAgICBwYXJlbnRJRDogdGhpcy5wYXJlbnRab25lLmlkLFxyXG4gICAgICAgICAgICAgICAgaXNNdXNldW1WaXNpdFpvbmU6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgaXNNdWx0aXBsZUZsb29yWm9uZTogdGhpcy5wYXJlbnRab25lLmlzTXVsdGlwbGVGbG9vclpvbmUsXHJcbiAgICAgICAgICAgICAgICBhdWRpb0lEOiB0aGlzLmNob3NlbkF1ZGlvLmlkLFxyXG4gICAgICAgICAgICB9IGFzIFpvbmU7XHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLnNldFN3ZWVwc0FuZE5vZGVGb3Jab25lSW5wdXQoem9uZUlucHV0KTtcclxuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuem9uZVNlcnZpY2VcclxuICAgICAgICAgICAgICAgICAgICAuY3JlYXRlKHpvbmVJbnB1dClcclxuICAgICAgICAgICAgICAgICAgICAudGhlbihhc3luYyAoem9uZUNyZWF0ZWQpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50QXVkaW9ab25lID0gem9uZUNyZWF0ZWQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMucmVtb3ZlVGFrZW5Td2VlcHNGcm9tT3RoZXJab25lcygpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZWRab25lLmVtaXQoem9uZUNyZWF0ZWQuaWQpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy53b3JraW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcclxuICAgICAgICAgICAgICAgIHRoaXMud29ya2luZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIHNldFN3ZWVwc0FuZE5vZGVGb3Jab25lSW5wdXQoem9uZUlucHV0OiBab25lKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuY2hvc2VuU2NhbnNPblBsYW4ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICB6b25lSW5wdXQuc3dlZXBJRHMgPSB0aGlzLmNob3NlblNjYW5zT25QbGFuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoem9uZUlucHV0LnN3ZWVwSURzICYmIHpvbmVJbnB1dC5zd2VlcElEcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG5hdkZvclN3ZWVwID1cclxuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMubmF2aWdhdGlvblNlcnZpY2UuZ2V0TmF2aWdhdGlvbnNGb3JNYXR0ZXJwb3J0SURGb3JTcGFjZShcclxuICAgICAgICAgICAgICAgICAgICB6b25lSW5wdXQuc3dlZXBJRHNbMF0sXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zcGFjZUlELFxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgem9uZUlucHV0Lm5vZGVJRHMgPSBbbmF2Rm9yU3dlZXBbMF0ubm9kZUlEXTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgb25DYW5jZWwoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc2NhbnNNb2RpZmllZCkge1xyXG4gICAgICAgICAgICBjb25zdCBtZXNzYWdlID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudChcImNvbmZpcm0uY2FuY2VsRWRpdFpvbmVcIik7XHJcbiAgICAgICAgICAgIGlmICghd2luZG93LmNvbmZpcm0obWVzc2FnZSkpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmNvbW1lbnRGb3JtID0gbnVsbDtcclxuICAgICAgICB0aGlzLmNob3NlblNjYW5zT25QbGFuID0gW107XHJcbiAgICAgICAgdGhpcy51cGRhdGVkWm9uZS5lbWl0KGZhbHNlKTtcclxuICAgIH1cclxuXHJcbiAgICB0b2dnbGVQbGFuKCkge1xyXG4gICAgICAgIHRoaXMuZnJvbVBsYW4gPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIG9uU2VsZWN0ZWRTd2VlcHNGcm9tUGxhbihzd2VlcHM6IHN0cmluZ1tdKSB7XHJcbiAgICAgICAgaWYgKHN3ZWVwcykge1xyXG4gICAgICAgICAgICB0aGlzLmNob3NlblNjYW5zT25QbGFuID0gc3dlZXBzO1xyXG4gICAgICAgICAgICB0aGlzLnNjYW5zTW9kaWZpZWQgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmZyb21QbGFuID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgaGFuZGxlRmlsZUlucHV0KGV2ZW50OiBFdmVudCkge1xyXG4gICAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xyXG4gICAgICAgIHRoaXMuZmlsZVRvVXBsb2FkID0gKHRhcmdldC5maWxlcyBhcyBGaWxlTGlzdClbMF07XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgb25VcGxvYWRBdWRpbygpIHtcclxuICAgICAgICB0aGlzLndvcmtpbmcgPSB0cnVlO1xyXG4gICAgICAgIGNvbnN0IGNvbW1lbnRJbnB1dCA9IHRoaXMuY29tbWVudEZvcm0udmFsdWU7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgY29uc3QgbmV3QXVkaW8gPSBhd2FpdCB0aGlzLmNvbW1lbnRTZXJ2aWNlLmNyZWF0ZUNvbW1lbnRXaXRoRmlsZShcclxuICAgICAgICAgICAgICAgIGNvbW1lbnRJbnB1dCxcclxuICAgICAgICAgICAgICAgIHRoaXMuZmlsZVRvVXBsb2FkLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB0aGlzLmF1ZGlvc0ZvclNwYWNlLnB1c2gobmV3QXVkaW8pO1xyXG4gICAgICAgICAgICB0aGlzLmlzQWRkaW5nQXVkaW8gPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy53b3JraW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuYXVkaW9VcGxvYWRlZCA9IHRydWU7XHJcbiAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICB0aGlzLndvcmtpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5hdWRpb1VwbG9hZGVkID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgZ2V0QXVkaW9zKCkge1xyXG4gICAgICAgIGNvbnN0IGF0dGFjaG1lbnRzID0gYXdhaXQgdGhpcy5jb21tZW50U2VydmljZS5nZXRDb21tZW50c0J5U3BhY2VJRCh0aGlzLnNwYWNlSUQpO1xyXG4gICAgICAgIGlmIChhdHRhY2htZW50cykge1xyXG4gICAgICAgICAgICB0aGlzLmF1ZGlvc0ZvclNwYWNlID0gYXR0YWNobWVudHMuZmlsdGVyKChhdHRhY2htZW50KSA9PiBhdHRhY2htZW50LnR5cGUgPT09IENvbW1lbnRUeXBlLkFVRElPKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgb25DYW5jZWxBdWRpb1VwbG9hZCgpIHtcclxuICAgICAgICB0aGlzLmNvbW1lbnRGb3JtID0gbnVsbDtcclxuICAgICAgICB0aGlzLmlzQWRkaW5nQXVkaW8gPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmZpbGVUb1VwbG9hZCA9IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgb25DaG9vc2VBdWRpbyhhdWRpbzogQ29tbWVudCkge1xyXG4gICAgICAgIHRoaXMuY2hvc2VuQXVkaW8gPSBhdWRpbztcclxuICAgICAgICB0aGlzLmN1cnJlbnRBdWRpb1pvbmUgPSB0aGlzLmF1ZGlvWm9uZXMuZmluZCgoem9uZSkgPT4gem9uZS5hdWRpb0lEID09PSB0aGlzLmNob3NlbkF1ZGlvLmlkKTtcclxuICAgICAgICBpZiAodGhpcy5jdXJyZW50QXVkaW9ab25lKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2hvc2VuU2NhbnNPblBsYW4gPSB0aGlzLmN1cnJlbnRBdWRpb1pvbmUuc3dlZXBJRHM7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5jaG9zZW5TY2Fuc09uUGxhbiA9IFtdO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlbW92ZXMgbmV3bHkgc2VsZWN0ZWQgc3dlZXBzIGZvciBjdXJyZW50IHpvbmUgKHRoZXkgYXJlIGluIGNob3NlblNjYW5zT25QbGFuKSBmcm9tIG90aGVyIGF1ZGlvIHpvbmVzLiBcclxuICAgICAqIFJ1bGU6IG9uZSBzd2VlcCA9IG9uZSBhdWRpby5cclxuICAgICAqL1xyXG4gICAgYXN5bmMgcmVtb3ZlVGFrZW5Td2VlcHNGcm9tT3RoZXJab25lcygpIHtcclxuICAgICAgICBhd2FpdCBQcm9taXNlLmFsbCh0aGlzLmF1ZGlvWm9uZXMubWFwKGFzeW5jICh6b25lKSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh6b25lLmlkICE9PSB0aGlzLmN1cnJlbnRBdWRpb1pvbmUuaWQpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG5ld1N3ZWVwcyA9IHpvbmUuc3dlZXBJRHMuZmlsdGVyKChzd2VlcElEKSA9PiAhdGhpcy5jaG9zZW5TY2Fuc09uUGxhbi5pbmNsdWRlcyhzd2VlcElEKSk7XHJcbiAgICAgICAgICAgICAgICBpZiAobmV3U3dlZXBzLmxlbmd0aCAhPT0gem9uZS5zd2VlcElEcy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLnpvbmVTZXJ2aWNlLnVwZGF0ZVpvbmUoeyBpZDogem9uZS5pZCwgc3dlZXBJRHM6IG5ld1N3ZWVwcyB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIERlbGV0ZSBhdWRpbyBhcyBDb21tZW50LCBhbGwgaXRzIGF1ZGlvIFpvbmVzIGFuZCBmaWxlIGZyb20gUzMgKHVzaW5nIGxhbWJkYSBmdW5jdGlvbilcclxuICAgICAqL1xyXG4gICAgYXN5bmMgb25EZWxldGVBdWRpbygpIHtcclxuICAgICAgICBjb25zdCBtZXNzYWdlID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudChcImNvbmZpcm0uZGVsZXRlQXVkaW9cIik7XHJcbiAgICAgICAgaWYgKHdpbmRvdy5jb25maXJtKG1lc3NhZ2UpKSB7XHJcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuY29tbWVudFNlcnZpY2UuZGVsZXRlQ29tbWVudCh0aGlzLmNob3NlbkF1ZGlvLmlkKTtcclxuICAgICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmF1ZGlvc0ZvclNwYWNlLmluZGV4T2YodGhpcy5jaG9zZW5BdWRpbyk7XHJcbiAgICAgICAgICAgIHRoaXMuYXVkaW9zRm9yU3BhY2Uuc3BsaWNlKGluZGV4LCAxKTtcclxuXHJcbiAgICAgICAgICAgIC8vIGRlbGV0ZSBhbGwgem9uZXMgd2l0aCB0aGlzIGNvbW1lbnQgYXVkaW9cclxuICAgICAgICAgICAgY29uc3QgYXVkaW9ab25lc1RvRGVsZXRlID0gdGhpcy56b25lcy5maWx0ZXIoKHopID0+IHouYXVkaW9JRCA9PT0gdGhpcy5jaG9zZW5BdWRpby5pZCk7XHJcbiAgICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKGF1ZGlvWm9uZXNUb0RlbGV0ZS5tYXAoYXN5bmMgKHpvbmUpID0+IHtcclxuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuem9uZVNlcnZpY2UuZGVsZXRlWm9uZSh6b25lLmlkKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGluZGV4Wm9uZSA9IHRoaXMuYXVkaW9ab25lcy5pbmRleE9mKHRoaXMuY3VycmVudEF1ZGlvWm9uZSk7XHJcbiAgICAgICAgICAgICAgICBpZiAoaW5kZXhab25lICE9PSAtMSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYXVkaW9ab25lcy5zbGljZShpbmRleFpvbmUsIDEpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KSk7XHJcbiAgICAgICAgICAgIHRoaXMuY3VycmVudEF1ZGlvWm9uZSA9IG51bGw7XHJcbiAgICAgICAgICAgIHRoaXMuY2hvc2VuQXVkaW8gPSBudWxsO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cIm1haW4tY29udGFpbmVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTYgY29sLW1kLTYgY29sLXNtLTdcIiAqbmdJZj1cImlzQWRkaW5nQXVkaW9cIj5cclxuICAgICAgICA8Zm9ybSAobmdTdWJtaXQpPVwib25VcGxvYWRBdWRpbygpXCIgW2Zvcm1Hcm91cF09XCJjb21tZW50Rm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTMgcm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY29sLXNtLTIgY29sLWZvcm0tbGFiZWxcIj57eydOYW1lJyB8IHRyYW5zbGF0ZX19ICo8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tMTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiByZXF1aXJlZCBmb3JtQ29udHJvbE5hbWU9XCJ0aXRsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJmaWxlXCIgY2xhc3M9XCJidG4gYnRuLWxhYmVsLWZpbGUgcm91bmRlZC1waWxsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiZmlsZVwiIGlkPVwiZmlsZVwiIChjaGFuZ2UpPVwiaGFuZGxlRmlsZUlucHV0KCRldmVudClcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eydDaG9vc2UgRmlsZScgfCB0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPHAgKm5nSWY9XCJmaWxlVG9VcGxvYWRcIj57eyBmaWxlVG9VcGxvYWQubmFtZX19PC9wPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXJcIiAqbmdJZj1cIndvcmtpbmdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGliLWxvYWRlcj48L2xpYi1sb2FkZXI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSByb3VuZGVkLXBpbGwgbWUtMlwiIFtkaXNhYmxlZF09XCJmcm9tUGxhbiB8fCB3b3JraW5nXCI+e3snVXBsb2FkJyB8IHRyYW5zbGF0ZX19PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9uQ2FuY2VsQXVkaW9VcGxvYWQoKVwiIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXByaW1hcnkgcm91bmRlZC1waWxsIG1lLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3snQ2FuY2VsJyB8IHRyYW5zbGF0ZX19PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Zvcm0+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxuZ2ItYWxlcnQgdHlwZT1cInN1Y2Nlc3NcIiBbZGlzbWlzc2libGVdPVwidHJ1ZVwiICpuZ0lmPVwiIXdvcmtpbmcgJiYgYXVkaW9VcGxvYWRlZFwiIChjbG9zZWQpPVwiYXVkaW9VcGxvYWRlZD1mYWxzZVwiPlxyXG4gICAgICAgIHt7ICdhZGQtYXVkaW8uc3VjY2VzcycgfCB0cmFuc2xhdGUgfX0gIVxyXG4gICAgPC9uZ2ItYWxlcnQ+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLTdcIiAqbmdJZj1cIiFpc0FkZGluZ0F1ZGlvICYmIGF1ZGlvc0ZvclNwYWNlXCI+XHJcbiAgICAgICBcclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW5zdHJ1Y3Rpb24tcm93XCIgPlxyXG4gICAgICAgICAgICA8cD4xLjwvcD5cclxuICAgICAgICAgICAgPGRpdiBuZ2JEcm9wZG93biBjbGFzcz1cImQtaW5saW5lLWJsb2NrXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tbGFiZWwtZmlsZSByb3VuZGVkLXBpbGxcIiBpZD1cImRyb3Bkb3duQmFzaWMxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5nYkRyb3Bkb3duVG9nZ2xlPnt7Y2hvc2VuQXVkaW8gP1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNob3NlbkF1ZGlvLnRpdGxlIDogKCdjaG9vc2UtYXVkaW8nIHwgdHJhbnNsYXRlKSB9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IG5nYkRyb3Bkb3duTWVudSBhcmlhLWxhYmVsbGVkYnk9XCJkcm9wZG93bkJhc2ljMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbmdiRHJvcGRvd25JdGVtICpuZ0Zvcj1cImxldCBhdWRpbyBvZiBhdWRpb3NGb3JTcGFjZVwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkNob29zZUF1ZGlvKGF1ZGlvKVwiPnt7IGF1ZGlvLnRpdGxlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxwPnt7J29yJyB8IHRyYW5zbGF0ZX19PC9wPlxyXG4gICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJpc0FkZGluZ0F1ZGlvPXRydWVcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSByb3VuZGVkLXBpbGwgbWUtMlwiPiB7eydhZGQtYXVkaW8uYWRkJyB8IHRyYW5zbGF0ZX19PC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImluc3RydWN0aW9uLXJvd1wiPlxyXG4gICAgICAgICAgICA8cD4yLjwvcD5cclxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLW91dGxpbmUtcHJpbWFyeSByb3VuZGVkLXBpbGwgbWUtMlwiIChjbGljayk9XCJ0b2dnbGVQbGFuKClcIiBbZGlzYWJsZWRdPVwiIWNob3NlbkF1ZGlvXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3snQ2hvb3NlIHNjYW4gcG9pbnRzIG9uIHBsYW4nIHwgdHJhbnNsYXRlfX08L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXByaW1hcnkgcm91bmRlZC1waWxsIG1lLTJcIiAoY2xpY2spPVwib25EZWxldGVBdWRpbygpXCIgW2Rpc2FibGVkXT1cIiFjaG9zZW5BdWRpb1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eydEZWxldGUgYXVkaW8nIHwgdHJhbnNsYXRlfX08L2J1dHRvbj5cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImluc3RydWN0aW9uLXJvd1wiICpuZ0lmPVwiY2hvc2VuQXVkaW9cIj5cclxuICAgICAgICAgICAgPHA+e3sgY2hvc2VuU2NhbnNPblBsYW4ubGVuZ3RoIH19IHt7J3NjYW5zLWNob3Nlbi1hdWRpbycgfCB0cmFuc2xhdGV9fTwvcD5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm10LTNcIj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSByb3VuZGVkLXBpbGwgbWUtMlwiIFtkaXNhYmxlZF09XCJmcm9tUGxhbiB8fCAhdGhpcy5jaG9zZW5BdWRpb1wiIChjbGljayk9XCJvblN1Ym1pdCgpXCI+e3snU2F2ZScgfCB0cmFuc2xhdGV9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJvbkNhbmNlbCgpXCIgY2xhc3M9XCJidG4gYnRuLW91dGxpbmUtcHJpbWFyeSByb3VuZGVkLXBpbGwgbWUtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7J0NhbmNlbCcgfCB0cmFuc2xhdGV9fTwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZWRpdC1wbGFuXCIgKm5nSWY9XCJmcm9tUGxhblwiPlxyXG4gICAgICAgIDxsaWItc3dlZXAtcGxhbi1zZWxlY3Rpb24gc3R5bGU9XCJ3aWR0aDogMTAwJTtcIiBbbmF2SURzWm9uZUVkaXRdPVwiY2hvc2VuU2NhbnNPblBsYW5cIiBbc3BhY2VJRF09XCJzcGFjZUlEXCIgXHJcbiAgICAgICAgW29jY3VwaWVkU3dlZXBzXT1cIm9jY3VwaWVkU3dlZXBzXCIgW3VuYXZhaWxhYmxlU3dlZXBzXT1cInVuYXZhaWxhYmxlU3dlZXBzXCJcclxuICAgICAgICAoc3dlZXBzU2VsZWN0ZWQpPVwib25TZWxlY3RlZFN3ZWVwc0Zyb21QbGFuKCRldmVudClcIj48L2xpYi1zd2VlcC1wbGFuLXNlbGVjdGlvbj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|
|
@@ -2629,7 +2629,7 @@ class AddAudioZoneComponent {
|
|
|
2629
2629
|
}
|
|
2630
2630
|
else {
|
|
2631
2631
|
const zoneInput = {
|
|
2632
|
-
name: this.chosenAudio.title
|
|
2632
|
+
name: `${this.parentZone.name} - ${this.chosenAudio.title}`,
|
|
2633
2633
|
surface: 0,
|
|
2634
2634
|
spaceID: this.spaceID,
|
|
2635
2635
|
layerID: this.audioLayer.id,
|
|
@@ -2643,6 +2643,7 @@ class AddAudioZoneComponent {
|
|
|
2643
2643
|
yield this.zoneService
|
|
2644
2644
|
.create(zoneInput)
|
|
2645
2645
|
.then((zoneCreated) => __awaiter(this, void 0, void 0, function* () {
|
|
2646
|
+
this.currentAudioZone = zoneCreated;
|
|
2646
2647
|
yield this.removeTakenSweepsFromOtherZones();
|
|
2647
2648
|
this.updatedZone.emit(zoneCreated.id);
|
|
2648
2649
|
}));
|
|
@@ -2728,6 +2729,9 @@ class AddAudioZoneComponent {
|
|
|
2728
2729
|
if (this.currentAudioZone) {
|
|
2729
2730
|
this.chosenScansOnPlan = this.currentAudioZone.sweepIDs;
|
|
2730
2731
|
}
|
|
2732
|
+
else {
|
|
2733
|
+
this.chosenScansOnPlan = [];
|
|
2734
|
+
}
|
|
2731
2735
|
}
|
|
2732
2736
|
/**
|
|
2733
2737
|
* Removes newly selected sweeps for current zone (they are in chosenScansOnPlan) from other audio zones.
|
|
@@ -2745,6 +2749,9 @@ class AddAudioZoneComponent {
|
|
|
2745
2749
|
})));
|
|
2746
2750
|
});
|
|
2747
2751
|
}
|
|
2752
|
+
/**
|
|
2753
|
+
* Delete audio as Comment, all its audio Zones and file from S3 (using lambda function)
|
|
2754
|
+
*/
|
|
2748
2755
|
onDeleteAudio() {
|
|
2749
2756
|
return __awaiter(this, void 0, void 0, function* () {
|
|
2750
2757
|
const message = this.translate.instant("confirm.deleteAudio");
|
|
@@ -2752,12 +2759,17 @@ class AddAudioZoneComponent {
|
|
|
2752
2759
|
yield this.commentService.deleteComment(this.chosenAudio.id);
|
|
2753
2760
|
const index = this.audiosForSpace.indexOf(this.chosenAudio);
|
|
2754
2761
|
this.audiosForSpace.splice(index, 1);
|
|
2762
|
+
// delete all zones with this comment audio
|
|
2763
|
+
const audioZonesToDelete = this.zones.filter((z) => z.audioID === this.chosenAudio.id);
|
|
2764
|
+
yield Promise.all(audioZonesToDelete.map((zone) => __awaiter(this, void 0, void 0, function* () {
|
|
2765
|
+
yield this.zoneService.deleteZone(zone.id);
|
|
2766
|
+
const indexZone = this.audioZones.indexOf(this.currentAudioZone);
|
|
2767
|
+
if (indexZone !== -1) {
|
|
2768
|
+
this.audioZones.slice(indexZone, 1);
|
|
2769
|
+
}
|
|
2770
|
+
})));
|
|
2771
|
+
this.currentAudioZone = null;
|
|
2755
2772
|
this.chosenAudio = null;
|
|
2756
|
-
if (this.currentAudioZone) {
|
|
2757
|
-
yield this.zoneService.deleteZone(this.currentAudioZone.id);
|
|
2758
|
-
this.audioZones.slice(this.audioZones.indexOf(this.currentAudioZone), 1);
|
|
2759
|
-
this.currentAudioZone = null;
|
|
2760
|
-
}
|
|
2761
2773
|
}
|
|
2762
2774
|
});
|
|
2763
2775
|
}
|