speechrecorderng 2.18.9 → 2.18.13

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.
Files changed (53) hide show
  1. package/bundles/speechrecorderng.umd.js +145 -153
  2. package/bundles/speechrecorderng.umd.js.map +1 -1
  3. package/esm2015/lib/audio/audio_display.js +4 -4
  4. package/esm2015/lib/audio/audio_player.js +4 -4
  5. package/esm2015/lib/audio/capture/capture.js +1 -15
  6. package/esm2015/lib/audio/format.js +1 -1
  7. package/esm2015/lib/audio/impl/wavformat.js +1 -1
  8. package/esm2015/lib/audio/ui/audio_canvas_layer_comp.js +7 -7
  9. package/esm2015/lib/audio/ui/audio_display_control.js +4 -4
  10. package/esm2015/lib/audio/ui/audio_display_scroll_pane.js +4 -4
  11. package/esm2015/lib/audio/ui/audiosignal.js +4 -4
  12. package/esm2015/lib/audio/ui/container.js +4 -4
  13. package/esm2015/lib/audio/ui/livelevel.js +4 -4
  14. package/esm2015/lib/audio/ui/scroll_pane_horizontal.js +12 -12
  15. package/esm2015/lib/audio/ui/sonagram.js +4 -4
  16. package/esm2015/lib/dsp/utils.js +1 -1
  17. package/esm2015/lib/io/BinaryWriter.js +1 -1
  18. package/esm2015/lib/math/complex.js +1 -1
  19. package/esm2015/lib/math/dft.js +1 -1
  20. package/esm2015/lib/math/utils.js +1 -1
  21. package/esm2015/lib/speechrecorder/project/project.service.js +4 -4
  22. package/esm2015/lib/speechrecorder/recordings/recordings.service.js +4 -4
  23. package/esm2015/lib/speechrecorder/script/script.service.js +4 -4
  24. package/esm2015/lib/speechrecorder/session/controlpanel.js +37 -29
  25. package/esm2015/lib/speechrecorder/session/progress.js +4 -4
  26. package/esm2015/lib/speechrecorder/session/prompting.js +16 -16
  27. package/esm2015/lib/speechrecorder/session/recordingfile/recording-file-meta.component.js +4 -4
  28. package/esm2015/lib/speechrecorder/session/recordingfile/recording-file-navi.component.js +4 -4
  29. package/esm2015/lib/speechrecorder/session/recordingfile/recording-file-u-i.component.js +4 -4
  30. package/esm2015/lib/speechrecorder/session/recordingfile/recording-file-view.component.js +4 -4
  31. package/esm2015/lib/speechrecorder/session/recordingfile/recordingfile-service.js +4 -4
  32. package/esm2015/lib/speechrecorder/session/session.service.js +4 -4
  33. package/esm2015/lib/speechrecorder/session/session_finished_dialog.js +4 -4
  34. package/esm2015/lib/speechrecorder/session/sessionmanager.js +8 -8
  35. package/esm2015/lib/speechrecorder/session/warning_bar.js +4 -4
  36. package/esm2015/lib/speechrecorder/spruploader.js +4 -4
  37. package/esm2015/lib/speechrecorder/startstopsignal/startstopsignal.js +1 -1
  38. package/esm2015/lib/speechrecorder/startstopsignal/ui/simpletrafficlight.js +4 -4
  39. package/esm2015/lib/speechrecorderng.component.js +4 -4
  40. package/esm2015/lib/speechrecorderng.module.js +5 -5
  41. package/esm2015/lib/spr.config.js +4 -4
  42. package/esm2015/lib/spr.module.version.js +2 -2
  43. package/esm2015/lib/ui/canvas_layer_comp.js +4 -4
  44. package/esm2015/lib/ui/livelevel_display.js +4 -4
  45. package/esm2015/lib/ui/message_dialog.js +4 -4
  46. package/esm2015/lib/utils/css_utils.js +1 -1
  47. package/esm2015/lib/utils/scrollIntoViewToBottom.js +4 -4
  48. package/fesm2015/speechrecorderng.js +164 -170
  49. package/fesm2015/speechrecorderng.js.map +1 -1
  50. package/lib/audio/capture/capture.d.ts +2 -2
  51. package/lib/speechrecorder/session/controlpanel.d.ts +4 -2
  52. package/lib/spr.module.version.d.ts +1 -1
  53. package/package.json +13 -13
@@ -969,24 +969,10 @@
969
969
  // AudioWorker is now AudioWorkletProcessor ... (May 2017)
970
970
  // Update 12-2020:
971
971
  // The ScriptProcessorNode Interface - DEPRECATED
972
- // TODO
973
- if (_this.context.createAudioWorker) {
974
- //console.debug("Audio worker implemented!!")
975
- }
976
- else {
977
- //console.debug("Audio worker NOT implemented.")
978
- }
979
- if (_this.context.registerProcessor) {
980
- //console.debug("Audio worklet processor implemented!!");
981
- }
982
- else {
983
- //console.debug("Audio worklet processor NOT implemented.")
984
- }
985
972
  if (!_this.context.createScriptProcessor) {
986
973
  //console.debug("Audio script processor NOT implemented.")
987
974
  }
988
975
  else {
989
- //TODO
990
976
  // The ScriptProcessorNode Interface - DEPRECATED
991
977
  //console.debug("Audio script processor implemented!!");
992
978
  // TODO should we use streamChannelCount or channelCount here ?
@@ -1823,9 +1809,9 @@
1823
1809
  }
1824
1810
  return SpeechRecorderConfig;
1825
1811
  }());
1826
- SpeechRecorderConfig.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: SpeechRecorderConfig, deps: [], target: i0__namespace.ɵɵFactoryTarget.Injectable });
1827
- SpeechRecorderConfig.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: SpeechRecorderConfig });
1828
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: SpeechRecorderConfig, decorators: [{
1812
+ SpeechRecorderConfig.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: SpeechRecorderConfig, deps: [], target: i0__namespace.ɵɵFactoryTarget.Injectable });
1813
+ SpeechRecorderConfig.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: SpeechRecorderConfig });
1814
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: SpeechRecorderConfig, decorators: [{
1829
1815
  type: i0.Injectable
1830
1816
  }], ctorParameters: function () { return []; } });
1831
1817
 
@@ -1878,9 +1864,9 @@
1878
1864
  return ProjectService;
1879
1865
  }());
1880
1866
  ProjectService.PROJECT_API_CTX = 'project';
1881
- ProjectService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: ProjectService, deps: [{ token: i1__namespace.HttpClient }, { token: i4__namespace.PlatformLocation }, { token: SPEECHRECORDER_CONFIG }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
1882
- ProjectService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: ProjectService });
1883
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: ProjectService, decorators: [{
1867
+ ProjectService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: ProjectService, deps: [{ token: i1__namespace.HttpClient }, { token: i4__namespace.PlatformLocation }, { token: SPEECHRECORDER_CONFIG }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
1868
+ ProjectService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: ProjectService });
1869
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: ProjectService, decorators: [{
1884
1870
  type: i0.Injectable
1885
1871
  }], ctorParameters: function () {
1886
1872
  return [{ type: i1__namespace.HttpClient }, { type: i4__namespace.PlatformLocation }, { type: SpeechRecorderConfig, decorators: [{
@@ -1944,9 +1930,9 @@
1944
1930
  return SessionService;
1945
1931
  }());
1946
1932
  SessionService.SESSION_API_CTX = 'session';
1947
- SessionService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: SessionService, deps: [{ token: i1__namespace.HttpClient }, { token: SPEECHRECORDER_CONFIG }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
1948
- SessionService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: SessionService });
1949
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: SessionService, decorators: [{
1933
+ SessionService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: SessionService, deps: [{ token: i1__namespace.HttpClient }, { token: SPEECHRECORDER_CONFIG }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
1934
+ SessionService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: SessionService });
1935
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: SessionService, decorators: [{
1950
1936
  type: i0.Injectable
1951
1937
  }], ctorParameters: function () {
1952
1938
  return [{ type: i1__namespace.HttpClient }, { type: SpeechRecorderConfig, decorators: [{
@@ -2254,9 +2240,9 @@
2254
2240
  };
2255
2241
  return LevelBar;
2256
2242
  }());
2257
- LevelBar.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: LevelBar, deps: [{ token: i0__namespace.ElementRef }, { token: i0__namespace.ChangeDetectorRef }], target: i0__namespace.ɵɵFactoryTarget.Component });
2258
- LevelBar.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.5", type: LevelBar, selector: "audio-levelbar", inputs: { streamingMode: "streamingMode", displayLevelInfos: "displayLevelInfos" }, 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__namespace, template: "\n <div #virtualCanvas>\n <canvas #levelbar></canvas>\n <canvas #markerCanvas></canvas>\n </div>\n ", isInline: true, styles: [":host {\n\n width: 100%;\n background: darkgray;\n box-sizing: border-box;\n height: 100%;\n position: relative;\n overflow-x: scroll;\n overflow-y: auto;\n }", "div {\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n\n /*position: absolute;*/\n box-sizing: border-box;\n }", "canvas {\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n position: absolute;\n }"] });
2259
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: LevelBar, decorators: [{
2243
+ LevelBar.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: LevelBar, deps: [{ token: i0__namespace.ElementRef }, { token: i0__namespace.ChangeDetectorRef }], target: i0__namespace.ɵɵFactoryTarget.Component });
2244
+ LevelBar.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.10", type: LevelBar, selector: "audio-levelbar", inputs: { streamingMode: "streamingMode", displayLevelInfos: "displayLevelInfos" }, 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__namespace, template: "\n <div #virtualCanvas>\n <canvas #levelbar></canvas>\n <canvas #markerCanvas></canvas>\n </div>\n ", isInline: true, styles: [":host {\n\n width: 100%;\n background: darkgray;\n box-sizing: border-box;\n height: 100%;\n position: relative;\n overflow-x: scroll;\n overflow-y: auto;\n }", "div {\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n\n /*position: absolute;*/\n box-sizing: border-box;\n }", "canvas {\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n position: absolute;\n }"] });
2245
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: LevelBar, decorators: [{
2260
2246
  type: i0.Component,
2261
2247
  args: [{
2262
2248
  selector: 'audio-levelbar',
@@ -2370,9 +2356,9 @@
2370
2356
  };
2371
2357
  return LevelBarDisplay;
2372
2358
  }());
2373
- LevelBarDisplay.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: LevelBarDisplay, deps: [{ token: i0__namespace.ElementRef }, { token: i0__namespace.ChangeDetectorRef }], target: i0__namespace.ɵɵFactoryTarget.Component });
2374
- LevelBarDisplay.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.5", type: LevelBarDisplay, selector: "spr-recordingitemdisplay", inputs: { streamingMode: "streamingMode", audioSignalCollapsed: "audioSignalCollapsed", enableDownload: "enableDownload", playStartAction: "playStartAction", playStopAction: "playStopAction", displayAudioBuffer: "displayAudioBuffer", displayLevelInfos: "displayLevelInfos" }, outputs: { onShowRecordingDetails: "onShowRecordingDetails", onDownloadRecording: "onDownloadRecording" }, viewQueries: [{ propertyName: "liveLevel", first: true, predicate: LevelBar, descendants: true, static: true }], ngImport: i0__namespace, template: "\n <audio-levelbar [streamingMode]=\"streamingMode\" [displayLevelInfos]=\"_displayLevelInfos\"></audio-levelbar>\n <button matTooltip=\"Start playback\" (click)=\"playStartAction?.perform()\"\n [disabled]=\"playStartAction?.disabled\"\n [style.color]=\"playStartAction?.disabled ? 'grey' : 'green'\">\n <mat-icon>play_arrow</mat-icon>\n </button>\n <button matTooltip=\"Stop playback\" (click)=\"playStopAction?.perform()\"\n [disabled]=\"playStopAction?.disabled\"\n [style.color]=\"playStopAction?.disabled ? 'grey' : 'yellow'\">\n <mat-icon>stop</mat-icon>\n </button>\n <button matTooltip=\"Toggle detailed audio display\" [disabled]=\"displayAudioBuffer==null\"\n (click)=\"showRecordingDetails()\">\n <mat-icon>{{(audioSignalCollapsed) ? \"expand_less\" : \"expand_more\"}}</mat-icon>\n </button>\n <button matTooltip=\"Download current recording\" *ngIf=\"enableDownload\" [disabled]=\"displayAudioBuffer==null\"\n (click)=\"downloadRecording()\">\n <mat-icon>file_download</mat-icon>\n </button>\n <div style=\"min-width: 14ch;padding:2px\"><table border=\"0\"><tr><td>Peak:</td><td><span matTooltip=\"Peak level\"\n [style.color]=\"(peakDbLvl > warnDbLevel)?'red':'black'\">{{peakDbLvl | number:'1.1-1'}} dB </span></td></tr></table></div>\n ", isInline: true, styles: [":host {\n flex: 0; /* only required vertical space */\n width: 100%;\n background: darkgray;\n padding: 4px;\n box-sizing: border-box;\n height: 100px;\n min-height: 100px;\n display: flex; /* flex container: left level bar, right decimal peak level value */\n flex-direction: row;\n flex-wrap: nowrap; /* wrap could completely destroy the layout */\n }", "audio-levelbar {\n flex: 1;\n box-sizing: border-box;\n }", "span {\n flex: 0;\n font-weight: bold;\n display: inline-block;\n white-space: nowrap;\n box-sizing: border-box;\n }"], components: [{ type: LevelBar, selector: "audio-levelbar", inputs: ["streamingMode", "displayLevelInfos"] }, { type: i2__namespace.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i3__namespace.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i4__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "number": i4__namespace.DecimalPipe } });
2375
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: LevelBarDisplay, decorators: [{
2359
+ LevelBarDisplay.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: LevelBarDisplay, deps: [{ token: i0__namespace.ElementRef }, { token: i0__namespace.ChangeDetectorRef }], target: i0__namespace.ɵɵFactoryTarget.Component });
2360
+ LevelBarDisplay.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.10", type: LevelBarDisplay, selector: "spr-recordingitemdisplay", inputs: { streamingMode: "streamingMode", audioSignalCollapsed: "audioSignalCollapsed", enableDownload: "enableDownload", playStartAction: "playStartAction", playStopAction: "playStopAction", displayAudioBuffer: "displayAudioBuffer", displayLevelInfos: "displayLevelInfos" }, outputs: { onShowRecordingDetails: "onShowRecordingDetails", onDownloadRecording: "onDownloadRecording" }, viewQueries: [{ propertyName: "liveLevel", first: true, predicate: LevelBar, descendants: true, static: true }], ngImport: i0__namespace, template: "\n <audio-levelbar [streamingMode]=\"streamingMode\" [displayLevelInfos]=\"_displayLevelInfos\"></audio-levelbar>\n <button matTooltip=\"Start playback\" (click)=\"playStartAction?.perform()\"\n [disabled]=\"playStartAction?.disabled\"\n [style.color]=\"playStartAction?.disabled ? 'grey' : 'green'\">\n <mat-icon>play_arrow</mat-icon>\n </button>\n <button matTooltip=\"Stop playback\" (click)=\"playStopAction?.perform()\"\n [disabled]=\"playStopAction?.disabled\"\n [style.color]=\"playStopAction?.disabled ? 'grey' : 'yellow'\">\n <mat-icon>stop</mat-icon>\n </button>\n <button matTooltip=\"Toggle detailed audio display\" [disabled]=\"displayAudioBuffer==null\"\n (click)=\"showRecordingDetails()\">\n <mat-icon>{{(audioSignalCollapsed) ? \"expand_less\" : \"expand_more\"}}</mat-icon>\n </button>\n <button matTooltip=\"Download current recording\" *ngIf=\"enableDownload\" [disabled]=\"displayAudioBuffer==null\"\n (click)=\"downloadRecording()\">\n <mat-icon>file_download</mat-icon>\n </button>\n <div style=\"min-width: 14ch;padding:2px\"><table border=\"0\"><tr><td>Peak:</td><td><span matTooltip=\"Peak level\"\n [style.color]=\"(peakDbLvl > warnDbLevel)?'red':'black'\">{{peakDbLvl | number:'1.1-1'}} dB </span></td></tr></table></div>\n ", isInline: true, styles: [":host {\n flex: 0; /* only required vertical space */\n width: 100%;\n background: darkgray;\n padding: 4px;\n box-sizing: border-box;\n height: 100px;\n min-height: 100px;\n display: flex; /* flex container: left level bar, right decimal peak level value */\n flex-direction: row;\n flex-wrap: nowrap; /* wrap could completely destroy the layout */\n }", "audio-levelbar {\n flex: 1;\n box-sizing: border-box;\n }", "span {\n flex: 0;\n font-weight: bold;\n display: inline-block;\n white-space: nowrap;\n box-sizing: border-box;\n }"], components: [{ type: LevelBar, selector: "audio-levelbar", inputs: ["streamingMode", "displayLevelInfos"] }, { type: i2__namespace.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i3__namespace.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i4__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "number": i4__namespace.DecimalPipe } });
2361
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: LevelBarDisplay, decorators: [{
2376
2362
  type: i0.Component,
2377
2363
  args: [{
2378
2364
  selector: 'spr-recordingitemdisplay',
@@ -2809,9 +2795,9 @@
2809
2795
  });
2810
2796
  return SimpleTrafficLight;
2811
2797
  }());
2812
- SimpleTrafficLight.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: SimpleTrafficLight, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
2813
- SimpleTrafficLight.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.5", type: SimpleTrafficLight, selector: "app-simpletrafficlight", inputs: { status: "status" }, ngImport: i0__namespace, template: "\n\n <div>\n <div class=\"circle {{lighttop}}\"></div>\n <div class=\"circle {{lightmid}}\"></div>\n <div class=\"circle {{lightbottom}}\"></div>\n </div>\n ", isInline: true, styles: [".circle {\n width: 50px;\n height: 50px;\n border-radius: 50%;\n margin: 5px;\n background: grey;\n }", ".red {\n background: red;\n }\n ", "\n .yellow {\n background: yellow;\n }\n ", "\n .green {\n background: green;\n }\n ", "\n .black {\n background: black;\n }", ":host {\n display: flex;\n flex-direction: column;\n background: black;\n \n padding: 2px;\n height: 170px;\n max-height: 170px;\n flex: 0 0 content;\n }\n "] });
2814
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: SimpleTrafficLight, decorators: [{
2798
+ SimpleTrafficLight.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: SimpleTrafficLight, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
2799
+ SimpleTrafficLight.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.10", type: SimpleTrafficLight, selector: "app-simpletrafficlight", inputs: { status: "status" }, ngImport: i0__namespace, template: "\n\n <div>\n <div class=\"circle {{lighttop}}\"></div>\n <div class=\"circle {{lightmid}}\"></div>\n <div class=\"circle {{lightbottom}}\"></div>\n </div>\n ", isInline: true, styles: [".circle {\n width: 50px;\n height: 50px;\n border-radius: 50%;\n margin: 5px;\n background: grey;\n }", ".red {\n background: red;\n }\n ", "\n .yellow {\n background: yellow;\n }\n ", "\n .green {\n background: green;\n }\n ", "\n .black {\n background: black;\n }", ":host {\n display: flex;\n flex-direction: column;\n background: black;\n \n padding: 2px;\n height: 170px;\n max-height: 170px;\n flex: 0 0 content;\n }\n "] });
2800
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: SimpleTrafficLight, decorators: [{
2815
2801
  type: i0.Component,
2816
2802
  args: [{
2817
2803
  selector: 'app-simpletrafficlight',
@@ -2884,9 +2870,9 @@
2884
2870
  };
2885
2871
  return CanvasLayerComponent;
2886
2872
  }());
2887
- CanvasLayerComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: CanvasLayerComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Directive });
2888
- CanvasLayerComponent.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.5", type: CanvasLayerComponent, ngImport: i0__namespace });
2889
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: CanvasLayerComponent, decorators: [{
2873
+ CanvasLayerComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: CanvasLayerComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Directive });
2874
+ CanvasLayerComponent.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.10", type: CanvasLayerComponent, ngImport: i0__namespace });
2875
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: CanvasLayerComponent, decorators: [{
2890
2876
  type: i0.Directive
2891
2877
  }], ctorParameters: function () { return []; } });
