speechrecorderng 2.23.7 → 2.24.0
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/recorder_component.mjs +3 -0
- package/esm2020/lib/speechrecorder/project/project.mjs +1 -1
- package/esm2020/lib/speechrecorder/session/audiorecorder.mjs +169 -54
- package/esm2020/lib/speechrecorder/session/basicrecorder.mjs +25 -1
- package/esm2020/lib/speechrecorder/session/sessionmanager.mjs +3 -1
- package/esm2020/lib/speechrecorderng.component.mjs +11 -3
- package/esm2020/lib/speechrecorderng.module.mjs +6 -5
- package/esm2020/lib/spr.module.version.mjs +2 -2
- package/esm2020/public-api.mjs +4 -2
- package/fesm2015/speechrecorderng.mjs +211 -60
- package/fesm2015/speechrecorderng.mjs.map +1 -1
- package/fesm2020/speechrecorderng.mjs +211 -60
- package/fesm2020/speechrecorderng.mjs.map +1 -1
- package/lib/recorder_component.d.ts +6 -0
- package/lib/speechrecorder/project/project.d.ts +1 -0
- package/lib/speechrecorder/session/audiorecorder.d.ts +39 -12
- package/lib/speechrecorder/session/basicrecorder.d.ts +7 -0
- package/lib/speechrecorderng.component.d.ts +2 -1
- package/lib/speechrecorderng.module.d.ts +1 -1
- package/lib/spr.module.version.d.ts +1 -1
- package/package.json +10 -10
- package/public-api.d.ts +4 -1
|
@@ -22,6 +22,7 @@ import { MatButtonModule } from '@angular/material/button';
|
|
|
22
22
|
import * as i1$3 from '@angular/material/progress-spinner';
|
|
23
23
|
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
|
24
24
|
import * as i8 from '@angular/flex-layout/flex';
|
|
25
|
+
import NoSleep from 'nosleep.js';
|
|
25
26
|
import * as i7 from '@angular/material/progress-bar';
|
|
26
27
|
import { MatProgressBarModule } from '@angular/material/progress-bar';
|
|
27
28
|
import { FlexLayoutModule } from '@angular/flex-layout';
|
|
@@ -7272,6 +7273,7 @@ class BasicRecorder {
|
|
|
7272
7273
|
this.readonly = false;
|
|
7273
7274
|
this.processingRecording = false;
|
|
7274
7275
|
this.ac = null;
|
|
7276
|
+
this._wakeLock = false;
|
|
7275
7277
|
this._selectedDeviceId = undefined;
|
|
7276
7278
|
this._channelCount = 2;
|
|
7277
7279
|
this._session = null;
|
|
@@ -7284,6 +7286,7 @@ class BasicRecorder {
|
|
|
7284
7286
|
this.audioFetchSubscription = null;
|
|
7285
7287
|
this.destroyed = false;
|
|
7286
7288
|
this.navigationDisabled = true;
|
|
7289
|
+
this.noSleep = null;
|
|
7287
7290
|
this.userAgent = UserAgentBuilder.userAgent();
|
|
7288
7291
|
console.debug("Detected platform: " + this.userAgent.detectedPlatform);
|
|
7289
7292
|
console.debug("Detected browser: " + this.userAgent.detectedBrowser);
|
|
@@ -7293,6 +7296,27 @@ class BasicRecorder {
|
|
|
7293
7296
|
this.streamLevelMeasure = new StreamLevelMeasure();
|
|
7294
7297
|
this.selCaptureDeviceId = null;
|
|
7295
7298
|
}
|
|
7299
|
+
get wakeLock() {
|
|
7300
|
+
return this._wakeLock;
|
|
7301
|
+
}
|
|
7302
|
+
set wakeLock(value) {
|
|
7303
|
+
this._wakeLock = value;
|
|
7304
|
+
}
|
|
7305
|
+
enableWakeLockCond() {
|
|
7306
|
+
if (this.wakeLock === true) {
|
|
7307
|
+
if (!this.noSleep) {
|
|
7308
|
+
this.noSleep = new NoSleep();
|
|
7309
|
+
}
|
|
7310
|
+
if (!this.noSleep.isEnabled) {
|
|
7311
|
+
this.noSleep.enable();
|
|
7312
|
+
}
|
|
7313
|
+
}
|
|
7314
|
+
}
|
|
7315
|
+
disableWakeLockCond() {
|
|
7316
|
+
if (this.noSleep && this.noSleep.isEnabled) {
|
|
7317
|
+
this.noSleep.disable();
|
|
7318
|
+
}
|
|
7319
|
+
}
|
|
7296
7320
|
set audioDevices(audioDevices) {
|
|
7297
7321
|
this._audioDevices = audioDevices;
|
|
7298
7322
|
}
|
|
@@ -7889,6 +7913,7 @@ class SessionManager extends BasicRecorder {
|
|
|
7889
7913
|
};
|
|
7890
7914
|
}
|
|
7891
7915
|
ngOnDestroy() {
|
|
7916
|
+
this.disableWakeLockCond();
|
|
7892
7917
|
this.destroyed = true;
|
|
7893
7918
|
// TODO stop capture /playback
|
|
7894
7919
|
}
|
|
@@ -8096,6 +8121,7 @@ class SessionManager extends BasicRecorder {
|
|
|
8096
8121
|
}
|
|
8097
8122
|
}
|
|
8098
8123
|
startItem() {
|
|
8124
|
+
this.enableWakeLockCond();
|
|
8099
8125
|
this.transportActions.startAction.disabled = true;
|
|
8100
8126
|
this.transportActions.pauseAction.disabled = true;
|
|
8101
8127
|
if (this.readonly) {
|
|
@@ -8826,6 +8852,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
|
|
|
8826
8852
|
args: ['window:keydown', ['$event']]
|
|
8827
8853
|
}] } });
|
|
8828
8854
|
|
|
8855
|
+
class RecorderComponent {
|
|
8856
|
+
}
|
|
8857
|
+
|
|
8829
8858
|
/**
|
|
8830
8859
|
* Created by klausj on 17.06.2017.
|
|
8831
8860
|
*/
|
|
@@ -8874,8 +8903,9 @@ var Mode;
|
|
|
8874
8903
|
Mode[Mode["SINGLE_SESSION"] = 0] = "SINGLE_SESSION";
|
|
8875
8904
|
Mode[Mode["DEMO"] = 1] = "DEMO";
|
|
8876
8905
|
})(Mode || (Mode = {}));
|
|
8877
|
-
class SpeechrecorderngComponent {
|
|
8906
|
+
class SpeechrecorderngComponent extends RecorderComponent {
|
|
8878
8907
|
constructor(route, router, changeDetectorRef, sessionsService, projectService, scriptService, recFilesService, uploader) {
|
|
8908
|
+
super();
|
|
8879
8909
|
this.route = route;
|
|
8880
8910
|
this.router = router;
|
|
8881
8911
|
this.changeDetectorRef = changeDetectorRef;
|
|
@@ -8908,6 +8938,8 @@ class SpeechrecorderngComponent {
|
|
|
8908
8938
|
}
|
|
8909
8939
|
}
|
|
8910
8940
|
ngAfterViewInit() {
|
|
8941
|
+
// let wakeLockSupp=('wakeLock' in navigator);
|
|
8942
|
+
// alert('Wake lock API supported: '+wakeLockSupp);
|
|
8911
8943
|
if (this.sm.status !== 8 /* ERROR */) {
|
|
8912
8944
|
let initSuccess = this.init();
|
|
8913
8945
|
if (initSuccess) {
|
|
@@ -9070,6 +9102,7 @@ class SpeechrecorderngComponent {
|
|
|
9070
9102
|
this.uploader.listener = (ue) => {
|
|
9071
9103
|
this.uploadUpdate(ue);
|
|
9072
9104
|
};
|
|
9105
|
+
//TODO Duplicate code in AudioRecorderComponent
|
|
9073
9106
|
window.addEventListener('beforeunload', (e) => {
|
|
9074
9107
|
console.debug("Before page unload event");
|
|
9075
9108
|
if (this.ready()) {
|
|
@@ -9151,6 +9184,9 @@ class SpeechrecorderngComponent {
|
|
|
9151
9184
|
let chCnt = ProjectUtil.DEFAULT_AUDIO_CHANNEL_COUNT;
|
|
9152
9185
|
if (project) {
|
|
9153
9186
|
console.info("Project name: " + project.name);
|
|
9187
|
+
if (project.recordingDeviceWakeLock === true) {
|
|
9188
|
+
this.sm.wakeLock = true;
|
|
9189
|
+
}
|
|
9154
9190
|
this.sm.audioDevices = project.audioDevices;
|
|
9155
9191
|
chCnt = ProjectUtil.audioChannelCount(project);
|
|
9156
9192
|
console.info("Project requested recording channel count: " + chCnt);
|
|
@@ -9256,7 +9292,7 @@ class SpeechrecorderngComponent {
|
|
|
9256
9292
|
}
|
|
9257
9293
|
}
|
|
9258
9294
|
SpeechrecorderngComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SpeechrecorderngComponent, deps: [{ token: i1$1.ActivatedRoute }, { token: i1$1.Router }, { token: i0.ChangeDetectorRef }, { token: SessionService }, { token: ProjectService }, { token: ScriptService }, { token: RecordingService }, { token: SpeechRecorderUploader }], target: i0.ɵɵFactoryTarget.Component });
|
|
9259
|
-
SpeechrecorderngComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: SpeechrecorderngComponent, selector: "app-speechrecorder", providers: [SessionService], viewQueries: [{ propertyName: "sm", first: true, predicate: SessionManager, descendants: true, static: true }], ngImport: i0, template: `
|
|
9295
|
+
SpeechrecorderngComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: SpeechrecorderngComponent, selector: "app-speechrecorder", providers: [SessionService], viewQueries: [{ propertyName: "sm", first: true, predicate: SessionManager, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: `
|
|
9260
9296
|
<app-sprrecordingsession [projectName]="project?.name" [dataSaved]="dataSaved"></app-sprrecordingsession>
|
|
9261
9297
|
`, isInline: true, styles: [":host{flex:2;display:flex;flex-direction:column;min-height:0}\n"], components: [{ type: SessionManager, selector: "app-sprrecordingsession", inputs: ["projectName", "dataSaved"] }] });
|
|
9262
9298
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SpeechrecorderngComponent, decorators: [{
|
|
@@ -10921,11 +10957,11 @@ class Item {
|
|
|
10921
10957
|
}
|
|
10922
10958
|
}
|
|
10923
10959
|
class AudioRecorder extends BasicRecorder {
|
|
10924
|
-
constructor(changeDetectorRef,
|
|
10960
|
+
constructor(changeDetectorRef, renderer, route, dialog, projectService, sessionService, recFileService, uploader, config) {
|
|
10925
10961
|
super(dialog, sessionService);
|
|
10926
10962
|
this.changeDetectorRef = changeDetectorRef;
|
|
10927
|
-
this.route = route;
|
|
10928
10963
|
this.renderer = renderer;
|
|
10964
|
+
this.route = route;
|
|
10929
10965
|
this.dialog = dialog;
|
|
10930
10966
|
this.projectService = projectService;
|
|
10931
10967
|
this.sessionService = sessionService;
|
|
@@ -10946,6 +10982,7 @@ class AudioRecorder extends BasicRecorder {
|
|
|
10946
10982
|
//selectedItemIdx: number;
|
|
10947
10983
|
this._displayRecFile = null;
|
|
10948
10984
|
this.displayRecFileVersion = 0;
|
|
10985
|
+
//super(injector);
|
|
10949
10986
|
this.status = 1 /* IDLE */;
|
|
10950
10987
|
this.audio = document.getElementById('audio');
|
|
10951
10988
|
if (this.config && this.config.enableUploadRecordings != null) {
|
|
@@ -10954,25 +10991,26 @@ class AudioRecorder extends BasicRecorder {
|
|
|
10954
10991
|
if (this.config && this.config.enableDownloadRecordings != null) {
|
|
10955
10992
|
this.enableDownloadRecordings = this.config.enableDownloadRecordings;
|
|
10956
10993
|
}
|
|
10957
|
-
this.init();
|
|
10994
|
+
//this.init();
|
|
10958
10995
|
}
|
|
10959
10996
|
ngAfterViewInit() {
|
|
10960
|
-
this.route.queryParams.subscribe((params) => {
|
|
10961
|
-
if (params['sessionId']) {
|
|
10962
|
-
this.fetchSession(params['sessionId']);
|
|
10963
|
-
}
|
|
10964
|
-
});
|
|
10965
10997
|
this.streamLevelMeasure.levelListener = this.liveLevelDisplay;
|
|
10966
10998
|
this.streamLevelMeasure.peakLevelListener = (peakLvlInDb) => {
|
|
10967
10999
|
this.peakLevelInDb = peakLvlInDb;
|
|
10968
11000
|
this.changeDetectorRef.detectChanges();
|
|
10969
11001
|
};
|
|
11002
|
+
//let wakeLockSupp=('wakeLock' in navigator);
|
|
11003
|
+
//alert('Wake lock API supported: '+wakeLockSupp);
|
|
11004
|
+
}
|
|
11005
|
+
ready() {
|
|
11006
|
+
return this.dataSaved && !this.isActive();
|
|
10970
11007
|
}
|
|
10971
11008
|
ngOnDestroy() {
|
|
11009
|
+
this.disableWakeLockCond();
|
|
10972
11010
|
this.destroyed = true;
|
|
10973
11011
|
// TODO stop capture /playback
|
|
10974
11012
|
}
|
|
10975
|
-
|
|
11013
|
+
ngOnInit() {
|
|
10976
11014
|
this.transportActions.startAction.disabled = true;
|
|
10977
11015
|
this.transportActions.stopAction.disabled = true;
|
|
10978
11016
|
this.transportActions.nextAction.disabled = true;
|
|
@@ -11022,7 +11060,7 @@ class AudioRecorder extends BasicRecorder {
|
|
|
11022
11060
|
return;
|
|
11023
11061
|
}
|
|
11024
11062
|
else {
|
|
11025
|
-
this.controlAudioPlayer = new AudioPlayer(context, this);
|
|
11063
|
+
//this.controlAudioPlayer = new AudioPlayer(context, this);
|
|
11026
11064
|
this.ac = new AudioCapture(context);
|
|
11027
11065
|
if (this.ac) {
|
|
11028
11066
|
this.transportActions.startAction.onAction = () => this.startItem();
|
|
@@ -11054,6 +11092,23 @@ class AudioRecorder extends BasicRecorder {
|
|
|
11054
11092
|
this.uploader.listener = (ue) => {
|
|
11055
11093
|
this.uploadUpdate(ue);
|
|
11056
11094
|
};
|
|
11095
|
+
let wakeLockSupp = ('wakeLock' in navigator);
|
|
11096
|
+
// if(wakeLockSupp) {
|
|
11097
|
+
// let wakeLock = null;
|
|
11098
|
+
// try {
|
|
11099
|
+
// //@ts-ignore
|
|
11100
|
+
// wakeLock = navigator.wakeLock.request('screen');
|
|
11101
|
+
//
|
|
11102
|
+
// //statusElem.textContent = 'Wake Lock is active!';
|
|
11103
|
+
// } catch (err) {
|
|
11104
|
+
// // The Wake Lock request has failed - usually system related, such as battery.
|
|
11105
|
+
// console.error('Wakelock failed'+err)
|
|
11106
|
+
// }
|
|
11107
|
+
// }else{
|
|
11108
|
+
// let noSleep=new NoSleep();
|
|
11109
|
+
// noSleep.enable();
|
|
11110
|
+
//
|
|
11111
|
+
// }
|
|
11057
11112
|
}
|
|
11058
11113
|
onKeyPress(ke) {
|
|
11059
11114
|
if (ke.key == ' ') {
|
|
@@ -11099,43 +11154,6 @@ class AudioRecorder extends BasicRecorder {
|
|
|
11099
11154
|
isDefaultAudioTestSessionOverwriteingProjectRequirements() {
|
|
11100
11155
|
return ((this._session != null) && (this._session.type === 'TEST_DEF_A') && (this.audioDevices != null) && this.audioDevices.length > 0);
|
|
11101
11156
|
}
|
|
11102
|
-
fetchSession(sessionId) {
|
|
11103
|
-
//Error: ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. Previous value: 'statusMsg: Player initialized.'. Current value: 'statusMsg: Fetching session info...'.
|
|
11104
|
-
// params.subscribe seems not to be asynchronous
|
|
11105
|
-
// this.sm.statusAlertType='info';
|
|
11106
|
-
// this.sm.statusMsg = 'Fetching session info...';
|
|
11107
|
-
// this.sm.statusWaiting=true;
|
|
11108
|
-
let sessObs = this.sessionService.sessionObserver(sessionId);
|
|
11109
|
-
if (sessObs) {
|
|
11110
|
-
sessObs.subscribe(sess => {
|
|
11111
|
-
//this.setSession(sess);
|
|
11112
|
-
this.statusAlertType = 'info';
|
|
11113
|
-
this.statusMsg = 'Received session info.';
|
|
11114
|
-
this.statusWaiting = false;
|
|
11115
|
-
this.session = sess;
|
|
11116
|
-
if (sess.project) {
|
|
11117
|
-
//console.debug("Session associated project: "+sess.project)
|
|
11118
|
-
this.projectService.projectObservable(sess.project).subscribe(project => {
|
|
11119
|
-
this.project = project;
|
|
11120
|
-
this.fetchRecordings(sess);
|
|
11121
|
-
}, reason => {
|
|
11122
|
-
this.statusMsg = reason;
|
|
11123
|
-
this.statusAlertType = 'error';
|
|
11124
|
-
this.statusWaiting = false;
|
|
11125
|
-
console.error("Error fetching project config: " + reason);
|
|
11126
|
-
});
|
|
11127
|
-
}
|
|
11128
|
-
else {
|
|
11129
|
-
console.info("Session has no associated project. Using default configuration.");
|
|
11130
|
-
}
|
|
11131
|
-
}, (reason) => {
|
|
11132
|
-
this.statusMsg = reason;
|
|
11133
|
-
this.statusAlertType = 'error';
|
|
11134
|
-
this.statusWaiting = false;
|
|
11135
|
-
console.error("Error fetching session " + reason);
|
|
11136
|
-
});
|
|
11137
|
-
}
|
|
11138
|
-
}
|
|
11139
11157
|
fetchRecordings(sess) {
|
|
11140
11158
|
this.statusAlertType = 'info';
|
|
11141
11159
|
this.statusMsg = 'Fetching infos of recordings...';
|
|
@@ -11187,6 +11205,9 @@ class AudioRecorder extends BasicRecorder {
|
|
|
11187
11205
|
let chCnt = ProjectUtil.DEFAULT_AUDIO_CHANNEL_COUNT;
|
|
11188
11206
|
if (project) {
|
|
11189
11207
|
console.info("Project name: " + project.name);
|
|
11208
|
+
if (project.recordingDeviceWakeLock === true) {
|
|
11209
|
+
this.wakeLock = true;
|
|
11210
|
+
}
|
|
11190
11211
|
this.audioDevices = project.audioDevices;
|
|
11191
11212
|
chCnt = ProjectUtil.audioChannelCount(project);
|
|
11192
11213
|
console.info("Project requested recording channel count: " + chCnt);
|
|
@@ -11290,6 +11311,7 @@ class AudioRecorder extends BasicRecorder {
|
|
|
11290
11311
|
}
|
|
11291
11312
|
}
|
|
11292
11313
|
startItem() {
|
|
11314
|
+
this.enableWakeLockCond();
|
|
11293
11315
|
this.transportActions.startAction.disabled = true;
|
|
11294
11316
|
this.transportActions.pauseAction.disabled = true;
|
|
11295
11317
|
if (this.readonly) {
|
|
@@ -11605,8 +11627,8 @@ class AudioRecorder extends BasicRecorder {
|
|
|
11605
11627
|
}
|
|
11606
11628
|
}
|
|
11607
11629
|
}
|
|
11608
|
-
AudioRecorder.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AudioRecorder, deps: [{ token: i0.ChangeDetectorRef }, { token:
|
|
11609
|
-
AudioRecorder.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", 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: `
|
|
11630
|
+
AudioRecorder.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AudioRecorder, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: i1$1.ActivatedRoute }, { token: i1$2.MatDialog }, { token: ProjectService }, { token: SessionService }, { token: RecordingService }, { token: SpeechRecorderUploader }, { token: SPEECHRECORDER_CONFIG }], target: i0.ɵɵFactoryTarget.Component });
|
|
11631
|
+
AudioRecorder.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: AudioRecorder, selector: "app-audiorecorder", inputs: { _project: "_project", 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: `
|
|
11610
11632
|
<app-warningbar [show]="isTestSession()" warningText="Test recording only!"></app-warningbar>
|
|
11611
11633
|
<app-warningbar [show]="isDefaultAudioTestSession()"
|
|
11612
11634
|
warningText="This test uses default audio device! Regular sessions may require a particular audio device (microphone)!"></app-warningbar>
|
|
@@ -11662,7 +11684,7 @@ AudioRecorder.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
|
|
|
11662
11684
|
[ready]="dataSaved && !isActive()"></app-readystateindicator>
|
|
11663
11685
|
</div>
|
|
11664
11686
|
</div>
|
|
11665
|
-
`, isInline: true, styles: [":host{flex:2;background:lightgrey;display:flex;flex-direction:column;margin:0;padding:0;min-height:0px;overflow:hidden}\n", ".ricontrols{padding:4px;box-sizing:border-box;height:100%}\n", ".dark{background:darkgray}\n", ".controlpanel{align-content:center;align-items:center;margin:0;padding:20px;min-height:-webkit-min-content;min-height:min-content}\n", ".startstop{width:100%;text-align:center;align-content:center;align-items:center}\n", ".bigbutton{min-width:70px;min-height:50px;font-size:50px;border-radius:20px}\n"], components: [{ type: WarningBar, selector: "app-warningbar", inputs: ["warningText", "show"] }, { type: RecorderCombiPane, selector: "app-recordercombipane", inputs: ["selectDisabled", "selectedRecordingFile", "audioSignalCollapsed", "displayAudioClip", "playStartAction", "playSelectionAction", "autoPlayOnSelectToggleAction", "playStopAction"], outputs: ["selectedRecordingFileChanged"] }, { type: LevelBar, selector: "audio-levelbar", inputs: ["streamingMode", "displayLevelInfos"] }, { type: RecordingItemControls, selector: "spr-recordingitemcontrols", inputs: ["audioSignalCollapsed", "enableDownload", "peakDbLvl", "agc", "audioLoaded", "playStartAction", "playStopAction", "displayLevelInfos"], outputs: ["onShowRecordingDetails", "onDownloadRecording"] }, { type: UploadStatus, selector: "app-uploadstatus", inputs: ["value", "awaitNewUpload", "status"] }, { type: ReadyStateIndicator, selector: "app-readystateindicator", inputs: ["ready"] }, { type: StatusDisplay, selector: "app-sprstatusdisplay", inputs: ["statusAlertType", "statusMsg", "statusWaiting"] }, { type: i3$2.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"] }, { type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i8.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i3$1.DefaultStyleDirective, selector: " [ngStyle], [ngStyle.xs], [ngStyle.sm], [ngStyle.md], [ngStyle.lg], [ngStyle.xl], [ngStyle.lt-sm], [ngStyle.lt-md], [ngStyle.lt-lg], [ngStyle.lt-xl], [ngStyle.gt-xs], [ngStyle.gt-sm], [ngStyle.gt-md], [ngStyle.gt-lg]", inputs: ["ngStyle", "ngStyle.xs", "ngStyle.sm", "ngStyle.md", "ngStyle.lg", "ngStyle.xl", "ngStyle.lt-sm", "ngStyle.lt-md", "ngStyle.lt-lg", "ngStyle.lt-xl", "ngStyle.gt-xs", "ngStyle.gt-sm", "ngStyle.gt-md", "ngStyle.gt-lg"] }, { type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i8.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3$1.DefaultShowHideDirective, selector: " [fxShow], [fxShow.print], [fxShow.xs], [fxShow.sm], [fxShow.md], [fxShow.lg], [fxShow.xl], [fxShow.lt-sm], [fxShow.lt-md], [fxShow.lt-lg], [fxShow.lt-xl], [fxShow.gt-xs], [fxShow.gt-sm], [fxShow.gt-md], [fxShow.gt-lg], [fxHide], [fxHide.print], [fxHide.xs], [fxHide.sm], [fxHide.md], [fxHide.lg], [fxHide.xl], [fxHide.lt-sm], [fxHide.lt-md], [fxHide.lt-lg], [fxHide.lt-xl], [fxHide.gt-xs], [fxHide.gt-sm], [fxHide.gt-md], [fxHide.gt-lg]", inputs: ["fxShow", "fxShow.print", "fxShow.xs", "fxShow.sm", "fxShow.md", "fxShow.lg", "fxShow.xl", "fxShow.lt-sm", "fxShow.lt-md", "fxShow.lt-lg", "fxShow.lt-xl", "fxShow.gt-xs", "fxShow.gt-sm", "fxShow.gt-md", "fxShow.gt-lg", "fxHide", "fxHide.print", "fxHide.xs", "fxHide.sm", "fxHide.md", "fxHide.lg", "fxHide.xl", "fxHide.lt-sm", "fxHide.lt-md", "fxHide.lt-lg", "fxHide.lt-xl", "fxHide.gt-xs", "fxHide.gt-sm", "fxHide.gt-md", "fxHide.gt-lg"] }] });
|
|
11687
|
+
`, 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{align-content:center;align-items:center;margin:0;padding:20px;min-height:-webkit-min-content;min-height:min-content}\n", ".startstop{width:100%;text-align:center;align-content:center;align-items:center}\n", ".bigbutton{min-width:70px;min-height:50px;font-size:50px;border-radius:20px}\n"], components: [{ type: WarningBar, selector: "app-warningbar", inputs: ["warningText", "show"] }, { type: RecorderCombiPane, selector: "app-recordercombipane", inputs: ["selectDisabled", "selectedRecordingFile", "audioSignalCollapsed", "displayAudioClip", "playStartAction", "playSelectionAction", "autoPlayOnSelectToggleAction", "playStopAction"], outputs: ["selectedRecordingFileChanged"] }, { type: LevelBar, selector: "audio-levelbar", inputs: ["streamingMode", "displayLevelInfos"] }, { type: RecordingItemControls, selector: "spr-recordingitemcontrols", inputs: ["audioSignalCollapsed", "enableDownload", "peakDbLvl", "agc", "audioLoaded", "playStartAction", "playStopAction", "displayLevelInfos"], outputs: ["onShowRecordingDetails", "onDownloadRecording"] }, { type: UploadStatus, selector: "app-uploadstatus", inputs: ["value", "awaitNewUpload", "status"] }, { type: ReadyStateIndicator, selector: "app-readystateindicator", inputs: ["ready"] }, { type: StatusDisplay, selector: "app-sprstatusdisplay", inputs: ["statusAlertType", "statusMsg", "statusWaiting"] }, { type: i3$2.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"] }, { type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i8.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i3$1.DefaultStyleDirective, selector: " [ngStyle], [ngStyle.xs], [ngStyle.sm], [ngStyle.md], [ngStyle.lg], [ngStyle.xl], [ngStyle.lt-sm], [ngStyle.lt-md], [ngStyle.lt-lg], [ngStyle.lt-xl], [ngStyle.gt-xs], [ngStyle.gt-sm], [ngStyle.gt-md], [ngStyle.gt-lg]", inputs: ["ngStyle", "ngStyle.xs", "ngStyle.sm", "ngStyle.md", "ngStyle.lg", "ngStyle.xl", "ngStyle.lt-sm", "ngStyle.lt-md", "ngStyle.lt-lg", "ngStyle.lt-xl", "ngStyle.gt-xs", "ngStyle.gt-sm", "ngStyle.gt-md", "ngStyle.gt-lg"] }, { type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i8.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3$1.DefaultShowHideDirective, selector: " [fxShow], [fxShow.print], [fxShow.xs], [fxShow.sm], [fxShow.md], [fxShow.lg], [fxShow.xl], [fxShow.lt-sm], [fxShow.lt-md], [fxShow.lt-lg], [fxShow.lt-xl], [fxShow.gt-xs], [fxShow.gt-sm], [fxShow.gt-md], [fxShow.gt-lg], [fxHide], [fxHide.print], [fxHide.xs], [fxHide.sm], [fxHide.md], [fxHide.lg], [fxHide.xl], [fxHide.lt-sm], [fxHide.lt-md], [fxHide.lt-lg], [fxHide.lt-xl], [fxHide.gt-xs], [fxHide.gt-sm], [fxHide.gt-md], [fxHide.gt-lg]", inputs: ["fxShow", "fxShow.print", "fxShow.xs", "fxShow.sm", "fxShow.md", "fxShow.lg", "fxShow.xl", "fxShow.lt-sm", "fxShow.lt-md", "fxShow.lt-lg", "fxShow.lt-xl", "fxShow.gt-xs", "fxShow.gt-sm", "fxShow.gt-md", "fxShow.gt-lg", "fxHide", "fxHide.print", "fxHide.xs", "fxHide.sm", "fxHide.md", "fxHide.lg", "fxHide.xl", "fxHide.lt-sm", "fxHide.lt-md", "fxHide.lt-lg", "fxHide.lt-xl", "fxHide.gt-xs", "fxHide.gt-sm", "fxHide.gt-md", "fxHide.gt-lg"] }] });
|
|
11666
11688
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AudioRecorder, decorators: [{
|
|
11667
11689
|
type: Component,
|
|
11668
11690
|
args: [{
|
|
@@ -11732,8 +11754,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
|
|
|
11732
11754
|
flex-direction: column;
|
|
11733
11755
|
margin: 0;
|
|
11734
11756
|
padding: 0;
|
|
11757
|
+
height: 100%;
|
|
11735
11758
|
min-height: 0px;
|
|
11736
|
-
|
|
11737
11759
|
/* Prevents horizontal scroll bar on swipe right */
|
|
11738
11760
|
overflow: hidden;
|
|
11739
11761
|
}`, `.ricontrols {
|
|
@@ -11762,11 +11784,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
|
|
|
11762
11784
|
]
|
|
11763
11785
|
}]
|
|
11764
11786
|
}], ctorParameters: function () {
|
|
11765
|
-
return [{ type: i0.ChangeDetectorRef }, { type:
|
|
11787
|
+
return [{ type: i0.ChangeDetectorRef }, { type: i0.Renderer2 }, { type: i1$1.ActivatedRoute }, { type: i1$2.MatDialog }, { type: ProjectService }, { type: SessionService }, { type: RecordingService }, { type: SpeechRecorderUploader }, { type: SpeechRecorderConfig, decorators: [{
|
|
11766
11788
|
type: Inject,
|
|
11767
11789
|
args: [SPEECHRECORDER_CONFIG]
|
|
11768
11790
|
}] }];
|
|
11769
|
-
}, propDecorators: {
|
|
11791
|
+
}, propDecorators: { _project: [{
|
|
11792
|
+
type: Input
|
|
11793
|
+
}], projectName: [{
|
|
11770
11794
|
type: Input
|
|
11771
11795
|
}], recorderCombiPane: [{
|
|
11772
11796
|
type: ViewChild,
|
|
@@ -11782,11 +11806,138 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
|
|
|
11782
11806
|
}], onKeyDown: [{
|
|
11783
11807
|
type: HostListener,
|
|
11784
11808
|
args: ['window:keydown', ['$event']]
|
|
11809
|
+
}] } });
|
|
11810
|
+
class AudioRecorderComponent extends RecorderComponent {
|
|
11811
|
+
constructor(injector, route, router, changeDetectorRef, sessionService, projectService, recFilesService) {
|
|
11812
|
+
super();
|
|
11813
|
+
this.injector = injector;
|
|
11814
|
+
this.route = route;
|
|
11815
|
+
this.router = router;
|
|
11816
|
+
this.changeDetectorRef = changeDetectorRef;
|
|
11817
|
+
this.sessionService = sessionService;
|
|
11818
|
+
this.projectService = projectService;
|
|
11819
|
+
this.recFilesService = recFilesService;
|
|
11820
|
+
this.dataSaved = true;
|
|
11821
|
+
}
|
|
11822
|
+
ngOnInit() {
|
|
11823
|
+
//super.ngOnInit();
|
|
11824
|
+
let audioContext = AudioContextProvider.audioContextInstance();
|
|
11825
|
+
if (audioContext) {
|
|
11826
|
+
this.controlAudioPlayer = new AudioPlayer(audioContext, this.ar);
|
|
11827
|
+
}
|
|
11828
|
+
this.ar.controlAudioPlayer = this.controlAudioPlayer;
|
|
11829
|
+
//TODO Duplicate code in SpeechRecorderComponent
|
|
11830
|
+
window.addEventListener('beforeunload', (e) => {
|
|
11831
|
+
console.debug("Before page unload event");
|
|
11832
|
+
if (this.ready()) {
|
|
11833
|
+
return;
|
|
11834
|
+
}
|
|
11835
|
+
else {
|
|
11836
|
+
// all this attempts to customize the message do not work anymore (for security reasons)!!
|
|
11837
|
+
var message = "Please do not leave the page, until all recordings are uploaded!";
|
|
11838
|
+
alert(message);
|
|
11839
|
+
e = e || window.event;
|
|
11840
|
+
if (e) {
|
|
11841
|
+
e.returnValue = message;
|
|
11842
|
+
e.cancelBubble = true;
|
|
11843
|
+
if (e.stopPropagation) {
|
|
11844
|
+
e.stopPropagation();
|
|
11845
|
+
}
|
|
11846
|
+
if (e.preventDefault) {
|
|
11847
|
+
e.preventDefault();
|
|
11848
|
+
}
|
|
11849
|
+
}
|
|
11850
|
+
return message;
|
|
11851
|
+
}
|
|
11852
|
+
});
|
|
11853
|
+
}
|
|
11854
|
+
ngAfterViewInit() {
|
|
11855
|
+
this.route.queryParams.subscribe((params) => {
|
|
11856
|
+
if (params['sessionId']) {
|
|
11857
|
+
this.fetchSession(params['sessionId']);
|
|
11858
|
+
}
|
|
11859
|
+
});
|
|
11860
|
+
this.route.params.subscribe((params) => {
|
|
11861
|
+
let routeParamsId = params['id'];
|
|
11862
|
+
if (routeParamsId) {
|
|
11863
|
+
this.fetchSession(routeParamsId);
|
|
11864
|
+
}
|
|
11865
|
+
});
|
|
11866
|
+
}
|
|
11867
|
+
ngOnDestroy() {
|
|
11868
|
+
//super.ngOnDestroy();
|
|
11869
|
+
}
|
|
11870
|
+
fetchSession(sessionId) {
|
|
11871
|
+
//Error: ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. Previous value: 'statusMsg: Player initialized.'. Current value: 'statusMsg: Fetching session info...'.
|
|
11872
|
+
// params.subscribe seems not to be asynchronous
|
|
11873
|
+
// this.sm.statusAlertType='info';
|
|
11874
|
+
// this.sm.statusMsg = 'Fetching session info...';
|
|
11875
|
+
// this.sm.statusWaiting=true;
|
|
11876
|
+
let sessObs = this.sessionService.sessionObserver(sessionId);
|
|
11877
|
+
if (sessObs) {
|
|
11878
|
+
sessObs.subscribe(sess => {
|
|
11879
|
+
this.ar.statusAlertType = 'info';
|
|
11880
|
+
this.ar.statusMsg = 'Received session info.';
|
|
11881
|
+
this.ar.statusWaiting = false;
|
|
11882
|
+
this.session = sess;
|
|
11883
|
+
this.ar.session = sess;
|
|
11884
|
+
if (sess.project) {
|
|
11885
|
+
//console.debug("Session associated project: "+sess.project)
|
|
11886
|
+
this.projectService.projectObservable(sess.project).subscribe(project => {
|
|
11887
|
+
this.ar.project = project;
|
|
11888
|
+
this.ar.fetchRecordings(sess);
|
|
11889
|
+
}, reason => {
|
|
11890
|
+
this.ar.statusMsg = reason;
|
|
11891
|
+
this.ar.statusAlertType = 'error';
|
|
11892
|
+
this.ar.statusWaiting = false;
|
|
11893
|
+
console.error("Error fetching project config: " + reason);
|
|
11894
|
+
});
|
|
11895
|
+
}
|
|
11896
|
+
else {
|
|
11897
|
+
console.info("Session has no associated project. Using default configuration.");
|
|
11898
|
+
}
|
|
11899
|
+
}, (reason) => {
|
|
11900
|
+
this.ar.statusMsg = reason;
|
|
11901
|
+
this.ar.statusAlertType = 'error';
|
|
11902
|
+
this.ar.statusWaiting = false;
|
|
11903
|
+
console.error("Error fetching session " + reason);
|
|
11904
|
+
});
|
|
11905
|
+
}
|
|
11906
|
+
}
|
|
11907
|
+
ready() {
|
|
11908
|
+
return this.dataSaved && !this.ar.isActive();
|
|
11909
|
+
}
|
|
11910
|
+
}
|
|
11911
|
+
AudioRecorderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AudioRecorderComponent, deps: [{ token: i0.Injector }, { token: i1$1.ActivatedRoute }, { token: i1$1.Router }, { token: i0.ChangeDetectorRef }, { token: SessionService }, { token: ProjectService }, { token: RecordingService }], target: i0.ɵɵFactoryTarget.Component });
|
|
11912
|
+
AudioRecorderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: AudioRecorderComponent, selector: "app-audiorecorder-comp", providers: [SessionService], viewQueries: [{ propertyName: "ar", first: true, predicate: AudioRecorder, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: `
|
|
11913
|
+
<app-audiorecorder [projectName]="_project?.name" [dataSaved]="dataSaved"></app-audiorecorder>
|
|
11914
|
+
`, isInline: true, styles: [":host{flex:2;display:flex;height:100%;flex-direction:column;min-height:0}\n"], components: [{ type: AudioRecorder, selector: "app-audiorecorder", inputs: ["_project", "projectName", "dataSaved"] }] });
|
|
11915
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AudioRecorderComponent, decorators: [{
|
|
11916
|
+
type: Component,
|
|
11917
|
+
args: [{
|
|
11918
|
+
selector: 'app-audiorecorder-comp',
|
|
11919
|
+
providers: [SessionService],
|
|
11920
|
+
template: `
|
|
11921
|
+
<app-audiorecorder [projectName]="_project?.name" [dataSaved]="dataSaved"></app-audiorecorder>
|
|
11922
|
+
`,
|
|
11923
|
+
styles: [`:host{
|
|
11924
|
+
flex: 2;
|
|
11925
|
+
display: flex;
|
|
11926
|
+
height: 100%;
|
|
11927
|
+
flex-direction: column;
|
|
11928
|
+
min-height:0;
|
|
11929
|
+
|
|
11930
|
+
}`]
|
|
11931
|
+
}]
|
|
11932
|
+
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1$1.ActivatedRoute }, { type: i1$1.Router }, { type: i0.ChangeDetectorRef }, { type: SessionService }, { type: ProjectService }, { type: RecordingService }]; }, propDecorators: { ar: [{
|
|
11933
|
+
type: ViewChild,
|
|
11934
|
+
args: [AudioRecorder, { static: true }]
|
|
11785
11935
|
}] } });
|
|
11786
11936
|
|
|
11787
11937
|
const SPR_ROUTES = [
|
|
11788
11938
|
{ path: 'spr/session/:id', component: SpeechrecorderngComponent },
|
|
11789
|
-
{ path: 'recorder', component:
|
|
11939
|
+
{ path: 'recorder/session/:id', component: AudioRecorderComponent },
|
|
11940
|
+
{ path: 'recorder', component: AudioRecorderComponent },
|
|
11790
11941
|
{ path: 'spr/db/project/:project/session/:sessionId/recordingfile/_view/:recordingFileId', component: RecordingFileViewComponent },
|
|
11791
11942
|
{ path: 'spr/db/project/:project/session/:sessionId/recordingfile/_edit/:recordingFileId', component: RecordingFileUI },
|
|
11792
11943
|
{ path: 'spr/db/project/:project/session/:sessionId/recordingfile/_view', component: RecordingFileViewComponent },
|
|
@@ -11814,20 +11965,20 @@ class SpeechrecorderngModule {
|
|
|
11814
11965
|
}
|
|
11815
11966
|
SpeechrecorderngModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SpeechrecorderngModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
11816
11967
|
SpeechrecorderngModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SpeechrecorderngModule, declarations: [AudioSignal, Sonagram, ScrollPaneHorizontal, AudioClipUIContainer, AudioDisplayScrollPane, AudioDisplay, AudioDisplayPlayer, AudioDisplayControl, LevelBar, Progress, SimpleTrafficLight, Recinstructions, Prompter, PromptContainer, PromptingContainer, Prompting, StatusDisplay,
|
|
11817
|
-
ProgressDisplay, RecordingItemDisplay, RecordingItemControls, UploadStatus, TransportPanel, ReadyStateIndicator, ControlPanel, WarningBar, AudioRecorder, SessionManager, MessageDialog, SessionFinishedDialog, SpeechrecorderngComponent, RecordingFileViewComponent, RecordingFileUI, ScrollIntoViewDirective, RecordingFileNaviComponent, RecordingFileMetaComponent, RecordingList, RecorderCombiPane, AudioRecorder], imports: [i1$1.RouterModule, FlexLayoutModule, CommonModule, MatIconModule, MatButtonModule, MatDialogModule, MatProgressBarModule, MatProgressSpinnerModule, MatTooltipModule, HttpClientModule, MatCheckboxModule, MatCardModule, MatDividerModule, MatGridListModule, MatTableModule, MatInputModule, MatSelectModule, MatSnackBarModule], exports: [MessageDialog, SpeechrecorderngComponent, ScrollPaneHorizontal, AudioClipUIContainer, AudioDisplayScrollPane, AudioDisplay, AudioDisplayPlayer, AudioDisplayControl, LevelBar, AudioRecorder] });
|
|
11968
|
+
ProgressDisplay, RecordingItemDisplay, RecordingItemControls, UploadStatus, TransportPanel, ReadyStateIndicator, ControlPanel, WarningBar, AudioRecorder, SessionManager, MessageDialog, SessionFinishedDialog, SpeechrecorderngComponent, AudioRecorderComponent, RecordingFileViewComponent, RecordingFileUI, ScrollIntoViewDirective, RecordingFileNaviComponent, RecordingFileMetaComponent, RecordingList, RecorderCombiPane, AudioRecorder], imports: [i1$1.RouterModule, FlexLayoutModule, CommonModule, MatIconModule, MatButtonModule, MatDialogModule, MatProgressBarModule, MatProgressSpinnerModule, MatTooltipModule, HttpClientModule, MatCheckboxModule, MatCardModule, MatDividerModule, MatGridListModule, MatTableModule, MatInputModule, MatSelectModule, MatSnackBarModule], exports: [MessageDialog, SpeechrecorderngComponent, ScrollPaneHorizontal, AudioClipUIContainer, AudioDisplayScrollPane, AudioDisplay, AudioDisplayPlayer, AudioDisplayControl, LevelBar, AudioRecorder] });
|
|
11818
11969
|
SpeechrecorderngModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SpeechrecorderngModule, providers: [SessionService, ProjectService, ScriptService, RecordingService, RecordingFileService, SpeechRecorderUploader], imports: [[RouterModule.forChild(SPR_ROUTES), FlexLayoutModule, CommonModule, MatIconModule, MatButtonModule, MatDialogModule, MatProgressBarModule, MatProgressSpinnerModule, MatTooltipModule, HttpClientModule, MatCheckboxModule, MatCardModule, MatDividerModule, MatGridListModule, MatTableModule, MatInputModule, MatSelectModule, MatSnackBarModule]] });
|
|
11819
11970
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SpeechrecorderngModule, decorators: [{
|
|
11820
11971
|
type: NgModule,
|
|
11821
11972
|
args: [{
|
|
11822
11973
|
declarations: [AudioSignal, Sonagram, ScrollPaneHorizontal, AudioClipUIContainer, AudioDisplayScrollPane, AudioDisplay, AudioDisplayPlayer, AudioDisplayControl, LevelBar, Progress, SimpleTrafficLight, Recinstructions, Prompter, PromptContainer, PromptingContainer, Prompting, StatusDisplay,
|
|
11823
|
-
ProgressDisplay, RecordingItemDisplay, RecordingItemControls, UploadStatus, TransportPanel, ReadyStateIndicator, ControlPanel, WarningBar, AudioRecorder, SessionManager, MessageDialog, SessionFinishedDialog, SpeechrecorderngComponent, RecordingFileViewComponent, RecordingFileUI, ScrollIntoViewDirective, RecordingFileNaviComponent, RecordingFileMetaComponent, RecordingList, RecorderCombiPane, AudioRecorder],
|
|
11974
|
+
ProgressDisplay, RecordingItemDisplay, RecordingItemControls, UploadStatus, TransportPanel, ReadyStateIndicator, ControlPanel, WarningBar, AudioRecorder, SessionManager, MessageDialog, SessionFinishedDialog, SpeechrecorderngComponent, AudioRecorderComponent, RecordingFileViewComponent, RecordingFileUI, ScrollIntoViewDirective, RecordingFileNaviComponent, RecordingFileMetaComponent, RecordingList, RecorderCombiPane, AudioRecorder],
|
|
11824
11975
|
exports: [MessageDialog, SpeechrecorderngComponent, ScrollPaneHorizontal, AudioClipUIContainer, AudioDisplayScrollPane, AudioDisplay, AudioDisplayPlayer, AudioDisplayControl, LevelBar, AudioRecorder],
|
|
11825
11976
|
imports: [RouterModule.forChild(SPR_ROUTES), FlexLayoutModule, CommonModule, MatIconModule, MatButtonModule, MatDialogModule, MatProgressBarModule, MatProgressSpinnerModule, MatTooltipModule, HttpClientModule, MatCheckboxModule, MatCardModule, MatDividerModule, MatGridListModule, MatTableModule, MatInputModule, MatSelectModule, MatSnackBarModule],
|
|
11826
11977
|
providers: [SessionService, ProjectService, ScriptService, RecordingService, RecordingFileService, SpeechRecorderUploader]
|
|
11827
11978
|
}]
|
|
11828
11979
|
}] });
|
|
11829
11980
|
|
|
11830
|
-
const VERSION = '2.
|
|
11981
|
+
const VERSION = '2.24.0';
|
|
11831
11982
|
|
|
11832
11983
|
/*
|
|
11833
11984
|
* Public API Surface of speechrecorderng
|
|
@@ -11837,5 +11988,5 @@ const VERSION = '2.23.7';
|
|
|
11837
11988
|
* Generated bundle index. Do not edit.
|
|
11838
11989
|
*/
|
|
11839
11990
|
|
|
11840
|
-
export { Action, ApiType, AudioClip, AudioClipUIContainer, AudioContextProvider, AudioDisplay, AudioDisplayControl, AudioDisplayPlayer, AudioDisplayScrollPane, AudioPlayer, AudioPlayerEvent, AudioRecorder, EventType, LevelBar, MessageDialog, ProjectService, RecordingFileService, RecordingFileUI, RecordingFileViewComponent, RecordingService, SPEECHRECORDER_CONFIG, ScriptService, ScrollPaneHorizontal, Selection, SessionService, SpeechRecorderConfig, SpeechrecorderngComponent, SpeechrecorderngModule, SprRecordingFile, UUID, VERSION };
|
|
11991
|
+
export { Action, ApiType, AudioClip, AudioClipUIContainer, AudioContextProvider, AudioDisplay, AudioDisplayControl, AudioDisplayPlayer, AudioDisplayScrollPane, AudioPlayer, AudioPlayerEvent, AudioRecorder, AudioRecorderComponent, EventType, LevelBar, MessageDialog, ProjectService, RecorderComponent, RecordingFileService, RecordingFileUI, RecordingFileViewComponent, RecordingService, SPEECHRECORDER_CONFIG, ScriptService, ScrollPaneHorizontal, Selection, SessionService, SpeechRecorderConfig, SpeechrecorderngComponent, SpeechrecorderngModule, SprRecordingFile, UUID, VERSION, WavWriter };
|
|
11841
11992
|
//# sourceMappingURL=speechrecorderng.mjs.map
|