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.
- package/{esm2015/lib/action/action.js → esm2020/lib/action/action.mjs} +0 -0
- package/{esm2015/lib/audio/audio_display.js → esm2020/lib/audio/audio_display.mjs} +5 -5
- package/esm2020/lib/audio/audio_player.mjs +276 -0
- package/esm2020/lib/audio/capture/capture.mjs +547 -0
- package/{esm2015/lib/audio/context.js → esm2020/lib/audio/context.mjs} +0 -0
- package/esm2020/lib/audio/dsp/level_measure.mjs +351 -0
- package/{esm2015/lib/audio/format.js → esm2020/lib/audio/format.mjs} +0 -0
- package/{esm2015/lib/audio/impl/wavformat.js → esm2020/lib/audio/impl/wavformat.mjs} +0 -0
- package/{esm2015/lib/audio/impl/wavwriter.js → esm2020/lib/audio/impl/wavwriter.mjs} +0 -0
- package/{esm2015/lib/audio/io/stream.js → esm2020/lib/audio/io/stream.mjs} +0 -0
- package/{esm2015/lib/audio/persistor.js → esm2020/lib/audio/persistor.mjs} +0 -0
- package/{esm2015/lib/audio/playback/player.js → esm2020/lib/audio/playback/player.mjs} +0 -0
- package/esm2020/lib/audio/ui/audio_canvas_layer_comp.mjs +376 -0
- package/{esm2015/lib/audio/ui/audio_display_control.js → esm2020/lib/audio/ui/audio_display_control.mjs} +5 -5
- package/{esm2015/lib/audio/ui/audio_display_scroll_pane.js → esm2020/lib/audio/ui/audio_display_scroll_pane.mjs} +5 -5
- package/{esm2015/lib/audio/ui/audiosignal.js → esm2020/lib/audio/ui/audiosignal.mjs} +5 -5
- package/{esm2015/lib/audio/ui/common.js → esm2020/lib/audio/ui/common.mjs} +0 -0
- package/esm2020/lib/audio/ui/container.mjs +431 -0
- package/{esm2015/lib/audio/ui/livelevel.js → esm2020/lib/audio/ui/livelevel.mjs} +5 -5
- package/{esm2015/lib/audio/ui/scroll_pane_horizontal.js → esm2020/lib/audio/ui/scroll_pane_horizontal.mjs} +4 -4
- package/{esm2015/lib/audio/ui/sonagram.js → esm2020/lib/audio/ui/sonagram.mjs} +5 -5
- package/{esm2015/lib/dsp/utils.js → esm2020/lib/dsp/utils.mjs} +0 -0
- package/{esm2015/lib/io/BinaryWriter.js → esm2020/lib/io/BinaryWriter.mjs} +0 -0
- package/{esm2015/lib/io/stream.js → esm2020/lib/io/stream.mjs} +0 -0
- package/{esm2015/lib/math/2d/geometry.js → esm2020/lib/math/2d/geometry.mjs} +0 -0
- package/{esm2015/lib/math/complex.js → esm2020/lib/math/complex.mjs} +0 -0
- package/{esm2015/lib/math/dft.js → esm2020/lib/math/dft.mjs} +0 -0
- package/{esm2015/lib/math/utils.js → esm2020/lib/math/utils.mjs} +0 -0
- package/esm2020/lib/media/utils.mjs +14 -0
- package/esm2020/lib/net/uploader.mjs +246 -0
- package/{esm2015/lib/speechrecorder/project/project.js → esm2020/lib/speechrecorder/project/project.mjs} +0 -0
- package/{esm2015/lib/speechrecorder/project/project.service.js → esm2020/lib/speechrecorder/project/project.service.mjs} +4 -4
- package/esm2020/lib/speechrecorder/recording.mjs +54 -0
- package/esm2020/lib/speechrecorder/recordings/recordings.service.mjs +246 -0
- package/{esm2015/lib/speechrecorder/script/script.js → esm2020/lib/speechrecorder/script/script.mjs} +2 -2
- package/{esm2015/lib/speechrecorder/script/script.service.js → esm2020/lib/speechrecorder/script/script.service.mjs} +4 -4
- package/esm2020/lib/speechrecorder/session/audiorecorder.mjs +1144 -0
- package/esm2020/lib/speechrecorder/session/controlpanel.mjs +449 -0
- package/{esm2015/lib/speechrecorder/session/item.js → esm2020/lib/speechrecorder/session/item.mjs} +1 -1
- package/{esm2015/lib/speechrecorder/session/progress.js → esm2020/lib/speechrecorder/session/progress.mjs} +5 -5
- package/{esm2015/lib/speechrecorder/session/prompting.js → esm2020/lib/speechrecorder/session/prompting.mjs} +21 -21
- package/esm2020/lib/speechrecorder/session/recorder_combi_pane.mjs +75 -0
- package/esm2020/lib/speechrecorder/session/recording_list.mjs +109 -0
- package/esm2020/lib/speechrecorder/session/recordingfile/recording-file-meta.component.mjs +126 -0
- package/{esm2015/lib/speechrecorder/session/recordingfile/recording-file-navi.component.js → esm2020/lib/speechrecorder/session/recordingfile/recording-file-navi.component.mjs} +5 -5
- package/esm2020/lib/speechrecorder/session/recordingfile/recording-file-u-i.component.mjs +168 -0
- package/esm2020/lib/speechrecorder/session/recordingfile/recording-file-view.component.mjs +415 -0
- package/{esm2015/lib/speechrecorder/session/recordingfile/recording-file.js → esm2020/lib/speechrecorder/session/recordingfile/recording-file.mjs} +1 -1
- package/esm2020/lib/speechrecorder/session/recordingfile/recordingfile-service.mjs +251 -0
- package/{esm2015/lib/speechrecorder/session/session.js → esm2020/lib/speechrecorder/session/session.mjs} +0 -0
- package/{esm2015/lib/speechrecorder/session/session.service.js → esm2020/lib/speechrecorder/session/session.service.mjs} +4 -4
- package/{esm2015/lib/speechrecorder/session/session_finished_dialog.js → esm2020/lib/speechrecorder/session/session_finished_dialog.mjs} +4 -4
- package/esm2020/lib/speechrecorder/session/sessionmanager.mjs +1274 -0
- package/{esm2015/lib/speechrecorder/session/warning_bar.js → esm2020/lib/speechrecorder/session/warning_bar.mjs} +5 -5
- package/{esm2015/lib/speechrecorder/spruploader.js → esm2020/lib/speechrecorder/spruploader.mjs} +4 -4
- package/{esm2015/lib/speechrecorder/startstopsignal/startstopsignal.js → esm2020/lib/speechrecorder/startstopsignal/startstopsignal.mjs} +0 -0
- package/{esm2015/lib/speechrecorder/startstopsignal/ui/simpletrafficlight.js → esm2020/lib/speechrecorder/startstopsignal/ui/simpletrafficlight.mjs} +5 -5
- package/esm2020/lib/speechrecorderng.component.mjs +427 -0
- package/{esm2015/lib/speechrecorderng.module.js → esm2020/lib/speechrecorderng.module.mjs} +12 -11
- package/{esm2015/lib/spr.config.js → esm2020/lib/spr.config.mjs} +4 -4
- package/{esm2015/lib/spr.module.version.js → esm2020/lib/spr.module.version.mjs} +2 -2
- package/{esm2015/lib/ui/canvas_layer_comp.js → esm2020/lib/ui/canvas_layer_comp.mjs} +4 -4
- package/{esm2015/lib/ui/message_dialog.js → esm2020/lib/ui/message_dialog.mjs} +4 -4
- package/{esm2015/lib/ui/recordingitem_display.js → esm2020/lib/ui/recordingitem_display.mjs} +9 -9
- package/{esm2015/lib/utils/css_utils.js → esm2020/lib/utils/css_utils.mjs} +0 -0
- package/{esm2015/lib/utils/scrollIntoViewToBottom.js → esm2020/lib/utils/scrollIntoViewToBottom.mjs} +4 -4
- package/{esm2015/lib/utils/ua-parser.js → esm2020/lib/utils/ua-parser.mjs} +0 -0
- package/{esm2015/lib/utils/utils.js → esm2020/lib/utils/utils.mjs} +0 -0
- package/esm2020/public-api.mjs +31 -0
- package/{esm2015/speechrecorderng.js → esm2020/speechrecorderng.mjs} +0 -0
- package/fesm2015/speechrecorderng.mjs +11991 -0
- package/fesm2015/speechrecorderng.mjs.map +1 -0
- package/{fesm2015/speechrecorderng.js → fesm2020/speechrecorderng.mjs} +1863 -285
- package/fesm2020/speechrecorderng.mjs.map +1 -0
- package/lib/media/utils.d.ts +3 -0
- package/lib/net/uploader.d.ts +4 -2
- package/lib/speechrecorder/recording.d.ts +14 -3
- package/lib/speechrecorder/recordings/recordings.service.d.ts +12 -5
- package/lib/speechrecorder/session/audiorecorder.d.ts +150 -0
- package/lib/speechrecorder/session/controlpanel.d.ts +2 -1
- package/lib/speechrecorder/session/item.d.ts +2 -2
- package/lib/speechrecorder/session/recorder_combi_pane.d.ts +26 -0
- package/lib/speechrecorder/session/recording_list.d.ts +19 -0
- package/lib/speechrecorder/session/recordingfile/recording-file-meta.component.d.ts +6 -2
- package/lib/speechrecorder/session/recordingfile/recording-file-view.component.d.ts +5 -4
- package/lib/speechrecorder/session/recordingfile/recording-file.d.ts +2 -2
- package/lib/speechrecorder/session/recordingfile/recordingfile-service.d.ts +5 -3
- package/lib/speechrecorder/session/sessionmanager.d.ts +5 -5
- package/lib/speechrecorderng.module.d.ts +31 -28
- package/lib/spr.module.version.d.ts +1 -1
- package/package.json +33 -20
- package/public-api.d.ts +2 -1
- package/bundles/speechrecorderng.umd.js +0 -10146
- package/bundles/speechrecorderng.umd.js.map +0 -1
- package/esm2015/lib/audio/audio_player.js +0 -274
- package/esm2015/lib/audio/capture/capture.js +0 -544
- package/esm2015/lib/audio/dsp/level_measure.js +0 -356
- package/esm2015/lib/audio/ui/audio_canvas_layer_comp.js +0 -364
- package/esm2015/lib/audio/ui/container.js +0 -412
- package/esm2015/lib/net/uploader.js +0 -220
- package/esm2015/lib/speechrecorder/recording.js +0 -38
- package/esm2015/lib/speechrecorder/recordings/recordings.service.js +0 -173
- package/esm2015/lib/speechrecorder/session/controlpanel.js +0 -446
- package/esm2015/lib/speechrecorder/session/recordingfile/recording-file-meta.component.js +0 -83
- package/esm2015/lib/speechrecorder/session/recordingfile/recording-file-u-i.component.js +0 -163
- package/esm2015/lib/speechrecorder/session/recordingfile/recording-file-view.component.js +0 -386
- package/esm2015/lib/speechrecorder/session/recordingfile/recordingfile-service.js +0 -191
- package/esm2015/lib/speechrecorder/session/sessionmanager.js +0 -1271
- package/esm2015/lib/speechrecorderng.component.js +0 -423
- package/esm2015/public-api.js +0 -30
- 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: "
|
|
25
|
-
RecordingFileNaviComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "
|
|
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
|
|
58
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
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,
|
|
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=
|