speechrecorderng 3.4.3 → 3.4.5
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/action/action.mjs +3 -3
- package/esm2020/lib/audio/audio_display.mjs +9 -11
- package/esm2020/lib/audio/audio_player.mjs +4 -4
- package/esm2020/lib/audio/capture/capture.mjs +120 -106
- package/esm2020/lib/audio/io/stream.mjs +1 -1
- package/esm2020/lib/audio/net_audio_buffer.mjs +1 -1
- package/esm2020/lib/audio/playback/array_audio_buffer_source_node.mjs +2 -2
- package/esm2020/lib/audio/playback/audio_source_worklet_module_loader.mjs +2 -2
- package/esm2020/lib/audio/playback/inddb_audio_buffer_source_node.mjs +1 -1
- package/esm2020/lib/audio/ui/audio_canvas_layer_comp.mjs +7 -7
- package/esm2020/lib/audio/ui/audio_display_control.mjs +4 -4
- package/esm2020/lib/audio/ui/audio_display_scroll_pane.mjs +4 -4
- package/esm2020/lib/audio/ui/audiosignal.mjs +4 -4
- package/esm2020/lib/audio/ui/container.mjs +6 -6
- package/esm2020/lib/audio/ui/livelevel.mjs +4 -4
- package/esm2020/lib/audio/ui/scroll_pane_horizontal.mjs +4 -4
- package/esm2020/lib/audio/ui/sonagram.mjs +4 -4
- package/esm2020/lib/db/inddb.mjs +4 -4
- package/esm2020/lib/net/uploader.mjs +31 -28
- package/esm2020/lib/speechrecorder/project/project.service.mjs +7 -7
- package/esm2020/lib/speechrecorder/recordings/basic_recording.service.mjs +53 -51
- package/esm2020/lib/speechrecorder/recordings/recordings.service.mjs +124 -116
- package/esm2020/lib/speechrecorder/script/script.service.mjs +4 -4
- package/esm2020/lib/speechrecorder/session/audiorecorder.mjs +26 -27
- package/esm2020/lib/speechrecorder/session/basicrecorder.mjs +1 -1
- package/esm2020/lib/speechrecorder/session/controlpanel.mjs +34 -32
- package/esm2020/lib/speechrecorder/session/progress.mjs +4 -4
- package/esm2020/lib/speechrecorder/session/prompting.mjs +16 -16
- package/esm2020/lib/speechrecorder/session/recorder_combi_pane.mjs +4 -4
- package/esm2020/lib/speechrecorder/session/recording_list.mjs +4 -4
- package/esm2020/lib/speechrecorder/session/recordingfile/recording-file-meta.component.mjs +4 -4
- package/esm2020/lib/speechrecorder/session/recordingfile/recording-file-navi.component.mjs +6 -6
- package/esm2020/lib/speechrecorder/session/recordingfile/recording-file-u-i.component.mjs +20 -19
- package/esm2020/lib/speechrecorder/session/recordingfile/recording-file-view.component.mjs +43 -41
- package/esm2020/lib/speechrecorder/session/recordingfile/recordingfile-service.mjs +147 -137
- package/esm2020/lib/speechrecorder/session/session.service.mjs +15 -12
- package/esm2020/lib/speechrecorder/session/session_finished_dialog.mjs +4 -4
- package/esm2020/lib/speechrecorder/session/sessionmanager.mjs +4 -4
- package/esm2020/lib/speechrecorder/session/warning_bar.mjs +4 -4
- package/esm2020/lib/speechrecorder/spruploader.mjs +4 -4
- package/esm2020/lib/speechrecorder/startstopsignal/startstopsignal.mjs +1 -2
- package/esm2020/lib/speechrecorder/startstopsignal/ui/simpletrafficlight.mjs +4 -4
- package/esm2020/lib/speechrecorderng.component.mjs +6 -6
- package/esm2020/lib/speechrecorderng.module.mjs +5 -5
- package/esm2020/lib/spr.config.mjs +4 -4
- package/esm2020/lib/spr.module.version.mjs +2 -2
- package/esm2020/lib/ui/canvas_layer_comp.mjs +4 -4
- package/esm2020/lib/ui/message_dialog.mjs +4 -4
- package/esm2020/lib/ui/recordingitem_display.mjs +8 -8
- package/esm2020/lib/ui/responsive_component.mjs +4 -4
- package/esm2020/lib/utils/scrollIntoViewToBottom.mjs +4 -4
- package/fesm2015/speechrecorderng.mjs +744 -701
- package/fesm2015/speechrecorderng.mjs.map +1 -1
- package/fesm2020/speechrecorderng.mjs +744 -701
- package/fesm2020/speechrecorderng.mjs.map +1 -1
- package/lib/action/action.d.ts +1 -1
- package/lib/audio/audio_display.d.ts +1 -3
- package/lib/audio/capture/capture.d.ts +2 -0
- package/lib/audio/io/stream.d.ts +1 -1
- package/lib/net/uploader.d.ts +6 -6
- package/lib/speechrecorder/project/project.service.d.ts +4 -4
- package/lib/speechrecorder/script/script.service.d.ts +2 -2
- package/lib/speechrecorder/session/audiorecorder.d.ts +1 -2
- package/lib/speechrecorder/session/basicrecorder.d.ts +1 -1
- package/lib/speechrecorder/session/controlpanel.d.ts +1 -1
- package/lib/speechrecorder/session/session.service.d.ts +2 -2
- package/lib/spr.module.version.d.ts +1 -1
- package/package.json +14 -14
|
@@ -6,17 +6,15 @@ import { HttpErrorResponse, HttpHeaders, HttpClientModule } from '@angular/commo
|
|
|
6
6
|
import { timeout } from 'rxjs/operators';
|
|
7
7
|
import * as i1$1 from '@angular/common';
|
|
8
8
|
import { CommonModule } from '@angular/common';
|
|
9
|
-
import * as i1$2 from '@angular/router';
|
|
10
|
-
import { RouterModule } from '@angular/router';
|
|
11
9
|
import * as i4$1 from '@angular/material/checkbox';
|
|
12
10
|
import { MatCheckbox, MatCheckboxModule } from '@angular/material/checkbox';
|
|
13
11
|
import * as i2 from '@angular/material/icon';
|
|
14
12
|
import { MatIconModule } from '@angular/material/icon';
|
|
15
13
|
import * as i4 from '@angular/material/tooltip';
|
|
16
14
|
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
17
|
-
import * as i1$
|
|
15
|
+
import * as i1$2 from '@angular/cdk/layout';
|
|
18
16
|
import { Breakpoints } from '@angular/cdk/layout';
|
|
19
|
-
import * as i1$
|
|
17
|
+
import * as i1$3 from '@angular/material/dialog';
|
|
20
18
|
import { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';
|
|
21
19
|
import * as i3 from '@angular/material/button';
|
|
22
20
|
import { MatButtonModule } from '@angular/material/button';
|
|
@@ -25,13 +23,15 @@ import * as i3$1 from '@angular/material/progress-spinner';
|
|
|
25
23
|
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
|
26
24
|
import * as i7 from '@angular/material/progress-bar';
|
|
27
25
|
import { MatProgressBarModule } from '@angular/material/progress-bar';
|
|
26
|
+
import * as i4$2 from '@angular/router';
|
|
27
|
+
import { RouterModule } from '@angular/router';
|
|
28
28
|
import * as i3$2 from '@angular/material/card';
|
|
29
29
|
import { MatCardModule } from '@angular/material/card';
|
|
30
30
|
import { MatDividerModule } from '@angular/material/divider';
|
|
31
31
|
import { MatGridListModule } from '@angular/material/grid-list';
|
|
32
32
|
import * as i6 from '@angular/material/snack-bar';
|
|
33
33
|
import { MatSnackBarModule } from '@angular/material/snack-bar';
|
|
34
|
-
import * as i4$
|
|
34
|
+
import * as i4$3 from '@angular/material/table';
|
|
35
35
|
import { MatTableDataSource, MatTableModule } from '@angular/material/table';
|
|
36
36
|
import { MatSelectModule } from '@angular/material/select';
|
|
37
37
|
import { MatInputModule } from '@angular/material/input';
|
|
@@ -95,7 +95,7 @@ class Action {
|
|
|
95
95
|
ctrl.disabled = this.disabled;
|
|
96
96
|
this.controls.push(ctrl);
|
|
97
97
|
if (actionEventName) {
|
|
98
|
-
ctrl.addEventListener(actionEventName, (
|
|
98
|
+
ctrl.addEventListener(actionEventName, () => {
|
|
99
99
|
this.perform();
|
|
100
100
|
});
|
|
101
101
|
}
|
|
@@ -103,7 +103,7 @@ class Action {
|
|
|
103
103
|
}
|
|
104
104
|
}
|
|
105
105
|
removeControl(ctrl) {
|
|
106
|
-
|
|
106
|
+
const i = this.controls.indexOf(ctrl);
|
|
107
107
|
if (i >= 0) {
|
|
108
108
|
this.controls = this.controls.splice(i, 1);
|
|
109
109
|
}
|
|
@@ -947,7 +947,7 @@ class ArrayAudioBufferSourceNode extends AudioSourceNode {
|
|
|
947
947
|
}
|
|
948
948
|
};
|
|
949
949
|
}
|
|
950
|
-
fillBuffer(
|
|
950
|
+
fillBuffer() {
|
|
951
951
|
if (this._arrayAudioBuffer && this._audioInputStream && this._aisBufs) {
|
|
952
952
|
let filled = this.filledFrames;
|
|
953
953
|
let bufLen = 0;
|
|
@@ -1746,7 +1746,7 @@ const aswpStr = "\n" +
|
|
|
1746
1746
|
"\n" +
|
|
1747
1747
|
" let copied=0;\n" +
|
|
1748
1748
|
" do{\n" +
|
|
1749
|
-
" if(this.currentAudioBufferAvail
|
|
1749
|
+
" if(this.currentAudioBufferAvail===0){\n" +
|
|
1750
1750
|
" let nxtBuff=this.audioBuffers.shift();\n" +
|
|
1751
1751
|
" if(nxtBuff){\n" +
|
|
1752
1752
|
" this.currentAudioBuffer=nxtBuff;\n" +
|
|
@@ -3181,7 +3181,7 @@ class AudioCapture {
|
|
|
3181
3181
|
this.inddbAudioBuffer = null;
|
|
3182
3182
|
this.context = context;
|
|
3183
3183
|
this.n = navigator;
|
|
3184
|
-
this.context.addEventListener('statechange', (
|
|
3184
|
+
this.context.addEventListener('statechange', () => {
|
|
3185
3185
|
if (this.context.state !== 'running') {
|
|
3186
3186
|
this.close();
|
|
3187
3187
|
}
|
|
@@ -3327,6 +3327,104 @@ class AudioCapture {
|
|
|
3327
3327
|
console.log("Audio device: Id: " + di.deviceId + " groupId: " + di.groupId + " label: " + di.label + " kind: " + di.kind);
|
|
3328
3328
|
}
|
|
3329
3329
|
}
|
|
3330
|
+
addCaptureInterceptor() {
|
|
3331
|
+
const awn = new AudioWorkletNode(this.context, 'capture-interceptor');
|
|
3332
|
+
awn.onprocessorerror = (ev) => {
|
|
3333
|
+
let msg = 'Unknwon error';
|
|
3334
|
+
if (ev instanceof ErrorEvent) {
|
|
3335
|
+
msg = ev.message;
|
|
3336
|
+
}
|
|
3337
|
+
console.error("Capture audio worklet error: " + msg);
|
|
3338
|
+
if (this.listener) {
|
|
3339
|
+
this.listener.error(msg);
|
|
3340
|
+
}
|
|
3341
|
+
};
|
|
3342
|
+
let awnPt = awn.port;
|
|
3343
|
+
if (awnPt) {
|
|
3344
|
+
awnPt.onmessage = (ev) => {
|
|
3345
|
+
if (this.capturing) {
|
|
3346
|
+
let dt = ev.data;
|
|
3347
|
+
let chs = dt.chs;
|
|
3348
|
+
let adaLen = dt.data.length;
|
|
3349
|
+
if (DEBUG_TRACE_LEVEL > 8) {
|
|
3350
|
+
console.debug('Received data from worklet: ' + chs + ' ' + dt.len + ' Data chs: ' + adaLen);
|
|
3351
|
+
}
|
|
3352
|
+
let chunk = new Array(chs);
|
|
3353
|
+
const samples = this.framesRecorded * chs;
|
|
3354
|
+
if ((AudioStorageType.MEM_ENTIRE_AUTO_NET_CHUNKED === this.audioStorageType || AudioStorageType.MEM_CHUNKED_AUTO_NET_CHUNKED === this.audioStorageType) && this.data && samples > this._maxAutoNetMemStoreSamples) {
|
|
3355
|
+
this.data = null;
|
|
3356
|
+
}
|
|
3357
|
+
//console.debug("Data initialized: "+(this.data!=null));
|
|
3358
|
+
for (let ch = 0; ch < chs; ch++) {
|
|
3359
|
+
//console.debug("Data ch initialized: "+(this.data !=null && this.data[ch] !=null));
|
|
3360
|
+
if (ch < this.channelCount) {
|
|
3361
|
+
if (dt.data[ch]) {
|
|
3362
|
+
let fa = new Float32Array(dt.data[ch]);
|
|
3363
|
+
if (this.data && this.data[ch]) {
|
|
3364
|
+
this.data[ch].push(fa);
|
|
3365
|
+
}
|
|
3366
|
+
chunk[ch] = fa;
|
|
3367
|
+
// Use samples of channel 0 to count frames (samples)
|
|
3368
|
+
if (ch == 0) {
|
|
3369
|
+
this.framesRecorded += fa.length;
|
|
3370
|
+
}
|
|
3371
|
+
}
|
|
3372
|
+
}
|
|
3373
|
+
}
|
|
3374
|
+
if (this.audioOutStream) {
|
|
3375
|
+
try {
|
|
3376
|
+
this.audioOutStream.write(chunk);
|
|
3377
|
+
// // Random test error:
|
|
3378
|
+
// if(Math.random()>0.98) {
|
|
3379
|
+
// throw new Error('Test');
|
|
3380
|
+
// }
|
|
3381
|
+
}
|
|
3382
|
+
catch (err) {
|
|
3383
|
+
if (err instanceof Error) {
|
|
3384
|
+
this.persistError = err;
|
|
3385
|
+
}
|
|
3386
|
+
else {
|
|
3387
|
+
this.persistError = new Error('Error handling recorded audio data');
|
|
3388
|
+
}
|
|
3389
|
+
console.error("Capture error: " + err);
|
|
3390
|
+
try {
|
|
3391
|
+
this.stop();
|
|
3392
|
+
}
|
|
3393
|
+
catch (err2) {
|
|
3394
|
+
console.error("Capture next error (ignored): " + err2);
|
|
3395
|
+
}
|
|
3396
|
+
finally {
|
|
3397
|
+
if (this.listener) {
|
|
3398
|
+
let errExpl = '';
|
|
3399
|
+
if (err instanceof DOMException) {
|
|
3400
|
+
errExpl = ': ' + err.name + ': ' + err.message;
|
|
3401
|
+
}
|
|
3402
|
+
this.listener.error("Could not handle recorded audio data" + errExpl, "Please try to record again.");
|
|
3403
|
+
}
|
|
3404
|
+
else {
|
|
3405
|
+
this.close();
|
|
3406
|
+
}
|
|
3407
|
+
}
|
|
3408
|
+
}
|
|
3409
|
+
}
|
|
3410
|
+
if (AudioStorageType.DB_CHUNKED === this._audioStorageType && this._persistentAudioStorageTarget) {
|
|
3411
|
+
this.store();
|
|
3412
|
+
}
|
|
3413
|
+
}
|
|
3414
|
+
};
|
|
3415
|
+
}
|
|
3416
|
+
// Tried to fix that Safari does not record the second channel
|
|
3417
|
+
// Does not help
|
|
3418
|
+
//awn.channelCount=this.channelCount;
|
|
3419
|
+
//awn.channelCountMode='explicit';
|
|
3420
|
+
//console.debug('Channel count explicitly set to '+this.channelCount);
|
|
3421
|
+
this.bufferingNode = awn;
|
|
3422
|
+
//this.bufferingNode.channelCount=this.channelCount;
|
|
3423
|
+
this._opened = true;
|
|
3424
|
+
if (this.listener) {
|
|
3425
|
+
this.listener.opened();
|
|
3426
|
+
}
|
|
3427
|
+
}
|
|
3330
3428
|
open(channelCount, selDeviceId, autoGainControlConfigs) {
|
|
3331
3429
|
//console.debug("Capture open: ctx state: "+this.context.state);
|
|
3332
3430
|
if (this.context.state !== 'running') {
|
|
@@ -3450,7 +3548,7 @@ class AudioCapture {
|
|
|
3450
3548
|
audio: {
|
|
3451
3549
|
deviceId: selDeviceId,
|
|
3452
3550
|
channelCount: channelCount,
|
|
3453
|
-
echoCancellation: false
|
|
3551
|
+
//echoCancellation: false
|
|
3454
3552
|
},
|
|
3455
3553
|
video: false,
|
|
3456
3554
|
};
|
|
@@ -3503,108 +3601,21 @@ class AudioCapture {
|
|
|
3503
3601
|
//const workletFileName = ('file-loader!./interceptor_worklet.js');
|
|
3504
3602
|
//const workletFileName = 'http://localhost:4200/assets/interceptor_worklet.js';
|
|
3505
3603
|
//console.log(awpStr);
|
|
3506
|
-
|
|
3507
|
-
|
|
3508
|
-
|
|
3509
|
-
|
|
3510
|
-
|
|
3511
|
-
|
|
3512
|
-
|
|
3513
|
-
|
|
3514
|
-
|
|
3515
|
-
|
|
3516
|
-
|
|
3517
|
-
|
|
3518
|
-
|
|
3519
|
-
};
|
|
3520
|
-
|
|
3521
|
-
if (awnPt) {
|
|
3522
|
-
awnPt.onmessage = (ev) => {
|
|
3523
|
-
if (this.capturing) {
|
|
3524
|
-
let dt = ev.data;
|
|
3525
|
-
let chs = dt.chs;
|
|
3526
|
-
let adaLen = dt.data.length;
|
|
3527
|
-
if (DEBUG_TRACE_LEVEL > 8) {
|
|
3528
|
-
console.debug('Received data from worklet: ' + chs + ' ' + dt.len + ' Data chs: ' + adaLen);
|
|
3529
|
-
}
|
|
3530
|
-
let chunk = new Array(chs);
|
|
3531
|
-
const samples = this.framesRecorded * chs;
|
|
3532
|
-
if ((AudioStorageType.MEM_ENTIRE_AUTO_NET_CHUNKED === this.audioStorageType || AudioStorageType.MEM_CHUNKED_AUTO_NET_CHUNKED === this.audioStorageType) && this.data && samples > this._maxAutoNetMemStoreSamples) {
|
|
3533
|
-
this.data = null;
|
|
3534
|
-
}
|
|
3535
|
-
//console.debug("Data initialized: "+(this.data!=null));
|
|
3536
|
-
for (let ch = 0; ch < chs; ch++) {
|
|
3537
|
-
//console.debug("Data ch initialized: "+(this.data !=null && this.data[ch] !=null));
|
|
3538
|
-
if (ch < this.channelCount) {
|
|
3539
|
-
if (dt.data[ch]) {
|
|
3540
|
-
let fa = new Float32Array(dt.data[ch]);
|
|
3541
|
-
if (this.data && this.data[ch]) {
|
|
3542
|
-
this.data[ch].push(fa);
|
|
3543
|
-
}
|
|
3544
|
-
chunk[ch] = fa;
|
|
3545
|
-
// Use samples of channel 0 to count frames (samples)
|
|
3546
|
-
if (ch == 0) {
|
|
3547
|
-
this.framesRecorded += fa.length;
|
|
3548
|
-
}
|
|
3549
|
-
}
|
|
3550
|
-
}
|
|
3551
|
-
}
|
|
3552
|
-
if (this.audioOutStream) {
|
|
3553
|
-
try {
|
|
3554
|
-
this.audioOutStream.write(chunk);
|
|
3555
|
-
// // Random test error:
|
|
3556
|
-
// if(Math.random()>0.98) {
|
|
3557
|
-
// throw new Error('Test');
|
|
3558
|
-
// }
|
|
3559
|
-
}
|
|
3560
|
-
catch (err) {
|
|
3561
|
-
if (err instanceof Error) {
|
|
3562
|
-
this.persistError = err;
|
|
3563
|
-
}
|
|
3564
|
-
else {
|
|
3565
|
-
this.persistError = new Error('Error handling recorded audio data');
|
|
3566
|
-
}
|
|
3567
|
-
console.error("Capture error: " + err);
|
|
3568
|
-
try {
|
|
3569
|
-
this.stop();
|
|
3570
|
-
}
|
|
3571
|
-
catch (err2) {
|
|
3572
|
-
console.error("Capture next error (ignored): " + err2);
|
|
3573
|
-
}
|
|
3574
|
-
finally {
|
|
3575
|
-
if (this.listener) {
|
|
3576
|
-
let errExpl = '';
|
|
3577
|
-
if (err instanceof DOMException) {
|
|
3578
|
-
errExpl = ': ' + err.name + ': ' + err.message;
|
|
3579
|
-
}
|
|
3580
|
-
this.listener.error("Could not handle recorded audio data" + errExpl, "Please try to record again.");
|
|
3581
|
-
}
|
|
3582
|
-
else {
|
|
3583
|
-
this.close();
|
|
3584
|
-
}
|
|
3585
|
-
}
|
|
3586
|
-
}
|
|
3587
|
-
}
|
|
3588
|
-
if (AudioStorageType.DB_CHUNKED === this._audioStorageType && this._persistentAudioStorageTarget) {
|
|
3589
|
-
this.store();
|
|
3590
|
-
}
|
|
3591
|
-
}
|
|
3592
|
-
};
|
|
3593
|
-
}
|
|
3594
|
-
// Tried to fix that Safari does not record the second channel
|
|
3595
|
-
// Does not help
|
|
3596
|
-
//awn.channelCount=this.channelCount;
|
|
3597
|
-
//awn.channelCountMode='explicit';
|
|
3598
|
-
//console.debug('Channel count explicitly set to '+this.channelCount);
|
|
3599
|
-
this.bufferingNode = awn;
|
|
3600
|
-
//this.bufferingNode.channelCount=this.channelCount;
|
|
3601
|
-
this._opened = true;
|
|
3602
|
-
if (this.listener) {
|
|
3603
|
-
this.listener.opened();
|
|
3604
|
-
}
|
|
3605
|
-
}).catch((error) => {
|
|
3606
|
-
console.log('Could not add module ' + error);
|
|
3607
|
-
});
|
|
3604
|
+
if (AudioCapture.captureInterceptorModuleRegistered) {
|
|
3605
|
+
// Required capture interceptor module already registered
|
|
3606
|
+
this.addCaptureInterceptor();
|
|
3607
|
+
}
|
|
3608
|
+
else {
|
|
3609
|
+
// Register capture interceptor module
|
|
3610
|
+
let audioWorkletModuleBlob = new Blob([awpStr], { type: 'text/javascript' });
|
|
3611
|
+
let audioWorkletModuleBlobUrl = window.URL.createObjectURL(audioWorkletModuleBlob);
|
|
3612
|
+
this.context.audioWorklet.addModule(audioWorkletModuleBlobUrl).then(() => {
|
|
3613
|
+
AudioCapture.captureInterceptorModuleRegistered = true;
|
|
3614
|
+
this.addCaptureInterceptor();
|
|
3615
|
+
}).catch((error) => {
|
|
3616
|
+
console.log('Could not add module ' + error);
|
|
3617
|
+
});
|
|
3618
|
+
}
|
|
3608
3619
|
}
|
|
3609
3620
|
else if (this.context.createScriptProcessor) {
|
|
3610
3621
|
// The ScriptProcessorNode Interface - DEPRECATED Only as fallback
|
|
@@ -3807,7 +3818,9 @@ class AudioCapture {
|
|
|
3807
3818
|
}
|
|
3808
3819
|
}
|
|
3809
3820
|
close() {
|
|
3810
|
-
this.mediaStream
|
|
3821
|
+
if (this.mediaStream) {
|
|
3822
|
+
this.mediaStream.disconnect();
|
|
3823
|
+
}
|
|
3811
3824
|
if (this.stream) {
|
|
3812
3825
|
const mts = this.stream.getTracks();
|
|
3813
3826
|
for (let i = 0; i < mts.length; i++) {
|
|
@@ -3881,7 +3894,8 @@ class AudioCapture {
|
|
|
3881
3894
|
}
|
|
3882
3895
|
}
|
|
3883
3896
|
AudioCapture.BUFFER_SIZE = 8192;
|
|
3884
|
-
AudioCapture.DEFAULT_MAX_NET_AUTO_MEM_STORE_SAMPLES = 2880000 * 5; // Default 5 minute at 48kHz
|
|
3897
|
+
AudioCapture.DEFAULT_MAX_NET_AUTO_MEM_STORE_SAMPLES = 2880000 * 5; // Default 5 minute at 48kHz
|
|
3898
|
+
AudioCapture.captureInterceptorModuleRegistered = false;
|
|
3885
3899
|
|
|
3886
3900
|
class WavFileFormat {
|
|
3887
3901
|
}
|
|
@@ -4519,7 +4533,7 @@ class Uploader {
|
|
|
4519
4533
|
si += v.size;
|
|
4520
4534
|
}
|
|
4521
4535
|
else if (typeof v === 'string') {
|
|
4522
|
-
// encode to
|
|
4536
|
+
// encode to UTF-8 to get upload size
|
|
4523
4537
|
si += this.te.encode().length;
|
|
4524
4538
|
}
|
|
4525
4539
|
});
|
|
@@ -4557,34 +4571,37 @@ class Uploader {
|
|
|
4557
4571
|
// pipe(timeout()) is not the same as xhr.timeout
|
|
4558
4572
|
let uploadedUpload = null;
|
|
4559
4573
|
//console.debug("Post upload: "+ul)
|
|
4560
|
-
this.http.post(ul.url, ul.data, { withCredentials: this.withCredentials }).pipe(timeout(timeoVal)).subscribe(
|
|
4561
|
-
|
|
4562
|
-
|
|
4563
|
-
|
|
4564
|
-
|
|
4565
|
-
|
|
4566
|
-
|
|
4567
|
-
|
|
4568
|
-
|
|
4569
|
-
// The backend returned an unsuccessful response code.
|
|
4570
|
-
// The response body may contain clues as to what went wrong,
|
|
4571
|
-
console.error(`Upload error: Server returned code ${err.status}`);
|
|
4572
|
-
}
|
|
4573
|
-
this.processError(ul);
|
|
4574
|
-
}, () => {
|
|
4575
|
-
//console.debug('Upload complete method called')
|
|
4576
|
-
if (uploadedUpload) {
|
|
4577
|
-
if (this.DEBUG_DELAY > 0) {
|
|
4578
|
-
window.setTimeout(() => {
|
|
4579
|
-
this.uploadDone(ul);
|
|
4580
|
-
}, this.DEBUG_DELAY);
|
|
4574
|
+
this.http.post(ul.url, ul.data, { withCredentials: this.withCredentials }).pipe(timeout(timeoVal)).subscribe({
|
|
4575
|
+
next: (data) => {
|
|
4576
|
+
uploadedUpload = ul;
|
|
4577
|
+
//console.debug('Next method called for upload: '+uploadedUpload)
|
|
4578
|
+
},
|
|
4579
|
+
error: (err) => {
|
|
4580
|
+
if (err.error instanceof Error) {
|
|
4581
|
+
// A client-side or network error occurred. Handle it accordingly.
|
|
4582
|
+
console.error('Upload error occurred:', err.error.message);
|
|
4581
4583
|
}
|
|
4582
4584
|
else {
|
|
4583
|
-
|
|
4585
|
+
// The backend returned an unsuccessful response code.
|
|
4586
|
+
// The response body may contain clues as to what went wrong,
|
|
4587
|
+
console.error(`Upload error: Server returned code ${err.status}`);
|
|
4588
|
+
}
|
|
4589
|
+
this.processError(ul);
|
|
4590
|
+
}, complete: () => {
|
|
4591
|
+
//console.debug('Upload complete method called')
|
|
4592
|
+
if (uploadedUpload) {
|
|
4593
|
+
if (this.DEBUG_DELAY > 0) {
|
|
4594
|
+
window.setTimeout(() => {
|
|
4595
|
+
this.uploadDone(ul);
|
|
4596
|
+
}, this.DEBUG_DELAY);
|
|
4597
|
+
}
|
|
4598
|
+
else {
|
|
4599
|
+
this.uploadDone(uploadedUpload);
|
|
4600
|
+
}
|
|
4601
|
+
}
|
|
4602
|
+
else {
|
|
4603
|
+
console.error('Upload post complete, but upload not set in next method!');
|
|
4584
4604
|
}
|
|
4585
|
-
}
|
|
4586
|
-
else {
|
|
4587
|
-
console.error('Upload post complete, but upload not set in next method!');
|
|
4588
4605
|
}
|
|
4589
4606
|
});
|
|
4590
4607
|
}
|
|
@@ -4599,7 +4616,7 @@ class Uploader {
|
|
|
4599
4616
|
// set retry timer
|
|
4600
4617
|
this.retryTimerId = window.setTimeout(() => {
|
|
4601
4618
|
this.retryTimerRunning = false;
|
|
4602
|
-
//console.debug("Upload retry timer
|
|
4619
|
+
//console.debug("Upload retry timer expired. Continue processing...")
|
|
4603
4620
|
this.process();
|
|
4604
4621
|
}, this.RETRY_DELAY);
|
|
4605
4622
|
this.retryTimerRunning = true;
|
|
@@ -4683,9 +4700,9 @@ class SpeechRecorderConfig {
|
|
|
4683
4700
|
this.withCredentials = false;
|
|
4684
4701
|
}
|
|
4685
4702
|
}
|
|
4686
|
-
SpeechRecorderConfig.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
4687
|
-
SpeechRecorderConfig.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.
|
|
4688
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
4703
|
+
SpeechRecorderConfig.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: SpeechRecorderConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
4704
|
+
SpeechRecorderConfig.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: SpeechRecorderConfig });
|
|
4705
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: SpeechRecorderConfig, decorators: [{
|
|
4689
4706
|
type: Injectable
|
|
4690
4707
|
}], ctorParameters: function () { return []; } });
|
|
4691
4708
|
|
|
@@ -4693,12 +4710,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
4693
4710
|
* Created by klausj on 17.06.2017.
|
|
4694
4711
|
*/
|
|
4695
4712
|
class ProjectService {
|
|
4696
|
-
constructor(http,
|
|
4713
|
+
constructor(http, platformLocation, config) {
|
|
4697
4714
|
this.http = http;
|
|
4698
|
-
this.
|
|
4715
|
+
this.platformLocation = platformLocation;
|
|
4699
4716
|
this.config = config;
|
|
4700
4717
|
this.withCredentials = false;
|
|
4701
|
-
console.log("Base Href: " +
|
|
4718
|
+
console.log("Base Href: " + platformLocation.getBaseHrefFromDOM());
|
|
4702
4719
|
let apiEndPoint = '';
|
|
4703
4720
|
if (config && config.apiEndPoint) {
|
|
4704
4721
|
apiEndPoint = config.apiEndPoint;
|
|
@@ -4737,9 +4754,9 @@ class ProjectService {
|
|
|
4737
4754
|
}
|
|
4738
4755
|
}
|
|
4739
4756
|
ProjectService.PROJECT_API_CTX = 'project';
|
|
4740
|
-
ProjectService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
4741
|
-
ProjectService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.
|
|
4742
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
4757
|
+
ProjectService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ProjectService, deps: [{ token: i1.HttpClient }, { token: i1$1.PlatformLocation }, { token: SPEECHRECORDER_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
4758
|
+
ProjectService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ProjectService });
|
|
4759
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ProjectService, decorators: [{
|
|
4743
4760
|
type: Injectable
|
|
4744
4761
|
}], ctorParameters: function () {
|
|
4745
4762
|
return [{ type: i1.HttpClient }, { type: i1$1.PlatformLocation }, { type: SpeechRecorderConfig, decorators: [{
|
|
@@ -4783,23 +4800,26 @@ class SessionService {
|
|
|
4783
4800
|
let wrapObs = new Observable(subscriber => {
|
|
4784
4801
|
this._uploadCount++;
|
|
4785
4802
|
let obs = this.http.patch(sesssUrl, body, { withCredentials: this.withCredentials });
|
|
4786
|
-
obs.subscribe(
|
|
4787
|
-
|
|
4788
|
-
|
|
4789
|
-
|
|
4790
|
-
|
|
4791
|
-
|
|
4792
|
-
|
|
4793
|
-
|
|
4803
|
+
obs.subscribe({
|
|
4804
|
+
next: (value) => {
|
|
4805
|
+
subscriber.next(value);
|
|
4806
|
+
},
|
|
4807
|
+
error: error => {
|
|
4808
|
+
this._uploadCount--;
|
|
4809
|
+
subscriber.error(error);
|
|
4810
|
+
}, complete: () => {
|
|
4811
|
+
this._uploadCount--;
|
|
4812
|
+
subscriber.complete();
|
|
4813
|
+
}
|
|
4794
4814
|
});
|
|
4795
4815
|
});
|
|
4796
4816
|
return wrapObs;
|
|
4797
4817
|
}
|
|
4798
4818
|
}
|
|
4799
4819
|
SessionService.SESSION_API_CTX = 'session';
|
|
4800
|
-
SessionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
4801
|
-
SessionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.
|
|
4802
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
4820
|
+
SessionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: SessionService, deps: [{ token: i1.HttpClient }, { token: SPEECHRECORDER_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
4821
|
+
SessionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: SessionService });
|
|
4822
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: SessionService, decorators: [{
|
|
4803
4823
|
type: Injectable
|
|
4804
4824
|
}], ctorParameters: function () {
|
|
4805
4825
|
return [{ type: i1.HttpClient }, { type: SpeechRecorderConfig, decorators: [{
|
|
@@ -4840,8 +4860,8 @@ class SimpleTrafficLight {
|
|
|
4840
4860
|
}
|
|
4841
4861
|
}
|
|
4842
4862
|
}
|
|
4843
|
-
SimpleTrafficLight.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
4844
|
-
SimpleTrafficLight.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.
|
|
4863
|
+
SimpleTrafficLight.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: SimpleTrafficLight, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
4864
|
+
SimpleTrafficLight.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: SimpleTrafficLight, selector: "app-simpletrafficlight", inputs: { status: "status" }, ngImport: i0, template: `
|
|
4845
4865
|
|
|
4846
4866
|
<div>
|
|
4847
4867
|
<div class="circle {{lighttop}}"></div>
|
|
@@ -4849,7 +4869,7 @@ SimpleTrafficLight.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ver
|
|
|
4849
4869
|
<div class="circle {{lightbottom}}"></div>
|
|
4850
4870
|
</div>
|
|
4851
4871
|
`, isInline: true, styles: [".circle{width:50px;height:50px;border-radius:50%;margin:5px;background:grey}\n", ".red{background:red}\n", ".yellow{background:yellow}\n", ".green{background:green}\n", ".black{background:black}\n", ":host{display:flex;flex-direction:column;background:black;padding:2px;height:170px;max-height:170px;flex:0 0 content}\n"] });
|
|
4852
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
4872
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: SimpleTrafficLight, decorators: [{
|
|
4853
4873
|
type: Component,
|
|
4854
4874
|
args: [{ selector: 'app-simpletrafficlight', template: `
|
|
4855
4875
|
|
|
@@ -4920,9 +4940,9 @@ class CanvasLayerComponent {
|
|
|
4920
4940
|
}
|
|
4921
4941
|
}
|
|
4922
4942
|
}
|
|
4923
|
-
CanvasLayerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
4924
|
-
CanvasLayerComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.
|
|
4925
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
4943
|
+
CanvasLayerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: CanvasLayerComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
4944
|
+
CanvasLayerComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: CanvasLayerComponent, ngImport: i0 });
|
|
4945
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: CanvasLayerComponent, decorators: [{
|
|
4926
4946
|
type: Directive
|
|
4927
4947
|
}], ctorParameters: function () { return []; } });
|
|
4928
4948
|
|
|
@@ -5164,9 +5184,9 @@ class BasicAudioCanvasLayerComponent extends CanvasLayerComponent {
|
|
|
5164
5184
|
}
|
|
5165
5185
|
}
|
|
5166
5186
|
}
|
|
5167
|
-
BasicAudioCanvasLayerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
5168
|
-
BasicAudioCanvasLayerComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.
|
|
5169
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
5187
|
+
BasicAudioCanvasLayerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: BasicAudioCanvasLayerComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
5188
|
+
BasicAudioCanvasLayerComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: BasicAudioCanvasLayerComponent, usesInheritance: true, ngImport: i0 });
|
|
5189
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: BasicAudioCanvasLayerComponent, decorators: [{
|
|
5170
5190
|
type: Directive
|
|
5171
5191
|
}] });
|
|
5172
5192
|
class AudioCanvasLayerComponent extends BasicAudioCanvasLayerComponent {
|
|
@@ -5343,9 +5363,9 @@ class AudioCanvasLayerComponent extends BasicAudioCanvasLayerComponent {
|
|
|
5343
5363
|
}
|
|
5344
5364
|
}
|
|
5345
5365
|
AudioCanvasLayerComponent.ENABLE_STREAMING_NUMBER_OF_SAMPLES_THRESHOLD = 10 * 60 * 48000; // Use streaming/chunking if audio clip has more than this number of samples
|
|
5346
|
-
AudioCanvasLayerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
5347
|
-
AudioCanvasLayerComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.
|
|
5348
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
5366
|
+
AudioCanvasLayerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AudioCanvasLayerComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
5367
|
+
AudioCanvasLayerComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: AudioCanvasLayerComponent, inputs: { pointerPosition: "pointerPosition", selecting: "selecting", selection: "selection" }, outputs: { pointerPositionEventEmitter: "pointerPositionEventEmitter", selectingEventEmitter: "selectingEventEmitter", selectedEventEmitter: "selectedEventEmitter" }, host: { listeners: { "document:mouseup": "onMouseup($event)" } }, viewQueries: [{ propertyName: "bgCanvasRef", first: true, predicate: ["bg"], descendants: true, static: true }, { propertyName: "cursorCanvasRef", first: true, predicate: ["cursor"], descendants: true, static: true }], usesInheritance: true, ngImport: i0 });
|
|
5368
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AudioCanvasLayerComponent, decorators: [{
|
|
5349
5369
|
type: Directive
|
|
5350
5370
|
}], propDecorators: { bgCanvasRef: [{
|
|
5351
5371
|
type: ViewChild,
|
|
@@ -5875,14 +5895,14 @@ class AudioSignal extends AudioCanvasLayerComponent {
|
|
|
5875
5895
|
this.playFramePosition = 0;
|
|
5876
5896
|
}
|
|
5877
5897
|
}
|
|
5878
|
-
AudioSignal.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
5879
|
-
AudioSignal.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.
|
|
5898
|
+
AudioSignal.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AudioSignal, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
5899
|
+
AudioSignal.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: AudioSignal, selector: "audio-signal", viewQueries: [{ propertyName: "audioSignalCanvasRef", first: true, predicate: ["audioSignal"], descendants: true, static: true }, { propertyName: "playPosCanvasRef", first: true, predicate: ["marker"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: `
|
|
5880
5900
|
<canvas #bg height="10"></canvas>
|
|
5881
5901
|
<canvas #audioSignal height="10"></canvas>
|
|
5882
5902
|
<canvas #cursor height="10" (mousedown)="selectionStart($event)" (mouseover)="updateCursorCanvas($event)" (mousemove)="updateCursorCanvas($event)"
|
|
5883
5903
|
(mouseleave)="updateCursorCanvas($event, false)"></canvas>
|
|
5884
5904
|
<canvas #marker height="10"></canvas>`, isInline: true, styles: [":host{min-height:0px}\n", "canvas{top:0;left:0;width:0;height:0;min-height:0px;position:absolute}\n"] });
|
|
5885
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
5905
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AudioSignal, decorators: [{
|
|
5886
5906
|
type: Component,
|
|
5887
5907
|
args: [{ selector: 'audio-signal', template: `
|
|
5888
5908
|
<canvas #bg height="10"></canvas>
|
|
@@ -7021,14 +7041,14 @@ class Sonagram extends AudioCanvasLayerComponent {
|
|
|
7021
7041
|
this.playFramePosition = 0;
|
|
7022
7042
|
}
|
|
7023
7043
|
}
|
|
7024
|
-
Sonagram.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
7025
|
-
Sonagram.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.
|
|
7044
|
+
Sonagram.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: Sonagram, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
7045
|
+
Sonagram.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: Sonagram, selector: "audio-sonagram", viewQueries: [{ propertyName: "sonagramCanvasRef", first: true, predicate: ["sonagram"], descendants: true, static: true }, { propertyName: "markerCanvasRef", first: true, predicate: ["marker"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: `
|
|
7026
7046
|
<canvas #sonagram height="10"></canvas>
|
|
7027
7047
|
<canvas #bg height="10"></canvas>
|
|
7028
7048
|
<canvas #cursor height="10" (mousedown)="selectionStart($event)" (mouseover)="updateCursorCanvas($event)" (mousemove)="updateCursorCanvas($event)"
|
|
7029
7049
|
(mouseleave)="updateCursorCanvas($event, false)"></canvas>
|
|
7030
7050
|
<canvas #marker height="10"></canvas>`, isInline: true, styles: [":host{min-height:0px}\n", "canvas{top:0;left:0;width:0;height:0;min-height:0px;position:absolute}\n"] });
|
|
7031
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
7051
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: Sonagram, decorators: [{
|
|
7032
7052
|
type: Component,
|
|
7033
7053
|
args: [{ selector: 'audio-sonagram', template: `
|
|
7034
7054
|
<canvas #sonagram height="10"></canvas>
|
|
@@ -7401,16 +7421,16 @@ class AudioClipUIContainer extends BasicAudioCanvasLayerComponent {
|
|
|
7401
7421
|
}
|
|
7402
7422
|
}
|
|
7403
7423
|
AudioClipUIContainer.DIVIDER_PIXEL_SIZE = 10;
|
|
7404
|
-
AudioClipUIContainer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
7405
|
-
AudioClipUIContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.
|
|
7424
|
+
AudioClipUIContainer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AudioClipUIContainer, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
7425
|
+
AudioClipUIContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: AudioClipUIContainer, selector: "app-audio", inputs: { audioData: "audioData", audioClip: "audioClip" }, outputs: { selectionEventEmitter: "selectionEventEmitter" }, host: { listeners: { "window:resize": "onResize($event)", "document:mouseup": "onMouseup($event)", "document:mousemove": "onMousemove($event)" } }, viewQueries: [{ propertyName: "canvasRef", first: true, predicate: ["divider"], descendants: true, static: true }, { propertyName: "ceRef", first: true, predicate: ["virtualCanvas"], descendants: true, static: true }, { propertyName: "as", first: true, predicate: AudioSignal, descendants: true, static: true }, { propertyName: "so", first: true, predicate: Sonagram, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: `
|
|
7406
7426
|
<div #virtualCanvas>
|
|
7407
7427
|
<canvas #divider (mousedown)="mousedown($event)" (mouseover)="mouseover($event)"
|
|
7408
7428
|
(mouseleave)="mouseleave($event)" height="10"></canvas>
|
|
7409
7429
|
<audio-signal [pointerPosition]="pointer" [selecting]="selecting" [selection]="selection" (pointerPositionEventEmitter)="pointerPositionChanged($event)" (selectingEventEmitter)="selectingChanged($event)" (selectedEventEmitter)="selectionChanged($event)"></audio-signal>
|
|
7410
7430
|
<audio-sonagram [pointerPosition]="pointer" [selecting]="selecting" [selection]="selection" (pointerPositionEventEmitter)="pointerPositionChanged($event)" (selectingEventEmitter)="selectingChanged($event)" (selectedEventEmitter)="selectionChanged($event)"></audio-sonagram>
|
|
7411
7431
|
</div>
|
|
7412
|
-
`, isInline: true, styles: ["div{margin:0;padding:0;top:0;left:0;width:100%;height:100%;position:relative;box-sizing:border-box;transform:none;overflow:hidden}\n", "canvas{top:0;left:0;width:0;height:0;cursor:ns-resize;position:absolute;
|
|
7413
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
7432
|
+
`, isInline: true, styles: ["div{margin:0;padding:0;top:0;left:0;width:100%;height:100%;position:relative;box-sizing:border-box;transform:none;overflow:hidden}\n", "canvas{top:0;left:0;width:0;height:0;cursor:ns-resize;position:absolute;z-index:1;transform:none}\n", "audio-signal{top:0;left:0;position:absolute;z-index:1;transform:none}\n", "audio-sonagram{top:0;left:0;position:absolute;z-index:1;transform:none}\n"], dependencies: [{ kind: "component", type: AudioSignal, selector: "audio-signal" }, { kind: "component", type: Sonagram, selector: "audio-sonagram" }] });
|
|
7433
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AudioClipUIContainer, decorators: [{
|
|
7414
7434
|
type: Component,
|
|
7415
7435
|
args: [{ selector: 'app-audio', template: `
|
|
7416
7436
|
<div #virtualCanvas>
|
|
@@ -7419,7 +7439,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
7419
7439
|
<audio-signal [pointerPosition]="pointer" [selecting]="selecting" [selection]="selection" (pointerPositionEventEmitter)="pointerPositionChanged($event)" (selectingEventEmitter)="selectingChanged($event)" (selectedEventEmitter)="selectionChanged($event)"></audio-signal>
|
|
7420
7440
|
<audio-sonagram [pointerPosition]="pointer" [selecting]="selecting" [selection]="selection" (pointerPositionEventEmitter)="pointerPositionChanged($event)" (selectingEventEmitter)="selectingChanged($event)" (selectedEventEmitter)="selectionChanged($event)"></audio-sonagram>
|
|
7421
7441
|
</div>
|
|
7422
|
-
`, styles: ["div{margin:0;padding:0;top:0;left:0;width:100%;height:100%;position:relative;box-sizing:border-box;transform:none;overflow:hidden}\n", "canvas{top:0;left:0;width:0;height:0;cursor:ns-resize;position:absolute;
|
|
7442
|
+
`, styles: ["div{margin:0;padding:0;top:0;left:0;width:100%;height:100%;position:relative;box-sizing:border-box;transform:none;overflow:hidden}\n", "canvas{top:0;left:0;width:0;height:0;cursor:ns-resize;position:absolute;z-index:1;transform:none}\n", "audio-signal{top:0;left:0;position:absolute;z-index:1;transform:none}\n", "audio-sonagram{top:0;left:0;position:absolute;z-index:1;transform:none}\n"] }]
|
|
7423
7443
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { canvasRef: [{
|
|
7424
7444
|
type: ViewChild,
|
|
7425
7445
|
args: ['divider', { static: true }]
|
|
@@ -7555,13 +7575,13 @@ class AudioDisplayScrollPane {
|
|
|
7555
7575
|
this.ac.playFramePosition = framePos;
|
|
7556
7576
|
}
|
|
7557
7577
|
}
|
|
7558
|
-
AudioDisplayScrollPane.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
7559
|
-
AudioDisplayScrollPane.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.
|
|
7578
|
+
AudioDisplayScrollPane.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AudioDisplayScrollPane, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
7579
|
+
AudioDisplayScrollPane.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: AudioDisplayScrollPane, selector: "audio-display-scroll-pane", inputs: { audioClip: "audioClip" }, outputs: { zoomInAction: "zoomInAction", zoomOutAction: "zoomOutAction", zoomSelectedAction: "zoomSelectedAction", zoomFitToPanelAction: "zoomFitToPanelAction" }, host: { listeners: { "scroll": "onScroll($event)", "window:resize": "onResize($event)" } }, viewQueries: [{ propertyName: "ac", first: true, predicate: AudioClipUIContainer, descendants: true, static: true }], ngImport: i0, template: `
|
|
7560
7580
|
|
|
7561
7581
|
<app-audio #audioSignalContainer (selectionEventEmitter)="selectionChanged($event)"></app-audio>
|
|
7562
7582
|
|
|
7563
7583
|
`, isInline: true, styles: [":host{flex:2;width:100%;background:darkgray;box-sizing:border-box;height:100%;position:relative;overflow-x:scroll;overflow-y:auto}\n", "app-audio{margin:0;padding:0;top:0;left:0;width:100%;height:100%;box-sizing:border-box}\n"], dependencies: [{ kind: "component", type: AudioClipUIContainer, selector: "app-audio", inputs: ["audioData", "audioClip"], outputs: ["selectionEventEmitter"] }] });
|
|
7564
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
7584
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AudioDisplayScrollPane, decorators: [{
|
|
7565
7585
|
type: Component,
|
|
7566
7586
|
args: [{ selector: 'audio-display-scroll-pane', template: `
|
|
7567
7587
|
|
|
@@ -7618,8 +7638,8 @@ class AudioDisplayControl {
|
|
|
7618
7638
|
this.status = 'ERROR';
|
|
7619
7639
|
}
|
|
7620
7640
|
}
|
|
7621
|
-
AudioDisplayControl.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
7622
|
-
AudioDisplayControl.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.
|
|
7641
|
+
AudioDisplayControl.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AudioDisplayControl, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7642
|
+
AudioDisplayControl.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: AudioDisplayControl, selector: "audio-display-control", inputs: { audioClip: "audioClip", playStartAction: "playStartAction", playSelectionAction: "playSelectionAction", playStopAction: "playStopAction", zoomInAction: "zoomInAction", zoomOutAction: "zoomOutAction", zoomFitToPanelAction: "zoomFitToPanelAction", zoomSelectedAction: "zoomSelectedAction", autoPlayOnSelectToggleAction: "autoPlayOnSelectToggleAction" }, viewQueries: [{ propertyName: "autoplaySelectedCheckbox", first: true, predicate: MatCheckbox, descendants: true, static: true }], ngImport: i0, template: `
|
|
7623
7643
|
<div #controlPanel style="display:flex;flex-direction: row;">
|
|
7624
7644
|
<fieldset>
|
|
7625
7645
|
|
|
@@ -7663,7 +7683,7 @@ AudioDisplayControl.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ve
|
|
|
7663
7683
|
|
|
7664
7684
|
</fieldset>
|
|
7665
7685
|
</div>`, isInline: true, styles: [":host{flex:0}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i4$1.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }] });
|
|
7666
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
7686
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AudioDisplayControl, decorators: [{
|
|
7667
7687
|
type: Component,
|
|
7668
7688
|
args: [{ selector: 'audio-display-control', template: `
|
|
7669
7689
|
<div #controlPanel style="display:flex;flex-direction: row;">
|
|
@@ -7733,8 +7753,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
7733
7753
|
}] } });
|
|
7734
7754
|
|
|
7735
7755
|
class AudioDisplay {
|
|
7736
|
-
constructor(
|
|
7737
|
-
this.route = route;
|
|
7756
|
+
constructor(ref, eRef) {
|
|
7738
7757
|
this.ref = ref;
|
|
7739
7758
|
this.eRef = eRef;
|
|
7740
7759
|
this._audioClip = null;
|
|
@@ -7797,8 +7816,8 @@ class AudioDisplay {
|
|
|
7797
7816
|
this.status = 'ERROR';
|
|
7798
7817
|
}
|
|
7799
7818
|
}
|
|
7800
|
-
AudioDisplay.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
7801
|
-
AudioDisplay.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.
|
|
7819
|
+
AudioDisplay.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AudioDisplay, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
7820
|
+
AudioDisplay.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: AudioDisplay, selector: "app-audiodisplay", inputs: { playStartAction: "playStartAction", playStopAction: "playStopAction", playSelectionAction: "playSelectionAction", autoPlayOnSelectToggleAction: "autoPlayOnSelectToggleAction", audioData: "audioData", audioClip: "audioClip" }, viewQueries: [{ propertyName: "audioDisplayScrollPane", first: true, predicate: AudioDisplayScrollPane, descendants: true, static: true }], ngImport: i0, template: `
|
|
7802
7821
|
|
|
7803
7822
|
<audio-display-scroll-pane #audioDisplayScrollPane></audio-display-scroll-pane>
|
|
7804
7823
|
|
|
@@ -7812,7 +7831,7 @@ AudioDisplay.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version:
|
|
|
7812
7831
|
[zoomSelectedAction]="zoomSelectedAction"
|
|
7813
7832
|
[zoomFitToPanelAction]="zoomFitToPanelAction"></audio-display-control>
|
|
7814
7833
|
`, isInline: true, styles: [":host{display:flex;flex-direction:column;position:absolute;bottom:0;height:100%;width:100%;overflow:hidden;padding:20px;z-index:5;box-sizing:border-box;background-color:#e6e6e6}\n", "legend{margin-left:1em;padding:.2em .8em;font-size:.8em}\n", "fieldset{border:1px darkgray solid}\n"], dependencies: [{ kind: "component", type: AudioDisplayScrollPane, selector: "audio-display-scroll-pane", inputs: ["audioClip"], outputs: ["zoomInAction", "zoomOutAction", "zoomSelectedAction", "zoomFitToPanelAction"] }, { kind: "component", type: AudioDisplayControl, selector: "audio-display-control", inputs: ["audioClip", "playStartAction", "playSelectionAction", "playStopAction", "zoomInAction", "zoomOutAction", "zoomFitToPanelAction", "zoomSelectedAction", "autoPlayOnSelectToggleAction"] }] });
|
|
7815
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
7834
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AudioDisplay, decorators: [{
|
|
7816
7835
|
type: Component,
|
|
7817
7836
|
args: [{ selector: 'app-audiodisplay', template: `
|
|
7818
7837
|
|
|
@@ -7828,7 +7847,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
7828
7847
|
[zoomSelectedAction]="zoomSelectedAction"
|
|
7829
7848
|
[zoomFitToPanelAction]="zoomFitToPanelAction"></audio-display-control>
|
|
7830
7849
|
`, styles: [":host{display:flex;flex-direction:column;position:absolute;bottom:0;height:100%;width:100%;overflow:hidden;padding:20px;z-index:5;box-sizing:border-box;background-color:#e6e6e6}\n", "legend{margin-left:1em;padding:.2em .8em;font-size:.8em}\n", "fieldset{border:1px darkgray solid}\n"] }]
|
|
7831
|
-
}], ctorParameters: function () { return [{ type:
|
|
7850
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }]; }, propDecorators: { playStartAction: [{
|
|
7832
7851
|
type: Input
|
|
7833
7852
|
}], playStopAction: [{
|
|
7834
7853
|
type: Input
|
|
@@ -7859,11 +7878,11 @@ class ResponsiveComponent {
|
|
|
7859
7878
|
});
|
|
7860
7879
|
}
|
|
7861
7880
|
}
|
|
7862
|
-
ResponsiveComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
7863
|
-
ResponsiveComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.
|
|
7864
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
7881
|
+
ResponsiveComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ResponsiveComponent, deps: [{ token: i1$2.BreakpointObserver }], target: i0.ɵɵFactoryTarget.Directive });
|
|
7882
|
+
ResponsiveComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: ResponsiveComponent, ngImport: i0 });
|
|
7883
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ResponsiveComponent, decorators: [{
|
|
7865
7884
|
type: Directive
|
|
7866
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
7885
|
+
}], ctorParameters: function () { return [{ type: i1$2.BreakpointObserver }]; } });
|
|
7867
7886
|
|
|
7868
7887
|
class ScrollIntoViewDirective {
|
|
7869
7888
|
constructor(elRef) {
|
|
@@ -7875,9 +7894,9 @@ class ScrollIntoViewDirective {
|
|
|
7875
7894
|
}
|
|
7876
7895
|
}
|
|
7877
7896
|
}
|
|
7878
|
-
ScrollIntoViewDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
7879
|
-
ScrollIntoViewDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.
|
|
7880
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
7897
|
+
ScrollIntoViewDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ScrollIntoViewDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
7898
|
+
ScrollIntoViewDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: ScrollIntoViewDirective, selector: "[scrollIntoViewToBottom]", inputs: { scrollIntoViewToBottom: "scrollIntoViewToBottom" }, ngImport: i0 });
|
|
7899
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ScrollIntoViewDirective, decorators: [{
|
|
7881
7900
|
type: Directive,
|
|
7882
7901
|
args: [{
|
|
7883
7902
|
selector: "[scrollIntoViewToBottom]"
|
|
@@ -7924,8 +7943,8 @@ class Progress {
|
|
|
7924
7943
|
return cached;
|
|
7925
7944
|
}
|
|
7926
7945
|
}
|
|
7927
|
-
Progress.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
7928
|
-
Progress.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.
|
|
7946
|
+
Progress.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: Progress, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7947
|
+
Progress.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: Progress, selector: "app-sprprogress", inputs: { items: "items", selectedItemIdx: "selectedItemIdx", enableDownload: "enableDownload" }, outputs: { onRowSelect: "onRowSelect", rowSelect: "rowSelect", onShowDoneAction: "onShowDoneAction", clickDone: "clickDone", onDownloadDoneAction: "onDownloadDoneAction", clickDownloadDone: "clickDownloadDone" }, ngImport: i0, template: `
|
|
7929
7948
|
|
|
7930
7949
|
<table class="mat-typography">
|
|
7931
7950
|
<thead>
|
|
@@ -7954,7 +7973,7 @@ Progress.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.
|
|
|
7954
7973
|
</tbody>
|
|
7955
7974
|
</table>
|
|
7956
7975
|
`, isInline: true, styles: [":host{overflow-x:hidden;overflow-y:scroll;padding:10pt;flex:.1 0 content;background:white;min-height:1px}\n", "table{min-height:1px;border-collapse:collapse}table,th,td{border:1px solid lightgrey;padding:.5em}\n", ".selRow{background:lightblue}\n", ".promptDescriptor{max-width:200px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: ScrollIntoViewDirective, selector: "[scrollIntoViewToBottom]", inputs: ["scrollIntoViewToBottom"] }] });
|
|
7957
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
7976
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: Progress, decorators: [{
|
|
7958
7977
|
type: Component,
|
|
7959
7978
|
args: [{ selector: 'app-sprprogress', template: `
|
|
7960
7979
|
|
|
@@ -8017,12 +8036,12 @@ class Recinstructions {
|
|
|
8017
8036
|
return riTxt;
|
|
8018
8037
|
}
|
|
8019
8038
|
}
|
|
8020
|
-
Recinstructions.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
8021
|
-
Recinstructions.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.
|
|
8039
|
+
Recinstructions.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: Recinstructions, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
8040
|
+
Recinstructions.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: Recinstructions, selector: "spr-recinstructions", inputs: { recinstructions: "recinstructions", selectedItemIdx: "selectedItemIdx", itemCount: "itemCount" }, ngImport: i0, template: `
|
|
8022
8041
|
|
|
8023
8042
|
{{displayText()}}
|
|
8024
8043
|
`, isInline: true, styles: [":host{justify-content:left;align-items:flex-start;background:white;text-align:left;font-size:1em;flex:0;width:100%}\n"] });
|
|
8025
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
8044
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: Recinstructions, decorators: [{
|
|
8026
8045
|
type: Component,
|
|
8027
8046
|
args: [{ selector: 'spr-recinstructions', template: `
|
|
8028
8047
|
|
|
@@ -8196,13 +8215,13 @@ class Prompter {
|
|
|
8196
8215
|
}
|
|
8197
8216
|
}
|
|
8198
8217
|
}
|
|
8199
|
-
Prompter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
8200
|
-
Prompter.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.
|
|
8218
|
+
Prompter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: Prompter, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: ProjectService }], target: i0.ɵɵFactoryTarget.Component });
|
|
8219
|
+
Prompter.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: Prompter, selector: "app-sprprompter", inputs: { projectName: "projectName", prompterHeight: "prompterHeight", promptMediaItems: "promptMediaItems" }, host: { properties: { "class.fill": "this.prompterStyleFill" } }, ngImport: i0, template: `
|
|
8201
8220
|
|
|
8202
8221
|
<!--<ng-template [ngIf]="text">{{text}}</ng-template>-->
|
|
8203
8222
|
<!-- <img *ngIf="src" #promptImage [src]="srcUrl()" [height]="prompterHeight-20" /> -->
|
|
8204
8223
|
`, isInline: true, styles: [":host{justify-content:center;align-items:center;background:white;text-align:center;line-height:1.2em;font-weight:700;flex:0 1}\n", ":host(.fill){flex:3;width:100%;height:100%;max-height:100%;max-width:100%;vertical-align:middle}\n"] });
|
|
8205
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
8224
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: Prompter, decorators: [{
|
|
8206
8225
|
type: Component,
|
|
8207
8226
|
args: [{ selector: 'app-sprprompter', template: `
|
|
8208
8227
|
|
|
@@ -8350,11 +8369,11 @@ class PromptContainer {
|
|
|
8350
8369
|
}
|
|
8351
8370
|
}
|
|
8352
8371
|
}
|
|
8353
|
-
PromptContainer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
8354
|
-
PromptContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.
|
|
8372
|
+
PromptContainer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: PromptContainer, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
8373
|
+
PromptContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: PromptContainer, selector: "app-sprpromptcontainer", inputs: { projectName: "projectName", mediaitems: "mediaitems" }, host: { listeners: { "window:resize": "onResize($event)" } }, viewQueries: [{ propertyName: "prompter", first: true, predicate: Prompter, descendants: true, static: true }], ngImport: i0, template: `
|
|
8355
8374
|
<app-sprprompter #prompter [projectName]="projectName" [promptMediaItems]="mediaitems" [style.font-size]="fontSize+'px'" [style.visibility]="prDisplay" [prompterHeight]="prompterHeight"></app-sprprompter>
|
|
8356
8375
|
`, isInline: true, styles: [":host{flex:3;padding:10pt;height:100%;max-height:100%;justify-content:center;align-items:center;background:white;text-align:center;display:flex;flex-direction:column;min-height:0px;width:100%}\n"], dependencies: [{ kind: "component", type: Prompter, selector: "app-sprprompter", inputs: ["projectName", "prompterHeight", "promptMediaItems"] }] });
|
|
8357
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
8376
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: PromptContainer, decorators: [{
|
|
8358
8377
|
type: Component,
|
|
8359
8378
|
args: [{ selector: 'app-sprpromptcontainer', template: `
|
|
8360
8379
|
<app-sprprompter #prompter [projectName]="projectName" [promptMediaItems]="mediaitems" [style.font-size]="fontSize+'px'" [style.visibility]="prDisplay" [prompterHeight]="prompterHeight"></app-sprprompter>
|
|
@@ -8477,15 +8496,15 @@ class PromptingContainer {
|
|
|
8477
8496
|
//ev.preventDefault();
|
|
8478
8497
|
}
|
|
8479
8498
|
}
|
|
8480
|
-
PromptingContainer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
8481
|
-
PromptingContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.
|
|
8499
|
+
PromptingContainer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: PromptingContainer, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
8500
|
+
PromptingContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: PromptingContainer, selector: "app-sprpromptingcontainer", inputs: { projectName: "projectName", promptItem: "promptItem", showPrompt: "showPrompt", selectedItemIdx: "selectedItemIdx", itemCount: "itemCount", transportActions: "transportActions" }, host: { listeners: { "touchstart": "onTouchstart($event)", "touchend": "onTouchEnd($event)", "touchmove": "onTouchMove($event)", "touchcancel": "onTouchCancel($event)" } }, ngImport: i0, template: `
|
|
8482
8501
|
<spr-recinstructions [selectedItemIdx]="selectedItemIdx" [itemCount]="itemCount"
|
|
8483
8502
|
[recinstructions]="promptItem?.recinstructions?.recinstructions"></spr-recinstructions>
|
|
8484
8503
|
<app-sprpromptcontainer [projectName]="projectName"
|
|
8485
8504
|
[mediaitems]="showPrompt?(promptItem?promptItem.mediaitems:null):null"></app-sprpromptcontainer>
|
|
8486
8505
|
|
|
8487
8506
|
`, isInline: true, styles: [":host{position:relative;flex:3;padding:10pt;justify-content:center;align-items:center;background:white;text-align:center;display:flex;flex-direction:column;min-height:0px}\n"], dependencies: [{ kind: "component", type: Recinstructions, selector: "spr-recinstructions", inputs: ["recinstructions", "selectedItemIdx", "itemCount"] }, { kind: "component", type: PromptContainer, selector: "app-sprpromptcontainer", inputs: ["projectName", "mediaitems"] }] });
|
|
8488
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
8507
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: PromptingContainer, decorators: [{
|
|
8489
8508
|
type: Component,
|
|
8490
8509
|
args: [{ selector: 'app-sprpromptingcontainer', template: `
|
|
8491
8510
|
<spr-recinstructions [selectedItemIdx]="selectedItemIdx" [itemCount]="itemCount"
|
|
@@ -8543,8 +8562,8 @@ class Prompting extends ResponsiveComponent {
|
|
|
8543
8562
|
this.onPrevItem.emit();
|
|
8544
8563
|
}
|
|
8545
8564
|
}
|
|
8546
|
-
Prompting.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
8547
|
-
Prompting.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.
|
|
8565
|
+
Prompting.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: Prompting, deps: [{ token: i1$2.BreakpointObserver }], target: i0.ɵɵFactoryTarget.Component });
|
|
8566
|
+
Prompting.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: Prompting, selector: "app-sprprompting", inputs: { projectName: "projectName", startStopSignalState: "startStopSignalState", promptItem: "promptItem", showPrompt: "showPrompt", items: "items", selectedItemIdx: "selectedItemIdx", transportActions: "transportActions", enableDownload: "enableDownload", audioSignalCollapsed: "audioSignalCollapsed", displayAudioClip: "displayAudioClip", playStartAction: "playStartAction", playSelectionAction: "playSelectionAction", autoPlayOnSelectToggleAction: "autoPlayOnSelectToggleAction", playStopAction: "playStopAction" }, outputs: { onItemSelect: "onItemSelect", onNextItem: "onNextItem", onPrevItem: "onPrevItem" }, viewQueries: [{ propertyName: "simpleTrafficLight", first: true, predicate: SimpleTrafficLight, descendants: true, static: true }, { propertyName: "audioDisplay", first: true, predicate: AudioDisplay, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: `
|
|
8548
8567
|
|
|
8549
8568
|
<app-simpletrafficlight [status]="startStopSignalState"></app-simpletrafficlight>
|
|
8550
8569
|
<app-sprpromptingcontainer [projectName]="projectName" [promptItem]="promptItem" [showPrompt]="showPrompt"
|
|
@@ -8567,7 +8586,7 @@ Prompting.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14
|
|
|
8567
8586
|
|
|
8568
8587
|
|
|
8569
8588
|
`, isInline: true, styles: [":host{position:relative;margin:0;padding:0;background:lightgrey;width:100%;flex:1;min-height:0px;display:flex;flex-direction:row;flex-wrap:nowrap}\n", "app-simpletrafficlight{margin:10px;min-height:0px;z-index:3}\n", "app-sprprogress{z-index:3}\n", "div{display:none;position:absolute;z-index:5}\n", "div.active{display:flex;position:absolute;bottom:0;height:90%;width:100%;overflow:hidden;padding:0;z-index:5;box-sizing:border-box;background-color:#0000}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: AudioDisplay, selector: "app-audiodisplay", inputs: ["playStartAction", "playStopAction", "playSelectionAction", "autoPlayOnSelectToggleAction", "audioData", "audioClip"] }, { kind: "component", type: Progress, selector: "app-sprprogress", inputs: ["items", "selectedItemIdx", "enableDownload"], outputs: ["onRowSelect", "rowSelect", "onShowDoneAction", "clickDone", "onDownloadDoneAction", "clickDownloadDone"] }, { kind: "component", type: SimpleTrafficLight, selector: "app-simpletrafficlight", inputs: ["status"] }, { kind: "component", type: PromptingContainer, selector: "app-sprpromptingcontainer", inputs: ["projectName", "promptItem", "showPrompt", "selectedItemIdx", "itemCount", "transportActions"] }] });
|
|
8570
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
8589
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: Prompting, decorators: [{
|
|
8571
8590
|
type: Component,
|
|
8572
8591
|
args: [{ selector: 'app-sprprompting', template: `
|
|
8573
8592
|
|
|
@@ -8592,7 +8611,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
8592
8611
|
|
|
8593
8612
|
|
|
8594
8613
|
`, styles: [":host{position:relative;margin:0;padding:0;background:lightgrey;width:100%;flex:1;min-height:0px;display:flex;flex-direction:row;flex-wrap:nowrap}\n", "app-simpletrafficlight{margin:10px;min-height:0px;z-index:3}\n", "app-sprprogress{z-index:3}\n", "div{display:none;position:absolute;z-index:5}\n", "div.active{display:flex;position:absolute;bottom:0;height:90%;width:100%;overflow:hidden;padding:0;z-index:5;box-sizing:border-box;background-color:#0000}\n"] }]
|
|
8595
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
8614
|
+
}], ctorParameters: function () { return [{ type: i1$2.BreakpointObserver }]; }, propDecorators: { simpleTrafficLight: [{
|
|
8596
8615
|
type: ViewChild,
|
|
8597
8616
|
args: [SimpleTrafficLight, { static: true }]
|
|
8598
8617
|
}], audioDisplay: [{
|
|
@@ -8643,8 +8662,8 @@ class SessionFinishedDialog {
|
|
|
8643
8662
|
this.dialogRef.close();
|
|
8644
8663
|
}
|
|
8645
8664
|
}
|
|
8646
|
-
SessionFinishedDialog.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
8647
|
-
SessionFinishedDialog.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.
|
|
8665
|
+
SessionFinishedDialog.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: SessionFinishedDialog, deps: [{ token: i1$3.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
|
|
8666
|
+
SessionFinishedDialog.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: SessionFinishedDialog, selector: "spr-session-finished-dialog", ngImport: i0, template: `<h1 mat-dialog-title><mat-icon [style.color]="'green'">done_all</mat-icon> Session finished</h1>
|
|
8648
8667
|
<div mat-dialog-content>
|
|
8649
8668
|
|
|
8650
8669
|
<p>Thank you! The recording session is complete.</p>
|
|
@@ -8653,8 +8672,8 @@ SessionFinishedDialog.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0",
|
|
|
8653
8672
|
<div mat-dialog-actions>
|
|
8654
8673
|
<button mat-button (click)="closeDialog()">OK</button>
|
|
8655
8674
|
</div>
|
|
8656
|
-
`, isInline: true, dependencies: [{ kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i1$
|
|
8657
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
8675
|
+
`, isInline: true, dependencies: [{ kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i1$3.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1$3.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1$3.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }] });
|
|
8676
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: SessionFinishedDialog, decorators: [{
|
|
8658
8677
|
type: Component,
|
|
8659
8678
|
args: [{
|
|
8660
8679
|
selector: 'spr-session-finished-dialog',
|
|
@@ -8670,7 +8689,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
8670
8689
|
`
|
|
8671
8690
|
}]
|
|
8672
8691
|
}], ctorParameters: function () {
|
|
8673
|
-
return [{ type: i1$
|
|
8692
|
+
return [{ type: i1$3.MatDialogRef }, { type: undefined, decorators: [{
|
|
8674
8693
|
type: Inject,
|
|
8675
8694
|
args: [MAT_DIALOG_DATA]
|
|
8676
8695
|
}] }];
|
|
@@ -8685,8 +8704,8 @@ class MessageDialog {
|
|
|
8685
8704
|
this.dialogRef.close();
|
|
8686
8705
|
}
|
|
8687
8706
|
}
|
|
8688
|
-
MessageDialog.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
8689
|
-
MessageDialog.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.
|
|
8707
|
+
MessageDialog.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: MessageDialog, deps: [{ token: i1$3.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
|
|
8708
|
+
MessageDialog.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: MessageDialog, selector: "msg-dialog", ngImport: i0, template: `<h1 mat-dialog-title><mat-icon *ngIf="data.type==='error'" [style.color]="'red'">error</mat-icon>
|
|
8690
8709
|
<mat-icon *ngIf="data.type==='warning'" [style.color]="'yellow'">warning</mat-icon>{{data.title}}</h1>
|
|
8691
8710
|
<div mat-dialog-content>
|
|
8692
8711
|
|
|
@@ -8697,8 +8716,8 @@ MessageDialog.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version:
|
|
|
8697
8716
|
<div mat-dialog-actions>
|
|
8698
8717
|
<button mat-button (click)="closeDialog()">OK</button>
|
|
8699
8718
|
</div>
|
|
8700
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i1$
|
|
8701
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
8719
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i1$3.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1$3.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1$3.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }] });
|
|
8720
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: MessageDialog, decorators: [{
|
|
8702
8721
|
type: Component,
|
|
8703
8722
|
args: [{
|
|
8704
8723
|
selector: 'msg-dialog',
|
|
@@ -8716,7 +8735,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
8716
8735
|
`
|
|
8717
8736
|
}]
|
|
8718
8737
|
}], ctorParameters: function () {
|
|
8719
|
-
return [{ type: i1$
|
|
8738
|
+
return [{ type: i1$3.MatDialogRef }, { type: undefined, decorators: [{
|
|
8720
8739
|
type: Inject,
|
|
8721
8740
|
args: [MAT_DIALOG_DATA]
|
|
8722
8741
|
}] }];
|
|
@@ -9019,62 +9038,64 @@ let BasicRecordingService = class BasicRecordingService {
|
|
|
9019
9038
|
ausps.set('requestUUID', UUID.generate());
|
|
9020
9039
|
}
|
|
9021
9040
|
let obs = new Observable(observer => {
|
|
9022
|
-
this.audioRequestByURL(baseAudioUrl, ausps).subscribe(
|
|
9023
|
-
|
|
9024
|
-
|
|
9025
|
-
|
|
9026
|
-
|
|
9027
|
-
|
|
9028
|
-
|
|
9029
|
-
|
|
9030
|
-
|
|
9031
|
-
|
|
9032
|
-
|
|
9033
|
-
|
|
9034
|
-
|
|
9035
|
-
|
|
9036
|
-
|
|
9037
|
-
|
|
9038
|
-
|
|
9039
|
-
|
|
9040
|
-
|
|
9041
|
-
|
|
9042
|
-
|
|
9043
|
-
|
|
9044
|
-
|
|
9045
|
-
|
|
9046
|
-
|
|
9047
|
-
|
|
9048
|
-
|
|
9049
|
-
|
|
9050
|
-
|
|
9051
|
-
|
|
9052
|
-
|
|
9053
|
-
|
|
9054
|
-
|
|
9055
|
-
|
|
9056
|
-
|
|
9057
|
-
|
|
9058
|
-
|
|
9059
|
-
|
|
9041
|
+
this.audioRequestByURL(baseAudioUrl, ausps).subscribe({
|
|
9042
|
+
next: resp => {
|
|
9043
|
+
// Do not use Promise version, which does not work with Safari 13 (13.0.5)
|
|
9044
|
+
if (resp.body) {
|
|
9045
|
+
//console.debug("chunkAudioRequest: observer.closed: "+observer.closed);
|
|
9046
|
+
//console.debug("Audio file bytes: "+resp.body.byteLength);
|
|
9047
|
+
// Check original audio format
|
|
9048
|
+
let wr = new WavReader(resp.body);
|
|
9049
|
+
const pcmFmt = wr.readFormat();
|
|
9050
|
+
const orgFl = wr.frameLength();
|
|
9051
|
+
// if(pcmFmt){
|
|
9052
|
+
// console.debug("Original WAVE format of download chunk: "+pcmFmt);
|
|
9053
|
+
// }else{
|
|
9054
|
+
// console.error("Could not read WAVE format of original download chunk!");
|
|
9055
|
+
// }
|
|
9056
|
+
// if(orgFl){
|
|
9057
|
+
// console.debug("Original frame length of download chunk: "+orgFl);
|
|
9058
|
+
// }else{
|
|
9059
|
+
// console.error("Could not read WAVE format of original download chunk!");
|
|
9060
|
+
// }
|
|
9061
|
+
if (pcmFmt && orgFl) {
|
|
9062
|
+
aCtx.decodeAudioData(resp.body, ab => {
|
|
9063
|
+
//console.debug("Decoded audio chunk frames: "+ab.length);
|
|
9064
|
+
let chDl = new ChunkDownload(pcmFmt, orgFl, ab);
|
|
9065
|
+
observer.next(chDl);
|
|
9066
|
+
observer.complete();
|
|
9067
|
+
}, error => {
|
|
9068
|
+
//if(error instanceof HttpErrorResponse) {
|
|
9069
|
+
// if (error.status == 404) {
|
|
9070
|
+
// // Interpret not as an error, the file ist not recorded yet
|
|
9071
|
+
// observer.next(null);
|
|
9072
|
+
// observer.complete()
|
|
9073
|
+
// } else {
|
|
9074
|
+
// // all other states are errors
|
|
9075
|
+
console.error("Recordings service chunkAudioRequest error decoding audio data: " + error.name + ": " + error.message);
|
|
9076
|
+
observer.error(error);
|
|
9077
|
+
// }
|
|
9078
|
+
// }
|
|
9079
|
+
});
|
|
9080
|
+
}
|
|
9081
|
+
else {
|
|
9082
|
+
const errMsg = 'Could not parse audio header for format and/or frame length of download.';
|
|
9083
|
+
console.error(errMsg);
|
|
9084
|
+
observer.error(errMsg);
|
|
9085
|
+
}
|
|
9060
9086
|
}
|
|
9061
9087
|
else {
|
|
9062
|
-
const errMsg = '
|
|
9088
|
+
const errMsg = 'Fetching audio file: response has no body';
|
|
9063
9089
|
console.error(errMsg);
|
|
9064
9090
|
observer.error(errMsg);
|
|
9065
9091
|
}
|
|
9092
|
+
}, error: (error) => {
|
|
9093
|
+
// all other states are errors
|
|
9094
|
+
//const errMsg='Fetching audio file HTTP error: '+error;
|
|
9095
|
+
//console.error(errMsg);
|
|
9096
|
+
observer.error(error);
|
|
9097
|
+
//observer.complete();
|
|
9066
9098
|
}
|
|
9067
|
-
else {
|
|
9068
|
-
const errMsg = 'Fetching audio file: response has no body';
|
|
9069
|
-
console.error(errMsg);
|
|
9070
|
-
observer.error(errMsg);
|
|
9071
|
-
}
|
|
9072
|
-
}, (error) => {
|
|
9073
|
-
// all other states are errors
|
|
9074
|
-
//const errMsg='Fetching audio file HTTP error: '+error;
|
|
9075
|
-
//console.error(errMsg);
|
|
9076
|
-
observer.error(error);
|
|
9077
|
-
//observer.complete();
|
|
9078
9099
|
});
|
|
9079
9100
|
});
|
|
9080
9101
|
return obs;
|
|
@@ -9644,36 +9665,38 @@ class RecordingService extends BasicRecordingService {
|
|
|
9644
9665
|
}
|
|
9645
9666
|
if (recordingFile.session && recFileId) {
|
|
9646
9667
|
let obs = this.fetchAudiofile(projectName, recordingFile.session, recFileId);
|
|
9647
|
-
obs.subscribe(
|
|
9648
|
-
|
|
9649
|
-
|
|
9650
|
-
|
|
9651
|
-
|
|
9652
|
-
|
|
9653
|
-
|
|
9654
|
-
|
|
9655
|
-
|
|
9656
|
-
|
|
9657
|
-
|
|
9658
|
-
|
|
9659
|
-
|
|
9660
|
-
|
|
9661
|
-
|
|
9662
|
-
|
|
9663
|
-
if (err
|
|
9664
|
-
|
|
9665
|
-
|
|
9666
|
-
|
|
9668
|
+
obs.subscribe({
|
|
9669
|
+
next: resp => {
|
|
9670
|
+
// Do not use Promise version, which does not work with Safari 13 (13.0.5)
|
|
9671
|
+
if (resp.body) {
|
|
9672
|
+
aCtx.decodeAudioData(resp.body, ab => {
|
|
9673
|
+
observer.next(ab);
|
|
9674
|
+
observer.complete();
|
|
9675
|
+
}, error => {
|
|
9676
|
+
observer.error(error);
|
|
9677
|
+
observer.complete();
|
|
9678
|
+
});
|
|
9679
|
+
}
|
|
9680
|
+
else {
|
|
9681
|
+
observer.error('Fetching audio file: response has no body');
|
|
9682
|
+
}
|
|
9683
|
+
}, error: (err) => {
|
|
9684
|
+
if (err instanceof HttpErrorResponse) {
|
|
9685
|
+
if (err.status == 404) {
|
|
9686
|
+
// Interpret not as an error, the file ist not recorded yet
|
|
9687
|
+
observer.next(null);
|
|
9688
|
+
observer.complete();
|
|
9689
|
+
}
|
|
9690
|
+
else {
|
|
9691
|
+
// all other states are errors
|
|
9692
|
+
observer.error(err);
|
|
9693
|
+
observer.complete();
|
|
9694
|
+
}
|
|
9667
9695
|
}
|
|
9668
9696
|
else {
|
|
9669
|
-
// all other states are errors
|
|
9670
9697
|
observer.error(err);
|
|
9671
|
-
observer.complete();
|
|
9672
9698
|
}
|
|
9673
9699
|
}
|
|
9674
|
-
else {
|
|
9675
|
-
observer.error(err);
|
|
9676
|
-
}
|
|
9677
9700
|
});
|
|
9678
9701
|
}
|
|
9679
9702
|
else {
|
|
@@ -9690,49 +9713,50 @@ class RecordingService extends BasicRecordingService {
|
|
|
9690
9713
|
}
|
|
9691
9714
|
if (recordingFile.session && recFileId) {
|
|
9692
9715
|
let obs = this.fetchAudiofile(projectName, recordingFile.session, recFileId);
|
|
9693
|
-
obs.subscribe(resp => {
|
|
9694
|
-
|
|
9695
|
-
|
|
9696
|
-
|
|
9697
|
-
|
|
9698
|
-
|
|
9699
|
-
|
|
9700
|
-
|
|
9701
|
-
|
|
9702
|
-
|
|
9716
|
+
obs.subscribe({ next: resp => {
|
|
9717
|
+
//console.log("Fetched audio file. HTTP response status: "+resp.status+", type: "+resp.type+", byte length: "+ resp.body.byteLength);
|
|
9718
|
+
// Do not use Promise version, which does not work with Safari 13 (13.0.5)
|
|
9719
|
+
if (resp.body) {
|
|
9720
|
+
aCtx.decodeAudioData(resp.body, ab => {
|
|
9721
|
+
let abs = new AudioBufferSource(ab);
|
|
9722
|
+
let adh = new AudioDataHolder(abs);
|
|
9723
|
+
RecordingFileUtils.setAudioData(recordingFile, adh);
|
|
9724
|
+
if (this.debugDelay > 0) {
|
|
9725
|
+
window.setTimeout(() => {
|
|
9726
|
+
observer.next(recordingFile);
|
|
9727
|
+
observer.complete();
|
|
9728
|
+
}, this.debugDelay);
|
|
9729
|
+
}
|
|
9730
|
+
else {
|
|
9703
9731
|
observer.next(recordingFile);
|
|
9704
9732
|
observer.complete();
|
|
9705
|
-
}
|
|
9733
|
+
}
|
|
9734
|
+
}, error => {
|
|
9735
|
+
observer.error(error);
|
|
9736
|
+
observer.complete();
|
|
9737
|
+
});
|
|
9738
|
+
}
|
|
9739
|
+
else {
|
|
9740
|
+
observer.error('Fetching audio file: response has no body');
|
|
9741
|
+
}
|
|
9742
|
+
},
|
|
9743
|
+
error: (err) => {
|
|
9744
|
+
if (err instanceof HttpErrorResponse) {
|
|
9745
|
+
if (err.status == 404) {
|
|
9746
|
+
// Interpret not as an error, the file ist not recorded yet
|
|
9747
|
+
observer.next(null);
|
|
9748
|
+
observer.complete();
|
|
9706
9749
|
}
|
|
9707
9750
|
else {
|
|
9708
|
-
|
|
9751
|
+
// all other states are errors
|
|
9752
|
+
observer.error(err);
|
|
9709
9753
|
observer.complete();
|
|
9710
9754
|
}
|
|
9711
|
-
}, error => {
|
|
9712
|
-
observer.error(error);
|
|
9713
|
-
observer.complete();
|
|
9714
|
-
});
|
|
9715
|
-
}
|
|
9716
|
-
else {
|
|
9717
|
-
observer.error('Fetching audio file: response has no body');
|
|
9718
|
-
}
|
|
9719
|
-
}, (err) => {
|
|
9720
|
-
if (err instanceof HttpErrorResponse) {
|
|
9721
|
-
if (err.status == 404) {
|
|
9722
|
-
// Interpret not as an error, the file ist not recorded yet
|
|
9723
|
-
observer.next(null);
|
|
9724
|
-
observer.complete();
|
|
9725
9755
|
}
|
|
9726
9756
|
else {
|
|
9727
|
-
// all other states are errors
|
|
9728
9757
|
observer.error(err);
|
|
9729
|
-
observer.complete();
|
|
9730
9758
|
}
|
|
9731
|
-
}
|
|
9732
|
-
else {
|
|
9733
|
-
observer.error(err);
|
|
9734
|
-
}
|
|
9735
|
-
});
|
|
9759
|
+
} });
|
|
9736
9760
|
}
|
|
9737
9761
|
else {
|
|
9738
9762
|
observer.error();
|
|
@@ -10054,83 +10078,88 @@ class RecordingService extends BasicRecordingService {
|
|
|
10054
10078
|
let wobs = new Observable(observer => {
|
|
10055
10079
|
if (recordingFile.session) {
|
|
10056
10080
|
let obs = this.fetchSprAudiofile(projectName, recordingFile.session, recordingFile.itemCode, recordingFile.version);
|
|
10057
|
-
obs.subscribe(
|
|
10058
|
-
|
|
10059
|
-
|
|
10081
|
+
obs.subscribe({
|
|
10082
|
+
next: resp => {
|
|
10083
|
+
//console.log("Fetched audio file. HTTP response status: "+resp.status+", type: "+resp.type+", byte length: "+ resp.body.byteLength);
|
|
10084
|
+
// Do not use Promise version, which does not work with Safari 13 (13.0.5)
|
|
10085
|
+
if (resp.body) {
|
|
10086
|
+
aCtx.decodeAudioData(resp.body, ab => {
|
|
10087
|
+
let abs = new AudioBufferSource(ab);
|
|
10088
|
+
RecordingFileUtils.setAudioData(recordingFile, new AudioDataHolder(abs));
|
|
10089
|
+
if (this.debugDelay > 0) {
|
|
10090
|
+
window.setTimeout(() => {
|
|
10091
|
+
observer.next(recordingFile);
|
|
10092
|
+
observer.complete();
|
|
10093
|
+
}, this.debugDelay);
|
|
10094
|
+
}
|
|
10095
|
+
else {
|
|
10096
|
+
observer.next(recordingFile);
|
|
10097
|
+
observer.complete();
|
|
10098
|
+
}
|
|
10099
|
+
}, error => {
|
|
10100
|
+
observer.error(error);
|
|
10101
|
+
observer.complete();
|
|
10102
|
+
});
|
|
10103
|
+
}
|
|
10104
|
+
else {
|
|
10105
|
+
observer.error('Fetching audio file: response has no body');
|
|
10106
|
+
}
|
|
10107
|
+
},
|
|
10108
|
+
error: (err) => {
|
|
10109
|
+
if (err instanceof HttpErrorResponse && err.status == 404) {
|
|
10110
|
+
// Interpret not as an error, the file ist not recorded yet
|
|
10111
|
+
observer.next(null);
|
|
10112
|
+
observer.complete();
|
|
10113
|
+
}
|
|
10114
|
+
else {
|
|
10115
|
+
// all other states are errors
|
|
10116
|
+
observer.error(err);
|
|
10117
|
+
}
|
|
10118
|
+
}
|
|
10119
|
+
});
|
|
10120
|
+
}
|
|
10121
|
+
else {
|
|
10122
|
+
observer.error();
|
|
10123
|
+
}
|
|
10124
|
+
});
|
|
10125
|
+
return wobs;
|
|
10126
|
+
}
|
|
10127
|
+
fetchRecordingFile(aCtx, projectName, sessId, itemcode, version) {
|
|
10128
|
+
let wobs = new Observable(observer => {
|
|
10129
|
+
let obs = this.fetchSprAudiofile(projectName, sessId, itemcode, version);
|
|
10130
|
+
obs.subscribe({ next: resp => {
|
|
10131
|
+
// Do not use Promise version, which does not work with Safari 13
|
|
10060
10132
|
if (resp.body) {
|
|
10061
10133
|
aCtx.decodeAudioData(resp.body, ab => {
|
|
10062
10134
|
let abs = new AudioBufferSource(ab);
|
|
10063
|
-
|
|
10135
|
+
let adh = new AudioDataHolder(abs);
|
|
10136
|
+
let rf = new SprRecordingFile(sessId, itemcode, version, adh);
|
|
10064
10137
|
if (this.debugDelay > 0) {
|
|
10065
10138
|
window.setTimeout(() => {
|
|
10066
|
-
observer.next(
|
|
10139
|
+
observer.next(rf);
|
|
10067
10140
|
observer.complete();
|
|
10068
10141
|
}, this.debugDelay);
|
|
10069
10142
|
}
|
|
10070
10143
|
else {
|
|
10071
|
-
observer.next(
|
|
10144
|
+
observer.next(rf);
|
|
10072
10145
|
observer.complete();
|
|
10073
10146
|
}
|
|
10074
|
-
}, error => {
|
|
10075
|
-
observer.error(error);
|
|
10076
|
-
observer.complete();
|
|
10077
10147
|
});
|
|
10078
10148
|
}
|
|
10079
10149
|
else {
|
|
10080
|
-
observer.error(
|
|
10150
|
+
observer.error();
|
|
10081
10151
|
}
|
|
10082
|
-
},
|
|
10152
|
+
},
|
|
10153
|
+
error: (err) => {
|
|
10083
10154
|
if (err instanceof HttpErrorResponse && err.status == 404) {
|
|
10084
10155
|
// Interpret not as an error, the file ist not recorded yet
|
|
10085
10156
|
observer.next(null);
|
|
10086
10157
|
observer.complete();
|
|
10087
10158
|
}
|
|
10088
10159
|
else {
|
|
10089
|
-
// all other
|
|
10160
|
+
// all other errors are real errors
|
|
10090
10161
|
observer.error(err);
|
|
10091
10162
|
}
|
|
10092
|
-
});
|
|
10093
|
-
}
|
|
10094
|
-
else {
|
|
10095
|
-
observer.error();
|
|
10096
|
-
}
|
|
10097
|
-
});
|
|
10098
|
-
return wobs;
|
|
10099
|
-
}
|
|
10100
|
-
fetchRecordingFile(aCtx, projectName, sessId, itemcode, version) {
|
|
10101
|
-
let wobs = new Observable(observer => {
|
|
10102
|
-
let obs = this.fetchSprAudiofile(projectName, sessId, itemcode, version);
|
|
10103
|
-
obs.subscribe(resp => {
|
|
10104
|
-
// Do not use Promise version, which does not work with Safari 13
|
|
10105
|
-
if (resp.body) {
|
|
10106
|
-
aCtx.decodeAudioData(resp.body, ab => {
|
|
10107
|
-
let abs = new AudioBufferSource(ab);
|
|
10108
|
-
let adh = new AudioDataHolder(abs);
|
|
10109
|
-
let rf = new SprRecordingFile(sessId, itemcode, version, adh);
|
|
10110
|
-
if (this.debugDelay > 0) {
|
|
10111
|
-
window.setTimeout(() => {
|
|
10112
|
-
observer.next(rf);
|
|
10113
|
-
observer.complete();
|
|
10114
|
-
}, this.debugDelay);
|
|
10115
|
-
}
|
|
10116
|
-
else {
|
|
10117
|
-
observer.next(rf);
|
|
10118
|
-
observer.complete();
|
|
10119
|
-
}
|
|
10120
|
-
});
|
|
10121
|
-
}
|
|
10122
|
-
else {
|
|
10123
|
-
observer.error();
|
|
10124
|
-
}
|
|
10125
|
-
}, (err) => {
|
|
10126
|
-
if (err instanceof HttpErrorResponse && err.status == 404) {
|
|
10127
|
-
// Interpret not as an error, the file ist not recorded yet
|
|
10128
|
-
observer.next(null);
|
|
10129
|
-
observer.complete();
|
|
10130
|
-
}
|
|
10131
|
-
else {
|
|
10132
|
-
// all other errors are real errors
|
|
10133
|
-
observer.error(err);
|
|
10134
10163
|
}
|
|
10135
10164
|
});
|
|
10136
10165
|
});
|
|
@@ -10141,9 +10170,9 @@ class RecordingService extends BasicRecordingService {
|
|
|
10141
10170
|
//public static readonly DEFAULT_CHUNKED_DOWNLOAD_SECONDS:number=4;
|
|
10142
10171
|
RecordingService.REC_API_CTX = 'recfile';
|
|
10143
10172
|
RecordingService.RECORDING_API_CTX = 'recordingfile';
|
|
10144
|
-
RecordingService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
10145
|
-
RecordingService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.
|
|
10146
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
10173
|
+
RecordingService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: RecordingService, deps: [{ token: i1.HttpClient }, { token: SPEECHRECORDER_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
10174
|
+
RecordingService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: RecordingService });
|
|
10175
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: RecordingService, decorators: [{
|
|
10147
10176
|
type: Injectable
|
|
10148
10177
|
}], ctorParameters: function () {
|
|
10149
10178
|
return [{ type: i1.HttpClient }, { type: SpeechRecorderConfig, decorators: [{
|
|
@@ -10520,14 +10549,14 @@ class LevelBar {
|
|
|
10520
10549
|
}
|
|
10521
10550
|
}
|
|
10522
10551
|
}
|
|
10523
|
-
LevelBar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
10524
|
-
LevelBar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.
|
|
10552
|
+
LevelBar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: LevelBar, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
10553
|
+
LevelBar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: LevelBar, selector: "audio-levelbar", inputs: { streamingMode: "streamingMode", displayLevelInfos: "displayLevelInfos", state: "state" }, host: { listeners: { "scroll": "onScroll($event)", "window:resize": "onResize($event)" } }, viewQueries: [{ propertyName: "virtualCanvasRef", first: true, predicate: ["virtualCanvas"], descendants: true, static: true }, { propertyName: "liveLevelCanvasRef", first: true, predicate: ["levelbar"], descendants: true, static: true }, { propertyName: "markerCanvasRef", first: true, predicate: ["markerCanvas"], descendants: true, static: true }], ngImport: i0, template: `
|
|
10525
10554
|
<div #virtualCanvas>
|
|
10526
10555
|
<canvas #levelbar></canvas>
|
|
10527
10556
|
<canvas #markerCanvas></canvas>
|
|
10528
10557
|
</div>
|
|
10529
10558
|
`, isInline: true, styles: [":host{width:100%;background:darkgray;box-sizing:border-box;height:100%;position:relative;overflow-x:scroll;overflow-y:auto}\n", "div{top:0;left:0;width:100%;height:100%;box-sizing:border-box}\n", "canvas{top:0;left:0;width:100%;height:100%;position:absolute}\n"] });
|
|
10530
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
10559
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: LevelBar, decorators: [{
|
|
10531
10560
|
type: Component,
|
|
10532
10561
|
args: [{ selector: 'audio-levelbar', template: `
|
|
10533
10562
|
<div #virtualCanvas>
|
|
@@ -10565,14 +10594,14 @@ class StatusDisplay {
|
|
|
10565
10594
|
this.statusWaiting = false;
|
|
10566
10595
|
}
|
|
10567
10596
|
}
|
|
10568
|
-
StatusDisplay.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
10569
|
-
StatusDisplay.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.
|
|
10597
|
+
StatusDisplay.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: StatusDisplay, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
10598
|
+
StatusDisplay.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: StatusDisplay, selector: "app-sprstatusdisplay", inputs: { statusAlertType: "statusAlertType", statusMsg: "statusMsg", statusWaiting: "statusWaiting" }, ngImport: i0, template: `
|
|
10570
10599
|
<p matTooltip="Status">
|
|
10571
10600
|
<mat-progress-spinner *ngIf="statusWaiting" color="black" mode="indeterminate" [diameter]="30" [strokeWidth]="5"></mat-progress-spinner><mat-icon *ngIf="statusAlertType==='error'" style="color:red">report_problem</mat-icon>
|
|
10572
10601
|
{{statusMsg}}
|
|
10573
10602
|
</p>
|
|
10574
10603
|
`, isInline: true, styles: [":host{display:inline;text-align:left;font-size:smaller}\n", "p{padding:4px;white-space:nowrap;display:inline-block}\n", "mat-progress-spinner{color:#000;display:inline-block}\n", "span{color:red}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i3$1.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] });
|
|
10575
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
10604
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: StatusDisplay, decorators: [{
|
|
10576
10605
|
type: Component,
|
|
10577
10606
|
args: [{ selector: 'app-sprstatusdisplay', template: `
|
|
10578
10607
|
<p matTooltip="Status">
|
|
@@ -10591,7 +10620,7 @@ class UploadStatus {
|
|
|
10591
10620
|
constructor() {
|
|
10592
10621
|
this._awaitNewUpload = false;
|
|
10593
10622
|
this.spinnerMode = 'determinate';
|
|
10594
|
-
this.
|
|
10623
|
+
this.colorStatus = 'primary';
|
|
10595
10624
|
this._value = 100;
|
|
10596
10625
|
this.displayValue = null;
|
|
10597
10626
|
this.toolTipText = '';
|
|
@@ -10630,13 +10659,13 @@ class UploadStatus {
|
|
|
10630
10659
|
set status(status) {
|
|
10631
10660
|
this._status = status;
|
|
10632
10661
|
if ('accent' === status) {
|
|
10633
|
-
this.
|
|
10662
|
+
this.colorStatus = 'accent';
|
|
10634
10663
|
}
|
|
10635
10664
|
else if ('warn' === status) {
|
|
10636
|
-
this.
|
|
10665
|
+
this.colorStatus = 'warn';
|
|
10637
10666
|
}
|
|
10638
10667
|
else {
|
|
10639
|
-
this.
|
|
10668
|
+
this.colorStatus = 'primary';
|
|
10640
10669
|
}
|
|
10641
10670
|
this._updateSpinner();
|
|
10642
10671
|
}
|
|
@@ -10644,14 +10673,16 @@ class UploadStatus {
|
|
|
10644
10673
|
return this._status;
|
|
10645
10674
|
}
|
|
10646
10675
|
}
|
|
10647
|
-
UploadStatus.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
10648
|
-
UploadStatus.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.
|
|
10649
|
-
<mat-progress-spinner [mode]="spinnerMode" [color]="
|
|
10676
|
+
UploadStatus.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: UploadStatus, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
10677
|
+
UploadStatus.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: UploadStatus, selector: "app-uploadstatus", inputs: { value: "value", awaitNewUpload: "awaitNewUpload", status: "status" }, ngImport: i0, template: `
|
|
10678
|
+
<mat-progress-spinner [mode]="spinnerMode" [color]="colorStatus" [diameter]="30" [strokeWidth]="5" [value]="_value"
|
|
10679
|
+
[matTooltip]="toolTipText"></mat-progress-spinner>
|
|
10650
10680
|
`, isInline: true, styles: [":host{text-align:left}\n", "mat-progress-spinner{display:inline-block}\n"], dependencies: [{ kind: "component", type: i3$1.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] });
|
|
10651
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
10681
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: UploadStatus, decorators: [{
|
|
10652
10682
|
type: Component,
|
|
10653
10683
|
args: [{ selector: 'app-uploadstatus', template: `
|
|
10654
|
-
<mat-progress-spinner [mode]="spinnerMode" [color]="
|
|
10684
|
+
<mat-progress-spinner [mode]="spinnerMode" [color]="colorStatus" [diameter]="30" [strokeWidth]="5" [value]="_value"
|
|
10685
|
+
[matTooltip]="toolTipText"></mat-progress-spinner>
|
|
10655
10686
|
`, styles: [":host{text-align:left}\n", "mat-progress-spinner{display:inline-block}\n"] }]
|
|
10656
10687
|
}], propDecorators: { value: [{
|
|
10657
10688
|
type: Input
|
|
@@ -10665,11 +10696,11 @@ class ProgressDisplay {
|
|
|
10665
10696
|
this.progressMsg = '[itemcode]';
|
|
10666
10697
|
}
|
|
10667
10698
|
}
|
|
10668
|
-
ProgressDisplay.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
10669
|
-
ProgressDisplay.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.
|
|
10699
|
+
ProgressDisplay.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ProgressDisplay, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
10700
|
+
ProgressDisplay.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: ProgressDisplay, selector: "app-sprprogressdisplay", ngImport: i0, template: `
|
|
10670
10701
|
<p>{{progressMsg}}</p>
|
|
10671
10702
|
`, isInline: true, styles: [":host{flex:1;width:100%;text-align:left}\n"] });
|
|
10672
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
10703
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ProgressDisplay, decorators: [{
|
|
10673
10704
|
type: Component,
|
|
10674
10705
|
args: [{ selector: 'app-sprprogressdisplay', template: `
|
|
10675
10706
|
<p>{{progressMsg}}</p>
|
|
@@ -10760,8 +10791,8 @@ class TransportPanel extends ResponsiveComponent {
|
|
|
10760
10791
|
}
|
|
10761
10792
|
}
|
|
10762
10793
|
}
|
|
10763
|
-
TransportPanel.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
10764
|
-
TransportPanel.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.
|
|
10794
|
+
TransportPanel.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TransportPanel, deps: [{ token: i1$2.BreakpointObserver }], target: i0.ɵɵFactoryTarget.Component });
|
|
10795
|
+
TransportPanel.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: TransportPanel, selector: "app-sprtransport", inputs: { readonly: "readonly", actions: "actions", navigationEnabled: "navigationEnabled", pausingEnabled: "pausingEnabled" }, usesInheritance: true, ngImport: i0, template: `
|
|
10765
10796
|
<button id="bwdBtn" *ngIf="navigationEnabled" (click)="actions.bwdAction.perform()" [disabled]="bwdDisabled()"
|
|
10766
10797
|
mat-raised-button>
|
|
10767
10798
|
<mat-icon>chevron_left</mat-icon>
|
|
@@ -10782,7 +10813,7 @@ TransportPanel.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version
|
|
|
10782
10813
|
</button>
|
|
10783
10814
|
|
|
10784
10815
|
`, isInline: true, styles: [":host{flex:20;align-self:center;width:100%;text-align:center;align-content:center;margin:0}\n", "div{display:inline;flex:0}\n", "button{touch-action:manipulation}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }] });
|
|
10785
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
10816
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TransportPanel, decorators: [{
|
|
10786
10817
|
type: Component,
|
|
10787
10818
|
args: [{ selector: 'app-sprtransport', template: `
|
|
10788
10819
|
<button id="bwdBtn" *ngIf="navigationEnabled" (click)="actions.bwdAction.perform()" [disabled]="bwdDisabled()"
|
|
@@ -10805,7 +10836,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
10805
10836
|
</button>
|
|
10806
10837
|
|
|
10807
10838
|
`, styles: [":host{flex:20;align-self:center;width:100%;text-align:center;align-content:center;margin:0}\n", "div{display:inline;flex:0}\n", "button{touch-action:manipulation}\n"] }]
|
|
10808
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
10839
|
+
}], ctorParameters: function () { return [{ type: i1$2.BreakpointObserver }]; }, propDecorators: { readonly: [{
|
|
10809
10840
|
type: Input
|
|
10810
10841
|
}], actions: [{
|
|
10811
10842
|
type: Input
|
|
@@ -10822,11 +10853,11 @@ class WakeLockIndicator {
|
|
|
10822
10853
|
this._screenLocked = screenLock;
|
|
10823
10854
|
}
|
|
10824
10855
|
}
|
|
10825
|
-
WakeLockIndicator.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
10826
|
-
WakeLockIndicator.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.
|
|
10856
|
+
WakeLockIndicator.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: WakeLockIndicator, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
10857
|
+
WakeLockIndicator.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: WakeLockIndicator, selector: "app-wakelockindicator", inputs: { screenLocked: "screenLocked" }, ngImport: i0, template: `
|
|
10827
10858
|
<mat-icon *ngIf="_screenLocked">screen_lock_portrait</mat-icon>
|
|
10828
10859
|
`, isInline: true, dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
|
|
10829
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
10860
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: WakeLockIndicator, decorators: [{
|
|
10830
10861
|
type: Component,
|
|
10831
10862
|
args: [{ selector: 'app-wakelockindicator', template: `
|
|
10832
10863
|
<mat-icon *ngIf="_screenLocked">screen_lock_portrait</mat-icon>
|
|
@@ -10849,11 +10880,11 @@ class ReadyStateIndicator {
|
|
|
10849
10880
|
return this._ready;
|
|
10850
10881
|
}
|
|
10851
10882
|
}
|
|
10852
|
-
ReadyStateIndicator.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
10853
|
-
ReadyStateIndicator.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.
|
|
10883
|
+
ReadyStateIndicator.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ReadyStateIndicator, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
10884
|
+
ReadyStateIndicator.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: ReadyStateIndicator, selector: "app-readystateindicator", inputs: { ready: "ready" }, ngImport: i0, template: `
|
|
10854
10885
|
<mat-icon [matTooltip]="readyStateToolTip">{{hourGlassIconName}}</mat-icon>
|
|
10855
10886
|
`, isInline: true, dependencies: [{ kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] });
|
|
10856
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
10887
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ReadyStateIndicator, decorators: [{
|
|
10857
10888
|
type: Component,
|
|
10858
10889
|
args: [{ selector: 'app-readystateindicator', template: `
|
|
10859
10890
|
<mat-icon [matTooltip]="readyStateToolTip">{{hourGlassIconName}}</mat-icon>
|
|
@@ -10877,8 +10908,8 @@ class ControlPanel extends ResponsiveComponent {
|
|
|
10877
10908
|
return this._ready;
|
|
10878
10909
|
}
|
|
10879
10910
|
}
|
|
10880
|
-
ControlPanel.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
10881
|
-
ControlPanel.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.
|
|
10911
|
+
ControlPanel.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ControlPanel, deps: [{ token: i1$2.BreakpointObserver }, { token: i1$3.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
|
|
10912
|
+
ControlPanel.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: ControlPanel, selector: "app-sprcontrolpanel", inputs: { readonly: "readonly", transportActions: "transportActions", processing: "processing", statusMsg: "statusMsg", statusAlertType: "statusAlertType", statusWaiting: "statusWaiting", uploadStatus: "uploadStatus", uploadProgress: "uploadProgress", currentRecording: "currentRecording", enableUploadRecordings: "enableUploadRecordings", navigationEnabled: "navigationEnabled", ready: "ready" }, viewQueries: [{ propertyName: "statusDisplay", first: true, predicate: StatusDisplay, descendants: true, static: true }, { propertyName: "transportPanel", first: true, predicate: TransportPanel, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: `
|
|
10882
10913
|
<div *ngIf="!screenXs" style="flex-direction: row" >
|
|
10883
10914
|
<app-sprstatusdisplay style="flex:0 0 0" [statusMsg]="statusMsg" [statusAlertType]="statusAlertType" [statusWaiting]="statusWaiting"
|
|
10884
10915
|
class="hidden-xs"></app-sprstatusdisplay>
|
|
@@ -10887,9 +10918,9 @@ ControlPanel.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version:
|
|
|
10887
10918
|
[status]="uploadStatus" [awaitNewUpload]="processing"></app-uploadstatus>
|
|
10888
10919
|
<app-readystateindicator [ready]="_ready"></app-readystateindicator>
|
|
10889
10920
|
</div>
|
|
10890
|
-
<div *ngIf="screenXs"style="flex-direction: column" >
|
|
10921
|
+
<div *ngIf="screenXs" style="flex-direction: column" >
|
|
10891
10922
|
<div style="flex-direction: row" class="flexFill" >
|
|
10892
|
-
<app-sprstatusdisplay style="flex:10 0 0
|
|
10923
|
+
<app-sprstatusdisplay style="flex:10 0 0" [statusMsg]="statusMsg" [statusAlertType]="statusAlertType" [statusWaiting]="statusWaiting"
|
|
10893
10924
|
class="hidden-xs"></app-sprstatusdisplay>
|
|
10894
10925
|
<app-uploadstatus style="flex:0 0 0" *ngIf="enableUploadRecordings" [value]="uploadProgress"
|
|
10895
10926
|
[status]="uploadStatus" [awaitNewUpload]="processing"></app-uploadstatus>
|
|
@@ -10899,7 +10930,7 @@ ControlPanel.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version:
|
|
|
10899
10930
|
|
|
10900
10931
|
</div>
|
|
10901
10932
|
`, isInline: true, styles: ["div{align-content:center;align-items:center;margin:0;padding:20px;min-height:min-content}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: StatusDisplay, selector: "app-sprstatusdisplay", inputs: ["statusAlertType", "statusMsg", "statusWaiting"] }, { kind: "component", type: UploadStatus, selector: "app-uploadstatus", inputs: ["value", "awaitNewUpload", "status"] }, { kind: "component", type: TransportPanel, selector: "app-sprtransport", inputs: ["readonly", "actions", "navigationEnabled", "pausingEnabled"] }, { kind: "component", type: ReadyStateIndicator, selector: "app-readystateindicator", inputs: ["ready"] }] });
|
|
10902
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
10933
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ControlPanel, decorators: [{
|
|
10903
10934
|
type: Component,
|
|
10904
10935
|
args: [{ selector: 'app-sprcontrolpanel', template: `
|
|
10905
10936
|
<div *ngIf="!screenXs" style="flex-direction: row" >
|
|
@@ -10910,9 +10941,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
10910
10941
|
[status]="uploadStatus" [awaitNewUpload]="processing"></app-uploadstatus>
|
|
10911
10942
|
<app-readystateindicator [ready]="_ready"></app-readystateindicator>
|
|
10912
10943
|
</div>
|
|
10913
|
-
<div *ngIf="screenXs"style="flex-direction: column" >
|
|
10944
|
+
<div *ngIf="screenXs" style="flex-direction: column" >
|
|
10914
10945
|
<div style="flex-direction: row" class="flexFill" >
|
|
10915
|
-
<app-sprstatusdisplay style="flex:10 0 0
|
|
10946
|
+
<app-sprstatusdisplay style="flex:10 0 0" [statusMsg]="statusMsg" [statusAlertType]="statusAlertType" [statusWaiting]="statusWaiting"
|
|
10916
10947
|
class="hidden-xs"></app-sprstatusdisplay>
|
|
10917
10948
|
<app-uploadstatus style="flex:0 0 0" *ngIf="enableUploadRecordings" [value]="uploadProgress"
|
|
10918
10949
|
[status]="uploadStatus" [awaitNewUpload]="processing"></app-uploadstatus>
|
|
@@ -10922,7 +10953,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
10922
10953
|
|
|
10923
10954
|
</div>
|
|
10924
10955
|
`, styles: ["div{align-content:center;align-items:center;margin:0;padding:20px;min-height:min-content}\n"] }]
|
|
10925
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
10956
|
+
}], ctorParameters: function () { return [{ type: i1$2.BreakpointObserver }, { type: i1$3.MatDialog }]; }, propDecorators: { statusDisplay: [{
|
|
10926
10957
|
type: ViewChild,
|
|
10927
10958
|
args: [StatusDisplay, { static: true }]
|
|
10928
10959
|
}], transportPanel: [{
|
|
@@ -11577,8 +11608,8 @@ class RecordingItemControls extends ResponsiveComponent {
|
|
|
11577
11608
|
// this.status = 'ERROR';
|
|
11578
11609
|
}
|
|
11579
11610
|
}
|
|
11580
|
-
RecordingItemControls.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
11581
|
-
RecordingItemControls.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.
|
|
11611
|
+
RecordingItemControls.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: RecordingItemControls, deps: [{ token: i1$2.BreakpointObserver }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
11612
|
+
RecordingItemControls.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: RecordingItemControls, selector: "spr-recordingitemcontrols", inputs: { audioSignalCollapsed: "audioSignalCollapsed", enableDownload: "enableDownload", peakDbLvl: "peakDbLvl", agc: "agc", disableAudioDetails: "disableAudioDetails", audioLoaded: "audioLoaded", playStartAction: "playStartAction", playStopAction: "playStopAction", displayLevelInfos: "displayLevelInfos" }, outputs: { onShowRecordingDetails: "onShowRecordingDetails", onDownloadRecording: "onDownloadRecording" }, usesInheritance: true, ngImport: i0, template: `
|
|
11582
11613
|
<button matTooltip="Start playback" (click)="playStartAction?.perform()"
|
|
11583
11614
|
[disabled]="playStartAction?.disabled"
|
|
11584
11615
|
[style.color]="playStartAction?.disabled ? 'grey' : 'green'">
|
|
@@ -11601,7 +11632,7 @@ RecordingItemControls.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0",
|
|
|
11601
11632
|
[style.color]="(peakDbLvl > warnDbLevel)?'red':'black'">{{peakDbLvl | number:'1.1-1'}} dB </span></td></tr>
|
|
11602
11633
|
<tr *ngIf="_agc"><td>AGC:</td><td><span matTooltip="Auto gain control">{{agcString}}</span></td></tr></table></div>
|
|
11603
11634
|
`, isInline: true, styles: [":host{flex:0;width:100%;background:darkgray;padding:4px;box-sizing:border-box;height:100%;display:flex;flex-direction:row;flex-wrap:nowrap}\n", "span{flex:0;font-weight:700;display:inline-block;white-space:nowrap;box-sizing:border-box}\n", "button{touch-action:manipulation}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "pipe", type: i1$1.DecimalPipe, name: "number" }] });
|
|
11604
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
11635
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: RecordingItemControls, decorators: [{
|
|
11605
11636
|
type: Component,
|
|
11606
11637
|
args: [{ selector: 'spr-recordingitemcontrols', template: `
|
|
11607
11638
|
<button matTooltip="Start playback" (click)="playStartAction?.perform()"
|
|
@@ -11626,7 +11657,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
11626
11657
|
[style.color]="(peakDbLvl > warnDbLevel)?'red':'black'">{{peakDbLvl | number:'1.1-1'}} dB </span></td></tr>
|
|
11627
11658
|
<tr *ngIf="_agc"><td>AGC:</td><td><span matTooltip="Auto gain control">{{agcString}}</span></td></tr></table></div>
|
|
11628
11659
|
`, styles: [":host{flex:0;width:100%;background:darkgray;padding:4px;box-sizing:border-box;height:100%;display:flex;flex-direction:row;flex-wrap:nowrap}\n", "span{flex:0;font-weight:700;display:inline-block;white-space:nowrap;box-sizing:border-box}\n", "button{touch-action:manipulation}\n"] }]
|
|
11629
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
11660
|
+
}], ctorParameters: function () { return [{ type: i1$2.BreakpointObserver }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { audioSignalCollapsed: [{
|
|
11630
11661
|
type: Input
|
|
11631
11662
|
}], enableDownload: [{
|
|
11632
11663
|
type: Input
|
|
@@ -11707,7 +11738,7 @@ class RecordingItemDisplay extends ResponsiveComponent {
|
|
|
11707
11738
|
let peakDBVal = levelInfo.powerLevelDB();
|
|
11708
11739
|
if (this.peakDbLvl < peakDBVal) {
|
|
11709
11740
|
this.peakDbLvl = peakDBVal;
|
|
11710
|
-
// the event comes from outside
|
|
11741
|
+
// the event comes from outside an Angular zone
|
|
11711
11742
|
this.changeDetectorRef.detectChanges();
|
|
11712
11743
|
}
|
|
11713
11744
|
this.liveLevel.update(levelInfo);
|
|
@@ -11723,14 +11754,14 @@ class RecordingItemDisplay extends ResponsiveComponent {
|
|
|
11723
11754
|
this.changeDetectorRef.detectChanges();
|
|
11724
11755
|
}
|
|
11725
11756
|
}
|
|
11726
|
-
RecordingItemDisplay.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
11727
|
-
RecordingItemDisplay.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.
|
|
11757
|
+
RecordingItemDisplay.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: RecordingItemDisplay, deps: [{ token: i1$2.BreakpointObserver }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
11758
|
+
RecordingItemDisplay.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: RecordingItemDisplay, selector: "spr-recordingitemdisplay", inputs: { streamingMode: "streamingMode", audioSignalCollapsed: "audioSignalCollapsed", enableDownload: "enableDownload", agc: "agc", playStartAction: "playStartAction", playStopAction: "playStopAction", displayAudioBuffer: "displayAudioBuffer", displayLevelInfos: "displayLevelInfos" }, outputs: { onShowRecordingDetails: "onShowRecordingDetails", onDownloadRecording: "onDownloadRecording" }, viewQueries: [{ propertyName: "liveLevel", first: true, predicate: LevelBar, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: `
|
|
11728
11759
|
<div [class]="{audioStatusDisplay:!screenXs,audioStatusDisplayXs:screenXs}">
|
|
11729
11760
|
<audio-levelbar style="flex:1 0 1%" [streamingMode]="streamingMode" [displayLevelInfos]="_displayLevelInfos"></audio-levelbar>
|
|
11730
11761
|
<spr-recordingitemcontrols style="flex:0 0 0px" [audioLoaded]="displayAudioBuffer!==null" [playStartAction]="playStartAction" [playStopAction]="playStopAction" [peakDbLvl]="peakDbLvl" [agc]="_agc" (onShowRecordingDetails)="onShowRecordingDetails.emit()"></spr-recordingitemcontrols>
|
|
11731
11762
|
</div>
|
|
11732
11763
|
`, isInline: true, styles: ["div{width:100%;background:darkgray;padding:4px;box-sizing:border-box;flex-wrap:nowrap}\n", "audio-levelbar{box-sizing:border-box}\n", ".audioStatusDisplay{display:flex;flex-direction:row;height:100px;min-height:100px}\n", ".audioStatusDisplayXs{display:flex;flex-direction:column;height:125px;min-height:125px}\n"], dependencies: [{ kind: "component", type: LevelBar, selector: "audio-levelbar", inputs: ["streamingMode", "displayLevelInfos", "state"] }, { kind: "component", type: RecordingItemControls, selector: "spr-recordingitemcontrols", inputs: ["audioSignalCollapsed", "enableDownload", "peakDbLvl", "agc", "disableAudioDetails", "audioLoaded", "playStartAction", "playStopAction", "displayLevelInfos"], outputs: ["onShowRecordingDetails", "onDownloadRecording"] }] });
|
|
11733
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
11764
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: RecordingItemDisplay, decorators: [{
|
|
11734
11765
|
type: Component,
|
|
11735
11766
|
args: [{ selector: 'spr-recordingitemdisplay', template: `
|
|
11736
11767
|
<div [class]="{audioStatusDisplay:!screenXs,audioStatusDisplayXs:screenXs}">
|
|
@@ -11738,7 +11769,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
11738
11769
|
<spr-recordingitemcontrols style="flex:0 0 0px" [audioLoaded]="displayAudioBuffer!==null" [playStartAction]="playStartAction" [playStopAction]="playStopAction" [peakDbLvl]="peakDbLvl" [agc]="_agc" (onShowRecordingDetails)="onShowRecordingDetails.emit()"></spr-recordingitemcontrols>
|
|
11739
11770
|
</div>
|
|
11740
11771
|
`, styles: ["div{width:100%;background:darkgray;padding:4px;box-sizing:border-box;flex-wrap:nowrap}\n", "audio-levelbar{box-sizing:border-box}\n", ".audioStatusDisplay{display:flex;flex-direction:row;height:100px;min-height:100px}\n", ".audioStatusDisplayXs{display:flex;flex-direction:column;height:125px;min-height:125px}\n"] }]
|
|
11741
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
11772
|
+
}], ctorParameters: function () { return [{ type: i1$2.BreakpointObserver }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { liveLevel: [{
|
|
11742
11773
|
type: ViewChild,
|
|
11743
11774
|
args: [LevelBar, { static: true }]
|
|
11744
11775
|
}], streamingMode: [{
|
|
@@ -12779,9 +12810,9 @@ class SpeechRecorderUploader extends Uploader {
|
|
|
12779
12810
|
this.config = config;
|
|
12780
12811
|
}
|
|
12781
12812
|
}
|
|
12782
|
-
SpeechRecorderUploader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
12783
|
-
SpeechRecorderUploader.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.
|
|
12784
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
12813
|
+
SpeechRecorderUploader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: SpeechRecorderUploader, deps: [{ token: i1.HttpClient }, { token: SPEECHRECORDER_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
12814
|
+
SpeechRecorderUploader.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: SpeechRecorderUploader });
|
|
12815
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: SpeechRecorderUploader, decorators: [{
|
|
12785
12816
|
type: Injectable
|
|
12786
12817
|
}], ctorParameters: function () {
|
|
12787
12818
|
return [{ type: i1.HttpClient }, { type: SpeechRecorderConfig, decorators: [{
|
|
@@ -12803,12 +12834,12 @@ class WarningBar {
|
|
|
12803
12834
|
}
|
|
12804
12835
|
}
|
|
12805
12836
|
}
|
|
12806
|
-
WarningBar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
12807
|
-
WarningBar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.
|
|
12837
|
+
WarningBar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: WarningBar, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
12838
|
+
WarningBar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: WarningBar, selector: "app-warningbar", inputs: { warningText: "warningText", show: "show" }, providers: [SessionService], ngImport: i0, template: `
|
|
12808
12839
|
<div [class]="displayClass">{{warningText}}</div>
|
|
12809
12840
|
|
|
12810
12841
|
`, isInline: true, styles: [":host{flex:0 0 content;background:orange}\n", ".off{display:none}\n", ".on{padding:2px;display:inline-block;width:100%;font-weight:700;font-size:larger;text-align:center}\n"] });
|
|
12811
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
12842
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: WarningBar, decorators: [{
|
|
12812
12843
|
type: Component,
|
|
12813
12844
|
args: [{ selector: 'app-warningbar', providers: [SessionService], template: `
|
|
12814
12845
|
<div [class]="displayClass">{{warningText}}</div>
|
|
@@ -13997,8 +14028,8 @@ class SessionManager extends BasicRecorder {
|
|
|
13997
14028
|
}
|
|
13998
14029
|
}
|
|
13999
14030
|
}
|
|
14000
|
-
SessionManager.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
14001
|
-
SessionManager.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.
|
|
14031
|
+
SessionManager.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: SessionManager, deps: [{ token: i1$2.BreakpointObserver }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: i1$3.MatDialog }, { token: SessionService }, { token: RecordingService }, { token: SpeechRecorderUploader }, { token: SPEECHRECORDER_CONFIG }], target: i0.ɵɵFactoryTarget.Component });
|
|
14032
|
+
SessionManager.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: SessionManager, selector: "app-sprrecordingsession", inputs: { projectName: "projectName", dataSaved: "dataSaved" }, host: { listeners: { "window:keypress": "onKeyPress($event)", "window:keydown": "onKeyDown($event)" } }, providers: [SessionService], viewQueries: [{ propertyName: "prompting", first: true, predicate: Prompting, descendants: true, static: true }, { propertyName: "liveLevelDisplay", first: true, predicate: LevelBar, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: `
|
|
14002
14033
|
<app-warningbar [show]="isTestSession()" warningText="Test recording only!"></app-warningbar>
|
|
14003
14034
|
<app-warningbar [show]="isDefaultAudioTestSession()" warningText="This test uses default audio device! Regular sessions may require a particular audio device (microphone)!"></app-warningbar>
|
|
14004
14035
|
<app-sprprompting [projectName]="projectName"
|
|
@@ -14048,7 +14079,7 @@ SessionManager.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version
|
|
|
14048
14079
|
</div>
|
|
14049
14080
|
</div>
|
|
14050
14081
|
`, isInline: true, styles: [":host{flex:2;background:lightgrey;display:flex;flex-direction:column;margin:0;padding:0;min-height:0px;overflow:hidden}\n", ".ricontrols{display:flex;padding:4px;box-sizing:border-box;height:100%;flex-direction:row;justify-content:flex-end;align-items:center;align-content:center}\n", ".dark{background:darkgray}\n", ".controlpanel{display:flex;flex-direction:row;align-content:center;align-items:center;margin:0;padding:20px;min-height:min-content}\n", ".audioStatusDisplay{display:flex;flex-direction:row;height:100px;min-height:100px}\n", ".audioStatusDisplayXs{display:flex;flex-direction:column;height:125px;min-height:125px}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: LevelBar, selector: "audio-levelbar", inputs: ["streamingMode", "displayLevelInfos", "state"] }, { kind: "component", type: Prompting, selector: "app-sprprompting", inputs: ["projectName", "startStopSignalState", "promptItem", "showPrompt", "items", "selectedItemIdx", "transportActions", "enableDownload", "audioSignalCollapsed", "displayAudioClip", "playStartAction", "playSelectionAction", "autoPlayOnSelectToggleAction", "playStopAction"], outputs: ["onItemSelect", "onNextItem", "onPrevItem"] }, { kind: "component", type: StatusDisplay, selector: "app-sprstatusdisplay", inputs: ["statusAlertType", "statusMsg", "statusWaiting"] }, { kind: "component", type: RecordingItemControls, selector: "spr-recordingitemcontrols", inputs: ["audioSignalCollapsed", "enableDownload", "peakDbLvl", "agc", "disableAudioDetails", "audioLoaded", "playStartAction", "playStopAction", "displayLevelInfos"], outputs: ["onShowRecordingDetails", "onDownloadRecording"] }, { kind: "component", type: UploadStatus, selector: "app-uploadstatus", inputs: ["value", "awaitNewUpload", "status"] }, { kind: "component", type: TransportPanel, selector: "app-sprtransport", inputs: ["readonly", "actions", "navigationEnabled", "pausingEnabled"] }, { kind: "component", type: WakeLockIndicator, selector: "app-wakelockindicator", inputs: ["screenLocked"] }, { kind: "component", type: ReadyStateIndicator, selector: "app-readystateindicator", inputs: ["ready"] }, { kind: "component", type: WarningBar, selector: "app-warningbar", inputs: ["warningText", "show"] }] });
|
|
14051
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
14082
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: SessionManager, decorators: [{
|
|
14052
14083
|
type: Component,
|
|
14053
14084
|
args: [{ selector: 'app-sprrecordingsession', providers: [SessionService], template: `
|
|
14054
14085
|
<app-warningbar [show]="isTestSession()" warningText="Test recording only!"></app-warningbar>
|
|
@@ -14101,7 +14132,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
14101
14132
|
</div>
|
|
14102
14133
|
`, styles: [":host{flex:2;background:lightgrey;display:flex;flex-direction:column;margin:0;padding:0;min-height:0px;overflow:hidden}\n", ".ricontrols{display:flex;padding:4px;box-sizing:border-box;height:100%;flex-direction:row;justify-content:flex-end;align-items:center;align-content:center}\n", ".dark{background:darkgray}\n", ".controlpanel{display:flex;flex-direction:row;align-content:center;align-items:center;margin:0;padding:20px;min-height:min-content}\n", ".audioStatusDisplay{display:flex;flex-direction:row;height:100px;min-height:100px}\n", ".audioStatusDisplayXs{display:flex;flex-direction:column;height:125px;min-height:125px}\n"] }]
|
|
14103
14134
|
}], ctorParameters: function () {
|
|
14104
|
-
return [{ type: i1$
|
|
14135
|
+
return [{ type: i1$2.BreakpointObserver }, { type: i0.ChangeDetectorRef }, { type: i0.Renderer2 }, { type: i1$3.MatDialog }, { type: SessionService }, { type: RecordingService }, { type: SpeechRecorderUploader }, { type: SpeechRecorderConfig, decorators: [{
|
|
14105
14136
|
type: Inject,
|
|
14106
14137
|
args: [SPEECHRECORDER_CONFIG]
|
|
14107
14138
|
}] }];
|
|
@@ -14234,9 +14265,9 @@ SprDb.dbName = 'speechrecorder';
|
|
|
14234
14265
|
SprDb.RECORDING_FILE_CACHE_OBJECT_STORE_NAME = '_recording_file_cache';
|
|
14235
14266
|
//public static RECORDING_FILE_CHUNKS_OBJECT_STORE_NAME='rec_file_chunks';
|
|
14236
14267
|
SprDb.dbVersion = 1;
|
|
14237
|
-
SprDb.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
14238
|
-
SprDb.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.
|
|
14239
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
14268
|
+
SprDb.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: SprDb, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
14269
|
+
SprDb.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: SprDb });
|
|
14270
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: SprDb, decorators: [{
|
|
14240
14271
|
type: Injectable
|
|
14241
14272
|
}], ctorParameters: function () { return []; } });
|
|
14242
14273
|
|
|
@@ -14334,9 +14365,9 @@ class ScriptService {
|
|
|
14334
14365
|
return this.http.get(scriptUrl, { withCredentials: this.withCredentials });
|
|
14335
14366
|
}
|
|
14336
14367
|
}
|
|
14337
|
-
ScriptService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
14338
|
-
ScriptService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.
|
|
14339
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
14368
|
+
ScriptService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ScriptService, deps: [{ token: i1.HttpClient }, { token: SPEECHRECORDER_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
14369
|
+
ScriptService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ScriptService });
|
|
14370
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ScriptService, decorators: [{
|
|
14340
14371
|
type: Injectable
|
|
14341
14372
|
}], ctorParameters: function () {
|
|
14342
14373
|
return [{ type: i1.HttpClient }, { type: SpeechRecorderConfig, decorators: [{
|
|
@@ -14550,7 +14581,7 @@ class SpeechrecorderngComponent extends RecorderComponent {
|
|
|
14550
14581
|
}
|
|
14551
14582
|
else {
|
|
14552
14583
|
// all this attempts to customize the message do not work anymore (for security reasons)!!
|
|
14553
|
-
|
|
14584
|
+
const message = "Please do not leave the page, until all recordings are uploaded!";
|
|
14554
14585
|
alert(message);
|
|
14555
14586
|
e = e || window.event;
|
|
14556
14587
|
if (e) {
|
|
@@ -14674,7 +14705,7 @@ class SpeechrecorderngComponent extends RecorderComponent {
|
|
|
14674
14705
|
projUrl = window.location.protocol + '//' + window.location.hostname + ':' + window.location.port + '/wikispeech/rest/projects/?sessionId=' + this.sessionId;
|
|
14675
14706
|
}
|
|
14676
14707
|
if (projUrl) {
|
|
14677
|
-
|
|
14708
|
+
const pLoader = new XMLHttpRequest();
|
|
14678
14709
|
pLoader.open("GET", projUrl, true);
|
|
14679
14710
|
pLoader.setRequestHeader('Accept', 'application/json');
|
|
14680
14711
|
pLoader.responseType = "json";
|
|
@@ -14709,25 +14740,25 @@ class SpeechrecorderngComponent extends RecorderComponent {
|
|
|
14709
14740
|
this.sm.statusMsg = 'ERROR: Recording.';
|
|
14710
14741
|
}
|
|
14711
14742
|
}
|
|
14712
|
-
SpeechrecorderngComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
14713
|
-
SpeechrecorderngComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.
|
|
14743
|
+
SpeechrecorderngComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: SpeechrecorderngComponent, deps: [{ token: i4$2.ActivatedRoute }, { token: i4$2.Router }, { token: i0.ChangeDetectorRef }, { token: SessionService }, { token: ProjectService }, { token: ScriptService }, { token: RecordingService }, { token: SpeechRecorderUploader }], target: i0.ɵɵFactoryTarget.Component });
|
|
14744
|
+
SpeechrecorderngComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: SpeechrecorderngComponent, selector: "app-speechrecorder", providers: [SessionService], viewQueries: [{ propertyName: "sm", first: true, predicate: SessionManager, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: `
|
|
14714
14745
|
<app-sprrecordingsession [projectName]="project?.name" [dataSaved]="dataSaved"></app-sprrecordingsession>
|
|
14715
14746
|
`, isInline: true, styles: [":host{flex:2;display:flex;flex-direction:column;min-height:0}\n"], dependencies: [{ kind: "component", type: SessionManager, selector: "app-sprrecordingsession", inputs: ["projectName", "dataSaved"] }] });
|
|
14716
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
14747
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: SpeechrecorderngComponent, decorators: [{
|
|
14717
14748
|
type: Component,
|
|
14718
14749
|
args: [{ selector: 'app-speechrecorder', providers: [SessionService], template: `
|
|
14719
14750
|
<app-sprrecordingsession [projectName]="project?.name" [dataSaved]="dataSaved"></app-sprrecordingsession>
|
|
14720
14751
|
`, styles: [":host{flex:2;display:flex;flex-direction:column;min-height:0}\n"] }]
|
|
14721
|
-
}], ctorParameters: function () { return [{ type:
|
|
14752
|
+
}], ctorParameters: function () { return [{ type: i4$2.ActivatedRoute }, { type: i4$2.Router }, { type: i0.ChangeDetectorRef }, { type: SessionService }, { type: ProjectService }, { type: ScriptService }, { type: RecordingService }, { type: SpeechRecorderUploader }]; }, propDecorators: { sm: [{
|
|
14722
14753
|
type: ViewChild,
|
|
14723
14754
|
args: [SessionManager, { static: true }]
|
|
14724
14755
|
}] } });
|
|
14725
14756
|
|
|
14726
14757
|
class ScrollPaneHorizontal {
|
|
14727
14758
|
}
|
|
14728
|
-
ScrollPaneHorizontal.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
14729
|
-
ScrollPaneHorizontal.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.
|
|
14730
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
14759
|
+
ScrollPaneHorizontal.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ScrollPaneHorizontal, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
14760
|
+
ScrollPaneHorizontal.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: ScrollPaneHorizontal, selector: "scroll-pane-horizontal", ngImport: i0, template: '', isInline: true, styles: [":host{width:100%;background:darkgray;box-sizing:border-box;height:100%;position:relative;overflow-x:scroll;overflow-y:auto}\n"] });
|
|
14761
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ScrollPaneHorizontal, decorators: [{
|
|
14731
14762
|
type: Component,
|
|
14732
14763
|
args: [{ selector: 'scroll-pane-horizontal', template: '', styles: [":host{width:100%;background:darkgray;box-sizing:border-box;height:100%;position:relative;overflow-x:scroll;overflow-y:auto}\n"] }]
|
|
14733
14764
|
}] });
|
|
@@ -14924,8 +14955,8 @@ class AudioDisplayPlayer {
|
|
|
14924
14955
|
this.status = 'ERROR';
|
|
14925
14956
|
}
|
|
14926
14957
|
}
|
|
14927
|
-
AudioDisplayPlayer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
14928
|
-
AudioDisplayPlayer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.
|
|
14958
|
+
AudioDisplayPlayer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AudioDisplayPlayer, deps: [{ token: i4$2.ActivatedRoute }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
14959
|
+
AudioDisplayPlayer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: AudioDisplayPlayer, selector: "app-audiodisplayplayer", inputs: { playStartAction: "playStartAction", playStopAction: "playStopAction", playSelectionAction: "playSelectionAction", autoPlayOnSelectToggleAction: "autoPlayOnSelectToggleAction", audioData: "audioData", audioClip: "audioClip" }, viewQueries: [{ propertyName: "audioDisplayScrollPane", first: true, predicate: AudioDisplayScrollPane, descendants: true, static: true }], ngImport: i0, template: `
|
|
14929
14960
|
|
|
14930
14961
|
<audio-display-scroll-pane #audioDisplayScrollPane></audio-display-scroll-pane>
|
|
14931
14962
|
|
|
@@ -14939,7 +14970,7 @@ AudioDisplayPlayer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ver
|
|
|
14939
14970
|
[zoomSelectedAction]="zoomSelectedAction"
|
|
14940
14971
|
[zoomFitToPanelAction]="zoomFitToPanelAction"></audio-display-control><p>{{status}}
|
|
14941
14972
|
`, isInline: true, styles: [":host{display:flex;flex-direction:column;position:absolute;bottom:0;height:100%;width:100%;overflow:hidden;padding:20px;z-index:5;box-sizing:border-box;background-color:#000000bf}\n"], dependencies: [{ kind: "component", type: AudioDisplayScrollPane, selector: "audio-display-scroll-pane", inputs: ["audioClip"], outputs: ["zoomInAction", "zoomOutAction", "zoomSelectedAction", "zoomFitToPanelAction"] }, { kind: "component", type: AudioDisplayControl, selector: "audio-display-control", inputs: ["audioClip", "playStartAction", "playSelectionAction", "playStopAction", "zoomInAction", "zoomOutAction", "zoomFitToPanelAction", "zoomSelectedAction", "autoPlayOnSelectToggleAction"] }] });
|
|
14942
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
14973
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AudioDisplayPlayer, decorators: [{
|
|
14943
14974
|
type: Component,
|
|
14944
14975
|
args: [{ selector: 'app-audiodisplayplayer', template: `
|
|
14945
14976
|
|
|
@@ -14955,7 +14986,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
14955
14986
|
[zoomSelectedAction]="zoomSelectedAction"
|
|
14956
14987
|
[zoomFitToPanelAction]="zoomFitToPanelAction"></audio-display-control><p>{{status}}
|
|
14957
14988
|
`, styles: [":host{display:flex;flex-direction:column;position:absolute;bottom:0;height:100%;width:100%;overflow:hidden;padding:20px;z-index:5;box-sizing:border-box;background-color:#000000bf}\n"] }]
|
|
14958
|
-
}], ctorParameters: function () { return [{ type:
|
|
14989
|
+
}], ctorParameters: function () { return [{ type: i4$2.ActivatedRoute }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }]; }, propDecorators: { playStartAction: [{
|
|
14959
14990
|
type: Input
|
|
14960
14991
|
}], playStopAction: [{
|
|
14961
14992
|
type: Input
|
|
@@ -15105,37 +15136,39 @@ class RecordingFileService extends BasicRecordingService {
|
|
|
15105
15136
|
let wobs = new Observable(observer => {
|
|
15106
15137
|
if (recordingFile.recordingFileId) {
|
|
15107
15138
|
let obs = this.fetchAudiofile(recordingFile.recordingFileId);
|
|
15108
|
-
obs.subscribe(resp => {
|
|
15109
|
-
|
|
15110
|
-
|
|
15111
|
-
|
|
15112
|
-
|
|
15113
|
-
|
|
15114
|
-
|
|
15115
|
-
|
|
15139
|
+
obs.subscribe({ next: resp => {
|
|
15140
|
+
// Do not use Promise version, which does not work with Safari 13
|
|
15141
|
+
if (resp.body) {
|
|
15142
|
+
aCtx.decodeAudioData(resp.body, ab => {
|
|
15143
|
+
let as = new AudioBufferSource(ab);
|
|
15144
|
+
RecordingFileUtils.setAudioData(recordingFile, new AudioDataHolder(as));
|
|
15145
|
+
if (this.debugDelay > 0) {
|
|
15146
|
+
window.setTimeout(() => {
|
|
15147
|
+
observer.next(recordingFile);
|
|
15148
|
+
observer.complete();
|
|
15149
|
+
}, this.debugDelay);
|
|
15150
|
+
}
|
|
15151
|
+
else {
|
|
15116
15152
|
observer.next(recordingFile);
|
|
15117
15153
|
observer.complete();
|
|
15118
|
-
}
|
|
15119
|
-
}
|
|
15120
|
-
|
|
15121
|
-
|
|
15122
|
-
|
|
15123
|
-
|
|
15124
|
-
|
|
15125
|
-
|
|
15126
|
-
|
|
15127
|
-
|
|
15128
|
-
|
|
15129
|
-
|
|
15130
|
-
|
|
15131
|
-
|
|
15132
|
-
|
|
15133
|
-
|
|
15134
|
-
|
|
15135
|
-
|
|
15136
|
-
// all other states are errors
|
|
15137
|
-
observer.error(error);
|
|
15138
|
-
observer.complete();
|
|
15154
|
+
}
|
|
15155
|
+
});
|
|
15156
|
+
}
|
|
15157
|
+
else {
|
|
15158
|
+
observer.error('Received no audio data!');
|
|
15159
|
+
}
|
|
15160
|
+
},
|
|
15161
|
+
error: (error) => {
|
|
15162
|
+
if (error.status == 404) {
|
|
15163
|
+
// Interpret not as an error, the file ist not recorded yet
|
|
15164
|
+
observer.next(null);
|
|
15165
|
+
observer.complete();
|
|
15166
|
+
}
|
|
15167
|
+
else {
|
|
15168
|
+
// all other states are errors
|
|
15169
|
+
observer.error(error);
|
|
15170
|
+
observer.complete();
|
|
15171
|
+
}
|
|
15139
15172
|
}
|
|
15140
15173
|
});
|
|
15141
15174
|
}
|
|
@@ -15149,81 +15182,39 @@ class RecordingFileService extends BasicRecordingService {
|
|
|
15149
15182
|
let wobs = new Observable(observer => {
|
|
15150
15183
|
let rf = null;
|
|
15151
15184
|
let rfDescrObs = this.recordingFileDescrObserver(recordingFileId);
|
|
15152
|
-
rfDescrObs.subscribe(value => {
|
|
15153
|
-
|
|
15154
|
-
|
|
15155
|
-
|
|
15156
|
-
|
|
15157
|
-
|
|
15158
|
-
|
|
15159
|
-
|
|
15160
|
-
|
|
15161
|
-
|
|
15162
|
-
|
|
15163
|
-
|
|
15164
|
-
|
|
15165
|
-
|
|
15166
|
-
|
|
15167
|
-
|
|
15168
|
-
|
|
15169
|
-
|
|
15170
|
-
|
|
15171
|
-
|
|
15172
|
-
|
|
15173
|
-
|
|
15185
|
+
rfDescrObs.subscribe({ next: value => {
|
|
15186
|
+
rf = value;
|
|
15187
|
+
}, error: (error) => {
|
|
15188
|
+
observer.error(error);
|
|
15189
|
+
}, complete: () => {
|
|
15190
|
+
let rfAudioObs = this.fetchAudiofile(recordingFileId);
|
|
15191
|
+
rfAudioObs.subscribe({
|
|
15192
|
+
next: resp => {
|
|
15193
|
+
// Do not use Promise version, which does not work with Safari 13
|
|
15194
|
+
if (resp.body) {
|
|
15195
|
+
aCtx.decodeAudioData(resp.body, ab => {
|
|
15196
|
+
if (rf) {
|
|
15197
|
+
let as = new AudioBufferSource(ab);
|
|
15198
|
+
RecordingFileUtils.setAudioData(rf, new AudioDataHolder(as));
|
|
15199
|
+
}
|
|
15200
|
+
else {
|
|
15201
|
+
observer.error('Recording file object null');
|
|
15202
|
+
}
|
|
15203
|
+
if (this.debugDelay > 0) {
|
|
15204
|
+
window.setTimeout(() => {
|
|
15205
|
+
observer.next(rf);
|
|
15206
|
+
observer.complete();
|
|
15207
|
+
}, this.debugDelay);
|
|
15208
|
+
}
|
|
15209
|
+
else {
|
|
15210
|
+
observer.next(rf);
|
|
15211
|
+
observer.complete();
|
|
15212
|
+
}
|
|
15213
|
+
});
|
|
15174
15214
|
}
|
|
15175
15215
|
else {
|
|
15176
|
-
observer.
|
|
15177
|
-
observer.complete();
|
|
15216
|
+
observer.error('Received no audio data');
|
|
15178
15217
|
}
|
|
15179
|
-
});
|
|
15180
|
-
}
|
|
15181
|
-
else {
|
|
15182
|
-
observer.error('Received no audio data');
|
|
15183
|
-
}
|
|
15184
|
-
}, (error) => {
|
|
15185
|
-
if (error.status == 404) {
|
|
15186
|
-
// Interpret not as an error, the file ist not recorded yet
|
|
15187
|
-
observer.next(null);
|
|
15188
|
-
observer.complete();
|
|
15189
|
-
}
|
|
15190
|
-
else {
|
|
15191
|
-
// all other states are errors
|
|
15192
|
-
observer.error(error);
|
|
15193
|
-
observer.complete();
|
|
15194
|
-
}
|
|
15195
|
-
});
|
|
15196
|
-
});
|
|
15197
|
-
});
|
|
15198
|
-
return wobs;
|
|
15199
|
-
}
|
|
15200
|
-
fetchSprRecordingFile(aCtx, recordingFileId) {
|
|
15201
|
-
let wobs = new Observable(observer => {
|
|
15202
|
-
let rf = null;
|
|
15203
|
-
let rfDescrObs = this.sprRecordingFileDescrObserver(recordingFileId);
|
|
15204
|
-
rfDescrObs.subscribe(value => {
|
|
15205
|
-
rf = value;
|
|
15206
|
-
}, (error) => {
|
|
15207
|
-
observer.error(error);
|
|
15208
|
-
}, () => {
|
|
15209
|
-
let sampleCnt = null;
|
|
15210
|
-
if (rf && rf.channels && rf.frames) {
|
|
15211
|
-
sampleCnt = rf.channels * rf.frames;
|
|
15212
|
-
}
|
|
15213
|
-
// TODO use download storage type depending on sample count of file
|
|
15214
|
-
if (rf && rf.samplerate && sampleCnt != null && sampleCnt > this._maxAutoNetMemStoreSamples) {
|
|
15215
|
-
const baseUrl = this.recoFileUrl(recordingFileId);
|
|
15216
|
-
const obNetAb = this.chunkAudioRequestToNetAudioBuffer(aCtx, baseUrl, 0, rf === null || rf === void 0 ? void 0 : rf.samplerate, BasicRecordingService.DEFAULT_CHUNKED_DOWNLOAD_SECONDS, rf.frames);
|
|
15217
|
-
obNetAb.subscribe({
|
|
15218
|
-
next: (nab) => {
|
|
15219
|
-
let adh = new AudioDataHolder(nab);
|
|
15220
|
-
if (rf) {
|
|
15221
|
-
RecordingFileUtils.setAudioData(rf, adh);
|
|
15222
|
-
observer.next(rf);
|
|
15223
|
-
}
|
|
15224
|
-
},
|
|
15225
|
-
complete: () => {
|
|
15226
|
-
observer.complete();
|
|
15227
15218
|
},
|
|
15228
15219
|
error: (error) => {
|
|
15229
15220
|
if (error.status == 404) {
|
|
@@ -15239,47 +15230,97 @@ class RecordingFileService extends BasicRecordingService {
|
|
|
15239
15230
|
}
|
|
15240
15231
|
});
|
|
15241
15232
|
}
|
|
15242
|
-
|
|
15243
|
-
|
|
15244
|
-
|
|
15245
|
-
|
|
15246
|
-
|
|
15247
|
-
|
|
15233
|
+
});
|
|
15234
|
+
});
|
|
15235
|
+
return wobs;
|
|
15236
|
+
}
|
|
15237
|
+
fetchSprRecordingFile(aCtx, recordingFileId) {
|
|
15238
|
+
let wobs = new Observable(observer => {
|
|
15239
|
+
let rf = null;
|
|
15240
|
+
let rfDescrObs = this.sprRecordingFileDescrObserver(recordingFileId);
|
|
15241
|
+
rfDescrObs.subscribe({ next: value => {
|
|
15242
|
+
rf = value;
|
|
15243
|
+
},
|
|
15244
|
+
error: (error) => {
|
|
15245
|
+
observer.error(error);
|
|
15246
|
+
}, complete: () => {
|
|
15247
|
+
let sampleCnt = null;
|
|
15248
|
+
if (rf && rf.channels && rf.frames) {
|
|
15249
|
+
sampleCnt = rf.channels * rf.frames;
|
|
15250
|
+
}
|
|
15251
|
+
// TODO use download storage type depending on sample count of file
|
|
15252
|
+
if (rf && rf.samplerate && sampleCnt != null && sampleCnt > this._maxAutoNetMemStoreSamples) {
|
|
15253
|
+
const baseUrl = this.recoFileUrl(recordingFileId);
|
|
15254
|
+
const obNetAb = this.chunkAudioRequestToNetAudioBuffer(aCtx, baseUrl, 0, rf === null || rf === void 0 ? void 0 : rf.samplerate, BasicRecordingService.DEFAULT_CHUNKED_DOWNLOAD_SECONDS, rf.frames);
|
|
15255
|
+
obNetAb.subscribe({
|
|
15256
|
+
next: (nab) => {
|
|
15257
|
+
let adh = new AudioDataHolder(nab);
|
|
15248
15258
|
if (rf) {
|
|
15249
|
-
let as = new AudioBufferSource(ab);
|
|
15250
|
-
let adh = new AudioDataHolder(as);
|
|
15251
15259
|
RecordingFileUtils.setAudioData(rf, adh);
|
|
15260
|
+
observer.next(rf);
|
|
15261
|
+
}
|
|
15262
|
+
},
|
|
15263
|
+
complete: () => {
|
|
15264
|
+
observer.complete();
|
|
15265
|
+
},
|
|
15266
|
+
error: (error) => {
|
|
15267
|
+
if (error.status == 404) {
|
|
15268
|
+
// Interpret not as an error, the file ist not recorded yet
|
|
15269
|
+
observer.next(null);
|
|
15270
|
+
observer.complete();
|
|
15252
15271
|
}
|
|
15253
15272
|
else {
|
|
15254
|
-
|
|
15273
|
+
// all other states are errors
|
|
15274
|
+
observer.error(error);
|
|
15275
|
+
observer.complete();
|
|
15255
15276
|
}
|
|
15256
|
-
|
|
15257
|
-
|
|
15258
|
-
|
|
15259
|
-
|
|
15260
|
-
|
|
15277
|
+
}
|
|
15278
|
+
});
|
|
15279
|
+
}
|
|
15280
|
+
else {
|
|
15281
|
+
let rfAudioObs = this.fetchAudiofile(recordingFileId);
|
|
15282
|
+
rfAudioObs.subscribe({ next: resp => {
|
|
15283
|
+
// Do not use Promise version, which does not work with Safari 13
|
|
15284
|
+
if (resp.body) {
|
|
15285
|
+
aCtx.decodeAudioData(resp.body, ab => {
|
|
15286
|
+
if (rf) {
|
|
15287
|
+
let as = new AudioBufferSource(ab);
|
|
15288
|
+
let adh = new AudioDataHolder(as);
|
|
15289
|
+
RecordingFileUtils.setAudioData(rf, adh);
|
|
15290
|
+
}
|
|
15291
|
+
else {
|
|
15292
|
+
observer.error('Recording file object null');
|
|
15293
|
+
}
|
|
15294
|
+
if (this.debugDelay > 0) {
|
|
15295
|
+
window.setTimeout(() => {
|
|
15296
|
+
observer.next(rf);
|
|
15297
|
+
observer.complete();
|
|
15298
|
+
}, this.debugDelay);
|
|
15299
|
+
}
|
|
15300
|
+
else {
|
|
15301
|
+
observer.next(rf);
|
|
15302
|
+
observer.complete();
|
|
15303
|
+
}
|
|
15304
|
+
});
|
|
15261
15305
|
}
|
|
15262
15306
|
else {
|
|
15263
|
-
observer.
|
|
15307
|
+
observer.error('Received no audio data');
|
|
15308
|
+
}
|
|
15309
|
+
},
|
|
15310
|
+
error: (error) => {
|
|
15311
|
+
if (error.status == 404) {
|
|
15312
|
+
// Interpret not as an error, the file ist not recorded yet
|
|
15313
|
+
observer.next(null);
|
|
15264
15314
|
observer.complete();
|
|
15265
15315
|
}
|
|
15266
|
-
|
|
15267
|
-
|
|
15268
|
-
|
|
15269
|
-
|
|
15270
|
-
|
|
15271
|
-
|
|
15272
|
-
|
|
15273
|
-
|
|
15274
|
-
observer.next(null);
|
|
15275
|
-
observer.complete();
|
|
15276
|
-
}
|
|
15277
|
-
else {
|
|
15278
|
-
// all other states are errors
|
|
15279
|
-
observer.error(error);
|
|
15280
|
-
observer.complete();
|
|
15281
|
-
}
|
|
15282
|
-
});
|
|
15316
|
+
else {
|
|
15317
|
+
// all other states are errors
|
|
15318
|
+
observer.error(error);
|
|
15319
|
+
observer.complete();
|
|
15320
|
+
}
|
|
15321
|
+
}
|
|
15322
|
+
});
|
|
15323
|
+
}
|
|
15283
15324
|
}
|
|
15284
15325
|
});
|
|
15285
15326
|
});
|
|
@@ -15297,9 +15338,9 @@ class RecordingFileService extends BasicRecordingService {
|
|
|
15297
15338
|
}
|
|
15298
15339
|
}
|
|
15299
15340
|
RecordingFileService.RECOFILE_API_CTX = 'recordingfile';
|
|
15300
|
-
RecordingFileService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
15301
|
-
RecordingFileService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.
|
|
15302
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
15341
|
+
RecordingFileService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: RecordingFileService, deps: [{ token: i1.HttpClient }, { token: SPEECHRECORDER_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
15342
|
+
RecordingFileService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: RecordingFileService });
|
|
15343
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: RecordingFileService, decorators: [{
|
|
15303
15344
|
type: Injectable
|
|
15304
15345
|
}], ctorParameters: function () {
|
|
15305
15346
|
return [{ type: i1.HttpClient }, { type: SpeechRecorderConfig, decorators: [{
|
|
@@ -15325,15 +15366,15 @@ class RecordingFileNaviComponent {
|
|
|
15325
15366
|
}
|
|
15326
15367
|
}
|
|
15327
15368
|
}
|
|
15328
|
-
RecordingFileNaviComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
15329
|
-
RecordingFileNaviComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.
|
|
15369
|
+
RecordingFileNaviComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: RecordingFileNaviComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
15370
|
+
RecordingFileNaviComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: RecordingFileNaviComponent, selector: "app-recording-file-navi", inputs: { firstAction: "firstAction", prevAction: "prevAction", nextAction: "nextAction", lastAction: "lastAction", items: "items", itemPos: "itemPos", selectVersion: "selectVersion", versions: "versions", version: "version", naviInfoLoading: "naviInfoLoading" }, ngImport: i0, template: `
|
|
15330
15371
|
<div #controlPanel style="display:flex;flex-direction: row;">
|
|
15331
15372
|
<div #navi style="flex: 0;display:flex;flex-direction: row;flex-wrap: nowrap">
|
|
15332
15373
|
<fieldset>
|
|
15333
15374
|
<legend>Versions</legend>
|
|
15334
15375
|
<mat-progress-spinner *ngIf="naviInfoLoading" mode="indeterminate" [diameter]="15"></mat-progress-spinner>
|
|
15335
15376
|
<select *ngIf="!naviInfoLoading" [disabled]="versions==null || versions.length==1" (change)="selectVersionChange($event)">
|
|
15336
|
-
<option *ngFor="let v of versions; let i = index" [selected]="v===version" value="{{v}}">{{v}}<
|
|
15377
|
+
<option *ngFor="let v of versions; let i = index" [selected]="v===version" value="{{v}}">{{v}}<ng-container *ngIf="i==0"> (latest)</ng-container></option>
|
|
15337
15378
|
</select>
|
|
15338
15379
|
</fieldset>
|
|
15339
15380
|
<fieldset>
|
|
@@ -15359,7 +15400,7 @@ RecordingFileNaviComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0
|
|
|
15359
15400
|
</div>
|
|
15360
15401
|
</div>
|
|
15361
15402
|
`, isInline: true, styles: [":host{flex:0}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i3$1.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] });
|
|
15362
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
15403
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: RecordingFileNaviComponent, decorators: [{
|
|
15363
15404
|
type: Component,
|
|
15364
15405
|
args: [{ selector: 'app-recording-file-navi', template: `
|
|
15365
15406
|
<div #controlPanel style="display:flex;flex-direction: row;">
|
|
@@ -15368,7 +15409,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
15368
15409
|
<legend>Versions</legend>
|
|
15369
15410
|
<mat-progress-spinner *ngIf="naviInfoLoading" mode="indeterminate" [diameter]="15"></mat-progress-spinner>
|
|
15370
15411
|
<select *ngIf="!naviInfoLoading" [disabled]="versions==null || versions.length==1" (change)="selectVersionChange($event)">
|
|
15371
|
-
<option *ngFor="let v of versions; let i = index" [selected]="v===version" value="{{v}}">{{v}}<
|
|
15412
|
+
<option *ngFor="let v of versions; let i = index" [selected]="v===version" value="{{v}}">{{v}}<ng-container *ngIf="i==0"> (latest)</ng-container></option>
|
|
15372
15413
|
</select>
|
|
15373
15414
|
</fieldset>
|
|
15374
15415
|
<fieldset>
|
|
@@ -15458,8 +15499,8 @@ class RecordingFileMetaComponent {
|
|
|
15458
15499
|
return t;
|
|
15459
15500
|
}
|
|
15460
15501
|
}
|
|
15461
|
-
RecordingFileMetaComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
15462
|
-
RecordingFileMetaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.
|
|
15502
|
+
RecordingFileMetaComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: RecordingFileMetaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
15503
|
+
RecordingFileMetaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: RecordingFileMetaComponent, selector: "app-recording-file-meta", inputs: { sessionId: "sessionId", stateLoading: "stateLoading", recordingFile: "recordingFile" }, ngImport: i0, template: `
|
|
15463
15504
|
<mat-card>
|
|
15464
15505
|
<mat-card-title>Recording file ID: {{recordingFile?.recordingFileId}}</mat-card-title>
|
|
15465
15506
|
<mat-card-content>
|
|
@@ -15494,7 +15535,7 @@ RecordingFileMetaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0
|
|
|
15494
15535
|
</mat-card-content>
|
|
15495
15536
|
</mat-card>
|
|
15496
15537
|
`, isInline: true, dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3$1.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i3$2.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i3$2.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "directive", type: i3$2.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }] });
|
|
15497
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
15538
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: RecordingFileMetaComponent, decorators: [{
|
|
15498
15539
|
type: Component,
|
|
15499
15540
|
args: [{ selector: 'app-recording-file-meta', template: `
|
|
15500
15541
|
<mat-card>
|
|
@@ -15734,47 +15775,49 @@ class RecordingFileViewComponent extends AudioDisplayPlayer {
|
|
|
15734
15775
|
let audioContext = AudioContextProvider.audioContextInstance();
|
|
15735
15776
|
if (audioContext) {
|
|
15736
15777
|
this.audioFetching = true;
|
|
15737
|
-
this.recordingFileService.fetchSprRecordingFile(audioContext, rfId).subscribe(
|
|
15738
|
-
|
|
15739
|
-
|
|
15740
|
-
|
|
15741
|
-
|
|
15742
|
-
|
|
15743
|
-
|
|
15744
|
-
|
|
15745
|
-
|
|
15746
|
-
|
|
15747
|
-
|
|
15748
|
-
|
|
15749
|
-
|
|
15750
|
-
|
|
15751
|
-
|
|
15752
|
-
|
|
15753
|
-
|
|
15754
|
-
|
|
15755
|
-
let sel = null;
|
|
15756
|
-
if (esffsr != null) {
|
|
15757
|
-
if (eeffsr != null) {
|
|
15758
|
-
sel = new Selection(ab.sampleRate, esffsr, eeffsr);
|
|
15778
|
+
this.recordingFileService.fetchSprRecordingFile(audioContext, rfId).subscribe({
|
|
15779
|
+
next: value => {
|
|
15780
|
+
this.audioFetching = false;
|
|
15781
|
+
this.status = 'Audio file loaded.';
|
|
15782
|
+
let clip = null;
|
|
15783
|
+
this.recordingFile = value;
|
|
15784
|
+
if (this.recordingFile) {
|
|
15785
|
+
let ab = this.recordingFile.audioDataHolder;
|
|
15786
|
+
if (ab) {
|
|
15787
|
+
clip = new AudioClip(ab);
|
|
15788
|
+
let esffsr = null;
|
|
15789
|
+
let eeffsr = null;
|
|
15790
|
+
let esr = null;
|
|
15791
|
+
if (clip.audioDataHolder != null) {
|
|
15792
|
+
esr = ab.sampleRate;
|
|
15793
|
+
if (esr != null) {
|
|
15794
|
+
esffsr = RecordingFileUtil.editStartFrameForSampleRate(this.recordingFile, esr);
|
|
15795
|
+
eeffsr = RecordingFileUtil.editEndFrameForSampleRate(this.recordingFile, esr);
|
|
15759
15796
|
}
|
|
15760
|
-
|
|
15761
|
-
|
|
15762
|
-
|
|
15763
|
-
|
|
15797
|
+
let sel = null;
|
|
15798
|
+
if (esffsr != null) {
|
|
15799
|
+
if (eeffsr != null) {
|
|
15800
|
+
sel = new Selection(ab.sampleRate, esffsr, eeffsr);
|
|
15801
|
+
}
|
|
15802
|
+
else {
|
|
15803
|
+
//let ch0 = ab.getChannelData(0);
|
|
15804
|
+
let frameLength = ab.frameLen;
|
|
15805
|
+
sel = new Selection(esr, esffsr, frameLength);
|
|
15806
|
+
}
|
|
15764
15807
|
}
|
|
15808
|
+
else if (eeffsr != null) {
|
|
15809
|
+
sel = new Selection(esr, 0, eeffsr);
|
|
15810
|
+
}
|
|
15811
|
+
clip.selection = sel;
|
|
15765
15812
|
}
|
|
15766
|
-
else if (eeffsr != null) {
|
|
15767
|
-
sel = new Selection(esr, 0, eeffsr);
|
|
15768
|
-
}
|
|
15769
|
-
clip.selection = sel;
|
|
15770
15813
|
}
|
|
15771
15814
|
}
|
|
15815
|
+
this.audioClip = clip;
|
|
15816
|
+
this.loadedRecfile();
|
|
15817
|
+
}, error: error1 => {
|
|
15818
|
+
this.audioFetching = false;
|
|
15819
|
+
this.status = 'Error loading audio file!';
|
|
15772
15820
|
}
|
|
15773
|
-
this.audioClip = clip;
|
|
15774
|
-
this.loadedRecfile();
|
|
15775
|
-
}, error1 => {
|
|
15776
|
-
this.audioFetching = false;
|
|
15777
|
-
this.status = 'Error loading audio file!';
|
|
15778
15821
|
});
|
|
15779
15822
|
}
|
|
15780
15823
|
}
|
|
@@ -15802,7 +15845,7 @@ class RecordingFileViewComponent extends AudioDisplayPlayer {
|
|
|
15802
15845
|
this.lastAction.disabled = (this.posInList == null || itemCnt == null || this.posInList >= itemCnt - 1);
|
|
15803
15846
|
}
|
|
15804
15847
|
loadSession(sessionId) {
|
|
15805
|
-
// load session and recording file
|
|
15848
|
+
// load session and recording file metadata only when on init and when session changes
|
|
15806
15849
|
if (sessionId != this.sessionId) {
|
|
15807
15850
|
// tell UI that we are working...
|
|
15808
15851
|
this.naviInfoLoading = true;
|
|
@@ -15840,7 +15883,7 @@ class RecordingFileViewComponent extends AudioDisplayPlayer {
|
|
|
15840
15883
|
else {
|
|
15841
15884
|
// rec file with itemcode already exists, add (push) this version ...
|
|
15842
15885
|
exRfsForIc.push(rfd);
|
|
15843
|
-
//
|
|
15886
|
+
// ... and sort latest version (highest version number) to lowest index
|
|
15844
15887
|
exRfsForIc.sort((rfd1, rfd2) => {
|
|
15845
15888
|
return rfd2.version - rfd1.version;
|
|
15846
15889
|
});
|
|
@@ -15894,8 +15937,8 @@ class RecordingFileViewComponent extends AudioDisplayPlayer {
|
|
|
15894
15937
|
}
|
|
15895
15938
|
}
|
|
15896
15939
|
}
|
|
15897
|
-
RecordingFileViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
15898
|
-
RecordingFileViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.
|
|
15940
|
+
RecordingFileViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: RecordingFileViewComponent, deps: [{ token: RecordingFileService }, { token: RecordingService }, { token: SessionService }, { token: i4$2.Router }, { token: i4$2.ActivatedRoute }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i1$3.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
|
|
15941
|
+
RecordingFileViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: RecordingFileViewComponent, selector: "app-audiodisplayplayer", viewQueries: [{ propertyName: "ac", first: true, predicate: AudioDisplayScrollPane, descendants: true }], usesInheritance: true, ngImport: i0, template: `
|
|
15899
15942
|
|
|
15900
15943
|
<audio-display-scroll-pane #audioDisplayScrollPane></audio-display-scroll-pane>
|
|
15901
15944
|
<div class="ctrlview">
|
|
@@ -15913,7 +15956,7 @@ RecordingFileViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0
|
|
|
15913
15956
|
<app-recording-file-navi [items]="availRecFiles?.length" [itemPos]="posInList" [version]="recordingFileVersion" [versions]="versions" [firstAction]="firstAction" [prevAction]="prevAction" [nextAction]="nextAction" [lastAction]="lastAction" [selectVersion]="toVersionAction" [naviInfoLoading]="naviInfoLoading"></app-recording-file-navi>
|
|
15914
15957
|
</div>
|
|
15915
15958
|
`, isInline: true, styles: [":host{flex:2;display:flex;flex-direction:column;min-height:0;overflow:hidden;padding:20px;z-index:5;box-sizing:border-box;background-color:#fff}\n", ".ctrlview{display:flex;flex-direction:row}\n", "audio-display-control{flex:3}\n"], dependencies: [{ kind: "component", type: AudioDisplayScrollPane, selector: "audio-display-scroll-pane", inputs: ["audioClip"], outputs: ["zoomInAction", "zoomOutAction", "zoomSelectedAction", "zoomFitToPanelAction"] }, { kind: "component", type: AudioDisplayControl, selector: "audio-display-control", inputs: ["audioClip", "playStartAction", "playSelectionAction", "playStopAction", "zoomInAction", "zoomOutAction", "zoomFitToPanelAction", "zoomSelectedAction", "autoPlayOnSelectToggleAction"] }, { kind: "component", type: RecordingFileNaviComponent, selector: "app-recording-file-navi", inputs: ["firstAction", "prevAction", "nextAction", "lastAction", "items", "itemPos", "selectVersion", "versions", "version", "naviInfoLoading"] }, { kind: "component", type: RecordingFileMetaComponent, selector: "app-recording-file-meta", inputs: ["sessionId", "stateLoading", "recordingFile"] }] });
|
|
15916
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
15959
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: RecordingFileViewComponent, decorators: [{
|
|
15917
15960
|
type: Component,
|
|
15918
15961
|
args: [{ selector: 'app-audiodisplayplayer', template: `
|
|
15919
15962
|
|
|
@@ -15933,7 +15976,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
15933
15976
|
<app-recording-file-navi [items]="availRecFiles?.length" [itemPos]="posInList" [version]="recordingFileVersion" [versions]="versions" [firstAction]="firstAction" [prevAction]="prevAction" [nextAction]="nextAction" [lastAction]="lastAction" [selectVersion]="toVersionAction" [naviInfoLoading]="naviInfoLoading"></app-recording-file-navi>
|
|
15934
15977
|
</div>
|
|
15935
15978
|
`, styles: [":host{flex:2;display:flex;flex-direction:column;min-height:0;overflow:hidden;padding:20px;z-index:5;box-sizing:border-box;background-color:#fff}\n", ".ctrlview{display:flex;flex-direction:row}\n", "audio-display-control{flex:3}\n"] }]
|
|
15936
|
-
}], ctorParameters: function () { return [{ type: RecordingFileService }, { type: RecordingService }, { type: SessionService }, { type:
|
|
15979
|
+
}], ctorParameters: function () { return [{ type: RecordingFileService }, { type: RecordingService }, { type: SessionService }, { type: i4$2.Router }, { type: i4$2.ActivatedRoute }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i1$3.MatDialog }]; }, propDecorators: { ac: [{
|
|
15937
15980
|
type: ViewChild,
|
|
15938
15981
|
args: [AudioDisplayScrollPane]
|
|
15939
15982
|
}] } });
|
|
@@ -15999,28 +16042,29 @@ class RecordingFileUI extends RecordingFileViewComponent {
|
|
|
15999
16042
|
sf = s.startFrame;
|
|
16000
16043
|
ef = s.endFrame;
|
|
16001
16044
|
}
|
|
16002
|
-
this.recordingFileService.saveEditSelection(this.recordingFile.recordingFileId, sr, sf, ef).subscribe((value) => {
|
|
16003
|
-
|
|
16004
|
-
|
|
16005
|
-
|
|
16006
|
-
|
|
16007
|
-
|
|
16008
|
-
|
|
16009
|
-
|
|
16010
|
-
|
|
16011
|
-
|
|
16012
|
-
|
|
16013
|
-
|
|
16014
|
-
|
|
16015
|
-
|
|
16016
|
-
|
|
16045
|
+
this.recordingFileService.saveEditSelection(this.recordingFile.recordingFileId, sr, sf, ef).subscribe({ next: (value) => { },
|
|
16046
|
+
error: () => {
|
|
16047
|
+
this.dialog.open(MessageDialog, {
|
|
16048
|
+
data: {
|
|
16049
|
+
type: 'error',
|
|
16050
|
+
title: 'Save selection edit error',
|
|
16051
|
+
msg: "Could not save edit selection to WikiSpeech server!",
|
|
16052
|
+
advice: "Please check network connection and server state."
|
|
16053
|
+
}
|
|
16054
|
+
});
|
|
16055
|
+
}, complete: () => {
|
|
16056
|
+
// Or use returned selection value from server?
|
|
16057
|
+
this.savedEditSelection = s;
|
|
16058
|
+
this.editSaved = true;
|
|
16059
|
+
this.snackBar.open('Selection edit saved successfully.', 'OK', { duration: 1500 });
|
|
16060
|
+
}
|
|
16017
16061
|
});
|
|
16018
16062
|
}
|
|
16019
16063
|
}
|
|
16020
16064
|
}
|
|
16021
16065
|
}
|
|
16022
|
-
RecordingFileUI.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
16023
|
-
RecordingFileUI.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.
|
|
16066
|
+
RecordingFileUI.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: RecordingFileUI, deps: [{ token: RecordingFileService }, { token: RecordingService }, { token: SessionService }, { token: i4$2.Router }, { token: i4$2.ActivatedRoute }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i1$3.MatDialog }, { token: i6.MatSnackBar }], target: i0.ɵɵFactoryTarget.Component });
|
|
16067
|
+
RecordingFileUI.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: RecordingFileUI, selector: "app-audiodisplayplayer", usesInheritance: true, ngImport: i0, template: `
|
|
16024
16068
|
<h1>Recording file editing</h1>
|
|
16025
16069
|
<p>On export or delivery the editing selection of the recording file is cut out. If no editing selection is applied the original file is exported.</p>
|
|
16026
16070
|
|
|
@@ -16041,7 +16085,7 @@ RecordingFileUI.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", versio
|
|
|
16041
16085
|
|
|
16042
16086
|
<button mat-raised-button color="accent" (click)="applySelection()" [disabled]="editSaved">{{this.applyButtonText()}}</button>
|
|
16043
16087
|
`, isInline: true, styles: [":host{flex:2;display:flex;flex-direction:column;min-height:0;overflow:hidden;padding:20px;z-index:5;box-sizing:border-box;background-color:#fff}\n", ".ctrlview{display:flex;flex-direction:row}\n", "audio-display-control{flex:3}\n"], dependencies: [{ kind: "component", type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: AudioDisplayScrollPane, selector: "audio-display-scroll-pane", inputs: ["audioClip"], outputs: ["zoomInAction", "zoomOutAction", "zoomSelectedAction", "zoomFitToPanelAction"] }, { kind: "component", type: AudioDisplayControl, selector: "audio-display-control", inputs: ["audioClip", "playStartAction", "playSelectionAction", "playStopAction", "zoomInAction", "zoomOutAction", "zoomFitToPanelAction", "zoomSelectedAction", "autoPlayOnSelectToggleAction"] }, { kind: "component", type: RecordingFileNaviComponent, selector: "app-recording-file-navi", inputs: ["firstAction", "prevAction", "nextAction", "lastAction", "items", "itemPos", "selectVersion", "versions", "version", "naviInfoLoading"] }, { kind: "component", type: RecordingFileMetaComponent, selector: "app-recording-file-meta", inputs: ["sessionId", "stateLoading", "recordingFile"] }] });
|
|
16044
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
16088
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: RecordingFileUI, decorators: [{
|
|
16045
16089
|
type: Component,
|
|
16046
16090
|
args: [{ selector: 'app-audiodisplayplayer', template: `
|
|
16047
16091
|
<h1>Recording file editing</h1>
|
|
@@ -16064,7 +16108,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
16064
16108
|
|
|
16065
16109
|
<button mat-raised-button color="accent" (click)="applySelection()" [disabled]="editSaved">{{this.applyButtonText()}}</button>
|
|
16066
16110
|
`, styles: [":host{flex:2;display:flex;flex-direction:column;min-height:0;overflow:hidden;padding:20px;z-index:5;box-sizing:border-box;background-color:#fff}\n", ".ctrlview{display:flex;flex-direction:row}\n", "audio-display-control{flex:3}\n"] }]
|
|
16067
|
-
}], ctorParameters: function () { return [{ type: RecordingFileService }, { type: RecordingService }, { type: SessionService }, { type:
|
|
16111
|
+
}], ctorParameters: function () { return [{ type: RecordingFileService }, { type: RecordingService }, { type: SessionService }, { type: i4$2.Router }, { type: i4$2.ActivatedRoute }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i1$3.MatDialog }, { type: i6.MatSnackBar }]; } });
|
|
16068
16112
|
|
|
16069
16113
|
class MediaUtils {
|
|
16070
16114
|
static toMediaTime(timeInSeconds) {
|
|
@@ -16157,8 +16201,8 @@ class RecordingList {
|
|
|
16157
16201
|
return cached;
|
|
16158
16202
|
}
|
|
16159
16203
|
}
|
|
16160
|
-
RecordingList.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
16161
|
-
RecordingList.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.
|
|
16204
|
+
RecordingList.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: RecordingList, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
16205
|
+
RecordingList.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: RecordingList, selector: "app-recordinglist", inputs: { selectDisabled: "selectDisabled", selectedRecordingFile: "selectedRecordingFile" }, outputs: { selectedRecordingFileChanged: "selectedRecordingFileChanged" }, ngImport: i0, template: `
|
|
16162
16206
|
<mat-card>
|
|
16163
16207
|
<mat-card-header>
|
|
16164
16208
|
<h2>Recording list</h2>
|
|
@@ -16202,8 +16246,8 @@ RecordingList.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version:
|
|
|
16202
16246
|
</mat-card-content>
|
|
16203
16247
|
</mat-card>
|
|
16204
16248
|
|
|
16205
|
-
`, isInline: true, styles: [".monospaced{font-family:monospace}.mat-cell,.mat-header-cell{padding-left:5px;padding-right:5px}.mat-card,.mat-card-header,.mat-card-content{width:auto}.flexForm{display:flex;flex-direction:column;width:auto}.flexFill{margin:0;width:100%;height:100%;min-width:100%;min-height:100%}\n", ":host{position:relative;margin:0;padding:0;background:lightgrey;width:100%;flex:1;overflow-y:auto;min-height:0px}\n", ".selected{font-weight:700}\n"], dependencies: [{ kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i3$2.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "component", type: i3$2.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i3$2.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "component", type: i4$
|
|
16206
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
16249
|
+
`, isInline: true, styles: [".monospaced{font-family:monospace}.mat-cell,.mat-header-cell{padding-left:5px;padding-right:5px}.mat-card,.mat-card-header,.mat-card-content{width:auto}.flexForm{display:flex;flex-direction:column;width:auto}.flexFill{margin:0;width:100%;height:100%;min-width:100%;min-height:100%}\n", ":host{position:relative;margin:0;padding:0;background:lightgrey;width:100%;flex:1;overflow-y:auto;min-height:0px}\n", ".selected{font-weight:700}\n"], dependencies: [{ kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i3$2.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "component", type: i3$2.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i3$2.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "component", type: i4$3.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i4$3.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i4$3.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i4$3.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i4$3.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i4$3.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i4$3.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i4$3.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i4$3.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i4$3.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: ScrollIntoViewDirective, selector: "[scrollIntoViewToBottom]", inputs: ["scrollIntoViewToBottom"] }, { kind: "pipe", type: i1$1.DatePipe, name: "date" }] });
|
|
16250
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: RecordingList, decorators: [{
|
|
16207
16251
|
type: Component,
|
|
16208
16252
|
args: [{ selector: 'app-recordinglist', template: `
|
|
16209
16253
|
<mat-card>
|
|
@@ -16283,8 +16327,8 @@ class RecorderCombiPane extends ResponsiveComponent {
|
|
|
16283
16327
|
this.recordingListComp.selectTop();
|
|
16284
16328
|
}
|
|
16285
16329
|
}
|
|
16286
|
-
RecorderCombiPane.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
16287
|
-
RecorderCombiPane.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.
|
|
16330
|
+
RecorderCombiPane.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: RecorderCombiPane, deps: [{ token: i1$2.BreakpointObserver }], target: i0.ɵɵFactoryTarget.Component });
|
|
16331
|
+
RecorderCombiPane.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: RecorderCombiPane, selector: "app-recordercombipane", inputs: { selectDisabled: "selectDisabled", selectedRecordingFile: "selectedRecordingFile", audioSignalCollapsed: "audioSignalCollapsed", displayAudioClip: "displayAudioClip", playStartAction: "playStartAction", playSelectionAction: "playSelectionAction", autoPlayOnSelectToggleAction: "autoPlayOnSelectToggleAction", playStopAction: "playStopAction" }, outputs: { selectedRecordingFileChanged: "selectedRecordingFileChanged" }, viewQueries: [{ propertyName: "recordingListComp", first: true, predicate: RecordingList, descendants: true }, { propertyName: "audioDisplay", first: true, predicate: AudioDisplay, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: `
|
|
16288
16332
|
<div class="scrollList">
|
|
16289
16333
|
<app-recordinglist [selectedRecordingFile]="selectedRecordingFile" [selectDisabled]="selectDisabled" (selectedRecordingFileChanged)="selectRecordingFile($event)"></app-recordinglist>
|
|
16290
16334
|
</div>
|
|
@@ -16297,7 +16341,7 @@ RecorderCombiPane.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", vers
|
|
|
16297
16341
|
[playStopAction]="playStopAction"></app-audiodisplay>
|
|
16298
16342
|
</div>
|
|
16299
16343
|
`, isInline: true, styles: [".monospaced{font-family:monospace}.mat-cell,.mat-header-cell{padding-left:5px;padding-right:5px}.mat-card,.mat-card-header,.mat-card-content{width:auto}.flexForm{display:flex;flex-direction:column;width:auto}.flexFill{margin:0;width:100%;height:100%;min-width:100%;min-height:100%}\n", ":host{background-color:#ff0;position:relative;margin:0;padding:0;background:lightgrey;width:100%;flex:1;min-height:0px}\n", ".scrollList{margin:0;padding:0;background:lightgrey;width:100%;height:100%;overflow-y:auto}\n", ".collapsable{display:none;position:absolute;z-index:5}\n", ".collapsable.active{display:flex;position:absolute;bottom:0;height:90%;width:100%;overflow:hidden;padding:0;z-index:200;box-sizing:border-box;background-color:#0000}\n"], dependencies: [{ kind: "component", type: AudioDisplay, selector: "app-audiodisplay", inputs: ["playStartAction", "playStopAction", "playSelectionAction", "autoPlayOnSelectToggleAction", "audioData", "audioClip"] }, { kind: "component", type: RecordingList, selector: "app-recordinglist", inputs: ["selectDisabled", "selectedRecordingFile"], outputs: ["selectedRecordingFileChanged"] }] });
|
|
16300
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
16344
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: RecorderCombiPane, decorators: [{
|
|
16301
16345
|
type: Component,
|
|
16302
16346
|
args: [{ selector: 'app-recordercombipane', template: `
|
|
16303
16347
|
<div class="scrollList">
|
|
@@ -16312,7 +16356,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
16312
16356
|
[playStopAction]="playStopAction"></app-audiodisplay>
|
|
16313
16357
|
</div>
|
|
16314
16358
|
`, styles: [".monospaced{font-family:monospace}.mat-cell,.mat-header-cell{padding-left:5px;padding-right:5px}.mat-card,.mat-card-header,.mat-card-content{width:auto}.flexForm{display:flex;flex-direction:column;width:auto}.flexFill{margin:0;width:100%;height:100%;min-width:100%;min-height:100%}\n", ":host{background-color:#ff0;position:relative;margin:0;padding:0;background:lightgrey;width:100%;flex:1;min-height:0px}\n", ".scrollList{margin:0;padding:0;background:lightgrey;width:100%;height:100%;overflow-y:auto}\n", ".collapsable{display:none;position:absolute;z-index:5}\n", ".collapsable.active{display:flex;position:absolute;bottom:0;height:90%;width:100%;overflow:hidden;padding:0;z-index:200;box-sizing:border-box;background-color:#0000}\n"] }]
|
|
16315
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
16359
|
+
}], ctorParameters: function () { return [{ type: i1$2.BreakpointObserver }]; }, propDecorators: { recordingListComp: [{
|
|
16316
16360
|
type: ViewChild,
|
|
16317
16361
|
args: [RecordingList]
|
|
16318
16362
|
}], selectDisabled: [{
|
|
@@ -16339,11 +16383,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
16339
16383
|
}] } });
|
|
16340
16384
|
|
|
16341
16385
|
class AudioRecorder extends BasicRecorder {
|
|
16342
|
-
constructor(bpo, changeDetectorRef, renderer,
|
|
16386
|
+
constructor(bpo, changeDetectorRef, renderer, dialog, sessionService, recFileService, uploader, config) {
|
|
16343
16387
|
super(bpo, changeDetectorRef, dialog, sessionService, uploader, config);
|
|
16344
16388
|
this.bpo = bpo;
|
|
16345
16389
|
this.renderer = renderer;
|
|
16346
|
-
this.route = route;
|
|
16347
16390
|
this.recFileService = recFileService;
|
|
16348
16391
|
this.uploader = uploader;
|
|
16349
16392
|
this._project = null;
|
|
@@ -17253,8 +17296,8 @@ class AudioRecorder extends BasicRecorder {
|
|
|
17253
17296
|
}
|
|
17254
17297
|
}
|
|
17255
17298
|
}
|
|
17256
|
-
AudioRecorder.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
17257
|
-
AudioRecorder.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.
|
|
17299
|
+
AudioRecorder.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AudioRecorder, deps: [{ token: i1$2.BreakpointObserver }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: i1$3.MatDialog }, { token: SessionService }, { token: RecordingService }, { token: SpeechRecorderUploader }, { token: SPEECHRECORDER_CONFIG }], target: i0.ɵɵFactoryTarget.Component });
|
|
17300
|
+
AudioRecorder.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: AudioRecorder, selector: "app-audiorecorder", inputs: { projectName: "projectName", dataSaved: "dataSaved" }, host: { listeners: { "window:keypress": "onKeyPress($event)", "window:keydown": "onKeyDown($event)" } }, providers: [SessionService], viewQueries: [{ propertyName: "recorderCombiPane", first: true, predicate: RecorderCombiPane, descendants: true, static: true }, { propertyName: "liveLevelDisplay", first: true, predicate: LevelBar, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: `
|
|
17258
17301
|
<app-warningbar [show]="isTestSession()" warningText="Test recording only!"></app-warningbar>
|
|
17259
17302
|
<app-warningbar [show]="isDefaultAudioTestSession()"
|
|
17260
17303
|
warningText="This test uses default audio device! Regular sessions may require a particular audio device (microphone)!"></app-warningbar>
|
|
@@ -17313,7 +17356,7 @@ AudioRecorder.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version:
|
|
|
17313
17356
|
</div>
|
|
17314
17357
|
</div>
|
|
17315
17358
|
`, isInline: true, styles: [":host{flex:2;background:lightgrey;display:flex;flex-direction:column;margin:0;padding:0;height:100%;min-height:0px;overflow:hidden}\n", ".ricontrols{padding:4px;box-sizing:border-box;height:100%}\n", ".dark{background:darkgray}\n", ".controlpanel{display:flex;flex-direction:row;align-content:center;align-items:center;margin:0;padding:20px;min-height:min-content}\n", ".startstop{width:100%;flex:1 0 30%;align-items:center;text-align:center;align-content:center}\n", ".startstopscreenxs{width:100%;flex:1 0 100%;align-items:center;text-align:center;align-content:center}\n", ".bigbutton{min-width:70px;min-height:50px;font-size:50px;border-radius:20px}\n", ".audioStatusDisplay{display:flex;flex-direction:row;height:100px;min-height:100px}\n", ".audioStatusDisplayXs{display:flex;flex-direction:column;height:125px;min-height:125px}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: LevelBar, selector: "audio-levelbar", inputs: ["streamingMode", "displayLevelInfos", "state"] }, { kind: "component", type: StatusDisplay, selector: "app-sprstatusdisplay", inputs: ["statusAlertType", "statusMsg", "statusWaiting"] }, { kind: "component", type: RecordingItemControls, selector: "spr-recordingitemcontrols", inputs: ["audioSignalCollapsed", "enableDownload", "peakDbLvl", "agc", "disableAudioDetails", "audioLoaded", "playStartAction", "playStopAction", "displayLevelInfos"], outputs: ["onShowRecordingDetails", "onDownloadRecording"] }, { kind: "component", type: UploadStatus, selector: "app-uploadstatus", inputs: ["value", "awaitNewUpload", "status"] }, { kind: "component", type: WakeLockIndicator, selector: "app-wakelockindicator", inputs: ["screenLocked"] }, { kind: "component", type: ReadyStateIndicator, selector: "app-readystateindicator", inputs: ["ready"] }, { kind: "component", type: WarningBar, selector: "app-warningbar", inputs: ["warningText", "show"] }, { kind: "component", type: RecorderCombiPane, selector: "app-recordercombipane", inputs: ["selectDisabled", "selectedRecordingFile", "audioSignalCollapsed", "displayAudioClip", "playStartAction", "playSelectionAction", "autoPlayOnSelectToggleAction", "playStopAction"], outputs: ["selectedRecordingFileChanged"] }] });
|
|
17316
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
17359
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AudioRecorder, decorators: [{
|
|
17317
17360
|
type: Component,
|
|
17318
17361
|
args: [{ selector: 'app-audiorecorder', providers: [SessionService], template: `
|
|
17319
17362
|
<app-warningbar [show]="isTestSession()" warningText="Test recording only!"></app-warningbar>
|
|
@@ -17375,7 +17418,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
17375
17418
|
</div>
|
|
17376
17419
|
`, styles: [":host{flex:2;background:lightgrey;display:flex;flex-direction:column;margin:0;padding:0;height:100%;min-height:0px;overflow:hidden}\n", ".ricontrols{padding:4px;box-sizing:border-box;height:100%}\n", ".dark{background:darkgray}\n", ".controlpanel{display:flex;flex-direction:row;align-content:center;align-items:center;margin:0;padding:20px;min-height:min-content}\n", ".startstop{width:100%;flex:1 0 30%;align-items:center;text-align:center;align-content:center}\n", ".startstopscreenxs{width:100%;flex:1 0 100%;align-items:center;text-align:center;align-content:center}\n", ".bigbutton{min-width:70px;min-height:50px;font-size:50px;border-radius:20px}\n", ".audioStatusDisplay{display:flex;flex-direction:row;height:100px;min-height:100px}\n", ".audioStatusDisplayXs{display:flex;flex-direction:column;height:125px;min-height:125px}\n"] }]
|
|
17377
17420
|
}], ctorParameters: function () {
|
|
17378
|
-
return [{ type: i1$
|
|
17421
|
+
return [{ type: i1$2.BreakpointObserver }, { type: i0.ChangeDetectorRef }, { type: i0.Renderer2 }, { type: i1$3.MatDialog }, { type: SessionService }, { type: RecordingService }, { type: SpeechRecorderUploader }, { type: SpeechRecorderConfig, decorators: [{
|
|
17379
17422
|
type: Inject,
|
|
17380
17423
|
args: [SPEECHRECORDER_CONFIG]
|
|
17381
17424
|
}] }];
|
|
@@ -17421,7 +17464,7 @@ class AudioRecorderComponent extends RecorderComponent {
|
|
|
17421
17464
|
}
|
|
17422
17465
|
else {
|
|
17423
17466
|
// all this attempts to customize the message do not work anymore (for security reasons)!!
|
|
17424
|
-
|
|
17467
|
+
const message = "Please do not leave the page, until all recordings are uploaded!";
|
|
17425
17468
|
alert(message);
|
|
17426
17469
|
e = e || window.event;
|
|
17427
17470
|
if (e) {
|
|
@@ -17521,16 +17564,16 @@ class AudioRecorderComponent extends RecorderComponent {
|
|
|
17521
17564
|
return this.dataSaved && !this.ar.isActive();
|
|
17522
17565
|
}
|
|
17523
17566
|
}
|
|
17524
|
-
AudioRecorderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
17525
|
-
AudioRecorderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.
|
|
17567
|
+
AudioRecorderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AudioRecorderComponent, deps: [{ token: i4$2.ActivatedRoute }, { token: i4$2.Router }, { token: i0.ChangeDetectorRef }, { token: SessionService }, { token: ProjectService }, { token: SpeechRecorderUploader }], target: i0.ɵɵFactoryTarget.Component });
|
|
17568
|
+
AudioRecorderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: AudioRecorderComponent, selector: "app-audiorecorder-comp", providers: [SessionService], viewQueries: [{ propertyName: "ar", first: true, predicate: AudioRecorder, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: `
|
|
17526
17569
|
<app-audiorecorder [projectName]="_project?.name" [dataSaved]="dataSaved"></app-audiorecorder>
|
|
17527
17570
|
`, isInline: true, styles: [":host{flex:2;display:flex;height:100%;flex-direction:column;min-height:0}\n"], dependencies: [{ kind: "component", type: AudioRecorder, selector: "app-audiorecorder", inputs: ["projectName", "dataSaved"] }] });
|
|
17528
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
17571
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AudioRecorderComponent, decorators: [{
|
|
17529
17572
|
type: Component,
|
|
17530
17573
|
args: [{ selector: 'app-audiorecorder-comp', providers: [SessionService], template: `
|
|
17531
17574
|
<app-audiorecorder [projectName]="_project?.name" [dataSaved]="dataSaved"></app-audiorecorder>
|
|
17532
17575
|
`, styles: [":host{flex:2;display:flex;height:100%;flex-direction:column;min-height:0}\n"] }]
|
|
17533
|
-
}], ctorParameters: function () { return [{ type:
|
|
17576
|
+
}], ctorParameters: function () { return [{ type: i4$2.ActivatedRoute }, { type: i4$2.Router }, { type: i0.ChangeDetectorRef }, { type: SessionService }, { type: ProjectService }, { type: SpeechRecorderUploader }]; }, propDecorators: { ar: [{
|
|
17534
17577
|
type: ViewChild,
|
|
17535
17578
|
args: [AudioRecorder, { static: true }]
|
|
17536
17579
|
}] } });
|
|
@@ -17564,11 +17607,11 @@ class SpeechrecorderngModule {
|
|
|
17564
17607
|
};
|
|
17565
17608
|
}
|
|
17566
17609
|
}
|
|
17567
|
-
SpeechrecorderngModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
17568
|
-
SpeechrecorderngModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.
|
|
17569
|
-
ProgressDisplay, RecordingItemDisplay, RecordingItemControls, UploadStatus, TransportPanel, WakeLockIndicator, ReadyStateIndicator, ControlPanel, WarningBar, AudioRecorder, SessionManager, MessageDialog, SessionFinishedDialog, SpeechrecorderngComponent, AudioRecorderComponent, RecordingFileViewComponent, RecordingFileUI, ScrollIntoViewDirective, RecordingFileNaviComponent, RecordingFileMetaComponent, RecordingList, RecorderCombiPane, AudioRecorder], imports: [
|
|
17570
|
-
SpeechrecorderngModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.
|
|
17571
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
17610
|
+
SpeechrecorderngModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: SpeechrecorderngModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
17611
|
+
SpeechrecorderngModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: SpeechrecorderngModule, declarations: [AudioSignal, Sonagram, ScrollPaneHorizontal, AudioClipUIContainer, AudioDisplayScrollPane, AudioDisplay, AudioDisplayPlayer, AudioDisplayControl, LevelBar, Progress, SimpleTrafficLight, Recinstructions, Prompter, PromptContainer, PromptingContainer, Prompting, StatusDisplay,
|
|
17612
|
+
ProgressDisplay, RecordingItemDisplay, RecordingItemControls, UploadStatus, TransportPanel, WakeLockIndicator, ReadyStateIndicator, ControlPanel, WarningBar, AudioRecorder, SessionManager, MessageDialog, SessionFinishedDialog, SpeechrecorderngComponent, AudioRecorderComponent, RecordingFileViewComponent, RecordingFileUI, ScrollIntoViewDirective, RecordingFileNaviComponent, RecordingFileMetaComponent, RecordingList, RecorderCombiPane, AudioRecorder], imports: [i4$2.RouterModule, CommonModule, MatIconModule, MatButtonModule, MatDialogModule, MatProgressBarModule, MatProgressSpinnerModule, MatTooltipModule, HttpClientModule, MatCheckboxModule, MatCardModule, MatDividerModule, MatGridListModule, MatTableModule, MatInputModule, MatSelectModule, MatSnackBarModule, MatMenuModule], exports: [MessageDialog, SpeechrecorderngComponent, ScrollPaneHorizontal, AudioClipUIContainer, AudioDisplayScrollPane, AudioDisplay, AudioDisplayPlayer, AudioDisplayControl, LevelBar, AudioRecorder] });
|
|
17613
|
+
SpeechrecorderngModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: SpeechrecorderngModule, providers: [SessionService, ProjectService, ScriptService, RecordingService, RecordingFileService, SpeechRecorderUploader], imports: [RouterModule.forChild(SPR_ROUTES), CommonModule, MatIconModule, MatButtonModule, MatDialogModule, MatProgressBarModule, MatProgressSpinnerModule, MatTooltipModule, HttpClientModule, MatCheckboxModule, MatCardModule, MatDividerModule, MatGridListModule, MatTableModule, MatInputModule, MatSelectModule, MatSnackBarModule, MatMenuModule] });
|
|
17614
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: SpeechrecorderngModule, decorators: [{
|
|
17572
17615
|
type: NgModule,
|
|
17573
17616
|
args: [{
|
|
17574
17617
|
declarations: [AudioSignal, Sonagram, ScrollPaneHorizontal, AudioClipUIContainer, AudioDisplayScrollPane, AudioDisplay, AudioDisplayPlayer, AudioDisplayControl, LevelBar, Progress, SimpleTrafficLight, Recinstructions, Prompter, PromptContainer, PromptingContainer, Prompting, StatusDisplay,
|
|
@@ -17579,7 +17622,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
17579
17622
|
}]
|
|
17580
17623
|
}] });
|
|
17581
17624
|
|
|
17582
|
-
const VERSION = '3.4.
|
|
17625
|
+
const VERSION = '3.4.5';
|
|
17583
17626
|
|
|
17584
17627
|
/*
|
|
17585
17628
|
* Public API Surface of speechrecorderng
|