speechrecorderng 2.21.4 → 2.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/{esm2015/lib/action/action.js → esm2020/lib/action/action.mjs} +0 -0
  2. package/{esm2015/lib/audio/audio_display.js → esm2020/lib/audio/audio_display.mjs} +5 -5
  3. package/esm2020/lib/audio/audio_player.mjs +276 -0
  4. package/esm2020/lib/audio/capture/capture.mjs +547 -0
  5. package/{esm2015/lib/audio/context.js → esm2020/lib/audio/context.mjs} +0 -0
  6. package/esm2020/lib/audio/dsp/level_measure.mjs +351 -0
  7. package/{esm2015/lib/audio/format.js → esm2020/lib/audio/format.mjs} +0 -0
  8. package/{esm2015/lib/audio/impl/wavformat.js → esm2020/lib/audio/impl/wavformat.mjs} +0 -0
  9. package/{esm2015/lib/audio/impl/wavwriter.js → esm2020/lib/audio/impl/wavwriter.mjs} +0 -0
  10. package/{esm2015/lib/audio/io/stream.js → esm2020/lib/audio/io/stream.mjs} +0 -0
  11. package/{esm2015/lib/audio/persistor.js → esm2020/lib/audio/persistor.mjs} +0 -0
  12. package/{esm2015/lib/audio/playback/player.js → esm2020/lib/audio/playback/player.mjs} +0 -0
  13. package/esm2020/lib/audio/ui/audio_canvas_layer_comp.mjs +376 -0
  14. package/{esm2015/lib/audio/ui/audio_display_control.js → esm2020/lib/audio/ui/audio_display_control.mjs} +5 -5
  15. package/{esm2015/lib/audio/ui/audio_display_scroll_pane.js → esm2020/lib/audio/ui/audio_display_scroll_pane.mjs} +5 -5
  16. package/{esm2015/lib/audio/ui/audiosignal.js → esm2020/lib/audio/ui/audiosignal.mjs} +5 -5
  17. package/{esm2015/lib/audio/ui/common.js → esm2020/lib/audio/ui/common.mjs} +0 -0
  18. package/esm2020/lib/audio/ui/container.mjs +431 -0
  19. package/{esm2015/lib/audio/ui/livelevel.js → esm2020/lib/audio/ui/livelevel.mjs} +5 -5
  20. package/{esm2015/lib/audio/ui/scroll_pane_horizontal.js → esm2020/lib/audio/ui/scroll_pane_horizontal.mjs} +4 -4
  21. package/{esm2015/lib/audio/ui/sonagram.js → esm2020/lib/audio/ui/sonagram.mjs} +5 -5
  22. package/{esm2015/lib/dsp/utils.js → esm2020/lib/dsp/utils.mjs} +0 -0
  23. package/{esm2015/lib/io/BinaryWriter.js → esm2020/lib/io/BinaryWriter.mjs} +0 -0
  24. package/{esm2015/lib/io/stream.js → esm2020/lib/io/stream.mjs} +0 -0
  25. package/{esm2015/lib/math/2d/geometry.js → esm2020/lib/math/2d/geometry.mjs} +0 -0
  26. package/{esm2015/lib/math/complex.js → esm2020/lib/math/complex.mjs} +0 -0
  27. package/{esm2015/lib/math/dft.js → esm2020/lib/math/dft.mjs} +0 -0
  28. package/{esm2015/lib/math/utils.js → esm2020/lib/math/utils.mjs} +0 -0
  29. package/esm2020/lib/media/utils.mjs +14 -0
  30. package/esm2020/lib/net/uploader.mjs +246 -0
  31. package/{esm2015/lib/speechrecorder/project/project.js → esm2020/lib/speechrecorder/project/project.mjs} +0 -0
  32. package/{esm2015/lib/speechrecorder/project/project.service.js → esm2020/lib/speechrecorder/project/project.service.mjs} +4 -4
  33. package/esm2020/lib/speechrecorder/recording.mjs +54 -0
  34. package/esm2020/lib/speechrecorder/recordings/recordings.service.mjs +246 -0
  35. package/{esm2015/lib/speechrecorder/script/script.js → esm2020/lib/speechrecorder/script/script.mjs} +2 -2
  36. package/{esm2015/lib/speechrecorder/script/script.service.js → esm2020/lib/speechrecorder/script/script.service.mjs} +4 -4
  37. package/esm2020/lib/speechrecorder/session/audiorecorder.mjs +1144 -0
  38. package/esm2020/lib/speechrecorder/session/controlpanel.mjs +449 -0
  39. package/{esm2015/lib/speechrecorder/session/item.js → esm2020/lib/speechrecorder/session/item.mjs} +1 -1
  40. package/{esm2015/lib/speechrecorder/session/progress.js → esm2020/lib/speechrecorder/session/progress.mjs} +5 -5
  41. package/{esm2015/lib/speechrecorder/session/prompting.js → esm2020/lib/speechrecorder/session/prompting.mjs} +21 -21
  42. package/esm2020/lib/speechrecorder/session/recorder_combi_pane.mjs +75 -0
  43. package/esm2020/lib/speechrecorder/session/recording_list.mjs +109 -0
  44. package/esm2020/lib/speechrecorder/session/recordingfile/recording-file-meta.component.mjs +126 -0
  45. package/{esm2015/lib/speechrecorder/session/recordingfile/recording-file-navi.component.js → esm2020/lib/speechrecorder/session/recordingfile/recording-file-navi.component.mjs} +5 -5
  46. package/esm2020/lib/speechrecorder/session/recordingfile/recording-file-u-i.component.mjs +168 -0
  47. package/esm2020/lib/speechrecorder/session/recordingfile/recording-file-view.component.mjs +415 -0
  48. package/{esm2015/lib/speechrecorder/session/recordingfile/recording-file.js → esm2020/lib/speechrecorder/session/recordingfile/recording-file.mjs} +1 -1
  49. package/esm2020/lib/speechrecorder/session/recordingfile/recordingfile-service.mjs +251 -0
  50. package/{esm2015/lib/speechrecorder/session/session.js → esm2020/lib/speechrecorder/session/session.mjs} +0 -0
  51. package/{esm2015/lib/speechrecorder/session/session.service.js → esm2020/lib/speechrecorder/session/session.service.mjs} +4 -4
  52. package/{esm2015/lib/speechrecorder/session/session_finished_dialog.js → esm2020/lib/speechrecorder/session/session_finished_dialog.mjs} +4 -4
  53. package/esm2020/lib/speechrecorder/session/sessionmanager.mjs +1274 -0
  54. package/{esm2015/lib/speechrecorder/session/warning_bar.js → esm2020/lib/speechrecorder/session/warning_bar.mjs} +5 -5
  55. package/{esm2015/lib/speechrecorder/spruploader.js → esm2020/lib/speechrecorder/spruploader.mjs} +4 -4
  56. package/{esm2015/lib/speechrecorder/startstopsignal/startstopsignal.js → esm2020/lib/speechrecorder/startstopsignal/startstopsignal.mjs} +0 -0
  57. package/{esm2015/lib/speechrecorder/startstopsignal/ui/simpletrafficlight.js → esm2020/lib/speechrecorder/startstopsignal/ui/simpletrafficlight.mjs} +5 -5
  58. package/esm2020/lib/speechrecorderng.component.mjs +427 -0
  59. package/{esm2015/lib/speechrecorderng.module.js → esm2020/lib/speechrecorderng.module.mjs} +12 -11
  60. package/{esm2015/lib/spr.config.js → esm2020/lib/spr.config.mjs} +4 -4
  61. package/{esm2015/lib/spr.module.version.js → esm2020/lib/spr.module.version.mjs} +2 -2
  62. package/{esm2015/lib/ui/canvas_layer_comp.js → esm2020/lib/ui/canvas_layer_comp.mjs} +4 -4
  63. package/{esm2015/lib/ui/message_dialog.js → esm2020/lib/ui/message_dialog.mjs} +4 -4
  64. package/{esm2015/lib/ui/recordingitem_display.js → esm2020/lib/ui/recordingitem_display.mjs} +9 -9
  65. package/{esm2015/lib/utils/css_utils.js → esm2020/lib/utils/css_utils.mjs} +0 -0
  66. package/{esm2015/lib/utils/scrollIntoViewToBottom.js → esm2020/lib/utils/scrollIntoViewToBottom.mjs} +4 -4
  67. package/{esm2015/lib/utils/ua-parser.js → esm2020/lib/utils/ua-parser.mjs} +0 -0
  68. package/{esm2015/lib/utils/utils.js → esm2020/lib/utils/utils.mjs} +0 -0
  69. package/esm2020/public-api.mjs +31 -0
  70. package/{esm2015/speechrecorderng.js → esm2020/speechrecorderng.mjs} +0 -0
  71. package/fesm2015/speechrecorderng.mjs +11991 -0
  72. package/fesm2015/speechrecorderng.mjs.map +1 -0
  73. package/{fesm2015/speechrecorderng.js → fesm2020/speechrecorderng.mjs} +1863 -285
  74. package/fesm2020/speechrecorderng.mjs.map +1 -0
  75. package/lib/media/utils.d.ts +3 -0
  76. package/lib/net/uploader.d.ts +4 -2
  77. package/lib/speechrecorder/recording.d.ts +14 -3
  78. package/lib/speechrecorder/recordings/recordings.service.d.ts +12 -5
  79. package/lib/speechrecorder/session/audiorecorder.d.ts +150 -0
  80. package/lib/speechrecorder/session/controlpanel.d.ts +2 -1
  81. package/lib/speechrecorder/session/item.d.ts +2 -2
  82. package/lib/speechrecorder/session/recorder_combi_pane.d.ts +26 -0
  83. package/lib/speechrecorder/session/recording_list.d.ts +19 -0
  84. package/lib/speechrecorder/session/recordingfile/recording-file-meta.component.d.ts +6 -2
  85. package/lib/speechrecorder/session/recordingfile/recording-file-view.component.d.ts +5 -4
  86. package/lib/speechrecorder/session/recordingfile/recording-file.d.ts +2 -2
  87. package/lib/speechrecorder/session/recordingfile/recordingfile-service.d.ts +5 -3
  88. package/lib/speechrecorder/session/sessionmanager.d.ts +5 -5
  89. package/lib/speechrecorderng.module.d.ts +31 -28
  90. package/lib/spr.module.version.d.ts +1 -1
  91. package/package.json +33 -20
  92. package/public-api.d.ts +2 -1
  93. package/bundles/speechrecorderng.umd.js +0 -10146
  94. package/bundles/speechrecorderng.umd.js.map +0 -1
  95. package/esm2015/lib/audio/audio_player.js +0 -274
  96. package/esm2015/lib/audio/capture/capture.js +0 -544
  97. package/esm2015/lib/audio/dsp/level_measure.js +0 -356
  98. package/esm2015/lib/audio/ui/audio_canvas_layer_comp.js +0 -364
  99. package/esm2015/lib/audio/ui/container.js +0 -412
  100. package/esm2015/lib/net/uploader.js +0 -220
  101. package/esm2015/lib/speechrecorder/recording.js +0 -38
  102. package/esm2015/lib/speechrecorder/recordings/recordings.service.js +0 -173
  103. package/esm2015/lib/speechrecorder/session/controlpanel.js +0 -446
  104. package/esm2015/lib/speechrecorder/session/recordingfile/recording-file-meta.component.js +0 -83
  105. package/esm2015/lib/speechrecorder/session/recordingfile/recording-file-u-i.component.js +0 -163
  106. package/esm2015/lib/speechrecorder/session/recordingfile/recording-file-view.component.js +0 -386
  107. package/esm2015/lib/speechrecorder/session/recordingfile/recordingfile-service.js +0 -191
  108. package/esm2015/lib/speechrecorder/session/sessionmanager.js +0 -1271
  109. package/esm2015/lib/speechrecorderng.component.js +0 -423
  110. package/esm2015/public-api.js +0 -30
  111. package/fesm2015/speechrecorderng.js.map +0 -1
