@sumaris-net/ngx-components 2.4.70 → 2.4.72
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/src/app/shared/audio/audio.mjs +20 -5
- package/fesm2015/sumaris-net.ngx-components.mjs +19 -4
- package/fesm2015/sumaris-net.ngx-components.mjs.map +1 -1
- package/fesm2020/sumaris-net.ngx-components.mjs +19 -4
- package/fesm2020/sumaris-net.ngx-components.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -27,7 +27,7 @@ export class AudioProvider extends StartableService {
|
|
|
27
27
|
this._assetPathPrefix = '';
|
|
28
28
|
this._preloadedSounds = {};
|
|
29
29
|
this._htmlAudioCache = {};
|
|
30
|
-
|
|
30
|
+
console.info(`[audio] Create audio provider`);
|
|
31
31
|
}
|
|
32
32
|
async ngOnStart() {
|
|
33
33
|
const cordova = this.platform.is('cordova');
|
|
@@ -35,17 +35,25 @@ export class AudioProvider extends StartableService {
|
|
|
35
35
|
this._audioType = cordova && Capacitor.isPluginAvailable('NativeAudio') ? 'native' : 'html5';
|
|
36
36
|
console.info(`[audio] Starting audio provider {${this._audioType}}...`);
|
|
37
37
|
// Listen audio mode changed
|
|
38
|
-
if (
|
|
38
|
+
if (cordova && this.audioManagement) {
|
|
39
39
|
await this.readAudioMode();
|
|
40
40
|
}
|
|
41
41
|
// Pre-loading system sounds
|
|
42
42
|
console.debug('[audio] Preloading audio sounds...');
|
|
43
|
+
let errorCount = 0;
|
|
43
44
|
await Promise.all(SYSTEM_SOUNDS.map(s => {
|
|
44
45
|
// Disable vibration in HTML 5 mode
|
|
45
46
|
if (this._audioType === 'html5')
|
|
46
47
|
s.vibration = undefined;
|
|
47
|
-
return this.preload(s)
|
|
48
|
+
return this.preload(s)
|
|
49
|
+
.catch(_ => errorCount++);
|
|
48
50
|
}));
|
|
51
|
+
if (errorCount > 0) {
|
|
52
|
+
console.warn('[audio] Preloading audio sounds [OK] with ${errorCount} errors during preload.');
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
console.debug('[audio] Preloading audio sounds [OK]');
|
|
56
|
+
}
|
|
49
57
|
}
|
|
50
58
|
playBeepConfirm() {
|
|
51
59
|
return this.play('beep-confirm', {
|
|
@@ -93,7 +101,14 @@ export class AudioProvider extends StartableService {
|
|
|
93
101
|
console.info(`[audio] Preloading sound '${sound.assetId}' [OK]`);
|
|
94
102
|
}
|
|
95
103
|
catch (err) {
|
|
96
|
-
|
|
104
|
+
const errorMsg = err?.message || err;
|
|
105
|
+
if (errorMsg === 'Audio Asset already exists') {
|
|
106
|
+
console.info(`[audio] Preloading sound '${sound.assetId}': Skipped (${errorMsg})`);
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
console.error(`[audio] Unable to preload sound '${sound.assetId}', from file '${assetPath}': ${errorMsg}\n${err?.originalStack || ''}`);
|
|
110
|
+
throw err;
|
|
111
|
+
}
|
|
97
112
|
}
|
|
98
113
|
}
|
|
99
114
|
async play(assetId, opts) {
|
|
@@ -210,4 +225,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
210
225
|
}], ctorParameters: function () { return [{ type: i1.Platform }, { type: i2.AudioManagement, decorators: [{
|
|
211
226
|
type: Optional
|
|
212
227
|
}] }]; } });
|
|
213
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaW8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9hdWRpby9hdWRpby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFFLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDbkUsT0FBTyxFQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQ3JELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ3JFLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUMzQyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDOUQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGlCQUFpQixDQUFDOzs7O0FBYTFDLE1BQU0sYUFBYSxHQUFZO0lBQzdCLEVBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsNEJBQTRCLEVBQUUsU0FBUyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBQztJQUN6RixFQUFDLE9BQU8sRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLCtCQUErQixFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUM7SUFDckYsRUFBQyxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSw2QkFBNkIsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFDO0lBQ2xGLEVBQUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFNBQVMsRUFBRSxvQ0FBb0MsRUFBRSxTQUFTLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFDO0NBQzVHLENBQUM7QUFFRixNQUFNLHlCQUF5QixHQUFvQztJQUNqRSxTQUFTLEVBQUcsZUFBZSxDQUFDLFNB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TyxDQUFDLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDO3dCQUNqQyxLQUFLLENBQUMsSUFBSSxDQUFDO3FCQUNaLENBQUMsQ0FBQztpQkFDSjthQUNGO1NBQ0Y7YUFDSTtZQUNILElBQUksSUFBSSxDQUFDLE1BQU07Z0JBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyx5QkFBeUIsR0FBRyxRQUFRLENBQUMsQ0FBQztZQUNyRSxNQUFNLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBQyxRQUFRLEVBQUMsQ0FBQyxDQUFDO1NBQ25DO0lBQ0gsQ0FBQztJQUVELDhCQUE4QjtJQUVwQixLQUFLLENBQUMsYUFBYTtRQUMzQixJQUFJLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEQsS0FBSyxHQUFHO1lBQ04sR0FBRyx5QkFBeUI7WUFDNUIsR0FBRyxLQUFLO1NBQ1QsQ0FBQTtRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsd0NBQXdDLEtBQUssQ0FBQyxLQUFLLGlCQUFpQixLQUFLLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQztRQUN0RyxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUM7SUFDcEMsQ0FBQzs7MkdBN01VLGFBQWE7K0dBQWIsYUFBYSxjQURELE1BQU07NEZBQ2xCLGFBQWE7a0JBRHpCLFVBQVU7bUJBQUMsRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDOzswQkFhM0IsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZSwgT3B0aW9uYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtQbGF0Zm9ybX0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHtBdWRpb01hbmFnZW1lbnR9IGZyb20gJ0Bpb25pYy1uYXRpdmUvYXVkaW8tbWFuYWdlbWVudC9uZ3gnO1xuaW1wb3J0IHtpc05pbCwgc2xlZXAsIHRvQm9vbGVhbn0gZnJvbSAnLi4vZnVuY3Rpb25zJztcbmltcG9ydCB7U3RhcnRhYmxlU2VydmljZX0gZnJvbSAnLi4vc2VydmljZXMvc3RhcnRhYmxlLXNlcnZpY2UuY2xhc3MnO1xuaW1wb3J0IHtIYXB0aWNzfSBmcm9tICdAY2FwYWNpdG9yL2hhcHRpY3MnO1xuaW1wb3J0IHtOYXRpdmVBdWRpb30gZnJvbSAnQGNhcGFjaXRvci1jb21tdW5pdHkvbmF0aXZlLWF1ZGlvJztcbmltcG9ydCB7Q2FwYWNpdG9yfSBmcm9tICdAY2FwYWNpdG9yL2NvcmUnO1xuXG5leHBvcnQgdHlwZSBBdWRpb1R5cGUgPSAnaHRtbDUnIHwgJ25hdGl2ZSc7XG5leHBvcnQgaW50ZXJmYWNlIFNvdW5kIHtcbiAgYXNzZXRJZDogc3RyaW5nOyAvLyB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgZmlsZVxuICBhc3NldFBhdGg6IHN0cmluZzsgLy8gIHJlbGF0aXZlIHBhdGggb2YgdGhlIGZpbGUgb3IgYWJzb2x1dGUgdXJsIChmaWxlOi8vKVxuICB2b2x1bWU/OiBudW1iZXI7IC8vIFNvdW5kIHZvbHVtZVxuICBpc1VybD86IGJvb2xlYW47IC8vIHBhc3MgdHJ1ZSBpZiBhc3NldFBhdGggaXMgYSBgZmlsZTovL2AgdXJsXG4gIHRpbWU/OiBudW1iZXI7IC8vIHNvdW5kIHNlZWsgdGltZVxuICBhdWRpb0NoYW5uZWxOdW0/OiBudW1iZXI7IC8vIG51bWJlciBvZiBhdWRpbyBjaGFubmVsc1xuICB2aWJyYXRpb24/OiBudW1iZXJ8bnVtYmVyW107IC8vIFNob3VsZCB2aWJyYXRlID8gc2V0IGR1cmF0aW9uXG59XG5cbmNvbnN0IFNZU1RFTV9TT1VORFM6IFNvdW5kW10gPSBbXG4gIHthc3NldElkOiAnc3RhcnR1cCcsIGFzc2V0UGF0aDogJ2Fzc2V0cy9hdWRpby91bmZhLXBpbmcubXAzJywgdmlicmF0aW9uOiBbMzAwLCAyNTAsIDc1MF19LFxuICB7YXNzZXRJZDogJ2JlZXAtY29uZmlybScsIGFzc2V0UGF0aDogJ2Fzc2V0cy9hdWRpby9iZWVwLWNvbmZpcm0ubXAzJywgdmlicmF0aW9uOiAyNTB9LFxuICB7YXNzZXRJZDogJ2JlZXAtZXJyb3InLCBhc3NldFBhdGg6ICdhc3NldHMvYXVkaW8vYmVlcC1lcnJvci5tcDMnLCB2aWJyYXRpb246IDEwMDB9LFxuICB7YXNzZXRJZDogJ2JlZXAtbm90aWZpY2F0aW9uJywgYXNzZXRQYXRoOiAnYXNzZXRzL2F1ZGlvL2JlZXAtbm90aWZpY2F0aW9uLm1wMycsIHZpYnJhdGlvbjogWzQ1MCwgMTUwLCA0NTBdfVxuXTtcblxuY29uc3QgREVGQVVMVF9BVURJT19NT0RFX1JFVFVSTjogQXVkaW9NYW5hZ2VtZW50LkF1ZGlvTW9kZVJldHVybiA9IHtcbiAgYXVkaW9Nb2RlOiAgQXVkaW9NYW5hZ2VtZW50LkF1ZGlvTW9kZS5OT1JNQUwsXG4gIGxhYmVsOiAnTm9ybWFsJ1xufVxuXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogJ3Jvb3QnfSlcbmV4cG9ydCBjbGFzcyBBdWRpb1Byb3ZpZGVyIGV4dGVuZHMgU3RhcnRhYmxlU2VydmljZTx2b2lkPiB7XG5cblxuICBwcml2YXRlIF9hdWRpb1R5cGU6IEF1ZGlvVHlwZTtcbiAgcHJpdmF0ZSBfYXVkaW9Nb2RlOiBBdWRpb01hbmFnZW1lbnQuQXVkaW9Nb2RlID0gQXVkaW9NYW5hZ2VtZW50LkF1ZGlvTW9kZS5OT1JNQUw7XG4gIHByaXZhdGUgX2Fzc2V0UGF0aFByZWZpeCA9ICcnO1xuXG4gIHByaXZhdGUgX3ByZWxvYWRlZFNvdW5kczoge1tpZDogc3RyaW5nXTogU291bmR9ID0ge307XG4gIHByaXZhdGUgX2h0bWxBdWRpb0NhY2hlOiB7W2lkOiBzdHJpbmddOiBIVE1MQXVkaW9FbGVtZW50fSA9IHt9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBwbGF0Zm9ybTogUGxhdGZvcm0sXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBhdWRpb01hbmFnZW1lbnQ6IEF1ZGlvTWFuYWdlbWVudFxuICApIHtcbiAgICBzdXBlcihwbGF0Zm9ybSk7XG5cbiAgICB0aGlzLnN0YXJ0KCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgbmdPblN0YXJ0KCk6IFByb21pc2U8dm9pZD4ge1xuXG4gICAgY29uc3QgY29yZG92YSA9IHRoaXMucGxhdGZvcm0uaXMoJ2NvcmRvdmEnKTtcbiAgICB0aGlzLl9hc3NldFBhdGhQcmVmaXggPSBjb3Jkb3ZhID8gJ3B1YmxpYy8nIDogJyc7XG4gICAgdGhpcy5fYXVkaW9UeXBlID0gY29yZG92YSAmJiBDYXBhY2l0b3IuaXNQbHVnaW5BdmFpbGFibGUoJ05hdGl2ZUF1ZGlvJykgPyAnbmF0aXZlJyA6ICdodG1sNSc7XG4gICAgY29uc29sZS5pbmZvKGBbYXVkaW9dIFN0YXJ0aW5nIGF1ZGlvIHByb3ZpZGVyIHske3RoaXMuX2F1ZGlvVHlwZX19Li4uYCk7XG5cbiAgICAvLyBMaXN0ZW4gYXVkaW8gbW9kZSBjaGFuZ2VkXG4gICAgaWYgKHRoaXMucGxhdGZvcm0uaXMoJ2NvcmRvdmEnKSAmJiB0aGlzLmF1ZGlvTWFuYWdlbWVudCkge1xuICAgICAgYXdhaXQgdGhpcy5yZWFkQXVkaW9Nb2RlKCk7XG4gICAgfVxuXG4gICAgLy8gUHJlLWxvYWRpbmcgc3lzdGVtIHNvdW5kc1xuICAgIGNvbnNvbGUuZGVidWcoJ1thdWRpb10gUHJlbG9hZGluZyBhdWRpbyBzb3VuZHMuLi4nKTtcbiAgICBhd2FpdCBQcm9taXNlLmFsbChTWVNURU1fU09VTkRTLm1hcChzID0+IHtcbiAgICAgIC8vIERpc2FibGUgdmlicmF0aW9uIGluIEhUTUwgNSBtb2RlXG4gICAgICBpZiAodGhpcy5fYXVkaW9UeXBlID09PSAnaHRtbDUnKSBzLnZpYnJhdGlvbiA9IHVuZGVmaW5lZDtcbiAgICAgIHJldHVybiB0aGlzLnByZWxvYWQocyk7XG4gICAgfSkpO1xuICB9XG5cbiAgcGxheUJlZXBDb25maXJtKCk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMucGxheSgnYmVlcC1jb25maXJtJywge1xuICAgICAgLy8gVmlicmF0ZSBvbmx5IGlmIGluIHZpYnJhdGlvbiBtb2RlXG4gICAgICB2aWJyYXRlOiB0aGlzLl9hdWRpb01vZGUgPT09IEF1ZGlvTWFuYWdlbWVudC5BdWRpb01vZGUuVklCUkFURVxuICAgIH0pO1xuICB9XG5cbiAgcGxheUJlZXBFcnJvcigpOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLnBsYXkoJ2JlZXAtZXJyb3InLCB7XG4gICAgICAvLyBBbHdheXMgdmlicmF0ZSAod2lsbCBza2lwIHZpYnJhdGlvbiBpZiBzaWxlbnQgbW9kZSlcbiAgICAgIHZpYnJhdGU6IHRydWVcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIHBsYXlCZWVwTm90aWZpY2F0aW9uKCk6IFByb21pc2U8YW55PiB7XG4gICAgYXdhaXQgdGhpcy5wbGF5KCdiZWVwLW5vdGlmaWNhdGlvbicse1xuICAgICAgdmlicmF0ZTogdGhpcy5fYXVkaW9Nb2RlID09PSBBdWRpb01hbmFnZW1lbnQuQXVkaW9Nb2RlLlZJQlJBVEVcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIHBsYXlTdGFydHVwU291bmQoKTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5wbGF5KCdzdGFydHVwJyk7XG4gIH1cblxuXG4gIGFzeW5jIHByZWxvYWQoc291bmQ6IFNvdW5kKSB7XG4gICAgaWYgKCFzb3VuZD8uYXNzZXRJZCkgcmV0dXJuOyAvLyBTa2lwXG4gICAgaWYgKCEhdGhpcy5fcHJlbG9hZGVkU291bmRzW3NvdW5kLmFzc2V0SWRdKSByZXR1cm47IC8vIEFscmVhZHkgcHJlbG9hZGVkXG4gICAgaWYgKGlzTmlsKHRoaXMuX2F1ZGlvVHlwZSkpIGF3YWl0IHRoaXMucmVhZHkoKTtcblxuICAgIGNvbnN0IGFzc2V0UGF0aCA9ICh0aGlzLl9hc3NldFBhdGhQcmVmaXggfHwgJycpICsgc291bmQuYXNzZXRQYXRoO1xuICAgIGNvbnNvbGUuaW5mbyhgW2F1ZGlvXSBQcmVsb2FkaW5nIHNvdW5kICcke3NvdW5kLmFzc2V0SWR9JywgZnJvbSBmaWxlICcke2Fzc2V0UGF0aH0nLi4uYCk7XG5cbiAgICB0cnkge1xuICAgICAgaWYgKHRoaXMuX2F1ZGlvVHlwZSA9PT0gJ25hdGl2ZScpIHtcbiAgICAgICAgYXdhaXQgTmF0aXZlQXVkaW8ucHJlbG9hZCh7XG4gICAgICAgICAgYXVkaW9DaGFubmVsTnVtOiAxLFxuICAgICAgICAgIGlzVXJsOiBmYWxzZSxcbiAgICAgICAgICAuLi5zb3VuZCxcbiAgICAgICAgICBhc3NldFBhdGhcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgdGhpcy5faHRtbEF1ZGlvQ2FjaGVbc291bmQuYXNzZXRJZF0gPSAgbmV3IEF1ZGlvKGFzc2V0UGF0aCk7XG4gICAgICB9XG5cbiAgICAgIC8vIEFkZCB0byBtYXBcbiAgICAgIHRoaXMuX3ByZWxvYWRlZFNvdW5kc1tzb3VuZC5hc3NldElkXSA9IHNvdW5kO1xuICAgICAgY29uc29sZS5pbmZvKGBbYXVkaW9dIFByZWxvYWRpbmcgc291bmQgJyR7c291bmQuYXNzZXRJZH0nIFtPS11gKTtcbiAgICB9XG4gICAgY2F0Y2ggKGVycikge1xuICAgICAgY29uc29sZS5lcnJvcihgW2F1ZGlvXSBVbmFibGUgdG8gcHJlbG9hZCBzb3VuZCAnJHtzb3VuZC5hc3NldElkfScsIGZyb20gZmlsZSAnJHthc3NldFBhdGh9JzogJHtlcnIgJiYgZXJyLm1lc3NhZ2UgfHwgZXJyfVxcbiR7ZXJyPy5vcmlnaW5hbFN0YWNrfHwnJ31gKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBwbGF5KGFzc2V0SWQ6IHN0cmluZywgb3B0cz86IHt2aWJyYXRlPzogYm9vbGVhbjsgdmlicmF0aW9uPzogbnVtYmVyfG51bWJlcltdfSkge1xuXG4gICAgLy8gTWFrZSBzdXJlIHByb3ZpZGVyIGlzIHJlYWR5XG4gICAgaWYgKCF0aGlzLnN0YXJ0ZWQpIGF3YWl0IHRoaXMucmVhZHkoKTtcblxuICAgIGNvbnN0IHNvdW5kID0gdGhpcy5fcHJlbG9hZGVkU291bmRzW2Fzc2V0SWRdO1xuICAgIGlmICghc291bmQpIHtcbiAgICAgIHRocm93IEVycm9yKGBVbmFibGUgdG8gZmluZCBzb3VuZCAnJHthc3NldElkfScuIFBsZWFzZSBjYWxsIHByZWxvYWQoKSBiZWZvcmUgcGxheWluZyBhIHNvdW5kLmApO1xuICAgIH1cblxuICAgIC8vIElmIHNpbGVudDogc2tpcFxuICAgIGlmICh0aGlzLl9hdWRpb01vZGUgPT09IEF1ZGlvTWFuYWdlbWVudC5BdWRpb01vZGUuU0lMRU5UKSByZXR1cm47XG5cbiAgICBjb25zdCBwcm9taXNlczogUHJvbWlzZTxhbnk+W10gPSBbXTtcblxuICAgIC8vIE5vcm1hbCBtb2RlID0gY2FuIHBsYXkgdGhlIHNvdW5kXG4gICAgaWYgKHRoaXMuX2F1ZGlvTW9kZSA9PT0gQXVkaW9NYW5hZ2VtZW50LkF1ZGlvTW9kZS5OT1JNQUwpIHtcbiAgICAgIC8vIFVzZSBuYXRpdmUgYXVkaW9cbiAgICAgIGlmICh0aGlzLl9hdWRpb1R5cGUgPT09ICduYXRpdmUnKSB7XG4gICAgICAgIHByb21pc2VzLnB1c2goTmF0aXZlQXVkaW8ucGxheSh7XG4gICAgICAgICAgYXNzZXRJZDogc291bmQuYXNzZXRJZCxcbiAgICAgICAgICB0aW1lOiAoc291bmQudGltZSB8fCAwKVxuICAgICAgICB9KSk7XG4gICAgICB9XG4gICAgICAvLyBPciBIVE1MIDUgYXVkaW9cbiAgICAgIGVsc2Uge1xuICAgICAgICBjb25zdCBhdWRpbyA9IHRoaXMuX2h0bWxBdWRpb0NhY2hlW2Fzc2V0SWRdIHx8IG5ldyBBdWRpbyhzb3VuZC5hc3NldFBhdGgpO1xuICAgICAgICBwcm9taXNlcy5wdXNoKGF1ZGlvLnBsYXkoKSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gVmlicmF0ZSBtb2RlOiBieSBkZWZhdWx0IG1ha2UgdmlicmF0aW9uIGlzIGVuYWJsZVxuICAgIGVsc2UgaWYgKGlzTmlsKHNvdW5kLnZpYnJhdGlvbikgJiYgaXNOaWwob3B0cyAmJiBvcHRzLnZpYnJhdGUpKSB7XG4gICAgICBvcHRzID0gb3B0cyB8fCB7fTtcbiAgICAgIG9wdHMudmlicmF0ZSA9IHRydWU7XG4gICAgfVxuXG4gICAgLy8gRG8gdmlicmF0aW9uIChpZiBzb3VuZCBhcyBkZWZhdWx0IHZpYnJhdGlvbiwgb3IgaWYgdXNlciBhc2sgZm9yIGl0KVxuICAgIGlmICh0b0Jvb2xlYW4ob3B0cz8udmlicmF0ZSwgISFzb3VuZC52aWJyYXRpb24pKSB7XG4gICAgICBwcm9taXNlcy5wdXNoKHRoaXMudmlicmF0ZShvcHRzICYmIG9wdHMudmlicmF0aW9uIHx8IHNvdW5kLnZpYnJhdGlvbikpO1xuICAgIH1cblxuICAgIHJldHVybiAocHJvbWlzZXMubGVuZ3RoID09PSAxID8gcHJvbWlzZXNbMF0gOiBQcm9taXNlLmFsbChwcm9taXNlcykpXG4gICAgICAuY2F0Y2goZXJyID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcihgW2F1ZGlvXSBFcnJvciB3aGlsZSBwbGF5aW5nIGF1ZGlvIHNvdW5kICcke2Fzc2V0SWR9JzogJHtlcnIgJiYgZXJyLm1lc3NhZ2UgfHwgZXJyfWAsIGVycik7XG4gICAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIHVubG9hZChhc3NldElkOiBzdHJpbmcpIHtcbiAgICBpZiAoaXNOaWwodGhpcy5fYXVkaW9UeXBlKSkgYXdhaXQgdGhpcy5yZWFkeSgpO1xuXG4gICAgLy8gUmVtb3ZlIGZyb20gbWFwXG4gICAgdGhpcy5fcHJlbG9hZGVkU291bmRzW2Fzc2V0SWRdID0gdW5kZWZpbmVkO1xuXG4gICAgLy8gTmF0aXZlIHVubG9hZFxuICAgIGlmICh0aGlzLl9hdWRpb1R5cGUgPT09ICduYXRpdmUnKSB7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCBOYXRpdmVBdWRpby51bmxvYWQoe2Fzc2V0SWR9KTtcbiAgICAgIH1cbiAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihgW2F1ZGlvXSBVbmFibGUgdG8gdW5sb2FkIGF1ZGlvICcke2Fzc2V0SWR9JzogJHtlcnIgJiYgZXJyLm1lc3NhZ2UgfHwgZXJyfWAsIGVycik7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIEhUTUw1IGF1ZGlvIHVubG9hZFxuICAgIGVsc2Uge1xuICAgICAgdGhpcy5faHRtbEF1ZGlvQ2FjaGVbYXNzZXRJZF0ucmVtb3ZlKCk7XG4gICAgICB0aGlzLl9odG1sQXVkaW9DYWNoZVthc3NldElkXSA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIGR1cmF0aW9uIER1cmF0aW9uIG9mIHRoZSB2aWJyYXRpb24gaW4gbWlsbGlzZWNvbmRzLlxuICAgKi9cbiAgYXN5bmMgdmlicmF0ZShkdXJhdGlvbj86IG51bWJlcnxudW1iZXJbXSkge1xuICAgIGlmICghdGhpcy5zdGFydGVkKSBhd2FpdCB0aGlzLnJlYWR5KCk7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoZHVyYXRpb24pKSB7XG4gICAgICBpZiAodGhpcy5fZGVidWcpIGNvbnNvbGUuZGVidWcoXCJbYXVkaW9dIFZpYnJhdGU6IFwiICsgSlNPTi5zdHJpbmdpZnkoZHVyYXRpb24pKTtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZHVyYXRpb24ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgdGltZSA9IGR1cmF0aW9uW2ldO1xuICAgICAgICBjb25zdCBzaWxlbnQgPSBpICUgMiAhPT0gMDtcbiAgICAgICAgaWYgKHNpbGVudCkge1xuICAgICAgICAgIGlmICh0aGlzLl9kZWJ1ZykgY29uc29sZS5kZWJ1ZyhcIlthdWRpb10gc2lsZW50IGR1cmluZyBcIiArIHRpbWUpO1xuICAgICAgICAgIGF3YWl0IHNsZWVwKHRpbWUpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIGlmICh0aGlzLl9kZWJ1ZykgY29uc29sZS5kZWJ1ZyhcIlthdWRpb10gdmlicmF0ZSBkdXJpbmcgXCIgKyB0aW1lKTtcbiAgICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICAgICAgICBIYXB0aWNzLnZpYnJhdGUoe2R1cmF0aW9uOiB0aW1lfSksXG4gICAgICAgICAgICBzbGVlcCh0aW1lKVxuICAgICAgICAgIF0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgaWYgKHRoaXMuX2RlYnVnKSBjb25zb2xlLmRlYnVnKFwiW2F1ZGlvXSB2aWJyYXRlIGR1cmluZyBcIiArIGR1cmF0aW9uKTtcbiAgICAgIGF3YWl0IEhhcHRpY3MudmlicmF0ZSh7ZHVyYXRpb259KTtcbiAgICB9XG4gIH1cblxuICAvKiAtLSBwcm90ZWN0ZWQgbWV0aG9kcyAgLS0gKi9cblxuICBwcm90ZWN0ZWQgYXN5bmMgcmVhZEF1ZGlvTW9kZSgpIHtcbiAgICBsZXQgdmFsdWUgPSBhd2FpdCB0aGlzLmF1ZGlvTWFuYWdlbWVudC5nZXRBdWRpb01vZGUoKTtcbiAgICB2YWx1ZSA9IHtcbiAgICAgIC4uLkRFRkFVTFRfQVVESU9fTU9ERV9SRVRVUk4sXG4gICAgICAuLi52YWx1ZVxuICAgIH1cbiAgICBjb25zb2xlLmRlYnVnKGBbYXVkaW9dIERldGVjdGVkIGF1ZGlvIG1vZGUge2xhYmVsOiAnJHt2YWx1ZS5sYWJlbH0nLCBhdWRpb01vZGU6ICR7dmFsdWUuYXVkaW9Nb2RlfX1gKTtcbiAgICB0aGlzLl9hdWRpb01vZGUgPSB2YWx1ZS5hdWRpb01vZGU7XG4gIH1cblxufVxuIl19
|
|
228
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaW8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9hdWRpby9hdWRpby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFFLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDbkUsT0FBTyxFQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQ3JELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ3JFLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUMzQyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDOUQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGlCQUFpQixDQUFDOzs7O0FBYTFDLE1BQU0sYUFBYSxHQUFZO0lBQzdCLEVBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsNEJBQTRCLEVBQUUsU0FBUyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBQztJQUN6RixFQUFDLE9BQU8sRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLCtCQUErQixFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUM7SUFDckYsRUFBQyxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSw2QkFBNkIsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFDO0lBQ2xGLEVBQUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFNBQVMsRUFBRSxvQ0FBb0MsRUFBRSxTQUFTLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFDO0NBQzVHLENBQUM7QUFFRixNQUFNLHlCQUF5QixHQUFvQztJQUNqRSxTQUFTLEVBQUcsZUFBZSxDQUFDLFNB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QUFDOzsyR0E1TlUsYUFBYTsrR0FBYixhQUFhLGNBREQsTUFBTTs0RkFDbEIsYUFBYTtrQkFEekIsVUFBVTttQkFBQyxFQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUM7OzBCQWEzQixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlLCBPcHRpb25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1BsYXRmb3JtfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQge0F1ZGlvTWFuYWdlbWVudH0gZnJvbSAnQGlvbmljLW5hdGl2ZS9hdWRpby1tYW5hZ2VtZW50L25neCc7XG5pbXBvcnQge2lzTmlsLCBzbGVlcCwgdG9Cb29sZWFufSBmcm9tICcuLi9mdW5jdGlvbnMnO1xuaW1wb3J0IHtTdGFydGFibGVTZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlcy9zdGFydGFibGUtc2VydmljZS5jbGFzcyc7XG5pbXBvcnQge0hhcHRpY3N9IGZyb20gJ0BjYXBhY2l0b3IvaGFwdGljcyc7XG5pbXBvcnQge05hdGl2ZUF1ZGlvfSBmcm9tICdAY2FwYWNpdG9yLWNvbW11bml0eS9uYXRpdmUtYXVkaW8nO1xuaW1wb3J0IHtDYXBhY2l0b3J9IGZyb20gJ0BjYXBhY2l0b3IvY29yZSc7XG5cbmV4cG9ydCB0eXBlIEF1ZGlvVHlwZSA9ICdodG1sNScgfCAnbmF0aXZlJztcbmV4cG9ydCBpbnRlcmZhY2UgU291bmQge1xuICBhc3NldElkOiBzdHJpbmc7IC8vIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBmaWxlXG4gIGFzc2V0UGF0aDogc3RyaW5nOyAvLyAgcmVsYXRpdmUgcGF0aCBvZiB0aGUgZmlsZSBvciBhYnNvbHV0ZSB1cmwgKGZpbGU6Ly8pXG4gIHZvbHVtZT86IG51bWJlcjsgLy8gU291bmQgdm9sdW1lXG4gIGlzVXJsPzogYm9vbGVhbjsgLy8gcGFzcyB0cnVlIGlmIGFzc2V0UGF0aCBpcyBhIGBmaWxlOi8vYCB1cmxcbiAgdGltZT86IG51bWJlcjsgLy8gc291bmQgc2VlayB0aW1lXG4gIGF1ZGlvQ2hhbm5lbE51bT86IG51bWJlcjsgLy8gbnVtYmVyIG9mIGF1ZGlvIGNoYW5uZWxzXG4gIHZpYnJhdGlvbj86IG51bWJlcnxudW1iZXJbXTsgLy8gU2hvdWxkIHZpYnJhdGUgPyBzZXQgZHVyYXRpb25cbn1cblxuY29uc3QgU1lTVEVNX1NPVU5EUzogU291bmRbXSA9IFtcbiAge2Fzc2V0SWQ6ICdzdGFydHVwJywgYXNzZXRQYXRoOiAnYXNzZXRzL2F1ZGlvL3VuZmEtcGluZy5tcDMnLCB2aWJyYXRpb246IFszMDAsIDI1MCwgNzUwXX0sXG4gIHthc3NldElkOiAnYmVlcC1jb25maXJtJywgYXNzZXRQYXRoOiAnYXNzZXRzL2F1ZGlvL2JlZXAtY29uZmlybS5tcDMnLCB2aWJyYXRpb246IDI1MH0sXG4gIHthc3NldElkOiAnYmVlcC1lcnJvcicsIGFzc2V0UGF0aDogJ2Fzc2V0cy9hdWRpby9iZWVwLWVycm9yLm1wMycsIHZpYnJhdGlvbjogMTAwMH0sXG4gIHthc3NldElkOiAnYmVlcC1ub3RpZmljYXRpb24nLCBhc3NldFBhdGg6ICdhc3NldHMvYXVkaW8vYmVlcC1ub3RpZmljYXRpb24ubXAzJywgdmlicmF0aW9uOiBbNDUwLCAxNTAsIDQ1MF19XG5dO1xuXG5jb25zdCBERUZBVUxUX0FVRElPX01PREVfUkVUVVJOOiBBdWRpb01hbmFnZW1lbnQuQXVkaW9Nb2RlUmV0dXJuID0ge1xuICBhdWRpb01vZGU6ICBBdWRpb01hbmFnZW1lbnQuQXVkaW9Nb2RlLk5PUk1BTCxcbiAgbGFiZWw6ICdOb3JtYWwnXG59XG5cbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxuZXhwb3J0IGNsYXNzIEF1ZGlvUHJvdmlkZXIgZXh0ZW5kcyBTdGFydGFibGVTZXJ2aWNlPHZvaWQ+IHtcblxuXG4gIHByaXZhdGUgX2F1ZGlvVHlwZTogQXVkaW9UeXBlO1xuICBwcml2YXRlIF9hdWRpb01vZGU6IEF1ZGlvTWFuYWdlbWVudC5BdWRpb01vZGUgPSBBdWRpb01hbmFnZW1lbnQuQXVkaW9Nb2RlLk5PUk1BTDtcbiAgcHJpdmF0ZSBfYXNzZXRQYXRoUHJlZml4ID0gJyc7XG5cbiAgcHJpdmF0ZSBfcHJlbG9hZGVkU291bmRzOiB7W2lkOiBzdHJpbmddOiBTb3VuZH0gPSB7fTtcbiAgcHJpdmF0ZSBfaHRtbEF1ZGlvQ2FjaGU6IHtbaWQ6IHN0cmluZ106IEhUTUxBdWRpb0VsZW1lbnR9ID0ge307XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIHBsYXRmb3JtOiBQbGF0Zm9ybSxcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIGF1ZGlvTWFuYWdlbWVudDogQXVkaW9NYW5hZ2VtZW50XG4gICkge1xuICAgIHN1cGVyKHBsYXRmb3JtKTtcbiAgICBjb25zb2xlLmluZm8oYFthdWRpb10gQ3JlYXRlIGF1ZGlvIHByb3ZpZGVyYCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgbmdPblN0YXJ0KCk6IFByb21pc2U8dm9pZD4ge1xuXG4gICAgY29uc3QgY29yZG92YSA9IHRoaXMucGxhdGZvcm0uaXMoJ2NvcmRvdmEnKTtcbiAgICB0aGlzLl9hc3NldFBhdGhQcmVmaXggPSBjb3Jkb3ZhID8gJ3B1YmxpYy8nIDogJyc7XG4gICAgdGhpcy5fYXVkaW9UeXBlID0gY29yZG92YSAmJiBDYXBhY2l0b3IuaXNQbHVnaW5BdmFpbGFibGUoJ05hdGl2ZUF1ZGlvJykgPyAnbmF0aXZlJyA6ICdodG1sNSc7XG4gICAgY29uc29sZS5pbmZvKGBbYXVkaW9dIFN0YXJ0aW5nIGF1ZGlvIHByb3ZpZGVyIHske3RoaXMuX2F1ZGlvVHlwZX19Li4uYCk7XG5cbiAgICAvLyBMaXN0ZW4gYXVkaW8gbW9kZSBjaGFuZ2VkXG4gICAgaWYgKGNvcmRvdmEgJiYgdGhpcy5hdWRpb01hbmFnZW1lbnQpIHtcbiAgICAgIGF3YWl0IHRoaXMucmVhZEF1ZGlvTW9kZSgpO1xuICAgIH1cblxuICAgIC8vIFByZS1sb2FkaW5nIHN5c3RlbSBzb3VuZHNcbiAgICBjb25zb2xlLmRlYnVnKCdbYXVkaW9dIFByZWxvYWRpbmcgYXVkaW8gc291bmRzLi4uJyk7XG4gICAgbGV0IGVycm9yQ291bnQgPSAwXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoU1lTVEVNX1NPVU5EUy5tYXAocyA9PiB7XG4gICAgICAvLyBEaXNhYmxlIHZpYnJhdGlvbiBpbiBIVE1MIDUgbW9kZVxuICAgICAgaWYgKHRoaXMuX2F1ZGlvVHlwZSA9PT0gJ2h0bWw1Jykgcy52aWJyYXRpb24gPSB1bmRlZmluZWQ7XG4gICAgICByZXR1cm4gdGhpcy5wcmVsb2FkKHMpXG4gICAgICAgIC5jYXRjaChfID0+IGVycm9yQ291bnQrKyk7XG4gICAgfSkpO1xuXG4gICAgaWYgKGVycm9yQ291bnQgPiAwKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ1thdWRpb10gUHJlbG9hZGluZyBhdWRpbyBzb3VuZHMgW09LXSB3aXRoICR7ZXJyb3JDb3VudH0gZXJyb3JzIGR1cmluZyBwcmVsb2FkLicpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGNvbnNvbGUuZGVidWcoJ1thdWRpb10gUHJlbG9hZGluZyBhdWRpbyBzb3VuZHMgW09LXScpO1xuICAgIH1cbiAgfVxuXG4gIHBsYXlCZWVwQ29uZmlybSgpOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLnBsYXkoJ2JlZXAtY29uZmlybScsIHtcbiAgICAgIC8vIFZpYnJhdGUgb25seSBpZiBpbiB2aWJyYXRpb24gbW9kZVxuICAgICAgdmlicmF0ZTogdGhpcy5fYXVkaW9Nb2RlID09PSBBdWRpb01hbmFnZW1lbnQuQXVkaW9Nb2RlLlZJQlJBVEVcbiAgICB9KTtcbiAgfVxuXG4gIHBsYXlCZWVwRXJyb3IoKTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5wbGF5KCdiZWVwLWVycm9yJywge1xuICAgICAgLy8gQWx3YXlzIHZpYnJhdGUgKHdpbGwgc2tpcCB2aWJyYXRpb24gaWYgc2lsZW50IG1vZGUpXG4gICAgICB2aWJyYXRlOiB0cnVlXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBwbGF5QmVlcE5vdGlmaWNhdGlvbigpOiBQcm9taXNlPGFueT4ge1xuICAgIGF3YWl0IHRoaXMucGxheSgnYmVlcC1ub3RpZmljYXRpb24nLHtcbiAgICAgIHZpYnJhdGU6IHRoaXMuX2F1ZGlvTW9kZSA9PT0gQXVkaW9NYW5hZ2VtZW50LkF1ZGlvTW9kZS5WSUJSQVRFXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBwbGF5U3RhcnR1cFNvdW5kKCk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMucGxheSgnc3RhcnR1cCcpO1xuICB9XG5cblxuICBhc3luYyBwcmVsb2FkKHNvdW5kOiBTb3VuZCkge1xuICAgIGlmICghc291bmQ/LmFzc2V0SWQpIHJldHVybjsgLy8gU2tpcFxuICAgIGlmICghIXRoaXMuX3ByZWxvYWRlZFNvdW5kc1tzb3VuZC5hc3NldElkXSkgcmV0dXJuOyAvLyBBbHJlYWR5IHByZWxvYWRlZFxuICAgIGlmIChpc05pbCh0aGlzLl9hdWRpb1R5cGUpKSBhd2FpdCB0aGlzLnJlYWR5KCk7XG5cbiAgICBjb25zdCBhc3NldFBhdGggPSAodGhpcy5fYXNzZXRQYXRoUHJlZml4IHx8ICcnKSArIHNvdW5kLmFzc2V0UGF0aDtcbiAgICBjb25zb2xlLmluZm8oYFthdWRpb10gUHJlbG9hZGluZyBzb3VuZCAnJHtzb3VuZC5hc3NldElkfScsIGZyb20gZmlsZSAnJHthc3NldFBhdGh9Jy4uLmApO1xuXG4gICAgdHJ5IHtcbiAgICAgIGlmICh0aGlzLl9hdWRpb1R5cGUgPT09ICduYXRpdmUnKSB7XG4gICAgICAgIGF3YWl0IE5hdGl2ZUF1ZGlvLnByZWxvYWQoe1xuICAgICAgICAgIGF1ZGlvQ2hhbm5lbE51bTogMSxcbiAgICAgICAgICBpc1VybDogZmFsc2UsXG4gICAgICAgICAgLi4uc291bmQsXG4gICAgICAgICAgYXNzZXRQYXRoXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgZWxzZSB7XG4gICAgICAgIHRoaXMuX2h0bWxBdWRpb0NhY2hlW3NvdW5kLmFzc2V0SWRdID0gIG5ldyBBdWRpbyhhc3NldFBhdGgpO1xuICAgICAgfVxuXG4gICAgICAvLyBBZGQgdG8gbWFwXG4gICAgICB0aGlzLl9wcmVsb2FkZWRTb3VuZHNbc291bmQuYXNzZXRJZF0gPSBzb3VuZDtcbiAgICAgIGNvbnNvbGUuaW5mbyhgW2F1ZGlvXSBQcmVsb2FkaW5nIHNvdW5kICcke3NvdW5kLmFzc2V0SWR9JyBbT0tdYCk7XG4gICAgfVxuICAgIGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnN0IGVycm9yTXNnID0gZXJyPy5tZXNzYWdlIHx8IGVycjtcbiAgICAgIGlmIChlcnJvck1zZyA9PT0gJ0F1ZGlvIEFzc2V0IGFscmVhZHkgZXhpc3RzJykge1xuICAgICAgICBjb25zb2xlLmluZm8oYFthdWRpb10gUHJlbG9hZGluZyBzb3VuZCAnJHtzb3VuZC5hc3NldElkfSc6IFNraXBwZWQgKCR7ZXJyb3JNc2d9KWApO1xuICAgICAgfVxuICAgICAgZWxzZSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYFthdWRpb10gVW5hYmxlIHRvIHByZWxvYWQgc291bmQgJyR7c291bmQuYXNzZXRJZH0nLCBmcm9tIGZpbGUgJyR7YXNzZXRQYXRofSc6ICR7ZXJyb3JNc2d9XFxuJHtlcnI/Lm9yaWdpbmFsU3RhY2t8fCcnfWApO1xuICAgICAgICB0aHJvdyBlcnI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgcGxheShhc3NldElkOiBzdHJpbmcsIG9wdHM/OiB7dmlicmF0ZT86IGJvb2xlYW47IHZpYnJhdGlvbj86IG51bWJlcnxudW1iZXJbXX0pIHtcblxuICAgIC8vIE1ha2Ugc3VyZSBwcm92aWRlciBpcyByZWFkeVxuICAgIGlmICghdGhpcy5zdGFydGVkKSBhd2FpdCB0aGlzLnJlYWR5KCk7XG5cbiAgICBjb25zdCBzb3VuZCA9IHRoaXMuX3ByZWxvYWRlZFNvdW5kc1thc3NldElkXTtcbiAgICBpZiAoIXNvdW5kKSB7XG4gICAgICB0aHJvdyBFcnJvcihgVW5hYmxlIHRvIGZpbmQgc291bmQgJyR7YXNzZXRJZH0nLiBQbGVhc2UgY2FsbCBwcmVsb2FkKCkgYmVmb3JlIHBsYXlpbmcgYSBzb3VuZC5gKTtcbiAgICB9XG5cbiAgICAvLyBJZiBzaWxlbnQ6IHNraXBcbiAgICBpZiAodGhpcy5fYXVkaW9Nb2RlID09PSBBdWRpb01hbmFnZW1lbnQuQXVkaW9Nb2RlLlNJTEVOVCkgcmV0dXJuO1xuXG4gICAgY29uc3QgcHJvbWlzZXM6IFByb21pc2U8YW55PltdID0gW107XG5cbiAgICAvLyBOb3JtYWwgbW9kZSA9IGNhbiBwbGF5IHRoZSBzb3VuZFxuICAgIGlmICh0aGlzLl9hdWRpb01vZGUgPT09IEF1ZGlvTWFuYWdlbWVudC5BdWRpb01vZGUuTk9STUFMKSB7XG4gICAgICAvLyBVc2UgbmF0aXZlIGF1ZGlvXG4gICAgICBpZiAodGhpcy5fYXVkaW9UeXBlID09PSAnbmF0aXZlJykge1xuICAgICAgICBwcm9taXNlcy5wdXNoKE5hdGl2ZUF1ZGlvLnBsYXkoe1xuICAgICAgICAgIGFzc2V0SWQ6IHNvdW5kLmFzc2V0SWQsXG4gICAgICAgICAgdGltZTogKHNvdW5kLnRpbWUgfHwgMClcbiAgICAgICAgfSkpO1xuICAgICAgfVxuICAgICAgLy8gT3IgSFRNTCA1IGF1ZGlvXG4gICAgICBlbHNlIHtcbiAgICAgICAgY29uc3QgYXVkaW8gPSB0aGlzLl9odG1sQXVkaW9DYWNoZVthc3NldElkXSB8fCBuZXcgQXVkaW8oc291bmQuYXNzZXRQYXRoKTtcbiAgICAgICAgcHJvbWlzZXMucHVzaChhdWRpby5wbGF5KCkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFZpYnJhdGUgbW9kZTogYnkgZGVmYXVsdCBtYWtlIHZpYnJhdGlvbiBpcyBlbmFibGVcbiAgICBlbHNlIGlmIChpc05pbChzb3VuZC52aWJyYXRpb24pICYmIGlzTmlsKG9wdHMgJiYgb3B0cy52aWJyYXRlKSkge1xuICAgICAgb3B0cyA9IG9wdHMgfHwge307XG4gICAgICBvcHRzLnZpYnJhdGUgPSB0cnVlO1xuICAgIH1cblxuICAgIC8vIERvIHZpYnJhdGlvbiAoaWYgc291bmQgYXMgZGVmYXVsdCB2aWJyYXRpb24sIG9yIGlmIHVzZXIgYXNrIGZvciBpdClcbiAgICBpZiAodG9Cb29sZWFuKG9wdHM/LnZpYnJhdGUsICEhc291bmQudmlicmF0aW9uKSkge1xuICAgICAgcHJvbWlzZXMucHVzaCh0aGlzLnZpYnJhdGUob3B0cyAmJiBvcHRzLnZpYnJhdGlvbiB8fCBzb3VuZC52aWJyYXRpb24pKTtcbiAgICB9XG5cbiAgICByZXR1cm4gKHByb21pc2VzLmxlbmd0aCA9PT0gMSA/IHByb21pc2VzWzBdIDogUHJvbWlzZS5hbGwocHJvbWlzZXMpKVxuICAgICAgLmNhdGNoKGVyciA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYFthdWRpb10gRXJyb3Igd2hpbGUgcGxheWluZyBhdWRpbyBzb3VuZCAnJHthc3NldElkfSc6ICR7ZXJyICYmIGVyci5tZXNzYWdlIHx8IGVycn1gLCBlcnIpO1xuICAgICAgfSk7XG4gIH1cblxuICBhc3luYyB1bmxvYWQoYXNzZXRJZDogc3RyaW5nKSB7XG4gICAgaWYgKGlzTmlsKHRoaXMuX2F1ZGlvVHlwZSkpIGF3YWl0IHRoaXMucmVhZHkoKTtcblxuICAgIC8vIFJlbW92ZSBmcm9tIG1hcFxuICAgIHRoaXMuX3ByZWxvYWRlZFNvdW5kc1thc3NldElkXSA9IHVuZGVmaW5lZDtcblxuICAgIC8vIE5hdGl2ZSB1bmxvYWRcbiAgICBpZiAodGhpcy5fYXVkaW9UeXBlID09PSAnbmF0aXZlJykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgTmF0aXZlQXVkaW8udW5sb2FkKHthc3NldElkfSk7XG4gICAgICB9XG4gICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYFthdWRpb10gVW5hYmxlIHRvIHVubG9hZCBhdWRpbyAnJHthc3NldElkfSc6ICR7ZXJyICYmIGVyci5tZXNzYWdlIHx8IGVycn1gLCBlcnIpO1xuICAgICAgfVxuICAgIH1cbiAgICAvLyBIVE1MNSBhdWRpbyB1bmxvYWRcbiAgICBlbHNlIHtcbiAgICAgIHRoaXMuX2h0bWxBdWRpb0NhY2hlW2Fzc2V0SWRdLnJlbW92ZSgpO1xuICAgICAgdGhpcy5faHRtbEF1ZGlvQ2FjaGVbYXNzZXRJZF0gPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSBkdXJhdGlvbiBEdXJhdGlvbiBvZiB0aGUgdmlicmF0aW9uIGluIG1pbGxpc2Vjb25kcy5cbiAgICovXG4gIGFzeW5jIHZpYnJhdGUoZHVyYXRpb24/OiBudW1iZXJ8bnVtYmVyW10pIHtcbiAgICBpZiAoIXRoaXMuc3RhcnRlZCkgYXdhaXQgdGhpcy5yZWFkeSgpO1xuICAgIGlmIChBcnJheS5pc0FycmF5KGR1cmF0aW9uKSkge1xuICAgICAgaWYgKHRoaXMuX2RlYnVnKSBjb25zb2xlLmRlYnVnKFwiW2F1ZGlvXSBWaWJyYXRlOiBcIiArIEpTT04uc3RyaW5naWZ5KGR1cmF0aW9uKSk7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGR1cmF0aW9uLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IHRpbWUgPSBkdXJhdGlvbltpXTtcbiAgICAgICAgY29uc3Qgc2lsZW50ID0gaSAlIDIgIT09IDA7XG4gICAgICAgIGlmIChzaWxlbnQpIHtcbiAgICAgICAgICBpZiAodGhpcy5fZGVidWcpIGNvbnNvbGUuZGVidWcoXCJbYXVkaW9dIHNpbGVudCBkdXJpbmcgXCIgKyB0aW1lKTtcbiAgICAgICAgICBhd2FpdCBzbGVlcCh0aW1lKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICBpZiAodGhpcy5fZGVidWcpIGNvbnNvbGUuZGVidWcoXCJbYXVkaW9dIHZpYnJhdGUgZHVyaW5nIFwiICsgdGltZSk7XG4gICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgICAgICAgICAgSGFwdGljcy52aWJyYXRlKHtkdXJhdGlvbjogdGltZX0pLFxuICAgICAgICAgICAgc2xlZXAodGltZSlcbiAgICAgICAgICBdKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGlmICh0aGlzLl9kZWJ1ZykgY29uc29sZS5kZWJ1ZyhcIlthdWRpb10gdmlicmF0ZSBkdXJpbmcgXCIgKyBkdXJhdGlvbik7XG4gICAgICBhd2FpdCBIYXB0aWNzLnZpYnJhdGUoe2R1cmF0aW9ufSk7XG4gICAgfVxuICB9XG5cbiAgLyogLS0gcHJvdGVjdGVkIG1ldGhvZHMgIC0tICovXG5cbiAgcHJvdGVjdGVkIGFzeW5jIHJlYWRBdWRpb01vZGUoKSB7XG4gICAgbGV0IHZhbHVlID0gYXdhaXQgdGhpcy5hdWRpb01hbmFnZW1lbnQuZ2V0QXVkaW9Nb2RlKCk7XG4gICAgdmFsdWUgPSB7XG4gICAgICAuLi5ERUZBVUxUX0FVRElPX01PREVfUkVUVVJOLFxuICAgICAgLi4udmFsdWVcbiAgICB9XG4gICAgY29uc29sZS5kZWJ1ZyhgW2F1ZGlvXSBEZXRlY3RlZCBhdWRpbyBtb2RlIHtsYWJlbDogJyR7dmFsdWUubGFiZWx9JywgYXVkaW9Nb2RlOiAke3ZhbHVlLmF1ZGlvTW9kZX19YCk7XG4gICAgdGhpcy5fYXVkaW9Nb2RlID0gdmFsdWUuYXVkaW9Nb2RlO1xuICB9XG5cbn1cbiJdfQ==
|
|
@@ -10515,7 +10515,7 @@ class AudioProvider extends StartableService {
|
|
|
10515
10515
|
this._assetPathPrefix = '';
|
|
10516
10516
|
this._preloadedSounds = {};
|
|
10517
10517
|
this._htmlAudioCache = {};
|
|
10518
|
-
|
|
10518
|
+
console.info(`[audio] Create audio provider`);
|
|
10519
10519
|
}
|
|
10520
10520
|
ngOnStart() {
|
|
10521
10521
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -10524,17 +10524,25 @@ class AudioProvider extends StartableService {
|
|
|
10524
10524
|
this._audioType = cordova && Capacitor.isPluginAvailable('NativeAudio') ? 'native' : 'html5';
|
|
10525
10525
|
console.info(`[audio] Starting audio provider {${this._audioType}}...`);
|
|
10526
10526
|
// Listen audio mode changed
|
|
10527
|
-
if (
|
|
10527
|
+
if (cordova && this.audioManagement) {
|
|
10528
10528
|
yield this.readAudioMode();
|
|
10529
10529
|
}
|
|
10530
10530
|
// Pre-loading system sounds
|
|
10531
10531
|
console.debug('[audio] Preloading audio sounds...');
|
|
10532
|
+
let errorCount = 0;
|
|
10532
10533
|
yield Promise.all(SYSTEM_SOUNDS.map(s => {
|
|
10533
10534
|
// Disable vibration in HTML 5 mode
|
|
10534
10535
|
if (this._audioType === 'html5')
|
|
10535
10536
|
s.vibration = undefined;
|
|
10536
|
-
return this.preload(s)
|
|
10537
|
+
return this.preload(s)
|
|
10538
|
+
.catch(_ => errorCount++);
|
|
10537
10539
|
}));
|
|
10540
|
+
if (errorCount > 0) {
|
|
10541
|
+
console.warn('[audio] Preloading audio sounds [OK] with ${errorCount} errors during preload.');
|
|
10542
|
+
}
|
|
10543
|
+
else {
|
|
10544
|
+
console.debug('[audio] Preloading audio sounds [OK]');
|
|
10545
|
+
}
|
|
10538
10546
|
});
|
|
10539
10547
|
}
|
|
10540
10548
|
playBeepConfirm() {
|
|
@@ -10583,7 +10591,14 @@ class AudioProvider extends StartableService {
|
|
|
10583
10591
|
console.info(`[audio] Preloading sound '${sound.assetId}' [OK]`);
|
|
10584
10592
|
}
|
|
10585
10593
|
catch (err) {
|
|
10586
|
-
|
|
10594
|
+
const errorMsg = (err === null || err === void 0 ? void 0 : err.message) || err;
|
|
10595
|
+
if (errorMsg === 'Audio Asset already exists') {
|
|
10596
|
+
console.info(`[audio] Preloading sound '${sound.assetId}': Skipped (${errorMsg})`);
|
|
10597
|
+
}
|
|
10598
|
+
else {
|
|
10599
|
+
console.error(`[audio] Unable to preload sound '${sound.assetId}', from file '${assetPath}': ${errorMsg}\n${(err === null || err === void 0 ? void 0 : err.originalStack) || ''}`);
|
|
10600
|
+
throw err;
|
|
10601
|
+
}
|
|
10587
10602
|
}
|
|
10588
10603
|
});
|
|
10589
10604
|
}
|