2892
2878
 
@@ -3171,9 +3157,9 @@
3171
3157
  };
3172
3158
  return BasicAudioCanvasLayerComponent;
3173
3159
  }(CanvasLayerComponent));
3174
- BasicAudioCanvasLayerComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: BasicAudioCanvasLayerComponent, deps: null, target: i0__namespace.ɵɵFactoryTarget.Directive });
3175
- BasicAudioCanvasLayerComponent.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.5", type: BasicAudioCanvasLayerComponent, usesInheritance: true, ngImport: i0__namespace });
3176
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: BasicAudioCanvasLayerComponent, decorators: [{
3160
+ BasicAudioCanvasLayerComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: BasicAudioCanvasLayerComponent, deps: null, target: i0__namespace.ɵɵFactoryTarget.Directive });
3161
+ BasicAudioCanvasLayerComponent.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.10", type: BasicAudioCanvasLayerComponent, usesInheritance: true, ngImport: i0__namespace });
3162
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: BasicAudioCanvasLayerComponent, decorators: [{
3177
3163
  type: i0.Directive
3178
3164
  }] });
3179
3165
  var AudioCanvasLayerComponent = /** @class */ (function (_super) {
@@ -3391,9 +3377,9 @@
3391
3377
  };
3392
3378
  return AudioCanvasLayerComponent;
3393
3379
  }(BasicAudioCanvasLayerComponent));
3394
- AudioCanvasLayerComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: AudioCanvasLayerComponent, deps: null, target: i0__namespace.ɵɵFactoryTarget.Directive });
3395
- AudioCanvasLayerComponent.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.5", 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__namespace });
3396
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: AudioCanvasLayerComponent, decorators: [{
3380
+ AudioCanvasLayerComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: AudioCanvasLayerComponent, deps: null, target: i0__namespace.ɵɵFactoryTarget.Directive });
3381
+ AudioCanvasLayerComponent.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.10", 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__namespace });
3382
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: AudioCanvasLayerComponent, decorators: [{
3397
3383
  type: i0.Directive
3398
3384
  }], propDecorators: { bgCanvasRef: [{
3399
3385
  type: i0.ViewChild,
@@ -3726,9 +3712,9 @@
3726
3712
  };
3727
3713
  return AudioSignal;
3728
3714
  }(AudioCanvasLayerComponent));
3729
- AudioSignal.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: AudioSignal, deps: [{ token: i0__namespace.ElementRef }], target: i0__namespace.ɵɵFactoryTarget.Component });
3730
- AudioSignal.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.5", 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__namespace, template: "\n <canvas #bg height=\"10\"></canvas>\n <canvas #audioSignal height=\"10\"></canvas>\n <canvas #cursor height=\"10\" (mousedown)=\"selectionStart($event)\" (mouseover)=\"updateCursorCanvas($event)\" (mousemove)=\"updateCursorCanvas($event)\"\n (mouseleave)=\"updateCursorCanvas($event, false)\"></canvas>\n <canvas #marker height=\"10\"></canvas>", isInline: true, styles: [":host{\n min-height: 0px;\n }", "canvas {\n top: 0;\n left: 0;\n width: 0;\n height: 0;\n min-height: 0px;\n position: absolute;\n }"] });
3731
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: AudioSignal, decorators: [{
3715
+ AudioSignal.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: AudioSignal, deps: [{ token: i0__namespace.ElementRef }], target: i0__namespace.ɵɵFactoryTarget.Component });
3716
+ AudioSignal.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.10", 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__namespace, template: "\n <canvas #bg height=\"10\"></canvas>\n <canvas #audioSignal height=\"10\"></canvas>\n <canvas #cursor height=\"10\" (mousedown)=\"selectionStart($event)\" (mouseover)=\"updateCursorCanvas($event)\" (mousemove)=\"updateCursorCanvas($event)\"\n (mouseleave)=\"updateCursorCanvas($event, false)\"></canvas>\n <canvas #marker height=\"10\"></canvas>", isInline: true, styles: [":host{\n min-height: 0px;\n }", "canvas {\n top: 0;\n left: 0;\n width: 0;\n height: 0;\n min-height: 0px;\n position: absolute;\n }"] });
3717
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: AudioSignal, decorators: [{
3732
3718
  type: i0.Component,
3733
3719
  args: [{
3734
3720
  selector: 'audio-signal',
@@ -4664,9 +4650,9 @@
4664
4650
  };
4665
4651
  return Sonagram;
4666
4652
  }(AudioCanvasLayerComponent));
4667
- Sonagram.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: Sonagram, deps: [{ token: i0__namespace.ElementRef }], target: i0__namespace.ɵɵFactoryTarget.Component });
4668
- Sonagram.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.5", 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__namespace, template: "\n <canvas #sonagram height=\"10\"></canvas>\n <canvas #bg height=\"10\"></canvas>\n <canvas #cursor height=\"10\" (mousedown)=\"selectionStart($event)\" (mouseover)=\"updateCursorCanvas($event)\" (mousemove)=\"updateCursorCanvas($event)\"\n (mouseleave)=\"updateCursorCanvas($event, false)\"></canvas>\n <canvas #marker height=\"10\"></canvas>", isInline: true, styles: [":host{\n min-height: 0px;\n }", "canvas {\n top: 0;\n left: 0;\n width: 0;\n height: 0;\n min-height: 0px;\n position: absolute;\n }"] });
4669
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: Sonagram, decorators: [{
4653
+ Sonagram.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: Sonagram, deps: [{ token: i0__namespace.ElementRef }], target: i0__namespace.ɵɵFactoryTarget.Component });
4654
+ Sonagram.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.10", 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__namespace, template: "\n <canvas #sonagram height=\"10\"></canvas>\n <canvas #bg height=\"10\"></canvas>\n <canvas #cursor height=\"10\" (mousedown)=\"selectionStart($event)\" (mouseover)=\"updateCursorCanvas($event)\" (mousemove)=\"updateCursorCanvas($event)\"\n (mouseleave)=\"updateCursorCanvas($event, false)\"></canvas>\n <canvas #marker height=\"10\"></canvas>", isInline: true, styles: [":host{\n min-height: 0px;\n }", "canvas {\n top: 0;\n left: 0;\n width: 0;\n height: 0;\n min-height: 0px;\n position: absolute;\n }"] });
4655
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: Sonagram, decorators: [{
4670
4656
  type: i0.Component,
4671
4657
  args: [{
4672
4658
  selector: 'audio-sonagram',
@@ -5025,9 +5011,9 @@
5025
5011
  return AudioClipUIContainer;
5026
5012
  }(BasicAudioCanvasLayerComponent));
5027
5013
  AudioClipUIContainer.DIVIDER_PIXEL_SIZE = 10;
5028
- AudioClipUIContainer.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: AudioClipUIContainer, deps: [{ token: i0__namespace.ElementRef }], target: i0__namespace.ɵɵFactoryTarget.Component });
5029
- AudioClipUIContainer.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.5", 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__namespace, template: "\n <div #virtualCanvas>\n <canvas #divider (mousedown)=\"mousedown($event)\" (mouseover)=\"mouseover($event)\"\n (mouseleave)=\"mouseleave($event)\" height=\"10\"></canvas>\n <audio-signal [pointerPosition]=\"pointer\" [selecting]=\"selecting\" [selection]=\"selection\" (pointerPositionEventEmitter)=\"pointerPositionChanged($event)\" (selectingEventEmitter)=\"selectingChanged($event)\" (selectedEventEmitter)=\"selectionChanged($event)\"></audio-signal>\n <audio-sonagram [pointerPosition]=\"pointer\" [selecting]=\"selecting\" [selection]=\"selection\" (pointerPositionEventEmitter)=\"pointerPositionChanged($event)\" (selectingEventEmitter)=\"selectingChanged($event)\" (selectedEventEmitter)=\"selectionChanged($event)\"></audio-sonagram>\n </div>\n ", isInline: true, styles: ["div {\n\n margin: 0;\n padding: 0;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n position: relative; /* TODO container div position must not be 'static' (default) to act as reference for the canvases */\n box-sizing: border-box;\n transform: none;\n }", "canvas{\n top: 0;\n left: 0;\n width: 0;\n height: 0;\n cursor: ns-resize;\n position: absolute;\n zIndex: 1;\n transform: none;\n }", "audio-signal {\n top: 0;\n left: 0;\n position: absolute;\n zIndex: 1;\n transform: none;\n }", "audio-sonagram {\n top: 0;\n left: 0;\n position: absolute;\n zIndex: 1;\n transform: none;\n }"], components: [{ type: AudioSignal, selector: "audio-signal" }, { type: Sonagram, selector: "audio-sonagram" }] });
5030
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: AudioClipUIContainer, decorators: [{
5014
+ AudioClipUIContainer.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: AudioClipUIContainer, deps: [{ token: i0__namespace.ElementRef }], target: i0__namespace.ɵɵFactoryTarget.Component });
5015
+ AudioClipUIContainer.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.10", 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__namespace, template: "\n <div #virtualCanvas>\n <canvas #divider (mousedown)=\"mousedown($event)\" (mouseover)=\"mouseover($event)\"\n (mouseleave)=\"mouseleave($event)\" height=\"10\"></canvas>\n <audio-signal [pointerPosition]=\"pointer\" [selecting]=\"selecting\" [selection]=\"selection\" (pointerPositionEventEmitter)=\"pointerPositionChanged($event)\" (selectingEventEmitter)=\"selectingChanged($event)\" (selectedEventEmitter)=\"selectionChanged($event)\"></audio-signal>\n <audio-sonagram [pointerPosition]=\"pointer\" [selecting]=\"selecting\" [selection]=\"selection\" (pointerPositionEventEmitter)=\"pointerPositionChanged($event)\" (selectingEventEmitter)=\"selectingChanged($event)\" (selectedEventEmitter)=\"selectionChanged($event)\"></audio-sonagram>\n </div>\n ", isInline: true, styles: ["div {\n\n margin: 0;\n padding: 0;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n position: relative; /* TODO container div position must not be 'static' (default) to act as reference for the canvases */\n box-sizing: border-box;\n transform: none;\n }", "canvas{\n top: 0;\n left: 0;\n width: 0;\n height: 0;\n cursor: ns-resize;\n position: absolute;\n zIndex: 1;\n transform: none;\n }", "audio-signal {\n top: 0;\n left: 0;\n position: absolute;\n zIndex: 1;\n transform: none;\n }", "audio-sonagram {\n top: 0;\n left: 0;\n position: absolute;\n zIndex: 1;\n transform: none;\n }"], components: [{ type: AudioSignal, selector: "audio-signal" }, { type: Sonagram, selector: "audio-sonagram" }] });
5016
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: AudioClipUIContainer, decorators: [{
5031
5017
  type: i0.Component,
5032
5018
  args: [{
5033
5019
  selector: 'app-audio',
@@ -5188,9 +5174,9 @@
5188
5174
  });
5189
5175
  return AudioDisplayScrollPane;
5190
5176
  }());
5191
- AudioDisplayScrollPane.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: AudioDisplayScrollPane, deps: [{ token: i0__namespace.ElementRef }], target: i0__namespace.ɵɵFactoryTarget.Component });
5192
- AudioDisplayScrollPane.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.5", 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__namespace, template: "\n\n <app-audio #audioSignalContainer (selectionEventEmitter)=\"selectionChanged($event)\"></app-audio>\n\n ", isInline: true, styles: [":host {\n flex: 2;\n width: 100%;\n background: darkgray;\n box-sizing: border-box;\n height: 100%;\n position: relative;\n overflow-x: scroll;\n overflow-y: auto;\n }", "app-audio {\n\n margin: 0;\n padding: 0;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n\n /*position: absolute;*/\n box-sizing: border-box;\n }"], components: [{ type: AudioClipUIContainer, selector: "app-audio", inputs: ["audioData", "audioClip"], outputs: ["selectionEventEmitter"] }] });
5193
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: AudioDisplayScrollPane, decorators: [{
5177
+ AudioDisplayScrollPane.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: AudioDisplayScrollPane, deps: [{ token: i0__namespace.ElementRef }], target: i0__namespace.ɵɵFactoryTarget.Component });
5178
+ AudioDisplayScrollPane.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.10", 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__namespace, template: "\n\n <app-audio #audioSignalContainer (selectionEventEmitter)=\"selectionChanged($event)\"></app-audio>\n\n ", isInline: true, styles: [":host {\n flex: 2;\n width: 100%;\n background: darkgray;\n box-sizing: border-box;\n height: 100%;\n position: relative;\n overflow-x: scroll;\n overflow-y: auto;\n }", "app-audio {\n\n margin: 0;\n padding: 0;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n\n /*position: absolute;*/\n box-sizing: border-box;\n }"], components: [{ type: AudioClipUIContainer, selector: "app-audio", inputs: ["audioData", "audioClip"], outputs: ["selectionEventEmitter"] }] });
5179
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: AudioDisplayScrollPane, decorators: [{
5194
5180
  type: i0.Component,
5195
5181
  args: [{
5196
5182
  selector: 'audio-display-scroll-pane',
@@ -5254,9 +5240,9 @@
5254
5240
  };
5255
5241
  return AudioDisplayControl;
5256
5242
  }());
5257
- AudioDisplayControl.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: AudioDisplayControl, deps: [{ token: i0__namespace.ChangeDetectorRef }], target: i0__namespace.ɵɵFactoryTarget.Component });
5258
- AudioDisplayControl.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.5", 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: i2$1.MatCheckbox, descendants: true, static: true }], ngImport: i0__namespace, template: "\n <div #controlPanel style=\"display:flex;flex-direction: row;\">\n <fieldset>\n\n <legend>Play</legend>\n\n <button (click)=\"playStartAction?.perform()\" [disabled]=\"playStartAction?.disabled\"\n [style.color]=\"playStartAction?.disabled ? 'grey' : 'green'\" matTooltip=\"Play all\">\n <mat-icon>play_arrow</mat-icon>\n </button>\n <button (click)=\"playSelectionAction?.perform()\" [disabled]=\"playSelectionAction?.disabled\"\n [style.color]=\"playSelectionAction?.disabled ? 'grey' : 'green'\" matTooltip=\"Play selection\">\n <mat-icon>play_circle_outline</mat-icon>\n </button>\n <button (click)=\"playStopAction?.perform()\" [disabled]=\"playStopAction?.disabled\"\n [style.color]=\"playStopAction?.disabled ? 'grey' : 'yellow'\">\n <mat-icon>stop</mat-icon>\n </button>&nbsp;\n <mat-checkbox #autoplaySelectionCheckbox (change)=\"autoPlaySelectionChange($event)\">Autoplay on select\n </mat-checkbox>\n </fieldset>\n <fieldset>\n\n <legend>Zoom</legend>\n <button (click)=\"zoomFitToPanelAction?.perform()\"\n [disabled]=\"zoomFitToPanelAction?.disabled\">{{zoomFitToPanelAction?.name}}</button>\n <button (click)=\"zoomOutAction?.perform()\"\n [disabled]=\"zoomOutAction?.disabled\">{{zoomOutAction?.name}}</button>\n <button (click)=\"zoomInAction?.perform()\"\n [disabled]=\"zoomInAction?.disabled\">{{zoomInAction?.name}}</button>\n <button (click)=\"zoomSelectedAction?.perform()\"\n [disabled]=\"zoomSelectedAction?.disabled\">{{zoomSelectedAction?.name}}</button>\n </fieldset>\n <fieldset>\n <legend>Selection</legend>\n {{audioClip?.selection?.leftFrame}} <span\n *ngIf=\"audioClip?.selection\">to</span> {{audioClip?.selection?.rightFrame}}\n <button (click)=\"clearSelection()\" [disabled]=\"audioClip?.selection==null\"\n [style.color]=\"hasSelection() ? 'red' : 'grey'\" matTooltip=\"Clear selection\">\n <mat-icon>clear</mat-icon>\n </button>\n\n </fieldset>\n </div>", isInline: true, styles: [":host {\n flex: 0;\n\n }"], components: [{ type: i2__namespace.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i2__namespace$1.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "id", "labelPosition", "name", "required", "checked", "disabled", "indeterminate", "aria-describedby", "value"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }], directives: [{ type: i3__namespace.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i4__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
5259
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: AudioDisplayControl, decorators: [{
5243
+ AudioDisplayControl.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: AudioDisplayControl, deps: [{ token: i0__namespace.ChangeDetectorRef }], target: i0__namespace.ɵɵFactoryTarget.Component });
5244
+ AudioDisplayControl.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.10", 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: i2$1.MatCheckbox, descendants: true, static: true }], ngImport: i0__namespace, template: "\n <div #controlPanel style=\"display:flex;flex-direction: row;\">\n <fieldset>\n\n <legend>Play</legend>\n\n <button (click)=\"playStartAction?.perform()\" [disabled]=\"playStartAction?.disabled\"\n [style.color]=\"playStartAction?.disabled ? 'grey' : 'green'\" matTooltip=\"Play all\">\n <mat-icon>play_arrow</mat-icon>\n </button>\n <button (click)=\"playSelectionAction?.perform()\" [disabled]=\"playSelectionAction?.disabled\"\n [style.color]=\"playSelectionAction?.disabled ? 'grey' : 'green'\" matTooltip=\"Play selection\">\n <mat-icon>play_circle_outline</mat-icon>\n </button>\n <button (click)=\"playStopAction?.perform()\" [disabled]=\"playStopAction?.disabled\"\n [style.color]=\"playStopAction?.disabled ? 'grey' : 'yellow'\">\n <mat-icon>stop</mat-icon>\n </button>&nbsp;\n <mat-checkbox #autoplaySelectionCheckbox (change)=\"autoPlaySelectionChange($event)\">Autoplay on select\n </mat-checkbox>\n </fieldset>\n <fieldset>\n\n <legend>Zoom</legend>\n <button (click)=\"zoomFitToPanelAction?.perform()\"\n [disabled]=\"zoomFitToPanelAction?.disabled\">{{zoomFitToPanelAction?.name}}</button>\n <button (click)=\"zoomOutAction?.perform()\"\n [disabled]=\"zoomOutAction?.disabled\">{{zoomOutAction?.name}}</button>\n <button (click)=\"zoomInAction?.perform()\"\n [disabled]=\"zoomInAction?.disabled\">{{zoomInAction?.name}}</button>\n <button (click)=\"zoomSelectedAction?.perform()\"\n [disabled]=\"zoomSelectedAction?.disabled\">{{zoomSelectedAction?.name}}</button>\n </fieldset>\n <fieldset>\n <legend>Selection</legend>\n {{audioClip?.selection?.leftFrame}} <span\n *ngIf=\"audioClip?.selection\">to</span> {{audioClip?.selection?.rightFrame}}\n <button (click)=\"clearSelection()\" [disabled]=\"audioClip?.selection==null\"\n [style.color]=\"hasSelection() ? 'red' : 'grey'\" matTooltip=\"Clear selection\">\n <mat-icon>clear</mat-icon>\n </button>\n\n </fieldset>\n </div>", isInline: true, styles: [":host {\n flex: 0;\n\n }"], components: [{ type: i2__namespace.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i2__namespace$1.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "id", "labelPosition", "name", "required", "checked", "disabled", "indeterminate", "aria-describedby", "value"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }], directives: [{ type: i3__namespace.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i4__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
5245
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: AudioDisplayControl, decorators: [{
5260
5246
  type: i0.Component,
5261
5247
  args: [{
5262
5248
  selector: 'audio-display-control',
@@ -5366,9 +5352,9 @@
5366
5352
  };
5367
5353
  return AudioDisplay;
5368
5354
  }());
5369
- AudioDisplay.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: AudioDisplay, deps: [{ token: i1__namespace$1.ActivatedRoute }, { token: i0__namespace.ChangeDetectorRef }, { token: i0__namespace.ElementRef }], target: i0__namespace.ɵɵFactoryTarget.Component });
5370
- AudioDisplay.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.5", 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__namespace, template: "\n\n <audio-display-scroll-pane #audioDisplayScrollPane></audio-display-scroll-pane>\n\n <audio-display-control [audioClip]=\"audioClip\"\n [playStartAction]=\"playStartAction\"\n [playSelectionAction]=\"playSelectionAction\"\n [playStopAction]=\"playStopAction\"\n [autoPlayOnSelectToggleAction]=\"autoPlayOnSelectToggleAction\"\n [zoomInAction]=\"zoomInAction\"\n [zoomOutAction]=\"zoomOutAction\"\n [zoomSelectedAction]=\"zoomSelectedAction\"\n [zoomFitToPanelAction]=\"zoomFitToPanelAction\"></audio-display-control>\n ", isInline: true, styles: [":host {\n display: flex;\n flex-direction: column;\n position: absolute;\n bottom: 0px;\n height: 100%;\n width: 100%;\n overflow: hidden;\n padding: 20px;\n z-index: 5;\n box-sizing: border-box;\n background-color: rgba(230, 230, 230, 1.0)\n }", "\n legend{\n margin-left: 1em; padding: 0.2em 0.8em;font-size: 0.8em;\n }", "\n fieldset{\n border: 1px darkgray solid\n }\n "], components: [{ type: AudioDisplayScrollPane, selector: "audio-display-scroll-pane", inputs: ["audioClip"], outputs: ["zoomInAction", "zoomOutAction", "zoomSelectedAction", "zoomFitToPanelAction"] }, { type: AudioDisplayControl, selector: "audio-display-control", inputs: ["audioClip", "playStartAction", "playSelectionAction", "playStopAction", "zoomInAction", "zoomOutAction", "zoomFitToPanelAction", "zoomSelectedAction", "autoPlayOnSelectToggleAction"] }] });
5371
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: AudioDisplay, decorators: [{
5355
+ AudioDisplay.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: AudioDisplay, deps: [{ token: i1__namespace$1.ActivatedRoute }, { token: i0__namespace.ChangeDetectorRef }, { token: i0__namespace.ElementRef }], target: i0__namespace.ɵɵFactoryTarget.Component });
5356
+ AudioDisplay.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.10", 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__namespace, template: "\n\n <audio-display-scroll-pane #audioDisplayScrollPane></audio-display-scroll-pane>\n\n <audio-display-control [audioClip]=\"audioClip\"\n [playStartAction]=\"playStartAction\"\n [playSelectionAction]=\"playSelectionAction\"\n [playStopAction]=\"playStopAction\"\n [autoPlayOnSelectToggleAction]=\"autoPlayOnSelectToggleAction\"\n [zoomInAction]=\"zoomInAction\"\n [zoomOutAction]=\"zoomOutAction\"\n [zoomSelectedAction]=\"zoomSelectedAction\"\n [zoomFitToPanelAction]=\"zoomFitToPanelAction\"></audio-display-control>\n ", isInline: true, styles: [":host {\n display: flex;\n flex-direction: column;\n position: absolute;\n bottom: 0px;\n height: 100%;\n width: 100%;\n overflow: hidden;\n padding: 20px;\n z-index: 5;\n box-sizing: border-box;\n background-color: rgba(230, 230, 230, 1.0)\n }", "\n legend{\n margin-left: 1em; padding: 0.2em 0.8em;font-size: 0.8em;\n }", "\n fieldset{\n border: 1px darkgray solid\n }\n "], components: [{ type: AudioDisplayScrollPane, selector: "audio-display-scroll-pane", inputs: ["audioClip"], outputs: ["zoomInAction", "zoomOutAction", "zoomSelectedAction", "zoomFitToPanelAction"] }, { type: AudioDisplayControl, selector: "audio-display-control", inputs: ["audioClip", "playStartAction", "playSelectionAction", "playStopAction", "zoomInAction", "zoomOutAction", "zoomFitToPanelAction", "zoomSelectedAction", "autoPlayOnSelectToggleAction"] }] });
5357
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: AudioDisplay, decorators: [{
5372
5358
  type: i0.Component,
5373
5359
  args: [{
5374
5360
  selector: 'app-audiodisplay',
@@ -5409,9 +5395,9 @@
5409
5395
  });
5410
5396
  return ScrollIntoViewDirective;
5411
5397
  }());
