speechrecorderng 2.22.0 → 2.22.1

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.
@@ -19,15 +19,44 @@ export class RecordingList {
19
19
  this.recordingListDataSource = new MatTableDataSource();
20
20
  }
21
21
  ngAfterViewInit() {
22
- this.recordingListDataSource.data = this.recordingList.reverse();
22
+ this.buildDataSource();
23
+ }
24
+ buildDataSource() {
25
+ this.recordingList.sort((a, b) => {
26
+ let cmp = 0;
27
+ let aD = null;
28
+ let bD = null;
29
+ if (a._startedAsDateObj && b._startedAsDateObj) {
30
+ aD = a._startedAsDateObj;
31
+ bD = b._startedAsDateObj;
32
+ }
33
+ else if (a.startedDate && b.startedDate) {
34
+ aD = new Date(a.startedDate);
35
+ bD = new Date(b.startedDate);
36
+ }
37
+ else if (a.date && b.date) {
38
+ aD = new Date(a.date);
39
+ bD = new Date(b.date);
40
+ }
41
+ if (aD !== null && bD !== null) {
42
+ cmp = bD.getTime() - aD.getTime();
43
+ }
44
+ return cmp;
45
+ });
46
+ this.recordingListDataSource.data = this.recordingList;
23
47
  }
24
48
  push(rf) {
25
49
  this.recordingList.push(rf);
26
- this.recordingListDataSource.data = this.recordingList.reverse();
50
+ this.buildDataSource();
27
51
  }
28
52
  selectRecordingFile(rf) {
29
53
  this.selectedRecordingFileChanged.emit(rf);
30
54
  }
