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';
|
|
@@ -7259,6 +7260,7 @@ class BasicRecorder {
|
|
|
7259
7260
|
this.readonly = false;
|
|
7260
7261
|
this.processingRecording = false;
|
|
7261
7262
|
this.ac = null;
|
|
7263
|
+
this._wakeLock = false;
|
|
7262
7264
|
this._selectedDeviceId = undefined;
|
|
7263
7265
|
this._channelCount = 2;
|
|
7264
7266
|
this._session = null;
|
|
@@ -7271,6 +7273,7 @@ class BasicRecorder {
|
|
|
7271
7273
|
this.audioFetchSubscription = null;
|
|
7272
7274
|
this.destroyed = false;
|
|
7273
7275
|
this.navigationDisabled = true;
|
|
7276
|
+
this.noSleep = null;
|
|
7274
7277
|
this.userAgent = UserAgentBuilder.userAgent();
|
|
7275
7278
|
console.debug("Detected platform: " + this.userAgent.detectedPlatform);
|
|
7276
7279
|
console.debug("Detected browser: " + this.userAgent.detectedBrowser);
|
|
@@ -7280,6 +7283,27 @@ class BasicRecorder {
|
|
|
7280
7283
|
this.streamLevelMeasure = new StreamLevelMeasure();
|
|
7281
7284
|
this.selCaptureDeviceId = null;
|
|
7282
7285
|
}
|
|
7286
|
+
get wakeLock() {
|
|
7287
|
+
return this._wakeLock;
|
|
7288
|
+
}
|
|
7289
|
+
set wakeLock(value) {
|
|
7290
|
+
this._wakeLock = value;
|
|
7291
|
+
}
|
|
7292
|
+
enableWakeLockCond() {
|
|
7293
|
+
if (this.wakeLock === true) {
|
|
7294
|
+
if (!this.noSleep) {
|
|
7295
|
+
this.noSleep = new NoSleep();
|
|
7296
|
+
}
|
|
7297
|
+
if (!this.noSleep.isEnabled) {
|
|
7298
|
+
this.noSleep.enable();
|
|
7299
|
+
}
|
|
7300
|
+
}
|
|
7301
|
+
}
|
|
7302
|
+
disableWakeLockCond() {
|
|
7303
|
+
if (this.noSleep && this.noSleep.isEnabled) {
|
|
7304
|
+
this.noSleep.disable();
|
|
7305
|
+
}
|
|
7306
|
+
}
|
|
7283
7307
|
set audioDevices(audioDevices) {
|
|
7284
7308
|
this._audioDevices = audioDevices;
|
|
7285
7309
|
}
|
|
@@ -7872,6 +7896,7 @@ class SessionManager extends BasicRecorder {
|
|
|
7872
7896
|
};
|
|
7873
7897
|
}
|
|
7874
7898
|
ngOnDestroy() {
|
|
7899
|
+
this.disableWakeLockCond();
|
|
7875
7900
|
this.destroyed = true;
|
|
7876
7901
|
// TODO stop capture /playback
|
|
7877
7902
|
}
|
|
@@ -8079,6 +8104,7 @@ class SessionManager extends BasicRecorder {
|
|
|
8079
8104
|
}
|
|
8080
8105
|
}
|
|
8081
8106
|
startItem() {
|
|
8107
|
+
this.enableWakeLockCond();
|
|
8082
8108
|
this.transportActions.startAction.disabled = true;
|
|
8083
8109
|
this.transportActions.pauseAction.disabled = true;
|
|
8084
8110
|
if (this.readonly) {
|
|
@@ -8807,6 +8833,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
|
|
|
8807
8833
|
args: ['window:keydown', ['$event']]
|
|
8808
8834
|
}] } });
|
|
8809
8835
|
|
|
8836
|
+
class RecorderComponent {
|
|
8837
|
+
}
|
|
8838
|
+
|
|
8810
8839
|
/**
|
|
8811
8840
|
* Created by klausj on 17.06.2017.
|
|
8812
8841
|
*/
|
|
@@ -8853,8 +8882,9 @@ var Mode;
|
|
|
8853
8882
|
Mode[Mode["SINGLE_SESSION"] = 0] = "SINGLE_SESSION";
|
|
8854
8883
|
Mode[Mode["DEMO"] = 1] = "DEMO";
|
|
8855
8884
|
})(Mode || (Mode = {}));
|
|
8856
|
-
class SpeechrecorderngComponent {
|
|
8885
|
+
class SpeechrecorderngComponent extends RecorderComponent {
|
|
8857
8886
|
constructor(route, router, changeDetectorRef, sessionsService, projectService, scriptService, recFilesService, uploader) {
|
|
8887
|
+
super();
|
|
8858
8888
|
this.route = route;
|
|
8859
8889
|
this.router = router;
|
|
8860
8890
|
this.changeDetectorRef = changeDetectorRef;
|
|
@@ -8887,6 +8917,8 @@ class SpeechrecorderngComponent {
|
|
|
8887
8917
|
}
|
|
8888
8918
|
}
|
|
8889
8919
|
ngAfterViewInit() {
|
|
8920
|
+
// let wakeLockSupp=('wakeLock' in navigator);
|
|
8921
|
+
// alert('Wake lock API supported: '+wakeLockSupp);
|
|
8890
8922
|
if (this.sm.status !== 8 /* ERROR */) {
|
|
8891
8923
|
let initSuccess = this.init();
|
|
8892
8924
|
if (initSuccess) {
|
|
@@ -9049,6 +9081,7 @@ class SpeechrecorderngComponent {
|
|
|
9049
9081
|
this.uploader.listener = (ue) => {
|
|
9050
9082
|
this.uploadUpdate(ue);
|
|
9051
9083
|
};
|
|
9084
|
+
//TODO Duplicate code in AudioRecorderComponent
|
|
9052
9085
|
window.addEventListener('beforeunload', (e) => {
|
|
9053
9086
|
console.debug("Before page unload event");
|
|
9054
9087
|
if (this.ready()) {
|
|
@@ -9130,6 +9163,9 @@ class SpeechrecorderngComponent {
|
|
|
9130
9163
|
let chCnt = ProjectUtil.DEFAULT_AUDIO_CHANNEL_COUNT;
|
|
9131
9164
|
if (project) {
|
|
9132
9165
|
console.info("Project name: " + project.name);
|
|
9166
|
+
if (project.recordingDeviceWakeLock === true) {
|
|
9167
|
+
this.sm.wakeLock = true;
|
|
9168
|
+
}
|
|
9133
9169
|
this.sm.audioDevices = project.audioDevices;
|
|
9134
9170
|
chCnt = ProjectUtil.audioChannelCount(project);
|
|
9135
9171
|
console.info("Project requested recording channel count: " + chCnt);
|
|
@@ -9235,7 +9271,7 @@ class SpeechrecorderngComponent {
|
|
|
9235
9271
|
}
|
|
9236
9272
|
}
|
|
9237
9273
|
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 });
|
|
9238
|
-
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: `
|
|
9274
|
+
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: `
|
|
9239
9275
|
<app-sprrecordingsession [projectName]="project?.name" [dataSaved]="dataSaved"></app-sprrecordingsession>
|
|
9240
9276
|
`, isInline: true, styles: [":host{flex:2;display:flex;flex-direction:column;min-height:0}\n"], components: [{ type: SessionManager, selector: "app-sprrecordingsession", inputs: ["projectName", "dataSaved"] }] });
|
|
9241
9277
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SpeechrecorderngComponent, decorators: [{
|
|
@@ -10893,11 +10929,11 @@ class Item {
|
|
|
10893
10929
|
}
|
|
10894
10930
|
}
|
|
10895
10931
|
class AudioRecorder extends BasicRecorder {
|
|
10896
|
-
constructor(changeDetectorRef,
|
|
10932
|
+
constructor(changeDetectorRef, renderer, route, dialog, projectService, sessionService, recFileService, uploader, config) {
|
|
10897
10933
|
super(dialog, sessionService);
|
|
10898
10934
|
this.changeDetectorRef = changeDetectorRef;
|
|
10899
|
-
this.route = route;
|
|
10900
10935
|
this.renderer = renderer;
|
|
10936
|
+
this.route = route;
|
|
10901
10937
|
this.dialog = dialog;
|
|
10902
10938
|
this.projectService = projectService;
|
|
10903
10939
|
this.sessionService = sessionService;
|
|
@@ -10918,6 +10954,7 @@ class AudioRecorder extends BasicRecorder {
|
|
|
10918
10954
|
//selectedItemIdx: number;
|
|
10919
10955
|
this._displayRecFile = null;
|
|
10920
10956
|
this.displayRecFileVersion = 0;
|
|
10957
|
+
//super(injector);
|
|
10921
10958
|
this.status = 1 /* IDLE */;
|
|
10922
10959
|
this.audio = document.getElementById('audio');
|
|
10923
10960
|
if (this.config && this.config.enableUploadRecordings != null) {
|
|
@@ -10926,25 +10963,26 @@ class AudioRecorder extends BasicRecorder {
|
|
|
10926
10963
|
if (this.config && this.config.enableDownloadRecordings != null) {
|
|
10927
10964
|
this.enableDownloadRecordings = this.config.enableDownloadRecordings;
|
|
10928
10965
|
}
|
|
10929
|
-
this.init();
|
|
10966
|
+
//this.init();
|
|
10930
10967
|
}
|
|
10931
10968
|
ngAfterViewInit() {
|
|
10932
|
-
this.route.queryParams.subscribe((params) => {
|
|
10933
|
-
if (params['sessionId']) {
|
|
10934
|
-
this.fetchSession(params['sessionId']);
|
|
10935
|
-
}
|
|
10936
|
-
});
|
|
10937
10969
|
this.streamLevelMeasure.levelListener = this.liveLevelDisplay;
|
|
10938
10970
|
this.streamLevelMeasure.peakLevelListener = (peakLvlInDb) => {
|
|
10939
10971
|
this.peakLevelInDb = peakLvlInDb;
|
|
10940
10972
|
this.changeDetectorRef.detectChanges();
|
|
10941
10973
|
};
|
|
10974
|
+
//let wakeLockSupp=('wakeLock' in navigator);
|
|
10975
|
+
//alert('Wake lock API supported: '+wakeLockSupp);
|
|
10976
|
+
}
|
|
10977
|
+
ready() {
|
|
10978
|
+
return this.dataSaved && !this.isActive();
|
|
10942
10979
|
}
|
|
10943
10980
|
ngOnDestroy() {
|
|
10981
|
+
this.disableWakeLockCond();
|
|
10944
10982
|
this.destroyed = true;
|
|
10945
10983
|
// TODO stop capture /playback
|
|
10946
10984
|
}
|
|
10947
|
-
|
|
10985
|
+
ngOnInit() {
|
|
10948
10986
|
this.transportActions.startAction.disabled = true;
|
|
10949
10987
|
this.transportActions.stopAction.disabled = true;
|
|
10950
10988
|
this.transportActions.nextAction.disabled = true;
|
|
@@ -10994,7 +11032,7 @@ class AudioRecorder extends BasicRecorder {
|
|
|
10994
11032
|
return;
|
|
10995
11033
|
}
|
|
10996
11034
|
else {
|
|
10997
|
-
this.controlAudioPlayer = new AudioPlayer(context, this);
|
|
11035
|
+
//this.controlAudioPlayer = new AudioPlayer(context, this);
|
|
10998
11036
|
this.ac = new AudioCapture(context);
|
|
10999
11037
|
if (this.ac) {
|
|
11000
11038
|
this.transportActions.startAction.onAction = () => this.startItem();
|
|
@@ -11026,6 +11064,23 @@ class AudioRecorder extends BasicRecorder {
|
|
|
11026
11064
|
this.uploader.listener = (ue) => {
|
|
11027
11065
|
this.uploadUpdate(ue);
|
|
11028
11066
|
};
|
|
11067
|
+
let wakeLockSupp = ('wakeLock' in navigator);
|
|
11068
|
+
// if(wakeLockSupp) {
|
|
11069
|
+
// let wakeLock = null;
|
|
11070
|
+
// try {
|
|
11071
|
+
// //@ts-ignore
|
|
11072
|
+
// wakeLock = navigator.wakeLock.request('screen');
|
|
11073
|
+
//
|
|
11074
|
+
// //statusElem.textContent = 'Wake Lock is active!';
|
|
11075
|
+
// } catch (err) {
|
|
11076
|
+
// // The Wake Lock request has failed - usually system related, such as battery.
|
|
11077
|
+
// console.error('Wakelock failed'+err)
|
|
11078
|
+
// }
|
|
11079
|
+
// }else{
|
|
11080
|
+
// let noSleep=new NoSleep();
|
|
11081
|
+
// noSleep.enable();
|
|
11082
|
+
//
|
|
11083
|
+
// }
|
|
11029
11084
|
}
|
|
11030
11085
|
onKeyPress(ke) {
|
|
11031
11086
|
if (ke.key == ' ') {
|
|
@@ -11071,43 +11126,6 @@ class AudioRecorder extends BasicRecorder {
|
|
|
11071
11126
|
isDefaultAudioTestSessionOverwriteingProjectRequirements() {
|
|
11072
11127
|
return ((this._session != null) && (this._session.type === 'TEST_DEF_A') && (this.audioDevices != null) && this.audioDevices.length > 0);
|
|
11073
11128
|
}
|
|
11074
|
-
fetchSession(sessionId) {
|
|
11075
|
-
//Error: ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. Previous value: 'statusMsg: Player initialized.'. Current value: 'statusMsg: Fetching session info...'.
|
|
11076
|
-
// params.subscribe seems not to be asynchronous
|
|
11077
|
-
// this.sm.statusAlertType='info';
|
|
11078
|
-
// this.sm.statusMsg = 'Fetching session info...';
|
|
11079
|
-
// this.sm.statusWaiting=true;
|
|
11080
|
-
let sessObs = this.sessionService.sessionObserver(sessionId);
|
|
11081
|
-
if (sessObs) {
|
|
11082
|
-
sessObs.subscribe(sess => {
|
|
11083
|
-
//this.setSession(sess);
|
|
11084
|
-
this.statusAlertType = 'info';
|
|
11085
|
-
this.statusMsg = 'Received session info.';
|
|
11086
|
-
this.statusWaiting = false;
|
|
11087
|
-
this.session = sess;
|
|
11088
|
-
if (sess.project) {
|
|
11089
|
-
//console.debug("Session associated project: "+sess.project)
|
|
11090
|
-
this.projectService.projectObservable(sess.project).subscribe(project => {
|
|
11091
|
-
this.project = project;
|
|
11092
|
-
this.fetchRecordings(sess);
|
|
11093
|
-
}, reason => {
|
|
11094
|
-
this.statusMsg = reason;
|
|
11095
|
-
this.statusAlertType = 'error';
|
|
11096
|
-
this.statusWaiting = false;
|
|
11097
|
-
console.error("Error fetching project config: " + reason);
|
|
11098
|
-
});
|
|
11099
|
-
}
|
|
11100
|
-
else {
|
|
11101
|
-
console.info("Session has no associated project. Using default configuration.");
|
|
11102
|
-
}
|
|
11103
|
-
}, (reason) => {
|
|
11104
|
-
this.statusMsg = reason;
|
|
11105
|
-
this.statusAlertType = 'error';
|
|
11106
|
-
this.statusWaiting = false;
|
|
11107
|
-
console.error("Error fetching session " + reason);
|
|
11108
|
-
});
|
|
11109
|
-
}
|
|
11110
|
-
}
|
|
11111
11129
|
fetchRecordings(sess) {
|
|
11112
11130
|
this.statusAlertType = 'info';
|
|
11113
11131
|
this.statusMsg = 'Fetching infos of recordings...';
|
|
@@ -11159,6 +11177,9 @@ class AudioRecorder extends BasicRecorder {
|
|
|
11159
11177
|
let chCnt = ProjectUtil.DEFAULT_AUDIO_CHANNEL_COUNT;
|
|
11160
11178
|
if (project) {
|
|
11161
11179
|
console.info("Project name: " + project.name);
|
|
11180
|
+
if (project.recordingDeviceWakeLock === true) {
|
|
11181
|
+
this.wakeLock = true;
|
|
11182
|
+
}
|
|
11162
11183
|
this.audioDevices = project.audioDevices;
|
|
11163
11184
|
chCnt = ProjectUtil.audioChannelCount(project);
|
|
11164
11185
|
console.info("Project requested recording channel count: " + chCnt);
|
|
@@ -11262,6 +11283,7 @@ class AudioRecorder extends BasicRecorder {
|
|
|
11262
11283
|
}
|
|
11263
11284
|
}
|
|
11264
11285
|
startItem() {
|
|
11286
|
+
this.enableWakeLockCond();
|
|
11265
11287
|
this.transportActions.startAction.disabled = true;
|
|
11266
11288
|
this.transportActions.pauseAction.disabled = true;
|
|
11267
11289
|
if (this.readonly) {
|
|
@@ -11577,8 +11599,8 @@ class AudioRecorder extends BasicRecorder {
|
|
|
11577
11599
|
}
|
|
11578
11600
|
}
|
|
11579
11601
|
}
|
|
11580
|
-
AudioRecorder.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AudioRecorder, deps: [{ token: i0.ChangeDetectorRef }, { token:
|
|
11581
|
-
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: `
|
|
11602
|
+
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 });
|
|
11603
|
+
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: `
|
|
11582
11604
|
<app-warningbar [show]="isTestSession()" warningText="Test recording only!"></app-warningbar>
|
|
11583
11605
|
<app-warningbar [show]="isDefaultAudioTestSession()"
|
|
11584
11606
|
warningText="This test uses default audio device! Regular sessions may require a particular audio device (microphone)!"></app-warningbar>
|
|
@@ -11634,7 +11656,7 @@ AudioRecorder.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
|
|
|
11634
11656
|
[ready]="dataSaved && !isActive()"></app-readystateindicator>
|
|
11635
11657
|
</div>
|
|
11636
11658
|
</div>
|
|
11637
|
-
`, 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"] }] });
|
|
11659
|
+
`, 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"] }] });
|
|
11638
11660
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AudioRecorder, decorators: [{
|
|
11639
11661
|
type: Component,
|
|
11640
11662
|
args: [{
|
|
@@ -11704,8 +11726,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
|
|
|
11704
11726
|
flex-direction: column;
|
|
11705
11727
|
margin: 0;
|
|
11706
11728
|
padding: 0;
|
|
11729
|
+
height: 100%;
|
|
11707
11730
|
min-height: 0px;
|
|
11708
|
-
|
|
11709
11731
|
/* Prevents horizontal scroll bar on swipe right */
|
|
11710
11732
|
overflow: hidden;
|
|
11711
11733
|
}`, `.ricontrols {
|
|
@@ -11733,10 +11755,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
|
|
|
11733
11755
|
}`
|
|
11734
11756
|
]
|
|
11735
11757
|
}]
|
|
11736
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type:
|
|
11758
|
+
}], ctorParameters: function () { 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: [{
|
|
11737
11759
|
type: Inject,
|
|
11738
11760
|
args: [SPEECHRECORDER_CONFIG]
|
|
11739
|
-
}] }]; }, propDecorators: {
|
|
11761
|
+
}] }]; }, propDecorators: { _project: [{
|
|
11762
|
+
type: Input
|
|
11763
|
+
}], projectName: [{
|
|
11740
11764
|
type: Input
|
|
11741
11765
|
}], recorderCombiPane: [{
|
|
11742
11766
|
type: ViewChild,
|
|
@@ -11752,11 +11776,138 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
|
|
|
11752
11776
|
}], onKeyDown: [{
|
|
11753
11777
|
type: HostListener,
|
|
11754
11778
|
args: ['window:keydown', ['$event']]
|
|
11779
|
+
}] } });
|
|
11780
|
+
class AudioRecorderComponent extends RecorderComponent {
|
|
11781
|
+
constructor(injector, route, router, changeDetectorRef, sessionService, projectService, recFilesService) {
|
|
11782
|
+
super();
|
|
11783
|
+
this.injector = injector;
|
|
11784
|
+
this.route = route;
|
|
11785
|
+
this.router = router;
|
|
11786
|
+
this.changeDetectorRef = changeDetectorRef;
|
|
11787
|
+
this.sessionService = sessionService;
|
|
11788
|
+
this.projectService = projectService;
|
|
11789
|
+
this.recFilesService = recFilesService;
|
|
11790
|
+
this.dataSaved = true;
|
|
11791
|
+
}
|
|
11792
|
+
ngOnInit() {
|
|
11793
|
+
//super.ngOnInit();
|
|
11794
|
+
let audioContext = AudioContextProvider.audioContextInstance();
|
|
11795
|
+
if (audioContext) {
|
|
11796
|
+
this.controlAudioPlayer = new AudioPlayer(audioContext, this.ar);
|
|
11797
|
+
}
|
|
11798
|
+
this.ar.controlAudioPlayer = this.controlAudioPlayer;
|
|
11799
|
+
//TODO Duplicate code in SpeechRecorderComponent
|
|
11800
|
+
window.addEventListener('beforeunload', (e) => {
|
|
11801
|
+
console.debug("Before page unload event");
|
|
11802
|
+
if (this.ready()) {
|
|
11803
|
+
return;
|
|
11804
|
+
}
|
|
11805
|
+
else {
|
|
11806
|
+
// all this attempts to customize the message do not work anymore (for security reasons)!!
|
|
11807
|
+
var message = "Please do not leave the page, until all recordings are uploaded!";
|
|
11808
|
+
alert(message);
|
|
11809
|
+
e = e || window.event;
|
|
11810
|
+
if (e) {
|
|
11811
|
+
e.returnValue = message;
|
|
11812
|
+
e.cancelBubble = true;
|
|
11813
|
+
if (e.stopPropagation) {
|
|
11814
|
+
e.stopPropagation();
|
|
11815
|
+
}
|
|
11816
|
+
if (e.preventDefault) {
|
|
11817
|
+
e.preventDefault();
|
|
11818
|
+
}
|
|
11819
|
+
}
|
|
11820
|
+
return message;
|
|
11821
|
+
}
|
|
11822
|
+
});
|
|
11823
|
+
}
|
|
11824
|
+
ngAfterViewInit() {
|
|
11825
|
+
this.route.queryParams.subscribe((params) => {
|
|
11826
|
+
if (params['sessionId']) {
|
|
11827
|
+
this.fetchSession(params['sessionId']);
|
|
11828
|
+
}
|
|
11829
|
+
});
|
|
11830
|
+
this.route.params.subscribe((params) => {
|
|
11831
|
+
let routeParamsId = params['id'];
|
|
11832
|
+
if (routeParamsId) {
|
|
11833
|
+
this.fetchSession(routeParamsId);
|
|
11834
|
+
}
|
|
11835
|
+
});
|
|
11836
|
+
}
|
|
11837
|
+
ngOnDestroy() {
|
|
11838
|
+
//super.ngOnDestroy();
|
|
11839
|
+
}
|
|
11840
|
+
fetchSession(sessionId) {
|
|
11841
|
+
//Error: ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. Previous value: 'statusMsg: Player initialized.'. Current value: 'statusMsg: Fetching session info...'.
|
|
11842
|
+
// params.subscribe seems not to be asynchronous
|
|
11843
|
+
// this.sm.statusAlertType='info';
|
|
11844
|
+
// this.sm.statusMsg = 'Fetching session info...';
|
|
11845
|
+
// this.sm.statusWaiting=true;
|
|
11846
|
+
let sessObs = this.sessionService.sessionObserver(sessionId);
|
|
11847
|
+
if (sessObs) {
|
|
11848
|
+
sessObs.subscribe(sess => {
|
|
11849
|
+
this.ar.statusAlertType = 'info';
|
|
11850
|
+
this.ar.statusMsg = 'Received session info.';
|
|
11851
|
+
this.ar.statusWaiting = false;
|
|
11852
|
+
this.session = sess;
|
|
11853
|
+
this.ar.session = sess;
|
|
11854
|
+
if (sess.project) {
|
|
11855
|
+
//console.debug("Session associated project: "+sess.project)
|
|
11856
|
+
this.projectService.projectObservable(sess.project).subscribe(project => {
|
|
11857
|
+
this.ar.project = project;
|
|
11858
|
+
this.ar.fetchRecordings(sess);
|
|
11859
|
+
}, reason => {
|
|
11860
|
+
this.ar.statusMsg = reason;
|
|
11861
|
+
this.ar.statusAlertType = 'error';
|
|
11862
|
+
this.ar.statusWaiting = false;
|
|
11863
|
+
console.error("Error fetching project config: " + reason);
|
|
11864
|
+
});
|
|
11865
|
+
}
|
|
11866
|
+
else {
|
|
11867
|
+
console.info("Session has no associated project. Using default configuration.");
|
|
11868
|
+
}
|
|
11869
|
+
}, (reason) => {
|
|
11870
|
+
this.ar.statusMsg = reason;
|
|
11871
|
+
this.ar.statusAlertType = 'error';
|
|
11872
|
+
this.ar.statusWaiting = false;
|
|
11873
|
+
console.error("Error fetching session " + reason);
|
|
11874
|
+
});
|
|
11875
|
+
}
|
|
11876
|
+
}
|
|
11877
|
+
ready() {
|
|
11878
|
+
return this.dataSaved && !this.ar.isActive();
|
|
11879
|
+
}
|
|
11880
|
+
}
|
|
11881
|
+
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 });
|
|
11882
|
+
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: `
|
|
11883
|
+
<app-audiorecorder [projectName]="_project?.name" [dataSaved]="dataSaved"></app-audiorecorder>
|
|
11884
|
+
`, 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"] }] });
|
|
11885
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AudioRecorderComponent, decorators: [{
|
|
11886
|
+
type: Component,
|
|
11887
|
+
args: [{
|
|
11888
|
+
selector: 'app-audiorecorder-comp',
|
|
11889
|
+
providers: [SessionService],
|
|
11890
|
+
template: `
|
|
11891
|
+
<app-audiorecorder [projectName]="_project?.name" [dataSaved]="dataSaved"></app-audiorecorder>
|
|
11892
|
+
`,
|
|
11893
|
+
styles: [`:host{
|
|
11894
|
+
flex: 2;
|
|
11895
|
+
display: flex;
|
|
11896
|
+
height: 100%;
|
|
11897
|
+
flex-direction: column;
|
|
11898
|
+
min-height:0;
|
|
11899
|
+
|
|
11900
|
+
}`]
|
|
11901
|
+
}]
|
|
11902
|
+
}], 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: [{
|
|
11903
|
+
type: ViewChild,
|
|
11904
|
+
args: [AudioRecorder, { static: true }]
|
|
11755
11905
|
}] } });
|
|
11756
11906
|
|
|
11757
11907
|
const SPR_ROUTES = [
|
|
11758
11908
|
{ path: 'spr/session/:id', component: SpeechrecorderngComponent },
|
|
11759
|
-
{ path: 'recorder', component:
|
|
11909
|
+
{ path: 'recorder/session/:id', component: AudioRecorderComponent },
|
|
11910
|
+
{ path: 'recorder', component: AudioRecorderComponent },
|
|
11760
11911
|
{ path: 'spr/db/project/:project/session/:sessionId/recordingfile/_view/:recordingFileId', component: RecordingFileViewComponent },
|
|
11761
11912
|
{ path: 'spr/db/project/:project/session/:sessionId/recordingfile/_edit/:recordingFileId', component: RecordingFileUI },
|
|
11762
11913
|
{ path: 'spr/db/project/:project/session/:sessionId/recordingfile/_view', component: RecordingFileViewComponent },
|
|
@@ -11784,20 +11935,20 @@ class SpeechrecorderngModule {
|
|
|
11784
11935
|
}
|
|
11785
11936
|
SpeechrecorderngModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SpeechrecorderngModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
11786
11937
|
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,
|
|
11787
|
-
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] });
|
|
11938
|
+
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] });
|
|
11788
11939
|
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]] });
|
|
11789
11940
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SpeechrecorderngModule, decorators: [{
|
|
11790
11941
|
type: NgModule,
|
|
11791
11942
|
args: [{
|
|
11792
11943
|
declarations: [AudioSignal, Sonagram, ScrollPaneHorizontal, AudioClipUIContainer, AudioDisplayScrollPane, AudioDisplay, AudioDisplayPlayer, AudioDisplayControl, LevelBar, Progress, SimpleTrafficLight, Recinstructions, Prompter, PromptContainer, PromptingContainer, Prompting, StatusDisplay,
|
|
11793
|
-
ProgressDisplay, RecordingItemDisplay, RecordingItemControls, UploadStatus, TransportPanel, ReadyStateIndicator, ControlPanel, WarningBar, AudioRecorder, SessionManager, MessageDialog, SessionFinishedDialog, SpeechrecorderngComponent, RecordingFileViewComponent, RecordingFileUI, ScrollIntoViewDirective, RecordingFileNaviComponent, RecordingFileMetaComponent, RecordingList, RecorderCombiPane, AudioRecorder],
|
|
11944
|
+
ProgressDisplay, RecordingItemDisplay, RecordingItemControls, UploadStatus, TransportPanel, ReadyStateIndicator, ControlPanel, WarningBar, AudioRecorder, SessionManager, MessageDialog, SessionFinishedDialog, SpeechrecorderngComponent, AudioRecorderComponent, RecordingFileViewComponent, RecordingFileUI, ScrollIntoViewDirective, RecordingFileNaviComponent, RecordingFileMetaComponent, RecordingList, RecorderCombiPane, AudioRecorder],
|
|
11794
11945
|
exports: [MessageDialog, SpeechrecorderngComponent, ScrollPaneHorizontal, AudioClipUIContainer, AudioDisplayScrollPane, AudioDisplay, AudioDisplayPlayer, AudioDisplayControl, LevelBar, AudioRecorder],
|
|
11795
11946
|
imports: [RouterModule.forChild(SPR_ROUTES), FlexLayoutModule, CommonModule, MatIconModule, MatButtonModule, MatDialogModule, MatProgressBarModule, MatProgressSpinnerModule, MatTooltipModule, HttpClientModule, MatCheckboxModule, MatCardModule, MatDividerModule, MatGridListModule, MatTableModule, MatInputModule, MatSelectModule, MatSnackBarModule],
|
|
11796
11947
|
providers: [SessionService, ProjectService, ScriptService, RecordingService, RecordingFileService, SpeechRecorderUploader]
|
|
11797
11948
|
}]
|
|
11798
11949
|
}] });
|
|
11799
11950
|
|
|
11800
|
-
const VERSION = '2.
|
|
11951
|
+
const VERSION = '2.24.0';
|
|
11801
11952
|
|
|
11802
11953
|
/*
|
|
11803
11954
|
* Public API Surface of speechrecorderng
|
|
@@ -11807,5 +11958,5 @@ const VERSION = '2.23.7';
|
|
|
11807
11958
|
* Generated bundle index. Do not edit.
|
|
11808
11959
|
*/
|
|
11809
11960
|
|
|
11810
|
-
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 };
|
|
11961
|
+
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 };
|
|
11811
11962
|
//# sourceMappingURL=speechrecorderng.mjs.map
|