5412
- ScrollIntoViewDirective.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: ScrollIntoViewDirective, deps: [{ token: i0__namespace.ElementRef }], target: i0__namespace.ɵɵFactoryTarget.Directive });
5413
- ScrollIntoViewDirective.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.5", type: ScrollIntoViewDirective, selector: "[scrollIntoViewToBottom]", inputs: { scrollIntoViewToBottom: "scrollIntoViewToBottom" }, ngImport: i0__namespace });
5414
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: ScrollIntoViewDirective, decorators: [{
5398
+ ScrollIntoViewDirective.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: ScrollIntoViewDirective, deps: [{ token: i0__namespace.ElementRef }], target: i0__namespace.ɵɵFactoryTarget.Directive });
5399
+ ScrollIntoViewDirective.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.10", type: ScrollIntoViewDirective, selector: "[scrollIntoViewToBottom]", inputs: { scrollIntoViewToBottom: "scrollIntoViewToBottom" }, ngImport: i0__namespace });
5400
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: ScrollIntoViewDirective, decorators: [{
5415
5401
  type: i0.Directive,
5416
5402
  args: [{
5417
5403
  selector: "[scrollIntoViewToBottom]"
@@ -5458,9 +5444,9 @@
5458
5444
  });
5459
5445
  return Progress;
5460
5446
  }());