55
+ selectTop() {
56
+ if (this.recordingList.length > 0) {
57
+ this.selectRecordingFile(this.recordingList[0]);
58
+ }
59
+ }
31
60
  lengthTimeFormatted(rf) {
32
61
  let str = '--:--:--';
33
62
  if (rf.frames && rf.audioBuffer) {
@@ -47,15 +76,15 @@ RecordingList.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
47
76
  <tr mat-header-row *matHeaderRowDef="cols;sticky:true"></tr>
48
77
  <tr mat-row *matRowDef="let element; columns: cols;" [scrollIntoViewToBottom]="element.uuid===selectedRecordingFile?.uuid"></tr>
49
78
  <ng-container matColumnDef="index">
50
- <th mat-header-cell *matHeaderCellDef mat-sort-header>#</th>
79
+ <th mat-header-cell *matHeaderCellDef mat-header>#</th>
51
80
  <td mat-cell class="monospaced" *matCellDef="let element;let i = index">{{recordingListDataSource.data.length-i}}</td>
52
81
  </ng-container>
53
82
  <ng-container matColumnDef="startedDate">
54
- <th mat-header-cell *matHeaderCellDef mat-sort-header>Started</th>
83
+ <th mat-header-cell *matHeaderCellDef mat-header>Started</th>
55
84
  <td mat-cell class="monospaced" *matCellDef="let element">{{element.startedDate | date:'YYYY-MM-dd HH:mm:ss'}}</td>
56
85
  </ng-container>
57
86
  <ng-container matColumnDef="length">
58
- <th mat-header-cell *matHeaderCellDef mat-sort-header>Length</th>
87
+ <th mat-header-cell *matHeaderCellDef mat-header>Length</th>
59
88
  <td mat-cell class="monospaced" *matCellDef="let element">{{lengthTimeFormatted(element)}}</td>
60
89
  </ng-container>
61
90
  <ng-container matColumnDef="action">
@@ -79,15 +108,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImpor
79
108
  <tr mat-header-row *matHeaderRowDef="cols;sticky:true"></tr>
80
109
  <tr mat-row *matRowDef="let element; columns: cols;" [scrollIntoViewToBottom]="element.uuid===selectedRecordingFile?.uuid"></tr>
81
110
  <ng-container matColumnDef="index">
82
- <th mat-header-cell *matHeaderCellDef mat-sort-header>#</th>
111
+ <th mat-header-cell *matHeaderCellDef mat-header>#</th>
83
112
  <td mat-cell class="monospaced" *matCellDef="let element;let i = index">{{recordingListDataSource.data.length-i}}</td>
84
113
  </ng-container>
85
114
  <ng-container matColumnDef="startedDate">
86
- <th mat-header-cell *matHeaderCellDef mat-sort-header>Started</th>
115
+ <th mat-header-cell *matHeaderCellDef mat-header>Started</th>
87
116
  <td mat-cell class="monospaced" *matCellDef="let element">{{element.startedDate | date:'YYYY-MM-dd HH:mm:ss'}}</td>
88
117
  </ng-container>
89
118
  <ng-container matColumnDef="length">
90
- <th mat-header-cell *matHeaderCellDef mat-sort-header>Length</th>
119
+ <th mat-header-cell *matHeaderCellDef mat-header>Length</th>
91
120
  <td mat-cell class="monospaced" *matCellDef="let element">{{lengthTimeFormatted(element)}}</td>
92
121
  </ng-container>
93
122
  <ng-container matColumnDef="action">
@@ -106,4 +135,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImpor
106
135
  }], selectedRecordingFile: [{
107
136
  type: Input
108
137
  }] } });
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=
138
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkaW5nX2xpc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGVlY2hyZWNvcmRlcm5nL3NyYy9saWIvc3BlZWNocmVjb3JkZXIvc2Vzc2lvbi9yZWNvcmRpbmdfbGlzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVwRixPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDN0MsT0FBTyxFQUFXLGtCQUFrQixFQUFDLE1BQU0seUJBQXlCLENBQUM7Ozs7Ozs7O0FBNkRyRSxNQUFNLE9BQU8sYUFBYTtJQVV4QjtRQVRRLGtCQUFhLEdBQXNCLElBQUksS0FBSyxFQUFpQixDQUFDO1FBR3RFLDBEQUEwRDtRQUMxRCxTQUFJLEdBQUMsQ0FBQyxPQUFPLEVBQUMsYUFBYSxFQUFDLFFBQVEsRUFBQyxRQUFRLENBQUMsQ0FBQztRQUN0QyxtQkFBYyxHQUFTLEtBQUssQ0FBQztRQUM1QixpQ0FBNEIsR0FBRyxJQUFJLFlBQVksRUFBaUIsQ0FBQztRQUNsRSwwQkFBcUIsR0FBb0IsSUFBSSxDQUFDO1FBR3JELElBQUksQ0FBQyx1QkFBdUIsR0FBQyxJQUFJLGtCQUFrQixFQUFpQixDQUFDO0lBQ3ZFLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFTyxlQUFlO1FBQ3JCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQy9CLElBQUksR0FBRyxHQUFRLENBQUMsQ0FBQztZQUNqQixJQUFJLEVBQUUsR0FBVyxJQUFJLENBQUM7WUFDdEIsSUFBSSxFQUFFLEdBQVcsSUFBSSxDQUFDO1lBQ3RCLElBQUcsQ0FBQyxDQUFDLGlCQUFpQixJQUFJLENBQUMsQ0FBQyxpQkFBaUIsRUFBQztnQkFDNUMsRUFBRSxHQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQTtnQkFDdEIsRUFBRSxHQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQTthQUN2QjtpQkFBSyxJQUFHLENBQUMsQ0FBQyxXQUFXLElBQUksQ0FBQyxDQUFDLFdBQVcsRUFBQztnQkFDdEMsRUFBRSxHQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDM0IsRUFBRSxHQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUM1QjtpQkFBSyxJQUFHLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRTtnQkFDekIsRUFBRSxHQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDcEIsRUFBRSxHQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNyQjtZQUNELElBQUcsRUFBRSxLQUFHLElBQUksSUFBSSxFQUFFLEtBQUcsSUFBSSxFQUFDO2dCQUN4QixHQUFHLEdBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQzthQUMvQjtZQUNELE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxHQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDdkQsQ0FBQztJQUVELElBQUksQ0FBQyxFQUFnQjtRQUNuQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELG1CQUFtQixDQUFDLEVBQWdCO1FBQ2xDLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNqQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ2pEO0lBQ0gsQ0FBQztJQUVELG1CQUFtQixDQUFDLEVBQWdCO1FBQ2xDLElBQUksR0FBRyxHQUFDLFVBQVUsQ0FBQztRQUNuQixJQUFHLEVBQUUsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRTtZQUM5QixHQUFHLEdBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQyxXQUFXLEVBQUUsVUFBVSxDQUFDLENBQUM7U0FDcEU7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7OzBHQTlEVSxhQUFhOzhGQUFiLGFBQWEsa09BdERkOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTZCVDsyRkF5QlUsYUFBYTtrQkExRHpCLFNBQVM7K0JBRUUsbUJBQW1CLFlBRW5COzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTZCVDswRUErQlEsY0FBYztzQkFBdEIsS0FBSztnQkFDSSw0QkFBNEI7c0JBQXJDLE1BQU07Z0JBQ0UscUJBQXFCO3NCQUE3QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtSZWNvcmRpbmdGaWxlLCBTcHJSZWNvcmRpbmdGaWxlfSBmcm9tIFwiLi4vcmVjb3JkaW5nXCI7XHJcbmltcG9ydCB7TWVkaWFVdGlsc30gZnJvbSBcIi4uLy4uL21lZGlhL3V0aWxzXCI7XHJcbmltcG9ydCB7TWF0VGFibGUsIE1hdFRhYmxlRGF0YVNvdXJjZX0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3RhYmxlXCI7XHJcbmltcG9ydCB7T2JzZXJ2YWJsZSwgU3ViamVjdH0gZnJvbSBcInJ4anNcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cclxuICBzZWxlY3RvcjogJ2FwcC1yZWNvcmRpbmdsaXN0JyxcclxuXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxtYXQtY2FyZD5cclxuICAgICAgICA8bWF0LWNhcmQtaGVhZGVyPlxyXG4gICAgICAgICAgPGgyPlJlY29yZGluZyBsaXN0PC9oMj5cclxuICAgICAgICA8L21hdC1jYXJkLWhlYWRlcj5cclxuICAgICAgPG1hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICA8dGFibGUgbWF0LXRhYmxlIFtkYXRhU291cmNlXT1cInJlY29yZGluZ0xpc3REYXRhU291cmNlXCIgY2xhc3M9XCJtYXQtZWxldmF0aW9uLXowXCI+XHJcbiAgICAgIDx0ciBtYXQtaGVhZGVyLXJvdyAqbWF0SGVhZGVyUm93RGVmPVwiY29scztzdGlja3k6dHJ1ZVwiPjwvdHI+XHJcbiAgICAgIDx0ciBtYXQtcm93ICptYXRSb3dEZWY9XCJsZXQgZWxlbWVudDsgY29sdW1uczogY29scztcIiBbc2Nyb2xsSW50b1ZpZXdUb0JvdHRvbV09XCJlbGVtZW50LnV1aWQ9PT1zZWxlY3RlZFJlY29yZGluZ0ZpbGU/LnV1aWRcIj48L3RyPlxyXG4gICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImluZGV4XCI+XHJcbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBtYXQtaGVhZGVyPiM8L3RoPlxyXG4gICAgICAgIDx0ZCBtYXQtY2VsbCBjbGFzcz1cIm1vbm9zcGFjZWRcIiAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50O2xldCBpID0gaW5kZXhcIj57e3JlY29yZGluZ0xpc3REYXRhU291cmNlLmRhdGEubGVuZ3RoLWl9fTwvdGQ+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInN0YXJ0ZWREYXRlXCI+XHJcbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBtYXQtaGVhZGVyPlN0YXJ0ZWQ8L3RoPlxyXG4gICAgICAgIDx0ZCBtYXQtY2VsbCBjbGFzcz1cIm1vbm9zcGFjZWRcIiAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+e3tlbGVtZW50LnN0YXJ0ZWREYXRlIHwgZGF0ZTonWVlZWS1NTS1kZCBISDptbTpzcyd9fTwvdGQ+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImxlbmd0aFwiPlxyXG4gICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgbWF0LWhlYWRlcj5MZW5ndGg8L3RoPlxyXG4gICAgICAgIDx0ZCBtYXQtY2VsbCBjbGFzcz1cIm1vbm9zcGFjZWRcIiAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+e3tsZW5ndGhUaW1lRm9ybWF0dGVkKGVsZW1lbnQpfX08L3RkPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJhY3Rpb25cIj5cclxuICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPkFjdGlvbjwvdGg+XHJcbiAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj48YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwic2VsZWN0UmVjb3JkaW5nRmlsZShlbGVtZW50KVwiIFtkaXNhYmxlZF09XCJzZWxlY3REaXNhYmxlZCB8fCBlbGVtZW50LnV1aWQ9PT1zZWxlY3RlZFJlY29yZGluZ0ZpbGU/LnV1aWRcIj48bWF0LWljb24+ZWRpdF9hdHRyaWJ1dGVzPC9tYXQtaWNvbj4gU2VsZWN0PC9idXR0b24+PC90ZD5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L3RhYmxlPlxyXG4gICAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICA8L21hdC1jYXJkPlxyXG5cclxuICBgLFxyXG4gIHN0eWxlczogW2A6aG9zdCB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgYmFja2dyb3VuZDogbGlnaHRncmV5O1xyXG4gICAgd2lkdGg6IDEwMCU7IC8qIHVzZSBhbGwgaG9yaXpvbnRhbCBhdmFpbGFibGUgc3BhY2UgKi9cclxuICAgIGZsZXg6IDE7IC8qIC4uLiBhbmQgZmlsbCByZXN0IG9mIHZlcnRpY2FsIGF2YWlsYWJsZSBzcGFjZSAob3RoZXIgY29tcG9uZW50cyBoYXZlIGZsZXggMCkgKi9cclxuICAgIG92ZXJmbG93LXk6IGF1dG87XHJcblxyXG4gICAgLyogV29ya2Fyb3VuZCBmb3IgRmlyZWZveFxyXG4gICAgSWYgdGhlIHByb2dyZXNzIHRhYmxlIGdldHMgbG9uZyAoc2NyaXB0IHdpdGggbWFueSBpdGVtcykgRkYgaW5jcmVhc2VzIHRoZSBoZWlnaHQgb2YgdGhlIG92ZXJmbG93IHByb2dyZXNzQ29udGFpbmVyIGFuZFxyXG4gICAgdGhlIHdob2xlIGFwcCBkb2VzIG5vdCBmaXQgaW50byB0aGUgcGFnZSBhbnltb3JlLiBUaGUgYXBwIG92ZXJmbG93cyBhbmQgc2hvd3MgYSB2ZXJ0aWNhbCBzY3JvbGxiYXIgZm9yIHRoZSB3aG9sZSBhcHAuXHJcbiAgICBTZWUgaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8yODYzNjgzMi9maXJlZm94LW92ZXJmbG93LXktbm90LXdvcmtpbmctd2l0aC1uZXN0ZWQtZmxleGJveFxyXG4gICAgKi9cclxuICAgIG1pbi1oZWlnaHQ6IDBweDtcclxuXHJcbiAgfWAsYFxyXG4gICAgLnNlbGVjdGVke1xyXG4gICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIH1cclxuICBgXSxcclxuICBzdHlsZVVybHM6IFsnLi4vLi4vc3BlZWNocmVjb3JkZXJfbWF0LnNjc3MnXVxyXG5cclxufSlcclxuZXhwb3J0IGNsYXNzIFJlY29yZGluZ0xpc3QgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0e1xyXG4gIHByaXZhdGUgcmVjb3JkaW5nTGlzdDpBcnJheTxSZWNvcmRpbmdGaWxlPj1uZXcgQXJyYXk8UmVjb3JkaW5nRmlsZT4oKTtcclxuICAvL3JlY29yZGluZ0xpc3RTdWJqZWN0OlN1YmplY3Q8QXJyYXk8UmVjb3JkaW5nRmlsZT4+ID0gbmV3IFN1YmplY3Q8QXJyYXk8UmVjb3JkaW5nRmlsZT4+KCk7XHJcbiAgcmVjb3JkaW5nTGlzdERhdGFTb3VyY2U6TWF0VGFibGVEYXRhU291cmNlPFJlY29yZGluZ0ZpbGU+O1xyXG4gIC8vY29scz1bJ2luZGV4JywnbGVuZ3RoJywnc2FtcGxlcycsJ3NhbXBsZXJhdGUnLCdhY3Rpb24nXTtcclxuICBjb2xzPVsnaW5kZXgnLCdzdGFydGVkRGF0ZScsJ2xlbmd0aCcsJ2FjdGlvbiddO1xyXG4gIEBJbnB1dCgpIHNlbGVjdERpc2FibGVkOmJvb2xlYW49ZmFsc2U7XHJcbiAgQE91dHB1dCgpIHNlbGVjdGVkUmVjb3JkaW5nRmlsZUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFJlY29yZGluZ0ZpbGU+KCk7XHJcbiAgQElucHV0KCkgc2VsZWN0ZWRSZWNvcmRpbmdGaWxlOlJlY29yZGluZ0ZpbGV8bnVsbD1udWxsO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHRoaXMucmVjb3JkaW5nTGlzdERhdGFTb3VyY2U9bmV3IE1hdFRhYmxlRGF0YVNvdXJjZTxSZWNvcmRpbmdGaWxlPigpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5idWlsZERhdGFTb3VyY2UoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYnVpbGREYXRhU291cmNlKCl7XHJcbiAgICB0aGlzLnJlY29yZGluZ0xpc3Quc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICBsZXQgY21wOm51bWJlcj0wO1xyXG4gICAgICBsZXQgYUQ6RGF0ZXxudWxsPW51bGw7XHJcbiAgICAgIGxldCBiRDpEYXRlfG51bGw9bnVsbDtcclxuICAgICAgaWYoYS5fc3RhcnRlZEFzRGF0ZU9iaiAmJiBiLl9zdGFydGVkQXNEYXRlT2JqKXtcclxuICAgICAgICBhRD1hLl9zdGFydGVkQXNEYXRlT2JqXHJcbiAgICAgICAgYkQ9Yi5fc3RhcnRlZEFzRGF0ZU9ialxyXG4gICAgICB9ZWxzZSBpZihhLnN0YXJ0ZWREYXRlICYmIGIuc3RhcnRlZERhdGUpe1xyXG4gICAgICAgIGFEPW5ldyBEYXRlKGEuc3RhcnRlZERhdGUpO1xyXG4gICAgICAgIGJEPW5ldyBEYXRlKGIuc3RhcnRlZERhdGUpO1xyXG4gICAgICB9ZWxzZSBpZihhLmRhdGUgJiYgYi5kYXRlKSB7XHJcbiAgICAgICAgYUQ9bmV3IERhdGUoYS5kYXRlKTtcclxuICAgICAgICBiRD1uZXcgRGF0ZShiLmRhdGUpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmKGFEIT09bnVsbCAmJiBiRCE9PW51bGwpe1xyXG4gICAgICAgIGNtcD1iRC5nZXRUaW1lKCktYUQuZ2V0VGltZSgpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBjbXA7XHJcbiAgICB9KTtcclxuICAgIHRoaXMucmVjb3JkaW5nTGlzdERhdGFTb3VyY2UuZGF0YT10aGlzLnJlY29yZGluZ0xpc3Q7XHJcbiAgfVxyXG5cclxuICBwdXNoKHJmOlJlY29yZGluZ0ZpbGUpe1xyXG4gICAgdGhpcy5yZWNvcmRpbmdMaXN0LnB1c2gocmYpO1xyXG4gICAgdGhpcy5idWlsZERhdGFTb3VyY2UoKTtcclxuICB9XHJcblxyXG4gIHNlbGVjdFJlY29yZGluZ0ZpbGUocmY6UmVjb3JkaW5nRmlsZSl7XHJcbiAgICB0aGlzLnNlbGVjdGVkUmVjb3JkaW5nRmlsZUNoYW5nZWQuZW1pdChyZik7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RUb3AoKSB7XHJcbiAgICBpZiAodGhpcy5yZWNvcmRpbmdMaXN0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5zZWxlY3RSZWNvcmRpbmdGaWxlKHRoaXMucmVjb3JkaW5nTGlzdFswXSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBsZW5ndGhUaW1lRm9ybWF0dGVkKHJmOlJlY29yZGluZ0ZpbGUpe1xyXG4gICAgbGV0IHN0cj0nLS06LS06LS0nO1xyXG4gICAgaWYocmYuZnJhbWVzICYmIHJmLmF1ZGlvQnVmZmVyKSB7XHJcbiAgICAgIHN0cj1NZWRpYVV0aWxzLnRvTWVkaWFUaW1lKHJmLmZyYW1lcyAvIHJmLmF1ZGlvQnVmZmVyPy5zYW1wbGVSYXRlKTtcclxuICAgIH1cclxuICAgIHJldHVybiBzdHI7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,2 +1,2 @@
1
- export const VERSION = '2.22.0';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ByLm1vZHVsZS52ZXJzaW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlZWNocmVjb3JkZXJuZy9zcmMvbGliL3Nwci5tb2R1bGUudmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUMsUUFBUSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFZFUlNJT049JzIuMjIuMCciXX0=
1
+ export const VERSION = '2.22.1';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ByLm1vZHVsZS52ZXJzaW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlZWNocmVjb3JkZXJuZy9zcmMvbGliL3Nwci5tb2R1bGUudmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUMsUUFBUSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFZFUlNJT049JzIuMjIuMSciXX0=
@@ -1448,6 +1448,7 @@ class RecordingFile {
1448
1448
  this.date = null;
1449
1449
  this._dateAsDateObj = null;
1450
1450
  this.startedDate = null;
1451
+ this._startedAsDateObj = null;
1451
1452
  this.audioBuffer = null;
1452
1453
  this.session = null;
1453
1454
  this.frames = null;
@@ -10669,15 +10670,44 @@ class RecordingList {
10669
10670
  this.recordingListDataSource = new MatTableDataSource();
10670
10671
  }
10671
10672
  ngAfterViewInit() {
10672
- this.recordingListDataSource.data = this.recordingList.reverse();
10673
+ this.buildDataSource();
10674
+ }
10675
+ buildDataSource() {
10676
+ this.recordingList.sort((a, b) => {
10677
+ let cmp = 0;
10678
+ let aD = null;
10679
+ let bD = null;
10680
+ if (a._startedAsDateObj && b._startedAsDateObj) {
10681
+ aD = a._startedAsDateObj;
10682
+ bD = b._startedAsDateObj;
10683
+ }
10684
+ else if (a.startedDate && b.startedDate) {
10685
+ aD = new Date(a.startedDate);
10686
+ bD = new Date(b.startedDate);
10687
+ }
10688
+ else if (a.date && b.date) {
10689
+ aD = new Date(a.date);
10690
+ bD = new Date(b.date);
10691
+ }
10692
+ if (aD !== null && bD !== null) {
10693
+ cmp = bD.getTime() - aD.getTime();
10694
+ }
10695
+ return cmp;
10696
+ });
10697
+ this.recordingListDataSource.data = this.recordingList;
10673
10698
  }
10674
10699
  push(rf) {
10675
10700
  this.recordingList.push(rf);
10676
- this.recordingListDataSource.data = this.recordingList.reverse();
10701
+ this.buildDataSource();
10677
10702
  }
10678
10703
  selectRecordingFile(rf) {
10679
10704
  this.selectedRecordingFileChanged.emit(rf);
10680
10705
  }
10706
+ selectTop() {
10707
+ if (this.recordingList.length > 0) {
10708
+ this.selectRecordingFile(this.recordingList[0]);
10709
+ }
10710
+ }
10681
10711
  lengthTimeFormatted(rf) {
10682
10712
  var _a;
10683
10713
  let str = '--:--:--';
@@ -10698,15 +10728,15 @@ RecordingList.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
10698
10728
  <tr mat-header-row *matHeaderRowDef="cols;sticky:true"></tr>
10699
10729
  <tr mat-row *matRowDef="let element; columns: cols;" [scrollIntoViewToBottom]="element.uuid===selectedRecordingFile?.uuid"></tr>
10700
10730
  <ng-container matColumnDef="index">
10701
- <th mat-header-cell *matHeaderCellDef mat-sort-header>#</th>
10731
+ <th mat-header-cell *matHeaderCellDef mat-header>#</th>
10702
10732
  <td mat-cell class="monospaced" *matCellDef="let element;let i = index">{{recordingListDataSource.data.length-i}}</td>
10703
10733
  </ng-container>
10704
10734
  <ng-container matColumnDef="startedDate">
10705
- <th mat-header-cell *matHeaderCellDef mat-sort-header>Started</th>
10735
+ <th mat-header-cell *matHeaderCellDef mat-header>Started</th>
10706
10736
  <td mat-cell class="monospaced" *matCellDef="let element">{{element.startedDate | date:'YYYY-MM-dd HH:mm:ss'}}</td>
10707
10737
  </ng-container>
10708
10738
  <ng-container matColumnDef="length">
10709
- <th mat-header-cell *matHeaderCellDef mat-sort-header>Length</th>
10739
+ <th mat-header-cell *matHeaderCellDef mat-header>Length</th>
10710
10740
  <td mat-cell class="monospaced" *matCellDef="let element">{{lengthTimeFormatted(element)}}</td>
10711
10741
  </ng-container>
10712
10742
  <ng-container matColumnDef="action">
@@ -10730,15 +10760,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImpor
10730
10760
  <tr mat-header-row *matHeaderRowDef="cols;sticky:true"></tr>
10731
10761
  <tr mat-row *matRowDef="let element; columns: cols;" [scrollIntoViewToBottom]="element.uuid===selectedRecordingFile?.uuid"></tr>
10732
10762
  <ng-container matColumnDef="index">
10733
- <th mat-header-cell *matHeaderCellDef mat-sort-header>#</th>
10763
+ <th mat-header-cell *matHeaderCellDef mat-header>#</th>
10734
10764
  <td mat-cell class="monospaced" *matCellDef="let element;let i = index">{{recordingListDataSource.data.length-i}}</td>
10735
10765
  </ng-container>
10736
10766
  <ng-container matColumnDef="startedDate">
10737
- <th mat-header-cell *matHeaderCellDef mat-sort-header>Started</th>
10767
+ <th mat-header-cell *matHeaderCellDef mat-header>Started</th>
10738
10768
  <td mat-cell class="monospaced" *matCellDef="let element">{{element.startedDate | date:'YYYY-MM-dd HH:mm:ss'}}</td>
10739
10769
  </ng-container>
10740
10770
  <ng-container matColumnDef="length">
10741
- <th mat-header-cell *matHeaderCellDef mat-sort-header>Length</th>
10771
+ <th mat-header-cell *matHeaderCellDef mat-header>Length</th>
10742
10772
  <td mat-cell class="monospaced" *matCellDef="let element">{{lengthTimeFormatted(element)}}</td>
10743
10773
  </ng-container>
10744
10774
  <ng-container matColumnDef="action">
@@ -10774,6 +10804,9 @@ class RecorderCombiPane {
10774
10804
  selectRecordingFile(rf) {
10775
10805
  this.selectedRecordingFileChanged.emit(rf);
10776
10806
  }
10807
+ selectTop() {
10808
+ this.recordingListComp.selectTop();
10809
+ }
10777
10810
  }
10778
10811
  RecorderCombiPane.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: RecorderCombiPane, deps: [], target: i0.ɵɵFactoryTarget.Component });