@@ -0,0 +1,109 @@
1
+ import { Component, EventEmitter, Input, Output } from "@angular/core";
2
+ import { MediaUtils } from "../../media/utils";
3
+ import { MatTableDataSource } from "@angular/material/table";
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/material/card";
6
+ import * as i2 from "@angular/material/table";
7
+ import * as i3 from "@angular/material/button";
8
+ import * as i4 from "@angular/material/icon";
9
+ import * as i5 from "../../utils/scrollIntoViewToBottom";
10
+ import * as i6 from "@angular/common";
11
+ export class RecordingList {
12
+ constructor() {
13
+ this.recordingList = new Array();
14
+ //cols=['index','length','samples','samplerate','action'];
15
+ this.cols = ['index', 'startedDate', 'length', 'action'];
16
+ this.selectDisabled = false;
17
+ this.selectedRecordingFileChanged = new EventEmitter();
18
+ this.selectedRecordingFile = null;
19
+ this.recordingListDataSource = new MatTableDataSource();
20
+ }
21
+ ngAfterViewInit() {
22
+ this.recordingListDataSource.data = this.recordingList.reverse();
23
+ }
24
+ push(rf) {
25
+ this.recordingList.push(rf);
26
+ this.recordingListDataSource.data = this.recordingList.reverse();
27
+ }
28
+ selectRecordingFile(rf) {
29
+ this.selectedRecordingFileChanged.emit(rf);
30
+ }
31
+ lengthTimeFormatted(rf) {
32
+ let str = '--:--:--';
33
+ if (rf.frames && rf.audioBuffer) {
34
+ str = MediaUtils.toMediaTime(rf.frames / rf.audioBuffer?.sampleRate);
35
+ }
36
+ return str;
37
+ }
38
+ }
39
+ RecordingList.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: RecordingList, deps: [], target: i0.ɵɵFactoryTarget.Component });
40
+ RecordingList.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.1", type: RecordingList, selector: "app-recordinglist", inputs: { selectDisabled: "selectDisabled", selectedRecordingFile: "selectedRecordingFile" }, outputs: { selectedRecordingFileChanged: "selectedRecordingFileChanged" }, ngImport: i0, template: `
41
+ <mat-card>
42
+ <mat-card-header>
43
+ <h2>Recording list</h2>
44
+ </mat-card-header>
45
+ <mat-card-content>
46
+ <table mat-table [dataSource]="recordingListDataSource" class="mat-elevation-z0">
47
+ <tr mat-header-row *matHeaderRowDef="cols;sticky:true"></tr>
48
+ <tr mat-row *matRowDef="let element; columns: cols;" [scrollIntoViewToBottom]="element.uuid===selectedRecordingFile?.uuid"></tr>
49
+ <ng-container matColumnDef="index">
50
+ <th mat-header-cell *matHeaderCellDef mat-sort-header>#</th>
51
+ <td mat-cell class="monospaced" *matCellDef="let element;let i = index">{{recordingListDataSource.data.length-i}}</td>
52
+ </ng-container>
53
+ <ng-container matColumnDef="startedDate">
54
+ <th mat-header-cell *matHeaderCellDef mat-sort-header>Started</th>
55
+ <td mat-cell class="monospaced" *matCellDef="let element">{{element.startedDate | date:'YYYY-MM-dd HH:mm:ss'}}</td>
56
+ </ng-container>
57
+ <ng-container matColumnDef="length">
58
+ <th mat-header-cell *matHeaderCellDef mat-sort-header>Length</th>
59
+ <td mat-cell class="monospaced" *matCellDef="let element">{{lengthTimeFormatted(element)}}</td>
60
+ </ng-container>
61
+ <ng-container matColumnDef="action">
62
+ <th mat-header-cell *matHeaderCellDef>Action</th>
63
+ <td mat-cell *matCellDef="let element"><button mat-stroked-button color="primary" (click)="selectRecordingFile(element)" [disabled]="selectDisabled || element.uuid===selectedRecordingFile?.uuid"><mat-icon>edit_attributes</mat-icon> Select</button></td>
64
+ </ng-container>
65
+ </table>
66
+ </mat-card-content>
67
+ </mat-card>
68
+
69
+ `, isInline: true, styles: [".monospaced{font-family:monospace}.mat-cell,.mat-header-cell{padding-left:5px;padding-right:5px}.mat-card,.mat-card-header,.mat-card-content{width:auto}.flexForm{display:flex;flex-direction:column;width:auto}\n", ":host{position:relative;margin:0;padding:0;background:lightgrey;width:100%;flex:1;overflow-y:auto;min-height:0px}\n", ".selected{font-weight:700}\n"], components: [{ type: i1.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { type: i1.MatCardHeader, selector: "mat-card-header" }, { type: i2.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { type: i2.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { type: i2.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i1.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { type: i2.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { type: i2.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { type: i5.ScrollIntoViewDirective, selector: "[scrollIntoViewToBottom]", inputs: ["scrollIntoViewToBottom"] }, { type: i2.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { type: i2.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { type: i2.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { type: i2.MatCellDef, selector: "[matCellDef]" }, { type: i2.MatCell, selector: "mat-cell, td[mat-cell]" }], pipes: { "date": i6.DatePipe } });
70
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: RecordingList, decorators: [{
71
+ type: Component,
72
+ args: [{ selector: 'app-recordinglist', template: `
73
+ <mat-card>
74
+ <mat-card-header>
75
+ <h2>Recording list</h2>
76
+ </mat-card-header>
77
+ <mat-card-content>
78
+ <table mat-table [dataSource]="recordingListDataSource" class="mat-elevation-z0">
79
+ <tr mat-header-row *matHeaderRowDef="cols;sticky:true"></tr>
80
+ <tr mat-row *matRowDef="let element; columns: cols;" [scrollIntoViewToBottom]="element.uuid===selectedRecordingFile?.uuid"></tr>
81
+ <ng-container matColumnDef="index">
82
+ <th mat-header-cell *matHeaderCellDef mat-sort-header>#</th>
83
+ <td mat-cell class="monospaced" *matCellDef="let element;let i = index">{{recordingListDataSource.data.length-i}}</td>
84
+ </ng-container>
85
+ <ng-container matColumnDef="startedDate">
86
+ <th mat-header-cell *matHeaderCellDef mat-sort-header>Started</th>
87
+ <td mat-cell class="monospaced" *matCellDef="let element">{{element.startedDate | date:'YYYY-MM-dd HH:mm:ss'}}</td>
88
+ </ng-container>
89
+ <ng-container matColumnDef="length">
90
+ <th mat-header-cell *matHeaderCellDef mat-sort-header>Length</th>
91
+ <td mat-cell class="monospaced" *matCellDef="let element">{{lengthTimeFormatted(element)}}</td>
92
+ </ng-container>
93
+ <ng-container matColumnDef="action">
94
+ <th mat-header-cell *matHeaderCellDef>Action</th>
95
+ <td mat-cell *matCellDef="let element"><button mat-stroked-button color="primary" (click)="selectRecordingFile(element)" [disabled]="selectDisabled || element.uuid===selectedRecordingFile?.uuid"><mat-icon>edit_attributes</mat-icon> Select</button></td>
96
+ </ng-container>
97
+ </table>
98
+ </mat-card-content>
99
+ </mat-card>
100
+
101
+ `, styles: [".monospaced{font-family:monospace}.mat-cell,.mat-header-cell{padding-left:5px;padding-right:5px}.mat-card,.mat-card-header,.mat-card-content{width:auto}.flexForm{display:flex;flex-direction:column;width:auto}\n", ":host{position:relative;margin:0;padding:0;background:lightgrey;width:100%;flex:1;overflow-y:auto;min-height:0px}\n", ".selected{font-weight:700}\n"] }]
102
+ }], ctorParameters: function () { return []; }, propDecorators: { selectDisabled: [{
103
+ type: Input
104
+ }], selectedRecordingFileChanged: [{
105
+ type: Output
106
+ }], selectedRecordingFile: [{
107
+ type: Input
108
+ }] } });
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkaW5nX2xpc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGVlY2hyZWNvcmRlcm5nL3NyYy9saWIvc3BlZWNocmVjb3JkZXIvc2Vzc2lvbi9yZWNvcmRpbmdfbGlzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVwRixPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDN0MsT0FBTyxFQUFXLGtCQUFrQixFQUFDLE1BQU0seUJBQXlCLENBQUM7Ozs7Ozs7O0FBNkRyRSxNQUFNLE9BQU8sYUFBYTtJQVV4QjtRQVRBLGtCQUFhLEdBQXNCLElBQUksS0FBSyxFQUFpQixDQUFDO1FBRzlELDBEQUEwRDtRQUMxRCxTQUFJLEdBQUMsQ0FBQyxPQUFPLEVBQUMsYUFBYSxFQUFDLFFBQVEsRUFBQyxRQUFRLENBQUMsQ0FBQztRQUN0QyxtQkFBYyxHQUFTLEtBQUssQ0FBQztRQUM1QixpQ0FBNEIsR0FBRyxJQUFJLFlBQVksRUFBaUIsQ0FBQztRQUNsRSwwQkFBcUIsR0FBb0IsSUFBSSxDQUFDO1FBR3JELElBQUksQ0FBQyx1QkFBdUIsR0FBQyxJQUFJLGtCQUFrQixFQUFpQixDQUFDO0lBRXZFLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksR0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2pFLENBQUM7SUFFRCxJQUFJLENBQUMsRUFBZ0I7UUFDbkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDNUIsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksR0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2pFLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxFQUFnQjtRQUNsQyxJQUFJLENBQUMsNEJBQTRCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxFQUFnQjtRQUNsQyxJQUFJLEdBQUcsR0FBQyxVQUFVLENBQUM7UUFDbkIsSUFBRyxFQUFFLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUU7WUFDOUIsR0FBRyxHQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1NBQ3BFO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDOzswR0FsQ1UsYUFBYTs4RkFBYixhQUFhLGtPQXREZDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E2QlQ7MkZBeUJVLGFBQWE7a0JBMUR6QixTQUFTOytCQUVFLG1CQUFtQixZQUVuQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E2QlQ7MEVBK0JRLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0ksNEJBQTRCO3NCQUFyQyxNQUFNO2dCQUNFLHFCQUFxQjtzQkFBN0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXR9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7UmVjb3JkaW5nRmlsZSwgU3ByUmVjb3JkaW5nRmlsZX0gZnJvbSBcIi4uL3JlY29yZGluZ1wiO1xyXG5pbXBvcnQge01lZGlhVXRpbHN9IGZyb20gXCIuLi8uLi9tZWRpYS91dGlsc1wiO1xyXG5pbXBvcnQge01hdFRhYmxlLCBNYXRUYWJsZURhdGFTb3VyY2V9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC90YWJsZVwiO1xyXG5pbXBvcnQge09ic2VydmFibGUsIFN1YmplY3R9IGZyb20gXCJyeGpzXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHJcbiAgc2VsZWN0b3I6ICdhcHAtcmVjb3JkaW5nbGlzdCcsXHJcblxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8bWF0LWNhcmQ+XHJcbiAgICAgICAgPG1hdC1jYXJkLWhlYWRlcj5cclxuICAgICAgICAgIDxoMj5SZWNvcmRpbmcgbGlzdDwvaDI+XHJcbiAgICAgICAgPC9tYXQtY2FyZC1oZWFkZXI+XHJcbiAgICAgIDxtYXQtY2FyZC1jb250ZW50PlxyXG4gICAgPHRhYmxlIG1hdC10YWJsZSBbZGF0YVNvdXJjZV09XCJyZWNvcmRpbmdMaXN0RGF0YVNvdXJjZVwiIGNsYXNzPVwibWF0LWVsZXZhdGlvbi16MFwiPlxyXG4gICAgICA8dHIgbWF0LWhlYWRlci1yb3cgKm1hdEhlYWRlclJvd0RlZj1cImNvbHM7c3RpY2t5OnRydWVcIj48L3RyPlxyXG4gICAgICA8dHIgbWF0LXJvdyAqbWF0Um93RGVmPVwibGV0IGVsZW1lbnQ7IGNvbHVtbnM6IGNvbHM7XCIgW3Njcm9sbEludG9WaWV3VG9Cb3R0b21dPVwiZWxlbWVudC51dWlkPT09c2VsZWN0ZWRSZWNvcmRpbmdGaWxlPy51dWlkXCI+PC90cj5cclxuICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJpbmRleFwiPlxyXG4gICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgbWF0LXNvcnQtaGVhZGVyPiM8L3RoPlxyXG4gICAgICAgIDx0ZCBtYXQtY2VsbCBjbGFzcz1cIm1vbm9zcGFjZWRcIiAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50O2xldCBpID0gaW5kZXhcIj57e3JlY29yZGluZ0xpc3REYXRhU291cmNlLmRhdGEubGVuZ3RoLWl9fTwvdGQ+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInN0YXJ0ZWREYXRlXCI+XHJcbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBtYXQtc29ydC1oZWFkZXI+U3RhcnRlZDwvdGg+XHJcbiAgICAgICAgPHRkIG1hdC1jZWxsIGNsYXNzPVwibW9ub3NwYWNlZFwiICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj57e2VsZW1lbnQuc3RhcnRlZERhdGUgfCBkYXRlOidZWVlZLU1NLWRkIEhIOm1tOnNzJ319PC90ZD5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwibGVuZ3RoXCI+XHJcbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBtYXQtc29ydC1oZWFkZXI+TGVuZ3RoPC90aD5cclxuICAgICAgICA8dGQgbWF0LWNlbGwgY2xhc3M9XCJtb25vc3BhY2VkXCIgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPnt7bGVuZ3RoVGltZUZvcm1hdHRlZChlbGVtZW50KX19PC90ZD5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiYWN0aW9uXCI+XHJcbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj5BY3Rpb248L3RoPlxyXG4gICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+PGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cInNlbGVjdFJlY29yZGluZ0ZpbGUoZWxlbWVudClcIiBbZGlzYWJsZWRdPVwic2VsZWN0RGlzYWJsZWQgfHwgZWxlbWVudC51dWlkPT09c2VsZWN0ZWRSZWNvcmRpbmdGaWxlPy51dWlkXCI+PG1hdC1pY29uPmVkaXRfYXR0cmlidXRlczwvbWF0LWljb24+IFNlbGVjdDwvYnV0dG9uPjwvdGQ+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC90YWJsZT5cclxuICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxyXG4gICAgPC9tYXQtY2FyZD5cclxuXHJcbiAgYCxcclxuICBzdHlsZXM6IFtgOmhvc3Qge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIGJhY2tncm91bmQ6IGxpZ2h0Z3JleTtcclxuICAgIHdpZHRoOiAxMDAlOyAvKiB1c2UgYWxsIGhvcml6b250YWwgYXZhaWxhYmxlIHNwYWNlICovXHJcbiAgICBmbGV4OiAxOyAvKiAuLi4gYW5kIGZpbGwgcmVzdCBvZiB2ZXJ0aWNhbCBhdmFpbGFibGUgc3BhY2UgKG90aGVyIGNvbXBvbmVudHMgaGF2ZSBmbGV4IDApICovXHJcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xyXG5cclxuICAgIC8qIFdvcmthcm91bmQgZm9yIEZpcmVmb3hcclxuICAgIElmIHRoZSBwcm9ncmVzcyB0YWJsZSBnZXRzIGxvbmcgKHNjcmlwdCB3aXRoIG1hbnkgaXRlbXMpIEZGIGluY3JlYXNlcyB0aGUgaGVpZ2h0IG9mIHRoZSBvdmVyZmxvdyBwcm9ncmVzc0NvbnRhaW5lciBhbmRcclxuICAgIHRoZSB3aG9sZSBhcHAgZG9lcyBub3QgZml0IGludG8gdGhlIHBhZ2UgYW55bW9yZS4gVGhlIGFwcCBvdmVyZmxvd3MgYW5kIHNob3dzIGEgdmVydGljYWwgc2Nyb2xsYmFyIGZvciB0aGUgd2hvbGUgYXBwLlxyXG4gICAgU2VlIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMjg2MzY4MzIvZmlyZWZveC1vdmVyZmxvdy15LW5vdC13b3JraW5nLXdpdGgtbmVzdGVkLWZsZXhib3hcclxuICAgICovXHJcbiAgICBtaW4taGVpZ2h0OiAwcHg7XHJcblxyXG4gIH1gLGBcclxuICAgIC5zZWxlY3RlZHtcclxuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICB9XHJcbiAgYF0sXHJcbiAgc3R5bGVVcmxzOiBbJy4uLy4uL3NwZWVjaHJlY29yZGVyX21hdC5zY3NzJ11cclxuXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSZWNvcmRpbmdMaXN0IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdHtcclxuICByZWNvcmRpbmdMaXN0OkFycmF5PFJlY29yZGluZ0ZpbGU+PW5ldyBBcnJheTxSZWNvcmRpbmdGaWxlPigpO1xyXG4gIC8vcmVjb3JkaW5nTGlzdFN1YmplY3Q6U3ViamVjdDxBcnJheTxSZWNvcmRpbmdGaWxlPj4gPSBuZXcgU3ViamVjdDxBcnJheTxSZWNvcmRpbmdGaWxlPj4oKTtcclxuICByZWNvcmRpbmdMaXN0RGF0YVNvdXJjZTpNYXRUYWJsZURhdGFTb3VyY2U8UmVjb3JkaW5nRmlsZT47XHJcbiAgLy9jb2xzPVsnaW5kZXgnLCdsZW5ndGgnLCdzYW1wbGVzJywnc2FtcGxlcmF0ZScsJ2FjdGlvbiddO1xyXG4gIGNvbHM9WydpbmRleCcsJ3N0YXJ0ZWREYXRlJywnbGVuZ3RoJywnYWN0aW9uJ107XHJcbiAgQElucHV0KCkgc2VsZWN0RGlzYWJsZWQ6Ym9vbGVhbj1mYWxzZTtcclxuICBAT3V0cHV0KCkgc2VsZWN0ZWRSZWNvcmRpbmdGaWxlQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8UmVjb3JkaW5nRmlsZT4oKTtcclxuICBASW5wdXQoKSBzZWxlY3RlZFJlY29yZGluZ0ZpbGU6UmVjb3JkaW5nRmlsZXxudWxsPW51bGw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy5yZWNvcmRpbmdMaXN0RGF0YVNvdXJjZT1uZXcgTWF0VGFibGVEYXRhU291cmNlPFJlY29yZGluZ0ZpbGU+KCk7XHJcblxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5yZWNvcmRpbmdMaXN0RGF0YVNvdXJjZS5kYXRhPXRoaXMucmVjb3JkaW5nTGlzdC5yZXZlcnNlKCk7XHJcbiAgfVxyXG5cclxuICBwdXNoKHJmOlJlY29yZGluZ0ZpbGUpe1xyXG4gICAgdGhpcy5yZWNvcmRpbmdMaXN0LnB1c2gocmYpO1xyXG4gICAgdGhpcy5yZWNvcmRpbmdMaXN0RGF0YVNvdXJjZS5kYXRhPXRoaXMucmVjb3JkaW5nTGlzdC5yZXZlcnNlKCk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RSZWNvcmRpbmdGaWxlKHJmOlJlY29yZGluZ0ZpbGUpe1xyXG4gICAgdGhpcy5zZWxlY3RlZFJlY29yZGluZ0ZpbGVDaGFuZ2VkLmVtaXQocmYpO1xyXG4gIH1cclxuXHJcbiAgbGVuZ3RoVGltZUZvcm1hdHRlZChyZjpSZWNvcmRpbmdGaWxlKXtcclxuICAgIGxldCBzdHI9Jy0tOi0tOi0tJztcclxuICAgIGlmKHJmLmZyYW1lcyAmJiByZi5hdWRpb0J1ZmZlcikge1xyXG4gICAgICBzdHI9TWVkaWFVdGlscy50b01lZGlhVGltZShyZi5mcmFtZXMgLyByZi5hdWRpb0J1ZmZlcj8uc2FtcGxlUmF0ZSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gc3RyO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,126 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { RecordingFileUtil } from "./recording-file";
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/material/card";
5
+ import * as i2 from "@angular/common";
6
+ export class RecordingFileMetaComponent {
7
+ constructor() {
8
+ this.sessionId = null;
9
+ this._recordingFile = null;
10
+ this.itemCode = null;
11
+ this.uuid = null;
12
+ }
13
+ get recordingFile() {
14
+ return this._recordingFile;
15
+ }
16
+ set recordingFile(recordingFile) {
17
+ this._recordingFile = recordingFile;
18
+ if (this._recordingFile) {
19
+ this.itemCode = this._recordingFile.itemCode;
20
+ if (!this.itemCode && this._recordingFile.recording?.itemcode) {
21
+ this.itemCode = this._recordingFile.recording.itemcode;
22
+ }
23
+ if (this.itemCode) {
24
+ this.uuid = null;
25
+ console.debug("SprRecordingFile: " + this.itemCode + " UUID: " + this.uuid);
26
+ }
27
+ else {
28
+ this.itemCode = null;
29
+ this.uuid = this._recordingFile?.uuid;
30
+ console.debug("RecordingFile: " + this.itemCode + " UUID: " + this.uuid);
31
+ }
32
+ }
33
+ else {
34
+ this.itemCode = null;
35
+ this.uuid = null;
36
+ }
37
+ }
38
+ recordingAsPlainText() {
39
+ let t = null;
40
+ if (this._recordingFile) {
41
+ t = RecordingFileUtil.recordingAsPlainText(this._recordingFile);
42
+ }
43
+ return t;
44
+ }
45
+ }
46
+ RecordingFileMetaComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: RecordingFileMetaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
47
+ RecordingFileMetaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.1", type: RecordingFileMetaComponent, selector: "app-recording-file-meta", inputs: { sessionId: "sessionId", recordingFile: "recordingFile" }, ngImport: i0, template: `
48
+ <mat-card>
49
+ <mat-card-title>Recording file ID: {{recordingFile?.recordingFileId}}</mat-card-title>
50
+ <mat-card-content>
51
+ <table>
52
+ <tr *ngIf="itemCode">
53
+ <td>Itemcode:</td>
54
+ <td>{{itemCode}}</td>
55
+ </tr>
56
+ <tr *ngIf="uuid && !itemCode">
57
+ <td>UUID:</td>
58
+ <td>{{uuid}}</td>
59
+ </tr>
60
+ <tr *ngIf="recordingFile?.startedDate">
61
+ <td>Started:</td>
62
+ <td>{{recordingFile?.startedDate}}</td>
63
+ </tr>
64
+ <tr *ngIf="!recordingFile?.startedDate && recordingFile?.date">
65
+ <td>Date:</td>
66
+ <td>{{recordingFile?.date}}</td>
67
+ </tr>
68
+ <tr *ngIf="itemCode">
69
+ <td>Prompt:</td>
70
+ <td>{{recordingAsPlainText()}}</td>
71
+ </tr>
72
+
73
+ <tr *ngIf="sessionId">
74
+ <td>Session:</td>
75
+ <td>{{sessionId}}</td>
76
+ </tr>
77
+ </table>
78
+ </mat-card-content>
79
+ </mat-card>
80
+ `, isInline: true, components: [{ type: i1.MatCard, selector: "mat-card", exportAs: ["matCard"] }], directives: [{ type: i1.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { type: i1.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
81
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: RecordingFileMetaComponent, decorators: [{
82
+ type: Component,
83
+ args: [{
84
+ selector: 'app-recording-file-meta',
85
+ template: `
86
+ <mat-card>
87
+ <mat-card-title>Recording file ID: {{recordingFile?.recordingFileId}}</mat-card-title>
88
+ <mat-card-content>
89
+ <table>
90
+ <tr *ngIf="itemCode">
91
+ <td>Itemcode:</td>
92
+ <td>{{itemCode}}</td>
93
+ </tr>
94
+ <tr *ngIf="uuid && !itemCode">
95
+ <td>UUID:</td>
96
+ <td>{{uuid}}</td>
97
+ </tr>
98
+ <tr *ngIf="recordingFile?.startedDate">
99
+ <td>Started:</td>
100
+ <td>{{recordingFile?.startedDate}}</td>
101
+ </tr>
102
+ <tr *ngIf="!recordingFile?.startedDate && recordingFile?.date">
103
+ <td>Date:</td>
104
+ <td>{{recordingFile?.date}}</td>
105
+ </tr>
106
+ <tr *ngIf="itemCode">
107
+ <td>Prompt:</td>
108
+ <td>{{recordingAsPlainText()}}</td>
109
+ </tr>
110
+
111
+ <tr *ngIf="sessionId">
112
+ <td>Session:</td>
113
+ <td>{{sessionId}}</td>
114
+ </tr>
115
+ </table>
116
+ </mat-card-content>
117
+ </mat-card>
118
+ `,
119
+ styles: []
120
+ }]
121
+ }], propDecorators: { sessionId: [{
122
+ type: Input
123
+ }], recordingFile: [{
124
+ type: Input
125
+ }] } });
126
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkaW5nLWZpbGUtbWV0YS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGVlY2hyZWNvcmRlcm5nL3NyYy9saWIvc3BlZWNocmVjb3JkZXIvc2Vzc2lvbi9yZWNvcmRpbmdmaWxlL3JlY29yZGluZy1maWxlLW1ldGEuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBQ3ZELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGtCQUFrQixDQUFDOzs7O0FBeUNuRCxNQUFNLE9BQU8sMEJBQTBCO0lBdEN2QztRQXlDVyxjQUFTLEdBQXdCLElBQUksQ0FBQztRQUV2QyxtQkFBYyxHQUF1QixJQUFJLENBQUM7UUE0QmxELGFBQVEsR0FBYSxJQUFJLENBQUM7UUFDMUIsU0FBSSxHQUF1QixJQUFJLENBQUM7S0FTakM7SUFwQ0MsSUFBSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFhLGFBQWEsQ0FBQyxhQUFtQztRQUM1RCxJQUFJLENBQUMsY0FBYyxHQUFDLGFBQWEsQ0FBQztRQUNsQyxJQUFHLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQztZQUM3QyxJQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUM7Z0JBQzNELElBQUksQ0FBQyxRQUFRLEdBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDO2FBQ3REO1lBQ0QsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUVqQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztnQkFDakIsT0FBTyxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsR0FBQyxJQUFJLENBQUMsUUFBUSxHQUFFLFNBQVMsR0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7YUFDdkU7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUM7Z0JBQ3RDLE9BQU8sQ0FBQyxLQUFLLENBQUMsaUJBQWlCLEdBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRSxTQUFTLEdBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO2FBQ3BFO1NBQ0Y7YUFBSTtZQUNILElBQUksQ0FBQyxRQUFRLEdBQUMsSUFBSSxDQUFDO1lBQ25CLElBQUksQ0FBQyxJQUFJLEdBQUMsSUFBSSxDQUFDO1NBQ2hCO0lBQ0gsQ0FBQztJQUtELG9CQUFvQjtRQUNsQixJQUFJLENBQUMsR0FBQyxJQUFJLENBQUM7UUFDWCxJQUFHLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDdEIsQ0FBQyxHQUFHLGlCQUFpQixDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztTQUNqRTtRQUNELE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQzs7dUhBMUNVLDBCQUEwQjsyR0FBMUIsMEJBQTBCLG1JQXBDM0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWlDVDsyRkFHVSwwQkFBMEI7a0JBdEN0QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx5QkFBeUI7b0JBQ25DLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUNUO29CQUNELE1BQU0sRUFBRSxFQUFFO2lCQUNYOzhCQUlVLFNBQVM7c0JBQWpCLEtBQUs7Z0JBUU8sYUFBYTtzQkFBekIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbnB1dCwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtSZWNvcmRpbmdGaWxlVXRpbH0gZnJvbSBcIi4vcmVjb3JkaW5nLWZpbGVcIjtcclxuaW1wb3J0IHtSZWNvcmRpbmdGaWxlLCBTcHJSZWNvcmRpbmdGaWxlfSBmcm9tIFwiLi4vLi4vcmVjb3JkaW5nXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1yZWNvcmRpbmctZmlsZS1tZXRhJyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPG1hdC1jYXJkPlxyXG4gICAgICA8bWF0LWNhcmQtdGl0bGU+UmVjb3JkaW5nIGZpbGUgSUQ6IHt7cmVjb3JkaW5nRmlsZT8ucmVjb3JkaW5nRmlsZUlkfX08L21hdC1jYXJkLXRpdGxlPlxyXG4gICAgICA8bWF0LWNhcmQtY29udGVudD5cclxuICAgICAgICA8dGFibGU+XHJcbiAgICAgICAgICA8dHIgKm5nSWY9XCJpdGVtQ29kZVwiPlxyXG4gICAgICAgICAgICA8dGQ+SXRlbWNvZGU6PC90ZD5cclxuICAgICAgICAgICAgPHRkPnt7aXRlbUNvZGV9fTwvdGQ+XHJcbiAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgPHRyICpuZ0lmPVwidXVpZCAmJiAhaXRlbUNvZGVcIj5cclxuICAgICAgICAgICAgPHRkPlVVSUQ6PC90ZD5cclxuICAgICAgICAgICAgPHRkPnt7dXVpZH19PC90ZD5cclxuICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICA8dHIgKm5nSWY9XCJyZWNvcmRpbmdGaWxlPy5zdGFydGVkRGF0ZVwiPlxyXG4gICAgICAgICAgICA8dGQ+U3RhcnRlZDo8L3RkPlxyXG4gICAgICAgICAgICA8dGQ+e3tyZWNvcmRpbmdGaWxlPy5zdGFydGVkRGF0ZX19PC90ZD5cclxuICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICA8dHIgKm5nSWY9XCIhcmVjb3JkaW5nRmlsZT8uc3RhcnRlZERhdGUgJiYgcmVjb3JkaW5nRmlsZT8uZGF0ZVwiPlxyXG4gICAgICAgICAgICA8dGQ+RGF0ZTo8L3RkPlxyXG4gICAgICAgICAgICA8dGQ+e3tyZWNvcmRpbmdGaWxlPy5kYXRlfX08L3RkPlxyXG4gICAgICAgICAgPC90cj5cclxuICAgICAgICAgIDx0ciAqbmdJZj1cIml0ZW1Db2RlXCI+XHJcbiAgICAgICAgICAgIDx0ZD5Qcm9tcHQ6PC90ZD5cclxuICAgICAgICAgICAgPHRkPnt7cmVjb3JkaW5nQXNQbGFpblRleHQoKX19PC90ZD5cclxuICAgICAgICAgIDwvdHI+XHJcblxyXG4gICAgICAgICAgPHRyICpuZ0lmPVwic2Vzc2lvbklkXCI+XHJcbiAgICAgICAgICAgIDx0ZD5TZXNzaW9uOjwvdGQ+XHJcbiAgICAgICAgICAgIDx0ZD57e3Nlc3Npb25JZH19PC90ZD5cclxuICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgPC90YWJsZT5cclxuICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxyXG4gICAgPC9tYXQtY2FyZD5cclxuICBgLFxyXG4gIHN0eWxlczogW11cclxufSlcclxuZXhwb3J0IGNsYXNzIFJlY29yZGluZ0ZpbGVNZXRhQ29tcG9uZW50e1xyXG5cclxuXHJcbiAgQElucHV0KCkgc2Vzc2lvbklkOnN0cmluZyB8IG51bWJlciB8IG51bGw9bnVsbDtcclxuXHJcbiAgcHJpdmF0ZSBfcmVjb3JkaW5nRmlsZTpTcHJSZWNvcmRpbmdGaWxlfG51bGw9bnVsbDtcclxuXHJcbiAgZ2V0IHJlY29yZGluZ0ZpbGUoKTogU3ByUmVjb3JkaW5nRmlsZSB8IG51bGwge1xyXG4gICAgcmV0dXJuIHRoaXMuX3JlY29yZGluZ0ZpbGU7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBzZXQgcmVjb3JkaW5nRmlsZShyZWNvcmRpbmdGaWxlOlNwclJlY29yZGluZ0ZpbGV8bnVsbCl7XHJcbiAgICB0aGlzLl9yZWNvcmRpbmdGaWxlPXJlY29yZGluZ0ZpbGU7XHJcbiAgICBpZih0aGlzLl9yZWNvcmRpbmdGaWxlKSB7XHJcbiAgICAgIHRoaXMuaXRlbUNvZGUgPSB0aGlzLl9yZWNvcmRpbmdGaWxlLml0ZW1Db2RlO1xyXG4gICAgICBpZighdGhpcy5pdGVtQ29kZSAmJiB0aGlzLl9yZWNvcmRpbmdGaWxlLnJlY29yZGluZz8uaXRlbWNvZGUpe1xyXG4gICAgICAgIHRoaXMuaXRlbUNvZGU9dGhpcy5fcmVjb3JkaW5nRmlsZS5yZWNvcmRpbmcuaXRlbWNvZGU7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuaXRlbUNvZGUpIHtcclxuXHJcbiAgICAgICAgdGhpcy51dWlkID0gbnVsbDtcclxuICAgICAgICBjb25zb2xlLmRlYnVnKFwiU3ByUmVjb3JkaW5nRmlsZTogXCIrdGhpcy5pdGVtQ29kZSsgXCIgVVVJRDogXCIrdGhpcy51dWlkKVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuaXRlbUNvZGUgPSBudWxsO1xyXG4gICAgICAgIHRoaXMudXVpZCA9IHRoaXMuX3JlY29yZGluZ0ZpbGU/LnV1aWQ7XHJcbiAgICAgICAgY29uc29sZS5kZWJ1ZyhcIlJlY29yZGluZ0ZpbGU6IFwiK3RoaXMuaXRlbUNvZGUrIFwiIFVVSUQ6IFwiK3RoaXMudXVpZClcclxuICAgICAgfVxyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRoaXMuaXRlbUNvZGU9bnVsbDtcclxuICAgICAgdGhpcy51dWlkPW51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpdGVtQ29kZTpzdHJpbmd8bnVsbD1udWxsO1xyXG4gIHV1aWQ6c3RyaW5nfG51bGx8dW5kZWZpbmVkPW51bGw7XHJcblxyXG4gIHJlY29yZGluZ0FzUGxhaW5UZXh0KCl7XHJcbiAgICBsZXQgdD1udWxsO1xyXG4gICAgaWYodGhpcy5fcmVjb3JkaW5nRmlsZSkge1xyXG4gICAgICB0ID0gUmVjb3JkaW5nRmlsZVV0aWwucmVjb3JkaW5nQXNQbGFpblRleHQodGhpcy5fcmVjb3JkaW5nRmlsZSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdDtcclxuICB9XHJcbn1cclxuIl19
@@ -21,8 +21,8 @@ export class RecordingFileNaviComponent {
21
21
  }
22
22
  }
23
23
  }
24
- RecordingFileNaviComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RecordingFileNaviComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
25
- RecordingFileNaviComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: RecordingFileNaviComponent, selector: "app-recording-file-navi", inputs: { firstAction: "firstAction", prevAction: "prevAction", nextAction: "nextAction", lastAction: "lastAction", items: "items", itemPos: "itemPos", selectVersion: "selectVersion", versions: "versions", version: "version", naviInfoLoading: "naviInfoLoading" }, ngImport: i0, template: `
24
+ RecordingFileNaviComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: RecordingFileNaviComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
25
+ RecordingFileNaviComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.1", type: RecordingFileNaviComponent, selector: "app-recording-file-navi", inputs: { firstAction: "firstAction", prevAction: "prevAction", nextAction: "nextAction", lastAction: "lastAction", items: "items", itemPos: "itemPos", selectVersion: "selectVersion", versions: "versions", version: "version", naviInfoLoading: "naviInfoLoading" }, ngImport: i0, template: `
26
26
  <div #controlPanel style="display:flex;flex-direction: row;">