5461
- Progress.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: Progress, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
5462
- Progress.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.5", 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__namespace, template: "\n\n <table class=\"mat-typography\">\n <thead>\n <tr>\n <th>#</th><!--<th>Code</th>-->\n <th>Prompt</th>\n <th>Status</th>\n </tr>\n </thead>\n <tbody>\n <ng-container *ngIf=\"items\">\n\n <tr *ngFor=\"let item of items; let itIdx=index;\"\n (click)=\"rowSelect=itIdx\" [class.selRow]=\"itIdx===selectedItemIdx\"\n [scrollIntoViewToBottom]=\"itIdx===selectedItemIdx\">\n <td>{{itIdx}}</td>\n <td class=\"promptDescriptor\">{{item.promptAsString}}</td>\n <td>\n <mat-icon *ngIf=\"item.recs && item.recs.length>0\">done</mat-icon>\n\n </td>\n </tr>\n </ng-container>\n\n </tbody>\n </table>\n ", isInline: true, styles: [":host {\n overflow-x: hidden;\n overflow-y: scroll;\n padding: 10pt;\n /*flex: 0.1 0 300px; \n min-width: 300px; */\n flex: 0.1 0 content;\n background: white;\n /* Workaround for Firefox\n If the progress table gets long (script with many items) FF increases the height of the overflow progressContainer and\n the whole app does not fit into the page anymore. The app overflows and shows a vertical scrollbar for the whole app.\n See http://stackoverflow.com/questions/28636832/firefox-overflow-y-not-working-with-nested-flexbox\n */\n /* min-height:0px; */\n min-height: 1px;\n }", "table {\n min-height: 1px;\n border-collapse: collapse;\n /* Tables do not have a natural min size */\n /*min-width: 300px; */\n \n }\n\n table, th, td {\n border: 1px solid lightgrey;\n padding: 0.5em;\n \n }\n\n ", "\n .selRow {\n background: lightblue;\n }\n ", ".promptDescriptor{\n \n max-width: 200px;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n }"], components: [{ type: i2__namespace.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i4__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: ScrollIntoViewDirective, selector: "[scrollIntoViewToBottom]", inputs: ["scrollIntoViewToBottom"] }] });
5463
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: Progress, decorators: [{
5447
+ Progress.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: Progress, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
5448
+ Progress.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.10", 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__namespace, template: "\n\n <table class=\"mat-typography\">\n <thead>\n <tr>\n <th>#</th><!--<th>Code</th>-->\n <th>Prompt</th>\n <th>Status</th>\n </tr>\n </thead>\n <tbody>\n <ng-container *ngIf=\"items\">\n\n <tr *ngFor=\"let item of items; let itIdx=index;\"\n (click)=\"rowSelect=itIdx\" [class.selRow]=\"itIdx===selectedItemIdx\"\n [scrollIntoViewToBottom]=\"itIdx===selectedItemIdx\">\n <td>{{itIdx}}</td>\n <td class=\"promptDescriptor\">{{item.promptAsString}}</td>\n <td>\n <mat-icon *ngIf=\"item.recs && item.recs.length>0\">done</mat-icon>\n\n </td>\n </tr>\n </ng-container>\n\n </tbody>\n </table>\n ", isInline: true, styles: [":host {\n overflow-x: hidden;\n overflow-y: scroll;\n padding: 10pt;\n /*flex: 0.1 0 300px; \n min-width: 300px; */\n flex: 0.1 0 content;\n background: white;\n /* Workaround for Firefox\n If the progress table gets long (script with many items) FF increases the height of the overflow progressContainer and\n the whole app does not fit into the page anymore. The app overflows and shows a vertical scrollbar for the whole app.\n See http://stackoverflow.com/questions/28636832/firefox-overflow-y-not-working-with-nested-flexbox\n */\n /* min-height:0px; */\n min-height: 1px;\n }", "table {\n min-height: 1px;\n border-collapse: collapse;\n /* Tables do not have a natural min size */\n /*min-width: 300px; */\n \n }\n\n table, th, td {\n border: 1px solid lightgrey;\n padding: 0.5em;\n \n }\n\n ", "\n .selRow {\n background: lightblue;\n }\n ", ".promptDescriptor{\n \n max-width: 200px;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n }"], components: [{ type: i2__namespace.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i4__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: ScrollIntoViewDirective, selector: "[scrollIntoViewToBottom]", inputs: ["scrollIntoViewToBottom"] }] });
5449
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: Progress, decorators: [{
5464
5450
  type: i0.Component,
5465
5451
  args: [{
5466
5452
  selector: 'app-sprprogress',
@@ -5503,9 +5489,9 @@
5503
5489
  };
5504
5490
  return Recinstructions;
5505
5491
  }());
5506
- Recinstructions.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: Recinstructions, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
5507
- Recinstructions.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.5", type: Recinstructions, selector: "spr-recinstructions", inputs: { recinstructions: "recinstructions", selectedItemIdx: "selectedItemIdx", itemCount: "itemCount" }, ngImport: i0__namespace, template: "\n\n {{displayText()}}\n ", isInline: true, styles: [":host {\n\n justify-content: left; /* align horizontal center */\n align-items: flex-start; /* align vertical center */\n background: white;\n text-align: left;\n font-size: 1em;\n flex: 0;\n width: 100%;\n }\n "] });
5508
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: Recinstructions, decorators: [{
5492
+ Recinstructions.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: Recinstructions, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
5493
+ Recinstructions.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.10", type: Recinstructions, selector: "spr-recinstructions", inputs: { recinstructions: "recinstructions", selectedItemIdx: "selectedItemIdx", itemCount: "itemCount" }, ngImport: i0__namespace, template: "\n\n {{displayText()}}\n ", isInline: true, styles: [":host {\n\n justify-content: left; /* align horizontal center */\n align-items: flex-start; /* align vertical center */\n background: white;\n text-align: left;\n font-size: 1em;\n flex: 0;\n width: 100%;\n }\n "] });
5494
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: Recinstructions, decorators: [{
5509
5495
  type: i0.Component,
5510
5496
  args: [{
5511
5497
  selector: 'spr-recinstructions',
@@ -5693,9 +5679,9 @@
5693
5679
  });
5694
5680
  return Prompter;
5695
5681
  }());
5696
- Prompter.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: Prompter, deps: [{ token: i0__namespace.ElementRef }, { token: i0__namespace.Renderer2 }, { token: ProjectService }], target: i0__namespace.ɵɵFactoryTarget.Component });
5697
- Prompter.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.5", type: Prompter, selector: "app-sprprompter", inputs: { projectName: "projectName", prompterHeight: "prompterHeight", promptMediaItems: "promptMediaItems" }, host: { properties: { "class.fill": "this.prompterStyleFill" } }, ngImport: i0__namespace, template: "\n\n <!--<ng-template [ngIf]=\"text\">{{text}}</ng-template>-->\n <!-- <img *ngIf=\"src\" #promptImage [src]=\"srcUrl()\" [height]=\"prompterHeight-20\" /> -->\n ", isInline: true, styles: [":host {\n\n justify-content: center; /* align horizontal center */\n align-items: center; /* align vertical center */\n background: white;\n text-align: center;\n /* font-size: 2em; */\n line-height: 1.2em;\n font-weight: bold;\n /* Use only natural size of the prompt */\n /* The prompter compnent then ets aligned vertically centered */\n flex: 0 1;\n\n }", ":host(.fill) {\n /* Use all space to scale images */\n flex: 3;\n width: 100%;\n height: 100%;\n max-height: 100%;\n max-width: 100%;\n /* A separate flex container might be necessayr to alighn centered */\n vertical-align: middle; /* TODO does not work, image is not vertically centered */\n }"] });
5698
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: Prompter, decorators: [{
5682
+ Prompter.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: Prompter, deps: [{ token: i0__namespace.ElementRef }, { token: i0__namespace.Renderer2 }, { token: ProjectService }], target: i0__namespace.ɵɵFactoryTarget.Component });
5683
+ Prompter.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.10", type: Prompter, selector: "app-sprprompter", inputs: { projectName: "projectName", prompterHeight: "prompterHeight", promptMediaItems: "promptMediaItems" }, host: { properties: { "class.fill": "this.prompterStyleFill" } }, ngImport: i0__namespace, template: "\n\n <!--<ng-template [ngIf]=\"text\">{{text}}</ng-template>-->\n <!-- <img *ngIf=\"src\" #promptImage [src]=\"srcUrl()\" [height]=\"prompterHeight-20\" /> -->\n ", isInline: true, styles: [":host {\n\n justify-content: center; /* align horizontal center */\n align-items: center; /* align vertical center */\n background: white;\n text-align: center;\n /* font-size: 2em; */\n line-height: 1.2em;\n font-weight: bold;\n /* Use only natural size of the prompt */\n /* The prompter compnent then ets aligned vertically centered */\n flex: 0 1;\n\n }", ":host(.fill) {\n /* Use all space to scale images */\n flex: 3;\n width: 100%;\n height: 100%;\n max-height: 100%;\n max-width: 100%;\n /* A separate flex container might be necessayr to alighn centered */\n vertical-align: middle; /* TODO does not work, image is not vertically centered */\n }"] });
5684
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: Prompter, decorators: [{
5699
5685
  type: i0.Component,
5700
5686
  args: [{
5701
5687
  selector: 'app-sprprompter',
@@ -5850,9 +5836,9 @@
5850
5836
  };
5851
5837
  return PromptContainer;
5852
5838
  }());
5853
- PromptContainer.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: PromptContainer, deps: [{ token: i0__namespace.ElementRef }], target: i0__namespace.ɵɵFactoryTarget.Component });
5854
- PromptContainer.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.5", 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__namespace, template: "\n <app-sprprompter #prompter [projectName]=\"projectName\" [promptMediaItems]=\"mediaitems\" [style.font-size]=\"fontSize+'px'\" [style.visibility]=\"prDisplay\" [prompterHeight]=\"prompterHeight\"></app-sprprompter>\n ", isInline: true, styles: [":host {\n\n flex: 3; /* the container consumes all available space */\n padding: 10pt;\n height: 100%;\n max-height: 100%;\n\n justify-content: center; /* align horizontal center*/\n align-items: center; /* align vertical center */\n background: white;\n text-align: center;\n display: flex;\n flex-direction: column;\n min-height: 0px;\n width: 100%;\n }\n "], components: [{ type: Prompter, selector: "app-sprprompter", inputs: ["projectName", "prompterHeight", "promptMediaItems"] }] });
5855
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: PromptContainer, decorators: [{
5839
+ PromptContainer.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: PromptContainer, deps: [{ token: i0__namespace.ElementRef }], target: i0__namespace.ɵɵFactoryTarget.Component });
5840
+ PromptContainer.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.10", 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__namespace, template: "\n <app-sprprompter #prompter [projectName]=\"projectName\" [promptMediaItems]=\"mediaitems\" [style.font-size]=\"fontSize+'px'\" [style.visibility]=\"prDisplay\" [prompterHeight]=\"prompterHeight\"></app-sprprompter>\n ", isInline: true, styles: [":host {\n\n flex: 3; /* the container consumes all available space */\n padding: 10pt;\n height: 100%;\n max-height: 100%;\n\n justify-content: center; /* align horizontal center*/\n align-items: center; /* align vertical center */\n background: white;\n text-align: center;\n display: flex;\n flex-direction: column;\n min-height: 0px;\n width: 100%;\n }\n "], components: [{ type: Prompter, selector: "app-sprprompter", inputs: ["projectName", "prompterHeight", "promptMediaItems"] }] });
5841
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: PromptContainer, decorators: [{
5856
5842
  type: i0.Component,
5857
5843
  args: [{
5858
5844
  selector: 'app-sprpromptcontainer',
@@ -5978,9 +5964,9 @@
5978
5964
  };
5979
5965
  return PromptingContainer;
5980
5966
  }());
5981
- PromptingContainer.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: PromptingContainer, deps: [{ token: i0__namespace.ElementRef }], target: i0__namespace.ɵɵFactoryTarget.Component });
5982
- PromptingContainer.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.5", 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__namespace, template: "\n <spr-recinstructions [selectedItemIdx]=\"selectedItemIdx\" [itemCount]=\"itemCount\"\n [recinstructions]=\"promptItem?.recinstructions?.recinstructions\"></spr-recinstructions>\n <app-sprpromptcontainer [projectName]=\"projectName\"\n [mediaitems]=\"showPrompt?(promptItem?promptItem.mediaitems:null):null\"></app-sprpromptcontainer>\n\n ", isInline: true, styles: [":host {\n position: relative;\n flex: 3; /* the container consumes all available space */\n padding: 10pt;\n justify-content: center; /* align horizontal center*/\n align-items: center; /* align vertical center */\n background: white;\n text-align: center;\n display: flex;\n flex-direction: column;\n min-height: 0px;\n }\n "], components: [{ type: Recinstructions, selector: "spr-recinstructions", inputs: ["recinstructions", "selectedItemIdx", "itemCount"] }, { type: PromptContainer, selector: "app-sprpromptcontainer", inputs: ["projectName", "mediaitems"] }] });
5983
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: PromptingContainer, decorators: [{
5967
+ PromptingContainer.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: PromptingContainer, deps: [{ token: i0__namespace.ElementRef }], target: i0__namespace.ɵɵFactoryTarget.Component });
5968
+ PromptingContainer.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.10", 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__namespace, template: "\n <spr-recinstructions [selectedItemIdx]=\"selectedItemIdx\" [itemCount]=\"itemCount\"\n [recinstructions]=\"promptItem?.recinstructions?.recinstructions\"></spr-recinstructions>\n <app-sprpromptcontainer [projectName]=\"projectName\"\n [mediaitems]=\"showPrompt?(promptItem?promptItem.mediaitems:null):null\"></app-sprpromptcontainer>\n\n ", isInline: true, styles: [":host {\n position: relative;\n flex: 3; /* the container consumes all available space */\n padding: 10pt;\n justify-content: center; /* align horizontal center*/\n align-items: center; /* align vertical center */\n background: white;\n text-align: center;\n display: flex;\n flex-direction: column;\n min-height: 0px;\n }\n "], components: [{ type: Recinstructions, selector: "spr-recinstructions", inputs: ["recinstructions", "selectedItemIdx", "itemCount"] }, { type: PromptContainer, selector: "app-sprpromptcontainer", inputs: ["projectName", "mediaitems"] }] });
5969
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: PromptingContainer, decorators: [{
5984
5970
  type: i0.Component,
5985
5971
  args: [{
5986
5972
  selector: 'app-sprpromptingcontainer',
@@ -6035,9 +6021,9 @@
6035
6021
  };
6036
6022
  return Prompting;
6037
6023
  }());
6038
- Prompting.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: Prompting, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
6039
- Prompting.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.5", 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 }], ngImport: i0__namespace, template: "\n\n <app-simpletrafficlight [status]=\"startStopSignalState\"></app-simpletrafficlight>\n <app-sprpromptingcontainer [projectName]=\"projectName\" [promptItem]=\"promptItem\" [showPrompt]=\"showPrompt\"\n [itemCount]=\"items?.length\" [selectedItemIdx]=\"selectedItemIdx\"\n [transportActions]=\"transportActions\"></app-sprpromptingcontainer>\n <app-sprprogress fxHide.xs [items]=\"items\" [selectedItemIdx]=\"selectedItemIdx\"\n (onRowSelect)=\"itemSelect($event)\"></app-sprprogress>\n <div #asCt [class.active]=\"!audioSignalCollapsed\">\n\n <app-audiodisplay #audioSignalContainer [class.active]=\"!audioSignalCollapsed\"\n [audioClip]=\"displayAudioClip\"\n [playStartAction]=\"playStartAction\"\n [playSelectionAction]=\"playSelectionAction\"\n [autoPlayOnSelectToggleAction]=\"autoPlayOnSelectToggleAction\"\n [playStopAction]=\"playStopAction\"></app-audiodisplay>\n\n\n </div>\n\n\n\n ", isInline: true, styles: [":host {\n position: relative;\n margin: 0;\n padding: 0;\n background: lightgrey;\n width: 100%; /* use all horizontal available space */\n flex: 1; /* ... and fill rest of vertical available space (other components have flex 0) */\n\n /* Workaround for Firefox\n If the progress table gets long (script with many items) FF increases the height of the overflow progressContainer and\n the whole app does not fit into the page anymore. The app overflows and shows a vertical scrollbar for the whole app.\n See http://stackoverflow.com/questions/28636832/firefox-overflow-y-not-working-with-nested-flexbox\n */\n min-height: 0px;\n\n display: flex; /* flex container: left traffic light, right prompter (container) */\n flex-direction: row;\n flex-wrap: nowrap; /* wrap could completely destroy the layout */\n }", "\n app-simpletrafficlight {\n margin: 10px;\n min-height: 0px;\n z-index: 3;\n }\n ", "\n app-sprprogress {\n z-index: 3;\n }\n ", "\n div {\n display: none;\n position: absolute;\n\n\n /* height: 50%; */\n /* width: 100%; */\n\n /* overflow: hidden; */\n\n /* margin: 20px; */\n /* border: 20px; */\n z-index: 5;\n /*background-color: red; */\n }", "\n div.active {\n display: flex;\n position: absolute;\n bottom: 0px;\n /*left: 0px; */\n\n height: 90%;\n width: 100%;\n\n overflow: hidden;\n\n padding: 0px;\n /* margin: 20px; */\n /* border: 20px; */\n z-index: 5;\n box-sizing: border-box;\n background-color: rgba(0, 0, 0, 0)\n\n }"], components: [{ type: SimpleTrafficLight, selector: "app-simpletrafficlight", inputs: ["status"] }, { type: PromptingContainer, selector: "app-sprpromptingcontainer", inputs: ["projectName", "promptItem", "showPrompt", "selectedItemIdx", "itemCount", "transportActions"] }, { type: Progress, selector: "app-sprprogress", inputs: ["items", "selectedItemIdx", "enableDownload"], outputs: ["onRowSelect", "rowSelect", "onShowDoneAction", "clickDone", "onDownloadDoneAction", "clickDownloadDone"] }, { type: AudioDisplay, selector: "app-audiodisplay", inputs: ["playStartAction", "playStopAction", "playSelectionAction", "autoPlayOnSelectToggleAction", "audioData", "audioClip"] }], directives: [{ type: i6__namespace.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"] }] });
6040
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: Prompting, decorators: [{
6024
+ Prompting.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: Prompting, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
6025
+ Prompting.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.10", 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 }], ngImport: i0__namespace, template: "\n\n <app-simpletrafficlight [status]=\"startStopSignalState\"></app-simpletrafficlight>\n <app-sprpromptingcontainer [projectName]=\"projectName\" [promptItem]=\"promptItem\" [showPrompt]=\"showPrompt\"\n [itemCount]=\"items?.length\" [selectedItemIdx]=\"selectedItemIdx\"\n [transportActions]=\"transportActions\"></app-sprpromptingcontainer>\n <app-sprprogress fxHide.xs [items]=\"items\" [selectedItemIdx]=\"selectedItemIdx\"\n (onRowSelect)=\"itemSelect($event)\"></app-sprprogress>\n <div #asCt [class.active]=\"!audioSignalCollapsed\">\n\n <app-audiodisplay #audioSignalContainer [class.active]=\"!audioSignalCollapsed\"\n [audioClip]=\"displayAudioClip\"\n [playStartAction]=\"playStartAction\"\n [playSelectionAction]=\"playSelectionAction\"\n [autoPlayOnSelectToggleAction]=\"autoPlayOnSelectToggleAction\"\n [playStopAction]=\"playStopAction\"></app-audiodisplay>\n\n\n </div>\n\n\n\n ", isInline: true, styles: [":host {\n position: relative;\n margin: 0;\n padding: 0;\n background: lightgrey;\n width: 100%; /* use all horizontal available space */\n flex: 1; /* ... and fill rest of vertical available space (other components have flex 0) */\n\n /* Workaround for Firefox\n If the progress table gets long (script with many items) FF increases the height of the overflow progressContainer and\n the whole app does not fit into the page anymore. The app overflows and shows a vertical scrollbar for the whole app.\n See http://stackoverflow.com/questions/28636832/firefox-overflow-y-not-working-with-nested-flexbox\n */\n min-height: 0px;\n\n display: flex; /* flex container: left traffic light, right prompter (container) */\n flex-direction: row;\n flex-wrap: nowrap; /* wrap could completely destroy the layout */\n }", "\n app-simpletrafficlight {\n margin: 10px;\n min-height: 0px;\n z-index: 3;\n }\n ", "\n app-sprprogress {\n z-index: 3;\n }\n ", "\n div {\n display: none;\n position: absolute;\n\n\n /* height: 50%; */\n /* width: 100%; */\n\n /* overflow: hidden; */\n\n /* margin: 20px; */\n /* border: 20px; */\n z-index: 5;\n /*background-color: red; */\n }", "\n div.active {\n display: flex;\n position: absolute;\n bottom: 0px;\n /*left: 0px; */\n\n height: 90%;\n width: 100%;\n\n overflow: hidden;\n\n padding: 0px;\n /* margin: 20px; */\n /* border: 20px; */\n z-index: 5;\n box-sizing: border-box;\n background-color: rgba(0, 0, 0, 0)\n\n }"], components: [{ type: SimpleTrafficLight, selector: "app-simpletrafficlight", inputs: ["status"] }, { type: PromptingContainer, selector: "app-sprpromptingcontainer", inputs: ["projectName", "promptItem", "showPrompt", "selectedItemIdx", "itemCount", "transportActions"] }, { type: Progress, selector: "app-sprprogress", inputs: ["items", "selectedItemIdx", "enableDownload"], outputs: ["onRowSelect", "rowSelect", "onShowDoneAction", "clickDone", "onDownloadDoneAction", "clickDownloadDone"] }, { type: AudioDisplay, selector: "app-audiodisplay", inputs: ["playStartAction", "playStopAction", "playSelectionAction", "autoPlayOnSelectToggleAction", "audioData", "audioClip"] }], directives: [{ type: i6__namespace.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"] }] });
6026
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: Prompting, decorators: [{
6041
6027
  type: i0.Component,
6042
6028
  args: [{
6043
6029
  selector: 'app-sprprompting',
@@ -6198,9 +6184,9 @@
6198
6184
  }
6199
6185
  return StatusDisplay;
6200
6186
  }());
6201
- StatusDisplay.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: StatusDisplay, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
6202
- StatusDisplay.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.5", type: StatusDisplay, selector: "app-sprstatusdisplay", inputs: { statusAlertType: "statusAlertType", statusMsg: "statusMsg", statusWaiting: "statusWaiting" }, ngImport: i0__namespace, template: "\n <p matTooltip=\"Status\">\n <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>\n {{statusMsg}}\n </p>\n ", isInline: true, styles: [":host {\n flex: 1;\n /* align-self: flex-start; */\n display: inline;\n text-align: left;\n font-size: smaller;\n }", "\n p {\n white-space:nowrap;\n display: inline-block;\n }\n ", "\n mat-progress-spinner {\n color: black;\n display: inline-block;\n }\n ", "\n span {\n color: red;\n }\n "], components: [{ type: i1__namespace$2.MatProgressSpinner, selector: "mat-progress-spinner", inputs: ["color", "mode", "diameter", "strokeWidth", "value"], exportAs: ["matProgressSpinner"] }, { type: i2__namespace.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i3__namespace.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i4__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
6203
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: StatusDisplay, decorators: [{
6187
+ StatusDisplay.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: StatusDisplay, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
6188
+ StatusDisplay.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.10", type: StatusDisplay, selector: "app-sprstatusdisplay", inputs: { statusAlertType: "statusAlertType", statusMsg: "statusMsg", statusWaiting: "statusWaiting" }, ngImport: i0__namespace, template: "\n <p matTooltip=\"Status\">\n <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>\n {{statusMsg}}\n </p>\n ", isInline: true, styles: [":host {\n flex: 1;\n /* align-self: flex-start; */\n display: inline;\n text-align: left;\n font-size: smaller;\n }", "\n p {\n white-space:nowrap;\n display: inline-block;\n }\n ", "\n mat-progress-spinner {\n color: black;\n display: inline-block;\n }\n ", "\n span {\n color: red;\n }\n "], components: [{ type: i1__namespace$2.MatProgressSpinner, selector: "mat-progress-spinner", inputs: ["color", "mode", "diameter", "strokeWidth", "value"], exportAs: ["matProgressSpinner"] }, { type: i2__namespace.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i3__namespace.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i4__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
6189
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: StatusDisplay, decorators: [{
6204
6190
  type: i0.Component,
6205
6191
  args: [{
6206
6192
  selector: 'app-sprstatusdisplay',
@@ -6274,9 +6260,9 @@
6274
6260
  });
6275
6261
  return UploadStatus;
6276
6262
  }());
6277
- UploadStatus.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: UploadStatus, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
6278
- UploadStatus.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.5", type: UploadStatus, selector: "app-uploadstatus", inputs: { value: "value", awaitNewUpload: "awaitNewUpload", status: "status" }, ngImport: i0__namespace, template: "\n <mat-progress-spinner [mode]=\"spinnerMode\" [color]=\"status\" [diameter]=\"30\" [strokeWidth]=\"5\" [value]=\"_value\" [matTooltip]=\"toolTipText\"></mat-progress-spinner>\n ", isInline: true, styles: [":host {\n flex: 1;\n /* align-self: flex-start; */\n /*display: inline; */\n text-align: left;\n }", "mat-progress-spinner{\n display: inline-block;\n }"], components: [{ type: i1__namespace$2.MatProgressSpinner, selector: "mat-progress-spinner", inputs: ["color", "mode", "diameter", "strokeWidth", "value"], exportAs: ["matProgressSpinner"] }], directives: [{ type: i3__namespace.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] });
6279
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: UploadStatus, decorators: [{
6263
+ UploadStatus.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: UploadStatus, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
6264
+ UploadStatus.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.10", type: UploadStatus, selector: "app-uploadstatus", inputs: { value: "value", awaitNewUpload: "awaitNewUpload", status: "status" }, ngImport: i0__namespace, template: "\n <mat-progress-spinner [mode]=\"spinnerMode\" [color]=\"status\" [diameter]=\"30\" [strokeWidth]=\"5\" [value]=\"_value\" [matTooltip]=\"toolTipText\"></mat-progress-spinner>\n ", isInline: true, styles: [":host {\n flex: 1;\n /* align-self: flex-start; */\n /*display: inline; */\n text-align: left;\n }", "mat-progress-spinner{\n display: inline-block;\n }"], components: [{ type: i1__namespace$2.MatProgressSpinner, selector: "mat-progress-spinner", inputs: ["color", "mode", "diameter", "strokeWidth", "value"], exportAs: ["matProgressSpinner"] }], directives: [{ type: i3__namespace.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] });
6265
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: UploadStatus, decorators: [{
6280
6266
  type: i0.Component,
6281
6267
  args: [{
6282
6268
  selector: 'app-uploadstatus',
@@ -6296,9 +6282,9 @@
6296
6282
  }
6297
6283
  return ProgressDisplay;
6298
6284
  }());
6299
- ProgressDisplay.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: ProgressDisplay, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
6300
- ProgressDisplay.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.5", type: ProgressDisplay, selector: "app-sprprogressdisplay", ngImport: i0__namespace, template: "\n <p>{{progressMsg}}</p>\n ", isInline: true, styles: [":host {\n flex: 1;\n /* align-self: flex-start; */\n /*display: inline; */\n width: 100%;\n text-align: left;\n }"] });
6301
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: ProgressDisplay, decorators: [{
6285
+ ProgressDisplay.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: ProgressDisplay, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
6286
+ ProgressDisplay.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.10", type: ProgressDisplay, selector: "app-sprprogressdisplay", ngImport: i0__namespace, template: "\n <p>{{progressMsg}}</p>\n ", isInline: true, styles: [":host {\n flex: 1;\n /* align-self: flex-start; */\n /*display: inline; */\n width: 100%;\n text-align: left;\n }"] });
6287
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: ProgressDisplay, decorators: [{
6302
6288
  type: i0.Component,
6303
6289
  args: [{
6304
6290
  selector: 'app-sprprogressdisplay',
@@ -6320,6 +6306,7 @@
6320
6306
  }());
6321
6307
  var TransportPanel = /** @class */ (function () {
6322
6308
  function TransportPanel() {
6309
+ this.navigationEnabled = true;
6323
6310
  }
6324
6311
  TransportPanel.prototype.startDisabled = function () {
6325
6312
  return !this.actions || this.readonly || this.actions.startAction.disabled;
@@ -6328,19 +6315,19 @@
6328
6315
  return !this.actions || this.actions.stopAction.disabled;
6329
6316
  };
6330
6317
  TransportPanel.prototype.nextDisabled = function () {
6331
- return !this.actions || this.actions.nextAction.disabled;
6318
+ return !this.actions || this.actions.nextAction.disabled || !this.navigationEnabled;
6332
6319
  };
6333
6320
  TransportPanel.prototype.pauseDisabled = function () {
6334
6321
  return !this.actions || this.actions.pauseAction.disabled;
6335
6322
  };
6336
6323
  TransportPanel.prototype.fwdDisabled = function () {
6337
- return !this.actions || this.actions.fwdAction.disabled;
6324
+ return !this.actions || this.actions.fwdAction.disabled || !this.navigationEnabled;
6338
6325
  };
6339
6326
  TransportPanel.prototype.fwdNextDisabled = function () {
6340
- return !this.actions || this.actions.fwdNextAction.disabled;
6327
+ return !this.actions || this.actions.fwdNextAction.disabled || !this.navigationEnabled;
6341
6328
  };
6342
6329
  TransportPanel.prototype.bwdDisabled = function () {
6343
- return !this.actions || this.actions.bwdAction.disabled;
6330
+ return !this.actions || this.actions.bwdAction.disabled || !this.navigationEnabled;
6344
6331
  };
6345
6332
  TransportPanel.prototype.startStopNextName = function () {
6346
6333
  if (!this.nextDisabled()) {
@@ -6390,13 +6377,13 @@
6390
6377
  };
6391
6378
  return TransportPanel;
6392
6379
  }());
6393
- TransportPanel.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: TransportPanel, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
6394
- TransportPanel.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.5", type: TransportPanel, selector: "app-sprtransport", inputs: { readonly: "readonly", actions: "actions" }, ngImport: i0__namespace, template: "\n <button id=\"bwdBtn\" (click)=\"actions.bwdAction.perform()\" [disabled]=\"bwdDisabled()\"\n mat-raised-button>\n <mat-icon>chevron_left</mat-icon>\n </button>\n <button (click)=\"startStopNextPerform()\" [disabled]=\"startDisabled() && stopDisabled() && nextDisabled()\" mat-raised-button>\n <mat-icon [style.color]=\"startStopNextIconColor()\">{{startStopNextIconName()}}</mat-icon><mat-icon *ngIf=\"!nextDisabled()\" [style.color]=\"nextDisabled() ? 'grey' : 'black'\">chevron_right</mat-icon>\n <span fxShow.xs=\"false\">{{startStopNextName()}}</span>\n </button>\n <button (click)=\"actions.pauseAction.perform()\" [disabled]=\"pauseDisabled()\" mat-raised-button>\n <mat-icon>pause</mat-icon>\n <span fxShow.xs=\"false\">Pause</span>\n </button>\n <button id=\"fwdNextBtn\" fxHide.xs (click)=\"actions.fwdNextAction.perform()\" [disabled]=\"fwdNextDisabled()\" mat-raised-button>\n <mat-icon>redo</mat-icon>\n </button>\n <button id=\"fwdBtn\" (click)=\"actions.fwdAction.perform()\" [disabled]=\"fwdDisabled()\" mat-raised-button>\n <mat-icon>chevron_right</mat-icon>\n </button>\n\n ", isInline: true, styles: [":host {\n flex: 20;\n align-self: center;\n width: 100%;\n text-align: center;\n align-content: center;\n margin: 0;\n }", "\n div {\n display: inline;\n flex: 0;\n }"], components: [{ type: i3__namespace$1.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__namespace.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i4__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6__namespace.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"] }] });
6395
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: TransportPanel, decorators: [{
6380
+ TransportPanel.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: TransportPanel, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
6381
+ TransportPanel.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.10", type: TransportPanel, selector: "app-sprtransport", inputs: { readonly: "readonly", actions: "actions", navigationEnabled: "navigationEnabled" }, ngImport: i0__namespace, template: "\n <button id=\"bwdBtn\" *ngIf=\"navigationEnabled\" (click)=\"actions.bwdAction.perform()\" [disabled]=\"bwdDisabled()\"\n mat-raised-button>\n <mat-icon>chevron_left</mat-icon>\n </button>\n <button (click)=\"startStopNextPerform()\" [disabled]=\"startDisabled() && stopDisabled() && nextDisabled()\" mat-raised-button>\n <mat-icon [style.color]=\"startStopNextIconColor()\">{{startStopNextIconName()}}</mat-icon><mat-icon *ngIf=\"!nextDisabled()\" [style.color]=\"nextDisabled() ? 'grey' : 'black'\">chevron_right</mat-icon>\n <span fxShow.xs=\"false\">{{startStopNextName()}}</span>\n </button>\n <button (click)=\"actions.pauseAction.perform()\" [disabled]=\"pauseDisabled()\" mat-raised-button>\n <mat-icon>pause</mat-icon>\n <span fxShow.xs=\"false\">Pause</span>\n </button>\n <button id=\"fwdNextBtn\" *ngIf=\"navigationEnabled\" fxHide.xs (click)=\"actions.fwdNextAction.perform()\" [disabled]=\"fwdNextDisabled()\" mat-raised-button>\n <mat-icon>redo</mat-icon>\n </button>\n <button id=\"fwdBtn\" *ngIf=\"navigationEnabled\" (click)=\"actions.fwdAction.perform()\" [disabled]=\"fwdDisabled()\" mat-raised-button>\n <mat-icon>chevron_right</mat-icon>\n </button>\n\n ", isInline: true, styles: [":host {\n flex: 20;\n align-self: center;\n width: 100%;\n text-align: center;\n align-content: center;\n margin: 0;\n }", "\n div {\n display: inline;\n flex: 0;\n }"], components: [{ type: i3__namespace$1.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__namespace.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i4__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6__namespace.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"] }] });
6382
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: TransportPanel, decorators: [{
6396
6383
  type: i0.Component,
6397
6384
  args: [{
6398
6385
  selector: 'app-sprtransport',
6399
- template: "\n <button id=\"bwdBtn\" (click)=\"actions.bwdAction.perform()\" [disabled]=\"bwdDisabled()\"\n mat-raised-button>\n <mat-icon>chevron_left</mat-icon>\n </button>\n <button (click)=\"startStopNextPerform()\" [disabled]=\"startDisabled() && stopDisabled() && nextDisabled()\" mat-raised-button>\n <mat-icon [style.color]=\"startStopNextIconColor()\">{{startStopNextIconName()}}</mat-icon><mat-icon *ngIf=\"!nextDisabled()\" [style.color]=\"nextDisabled() ? 'grey' : 'black'\">chevron_right</mat-icon>\n <span fxShow.xs=\"false\">{{startStopNextName()}}</span>\n </button>\n <button (click)=\"actions.pauseAction.perform()\" [disabled]=\"pauseDisabled()\" mat-raised-button>\n <mat-icon>pause</mat-icon>\n <span fxShow.xs=\"false\">Pause</span>\n </button>\n <button id=\"fwdNextBtn\" fxHide.xs (click)=\"actions.fwdNextAction.perform()\" [disabled]=\"fwdNextDisabled()\" mat-raised-button>\n <mat-icon>redo</mat-icon>\n </button>\n <button id=\"fwdBtn\" (click)=\"actions.fwdAction.perform()\" [disabled]=\"fwdDisabled()\" mat-raised-button>\n <mat-icon>chevron_right</mat-icon>\n </button>\n\n ",
6386
+ template: "\n <button id=\"bwdBtn\" *ngIf=\"navigationEnabled\" (click)=\"actions.bwdAction.perform()\" [disabled]=\"bwdDisabled()\"\n mat-raised-button>\n <mat-icon>chevron_left</mat-icon>\n </button>\n <button (click)=\"startStopNextPerform()\" [disabled]=\"startDisabled() && stopDisabled() && nextDisabled()\" mat-raised-button>\n <mat-icon [style.color]=\"startStopNextIconColor()\">{{startStopNextIconName()}}</mat-icon><mat-icon *ngIf=\"!nextDisabled()\" [style.color]=\"nextDisabled() ? 'grey' : 'black'\">chevron_right</mat-icon>\n <span fxShow.xs=\"false\">{{startStopNextName()}}</span>\n </button>\n <button (click)=\"actions.pauseAction.perform()\" [disabled]=\"pauseDisabled()\" mat-raised-button>\n <mat-icon>pause</mat-icon>\n <span fxShow.xs=\"false\">Pause</span>\n </button>\n <button id=\"fwdNextBtn\" *ngIf=\"navigationEnabled\" fxHide.xs (click)=\"actions.fwdNextAction.perform()\" [disabled]=\"fwdNextDisabled()\" mat-raised-button>\n <mat-icon>redo</mat-icon>\n </button>\n <button id=\"fwdBtn\" *ngIf=\"navigationEnabled\" (click)=\"actions.fwdAction.perform()\" [disabled]=\"fwdDisabled()\" mat-raised-button>\n <mat-icon>chevron_right</mat-icon>\n </button>\n\n ",
6400
6387
  styles: [":host {\n flex: 20;\n align-self: center;\n width: 100%;\n text-align: center;\n align-content: center;\n margin: 0;\n }", "\n div {\n display: inline;\n flex: 0;\n }"
6401
6388
  ]
6402
6389
  }]
@@ -6404,11 +6391,14 @@
6404
6391
  type: i0.Input
6405
6392
  }], actions: [{
6406
6393
  type: i0.Input
6394
+ }], navigationEnabled: [{
6395
+ type: i0.Input
6407
6396
  }] } });
6408
6397
  var ControlPanel = /** @class */ (function () {
6409
6398
  function ControlPanel(dialog) {
6410
6399
  this.dialog = dialog;
6411
6400
  this.processing = false;
6401
+ this.navigationEnabled = true;
6412
6402
  this._ready = true;
6413
6403
  this.hourGlassIconName = 'hourglass_empty';
6414
6404
  this.readyStateToolTip = '';
@@ -6427,13 +6417,13 @@
6427
6417
  });
6428
6418
  return ControlPanel;
6429
6419
  }());
6430
- ControlPanel.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: ControlPanel, deps: [{ token: i1__namespace$3.MatDialog }], target: i0__namespace.ɵɵFactoryTarget.Component });
6431
- ControlPanel.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.5", 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", ready: "ready" }, viewQueries: [{ propertyName: "statusDisplay", first: true, predicate: StatusDisplay, descendants: true, static: true }, { propertyName: "transportPanel", first: true, predicate: TransportPanel, descendants: true, static: true }], ngImport: i0__namespace, template: "\n <app-sprstatusdisplay fxHide.xs [statusMsg]=\"statusMsg\" [statusAlertType]=\"statusAlertType\" [statusWaiting]=\"statusWaiting\"\n class=\"hidden-xs\"></app-sprstatusdisplay>\n\n <app-sprtransport [readonly]=\"readonly\" [actions]=\"transportActions\"></app-sprtransport>\n\n <app-uploadstatus fxHide.xs *ngIf=\"enableUploadRecordings\" [value]=\"uploadProgress\"\n [status]=\"uploadStatus\" [awaitNewUpload]=\"processing\"></app-uploadstatus>\n <mat-icon fxHide.xs [matTooltip]=\"readyStateToolTip\">{{hourGlassIconName}}</mat-icon>\n ", isInline: true, styles: [":host {\n flex: 0; /* only required vertical space */\n /* width: 100%; */ /* available horizontal sace */\n /* display: inline; */\n display: flex; /* Horizontal flex container: Bottom transport panel, above prompting panel */\n flex-direction: row;\n align-content: center;\n align-items: center;\n margin: 0;\n padding: 20px;\n min-height: min-content; /* important */\n }", "\n div {\n flex: 0;\n }\n "], components: [{ type: StatusDisplay, selector: "app-sprstatusdisplay", inputs: ["statusAlertType", "statusMsg", "statusWaiting"] }, { type: TransportPanel, selector: "app-sprtransport", inputs: ["readonly", "actions"] }, { type: UploadStatus, selector: "app-uploadstatus", inputs: ["value", "awaitNewUpload", "status"] }, { type: i2__namespace.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i6__namespace.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"] }, { type: i4__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3__namespace.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] });
6432
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: ControlPanel, decorators: [{
6420
+ ControlPanel.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: ControlPanel, deps: [{ token: i1__namespace$3.MatDialog }], target: i0__namespace.ɵɵFactoryTarget.Component });
6421
+ ControlPanel.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.10", 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 }], ngImport: i0__namespace, template: "\n <app-sprstatusdisplay fxHide.xs [statusMsg]=\"statusMsg\" [statusAlertType]=\"statusAlertType\" [statusWaiting]=\"statusWaiting\"\n class=\"hidden-xs\"></app-sprstatusdisplay>\n\n <app-sprtransport [readonly]=\"readonly\" [actions]=\"transportActions\" [navigationEnabled]=\"navigationEnabled\"></app-sprtransport>\n\n <app-uploadstatus fxHide.xs *ngIf=\"enableUploadRecordings\" [value]=\"uploadProgress\"\n [status]=\"uploadStatus\" [awaitNewUpload]=\"processing\"></app-uploadstatus>\n <mat-icon fxHide.xs [matTooltip]=\"readyStateToolTip\">{{hourGlassIconName}}</mat-icon>\n ", isInline: true, styles: [":host {\n flex: 0; /* only required vertical space */\n /* width: 100%; */ /* available horizontal sace */\n /* display: inline; */\n display: flex; /* Horizontal flex container: Bottom transport panel, above prompting panel */\n flex-direction: row;\n align-content: center;\n align-items: center;\n margin: 0;\n padding: 20px;\n min-height: min-content; /* important */\n }", "\n div {\n flex: 0;\n }\n "], components: [{ type: StatusDisplay, selector: "app-sprstatusdisplay", inputs: ["statusAlertType", "statusMsg", "statusWaiting"] }, { type: TransportPanel, selector: "app-sprtransport", inputs: ["readonly", "actions", "navigationEnabled"] }, { type: UploadStatus, selector: "app-uploadstatus", inputs: ["value", "awaitNewUpload", "status"] }, { type: i2__namespace.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i6__namespace.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"] }, { type: i4__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3__namespace.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] });
6422
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: ControlPanel, decorators: [{
6433
6423
  type: i0.Component,
6434
6424
  args: [{
6435
6425
  selector: 'app-sprcontrolpanel',
6436
- template: "\n <app-sprstatusdisplay fxHide.xs [statusMsg]=\"statusMsg\" [statusAlertType]=\"statusAlertType\" [statusWaiting]=\"statusWaiting\"\n class=\"hidden-xs\"></app-sprstatusdisplay>\n\n <app-sprtransport [readonly]=\"readonly\" [actions]=\"transportActions\"></app-sprtransport>\n\n <app-uploadstatus fxHide.xs *ngIf=\"enableUploadRecordings\" [value]=\"uploadProgress\"\n [status]=\"uploadStatus\" [awaitNewUpload]=\"processing\"></app-uploadstatus>\n <mat-icon fxHide.xs [matTooltip]=\"readyStateToolTip\">{{hourGlassIconName}}</mat-icon>\n ",
6426
+ template: "\n <app-sprstatusdisplay fxHide.xs [statusMsg]=\"statusMsg\" [statusAlertType]=\"statusAlertType\" [statusWaiting]=\"statusWaiting\"\n class=\"hidden-xs\"></app-sprstatusdisplay>\n\n <app-sprtransport [readonly]=\"readonly\" [actions]=\"transportActions\" [navigationEnabled]=\"navigationEnabled\"></app-sprtransport>\n\n <app-uploadstatus fxHide.xs *ngIf=\"enableUploadRecordings\" [value]=\"uploadProgress\"\n [status]=\"uploadStatus\" [awaitNewUpload]=\"processing\"></app-uploadstatus>\n <mat-icon fxHide.xs [matTooltip]=\"readyStateToolTip\">{{hourGlassIconName}}</mat-icon>\n ",
6437
6427
  styles: [":host {\n flex: 0; /* only required vertical space */\n /* width: 100%; */ /* available horizontal sace */\n /* display: inline; */\n display: flex; /* Horizontal flex container: Bottom transport panel, above prompting panel */\n flex-direction: row;\n align-content: center;\n align-items: center;\n margin: 0;\n padding: 20px;\n min-height: min-content; /* important */\n }", "\n div {\n flex: 0;\n }\n "]
6438
6428
  }]
6439
6429
  }], ctorParameters: function () { return [{ type: i1__namespace$3.MatDialog }]; }, propDecorators: { statusDisplay: [{
@@ -6462,6 +6452,8 @@
6462
6452
  type: i0.Input
6463
6453
  }], enableUploadRecordings: [{
6464
6454
  type: i0.Input
6455
+ }], navigationEnabled: [{
6456
+ type: i0.Input
6465
6457
  }], ready: [{
6466
6458
  type: i0.Input
6467
6459
  }] } });
@@ -6476,9 +6468,9 @@
6476
6468
  };
6477
6469
  return SessionFinishedDialog;
6478
6470
  }());
6479
- SessionFinishedDialog.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: SessionFinishedDialog, deps: [{ token: i1__namespace$3.MatDialogRef }, { token: i1$3.MAT_DIALOG_DATA }], target: i0__namespace.ɵɵFactoryTarget.Component });
6480
- SessionFinishedDialog.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.5", type: SessionFinishedDialog, selector: "spr-session-finished-dialog", ngImport: i0__namespace, template: "<h1 mat-dialog-title><mat-icon [style.color]=\"'green'\">done_all</mat-icon> Session finished</h1>\n <div mat-dialog-content>\n\n <p>Thank you! The recording session is complete.</p>\n\n </div>\n <div mat-dialog-actions>\n <button mat-button (click)=\"closeDialog()\">OK</button>\n </div>\n ", isInline: true, components: [{ type: i2__namespace.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i3__namespace$1.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"] }], directives: [{ type: i1__namespace$3.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i1__namespace$3.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i1__namespace$3.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }] });
6481
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: SessionFinishedDialog, decorators: [{
6471
+ SessionFinishedDialog.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: SessionFinishedDialog, deps: [{ token: i1__namespace$3.MatDialogRef }, { token: i1$3.MAT_DIALOG_DATA }], target: i0__namespace.ɵɵFactoryTarget.Component });
6472
+ SessionFinishedDialog.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.10", type: SessionFinishedDialog, selector: "spr-session-finished-dialog", ngImport: i0__namespace, template: "<h1 mat-dialog-title><mat-icon [style.color]=\"'green'\">done_all</mat-icon> Session finished</h1>\n <div mat-dialog-content>\n\n <p>Thank you! The recording session is complete.</p>\n\n </div>\n <div mat-dialog-actions>\n <button mat-button (click)=\"closeDialog()\">OK</button>\n </div>\n ", isInline: true, components: [{ type: i2__namespace.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i3__namespace$1.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"] }], directives: [{ type: i1__namespace$3.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i1__namespace$3.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i1__namespace$3.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }] });
6473
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: SessionFinishedDialog, decorators: [{
6482
6474
  type: i0.Component,
6483
6475
  args: [{
6484
6476
  selector: 'spr-session-finished-dialog',
@@ -6501,9 +6493,9 @@
6501
6493
  };
6502
6494
  return MessageDialog;
6503
6495
  }());
6504
- MessageDialog.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: MessageDialog, deps: [{ token: i1__namespace$3.MatDialogRef }, { token: i1$3.MAT_DIALOG_DATA }], target: i0__namespace.ɵɵFactoryTarget.Component });
6505
- MessageDialog.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.5", type: MessageDialog, selector: "msg-dialog", ngImport: i0__namespace, template: "<h1 mat-dialog-title><mat-icon *ngIf=\"data.type==='error'\" [style.color]=\"'red'\">error</mat-icon>\n <mat-icon *ngIf=\"data.type==='warning'\" [style.color]=\"'yellow'\">warning</mat-icon>{{data.title}}</h1>\n <div mat-dialog-content>\n\n <p>{{data.msg}}</p>\n <p>{{data.advice}}</p>\n\n </div>\n <div mat-dialog-actions>\n <button mat-button (click)=\"closeDialog()\">OK</button>\n </div>\n ", isInline: true, components: [{ type: i2__namespace.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i3__namespace$1.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"] }], directives: [{ type: i1__namespace$3.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i4__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1__namespace$3.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i1__namespace$3.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }] });
6506
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: MessageDialog, decorators: [{
6496
+ MessageDialog.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: MessageDialog, deps: [{ token: i1__namespace$3.MatDialogRef }, { token: i1$3.MAT_DIALOG_DATA }], target: i0__namespace.ɵɵFactoryTarget.Component });
6497
+ MessageDialog.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.10", type: MessageDialog, selector: "msg-dialog", ngImport: i0__namespace, template: "<h1 mat-dialog-title><mat-icon *ngIf=\"data.type==='error'\" [style.color]=\"'red'\">error</mat-icon>\n <mat-icon *ngIf=\"data.type==='warning'\" [style.color]=\"'yellow'\">warning</mat-icon>{{data.title}}</h1>\n <div mat-dialog-content>\n\n <p>{{data.msg}}</p>\n <p>{{data.advice}}</p>\n\n </div>\n <div mat-dialog-actions>\n <button mat-button (click)=\"closeDialog()\">OK</button>\n </div>\n ", isInline: true, components: [{ type: i2__namespace.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i3__namespace$1.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"] }], directives: [{ type: i1__namespace$3.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i4__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1__namespace$3.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i1__namespace$3.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }] });
6498
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: MessageDialog, decorators: [{
6507
6499
  type: i0.Component,
6508
6500
  args: [{
6509
6501
  selector: 'msg-dialog',
@@ -6701,9 +6693,9 @@
6701
6693
  return RecordingService;
6702
6694
  }());
6703
6695
  RecordingService.REC_API_CTX = 'recfile';
6704
- RecordingService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: RecordingService, deps: [{ token: i1__namespace.HttpClient }, { token: SPEECHRECORDER_CONFIG }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
6705
- RecordingService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: RecordingService });
6706
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: RecordingService, decorators: [{
6696
+ RecordingService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: RecordingService, deps: [{ token: i1__namespace.HttpClient }, { token: SPEECHRECORDER_CONFIG }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
6697
+ RecordingService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: RecordingService });
6698
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: RecordingService, decorators: [{
6707
6699
  type: i0.Injectable
6708
6700
  }], ctorParameters: function () {
6709
6701
  return [{ type: i1__namespace.HttpClient }, { type: SpeechRecorderConfig, decorators: [{
@@ -6722,9 +6714,9 @@
6722
6714
  }
6723
6715
  return SpeechRecorderUploader;
6724
6716
  }(Uploader));
6725
- SpeechRecorderUploader.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: SpeechRecorderUploader, deps: [{ token: i1__namespace.HttpClient }, { token: SPEECHRECORDER_CONFIG }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
6726
- SpeechRecorderUploader.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: SpeechRecorderUploader });
6727
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: SpeechRecorderUploader, decorators: [{
6717
+ SpeechRecorderUploader.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: SpeechRecorderUploader, deps: [{ token: i1__namespace.HttpClient }, { token: SPEECHRECORDER_CONFIG }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
6718
+ SpeechRecorderUploader.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: SpeechRecorderUploader });
6719
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: SpeechRecorderUploader, decorators: [{
6728
6720
  type: i0.Injectable
6729
6721
  }], ctorParameters: function () {
6730
6722
  return [{ type: i1__namespace.HttpClient }, { type: SpeechRecorderConfig, decorators: [{
@@ -6751,9 +6743,9 @@
6751
6743
  });
6752
6744
  return WarningBar;
6753
6745
  }());
6754
- WarningBar.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: WarningBar, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
6755
- WarningBar.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.5", type: WarningBar, selector: "app-warningbar", inputs: { warningText: "warningText", show: "show" }, providers: [SessionService], ngImport: i0__namespace, template: "\n <div [class]=\"displayClass\">{{warningText}}</div>\n\n ", isInline: true, styles: [":host {\n\n flex: 0 0 content;\n background: orange;\n\n }", "\n .off {\n display: none;\n }\n ", "\n .on {\n padding: 2px;\n display: inline-block;\n width: 100%;\n font-weight: bold;\n font-size: larger;\n text-align: center;\n }\n "] });
6756
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: WarningBar, decorators: [{
6746
+ WarningBar.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: WarningBar, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
6747
+ WarningBar.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.10", type: WarningBar, selector: "app-warningbar", inputs: { warningText: "warningText", show: "show" }, providers: [SessionService], ngImport: i0__namespace, template: "\n <div [class]=\"displayClass\">{{warningText}}</div>\n\n ", isInline: true, styles: [":host {\n\n flex: 0 0 content;\n background: orange;\n\n }", "\n .off {\n display: none;\n }\n ", "\n .on {\n padding: 2px;\n display: inline-block;\n width: 100%;\n font-weight: bold;\n font-size: larger;\n text-align: center;\n }\n "] });
6748
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: WarningBar, decorators: [{
6757
6749
  type: i0.Component,
6758
6750
  args: [{
6759
6751
  selector: 'app-warningbar',
@@ -6869,7 +6861,7 @@
6869
6861
  else {
6870
6862
  console.info("No audio context available!");
6871
6863
  }
6872
- if (!navigator.mediaDevices) {
6864
+ if (!context || !navigator.mediaDevices) {
6873
6865
  this.status = 8 /* ERROR */;
6874
6866
  var errMsg = 'Browser does not support Media streams!';
6875
6867
  this.statusMsg = 'ERROR: ' + errMsg;
@@ -7872,14 +7864,14 @@
7872
7864
  };
7873
7865
  return SessionManager;
7874
7866
  }());
7875
- SessionManager.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: SessionManager, deps: [{ token: i0__namespace.ChangeDetectorRef }, { token: i0__namespace.Renderer2 }, { token: i1__namespace$3.MatDialog }, { token: SessionService }, { token: RecordingService }, { token: SpeechRecorderUploader }, { token: SPEECHRECORDER_CONFIG }], target: i0__namespace.ɵɵFactoryTarget.Component });
7876
- SessionManager.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.5", 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: LevelBarDisplay, descendants: true, static: true }], ngImport: i0__namespace, template: "\n <app-warningbar [show]=\"isTestSession()\" warningText=\"Test recording only!\"></app-warningbar>\n <app-warningbar [show]=\"isDefaultAudioTestSession()\" warningText=\"This test uses default audio device! Regular sessions may require a particular audio device (microphone)!\"></app-warningbar>\n <app-sprprompting [projectName]=\"projectName\"\n [startStopSignalState]=\"startStopSignalState\" [promptItem]=\"promptItem\" [showPrompt]=\"showPrompt\"\n [items]=\"items\"\n [transportActions]=\"transportActions\"\n [selectedItemIdx]=\"promptIndex\" (onItemSelect)=\"itemSelect($event)\" (onNextItem)=\"nextItem()\" (onPrevItem)=\"prevItem()\"\n [audioSignalCollapsed]=\"audioSignalCollapsed\" [displayAudioClip]=\"displayAudioClip\"\n [playStartAction]=\"controlAudioPlayer?.startAction\"\n [playSelectionAction]=\"controlAudioPlayer?.startSelectionAction\"\n [autoPlayOnSelectToggleAction]=\"controlAudioPlayer?.autoPlayOnSelectToggleAction\"\n [playStopAction]=\"controlAudioPlayer?.stopAction\">\n\n </app-sprprompting>\n <mat-progress-bar [value]=\"progressPercentValue()\" fxShow=\"false\" fxShow.xs=\"true\" ></mat-progress-bar>\n\n <spr-recordingitemdisplay #levelbardisplay\n [playStartAction]=\"controlAudioPlayer?.startAction\"\n [playStopAction]=\"controlAudioPlayer?.stopAction\"\n [streamingMode]=\"isRecording()\"\n [displayLevelInfos]=\"displayLevelInfos\"\n [displayAudioBuffer]=\"displayAudioClip?.buffer\" [audioSignalCollapsed]=\"audioSignalCollapsed\"\n (onShowRecordingDetails)=\"audioSignalCollapsed=!audioSignalCollapsed\"\n (onDownloadRecording)=\"downloadRecording()\"\n [enableDownload]=\"enableDownloadRecordings\"></spr-recordingitemdisplay>\n <app-sprcontrolpanel [enableUploadRecordings]=\"enableUploadRecordings\" [readonly]=\"readonly\" [currentRecording]=\"displayAudioClip?.buffer\"\n [transportActions]=\"transportActions\" [statusMsg]=\"statusMsg\" [statusWaiting]=\"statusWaiting\"\n [statusAlertType]=\"statusAlertType\" [uploadProgress]=\"uploadProgress\"\n [uploadStatus]=\"uploadStatus\" [ready]=\"dataSaved && !isActive()\" [processing]=\"processingRecording\"></app-sprcontrolpanel>\n\n ", isInline: true, styles: [":host {\n flex: 2;\n background: lightgrey;\n display: flex; /* Vertical flex container: Bottom transport panel, above prompting panel */\n flex-direction: column;\n margin: 0;\n padding: 0;\n min-height: 0px;\n\n /* Prevents horizontal scroll bar on swipe right */\n overflow: hidden;\n }"], components: [{ type: WarningBar, selector: "app-warningbar", inputs: ["warningText", "show"] }, { type: Prompting, selector: "app-sprprompting", inputs: ["projectName", "startStopSignalState", "promptItem", "showPrompt", "items", "selectedItemIdx", "transportActions", "enableDownload", "audioSignalCollapsed", "displayAudioClip", "playStartAction", "playSelectionAction", "autoPlayOnSelectToggleAction", "playStopAction"], outputs: ["onItemSelect", "onNextItem", "onPrevItem"] }, { type: i7__namespace.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "mode", "value", "bufferValue"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { type: LevelBarDisplay, selector: "spr-recordingitemdisplay", inputs: ["streamingMode", "audioSignalCollapsed", "enableDownload", "playStartAction", "playStopAction", "displayAudioBuffer", "displayLevelInfos"], outputs: ["onShowRecordingDetails", "onDownloadRecording"] }, { type: ControlPanel, selector: "app-sprcontrolpanel", inputs: ["readonly", "transportActions", "processing", "statusMsg", "statusAlertType", "statusWaiting", "uploadStatus", "uploadProgress", "currentRecording", "enableUploadRecordings", "ready"] }], directives: [{ type: i6__namespace.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"] }] });
7877
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: SessionManager, decorators: [{
7867
+ SessionManager.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: SessionManager, deps: [{ token: i0__namespace.ChangeDetectorRef }, { token: i0__namespace.Renderer2 }, { token: i1__namespace$3.MatDialog }, { token: SessionService }, { token: RecordingService }, { token: SpeechRecorderUploader }, { token: SPEECHRECORDER_CONFIG }], target: i0__namespace.ɵɵFactoryTarget.Component });
7868
+ SessionManager.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.10", 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: LevelBarDisplay, descendants: true, static: true }], ngImport: i0__namespace, template: "\n <app-warningbar [show]=\"isTestSession()\" warningText=\"Test recording only!\"></app-warningbar>\n <app-warningbar [show]=\"isDefaultAudioTestSession()\" warningText=\"This test uses default audio device! Regular sessions may require a particular audio device (microphone)!\"></app-warningbar>\n <app-sprprompting [projectName]=\"projectName\"\n [startStopSignalState]=\"startStopSignalState\" [promptItem]=\"promptItem\" [showPrompt]=\"showPrompt\"\n [items]=\"items\"\n [transportActions]=\"transportActions\"\n [selectedItemIdx]=\"promptIndex\" (onItemSelect)=\"itemSelect($event)\" (onNextItem)=\"nextItem()\" (onPrevItem)=\"prevItem()\"\n [audioSignalCollapsed]=\"audioSignalCollapsed\" [displayAudioClip]=\"displayAudioClip\"\n [playStartAction]=\"controlAudioPlayer?.startAction\"\n [playSelectionAction]=\"controlAudioPlayer?.startSelectionAction\"\n [autoPlayOnSelectToggleAction]=\"controlAudioPlayer?.autoPlayOnSelectToggleAction\"\n [playStopAction]=\"controlAudioPlayer?.stopAction\">\n\n </app-sprprompting>\n <mat-progress-bar [value]=\"progressPercentValue()\" fxShow=\"false\" fxShow.xs=\"true\" ></mat-progress-bar>\n\n <spr-recordingitemdisplay #levelbardisplay\n [playStartAction]=\"controlAudioPlayer?.startAction\"\n [playStopAction]=\"controlAudioPlayer?.stopAction\"\n [streamingMode]=\"isRecording()\"\n [displayLevelInfos]=\"displayLevelInfos\"\n [displayAudioBuffer]=\"displayAudioClip?.buffer\" [audioSignalCollapsed]=\"audioSignalCollapsed\"\n (onShowRecordingDetails)=\"audioSignalCollapsed=!audioSignalCollapsed\"\n (onDownloadRecording)=\"downloadRecording()\"\n [enableDownload]=\"enableDownloadRecordings\"></spr-recordingitemdisplay>\n <app-sprcontrolpanel [enableUploadRecordings]=\"enableUploadRecordings\" [readonly]=\"readonly\" [currentRecording]=\"displayAudioClip?.buffer\"\n [transportActions]=\"transportActions\" [statusMsg]=\"statusMsg\" [statusWaiting]=\"statusWaiting\"\n [statusAlertType]=\"statusAlertType\" [uploadProgress]=\"uploadProgress\"\n [uploadStatus]=\"uploadStatus\" [ready]=\"dataSaved && !isActive()\" [processing]=\"processingRecording\" [navigationEnabled]=\"items==null || items.length>1\"></app-sprcontrolpanel>\n\n ", isInline: true, styles: [":host {\n flex: 2;\n background: lightgrey;\n display: flex; /* Vertical flex container: Bottom transport panel, above prompting panel */\n flex-direction: column;\n margin: 0;\n padding: 0;\n min-height: 0px;\n\n /* Prevents horizontal scroll bar on swipe right */\n overflow: hidden;\n }"], components: [{ type: WarningBar, selector: "app-warningbar", inputs: ["warningText", "show"] }, { type: Prompting, selector: "app-sprprompting", inputs: ["projectName", "startStopSignalState", "promptItem", "showPrompt", "items", "selectedItemIdx", "transportActions", "enableDownload", "audioSignalCollapsed", "displayAudioClip", "playStartAction", "playSelectionAction", "autoPlayOnSelectToggleAction", "playStopAction"], outputs: ["onItemSelect", "onNextItem", "onPrevItem"] }, { type: i7__namespace.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "mode", "value", "bufferValue"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { type: LevelBarDisplay, selector: "spr-recordingitemdisplay", inputs: ["streamingMode", "audioSignalCollapsed", "enableDownload", "playStartAction", "playStopAction", "displayAudioBuffer", "displayLevelInfos"], outputs: ["onShowRecordingDetails", "onDownloadRecording"] }, { type: ControlPanel, selector: "app-sprcontrolpanel", inputs: ["readonly", "transportActions", "processing", "statusMsg", "statusAlertType", "statusWaiting", "uploadStatus", "uploadProgress", "currentRecording", "enableUploadRecordings", "navigationEnabled", "ready"] }], directives: [{ type: i6__namespace.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"] }] });
7869
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: SessionManager, decorators: [{
7878
7870
  type: i0.Component,
7879
7871
  args: [{
7880
7872
  selector: 'app-sprrecordingsession',
7881
7873
  providers: [SessionService],
7882
- template: "\n <app-warningbar [show]=\"isTestSession()\" warningText=\"Test recording only!\"></app-warningbar>\n <app-warningbar [show]=\"isDefaultAudioTestSession()\" warningText=\"This test uses default audio device! Regular sessions may require a particular audio device (microphone)!\"></app-warningbar>\n <app-sprprompting [projectName]=\"projectName\"\n [startStopSignalState]=\"startStopSignalState\" [promptItem]=\"promptItem\" [showPrompt]=\"showPrompt\"\n [items]=\"items\"\n [transportActions]=\"transportActions\"\n [selectedItemIdx]=\"promptIndex\" (onItemSelect)=\"itemSelect($event)\" (onNextItem)=\"nextItem()\" (onPrevItem)=\"prevItem()\"\n [audioSignalCollapsed]=\"audioSignalCollapsed\" [displayAudioClip]=\"displayAudioClip\"\n [playStartAction]=\"controlAudioPlayer?.startAction\"\n [playSelectionAction]=\"controlAudioPlayer?.startSelectionAction\"\n [autoPlayOnSelectToggleAction]=\"controlAudioPlayer?.autoPlayOnSelectToggleAction\"\n [playStopAction]=\"controlAudioPlayer?.stopAction\">\n\n </app-sprprompting>\n <mat-progress-bar [value]=\"progressPercentValue()\" fxShow=\"false\" fxShow.xs=\"true\" ></mat-progress-bar>\n\n <spr-recordingitemdisplay #levelbardisplay\n [playStartAction]=\"controlAudioPlayer?.startAction\"\n [playStopAction]=\"controlAudioPlayer?.stopAction\"\n [streamingMode]=\"isRecording()\"\n [displayLevelInfos]=\"displayLevelInfos\"\n [displayAudioBuffer]=\"displayAudioClip?.buffer\" [audioSignalCollapsed]=\"audioSignalCollapsed\"\n (onShowRecordingDetails)=\"audioSignalCollapsed=!audioSignalCollapsed\"\n (onDownloadRecording)=\"downloadRecording()\"\n [enableDownload]=\"enableDownloadRecordings\"></spr-recordingitemdisplay>\n <app-sprcontrolpanel [enableUploadRecordings]=\"enableUploadRecordings\" [readonly]=\"readonly\" [currentRecording]=\"displayAudioClip?.buffer\"\n [transportActions]=\"transportActions\" [statusMsg]=\"statusMsg\" [statusWaiting]=\"statusWaiting\"\n [statusAlertType]=\"statusAlertType\" [uploadProgress]=\"uploadProgress\"\n [uploadStatus]=\"uploadStatus\" [ready]=\"dataSaved && !isActive()\" [processing]=\"processingRecording\"></app-sprcontrolpanel>\n\n ",
7874
+ template: "\n <app-warningbar [show]=\"isTestSession()\" warningText=\"Test recording only!\"></app-warningbar>\n <app-warningbar [show]=\"isDefaultAudioTestSession()\" warningText=\"This test uses default audio device! Regular sessions may require a particular audio device (microphone)!\"></app-warningbar>\n <app-sprprompting [projectName]=\"projectName\"\n [startStopSignalState]=\"startStopSignalState\" [promptItem]=\"promptItem\" [showPrompt]=\"showPrompt\"\n [items]=\"items\"\n [transportActions]=\"transportActions\"\n [selectedItemIdx]=\"promptIndex\" (onItemSelect)=\"itemSelect($event)\" (onNextItem)=\"nextItem()\" (onPrevItem)=\"prevItem()\"\n [audioSignalCollapsed]=\"audioSignalCollapsed\" [displayAudioClip]=\"displayAudioClip\"\n [playStartAction]=\"controlAudioPlayer?.startAction\"\n [playSelectionAction]=\"controlAudioPlayer?.startSelectionAction\"\n [autoPlayOnSelectToggleAction]=\"controlAudioPlayer?.autoPlayOnSelectToggleAction\"\n [playStopAction]=\"controlAudioPlayer?.stopAction\">\n\n </app-sprprompting>\n <mat-progress-bar [value]=\"progressPercentValue()\" fxShow=\"false\" fxShow.xs=\"true\" ></mat-progress-bar>\n\n <spr-recordingitemdisplay #levelbardisplay\n [playStartAction]=\"controlAudioPlayer?.startAction\"\n [playStopAction]=\"controlAudioPlayer?.stopAction\"\n [streamingMode]=\"isRecording()\"\n [displayLevelInfos]=\"displayLevelInfos\"\n [displayAudioBuffer]=\"displayAudioClip?.buffer\" [audioSignalCollapsed]=\"audioSignalCollapsed\"\n (onShowRecordingDetails)=\"audioSignalCollapsed=!audioSignalCollapsed\"\n (onDownloadRecording)=\"downloadRecording()\"\n [enableDownload]=\"enableDownloadRecordings\"></spr-recordingitemdisplay>\n <app-sprcontrolpanel [enableUploadRecordings]=\"enableUploadRecordings\" [readonly]=\"readonly\" [currentRecording]=\"displayAudioClip?.buffer\"\n [transportActions]=\"transportActions\" [statusMsg]=\"statusMsg\" [statusWaiting]=\"statusWaiting\"\n [statusAlertType]=\"statusAlertType\" [uploadProgress]=\"uploadProgress\"\n [uploadStatus]=\"uploadStatus\" [ready]=\"dataSaved && !isActive()\" [processing]=\"processingRecording\" [navigationEnabled]=\"items==null || items.length>1\"></app-sprcontrolpanel>\n\n ",
7883
7875
  styles: [":host {\n flex: 2;\n background: lightgrey;\n display: flex; /* Vertical flex container: Bottom transport panel, above prompting panel */\n flex-direction: column;\n margin: 0;\n padding: 0;\n min-height: 0px;\n\n /* Prevents horizontal scroll bar on swipe right */\n overflow: hidden;\n }"]
7884
7876
  }]
7885
7877
  }], ctorParameters: function () {
@@ -7955,9 +7947,9 @@
7955
7947
  };
7956
7948
  return ScriptService;
7957
7949
  }());
7958
- ScriptService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: ScriptService, deps: [{ token: i1__namespace.HttpClient }, { token: SPEECHRECORDER_CONFIG }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
7959
- ScriptService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: ScriptService });
7960
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: ScriptService, decorators: [{
7950
+ ScriptService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: ScriptService, deps: [{ token: i1__namespace.HttpClient }, { token: SPEECHRECORDER_CONFIG }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
7951
+ ScriptService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: ScriptService });
7952
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: ScriptService, decorators: [{
7961
7953
  type: i0.Injectable
7962
7954
  }], ctorParameters: function () {
7963
7955
  return [{ type: i1__namespace.HttpClient }, { type: SpeechRecorderConfig, decorators: [{
@@ -8359,9 +8351,9 @@
8359
8351
  };
8360
8352
  return SpeechrecorderngComponent;
8361
8353
  }());
8362
- SpeechrecorderngComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: SpeechrecorderngComponent, deps: [{ token: i1__namespace$1.ActivatedRoute }, { token: i1__namespace$1.Router }, { token: i0__namespace.ChangeDetectorRef }, { token: SessionService }, { token: ProjectService }, { token: ScriptService }, { token: RecordingService }, { token: SpeechRecorderUploader }], target: i0__namespace.ɵɵFactoryTarget.Component });
8363
- SpeechrecorderngComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.5", type: SpeechrecorderngComponent, selector: "app-speechrecorder", providers: [SessionService], viewQueries: [{ propertyName: "sm", first: true, predicate: SessionManager, descendants: true, static: true }], ngImport: i0__namespace, template: "\n <app-sprrecordingsession [projectName]=\"project?.name\" [dataSaved]=\"dataSaved\"></app-sprrecordingsession>\n ", isInline: true, styles: [":host{\n flex: 2;\n display: flex;\n flex-direction: column;\n min-height:0;\n\n }"], components: [{ type: SessionManager, selector: "app-sprrecordingsession", inputs: ["projectName", "dataSaved"] }] });
8364
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: SpeechrecorderngComponent, decorators: [{
8354
+ SpeechrecorderngComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: SpeechrecorderngComponent, deps: [{ token: i1__namespace$1.ActivatedRoute }, { token: i1__namespace$1.Router }, { token: i0__namespace.ChangeDetectorRef }, { token: SessionService }, { token: ProjectService }, { token: ScriptService }, { token: RecordingService }, { token: SpeechRecorderUploader }], target: i0__namespace.ɵɵFactoryTarget.Component });
8355
+ SpeechrecorderngComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.10", type: SpeechrecorderngComponent, selector: "app-speechrecorder", providers: [SessionService], viewQueries: [{ propertyName: "sm", first: true, predicate: SessionManager, descendants: true, static: true }], ngImport: i0__namespace, template: "\n <app-sprrecordingsession [projectName]=\"project?.name\" [dataSaved]=\"dataSaved\"></app-sprrecordingsession>\n ", isInline: true, styles: [":host{\n flex: 2;\n display: flex;\n flex-direction: column;\n min-height:0;\n\n }"], components: [{ type: SessionManager, selector: "app-sprrecordingsession", inputs: ["projectName", "dataSaved"] }] });
8356
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: SpeechrecorderngComponent, decorators: [{
8365
8357
  type: i0.Component,
8366
8358
  args: [{
8367
8359
  selector: 'app-speechrecorder',
@@ -8379,9 +8371,9 @@
8379
8371
  }
8380
8372
  return ScrollPaneHorizontal;
8381
8373
  }());
8382
- ScrollPaneHorizontal.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: ScrollPaneHorizontal, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
8383
- ScrollPaneHorizontal.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.5", type: ScrollPaneHorizontal, selector: "scroll-pane-horizontal", ngImport: i0__namespace, template: '', isInline: true, styles: [":host {\n width: 100%;\n background: darkgray;\n box-sizing: border-box;\n height: 100%;\n position: relative;\n overflow-x: scroll;\n overflow-y: auto;\n }"] });
8384
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: ScrollPaneHorizontal, decorators: [{
8374
+ ScrollPaneHorizontal.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: ScrollPaneHorizontal, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
8375
+ ScrollPaneHorizontal.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.10", type: ScrollPaneHorizontal, selector: "scroll-pane-horizontal", ngImport: i0__namespace, template: '', isInline: true, styles: [":host {\n width: 100%;\n background: darkgray;\n box-sizing: border-box;\n height: 100%;\n position: relative;\n overflow-x: scroll;\n overflow-y: auto;\n }"] });
8376
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: ScrollPaneHorizontal, decorators: [{
8385
8377
  type: i0.Component,
8386
8378
  args: [{
8387
8379
  selector: 'scroll-pane-horizontal',
@@ -8608,9 +8600,9 @@
8608
8600
  };
8609
8601
  return AudioDisplayPlayer;
8610
8602
  }());
8611
- AudioDisplayPlayer.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: AudioDisplayPlayer, deps: [{ token: i1__namespace$1.ActivatedRoute }, { token: i0__namespace.ChangeDetectorRef }, { token: i0__namespace.ElementRef }], target: i0__namespace.ɵɵFactoryTarget.Component });
8612
- AudioDisplayPlayer.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.5", 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__namespace, template: "\n\n <audio-display-scroll-pane #audioDisplayScrollPane></audio-display-scroll-pane>\n\n <audio-display-control [audioClip]=\"audioClip\"\n [playStartAction]=\"playStartAction\"\n [playSelectionAction]=\"playSelectionAction\"\n [playStopAction]=\"playStopAction\"\n [autoPlayOnSelectToggleAction]=\"ap?.autoPlayOnSelectToggleAction\"\n [zoomInAction]=\"zoomInAction\"\n [zoomOutAction]=\"zoomOutAction\"\n [zoomSelectedAction]=\"zoomSelectedAction\"\n [zoomFitToPanelAction]=\"zoomFitToPanelAction\"></audio-display-control><p>{{status}}\n ", isInline: true, styles: [":host {\n display: flex;\n flex-direction: column;\n position: absolute;\n bottom: 0px;\n height: 100%;\n width: 100%;\n overflow: hidden;\n padding: 20px;\n z-index: 5;\n box-sizing: border-box;\n background-color: rgba(0, 0, 0, 0.75)\n }"], components: [{ type: AudioDisplayScrollPane, selector: "audio-display-scroll-pane", inputs: ["audioClip"], outputs: ["zoomInAction", "zoomOutAction", "zoomSelectedAction", "zoomFitToPanelAction"] }, { type: AudioDisplayControl, selector: "audio-display-control", inputs: ["audioClip", "playStartAction", "playSelectionAction", "playStopAction", "zoomInAction", "zoomOutAction", "zoomFitToPanelAction", "zoomSelectedAction", "autoPlayOnSelectToggleAction"] }] });
8613
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: AudioDisplayPlayer, decorators: [{
8603
+ AudioDisplayPlayer.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: AudioDisplayPlayer, deps: [{ token: i1__namespace$1.ActivatedRoute }, { token: i0__namespace.ChangeDetectorRef }, { token: i0__namespace.ElementRef }], target: i0__namespace.ɵɵFactoryTarget.Component });
8604
+ AudioDisplayPlayer.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.10", 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__namespace, template: "\n\n <audio-display-scroll-pane #audioDisplayScrollPane></audio-display-scroll-pane>\n\n <audio-display-control [audioClip]=\"audioClip\"\n [playStartAction]=\"playStartAction\"\n [playSelectionAction]=\"playSelectionAction\"\n [playStopAction]=\"playStopAction\"\n [autoPlayOnSelectToggleAction]=\"ap?.autoPlayOnSelectToggleAction\"\n [zoomInAction]=\"zoomInAction\"\n [zoomOutAction]=\"zoomOutAction\"\n [zoomSelectedAction]=\"zoomSelectedAction\"\n [zoomFitToPanelAction]=\"zoomFitToPanelAction\"></audio-display-control><p>{{status}}\n ", isInline: true, styles: [":host {\n display: flex;\n flex-direction: column;\n position: absolute;\n bottom: 0px;\n height: 100%;\n width: 100%;\n overflow: hidden;\n padding: 20px;\n z-index: 5;\n box-sizing: border-box;\n background-color: rgba(0, 0, 0, 0.75)\n }"], components: [{ type: AudioDisplayScrollPane, selector: "audio-display-scroll-pane", inputs: ["audioClip"], outputs: ["zoomInAction", "zoomOutAction", "zoomSelectedAction", "zoomFitToPanelAction"] }, { type: AudioDisplayControl, selector: "audio-display-control", inputs: ["audioClip", "playStartAction", "playSelectionAction", "playStopAction", "zoomInAction", "zoomOutAction", "zoomFitToPanelAction", "zoomSelectedAction", "autoPlayOnSelectToggleAction"] }] });
8605
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: AudioDisplayPlayer, decorators: [{
8614
8606
  type: i0.Component,
8615
8607
  args: [{
8616
8608
  selector: 'app-audiodisplayplayer',
@@ -8883,9 +8875,9 @@
8883
8875
  return RecordingFileService;
8884
8876
  }());
8885
8877
  RecordingFileService.RECOFILE_API_CTX = 'recordingfile';
8886
- RecordingFileService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: RecordingFileService, deps: [{ token: i1__namespace.HttpClient }, { token: SPEECHRECORDER_CONFIG }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
8887
- RecordingFileService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: RecordingFileService });
8888
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: RecordingFileService, decorators: [{
8878
+ RecordingFileService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: RecordingFileService, deps: [{ token: i1__namespace.HttpClient }, { token: SPEECHRECORDER_CONFIG }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
8879
+ RecordingFileService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: RecordingFileService });
8880
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: RecordingFileService, decorators: [{
8889
8881
  type: i0.Injectable
8890
8882
  }], ctorParameters: function () {
8891
8883
  return [{ type: i1__namespace.HttpClient }, { type: SpeechRecorderConfig, decorators: [{
@@ -8908,9 +8900,9 @@
8908
8900
  };
8909
8901
  return RecordingFileMetaComponent;
8910
8902
  }());
8911
- RecordingFileMetaComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: RecordingFileMetaComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
8912
- RecordingFileMetaComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.5", type: RecordingFileMetaComponent, selector: "app-recording-file-meta", inputs: { sessionId: "sessionId", recordingFile: "recordingFile" }, ngImport: i0__namespace, template: "\n <mat-card>\n <mat-card-title>Recording file ID: {{recordingFile?.recordingFileId}}</mat-card-title>\n <mat-card-content>\n <table>\n <tr>\n <td>Itemcode:</td>\n <td>{{recordingFile?.recording?.itemcode}}</td>\n </tr>\n <tr *ngIf=\"recordingFile?.date\">\n <td>Date:</td>\n <td>{{recordingFile?.date}}</td>\n </tr>\n <tr>\n <td>Prompt:</td>\n <td>{{recordingAsPlainText()}}</td>\n </tr>\n \n <tr *ngIf=\"sessionId\">\n <td>Session:</td>\n <td>{{sessionId}}</td>\n </tr>\n </table>\n </mat-card-content>\n </mat-card>\n ", isInline: true, components: [{ type: i1__namespace$4.MatCard, selector: "mat-card", exportAs: ["matCard"] }], directives: [{ type: i1__namespace$4.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { type: i1__namespace$4.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { type: i4__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
8913
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: RecordingFileMetaComponent, decorators: [{
8903
+ RecordingFileMetaComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: RecordingFileMetaComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
8904
+ RecordingFileMetaComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.10", type: RecordingFileMetaComponent, selector: "app-recording-file-meta", inputs: { sessionId: "sessionId", recordingFile: "recordingFile" }, ngImport: i0__namespace, template: "\n <mat-card>\n <mat-card-title>Recording file ID: {{recordingFile?.recordingFileId}}</mat-card-title>\n <mat-card-content>\n <table>\n <tr>\n <td>Itemcode:</td>\n <td>{{recordingFile?.recording?.itemcode}}</td>\n </tr>\n <tr *ngIf=\"recordingFile?.date\">\n <td>Date:</td>\n <td>{{recordingFile?.date}}</td>\n </tr>\n <tr>\n <td>Prompt:</td>\n <td>{{recordingAsPlainText()}}</td>\n </tr>\n \n <tr *ngIf=\"sessionId\">\n <td>Session:</td>\n <td>{{sessionId}}</td>\n </tr>\n </table>\n </mat-card-content>\n </mat-card>\n ", isInline: true, components: [{ type: i1__namespace$4.MatCard, selector: "mat-card", exportAs: ["matCard"] }], directives: [{ type: i1__namespace$4.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { type: i1__namespace$4.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { type: i4__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
8905
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: RecordingFileMetaComponent, decorators: [{
8914
8906
  type: i0.Component,
8915
8907
  args: [{
8916
8908
  selector: 'app-recording-file-meta',
@@ -8941,9 +8933,9 @@
8941
8933
  };
8942
8934
  return RecordingFileNaviComponent;
8943
8935
  }());
8944
- RecordingFileNaviComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: RecordingFileNaviComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
8945
- RecordingFileNaviComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.5", 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__namespace, template: "\n <div #controlPanel style=\"display:flex;flex-direction: row;\">\n <div #navi style=\"flex: 0;display:flex;flex-direction: row;flex-wrap: nowrap\">\n <fieldset>\n <legend>Versions</legend>\n <mat-progress-spinner *ngIf=\"naviInfoLoading\" mode=\"indeterminate\" [diameter]=\"15\"></mat-progress-spinner>\n <select *ngIf=\"!naviInfoLoading\" [disabled]=\"versions==null || versions.length==1\" (change)=\"selectVersionChange($event)\">\n <option *ngFor=\"let v of versions; let i = index\" [selected]=\"v===version\" value=\"{{v}}\">{{v}}<span *ngIf=\"i==0\"> (latest)</span></option>\n </select>\n </fieldset>\n <fieldset>\n <legend>Navigate</legend>\n <mat-progress-spinner *ngIf=\"naviInfoLoading\" mode=\"indeterminate\" [diameter]=\"15\"></mat-progress-spinner>\n <div *ngIf=\"!naviInfoLoading\" style=\"flex: 0;display:flex;flex-direction: row;flex-wrap: nowrap\">\n <button (click)=\"firstAction?.perform()\" [disabled]=\"!firstAction || firstAction?.disabled\" matTooltip=\"First recording file\">\n <mat-icon>first_page</mat-icon>\n </button>\n <button (click)=\"prevAction?.perform()\" [disabled]=\"!prevAction || prevAction?.disabled\" matTooltip=\"Previous recording file\">\n <mat-icon>chevron_left</mat-icon>\n </button>\n <button (click)=\"nextAction?.perform()\" [disabled]=\"!nextAction || nextAction?.disabled\" matTooltip=\"Next recording file\">\n <mat-icon>chevron_right</mat-icon>\n </button>\n <button (click)=\"lastAction?.perform()\" [disabled]=\"!lastAction || lastAction?.disabled\" matTooltip=\"Last recording file\">\n <mat-icon>last_page</mat-icon>\n </button>\n </div>\n <p *ngIf=\"items && itemPos!==null && itemPos!==undefined\">Item {{itemPos+1}} of {{items}}</p>\n <p>(List ordered by date)</p>\n </fieldset>\n </div>\n </div>\n ", isInline: true, styles: [":host {\n flex: 0;\n\n }"], components: [{ type: i1__namespace$2.MatProgressSpinner, selector: "mat-progress-spinner", inputs: ["color", "mode", "diameter", "strokeWidth", "value"], exportAs: ["matProgressSpinner"] }, { type: i2__namespace.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i4__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3__namespace.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] });
8946
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: RecordingFileNaviComponent, decorators: [{
8936
+ RecordingFileNaviComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: RecordingFileNaviComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
8937
+ RecordingFileNaviComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.10", 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__namespace, template: "\n <div #controlPanel style=\"display:flex;flex-direction: row;\">\n <div #navi style=\"flex: 0;display:flex;flex-direction: row;flex-wrap: nowrap\">\n <fieldset>\n <legend>Versions</legend>\n <mat-progress-spinner *ngIf=\"naviInfoLoading\" mode=\"indeterminate\" [diameter]=\"15\"></mat-progress-spinner>\n <select *ngIf=\"!naviInfoLoading\" [disabled]=\"versions==null || versions.length==1\" (change)=\"selectVersionChange($event)\">\n <option *ngFor=\"let v of versions; let i = index\" [selected]=\"v===version\" value=\"{{v}}\">{{v}}<span *ngIf=\"i==0\"> (latest)</span></option>\n </select>\n </fieldset>\n <fieldset>\n <legend>Navigate</legend>\n <mat-progress-spinner *ngIf=\"naviInfoLoading\" mode=\"indeterminate\" [diameter]=\"15\"></mat-progress-spinner>\n <div *ngIf=\"!naviInfoLoading\" style=\"flex: 0;display:flex;flex-direction: row;flex-wrap: nowrap\">\n <button (click)=\"firstAction?.perform()\" [disabled]=\"!firstAction || firstAction?.disabled\" matTooltip=\"First recording file\">\n <mat-icon>first_page</mat-icon>\n </button>\n <button (click)=\"prevAction?.perform()\" [disabled]=\"!prevAction || prevAction?.disabled\" matTooltip=\"Previous recording file\">\n <mat-icon>chevron_left</mat-icon>\n </button>\n <button (click)=\"nextAction?.perform()\" [disabled]=\"!nextAction || nextAction?.disabled\" matTooltip=\"Next recording file\">\n <mat-icon>chevron_right</mat-icon>\n </button>\n <button (click)=\"lastAction?.perform()\" [disabled]=\"!lastAction || lastAction?.disabled\" matTooltip=\"Last recording file\">\n <mat-icon>last_page</mat-icon>\n </button>\n </div>\n <p *ngIf=\"items && itemPos!==null && itemPos!==undefined\">Item {{itemPos+1}} of {{items}}</p>\n <p>(List ordered by date)</p>\n </fieldset>\n </div>\n </div>\n ", isInline: true, styles: [":host {\n flex: 0;\n\n }"], components: [{ type: i1__namespace$2.MatProgressSpinner, selector: "mat-progress-spinner", inputs: ["color", "mode", "diameter", "strokeWidth", "value"], exportAs: ["matProgressSpinner"] }, { type: i2__namespace.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i4__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3__namespace.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] });
8938
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: RecordingFileNaviComponent, decorators: [{
8947
8939
  type: i0.Component,
8948
8940
  args: [{
8949
8941
  selector: 'app-recording-file-navi',
@@ -9302,9 +9294,9 @@
9302
9294
  };
9303
9295
  return RecordingFileViewComponent;
9304
9296
  }(AudioDisplayPlayer));
9305
- RecordingFileViewComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: RecordingFileViewComponent, deps: [{ token: RecordingFileService }, { token: RecordingService }, { token: SessionService }, { token: i1__namespace$1.Router }, { token: i1__namespace$1.ActivatedRoute }, { token: i0__namespace.ChangeDetectorRef }, { token: i0__namespace.ElementRef }, { token: i1__namespace$3.MatDialog }], target: i0__namespace.ɵɵFactoryTarget.Component });
9306
- RecordingFileViewComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.5", type: RecordingFileViewComponent, selector: "app-audiodisplayplayer", viewQueries: [{ propertyName: "ac", first: true, predicate: AudioDisplayScrollPane, descendants: true }], usesInheritance: true, ngImport: i0__namespace, template: "\n\n <audio-display-scroll-pane #audioDisplayScrollPane></audio-display-scroll-pane>\n <div class=\"ctrlview\">\n <app-recording-file-meta [sessionId]=\"sessionId\" [recordingFile]=\"recordingFile\"></app-recording-file-meta>\n\n <audio-display-control [audioClip]=\"audioClip\"\n [playStartAction]=\"playStartAction\"\n [playSelectionAction]=\"playSelectionAction\"\n [playStopAction]=\"playStopAction\"\n [autoPlayOnSelectToggleAction]=\"ap?.autoPlayOnSelectToggleAction\"\n [zoomInAction]=\"zoomInAction\"\n [zoomOutAction]=\"zoomOutAction\"\n [zoomSelectedAction]=\"zoomSelectedAction\"\n [zoomFitToPanelAction]=\"zoomFitToPanelAction\"></audio-display-control>\n <app-recording-file-navi [items]=\"availRecFiles?.length\" [itemPos]=\"posInList\" [version]=\"recordingFile?recordingFile.version:null\" [versions]=\"versions\" [firstAction]=\"firstAction\" [prevAction]=\"prevAction\" [nextAction]=\"nextAction\" [lastAction]=\"lastAction\" [selectVersion]=\"toVersionAction\" [naviInfoLoading]=\"naviInfoLoading\"></app-recording-file-navi>\n </div>\n ", isInline: true, styles: [":host {\n flex: 2;\n display: flex;\n flex-direction: column;\n min-height:0;\n overflow: hidden;\n padding: 20px;\n z-index: 5;\n box-sizing: border-box;\n background-color: white;\n }", "\n .ctrlview{\n display: flex;\n flex-direction: row;\n\n }\n ", "\n audio-display-control{\n\n flex: 3;\n }\n "], components: [{ type: AudioDisplayScrollPane, selector: "audio-display-scroll-pane", inputs: ["audioClip"], outputs: ["zoomInAction", "zoomOutAction", "zoomSelectedAction", "zoomFitToPanelAction"] }, { type: RecordingFileMetaComponent, selector: "app-recording-file-meta", inputs: ["sessionId", "recordingFile"] }, { type: AudioDisplayControl, selector: "audio-display-control", inputs: ["audioClip", "playStartAction", "playSelectionAction", "playStopAction", "zoomInAction", "zoomOutAction", "zoomFitToPanelAction", "zoomSelectedAction", "autoPlayOnSelectToggleAction"] }, { type: RecordingFileNaviComponent, selector: "app-recording-file-navi", inputs: ["firstAction", "prevAction", "nextAction", "lastAction", "items", "itemPos", "selectVersion", "versions", "version", "naviInfoLoading"] }] });
9307
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: RecordingFileViewComponent, decorators: [{
9297
+ RecordingFileViewComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: RecordingFileViewComponent, deps: [{ token: RecordingFileService }, { token: RecordingService }, { token: SessionService }, { token: i1__namespace$1.Router }, { token: i1__namespace$1.ActivatedRoute }, { token: i0__namespace.ChangeDetectorRef }, { token: i0__namespace.ElementRef }, { token: i1__namespace$3.MatDialog }], target: i0__namespace.ɵɵFactoryTarget.Component });
9298
+ RecordingFileViewComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.10", type: RecordingFileViewComponent, selector: "app-audiodisplayplayer", viewQueries: [{ propertyName: "ac", first: true, predicate: AudioDisplayScrollPane, descendants: true }], usesInheritance: true, ngImport: i0__namespace, template: "\n\n <audio-display-scroll-pane #audioDisplayScrollPane></audio-display-scroll-pane>\n <div class=\"ctrlview\">\n <app-recording-file-meta [sessionId]=\"sessionId\" [recordingFile]=\"recordingFile\"></app-recording-file-meta>\n\n <audio-display-control [audioClip]=\"audioClip\"\n [playStartAction]=\"playStartAction\"\n [playSelectionAction]=\"playSelectionAction\"\n [playStopAction]=\"playStopAction\"\n [autoPlayOnSelectToggleAction]=\"ap?.autoPlayOnSelectToggleAction\"\n [zoomInAction]=\"zoomInAction\"\n [zoomOutAction]=\"zoomOutAction\"\n [zoomSelectedAction]=\"zoomSelectedAction\"\n [zoomFitToPanelAction]=\"zoomFitToPanelAction\"></audio-display-control>\n <app-recording-file-navi [items]=\"availRecFiles?.length\" [itemPos]=\"posInList\" [version]=\"recordingFile?recordingFile.version:null\" [versions]=\"versions\" [firstAction]=\"firstAction\" [prevAction]=\"prevAction\" [nextAction]=\"nextAction\" [lastAction]=\"lastAction\" [selectVersion]=\"toVersionAction\" [naviInfoLoading]=\"naviInfoLoading\"></app-recording-file-navi>\n </div>\n ", isInline: true, styles: [":host {\n flex: 2;\n display: flex;\n flex-direction: column;\n min-height:0;\n overflow: hidden;\n padding: 20px;\n z-index: 5;\n box-sizing: border-box;\n background-color: white;\n }", "\n .ctrlview{\n display: flex;\n flex-direction: row;\n\n }\n ", "\n audio-display-control{\n\n flex: 3;\n }\n "], components: [{ type: AudioDisplayScrollPane, selector: "audio-display-scroll-pane", inputs: ["audioClip"], outputs: ["zoomInAction", "zoomOutAction", "zoomSelectedAction", "zoomFitToPanelAction"] }, { type: RecordingFileMetaComponent, selector: "app-recording-file-meta", inputs: ["sessionId", "recordingFile"] }, { type: AudioDisplayControl, selector: "audio-display-control", inputs: ["audioClip", "playStartAction", "playSelectionAction", "playStopAction", "zoomInAction", "zoomOutAction", "zoomFitToPanelAction", "zoomSelectedAction", "autoPlayOnSelectToggleAction"] }, { type: RecordingFileNaviComponent, selector: "app-recording-file-navi", inputs: ["firstAction", "prevAction", "nextAction", "lastAction", "items", "itemPos", "selectVersion", "versions", "version", "naviInfoLoading"] }] });
9299
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: RecordingFileViewComponent, decorators: [{
9308
9300
  type: i0.Component,
9309
9301
  args: [{
9310
9302
  selector: 'app-audiodisplayplayer',
@@ -9398,9 +9390,9 @@
9398
9390
  };
9399
9391
  return RecordingFileUI;
9400
9392
  }(RecordingFileViewComponent));
9401
- RecordingFileUI.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: RecordingFileUI, deps: [{ token: RecordingFileService }, { token: RecordingService }, { token: SessionService }, { token: i1__namespace$1.Router }, { token: i1__namespace$1.ActivatedRoute }, { token: i0__namespace.ChangeDetectorRef }, { token: i0__namespace.ElementRef }, { token: i1__namespace$3.MatDialog }, { token: i6__namespace$1.MatSnackBar }], target: i0__namespace.ɵɵFactoryTarget.Component });
9402
- RecordingFileUI.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.5", type: RecordingFileUI, selector: "app-audiodisplayplayer", usesInheritance: true, ngImport: i0__namespace, template: "\n <h1>Recording file editing</h1>\n <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>\n\n <audio-display-scroll-pane #audioDisplayScrollPane></audio-display-scroll-pane>\n <div class=\"ctrlview\">\n <app-recording-file-meta [sessionId]=\"sessionId\" [recordingFile]=\"recordingFile\"></app-recording-file-meta>\n <audio-display-control [audioClip]=\"audioClip\"\n [playStartAction]=\"playStartAction\"\n [playSelectionAction]=\"playSelectionAction\"\n [playStopAction]=\"playStopAction\"\n [autoPlayOnSelectToggleAction]=\"ap?.autoPlayOnSelectToggleAction\"\n [zoomInAction]=\"zoomInAction\"\n [zoomOutAction]=\"zoomOutAction\"\n [zoomSelectedAction]=\"zoomSelectedAction\"\n [zoomFitToPanelAction]=\"zoomFitToPanelAction\"></audio-display-control>\n <app-recording-file-navi [items]=\"availRecFiles?.length\" [itemPos]=\"posInList\" [version]=\"recordingFile?recordingFile.version:null\" [versions]=\"versions\" [firstAction]=\"firstAction\" [prevAction]=\"prevAction\" [nextAction]=\"nextAction\" [lastAction]=\"lastAction\" [selectVersion]=\"toVersionAction\" [naviInfoLoading]=\"naviInfoLoading\"></app-recording-file-navi>\n </div>\n\n <button mat-raised-button color=\"accent\" (click)=\"applySelection()\" [disabled]=\"editSaved\">{{this.applyButtonText()}}</button>\n ", isInline: true, styles: [":host {\n flex: 2;\n display: flex;\n flex-direction: column;\n min-height:0;\n overflow: hidden;\n padding: 20px;\n z-index: 5;\n box-sizing: border-box;\n background-color: white;\n }", "\n .ctrlview{\n display: flex;\n flex-direction: row;\n }\n ", "\n audio-display-control{\n\n flex: 3;\n }\n "], components: [{ type: AudioDisplayScrollPane, selector: "audio-display-scroll-pane", inputs: ["audioClip"], outputs: ["zoomInAction", "zoomOutAction", "zoomSelectedAction", "zoomFitToPanelAction"] }, { type: RecordingFileMetaComponent, selector: "app-recording-file-meta", inputs: ["sessionId", "recordingFile"] }, { type: AudioDisplayControl, selector: "audio-display-control", inputs: ["audioClip", "playStartAction", "playSelectionAction", "playStopAction", "zoomInAction", "zoomOutAction", "zoomFitToPanelAction", "zoomSelectedAction", "autoPlayOnSelectToggleAction"] }, { type: RecordingFileNaviComponent, selector: "app-recording-file-navi", inputs: ["firstAction", "prevAction", "nextAction", "lastAction", "items", "itemPos", "selectVersion", "versions", "version", "naviInfoLoading"] }, { type: i3__namespace$1.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"] }] });
9403
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: RecordingFileUI, decorators: [{
9393
+ RecordingFileUI.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: RecordingFileUI, deps: [{ token: RecordingFileService }, { token: RecordingService }, { token: SessionService }, { token: i1__namespace$1.Router }, { token: i1__namespace$1.ActivatedRoute }, { token: i0__namespace.ChangeDetectorRef }, { token: i0__namespace.ElementRef }, { token: i1__namespace$3.MatDialog }, { token: i6__namespace$1.MatSnackBar }], target: i0__namespace.ɵɵFactoryTarget.Component });
9394
+ RecordingFileUI.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.10", type: RecordingFileUI, selector: "app-audiodisplayplayer", usesInheritance: true, ngImport: i0__namespace, template: "\n <h1>Recording file editing</h1>\n <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>\n\n <audio-display-scroll-pane #audioDisplayScrollPane></audio-display-scroll-pane>\n <div class=\"ctrlview\">\n <app-recording-file-meta [sessionId]=\"sessionId\" [recordingFile]=\"recordingFile\"></app-recording-file-meta>\n <audio-display-control [audioClip]=\"audioClip\"\n [playStartAction]=\"playStartAction\"\n [playSelectionAction]=\"playSelectionAction\"\n [playStopAction]=\"playStopAction\"\n [autoPlayOnSelectToggleAction]=\"ap?.autoPlayOnSelectToggleAction\"\n [zoomInAction]=\"zoomInAction\"\n [zoomOutAction]=\"zoomOutAction\"\n [zoomSelectedAction]=\"zoomSelectedAction\"\n [zoomFitToPanelAction]=\"zoomFitToPanelAction\"></audio-display-control>\n <app-recording-file-navi [items]=\"availRecFiles?.length\" [itemPos]=\"posInList\" [version]=\"recordingFile?recordingFile.version:null\" [versions]=\"versions\" [firstAction]=\"firstAction\" [prevAction]=\"prevAction\" [nextAction]=\"nextAction\" [lastAction]=\"lastAction\" [selectVersion]=\"toVersionAction\" [naviInfoLoading]=\"naviInfoLoading\"></app-recording-file-navi>\n </div>\n\n <button mat-raised-button color=\"accent\" (click)=\"applySelection()\" [disabled]=\"editSaved\">{{this.applyButtonText()}}</button>\n ", isInline: true, styles: [":host {\n flex: 2;\n display: flex;\n flex-direction: column;\n min-height:0;\n overflow: hidden;\n padding: 20px;\n z-index: 5;\n box-sizing: border-box;\n background-color: white;\n }", "\n .ctrlview{\n display: flex;\n flex-direction: row;\n }\n ", "\n audio-display-control{\n\n flex: 3;\n }\n "], components: [{ type: AudioDisplayScrollPane, selector: "audio-display-scroll-pane", inputs: ["audioClip"], outputs: ["zoomInAction", "zoomOutAction", "zoomSelectedAction", "zoomFitToPanelAction"] }, { type: RecordingFileMetaComponent, selector: "app-recording-file-meta", inputs: ["sessionId", "recordingFile"] }, { type: AudioDisplayControl, selector: "audio-display-control", inputs: ["audioClip", "playStartAction", "playSelectionAction", "playStopAction", "zoomInAction", "zoomOutAction", "zoomFitToPanelAction", "zoomSelectedAction", "autoPlayOnSelectToggleAction"] }, { type: RecordingFileNaviComponent, selector: "app-recording-file-navi", inputs: ["firstAction", "prevAction", "nextAction", "lastAction", "items", "itemPos", "selectVersion", "versions", "version", "naviInfoLoading"] }, { type: i3__namespace$1.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"] }] });
9395
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: RecordingFileUI, decorators: [{
9404
9396
  type: i0.Component,
9405
9397
  args: [{
9406
9398
  selector: 'app-audiodisplayplayer',
@@ -9441,11 +9433,11 @@
9441
9433
  };
9442
9434
  return SpeechrecorderngModule;
9443
9435
  }());
9444
- SpeechrecorderngModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: SpeechrecorderngModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
9445
- SpeechrecorderngModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: SpeechrecorderngModule, declarations: [AudioSignal, Sonagram, ScrollPaneHorizontal, AudioClipUIContainer, AudioDisplayScrollPane, AudioDisplay, AudioDisplayPlayer, AudioDisplayControl, LevelBar, Progress, SimpleTrafficLight, Recinstructions, Prompter, PromptContainer, PromptingContainer, Prompting, StatusDisplay,
9436
+ SpeechrecorderngModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: SpeechrecorderngModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
9437
+ SpeechrecorderngModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: SpeechrecorderngModule, declarations: [AudioSignal, Sonagram, ScrollPaneHorizontal, AudioClipUIContainer, AudioDisplayScrollPane, AudioDisplay, AudioDisplayPlayer, AudioDisplayControl, LevelBar, Progress, SimpleTrafficLight, Recinstructions, Prompter, PromptContainer, PromptingContainer, Prompting, StatusDisplay,
9446
9438
  ProgressDisplay, LevelBarDisplay, UploadStatus, TransportPanel, ControlPanel, WarningBar, SessionManager, MessageDialog, SessionFinishedDialog, SpeechrecorderngComponent, RecordingFileViewComponent, RecordingFileUI, ScrollIntoViewDirective, RecordingFileNaviComponent, RecordingFileMetaComponent], imports: [i1__namespace$1.RouterModule, flexLayout.FlexLayoutModule, i4.CommonModule, i2.MatIconModule, i3$1.MatButtonModule, i1$3.MatDialogModule, i7.MatProgressBarModule, i1$2.MatProgressSpinnerModule, i3.MatTooltipModule, i1.HttpClientModule, i2$1.MatCheckboxModule, i1$4.MatCardModule, divider.MatDividerModule, gridList.MatGridListModule, table.MatTableModule, input.MatInputModule, select.MatSelectModule, i6$1.MatSnackBarModule], exports: [MessageDialog, SpeechrecorderngComponent, ScrollPaneHorizontal, AudioClipUIContainer, AudioDisplayScrollPane, AudioDisplay, AudioDisplayPlayer, AudioDisplayControl, LevelBar] });
9447
- SpeechrecorderngModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: SpeechrecorderngModule, providers: [SessionService, ProjectService, ScriptService, RecordingService, RecordingFileService, SpeechRecorderUploader], imports: [[i1$1.RouterModule.forChild(SPR_ROUTES), flexLayout.FlexLayoutModule, i4.CommonModule, i2.MatIconModule, i3$1.MatButtonModule, i1$3.MatDialogModule, i7.MatProgressBarModule, i1$2.MatProgressSpinnerModule, i3.MatTooltipModule, i1.HttpClientModule, i2$1.MatCheckboxModule, i1$4.MatCardModule, divider.MatDividerModule, gridList.MatGridListModule, table.MatTableModule, input.MatInputModule, select.MatSelectModule, i6$1.MatSnackBarModule]] });
9448
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0__namespace, type: SpeechrecorderngModule, decorators: [{
9439
+ SpeechrecorderngModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: SpeechrecorderngModule, providers: [SessionService, ProjectService, ScriptService, RecordingService, RecordingFileService, SpeechRecorderUploader], imports: [[i1$1.RouterModule.forChild(SPR_ROUTES), flexLayout.FlexLayoutModule, i4.CommonModule, i2.MatIconModule, i3$1.MatButtonModule, i1$3.MatDialogModule, i7.MatProgressBarModule, i1$2.MatProgressSpinnerModule, i3.MatTooltipModule, i1.HttpClientModule, i2$1.MatCheckboxModule, i1$4.MatCardModule, divider.MatDividerModule, gridList.MatGridListModule, table.MatTableModule, input.MatInputModule, select.MatSelectModule, i6$1.MatSnackBarModule]] });
9440
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.10", ngImport: i0__namespace, type: SpeechrecorderngModule, decorators: [{
9449
9441
  type: i0.NgModule,
9450
9442
  args: [{
9451
9443
  declarations: [AudioSignal, Sonagram, ScrollPaneHorizontal, AudioClipUIContainer, AudioDisplayScrollPane, AudioDisplay, AudioDisplayPlayer, AudioDisplayControl, LevelBar, Progress, SimpleTrafficLight, Recinstructions, Prompter, PromptContainer, PromptingContainer, Prompting, StatusDisplay,
@@ -9459,7 +9451,7 @@
9459
9451
  }]
9460
9452
  }] });
9461
9453
 
9462
- var VERSION = '2.18.9';
9454
+ var VERSION = '2.18.13';
9463
9455
 
9464
9456
  /*
9465
9457
  * Public API Surface of speechrecorderng