10779
10812
  RecorderCombiPane.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.1", type: RecorderCombiPane, selector: "app-recordercombipane", inputs: { selectDisabled: "selectDisabled", selectedRecordingFile: "selectedRecordingFile", audioSignalCollapsed: "audioSignalCollapsed", displayAudioClip: "displayAudioClip", playStartAction: "playStartAction", playSelectionAction: "playSelectionAction", autoPlayOnSelectToggleAction: "autoPlayOnSelectToggleAction", playStopAction: "playStopAction" }, outputs: { selectedRecordingFileChanged: "selectedRecordingFileChanged" }, viewQueries: [{ propertyName: "recordingListComp", first: true, predicate: RecordingList, descendants: true }, { propertyName: "audioDisplay", first: true, predicate: AudioDisplay, descendants: true, static: true }], ngImport: i0, template: `
@@ -11073,8 +11106,12 @@ class AudioRecorder {
11073
11106
  if (rfs) {
11074
11107
  if (rfs instanceof Array) {
11075
11108
  rfs.forEach((rf) => {
11076
- //console.debug("Already recorded: " + rf+ " "+rf.recording.itemcode);
11077
- //this.addRecordingFileByDescriptor(rf);
11109
+ if (rf.startedDate) {
11110
+ rf._startedAsDateObj = new Date(rf.startedDate);
11111
+ }
11112
+ if (rf.date) {
11113
+ rf._dateAsDateObj = new Date(rf.date);
11114
+ }
11078
11115
  this.recorderCombiPane.push(rf);
11079
11116
  });
11080
11117
  }
@@ -11538,9 +11575,10 @@ class AudioRecorder {
11538
11575
  }
11539
11576
  });