27
27
  <div #navi style="flex: 0;display:flex;flex-direction: row;flex-wrap: nowrap">
28
28
  <fieldset>
@@ -54,8 +54,8 @@ RecordingFileNaviComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0
54
54
  </fieldset>
55
55
  </div>
56
56
  </div>
57
- `, isInline: true, styles: [":host {\n flex: 0;\n\n }"], components: [{ type: i1.MatProgressSpinner, selector: "mat-progress-spinner", inputs: ["color", "mode", "diameter", "strokeWidth", "value"], exportAs: ["matProgressSpinner"] }, { type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] });
58
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RecordingFileNaviComponent, decorators: [{
57
+ `, isInline: true, styles: [":host{flex:0}\n"], components: [{ type: i1.MatProgressSpinner, selector: "mat-progress-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] });
58
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: RecordingFileNaviComponent, decorators: [{
59
59
  type: Component,
60
60
  args: [{
61
61
  selector: 'app-recording-file-navi',
@@ -120,4 +120,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImpo
120
120
  }], naviInfoLoading: [{
121
121
  type: Input
122
122
  }] } });
123
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkaW5nLWZpbGUtbmF2aS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGVlY2hyZWNvcmRlcm5nL3NyYy9saWIvc3BlZWNocmVjb3JkZXIvc2Vzc2lvbi9yZWNvcmRpbmdmaWxlL3JlY29yZGluZy1maWxlLW5hdmkuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFvQixNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBNENsRSxNQUFNLE9BQU8sMEJBQTBCO0lBYXJDO1FBTFMsYUFBUSxHQUFxQixJQUFJLENBQUM7UUFDbEMsWUFBTyxHQUFjLElBQUksQ0FBQztRQUUxQixvQkFBZSxHQUFDLEtBQUssQ0FBQztJQUVmLENBQUM7SUFFakIsUUFBUTtJQUNSLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxFQUFRO1FBQzFCLHlFQUF5RTtRQUV2RSxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsTUFBMkIsQ0FBQztRQUM3QyxJQUFJLFNBQVMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RDLElBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUNyQixJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUN2QztJQUNMLENBQUM7O3dIQTFCVSwwQkFBMEI7NEdBQTFCLDBCQUEwQix1VUF2QzNCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztXQWdDRDs0RkFPRSwwQkFBMEI7a0JBekN0QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx5QkFBeUI7b0JBQ25DLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7V0FnQ0Q7b0JBQ1QsTUFBTSxFQUFFO3dCQUNOOzs7UUFHSTtxQkFBQztpQkFDUjswRUFFVSxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFFRyxlQUFlO3NCQUF2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIElucHV0LCBPbkluaXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7QWN0aW9ufSBmcm9tIFwiLi4vLi4vLi4vYWN0aW9uL2FjdGlvblwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtcmVjb3JkaW5nLWZpbGUtbmF2aScsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgICAgICA8ZGl2ICNjb250cm9sUGFuZWwgc3R5bGU9XCJkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246IHJvdztcIj5cclxuICAgICAgICAgIDxkaXYgI25hdmkgc3R5bGU9XCJmbGV4OiAwO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjogcm93O2ZsZXgtd3JhcDogbm93cmFwXCI+XHJcbiAgICAgICAgICAgIDxmaWVsZHNldD5cclxuICAgICAgICAgICAgICA8bGVnZW5kPlZlcnNpb25zPC9sZWdlbmQ+XHJcbiAgICAgICAgICAgICAgPG1hdC1wcm9ncmVzcy1zcGlubmVyICpuZ0lmPVwibmF2aUluZm9Mb2FkaW5nXCIgbW9kZT1cImluZGV0ZXJtaW5hdGVcIiBbZGlhbWV0ZXJdPVwiMTVcIj48L21hdC1wcm9ncmVzcy1zcGlubmVyPlxyXG4gICAgICAgICAgICAgICAgPHNlbGVjdCAqbmdJZj1cIiFuYXZpSW5mb0xvYWRpbmdcIiBbZGlzYWJsZWRdPVwidmVyc2lvbnM9PW51bGwgfHwgdmVyc2lvbnMubGVuZ3RoPT0xXCIgKGNoYW5nZSk9XCJzZWxlY3RWZXJzaW9uQ2hhbmdlKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgdiBvZiB2ZXJzaW9uczsgbGV0IGkgPSBpbmRleFwiIFtzZWxlY3RlZF09XCJ2PT09dmVyc2lvblwiIHZhbHVlPVwie3t2fX1cIj57e3Z9fTxzcGFuICpuZ0lmPVwiaT09MFwiPiAobGF0ZXN0KTwvc3Bhbj48L29wdGlvbj5cclxuICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICA8L2ZpZWxkc2V0PlxyXG4gICAgICAgICAgICA8ZmllbGRzZXQ+XHJcbiAgICAgICAgICAgICAgPGxlZ2VuZD5OYXZpZ2F0ZTwvbGVnZW5kPlxyXG4gICAgICAgICAgICAgIDxtYXQtcHJvZ3Jlc3Mtc3Bpbm5lciAqbmdJZj1cIm5hdmlJbmZvTG9hZGluZ1wiIG1vZGU9XCJpbmRldGVybWluYXRlXCIgW2RpYW1ldGVyXT1cIjE1XCI+PC9tYXQtcHJvZ3Jlc3Mtc3Bpbm5lcj5cclxuICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIW5hdmlJbmZvTG9hZGluZ1wiICBzdHlsZT1cImZsZXg6IDA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOiByb3c7ZmxleC13cmFwOiBub3dyYXBcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImZpcnN0QWN0aW9uPy5wZXJmb3JtKClcIiBbZGlzYWJsZWRdPVwiIWZpcnN0QWN0aW9uIHx8IGZpcnN0QWN0aW9uPy5kaXNhYmxlZFwiIG1hdFRvb2x0aXA9XCJGaXJzdCByZWNvcmRpbmcgZmlsZVwiPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWljb24+Zmlyc3RfcGFnZTwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cInByZXZBY3Rpb24/LnBlcmZvcm0oKVwiIFtkaXNhYmxlZF09XCIhcHJldkFjdGlvbiB8fCBwcmV2QWN0aW9uPy5kaXNhYmxlZFwiIG1hdFRvb2x0aXA9XCJQcmV2aW91cyByZWNvcmRpbmcgZmlsZVwiPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWljb24+Y2hldnJvbl9sZWZ0PC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwibmV4dEFjdGlvbj8ucGVyZm9ybSgpXCIgW2Rpc2FibGVkXT1cIiFuZXh0QWN0aW9uIHx8IG5leHRBY3Rpb24/LmRpc2FibGVkXCIgbWF0VG9vbHRpcD1cIk5leHQgcmVjb3JkaW5nIGZpbGVcIj5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPmNoZXZyb25fcmlnaHQ8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJsYXN0QWN0aW9uPy5wZXJmb3JtKClcIiBbZGlzYWJsZWRdPVwiIWxhc3RBY3Rpb24gfHwgbGFzdEFjdGlvbj8uZGlzYWJsZWRcIiBtYXRUb29sdGlwPVwiTGFzdCByZWNvcmRpbmcgZmlsZVwiPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWljb24+bGFzdF9wYWdlPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxwICpuZ0lmPVwiaXRlbXMgJiYgaXRlbVBvcyE9PW51bGwgJiYgaXRlbVBvcyE9PXVuZGVmaW5lZFwiPkl0ZW0ge3tpdGVtUG9zKzF9fSBvZiB7e2l0ZW1zfX08L3A+XHJcbiAgICAgICAgICAgICAgPHA+KExpc3Qgb3JkZXJlZCBieSBkYXRlKTwvcD5cclxuICAgICAgICAgICAgPC9maWVsZHNldD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgYCxcclxuICBzdHlsZXM6IFtcclxuICAgIGA6aG9zdCB7XHJcbiAgICAgICAgZmxleDogMDtcclxuXHJcbiAgICAgIH1gXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVjb3JkaW5nRmlsZU5hdmlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpIGZpcnN0QWN0aW9uOiBBY3Rpb248dm9pZD58dW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIHByZXZBY3Rpb246IEFjdGlvbjx2b2lkPnx1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgbmV4dEFjdGlvbjogQWN0aW9uPHZvaWQ+fHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBsYXN0QWN0aW9uOiBBY3Rpb248dm9pZD58dW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIGl0ZW1zOm51bWJlciB8IG51bGx8dW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIGl0ZW1Qb3M6bnVtYmVyIHwgbnVsbHx1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgc2VsZWN0VmVyc2lvbjogQWN0aW9uPG51bWJlcj58dW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIHZlcnNpb25zOiBBcnJheTxudW1iZXI+fG51bGw9bnVsbDtcclxuICBASW5wdXQoKSB2ZXJzaW9uOiBudW1iZXJ8bnVsbD1udWxsO1xyXG5cclxuICBASW5wdXQoKSBuYXZpSW5mb0xvYWRpbmc9ZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0VmVyc2lvbkNoYW5nZShldjpFdmVudCl7XHJcbiAgICAvL2NvbnNvbGUuZGVidWcoXCJDaGFuZ2UgZXZlbnQ6IFwiK2V2LnRhcmdldC52YWx1ZSsgXCIsIGFzIE5yOiBcIit2ZXJzaW9uTnIpO1xyXG5cclxuICAgICAgY29uc3Qgc2VsRWwgPSBldi50YXJnZXQgYXMgSFRNTFNlbGVjdEVsZW1lbnQ7XHJcbiAgICAgIGxldCB2ZXJzaW9uTnIgPSBwYXJzZUludChzZWxFbC52YWx1ZSk7XHJcbiAgICAgIGlmKHRoaXMuc2VsZWN0VmVyc2lvbikge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0VmVyc2lvbi5wZXJmb3JtKHZlcnNpb25Ocik7XHJcbiAgICAgIH1cclxuICB9XHJcblxyXG59XHJcbiJdfQ==
123
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkaW5nLWZpbGUtbmF2aS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGVlY2hyZWNvcmRlcm5nL3NyYy9saWIvc3BlZWNocmVjb3JkZXIvc2Vzc2lvbi9yZWNvcmRpbmdmaWxlL3JlY29yZGluZy1maWxlLW5hdmkuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFvQixNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBNENsRSxNQUFNLE9BQU8sMEJBQTBCO0lBYXJDO1FBTFMsYUFBUSxHQUFxQixJQUFJLENBQUM7UUFDbEMsWUFBTyxHQUFjLElBQUksQ0FBQztRQUUxQixvQkFBZSxHQUFDLEtBQUssQ0FBQztJQUVmLENBQUM7SUFFakIsUUFBUTtJQUNSLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxFQUFRO1FBQzFCLHlFQUF5RTtRQUV2RSxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsTUFBMkIsQ0FBQztRQUM3QyxJQUFJLFNBQVMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RDLElBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUNyQixJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUN2QztJQUNMLENBQUM7O3VIQTFCVSwwQkFBMEI7MkdBQTFCLDBCQUEwQix1VUF2QzNCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztXQWdDRDsyRkFPRSwwQkFBMEI7a0JBekN0QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx5QkFBeUI7b0JBQ25DLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7V0FnQ0Q7b0JBQ1QsTUFBTSxFQUFFO3dCQUNOOzs7UUFHSTtxQkFBQztpQkFDUjswRUFFVSxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFFRyxlQUFlO3NCQUF2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIElucHV0LCBPbkluaXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7QWN0aW9ufSBmcm9tIFwiLi4vLi4vLi4vYWN0aW9uL2FjdGlvblwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtcmVjb3JkaW5nLWZpbGUtbmF2aScsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgICAgICA8ZGl2ICNjb250cm9sUGFuZWwgc3R5bGU9XCJkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246IHJvdztcIj5cclxuICAgICAgICAgIDxkaXYgI25hdmkgc3R5bGU9XCJmbGV4OiAwO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjogcm93O2ZsZXgtd3JhcDogbm93cmFwXCI+XHJcbiAgICAgICAgICAgIDxmaWVsZHNldD5cclxuICAgICAgICAgICAgICA8bGVnZW5kPlZlcnNpb25zPC9sZWdlbmQ+XHJcbiAgICAgICAgICAgICAgPG1hdC1wcm9ncmVzcy1zcGlubmVyICpuZ0lmPVwibmF2aUluZm9Mb2FkaW5nXCIgbW9kZT1cImluZGV0ZXJtaW5hdGVcIiBbZGlhbWV0ZXJdPVwiMTVcIj48L21hdC1wcm9ncmVzcy1zcGlubmVyPlxyXG4gICAgICAgICAgICAgICAgPHNlbGVjdCAqbmdJZj1cIiFuYXZpSW5mb0xvYWRpbmdcIiBbZGlzYWJsZWRdPVwidmVyc2lvbnM9PW51bGwgfHwgdmVyc2lvbnMubGVuZ3RoPT0xXCIgKGNoYW5nZSk9XCJzZWxlY3RWZXJzaW9uQ2hhbmdlKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgdiBvZiB2ZXJzaW9uczsgbGV0IGkgPSBpbmRleFwiIFtzZWxlY3RlZF09XCJ2PT09dmVyc2lvblwiIHZhbHVlPVwie3t2fX1cIj57e3Z9fTxzcGFuICpuZ0lmPVwiaT09MFwiPiAobGF0ZXN0KTwvc3Bhbj48L29wdGlvbj5cclxuICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICA8L2ZpZWxkc2V0PlxyXG4gICAgICAgICAgICA8ZmllbGRzZXQ+XHJcbiAgICAgICAgICAgICAgPGxlZ2VuZD5OYXZpZ2F0ZTwvbGVnZW5kPlxyXG4gICAgICAgICAgICAgIDxtYXQtcHJvZ3Jlc3Mtc3Bpbm5lciAqbmdJZj1cIm5hdmlJbmZvTG9hZGluZ1wiIG1vZGU9XCJpbmRldGVybWluYXRlXCIgW2RpYW1ldGVyXT1cIjE1XCI+PC9tYXQtcHJvZ3Jlc3Mtc3Bpbm5lcj5cclxuICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIW5hdmlJbmZvTG9hZGluZ1wiICBzdHlsZT1cImZsZXg6IDA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOiByb3c7ZmxleC13cmFwOiBub3dyYXBcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImZpcnN0QWN0aW9uPy5wZXJmb3JtKClcIiBbZGlzYWJsZWRdPVwiIWZpcnN0QWN0aW9uIHx8IGZpcnN0QWN0aW9uPy5kaXNhYmxlZFwiIG1hdFRvb2x0aXA9XCJGaXJzdCByZWNvcmRpbmcgZmlsZVwiPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWljb24+Zmlyc3RfcGFnZTwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cInByZXZBY3Rpb24/LnBlcmZvcm0oKVwiIFtkaXNhYmxlZF09XCIhcHJldkFjdGlvbiB8fCBwcmV2QWN0aW9uPy5kaXNhYmxlZFwiIG1hdFRvb2x0aXA9XCJQcmV2aW91cyByZWNvcmRpbmcgZmlsZVwiPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWljb24+Y2hldnJvbl9sZWZ0PC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwibmV4dEFjdGlvbj8ucGVyZm9ybSgpXCIgW2Rpc2FibGVkXT1cIiFuZXh0QWN0aW9uIHx8IG5leHRBY3Rpb24/LmRpc2FibGVkXCIgbWF0VG9vbHRpcD1cIk5leHQgcmVjb3JkaW5nIGZpbGVcIj5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPmNoZXZyb25fcmlnaHQ8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJsYXN0QWN0aW9uPy5wZXJmb3JtKClcIiBbZGlzYWJsZWRdPVwiIWxhc3RBY3Rpb24gfHwgbGFzdEFjdGlvbj8uZGlzYWJsZWRcIiBtYXRUb29sdGlwPVwiTGFzdCByZWNvcmRpbmcgZmlsZVwiPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWljb24+bGFzdF9wYWdlPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxwICpuZ0lmPVwiaXRlbXMgJiYgaXRlbVBvcyE9PW51bGwgJiYgaXRlbVBvcyE9PXVuZGVmaW5lZFwiPkl0ZW0ge3tpdGVtUG9zKzF9fSBvZiB7e2l0ZW1zfX08L3A+XHJcbiAgICAgICAgICAgICAgPHA+KExpc3Qgb3JkZXJlZCBieSBkYXRlKTwvcD5cclxuICAgICAgICAgICAgPC9maWVsZHNldD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgYCxcclxuICBzdHlsZXM6IFtcclxuICAgIGA6aG9zdCB7XHJcbiAgICAgICAgZmxleDogMDtcclxuXHJcbiAgICAgIH1gXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVjb3JkaW5nRmlsZU5hdmlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpIGZpcnN0QWN0aW9uOiBBY3Rpb248dm9pZD58dW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIHByZXZBY3Rpb246IEFjdGlvbjx2b2lkPnx1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgbmV4dEFjdGlvbjogQWN0aW9uPHZvaWQ+fHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBsYXN0QWN0aW9uOiBBY3Rpb248dm9pZD58dW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIGl0ZW1zOm51bWJlciB8IG51bGx8dW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIGl0ZW1Qb3M6bnVtYmVyIHwgbnVsbHx1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgc2VsZWN0VmVyc2lvbjogQWN0aW9uPG51bWJlcj58dW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIHZlcnNpb25zOiBBcnJheTxudW1iZXI+fG51bGw9bnVsbDtcclxuICBASW5wdXQoKSB2ZXJzaW9uOiBudW1iZXJ8bnVsbD1udWxsO1xyXG5cclxuICBASW5wdXQoKSBuYXZpSW5mb0xvYWRpbmc9ZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0VmVyc2lvbkNoYW5nZShldjpFdmVudCl7XHJcbiAgICAvL2NvbnNvbGUuZGVidWcoXCJDaGFuZ2UgZXZlbnQ6IFwiK2V2LnRhcmdldC52YWx1ZSsgXCIsIGFzIE5yOiBcIit2ZXJzaW9uTnIpO1xyXG5cclxuICAgICAgY29uc3Qgc2VsRWwgPSBldi50YXJnZXQgYXMgSFRNTFNlbGVjdEVsZW1lbnQ7XHJcbiAgICAgIGxldCB2ZXJzaW9uTnIgPSBwYXJzZUludChzZWxFbC52YWx1ZSk7XHJcbiAgICAgIGlmKHRoaXMuc2VsZWN0VmVyc2lvbikge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0VmVyc2lvbi5wZXJmb3JtKHZlcnNpb25Ocik7XHJcbiAgICAgIH1cclxuICB9XHJcblxyXG59XHJcbiJdfQ==
@@ -0,0 +1,168 @@
1
+ import { Component } from '@angular/core';
2
+ import { MessageDialog } from "../../../ui/message_dialog";
3
+ import { RecordingFileViewComponent } from "./recording-file-view.component";
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "./recordingfile-service";
6
+ import * as i2 from "../../recordings/recordings.service";
7
+ import * as i3 from "../session.service";
8
+ import * as i4 from "@angular/router";
9
+ import * as i5 from "@angular/material/dialog";
10
+ import * as i6 from "@angular/material/snack-bar";
11
+ import * as i7 from "../../../audio/ui/audio_display_scroll_pane";
12
+ import * as i8 from "./recording-file-meta.component";
13
+ import * as i9 from "../../../audio/ui/audio_display_control";
14
+ import * as i10 from "./recording-file-navi.component";
15
+ import * as i11 from "@angular/material/button";
16
+ export class RecordingFileUI extends RecordingFileViewComponent {
17
+ constructor(recordingFileService, recordingService, sessionService, router, route, ref, eRef, dialog, snackBar) {
18
+ super(recordingFileService, recordingService, sessionService, router, route, ref, eRef, dialog);
19
+ this.recordingFileService = recordingFileService;
20
+ this.recordingService = recordingService;
21
+ this.sessionService = sessionService;
22
+ this.router = router;
23
+ this.route = route;
24
+ this.ref = ref;
25
+ this.eRef = eRef;
26
+ this.dialog = dialog;
27
+ this.snackBar = snackBar;
28
+ this.savedEditSelection = null;
29
+ this.editSaved = true;
30
+ this.parentE = this.eRef.nativeElement;
31
+ }
32
+ ngAfterViewInit() {
33
+ super.ngAfterViewInit();
34
+ }
35
+ applyButtonText() {
36
+ if (this.audioClip) {
37
+ let s = this.audioClip.selection;
38
+ if (s) {
39
+ return "Apply current selection as editing selection";
40
+ }
41
+ else {
42
+ return "Cancel out editing selection";
43
+ }
44
+ }
45
+ // just as fallback
46
+ return "Apply selection";
47
+ }
48
+ loadRecFile(rfId) {
49
+ this.editSaved = true;
50
+ super.loadRecFile(rfId);
51
+ }
52
+ loadedRecfile() {
53
+ super.loadedRecfile();
54
+ if (this.audioClip) {
55
+ this.audioClip.addSelectionObserver((clip) => {
56
+ let s = clip.selection;
57
+ this.editSaved = ((this.savedEditSelection == null && s == null) || this.savedEditSelection != null && this.savedEditSelection.equals(s));
58
+ });
59
+ }
60
+ this.savedEditSelection = this.audioClip ? this.audioClip.selection : null;
61
+ this.editSaved = true;
62
+ }
63
+ applySelection() {
64
+ if (this.audioClip) {
65
+ let ab = this.audioClip.buffer;
66
+ let s = this.audioClip.selection;
67
+ if (ab && this.recordingFile?.recordingFileId) {
68
+ let sr = null;
69
+ let sf = null;
70
+ let ef = null;
71
+ if (s) {
72
+ sr = ab.sampleRate;
73
+ sf = s.startFrame;
74
+ ef = s.endFrame;
75
+ }
76
+ this.recordingFileService.saveEditSelection(this.recordingFile.recordingFileId, sr, sf, ef).subscribe((value) => {
77
+ }, () => {
78
+ this.dialog.open(MessageDialog, {
79
+ data: {
80
+ type: 'error',
81
+ title: 'Save selection edit error',
82
+ msg: "Could not save edit selection to WikiSpeech server!",
83
+ advice: "Please check network connection and server state."
84
+ }
85
+ });
86
+ }, () => {
87
+ // Or use returned selection value from server?
88
+ this.savedEditSelection = s;
89
+ this.editSaved = true;
90
+ this.snackBar.open('Selection edit saved successfully.', 'OK', { duration: 1500 });
91
+ });
92
+ }
93
+ }
94
+ }
95
+ }
96
+ RecordingFileUI.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: RecordingFileUI, deps: [{ token: i1.RecordingFileService }, { token: i2.RecordingService }, { token: i3.SessionService }, { token: i4.Router }, { token: i4.ActivatedRoute }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i5.MatDialog }, { token: i6.MatSnackBar }], target: i0.ɵɵFactoryTarget.Component });
97
+ RecordingFileUI.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.1", type: RecordingFileUI, selector: "app-audiodisplayplayer", usesInheritance: true, ngImport: i0, template: `
98
+ <h1>Recording file editing</h1>
99
+ <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>
100
+
101
+ <audio-display-scroll-pane #audioDisplayScrollPane></audio-display-scroll-pane>
102
+ <div class="ctrlview">
103
+ <app-recording-file-meta [sessionId]="sessionId" [recordingFile]="recordingFile"></app-recording-file-meta>
104
+ <audio-display-control [audioClip]="audioClip"
105
+ [playStartAction]="playStartAction"
106
+ [playSelectionAction]="playSelectionAction"
107
+ [playStopAction]="playStopAction"
108
+ [autoPlayOnSelectToggleAction]="ap?.autoPlayOnSelectToggleAction"
109
+ [zoomInAction]="zoomInAction"
110
+ [zoomOutAction]="zoomOutAction"
111
+ [zoomSelectedAction]="zoomSelectedAction"
112
+ [zoomFitToPanelAction]="zoomFitToPanelAction"></audio-display-control>
113
+ <app-recording-file-navi [items]="availRecFiles?.length" [itemPos]="posInList" [version]="recordingFileVersion" [versions]="versions" [firstAction]="firstAction" [prevAction]="prevAction" [nextAction]="nextAction" [lastAction]="lastAction" [selectVersion]="toVersionAction" [naviInfoLoading]="naviInfoLoading"></app-recording-file-navi>
114
+ </div>
115
+
116
+ <button mat-raised-button color="accent" (click)="applySelection()" [disabled]="editSaved">{{this.applyButtonText()}}</button>
117
+ `, isInline: true, styles: [":host{flex:2;display:flex;flex-direction:column;min-height:0;overflow:hidden;padding:20px;z-index:5;box-sizing:border-box;background-color:#fff}\n", ".ctrlview{display:flex;flex-direction:row}\n", "audio-display-control{flex:3}\n"], components: [{ type: i7.AudioDisplayScrollPane, selector: "audio-display-scroll-pane", inputs: ["audioClip"], outputs: ["zoomInAction", "zoomOutAction", "zoomSelectedAction", "zoomFitToPanelAction"] }, { type: i8.RecordingFileMetaComponent, selector: "app-recording-file-meta", inputs: ["sessionId", "recordingFile"] }, { type: i9.AudioDisplayControl, selector: "audio-display-control", inputs: ["audioClip", "playStartAction", "playSelectionAction", "playStopAction", "zoomInAction", "zoomOutAction", "zoomFitToPanelAction", "zoomSelectedAction", "autoPlayOnSelectToggleAction"] }, { type: i10.RecordingFileNaviComponent, selector: "app-recording-file-navi", inputs: ["firstAction", "prevAction", "nextAction", "lastAction", "items", "itemPos", "selectVersion", "versions", "version", "naviInfoLoading"] }, { type: i11.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"] }] });
118
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: RecordingFileUI, decorators: [{
119
+ type: Component,
120
+ args: [{
121
+ selector: 'app-audiodisplayplayer',
122
+ template: `
123
+ <h1>Recording file editing</h1>
124
+ <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>
125
+
126
+ <audio-display-scroll-pane #audioDisplayScrollPane></audio-display-scroll-pane>
127
+ <div class="ctrlview">
128
+ <app-recording-file-meta [sessionId]="sessionId" [recordingFile]="recordingFile"></app-recording-file-meta>
129
+ <audio-display-control [audioClip]="audioClip"
130
+ [playStartAction]="playStartAction"
131
+ [playSelectionAction]="playSelectionAction"
132
+ [playStopAction]="playStopAction"
133
+ [autoPlayOnSelectToggleAction]="ap?.autoPlayOnSelectToggleAction"
134
+ [zoomInAction]="zoomInAction"
135
+ [zoomOutAction]="zoomOutAction"
136
+ [zoomSelectedAction]="zoomSelectedAction"
137
+ [zoomFitToPanelAction]="zoomFitToPanelAction"></audio-display-control>
138
+ <app-recording-file-navi [items]="availRecFiles?.length" [itemPos]="posInList" [version]="recordingFileVersion" [versions]="versions" [firstAction]="firstAction" [prevAction]="prevAction" [nextAction]="nextAction" [lastAction]="lastAction" [selectVersion]="toVersionAction" [naviInfoLoading]="naviInfoLoading"></app-recording-file-navi>
139
+ </div>
140
+
141
+ <button mat-raised-button color="accent" (click)="applySelection()" [disabled]="editSaved">{{this.applyButtonText()}}</button>
142
+ `,
143
+ styles: [
144
+ `:host {
145
+ flex: 2;
146
+ display: flex;
147
+ flex-direction: column;
148
+ min-height:0;
149
+ overflow: hidden;
150
+ padding: 20px;
151
+ z-index: 5;
152
+ box-sizing: border-box;
153
+ background-color: white;
154
+ }`, `
155
+ .ctrlview{
156
+ display: flex;
157
+ flex-direction: row;
158
+ }
159
+ `, `
160
+ audio-display-control{
161
+
162
+ flex: 3;
163
+ }
164
+ `
165
+ ]
166
+ }]
167
+ }], ctorParameters: function () { return [{ type: i1.RecordingFileService }, { type: i2.RecordingService }, { type: i3.SessionService }, { type: i4.Router }, { type: i4.ActivatedRoute }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i5.MatDialog }, { type: i6.MatSnackBar }]; } });
168
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkaW5nLWZpbGUtdS1pLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NwZWVjaHJlY29yZGVybmcvc3JjL2xpYi9zcGVlY2hyZWNvcmRlci9zZXNzaW9uL3JlY29yZGluZ2ZpbGUvcmVjb3JkaW5nLWZpbGUtdS1pLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUlWLE1BQU0sZUFBZSxDQUFBO0FBT3RCLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUV6RCxPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7Ozs7Ozs7OztBQXNEM0UsTUFBTSxPQUFPLGVBQWdCLFNBQVEsMEJBQTBCO0lBSzdELFlBQXNCLG9CQUF5QyxFQUFXLGdCQUFpQyxFQUFXLGNBQTZCLEVBQVcsTUFBYSxFQUFXLEtBQXFCLEVBQVksR0FBc0IsRUFBVyxJQUFlLEVBQVksTUFBZ0IsRUFBUyxRQUFxQjtRQUMvVCxLQUFLLENBQUMsb0JBQW9CLEVBQUMsZ0JBQWdCLEVBQUMsY0FBYyxFQUFDLE1BQU0sRUFBQyxLQUFLLEVBQUMsR0FBRyxFQUFDLElBQUksRUFBQyxNQUFNLENBQUMsQ0FBQTtRQURwRSx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXFCO1FBQVcscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFpQjtRQUFXLG1CQUFjLEdBQWQsY0FBYyxDQUFlO1FBQVcsV0FBTSxHQUFOLE1BQU0sQ0FBTztRQUFXLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQVksUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFBVyxTQUFJLEdBQUosSUFBSSxDQUFXO1FBQVksV0FBTSxHQUFOLE1BQU0sQ0FBVTtRQUFTLGFBQVEsR0FBUixRQUFRLENBQWE7UUFIalUsdUJBQWtCLEdBQWdCLElBQUksQ0FBQztRQUN2QyxjQUFTLEdBQVMsSUFBSSxDQUFBO1FBSXBCLElBQUksQ0FBQyxPQUFPLEdBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7SUFFdkMsQ0FBQztJQUVELGVBQWU7UUFDYixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUE7SUFDekIsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFHLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDakIsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUE7WUFDaEMsSUFBSSxDQUFDLEVBQUU7Z0JBQ0wsT0FBTyw4Q0FBOEMsQ0FBQzthQUN2RDtpQkFBSTtnQkFDSCxPQUFPLDhCQUE4QixDQUFDO2FBQ3ZDO1NBQ0Y7UUFDRCxtQkFBbUI7UUFDbkIsT0FBTyxpQkFBaUIsQ0FBQztJQUMzQixDQUFDO0lBRVMsV0FBVyxDQUFDLElBQW9CO1FBQ3hDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVPLGFBQWE7UUFDckIsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3RCLElBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNqQixJQUFJLENBQUMsU0FBUyxDQUFDLG9CQUFvQixDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQzNDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUE7Z0JBQ3RCLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBQzNJLENBQUMsQ0FBQyxDQUFDO1NBQ0o7UUFDRCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQSxDQUFDLENBQUEsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUEsQ0FBQyxDQUFBLElBQUksQ0FBQztRQUN2RSxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQTtJQUN2QixDQUFDO0lBRUMsY0FBYztRQUNaLElBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNqQixJQUFJLEVBQUUsR0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQztZQUM3QixJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQTtZQUNoQyxJQUFJLEVBQUUsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLGVBQWUsRUFBRTtnQkFFN0MsSUFBSSxFQUFFLEdBQUUsSUFBSSxDQUFDO2dCQUNiLElBQUksRUFBRSxHQUFDLElBQUksQ0FBQztnQkFDWixJQUFJLEVBQUUsR0FBQyxJQUFJLENBQUM7Z0JBQ1osSUFBRyxDQUFDLEVBQUU7b0JBQ0osRUFBRSxHQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUM7b0JBQ2xCLEVBQUUsR0FBRyxDQUFDLENBQUMsVUFBVSxDQUFDO29CQUNsQixFQUFFLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQztpQkFDakI7Z0JBQ0MsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQzlHLENBQUMsRUFDRCxHQUFHLEVBQUU7b0JBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFO3dCQUU5QixJQUFJLEVBQUU7NEJBQ0osSUFBSSxFQUFFLE9BQU87NEJBQ2IsS0FBSyxFQUFFLDJCQUEyQjs0QkFDbEMsR0FBRyxFQUFFLHFEQUFxRDs0QkFDMUQsTUFBTSxFQUFFLG1EQUFtRDt5QkFDNUQ7cUJBQ0YsQ0FBQyxDQUFBO2dCQUNKLENBQUMsRUFDRCxHQUFHLEVBQUU7b0JBQ0gsK0NBQStDO29CQUMvQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsQ0FBQyxDQUFBO29CQUMzQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQTtvQkFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsb0NBQW9DLEVBQUUsSUFBSSxFQUFFLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUE7Z0JBQ2xGLENBQUMsQ0FBQyxDQUFDO2FBQ1I7U0FDRjtJQUNILENBQUM7OzRHQWhGVSxlQUFlO2dHQUFmLGVBQWUscUZBN0NoQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQlQ7MkZBeUJVLGVBQWU7a0JBakQzQixTQUFTO21CQUFDO29CQUVULFFBQVEsRUFBRSx3QkFBd0I7b0JBRWxDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQlQ7b0JBQ0QsTUFBTSxFQUFFO3dCQUNOOzs7Ozs7Ozs7O01BVUUsRUFBQzs7Ozs7S0FLRixFQUFDOzs7OztLQUtEO3FCQUFDO2lCQUVMIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBFbGVtZW50UmVmXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuXHJcblxyXG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlLCBSb3V0ZXJ9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHtSZWNvcmRpbmdGaWxlU2VydmljZX0gZnJvbSBcIi4vcmVjb3JkaW5nZmlsZS1zZXJ2aWNlXCI7XHJcbmltcG9ydCB7TWF0RGlhbG9nfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nXCI7XHJcbmltcG9ydCB7U2VsZWN0aW9ufSBmcm9tIFwiLi4vLi4vLi4vYXVkaW8vcGVyc2lzdG9yXCI7XHJcbmltcG9ydCB7TWVzc2FnZURpYWxvZ30gZnJvbSBcIi4uLy4uLy4uL3VpL21lc3NhZ2VfZGlhbG9nXCI7XHJcbmltcG9ydCB7QWN0aW9ufSBmcm9tIFwiLi4vLi4vLi4vYWN0aW9uL2FjdGlvblwiO1xyXG5pbXBvcnQge1JlY29yZGluZ0ZpbGVWaWV3Q29tcG9uZW50fSBmcm9tIFwiLi9yZWNvcmRpbmctZmlsZS12aWV3LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1Nlc3Npb25TZXJ2aWNlfSBmcm9tIFwiLi4vc2Vzc2lvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7UmVjb3JkaW5nU2VydmljZX0gZnJvbSBcIi4uLy4uL3JlY29yZGluZ3MvcmVjb3JkaW5ncy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7TWF0U25hY2tCYXJ9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXJcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cclxuICBzZWxlY3RvcjogJ2FwcC1hdWRpb2Rpc3BsYXlwbGF5ZXInLFxyXG5cclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgICA8aDE+UmVjb3JkaW5nIGZpbGUgZWRpdGluZzwvaDE+XHJcbiAgICAgIDxwPk9uIGV4cG9ydCBvciBkZWxpdmVyeSB0aGUgZWRpdGluZyBzZWxlY3Rpb24gb2YgdGhlIHJlY29yZGluZyBmaWxlIGlzIGN1dCBvdXQuIElmIG5vIGVkaXRpbmcgc2VsZWN0aW9uIGlzIGFwcGxpZWQgdGhlIG9yaWdpbmFsIGZpbGUgaXMgZXhwb3J0ZWQuPC9wPlxyXG5cclxuICAgIDxhdWRpby1kaXNwbGF5LXNjcm9sbC1wYW5lICNhdWRpb0Rpc3BsYXlTY3JvbGxQYW5lPjwvYXVkaW8tZGlzcGxheS1zY3JvbGwtcGFuZT5cclxuICAgICAgPGRpdiBjbGFzcz1cImN0cmx2aWV3XCI+XHJcbiAgICAgICAgPGFwcC1yZWNvcmRpbmctZmlsZS1tZXRhIFtzZXNzaW9uSWRdPVwic2Vzc2lvbklkXCIgIFtyZWNvcmRpbmdGaWxlXT1cInJlY29yZGluZ0ZpbGVcIj48L2FwcC1yZWNvcmRpbmctZmlsZS1tZXRhPlxyXG4gICAgPGF1ZGlvLWRpc3BsYXktY29udHJvbCBbYXVkaW9DbGlwXT1cImF1ZGlvQ2xpcFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYXlTdGFydEFjdGlvbl09XCJwbGF5U3RhcnRBY3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGF5U2VsZWN0aW9uQWN0aW9uXT1cInBsYXlTZWxlY3Rpb25BY3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGF5U3RvcEFjdGlvbl09XCJwbGF5U3RvcEFjdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F1dG9QbGF5T25TZWxlY3RUb2dnbGVBY3Rpb25dPVwiYXA/LmF1dG9QbGF5T25TZWxlY3RUb2dnbGVBY3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt6b29tSW5BY3Rpb25dPVwiem9vbUluQWN0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbem9vbU91dEFjdGlvbl09XCJ6b29tT3V0QWN0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbem9vbVNlbGVjdGVkQWN0aW9uXT1cInpvb21TZWxlY3RlZEFjdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFt6b29tRml0VG9QYW5lbEFjdGlvbl09XCJ6b29tRml0VG9QYW5lbEFjdGlvblwiPjwvYXVkaW8tZGlzcGxheS1jb250cm9sPlxyXG4gICAgICAgIDxhcHAtcmVjb3JkaW5nLWZpbGUtbmF2aSBbaXRlbXNdPVwiYXZhaWxSZWNGaWxlcz8ubGVuZ3RoXCIgW2l0ZW1Qb3NdPVwicG9zSW5MaXN0XCIgW3ZlcnNpb25dPVwicmVjb3JkaW5nRmlsZVZlcnNpb25cIiBbdmVyc2lvbnNdPVwidmVyc2lvbnNcIiBbZmlyc3RBY3Rpb25dPVwiZmlyc3RBY3Rpb25cIiBbcHJldkFjdGlvbl09XCJwcmV2QWN0aW9uXCIgW25leHRBY3Rpb25dPVwibmV4dEFjdGlvblwiIFtsYXN0QWN0aW9uXT1cImxhc3RBY3Rpb25cIiBbc2VsZWN0VmVyc2lvbl09XCJ0b1ZlcnNpb25BY3Rpb25cIiBbbmF2aUluZm9Mb2FkaW5nXT1cIm5hdmlJbmZvTG9hZGluZ1wiPjwvYXBwLXJlY29yZGluZy1maWxlLW5hdmk+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cImFjY2VudFwiIChjbGljayk9XCJhcHBseVNlbGVjdGlvbigpXCIgW2Rpc2FibGVkXT1cImVkaXRTYXZlZFwiPnt7dGhpcy5hcHBseUJ1dHRvblRleHQoKX19PC9idXR0b24+XHJcbiAgYCxcclxuICBzdHlsZXM6IFtcclxuICAgIGA6aG9zdCB7XHJcbiAgICAgICAgICBmbGV4OiAyO1xyXG4gICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgICAgICBtaW4taGVpZ2h0OjA7XHJcbiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICBwYWRkaW5nOiAyMHB4O1xyXG4gICAgICB6LWluZGV4OiA1O1xyXG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcclxuICAgIH1gLGBcclxuICAgICAgICAuY3RybHZpZXd7XHJcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICAgICAgICB9XHJcbiAgICBgLGBcclxuICAgICAgYXVkaW8tZGlzcGxheS1jb250cm9se1xyXG5cclxuICAgICAgICBmbGV4OiAzO1xyXG4gICAgICB9XHJcbiAgICBgXVxyXG5cclxufSlcclxuZXhwb3J0IGNsYXNzIFJlY29yZGluZ0ZpbGVVSSBleHRlbmRzIFJlY29yZGluZ0ZpbGVWaWV3Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XHJcblxyXG4gIHNhdmVkRWRpdFNlbGVjdGlvbjpTZWxlY3Rpb258bnVsbD1udWxsO1xyXG4gIGVkaXRTYXZlZDpib29sZWFuPXRydWVcclxuXHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHJlY29yZGluZ0ZpbGVTZXJ2aWNlOlJlY29yZGluZ0ZpbGVTZXJ2aWNlLHByb3RlY3RlZCByZWNvcmRpbmdTZXJ2aWNlOlJlY29yZGluZ1NlcnZpY2UscHJvdGVjdGVkIHNlc3Npb25TZXJ2aWNlOlNlc3Npb25TZXJ2aWNlLHByb3RlY3RlZCByb3V0ZXI6Um91dGVyLHByb3RlY3RlZCByb3V0ZTogQWN0aXZhdGVkUm91dGUsIHByb3RlY3RlZCByZWY6IENoYW5nZURldGVjdG9yUmVmLHByb3RlY3RlZCBlUmVmOkVsZW1lbnRSZWYsIHByb3RlY3RlZCBkaWFsb2c6TWF0RGlhbG9nLHByaXZhdGUgc25hY2tCYXI6IE1hdFNuYWNrQmFyKSB7XHJcbiAgICBzdXBlcihyZWNvcmRpbmdGaWxlU2VydmljZSxyZWNvcmRpbmdTZXJ2aWNlLHNlc3Npb25TZXJ2aWNlLHJvdXRlcixyb3V0ZSxyZWYsZVJlZixkaWFsb2cpXHJcbiAgICB0aGlzLnBhcmVudEU9dGhpcy5lUmVmLm5hdGl2ZUVsZW1lbnQ7XHJcblxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgc3VwZXIubmdBZnRlclZpZXdJbml0KClcclxuICB9XHJcblxyXG4gIGFwcGx5QnV0dG9uVGV4dCgpOnN0cmluZyB7XHJcbiAgICBpZih0aGlzLmF1ZGlvQ2xpcCkge1xyXG4gICAgICBsZXQgcyA9IHRoaXMuYXVkaW9DbGlwLnNlbGVjdGlvblxyXG4gICAgICBpZiAocykge1xyXG4gICAgICAgIHJldHVybiBcIkFwcGx5IGN1cnJlbnQgc2VsZWN0aW9uIGFzIGVkaXRpbmcgc2VsZWN0aW9uXCI7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIHJldHVybiBcIkNhbmNlbCBvdXQgZWRpdGluZyBzZWxlY3Rpb25cIjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy8ganVzdCBhcyBmYWxsYmFja1xyXG4gICAgcmV0dXJuIFwiQXBwbHkgc2VsZWN0aW9uXCI7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgbG9hZFJlY0ZpbGUocmZJZDpudW1iZXIgfCBzdHJpbmcpIHtcclxuICAgIHRoaXMuZWRpdFNhdmVkID0gdHJ1ZTtcclxuICAgIHN1cGVyLmxvYWRSZWNGaWxlKHJmSWQpO1xyXG4gIH1cclxuXHJcbnByb3RlY3RlZCBsb2FkZWRSZWNmaWxlKCkge1xyXG4gIHN1cGVyLmxvYWRlZFJlY2ZpbGUoKTtcclxuICBpZih0aGlzLmF1ZGlvQ2xpcCkge1xyXG4gICAgdGhpcy5hdWRpb0NsaXAuYWRkU2VsZWN0aW9uT2JzZXJ2ZXIoKGNsaXApID0+IHtcclxuICAgICAgbGV0IHMgPSBjbGlwLnNlbGVjdGlvblxyXG4gICAgICB0aGlzLmVkaXRTYXZlZCA9ICgodGhpcy5zYXZlZEVkaXRTZWxlY3Rpb24gPT0gbnVsbCAmJiBzID09IG51bGwpIHx8IHRoaXMuc2F2ZWRFZGl0U2VsZWN0aW9uICE9IG51bGwgJiYgdGhpcy5zYXZlZEVkaXRTZWxlY3Rpb24uZXF1YWxzKHMpKVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHRoaXMuc2F2ZWRFZGl0U2VsZWN0aW9uID0gdGhpcy5hdWRpb0NsaXA/dGhpcy5hdWRpb0NsaXAuc2VsZWN0aW9uOm51bGw7XHJcbiAgdGhpcy5lZGl0U2F2ZWQgPSB0cnVlXHJcbn1cclxuXHJcbiAgYXBwbHlTZWxlY3Rpb24oKXtcclxuICAgIGlmKHRoaXMuYXVkaW9DbGlwKSB7XHJcbiAgICAgIGxldCBhYj10aGlzLmF1ZGlvQ2xpcC5idWZmZXI7XHJcbiAgICAgIGxldCBzID0gdGhpcy5hdWRpb0NsaXAuc2VsZWN0aW9uXHJcbiAgICAgIGlmIChhYiAmJiB0aGlzLnJlY29yZGluZ0ZpbGU/LnJlY29yZGluZ0ZpbGVJZCkge1xyXG5cclxuICAgICAgICBsZXQgc3I9IG51bGw7XHJcbiAgICAgICAgbGV0IHNmPW51bGw7XHJcbiAgICAgICAgbGV0IGVmPW51bGw7XHJcbiAgICAgICAgaWYocykge1xyXG4gICAgICAgICAgc3I9IGFiLnNhbXBsZVJhdGU7XHJcbiAgICAgICAgICBzZiA9IHMuc3RhcnRGcmFtZTtcclxuICAgICAgICAgIGVmID0gcy5lbmRGcmFtZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLnJlY29yZGluZ0ZpbGVTZXJ2aWNlLnNhdmVFZGl0U2VsZWN0aW9uKHRoaXMucmVjb3JkaW5nRmlsZS5yZWNvcmRpbmdGaWxlSWQsIHNyLCBzZiwgZWYpLnN1YnNjcmliZSgodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMuZGlhbG9nLm9wZW4oTWVzc2FnZURpYWxvZywge1xyXG5cclxuICAgICAgICAgICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgICAgICAgdHlwZTogJ2Vycm9yJyxcclxuICAgICAgICAgICAgICAgICAgdGl0bGU6ICdTYXZlIHNlbGVjdGlvbiBlZGl0IGVycm9yJyxcclxuICAgICAgICAgICAgICAgICAgbXNnOiBcIkNvdWxkIG5vdCBzYXZlIGVkaXQgc2VsZWN0aW9uIHRvIFdpa2lTcGVlY2ggc2VydmVyIVwiLFxyXG4gICAgICAgICAgICAgICAgICBhZHZpY2U6IFwiUGxlYXNlIGNoZWNrIG5ldHdvcmsgY29ubmVjdGlvbiBhbmQgc2VydmVyIHN0YXRlLlwiXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgICAgIC8vIE9yIHVzZSByZXR1cm5lZCBzZWxlY3Rpb24gdmFsdWUgZnJvbSBzZXJ2ZXI/XHJcbiAgICAgICAgICAgICAgdGhpcy5zYXZlZEVkaXRTZWxlY3Rpb24gPSBzXHJcbiAgICAgICAgICAgICAgdGhpcy5lZGl0U2F2ZWQgPSB0cnVlXHJcbiAgICAgICAgICAgICAgdGhpcy5zbmFja0Jhci5vcGVuKCdTZWxlY3Rpb24gZWRpdCBzYXZlZCBzdWNjZXNzZnVsbHkuJywgJ09LJywge2R1cmF0aW9uOiAxNTAwfSlcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcblxyXG4iXX0=