11540
11577
  }
11541
- if (this.recorderCombiPane.recordingListComp.recordingList.length > 0) {
11542
- this.selectRecordingFile(this.recorderCombiPane.recordingListComp.recordingList[0]);
11543
- }
11578
+ // if(this.recorderCombiPane.recordingListComp.recordingList.length>0){
11579
+ // this.selectRecordingFile(this.recorderCombiPane.recordingListComp.recordingList[0]);
11580
+ // }
11581
+ this.recorderCombiPane.selectTop();
11544
11582
  this.enableNavigation();
11545
11583
  }
11546
11584
  isRecording() {
@@ -11644,7 +11682,10 @@ class AudioRecorder {
11644
11682
  // it.recs = new Array<RecordingFile>();
11645
11683
  // }
11646
11684
  let rf = new RecordingFile(UUID.generate(), sessId, ad);
11647
- rf.startedDate = this.startedDate;
11685
+ rf._startedAsDateObj = this.startedDate;
11686
+ if (rf._startedAsDateObj) {
11687
+ rf.startedDate = rf._startedAsDateObj.toString();
11688
+ }
11648
11689
  // it.recs.push(rf);
11649
11690
  //
11650
11691
  // if (this.enableUploadRecordings) {
@@ -11676,7 +11717,7 @@ class AudioRecorder {
11676
11717
  this.displayRecFile = rf;
11677
11718
  //this.recordingListComp.recordingList.push(rf);
11678
11719
  this.recorderCombiPane.push(rf);
11679
- this.postRecordingMultipart(wavFile, rf.uuid, rf.session, rf.startedDate, recUrl);
11720
+ this.postRecordingMultipart(wavFile, rf.uuid, rf.session, rf._startedAsDateObj, recUrl);
11680
11721
  this.processingRecording = false;
11681
11722
  this.changeDetectorRef.detectChanges();
11682
11723
  });
@@ -11977,7 +12018,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImpor
11977
12018
  }]
11978
12019
  }] });
11979
12020
 
11980
- const VERSION = '2.22.0';
12021
+ const VERSION = '2.22.1';
11981
12022
 
11982
12023
  /*
11983
12024
  * Public API Surface of speechrecorderng